From 319ff3cb0154a5fa77727fbf26e5d5db573f7afa Mon Sep 17 00:00:00 2001 From: Janos Lenart <janos@lenart.io> Date: Fri, 20 Nov 2020 09:44:08 +0000 Subject: [PATCH] Import upstream version 1.32 --- ChangeLog | 617 ++++ Makefile.am | 3 +- Makefile.in | 101 +- NEWS | 52 +- README | 3 +- THANKS | 2 + TODO | 3 +- acinclude.m4 | 2 +- aclocal.m4 | 70 +- build-aux/ar-lib | 270 -- build-aux/compile | 2 +- build-aux/config.guess | 556 +-- build-aux/config.rpath | 2 +- build-aux/config.sub | 2512 +++++++------ build-aux/depcomp | 6 +- build-aux/gitlog-to-changelog | 6 +- build-aux/install-sh | 27 +- build-aux/mdate-sh | 6 +- build-aux/missing | 6 +- build-aux/texinfo.tex | 211 +- build-aux/ylwrap | 2 +- config.h.in | 774 +--- configure | 3073 +++++++--------- configure.ac | 17 +- doc/Makefile.am | 3 +- doc/Makefile.in | 78 +- doc/dumpdir.texi | 3 +- doc/fdl.texi | 3 +- doc/gendocs_template | 2 +- doc/genfile.texi | 80 +- doc/header.texi | 3 +- doc/intern.texi | 2 +- doc/mastermenu.el | 3 +- doc/parse-datetime.texi | 2 +- doc/recipes.texi | 2 +- doc/rendition.texi | 3 +- doc/rmt.8 | 6 +- doc/snapshot.texi | 5 +- doc/sparse.texi | 10 +- doc/stamp-vti | 8 +- doc/tar-snapshot-edit.texi | 2 +- doc/tar.1 | 50 +- doc/tar.info | 873 ++--- doc/tar.info-1 | 69 +- doc/tar.info-2 | 459 +-- doc/tar.texi | 74 +- doc/texify.sed | 3 +- doc/value.texi | 3 +- doc/version.texi | 8 +- gnu/Makefile.am | 278 +- gnu/Makefile.in | 494 ++- gnu/_Noreturn.h | 12 +- gnu/acl-errno-valid.c | 2 +- gnu/acl-internal.c | 16 +- gnu/acl-internal.h | 24 +- gnu/acl.h | 2 +- gnu/acl_entries.c | 8 +- gnu/alignof.h | 2 +- gnu/alloca.in.h | 2 +- gnu/allocator.h | 2 +- gnu/anytostr.c | 2 +- gnu/areadlink-with-size.c | 2 +- gnu/areadlink.c | 2 +- gnu/areadlink.h | 2 +- gnu/areadlinkat-with-size.c | 2 +- gnu/areadlinkat.c | 2 +- gnu/arg-nonnull.h | 2 +- gnu/argmatch.c | 2 +- gnu/argmatch.h | 2 +- gnu/argp-ba.c | 2 +- gnu/argp-eexst.c | 2 +- gnu/argp-fmtstream.c | 2 +- gnu/argp-fmtstream.h | 2 +- gnu/argp-fs-xinl.c | 2 +- gnu/argp-help.c | 2 +- gnu/argp-namefrob.h | 2 +- gnu/argp-parse.c | 2 +- gnu/argp-pin.c | 2 +- gnu/argp-pv.c | 2 +- gnu/argp-pvh.c | 2 +- gnu/argp-version-etc.c | 2 +- gnu/argp-version-etc.h | 2 +- gnu/argp-xinl.c | 2 +- gnu/argp.h | 2 +- gnu/asnprintf.c | 2 +- gnu/asprintf.c | 2 +- gnu/assure.h | 4 +- gnu/at-func.c | 2 +- gnu/at-func2.c | 2 +- gnu/backup-find.c | 14 +- gnu/backup-internal.h | 2 +- gnu/backupfile.c | 107 +- gnu/backupfile.h | 21 +- gnu/basename-lgpl.c | 2 +- gnu/basename.c | 2 +- gnu/bitrotate.h | 2 +- gnu/btowc.c | 2 +- gnu/c++defs.h | 2 +- gnu/c-ctype.h | 2 +- gnu/c-strcase.h | 2 +- gnu/c-strcasecmp.c | 2 +- gnu/c-strcaseeq.h | 2 +- gnu/c-strncasecmp.c | 2 +- gnu/canonicalize-lgpl.c | 4 +- gnu/careadlinkat.c | 2 +- gnu/careadlinkat.h | 2 +- gnu/cdefs.h | 514 +++ gnu/chdir-long.c | 2 +- gnu/chdir-long.h | 2 +- gnu/chown.c | 2 +- gnu/cloexec.c | 2 +- gnu/cloexec.h | 2 +- gnu/close-stream.c | 2 +- gnu/close.c | 2 +- gnu/closedir.c | 2 +- gnu/closeout.c | 2 +- gnu/closeout.h | 2 +- gnu/config.charset | 682 ---- gnu/creat-safer.c | 31 + gnu/dirent--.h | 2 +- gnu/dirent-private.h | 2 +- gnu/dirent-safer.h | 2 +- gnu/dirent.in.h | 2 +- gnu/dirfd.c | 2 +- gnu/dirname-lgpl.c | 2 +- gnu/dirname.c | 2 +- gnu/dirname.h | 4 +- gnu/dosname.h | 7 +- gnu/dup-safer-flag.c | 2 +- gnu/dup-safer.c | 2 +- gnu/dup.c | 2 +- gnu/dup2.c | 4 +- gnu/errno.in.h | 6 +- gnu/error.c | 6 +- gnu/error.h | 2 +- gnu/euidaccess.c | 13 +- gnu/exclude.c | 134 +- gnu/exclude.h | 6 +- gnu/exitfail.c | 2 +- gnu/exitfail.h | 2 +- gnu/faccessat.c | 2 +- gnu/fchdir.c | 2 +- gnu/fchmodat.c | 2 +- gnu/fchownat.c | 2 +- gnu/fcntl--.h | 32 + gnu/fcntl-safer.h | 27 + gnu/fcntl.c | 558 ++- gnu/fcntl.in.h | 4 +- gnu/fd-hook.c | 2 +- gnu/fd-hook.h | 2 +- gnu/fd-safer-flag.c | 2 +- gnu/fd-safer.c | 2 +- gnu/fdopendir.c | 2 +- gnu/fdutimensat.c | 2 +- gnu/file-has-acl.c | 19 +- gnu/fileblocks.c | 2 +- gnu/filename.h | 4 +- gnu/filenamecat-lgpl.c | 59 +- gnu/filenamecat.h | 2 +- gnu/flexmember.h | 2 +- gnu/float+.h | 2 +- gnu/float.c | 2 +- gnu/float.in.h | 2 +- gnu/fnmatch.c | 2 +- gnu/fnmatch.in.h | 69 +- gnu/fnmatch_loop.c | 2 +- gnu/fpending.c | 8 +- gnu/fpending.h | 2 +- gnu/fprintftime.h | 2 +- gnu/fseek.c | 2 +- gnu/fseeko.c | 12 +- gnu/fstat.c | 8 +- gnu/fstatat.c | 14 +- gnu/full-write.c | 2 +- gnu/full-write.h | 2 +- gnu/futimens.c | 2 +- gnu/get-permissions.c | 100 +- gnu/getcwd-lgpl.c | 2 +- gnu/getcwd.c | 2 +- gnu/getdelim.c | 4 +- gnu/getdtablesize.c | 4 +- gnu/getfilecon.c | 2 +- gnu/getgroups.c | 6 +- gnu/getline.c | 2 +- gnu/getopt-cdefs.in.h | 2 +- gnu/getopt-core.h | 2 +- gnu/getopt-ext.h | 2 +- gnu/getopt-pfx-core.h | 2 +- gnu/getopt-pfx-ext.h | 2 +- gnu/getopt.c | 4 +- gnu/getopt.in.h | 2 +- gnu/getopt1.c | 2 +- gnu/getopt_int.h | 2 +- gnu/getpagesize.c | 4 +- gnu/getprogname.c | 79 +- gnu/getprogname.h | 2 +- gnu/gettext.h | 4 +- gnu/gettime.c | 31 +- gnu/gettimeofday.c | 10 +- gnu/group-member.c | 2 +- gnu/hard-locale.c | 2 +- gnu/hard-locale.h | 2 +- gnu/hash.c | 2 +- gnu/hash.h | 2 +- gnu/human.c | 2 +- gnu/human.h | 2 +- gnu/intprops.h | 18 +- gnu/inttostr.h | 2 +- gnu/inttypes.in.h | 8 +- gnu/iswblank.c | 2 +- gnu/itold.c | 2 +- gnu/langinfo.in.h | 30 +- gnu/lchown.c | 2 +- gnu/libc-config.h | 174 + gnu/limits.in.h | 46 +- gnu/link.c | 8 +- gnu/linkat.c | 2 +- gnu/localcharset.c | 1085 ++++-- gnu/localcharset.h | 98 +- gnu/locale.in.h | 68 +- gnu/localeconv.c | 2 +- gnu/localtime-buffer.c | 4 +- gnu/localtime-buffer.h | 2 +- gnu/lseek.c | 6 +- gnu/lstat.c | 41 +- gnu/malloc.c | 2 +- gnu/malloca.c | 150 +- gnu/malloca.h | 13 +- gnu/malloca.valgrind | 7 - gnu/mbchar.c | 2 +- gnu/mbchar.h | 2 +- gnu/mbrtowc.c | 96 +- gnu/mbscasecmp.c | 2 +- gnu/mbsinit.c | 4 +- gnu/mbsrtowcs-impl.h | 2 +- gnu/mbsrtowcs-state.c | 2 +- gnu/mbsrtowcs.c | 2 +- gnu/mbtowc-impl.h | 2 +- gnu/mbtowc.c | 2 +- gnu/mbuiter.h | 2 +- gnu/memchr.c | 2 +- gnu/mempcpy.c | 2 +- gnu/memrchr.c | 4 +- gnu/minmax.h | 2 +- gnu/mkdir.c | 4 +- gnu/mkdirat.c | 2 +- gnu/mkdtemp.c | 2 +- gnu/mkfifo.c | 2 +- gnu/mkfifoat.c | 2 +- gnu/mknod.c | 2 +- gnu/mknodat.c | 6 +- gnu/mktime-internal.h | 18 +- gnu/mktime.c | 509 +-- gnu/modechange.c | 2 +- gnu/modechange.h | 2 +- gnu/msvc-inval.c | 2 +- gnu/msvc-inval.h | 2 +- gnu/msvc-nothrow.c | 2 +- gnu/msvc-nothrow.h | 4 +- gnu/nl_langinfo.c | 89 +- gnu/nstrftime.c | 48 +- gnu/obstack.c | 2 +- gnu/obstack.h | 4 +- gnu/open-safer.c | 46 + gnu/open.c | 4 +- gnu/openat-die.c | 2 +- gnu/openat-priv.h | 2 +- gnu/openat-proc.c | 2 +- gnu/openat-safer.c | 46 + gnu/openat.c | 2 +- gnu/openat.h | 2 +- gnu/opendir-safer.c | 2 +- gnu/opendir.c | 2 +- gnu/opendirat.c | 54 + gnu/opendirat.h | 2 + gnu/parse-datetime.c | 42 +- gnu/parse-datetime.h | 2 +- gnu/parse-datetime.y | 42 +- gnu/pathmax.h | 4 +- gnu/pipe-safer.c | 2 +- gnu/printf-args.c | 2 +- gnu/printf-args.h | 2 +- gnu/printf-parse.c | 4 +- gnu/printf-parse.h | 2 +- gnu/priv-set.c | 2 +- gnu/priv-set.h | 2 +- gnu/progname.c | 2 +- gnu/progname.h | 2 +- gnu/quote.h | 2 +- gnu/quotearg.c | 9 +- gnu/quotearg.h | 2 +- gnu/raise.c | 50 +- gnu/rawmemchr.c | 2 +- gnu/read.c | 4 +- gnu/readdir.c | 2 +- gnu/readlink.c | 2 +- gnu/readlinkat.c | 2 +- gnu/realloc.c | 2 +- gnu/ref-add.sin | 29 - gnu/ref-del.sin | 24 - gnu/regcomp.c | 372 +- gnu/regex.c | 8 +- gnu/regex.h | 25 +- gnu/regex_internal.c | 225 +- gnu/regex_internal.h | 72 +- gnu/regexec.c | 645 ++-- gnu/rename.c | 4 +- gnu/renameat.c | 6 +- gnu/{renameat2.c => renameatu.c} | 16 +- gnu/{renameat2.h => renameatu.h} | 10 +- gnu/rewinddir.c | 2 +- gnu/rmdir.c | 2 +- gnu/root-uid.h | 2 +- gnu/rpmatch.c | 2 +- gnu/safe-read.c | 14 +- gnu/safe-read.h | 2 +- gnu/safe-write.c | 2 +- gnu/safe-write.h | 2 +- gnu/same-inode.h | 4 +- gnu/save-cwd.c | 2 +- gnu/save-cwd.h | 2 +- gnu/savedir.c | 2 +- gnu/savedir.h | 2 +- gnu/se-selinux.in.h | 2 +- gnu/selinux-at.c | 2 +- gnu/selinux-at.h | 2 +- gnu/set-permissions.c | 270 +- gnu/setenv.c | 2 +- gnu/signal.in.h | 4 +- gnu/size_max.h | 2 +- gnu/sleep.c | 4 +- gnu/snprintf.c | 2 +- gnu/stat-time.h | 57 +- gnu/stat-w32.c | 8 +- gnu/stat-w32.h | 2 +- gnu/stat.c | 28 +- gnu/stdalign.in.h | 2 +- gnu/stdarg.in.h | 2 +- gnu/stdbool.in.h | 2 +- gnu/stddef.in.h | 2 +- gnu/stdint.in.h | 2 +- gnu/stdio-impl.h | 70 +- gnu/stdio.in.h | 6 +- gnu/stdlib.in.h | 10 +- gnu/stpcpy.c | 2 +- gnu/strcasecmp.c | 2 +- gnu/strchrnul.c | 2 +- gnu/strdup.c | 2 +- gnu/streq.h | 2 +- gnu/strerror-override.c | 2 +- gnu/strerror-override.h | 2 +- gnu/strerror.c | 2 +- gnu/strftime.h | 2 +- gnu/string.in.h | 2 +- gnu/strings.in.h | 2 +- gnu/stripslash.c | 2 +- gnu/strncasecmp.c | 2 +- gnu/strndup.c | 2 +- gnu/strnlen.c | 2 +- gnu/strnlen1.c | 2 +- gnu/strnlen1.h | 2 +- gnu/strtoimax.c | 2 +- gnu/strtol.c | 31 +- gnu/strtoll.c | 2 +- gnu/strtoul.c | 2 +- gnu/strtoull.c | 2 +- gnu/symlink.c | 2 +- gnu/symlinkat.c | 2 +- gnu/sys-limits.h | 42 + gnu/sys_stat.in.h | 8 +- gnu/sys_time.in.h | 2 +- gnu/sys_types.in.h | 17 +- gnu/sysexits.in.h | 2 +- gnu/tempname.c | 2 +- gnu/tempname.h | 2 +- gnu/time-internal.h | 2 +- gnu/time.in.h | 6 +- gnu/time_r.c | 2 +- gnu/time_rz.c | 17 +- gnu/timegm.c | 32 +- gnu/timespec-sub.c | 8 +- gnu/timespec.h | 32 +- gnu/tzset.c | 4 +- gnu/unistd--.h | 2 +- gnu/unistd-safer.h | 2 +- gnu/unistd.in.h | 51 +- gnu/unitypes.in.h | 2 +- gnu/uniwidth.in.h | 2 +- gnu/uniwidth/cjk.h | 2 +- gnu/uniwidth/width.c | 48 +- gnu/unlink.c | 2 +- gnu/unlinkat.c | 2 +- gnu/unlinkdir.c | 2 +- gnu/unlinkdir.h | 2 +- gnu/unlocked-io.h | 2 +- gnu/unsetenv.c | 2 +- gnu/unused-parameter.h | 2 +- gnu/utime.c | 4 +- gnu/utime.in.h | 4 +- gnu/utimens.c | 9 +- gnu/utimens.h | 2 +- gnu/utimensat.c | 6 +- gnu/vasnprintf.c | 24 +- gnu/vasnprintf.h | 2 +- gnu/vasprintf.c | 2 +- gnu/verify.h | 5 +- gnu/version-etc-fsf.c | 2 +- gnu/version-etc.c | 10 +- gnu/version-etc.h | 2 +- gnu/vsnprintf.c | 2 +- gnu/warn-on-use.h | 66 +- gnu/wchar.in.h | 2 +- gnu/wcrtomb.c | 2 +- gnu/wctype.in.h | 4 +- gnu/wcwidth.c | 31 +- gnu/write.c | 4 +- gnu/xalloc-die.c | 2 +- gnu/xalloc-oversized.h | 2 +- gnu/xalloc.h | 8 +- gnu/xasprintf.c | 2 +- gnu/xgetcwd.c | 2 +- gnu/xgetcwd.h | 2 +- gnu/xmalloc.c | 2 +- gnu/xsize.h | 2 +- gnu/xstrndup.c | 2 +- gnu/xstrndup.h | 4 +- gnu/xstrtol-error.c | 2 +- gnu/xstrtol.c | 16 +- gnu/xstrtol.h | 2 +- gnu/xvasprintf.c | 2 +- gnu/xvasprintf.h | 2 +- lib/Makefile.am | 3 +- lib/Makefile.in | 62 +- lib/attr-xattr.in.h | 2 +- lib/stdopen.c | 3 +- lib/wordsplit.c | 1703 +++++++-- lib/wordsplit.h | 221 +- lib/xattr-at.c | 2 +- lib/xattr-at.h | 2 +- m4/00gnulib.m4 | 2 +- m4/__inline.m4 | 22 + m4/absolute-header.m4 | 2 +- m4/acl.m4 | 7 +- m4/alloca.m4 | 2 +- m4/argp.m4 | 2 +- m4/asm-underscore.m4 | 71 - m4/backupfile.m4 | 2 +- m4/bison.m4 | 11 +- m4/btowc.m4 | 2 +- m4/builtin-expect.m4 | 2 +- m4/canonicalize.m4 | 6 +- m4/chdir-long.m4 | 2 +- m4/chown.m4 | 18 +- m4/clock_time.m4 | 2 +- m4/close-stream.m4 | 2 +- m4/close.m4 | 2 +- m4/closedir.m4 | 2 +- m4/closeout.m4 | 2 +- m4/codeset.m4 | 4 +- m4/configmake.m4 | 46 +- m4/d-ino.m4 | 2 +- m4/dirent-safer.m4 | 2 +- m4/dirent_h.m4 | 2 +- m4/dirfd.m4 | 2 +- m4/dirname.m4 | 2 +- m4/double-slash-root.m4 | 2 +- m4/dup.m4 | 2 +- m4/dup2.m4 | 2 +- m4/eealloc.m4 | 2 +- m4/environ.m4 | 22 +- m4/errno_h.m4 | 12 +- m4/error.m4 | 2 +- m4/euidaccess.m4 | 2 +- m4/exponentd.m4 | 2 +- m4/extensions.m4 | 10 +- m4/extern-inline.m4 | 18 +- m4/faccessat.m4 | 2 +- m4/fchdir.m4 | 18 +- m4/fchmodat.m4 | 2 +- m4/fchownat.m4 | 2 +- m4/fcntl-o.m4 | 12 +- m4/fcntl-safer.m4 | 16 + m4/fcntl.m4 | 2 +- m4/fcntl_h.m4 | 2 +- m4/fdopendir.m4 | 2 +- m4/fileblocks.m4 | 2 +- m4/filenamecat.m4 | 2 +- m4/flexmember.m4 | 2 +- m4/float_h.m4 | 2 +- m4/fnmatch.m4 | 231 +- m4/fnmatch_h.m4 | 75 + m4/fpending.m4 | 2 +- m4/fseek.m4 | 2 +- m4/fseeko.m4 | 11 +- m4/fstat.m4 | 9 +- m4/fstatat.m4 | 21 +- m4/futimens.m4 | 2 +- m4/getcwd-abort-bug.m4 | 12 +- m4/getcwd-path-max.m4 | 24 +- m4/getcwd.m4 | 18 +- m4/getdelim.m4 | 2 +- m4/getdtablesize.m4 | 2 +- m4/getgroups.m4 | 22 +- m4/getline.m4 | 2 +- m4/getopt.m4 | 2 +- m4/getpagesize.m4 | 25 +- m4/getprogname.m4 | 2 +- m4/gettext.m4 | 7 +- m4/gettime.m4 | 6 +- m4/gettimeofday.m4 | 16 +- m4/glibc21.m4 | 2 +- m4/gnulib-common.m4 | 131 +- m4/gnulib-comp.m4 | 58 +- m4/group-member.m4 | 2 +- m4/hard-locale.m4 | 11 - m4/host-cpu-c-abi.m4 | 281 +- m4/human.m4 | 2 +- m4/iconv.m4 | 3 +- m4/include_next.m4 | 2 +- m4/intlmacosx.m4 | 26 +- m4/intmax_t.m4 | 2 +- m4/inttostr.m4 | 2 +- m4/inttypes-pri.m4 | 2 +- m4/inttypes.m4 | 5 +- m4/inttypes_h.m4 | 2 +- m4/iswblank.m4 | 2 +- m4/langinfo_h.m4 | 19 +- m4/largefile.m4 | 2 +- m4/lchown.m4 | 2 +- m4/lib-ld.m4 | 2 +- m4/lib-link.m4 | 21 +- m4/lib-prefix.m4 | 112 +- m4/libunistring-base.m4 | 2 +- m4/limits-h.m4 | 26 +- m4/link-follow.m4 | 12 +- m4/link.m4 | 14 +- m4/linkat.m4 | 14 +- m4/localcharset.m4 | 10 +- m4/locale-fr.m4 | 8 +- m4/locale-ja.m4 | 6 +- m4/locale-zh.m4 | 6 +- m4/locale_h.m4 | 11 +- m4/localeconv.m4 | 2 +- m4/localtime-buffer.m4 | 2 +- m4/longlong.m4 | 12 +- m4/lseek.m4 | 2 +- m4/lstat.m4 | 14 +- m4/malloc.m4 | 8 +- m4/malloca.m4 | 2 +- m4/manywarnings.m4 | 103 +- m4/mbchar.m4 | 2 +- m4/mbiter.m4 | 2 +- m4/mbrtowc.m4 | 16 +- m4/mbsinit.m4 | 2 +- m4/mbsrtowcs.m4 | 2 +- m4/mbstate_t.m4 | 2 +- m4/mbtowc.m4 | 2 +- m4/memchr.m4 | 2 +- m4/mempcpy.m4 | 2 +- m4/memrchr.m4 | 2 +- m4/minmax.m4 | 2 +- m4/mkdir.m4 | 38 +- m4/mkdirat.m4 | 2 +- m4/mkdtemp.m4 | 2 +- m4/mkfifo.m4 | 31 +- m4/mkfifoat.m4 | 2 +- m4/mknod.m4 | 14 +- m4/mktime.m4 | 2 +- m4/mmap-anon.m4 | 2 +- m4/mode_t.m4 | 2 +- m4/modechange.m4 | 2 +- m4/msvc-inval.m4 | 2 +- m4/msvc-nothrow.m4 | 2 +- m4/multiarch.m4 | 2 +- m4/nl_langinfo.m4 | 11 +- m4/nls.m4 | 2 +- m4/nocrash.m4 | 6 +- m4/nstrftime.m4 | 2 +- m4/obstack.m4 | 2 +- m4/off_t.m4 | 2 +- m4/open-cloexec.m4 | 2 +- m4/open.m4 | 2 +- m4/openat.m4 | 2 +- m4/opendir.m4 | 2 +- m4/parse-datetime.m4 | 2 +- m4/pathmax.m4 | 6 +- m4/po.m4 | 28 +- m4/printf.m4 | 83 +- m4/priv-set.m4 | 2 +- m4/progtest.m4 | 2 +- m4/quote.m4 | 2 +- m4/quotearg.m4 | 2 +- m4/raise.m4 | 2 +- m4/rawmemchr.m4 | 2 +- m4/read.m4 | 2 +- m4/readdir.m4 | 2 +- m4/readlink.m4 | 14 +- m4/readlinkat.m4 | 2 +- m4/realloc.m4 | 6 +- m4/regex.m4 | 15 +- m4/rename.m4 | 62 +- m4/renameat.m4 | 4 +- m4/rewinddir.m4 | 2 +- m4/rmdir.m4 | 18 +- m4/rpmatch.m4 | 2 +- m4/safe-read.m4 | 2 +- m4/safe-write.m4 | 2 +- m4/save-cwd.m4 | 2 +- m4/savedir.m4 | 2 +- m4/selinux-context-h.m4 | 2 +- m4/selinux-selinux-h.m4 | 2 +- m4/setenv.m4 | 12 +- m4/signal_h.m4 | 2 +- m4/size_max.m4 | 12 +- m4/sleep.m4 | 16 +- m4/snprintf.m4 | 2 +- m4/ssize_t.m4 | 2 +- m4/stat-time.m4 | 2 +- m4/stat.m4 | 19 +- m4/stdalign.m4 | 2 +- m4/stdarg.m4 | 24 +- m4/stdbool.m4 | 2 +- m4/stddef_h.m4 | 31 +- m4/stdint.m4 | 15 +- m4/stdint_h.m4 | 2 +- m4/stdio_h.m4 | 6 +- m4/stdlib_h.m4 | 7 +- m4/stpcpy.m4 | 2 +- m4/strcase.m4 | 2 +- m4/strchrnul.m4 | 2 +- m4/strdup.m4 | 2 +- m4/strerror.m4 | 24 +- m4/string_h.m4 | 2 +- m4/strings_h.m4 | 2 +- m4/strndup.m4 | 2 +- m4/strnlen.m4 | 2 +- m4/strtoimax.m4 | 2 +- m4/strtol.m4 | 2 +- m4/strtoll.m4 | 2 +- m4/strtoul.m4 | 2 +- m4/strtoull.m4 | 2 +- m4/strtoumax.m4 | 2 +- m4/symlink.m4 | 14 +- m4/symlinkat.m4 | 14 +- m4/sys_socket_h.m4 | 2 +- m4/sys_stat_h.m4 | 2 +- m4/sys_time_h.m4 | 2 +- m4/sys_types_h.m4 | 2 +- m4/sysexits.m4 | 2 +- m4/tempname.m4 | 2 +- m4/time_h.m4 | 2 +- m4/time_r.m4 | 2 +- m4/time_rz.m4 | 35 +- m4/timegm.m4 | 2 +- m4/timespec.m4 | 2 +- m4/tm_gmtoff.m4 | 2 +- m4/tzset.m4 | 16 +- m4/unistd-safer.m4 | 2 +- m4/unistd_h.m4 | 13 +- m4/unlink.m4 | 18 +- m4/unlinkat.m4 | 2 +- m4/unlinkdir.m4 | 2 +- m4/unlocked-io.m4 | 2 +- m4/utime.m4 | 2 +- m4/utime_h.m4 | 35 +- m4/utimens.m4 | 14 +- m4/utimensat.m4 | 2 +- m4/utimes.m4 | 2 +- m4/vasnprintf.m4 | 2 +- m4/vasprintf.m4 | 2 +- m4/version-etc.m4 | 2 +- m4/vsnprintf.m4 | 2 +- m4/warn-on-use.m4 | 42 +- m4/warnings.m4 | 13 +- m4/wchar_h.m4 | 12 +- m4/wchar_t.m4 | 2 +- m4/wcrtomb.m4 | 8 +- m4/wctype_h.m4 | 2 +- m4/wcwidth.m4 | 16 +- m4/wint_t.m4 | 2 +- m4/write.m4 | 2 +- m4/xalloc.m4 | 2 +- m4/xgetcwd.m4 | 2 +- m4/xsize.m4 | 2 +- m4/xstrndup.m4 | 2 +- m4/xstrtol.m4 | 2 +- m4/xvasprintf.m4 | 2 +- po/Makefile.in.in | 21 +- po/POTFILES.in | 3 +- po/bg.gmo | Bin 54544 -> 87513 bytes po/bg.po | 2270 ++++++------ po/ca.gmo | Bin 62742 -> 64892 bytes po/ca.po | 829 +++-- po/cs.gmo | Bin 63100 -> 65322 bytes po/cs.po | 838 ++--- po/da.gmo | Bin 57405 -> 60955 bytes po/da.po | 867 ++--- po/de.gmo | Bin 63004 -> 65138 bytes po/de.po | 887 +++-- po/el.gmo | Bin 14467 -> 14467 bytes po/el.po | 759 ++-- po/eo.gmo | Bin 59483 -> 61556 bytes po/eo.po | 831 +++-- po/es.gmo | Bin 63330 -> 65476 bytes po/es.po | 832 +++-- po/et.gmo | Bin 58066 -> 57843 bytes po/et.po | 768 ++-- po/eu.gmo | Bin 32368 -> 32368 bytes po/eu.po | 766 ++-- po/fi.gmo | Bin 54605 -> 54573 bytes po/fi.po | 764 ++-- po/fr.gmo | Bin 65505 -> 65242 bytes po/fr.po | 768 ++-- po/ga.gmo | Bin 64462 -> 66621 bytes po/ga.po | 829 +++-- po/gl.gmo | Bin 10693 -> 10693 bytes po/gl.po | 759 ++-- po/hr.gmo | Bin 61372 -> 64216 bytes po/hr.po | 2442 +++++------- po/hu.gmo | Bin 65596 -> 67835 bytes po/hu.po | 908 +++-- po/id.gmo | Bin 58657 -> 58434 bytes po/id.po | 768 ++-- po/it.gmo | Bin 61930 -> 64063 bytes po/it.po | 864 +++-- po/ja.gmo | Bin 57493 -> 59565 bytes po/ja.po | 833 ++--- po/ko.gmo | Bin 64147 -> 63883 bytes po/ko.po | 768 ++-- po/ky.gmo | Bin 55118 -> 55118 bytes po/ky.po | 766 ++-- po/ms.gmo | Bin 9658 -> 9658 bytes po/ms.po | 759 ++-- po/nb.gmo | Bin 59166 -> 61227 bytes po/nb.po | 828 +++-- po/nl.gmo | Bin 62069 -> 64189 bytes po/nl.po | 858 ++--- po/pl.gmo | Bin 63270 -> 65482 bytes po/pl.po | 862 +++-- po/pt.gmo | Bin 3320 -> 62757 bytes po/pt.po | 2511 +++++++------ po/pt_BR.gmo | Bin 62176 -> 64315 bytes po/pt_BR.po | 834 ++--- po/ro.gmo | Bin 22883 -> 22883 bytes po/ro.po | 766 ++-- po/ru.gmo | Bin 81005 -> 83692 bytes po/ru.po | 847 ++--- po/sk.gmo | Bin 10303 -> 10303 bytes po/sk.po | 759 ++-- po/sl.gmo | Bin 59944 -> 59701 bytes po/sl.po | 768 ++-- po/sr.gmo | Bin 79785 -> 79489 bytes po/sr.po | 768 ++-- po/sv.gmo | Bin 60072 -> 62185 bytes po/sv.po | 842 ++--- po/tar.pot | 761 ++-- po/tr.gmo | Bin 61445 -> 61180 bytes po/tr.po | 768 ++-- po/uk.gmo | Bin 83099 -> 84643 bytes po/uk.po | 818 +++-- po/vi.gmo | Bin 67156 -> 69417 bytes po/vi.po | 836 ++--- po/zh_CN.gmo | Bin 55838 -> 58021 bytes po/zh_CN.po | 879 ++--- po/zh_TW.gmo | Bin 56518 -> 58535 bytes po/zh_TW.po | 823 +++-- rmt/Makefile.in | 58 +- rmt/rmt.c | 10 +- scripts/Makefile.am | 3 +- scripts/Makefile.in | 59 +- scripts/backup-specs | 3 +- scripts/backup.sh.in | 3 +- scripts/dump-remind.in | 3 +- scripts/restore.in | 3 +- src/Makefile.am | 3 +- src/Makefile.in | 62 +- src/arith.h | 3 +- src/buffer.c | 39 +- src/checkpoint.c | 59 +- src/common.h | 13 +- src/compare.c | 3 +- src/create.c | 11 +- src/delete.c | 3 +- src/exclist.c | 2 +- src/exit.c | 2 +- src/extract.c | 4 +- src/incremen.c | 34 +- src/list.c | 25 +- src/map.c | 2 +- src/misc.c | 19 +- src/names.c | 55 +- src/sparse.c | 54 +- src/suffix.c | 16 +- src/system.c | 3 +- src/tar.c | 72 +- src/tar.h | 3 +- src/transform.c | 10 +- src/unlink.c | 4 +- src/update.c | 5 +- src/utf8.c | 33 +- src/warning.c | 2 +- src/xattrs.c | 41 +- src/xattrs.h | 2 +- src/xheader.c | 84 +- tests/Makefile.am | 17 +- tests/Makefile.in | 76 +- tests/T-cd.at | 2 +- tests/T-dir00.at | 2 +- tests/T-dir01.at | 2 +- tests/T-empty.at | 3 +- tests/T-mult.at | 2 +- tests/T-nest.at | 2 +- tests/T-nonl.at | 8 +- tests/T-null.at | 3 +- tests/T-null2.at | 2 +- tests/T-rec.at | 2 +- tests/T-recurse.at | 2 +- tests/T-zfile.at | 2 +- tests/acls01.at | 2 +- tests/acls02.at | 2 +- tests/acls03.at | 2 +- tests/add-file.at | 2 +- tests/append.at | 3 +- tests/append01.at | 3 +- tests/append02.at | 3 +- tests/append03.at | 2 +- tests/append04.at | 2 +- tests/append05.at | 2 +- tests/atlocal.in | 3 +- tests/backup01.at | 3 +- tests/capabs_raw01.at | 2 +- tests/checkpoint/defaults.at | 25 + tests/checkpoint/dot-compat.at | 23 + tests/checkpoint/dot-int.at | 24 + tests/checkpoint/dot.at | 24 + tests/checkpoint/interval.at | 29 + tests/checkseekhole.c | 2 +- tests/chtype.at | 3 +- tests/ckmtime.c | 2 +- tests/comperr.at | 2 +- tests/comprec.at | 3 +- tests/compress.m4 | 56 + tests/delete01.at | 3 +- tests/delete02.at | 3 +- tests/delete03.at | 3 +- tests/delete04.at | 3 +- tests/delete05.at | 3 +- tests/difflink.at | 8 +- tests/dirrem01.at | 19 +- tests/dirrem02.at | 11 +- tests/exclude.at | 2 +- tests/exclude01.at | 2 +- tests/exclude02.at | 2 +- tests/exclude03.at | 2 +- tests/exclude04.at | 2 +- tests/exclude05.at | 3 +- tests/exclude06.at | 2 +- tests/exclude07.at | 2 +- tests/exclude08.at | 2 +- tests/exclude09.at | 2 +- tests/exclude10.at | 2 +- tests/exclude11.at | 2 +- tests/exclude12.at | 2 +- tests/exclude13.at | 2 +- tests/exclude14.at | 2 +- tests/exclude15.at | 2 +- tests/exclude16.at | 2 +- tests/extrac01.at | 3 +- tests/extrac02.at | 3 +- tests/extrac03.at | 3 +- tests/extrac04.at | 3 +- tests/extrac05.at | 3 +- tests/extrac06.at | 3 +- tests/extrac07.at | 3 +- tests/extrac08.at | 2 +- tests/extrac09.at | 2 +- tests/extrac10.at | 2 +- tests/extrac11.at | 2 +- tests/extrac12.at | 2 +- tests/extrac13.at | 2 +- tests/extrac14.at | 2 +- tests/extrac15.at | 2 +- tests/extrac16.at | 2 +- tests/extrac17.at | 2 +- tests/extrac18.at | 2 +- tests/extrac19.at | 2 +- tests/extrac20.at | 2 +- tests/extrac21.at | 2 +- tests/filerem01.at | 7 +- tests/filerem02.at | 7 +- tests/genfile.c | 75 +- tests/grow.at | 5 +- tests/gzip.at | 3 +- tests/ignfail.at | 3 +- tests/incr01.at | 3 +- tests/incr02.at | 3 +- tests/incr03.at | 3 +- tests/incr04.at | 3 +- tests/incr05.at | 2 +- tests/incr06.at | 2 +- tests/incr07.at | 2 +- tests/incr08.at | 54 +- tests/incr09.at | 2 +- tests/incr10.at | 2 +- tests/incr11.at | 2 +- tests/incremental.at | 3 +- tests/indexfile.at | 3 +- tests/label01.at | 2 +- tests/label02.at | 2 +- tests/label03.at | 2 +- tests/label04.at | 2 +- tests/label05.at | 2 +- tests/link01.at | 3 +- tests/link02.at | 2 +- tests/link03.at | 2 +- tests/link04.at | 2 +- tests/listed01.at | 3 +- tests/listed02.at | 3 +- tests/listed03.at | 2 +- tests/listed04.at | 2 +- tests/listed05.at | 2 +- tests/long01.at | 3 +- tests/longv7.at | 3 +- tests/lustar01.at | 3 +- tests/lustar02.at | 3 +- tests/lustar03.at | 3 +- tests/map.at | 2 +- tests/multiv01.at | 3 +- tests/multiv02.at | 3 +- tests/multiv03.at | 3 +- tests/multiv04.at | 3 +- tests/multiv05.at | 3 +- tests/multiv06.at | 2 +- tests/multiv07.at | 2 +- tests/multiv08.at | 2 +- tests/multiv09.at | 2 +- tests/multiv10.at | 2 +- tests/numeric.at | 11 +- tests/old.at | 3 +- tests/onetop01.at | 2 +- tests/onetop02.at | 2 +- tests/onetop03.at | 2 +- tests/onetop04.at | 2 +- tests/onetop05.at | 2 +- tests/opcomp01.at | 2 +- tests/opcomp02.at | 2 +- tests/opcomp03.at | 2 +- tests/opcomp04.at | 2 +- tests/opcomp05.at | 2 +- tests/opcomp06.at | 2 +- tests/options.at | 3 +- tests/options02.at | 3 +- tests/options03.at | 2 +- tests/owner.at | 2 +- tests/package.m4 | 4 +- tests/pipe.at | 3 +- tests/positional01.at | 2 +- tests/positional02.at | 2 +- tests/positional03.at | 2 +- tests/recurs02.at | 2 +- tests/recurse.at | 3 +- tests/remfiles01.at | 2 +- tests/remfiles02.at | 2 +- tests/remfiles03.at | 2 +- tests/remfiles04a.at | 2 +- tests/remfiles04b.at | 2 +- tests/remfiles04c.at | 2 +- tests/remfiles05a.at | 2 +- tests/remfiles05b.at | 2 +- tests/remfiles05c.at | 2 +- tests/remfiles06a.at | 2 +- tests/remfiles06b.at | 2 +- tests/remfiles06c.at | 2 +- tests/remfiles07a.at | 2 +- tests/remfiles07b.at | 2 +- tests/remfiles07c.at | 2 +- tests/remfiles08a.at | 2 +- tests/remfiles08b.at | 2 +- tests/remfiles08c.at | 2 +- tests/remfiles09a.at | 2 +- tests/remfiles09b.at | 2 +- tests/remfiles09c.at | 2 +- tests/remfiles10.at | 2 +- tests/rename01.at | 3 +- tests/rename02.at | 3 +- tests/rename03.at | 3 +- tests/rename04.at | 2 +- tests/rename05.at | 2 +- tests/same-order01.at | 3 +- tests/same-order02.at | 3 +- tests/selacl01.at | 2 +- tests/selnx01.at | 2 +- tests/shortfile.at | 2 +- tests/shortrec.at | 3 +- tests/shortupd.at | 2 +- tests/sigpipe.at | 2 +- tests/sparse01.at | 3 +- tests/sparse02.at | 3 +- tests/sparse03.at | 6 +- tests/sparse04.at | 2 +- tests/sparse05.at | 5 +- tests/sparse06.at | 2 +- tests/sparse07.at | 2 +- tests/sparsemv.at | 3 +- tests/sparsemvp.at | 3 +- tests/spmvp00.at | 3 +- tests/spmvp01.at | 3 +- tests/spmvp10.at | 3 +- tests/sptrcreat.at | 58 + tests/sptrdiff00.at | 52 + tests/sptrdiff01.at | 52 + tests/star/README | 3 +- tests/star/gtarfail.at | 3 +- tests/star/gtarfail2.at | 3 +- tests/star/multi-fail.at | 3 +- tests/star/pax-big-10g.at | 6 +- tests/star/quicktest.sh | 3 +- tests/star/ustar-big-2g.at | 6 +- tests/star/ustar-big-8g.at | 6 +- tests/testsuite | 5905 +++++++++++++++++++----------- tests/testsuite.at | 39 +- tests/time01.at | 2 +- tests/time02.at | 2 +- tests/truncate.at | 11 +- tests/update.at | 3 +- tests/update01.at | 2 +- tests/update02.at | 2 +- tests/update03.at | 2 +- tests/verbose.at | 3 +- tests/verify.at | 2 +- tests/version.at | 3 +- tests/volsize.at | 3 +- tests/volume.at | 3 +- tests/xattr01.at | 2 +- tests/xattr02.at | 2 +- tests/xattr03.at | 2 +- tests/xattr04.at | 2 +- tests/xattr05.at | 2 +- tests/xattr06.at | 2 +- tests/xattr07.at | 2 +- tests/xform-h.at | 3 +- tests/xform01.at | 2 +- tests/xform02.at | 2 +- tests/xform03.at | 14 +- 1044 files changed, 36460 insertions(+), 31954 deletions(-) delete mode 100755 build-aux/ar-lib create mode 100644 gnu/cdefs.h delete mode 100644 gnu/config.charset create mode 100644 gnu/creat-safer.c create mode 100644 gnu/fcntl--.h create mode 100644 gnu/fcntl-safer.h create mode 100644 gnu/libc-config.h delete mode 100644 gnu/malloca.valgrind create mode 100644 gnu/open-safer.c create mode 100644 gnu/openat-safer.c create mode 100644 gnu/opendirat.c create mode 100644 gnu/opendirat.h delete mode 100644 gnu/ref-add.sin delete mode 100644 gnu/ref-del.sin rename gnu/{renameat2.c => renameatu.c} (92%) rename gnu/{renameat2.h => renameatu.h} (79%) create mode 100644 gnu/sys-limits.h create mode 100644 m4/__inline.m4 delete mode 100644 m4/asm-underscore.m4 create mode 100644 m4/fcntl-safer.m4 create mode 100644 m4/fnmatch_h.m4 delete mode 100644 m4/hard-locale.m4 create mode 100644 tests/checkpoint/defaults.at create mode 100644 tests/checkpoint/dot-compat.at create mode 100644 tests/checkpoint/dot-int.at create mode 100644 tests/checkpoint/dot.at create mode 100644 tests/checkpoint/interval.at create mode 100644 tests/compress.m4 create mode 100644 tests/sptrcreat.at create mode 100644 tests/sptrdiff00.at create mode 100644 tests/sptrdiff01.at diff --git a/ChangeLog b/ChangeLog index 5c845b0b..51501724 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,620 @@ +2019-02-23 Sergey Poznyakoff <gray@gnu.org> + + Version 1.32 + +2019-02-04 Sergey Poznyakoff <gray@gnu.org> + + Minor fixes in docs. + + * doc/tar.1: Remove description of the --preserve option + Document verbosity levels. + * doc/tar.texi: Fix description of the -o option. + +2019-01-15 Daniel Le <greenrecyclebin@gmail.com> + + Fix typos in the documentation + + Short option "t" was mistranslated to "--test" instead of "--list" + in commit + 67cad0792b4e6cf22c6cb1b167b149cd176d49f9. + +2019-01-15 Sergey Poznyakoff <gray@gnu.org> + + Fix build on AIX + + * src/unlink.c (flush_deferred_unlinks): Avoid possible duplicate + case + (if ENOTEMPTY==EEXIST) + +2019-01-15 Sergey Poznyakoff <gray@gnu.org> + + Version 1.31.90 + +2019-01-14 Sergey Poznyakoff <gray@gnu.org> + + Ensure gnu format when running checkpoint tests + +2019-01-14 Sergey Poznyakoff <gray@gnu.org> + + Fix compression tests + + Existing compression tests used tar with compiled-in + defaults. However, + some of the defaults are sure to create archives that are not + byte-to-byte + reproducible (e.g. DEFAULT_ARCHIVE_FORMAT=POSIX, because the + name field + in posix extended headers uses PID of the creating process + by default). + Moreover, some compressors (e.g. gzip) store current timestamp in + the file header when compressing from stdin, so that using cmp + on the + two created archives as the tests did is error-prone. Another + problem + is that the tests implicitly assumed that tar uses archive + suffix to + recognize its format when extracting, which isn't the + case. Finally, + there's hardly any reason in using sed to create m4 sources, when + everything can be achieved by m4 itself. + + * tests/Makefile.am: Remove generation of compress-*.at files. + * tests/compress.at.in: Remove. + * tests/compress.m4: New file. + * tests/testsuite.at: Include compress.m4, use TAR_CHECK_COMPRESS + to + check compression options. + +2019-01-14 Sergey Poznyakoff <gray@gnu.org> + + Fix possible NULL dereference (savannah bug #55369) + + * src/sparse.c (pax_decode_header): Check return from + find_next_block. + +2019-01-14 Sergey Poznyakoff <gray@gnu.org> + + Fix compilation without iconv. + +2019-01-14 Sergey Poznyakoff <gray@gnu.org> + + Fix iconv usage. + + Patch by Christian Weisgerber. + + * src/utf8.c (utf8_convert): non-zero return from iconv means + failure. + +2019-01-14 Pavel Raiskup <praiskup@redhat.com> + + tests: fix numeric.at for BSD + + While creating file, BSD kernels inherit the group ownership from + parent directory. + http://lists.gnu.org/archive/html/bug-tar/2016-06/msg00000.html + + * tests/numeric.at: Attempt to 'chown' the newly created directory + to proper group (at least on affected machines that command is + expected to succeed). + +2019-01-14 Sergey Poznyakoff <gray@gnu.org> + + Fix typo in manpage. + +2019-01-14 Sergey Poznyakoff <gray@gnu.org> + + Fix expected output in dirrem tests. + + In both tests, the "file changed as we read it" warning might be + produced for dir/sub, depending on the ctime resolution and + timing. + The problem was fixed by 64b43fdf70d82c39eb2ca900cd4f8e49, + but regressed + after e7cd377f7801d42aa8e07addff93d2150666c237, which removed + 1 second + delays between each pair of checkpoints. Since the presense + or absense + of this warning is irrelevant for the test, it is now suppressed. + + * tests/dirrem01.at: Suppress the file-changed warning. + * tests/dirrem02.at: Likewise. + +2019-01-12 Sergey Poznyakoff <gray@gnu.org.ua> + + Fix the use of --checkpoint without explicit --checkpoint-action + + * src/checkpoint.c (checkpoint_finish_compile): Set default + action, + if necessary. + * tests/checkpoint/defaults.at: New testcase. + * tests/checkpoint/dot-compat.at: New testcase. + * tests/checkpoint/dot-int.at: New testcase. + * tests/checkpoint/dot.at: New testcase. + * tests/checkpoint/interval.at: New testcase. + * tests/Makefile.am: Add new testcases. + * tests/testsuite.at Include new testcases. + +2019-01-10 Sergey Poznyakoff <gray@gnu.org.ua> + + Remove erroneous abort() call + + The call was introduced by commit ccef8581. It caused tar to abort + on perfectly normal operations, like untarring archives containing + ./ with the -U option, + + See + http://lists.gnu.org/archive/html/bug-tar/2019-01/msg00019.html + for details. + + * src/extract.c (maybe_recoverable): Remove misplaced call + to abort(). + +2019-01-02 Sergey Poznyakoff <gray@gnu.org> + + Version 1.31 + +2018-12-28 Sergey Poznyakoff <gray@gnu.org> + + Fix the difflink test + + Hardlinking a symlink produces hardlink on BSD and symlink + on GNU/Linux. Avoid the ambiguity. + + * tests/difflink.at: Create hard link from a regular file. + +2018-12-28 Sergey Poznyakoff <gray@gnu.org> + + Work over a bug in gnulib error() + + The error() function from glibc correctly prefixes each message it + prints with program_name as set by set_program_name. However, its + replacement from gnulib, which is linked in on systems where this + function is not available, prints the name returned by + getprogname() + instead. Due to this messages output by tar subprocess (which + sets its + program name to 'tar (child)') become indiscernible from those + printed + by the main process. In particular, this breaks the remfiles01.at + and + remfiles02.at test cases. + + * configure.ac: Define ENABLE_ERROR_PRINT_PROGNAME if using + gnulib error(). + * src/tar.c [ENABLE_ERROR_PRINT_PROGNAME] (tar_print_progname): + New function. + (main) [ENABLE_ERROR_PRINT_PROGNAME]: Set error_print_progname. + +2018-12-28 Sergey Poznyakoff <gray@gnu.org> + + Implement the "wait" checkpoint action. + + This action instructs tar to pause until given signal is + delivered. + The newer genfile tool uses this action for communication between + genfile and tar in exec mode. This eliminates race conitions and + speeds up the tests based on exec mode. + + * doc/tar.texi: Document changes. + * paxutils: Upgrade. + * src/checkpoint.c: Implement the wait action. + * src/common.h (decode_signal): New proto. + * src/tar.c (decode_signal): New function. + (set_stat_signal): Rewrite. + * tests/dirrem01.at: Adjust genfile and tar command line arguments + to use the new feature. + * tests/dirrem02.at: Likewise. + * tests/filerem01.at: Likewise. + * tests/filerem02.at: Likewise. + * tests/grow.at: Likewise. + * tests/sptrcreat.at: Likewise. + * tests/sptrdiff00.at: Likewise. + * tests/sptrdiff01.at: Likewise. + * tests/truncate.at: Likewise. + +2018-12-27 Sergey Poznyakoff <gray@gnu.org> + + Fix CVE-2018-20482 + + * NEWS: Update. + * src/sparse.c (sparse_dump_region): Handle short read condition. + (sparse_extract_region,check_data_region): Fix dumped_size + calculation. + Handle short read condition. + (pax_decode_header): Fix dumped_size calculation. + * tests/Makefile.am: Add new testcases. + * tests/testsuite.at: Likewise. + + * tests/sptrcreat.at: New file. + * tests/sptrdiff00.at: New file. + * tests/sptrdiff01.at: New file. + +2018-12-21 Sergey Poznyakoff <gray@gnu.org> + + Disallow modifications to the global pax extended header in + update mode. + + Updating global headers in update mode is not possible, because: + + 1) If the original archive was not in PAX format, writing the + global header would overwrite first member header (and eventually + data blocks) in the archive. + 2) Otherwise, using the --pax-option can make the updated header + occupy more blocks than the original one, which would lead to the + same effect as in 1. + + This also fixes + http://lists.gnu.org/archive/html/bug-tar/2018-12/msg00007.html + + * src/xheader.c (xheader_forbid_global): New function. + * src/common.h (xheader_forbid_global): New prototype. + * src/update.c (update_archive): Use xheader_forbid_global, + instead + of trying to write global extended header record. + +2018-12-21 Sergey Poznyakoff <gray@gnu.org> + + Bugfix + + Bug reported in + http://lists.gnu.org/archive/html/bug-tar/2018-12/msg00014.html + + * src/names.c (collect_and_sort_names): Fix iteration over + namelist. + +2018-12-21 Sergey Poznyakoff <gray@gnu.org> + + Fix semantics of -K used together with explicit member names. + + This also fixes the bug reported in + http://lists.gnu.org/archive/html/bug-tar/2018-12/msg00012.html + + * src/common.h (starting_file_option): Describe the variable. + * src/names.c (add_starting_file): New function. + (name_match): Ignore everything before the member indicated by the + --starting-file option + * src/tar.c: Use add_starting_file to handle the -K option. + +2018-12-21 Sergey Poznyakoff <gray@gnu.org> + + Fix error handling when reading incremental snapshots + + Bug reported in + http://lists.gnu.org/archive/html/bug-tar/2018-12/msg00008.html + + * incremen.c (read_incr_db_01): Don't try to continue after + errors. + +2018-12-21 Sergey Poznyakoff <gray@gnu.org> + + Reject pax options starting with equals sign + + Bug reported in + http://lists.gnu.org/archive/html/bug-tar/2018-12/msg00010.html + + * xheader.c (xheader_set_keyword_equal): Bail out if the keyword + starts + with = + +2018-12-21 Sergey Poznyakoff <gray@gnu.org> + + Fix buffer overflow + + Bug reported in + http://lists.gnu.org/archive/html/bug-tar/2018-12/msg00011.html + + * src/xheader.c (xheader_format_name): fix length calculation + +2018-12-21 Sergey Poznyakoff <gray@gnu.org> + + Fix improper memory access + + Bug reported in + http://lists.gnu.org/archive/html/bug-tar/2018-12/msg00009.html + + * src/transform.c (parse_transform_expr): Check if re is not empty + before accessing its last byte. + +2018-11-24 Sergey Poznyakoff <gray@gnu.org> + + Fix parsing of ACLs + + Text returned by acl_to_text can contain comments (introduced + by #). + Strip comments and horizontal tabs prior to storing ACLs in PAX + headers. + + * src/xattrs.c (xattrs_acls_cleanup): New function. + (xattrs__acls_get_a,xattrs__acls_get_d): Use xattrs_acls_cleanup. + +2018-11-24 Sergey Poznyakoff <gray@gnu.org> + + Don't try to read past the end of header string fields + + * src/common.h (assign_string_n): New proto. + (ASSIGN_STRING_N): New macro. + * src/misc.c (assign_string_n): New function. + * gnulib.modules: Add strnlen. + * src/buffer.c: Use assign_string_n where appropriate. + * src/list.c: Likewise. + +2018-11-12 Sergey Poznyakoff <gray@gnu.org> + + Fix verbose ACL listing + + * src/xattrs.c (acls_one_line): Advance pos. + (xattrs_print): Insert a comma between ACL and default ACL if both + are non-empty. + +2018-10-29 Paul Eggert <eggert@cs.ucla.edu> + + tar: fix numbered backup bug + + * src/misc.c (maybe_backup_file): Pass chdir_fd, not AT_FDCWD, + to find_backup_file_name. This fixes a bug whereby the wrong + backup file name was chosen for numbered backups. + +2018-10-29 Paul Eggert <eggert@cs.ucla.edu> + + * src/tar.c (expand_pax_option): Pacify recent GCC. + +2018-10-29 Paul Eggert <eggert@cs.ucla.edu> + + build: update gnulib submodule to latest + + * src/misc.c (maybe_backup_file): Adjust to Gnulib change. + +2018-08-02 Sergey Poznyakoff <gray@gnu.org> + + Minor fixes in wordsplit.c + +2018-08-02 Paul Eggert <eggert@cs.ucla.edu> + + build: update gnulib submodule to latest + +2018-07-31 Sergey Poznyakoff <gray@gnu.org> + + Silence gcc warnings in wordsplit + +2018-07-31 Sergey Poznyakoff <gray@gnu.org> + + Fix double-free introduced by 577dc345 + + * src/utf8.c (utf8_convert): Don't store freed value in *output + +2018-07-31 Pavel Raiskup <praiskup@redhat.com> + + Report race on systems without O_DIRECTORY + + * src/names.c (collect_and_sort_names): Report ENOTDIR after + successful fstat() but !S_ISDIR. + +2018-07-31 Pavel Raiskup <praiskup@redhat.com> + + Avoid some resource leaks + + * src/incremen.c (store_rename): Free temp_name, leaked before for + each renamed directory with --listed-incremental. + * src/transform.c (add_literal_segment): Tighten arguments by + const. + (parse_transform_expr): Free 'str', leaked storage for each + --transform option before. + * src/utf8.c (utf8_convert): Deallocate buffer for failed iconv() + call so callers don't have to. + +2018-07-31 Sergey Poznyakoff <gray@gnu.org> + + Sync wordsplit and paxutils with the most recent versions + +2018-06-14 Paul Eggert <eggert@cs.ucla.edu> + + * doc/tar.1: Fix font typo noted by esr. + +2018-05-16 Paul Eggert <eggert@cs.ucla.edu> + + * doc/tar.1: Don't refer to nonexistent tar(5). + +2018-04-13 Jim Meyering <meyering@fb.com> + + --one-top-level: avoid a heap-buffer-overflow + + * NEWS: Mention this. + * src/suffix.c (strip_compression_suffix): Fix string comparison + guard. + Without this change, some ASAN-enabled test runs would fail + with the + following. Also, strip an additional .tar suffix only if + the just- + stripped suffix did not match /^\.t/". + + ==30815==ERROR: AddressSanitizer: heap-buffer-overflow on + address 0x6020000002ed at pc 0x00000049d1f4 bp 0x7ffeb5906d50 + sp 0x7ffeb5906500 + READ of size 1 at 0x6020000002ed thread T0 + SCARINESS: 12 (1-byte-read-heap-buffer-overflow) + #0 0x49d1f3 in __interceptor_strncmp + /j/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:407 + #1 0x5670f3 in strip_compression_suffix + /j/tar/src/suffix.c:107 + #2 0x575788 in decode_options /j/tar/src/tar.c:2545 + #3 0x5760c0 in main /j/tar/src/tar.c:2708 + #4 0x7f105090df29 in __libc_start_main ../csu/libc-start.c:308 + #5 0x408629 in _start (/j/tar/src/tar+0x408629) + + 0x6020000002ed is located 3 bytes to the left of 6-byte region + [0x6020000002f0,0x6020000002f6) + allocated by thread T0 here: + #0 0x4d0710 in __interceptor_malloc + /j/gcc/libsanitizer/asan/asan_malloc_linux.cc:86 + #1 0x4908ad in __interceptor_strndup + /j/gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:326 + #2 0x5cbcbd in xstrndup /j/tar/gnu/xstrndup.c:32 + #3 0x5a325b in base_name /j/tar/gnu/basename.c:57 + #4 0x575772 in decode_options /j/tar/src/tar.c:2544 + #5 0x5760c0 in main /j/tar/src/tar.c:2708 + #6 0x7f105090df29 in __libc_start_main ../csu/libc-start.c:308 + +2018-04-07 Andrew Hounsell <andrewhounsell@gmail.com> + + Tiny fix + + * doc/snapshot.texi: Fix a typo + * scripts/tar-snapshot-edit: Fix a typo + +2018-04-07 Jim Meyering <jim@meyering.net> + + tests: avoid test failure with non-ancient autoconf + + Running "make check" would fail with this: + T-nonl.at:30: error: m4_divert_push: cannot change diversion + to `GROW' inside m4_expand + * tests/T-nonl.at: Use printf in place of AS_ECHO_N. + These days, printf should work for everyone. + +2018-04-07 Jim Meyering <meyering@fb.com> + + maint: avoid -Wstringop-truncation warnings from upcoming GCC8 + + * src/create.c (start_private_header, start_header): Convert + trivial uses of strncpy to memcpy, to avoid warnings like this: + In function 'strncpy', + inlined from 'start_private_header' at create.c:522:3: + /usr/include/bits/string_fortified.h:106:10: warning: \ + '__builtin_strncpy' output truncated before terminating nul \ + copying 2 bytes from a string of the same length \ + [-Wstringop-truncation] + +2018-04-07 Jim Meyering <meyering@fb.com> + + maint: avoid -Wstringop-truncation warnings upcoming GCC8 + + * src/buffer.c (gnu_add_multi_volume_header): Convert a use of + strncpy to memcpy, to avoid this warning: + In function 'strncpy', + inlined from 'gnu_add_multi_volume_header' at buffer.c:1782:3, + ... + /usr/include/bits/string_fortified.h:106:10: error: + '__builtin_strncpy'\ + specified bound 100 equals destination size \ + [-Werror=stringop-truncation] + +2018-04-07 Jim Meyering <meyering@fb.com> + + maint: avoid warnings from upcoming GCC8 + + * src/transform.c (_single_transform_name_to_obstack): Mark with + FALLTHROUGH statement rather than /* FALL THROUGH */ comment. + Only the former works with gcc-8. + * src/extract.c (maybe_recoverable): Call abort to tell gcc-8 that + this code is unreachable. + +2018-04-07 Sergey Poznyakoff <gray@gnu.org> + + Rewrite struct tm formatting + + * src/list.c (tartime): Use strftime instead of manually + formatting + fields of the struct tm. This should also suppress some gcc + warnings. + +2018-04-07 Jim Meyering <jim@meyering.net> + + tests: add coverage for new --zstd and all other compression tools + + * tests/compress.at.in: New file: template from which each + per-compression-tool test is derived. + * tests/Makefile.am (TESTSUITE_AT): Add it. + (EXTRA_DIST): Add compress.at.in. + (compress-*.at): New rules to generate a file/tests for each + compression tool. + * tests/testsuite.at (Compression): Add each of these generated + files in a new section. + * tests/.gitignore: Ignore the new generated files. + +2018-03-18 Aaron Schrab <aaron@schrab.com> + + Fix typo + +2018-03-18 Sergey Poznyakoff <gray@gnu.org> + + Version 1.30.90 + + * NEWS: Update. + * configure.ac: Update. + * THANKS: Add Adam Borowski. + +2018-03-18 Adam Borowski <kilobyte@angband.pl> + + Add support for zstd compression + + * configure.ac (zstd): Register compression program. + * doc/tar.1: Mention --zstd. + * doc/tar.texi: Document zstd support. + * src/buffer.c: Register zstd compression. + * src/suffix.c: Add suffixes zst and tzst. + * src/tar.c: New compression option --zstd. + +2018-03-18 Pavel Raiskup <praiskup@redhat.com> + + tests: fix race in dirrem01 and dirrem02 + + Previously the '--checkpoint-action=echo' was triggered after + '--checkpoint-action=sleep=1' - so the order of events *usually* + was (for --format='gnu'): + + ... + 1. checkpoint handler before write of 'dir/sub' member + 2. one-second delay + 3. stderr write: 'tar: Write checkpoint 3' + 4. write the member 'dir/sub' into the archive + 5. check that the member's ctime has not been changed + 6. genfile's detecting 'Write checkpoint', doing unlink + ... + + But sometimes, the genfile was fast enough to win the race and + unlinked the directory before the member was written into the + archive (IOW, the order was 1-2-3-6-4-5). This led to the + occasional warning 'tar: dir/sub: file changed as we read it'. + + Swap the order of 'sleep=1' and 'echo' actions so the genfile + utility has (hopefully) enough time to do the unlink before + writing the file into the archive (enforce 1-2-3-6-4-5 order). + + * tests/dirrem01.at: Swap 'sleep=1' and 'echo' actions. + * tests/dirrem02.at: Likewise. + +2018-03-13 Sergey Poznyakoff <gray@gnu.org> + + Fix typos in the docs + +2018-03-13 Sergey Poznyakoff <gray@gnu.org.ua> + + Provide a way to skip tests that create very large files + + Define environment variable TARTEST_SKIP_LARGE_FILES=1 in order + to skip tests that require lots of disk space. + + * tests/testsuite.at (AT_SKIP_LARGE_FILES): New macro. + * tests/sparse03.at: Mark test with AT_SKIP_LARGE_FILES. + * tests/sparse05.at: Likewise. + * tests/star/pax-big-10g.at: Likewise. + * tests/star/ustar-big-2g.at: Likewise. + * tests/star/ustar-big-8g.at: Likewise. + +2018-03-13 Sergey Poznyakoff <gray@gnu.org.ua> + + Testsuite bugfix + + * tests/difflink.at: Define order of files within tested archive. + +2018-03-13 Sergey Poznyakoff <gray@gnu.org> + + testsuite: account for absolute file names starting with double + slash + + * tests/incr08.at: Absolute file names can start with // + * tests/xform03.at: Likewise. + 2017-12-17 Sergey Poznyakoff <gray@gnu.org> Version 1.30 diff --git a/Makefile.am b/Makefile.am index b4815971..15946e7a 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1,7 +1,6 @@ # Main Makefile for GNU tar. -# Copyright 1994-1997, 1999-2001, 2003, 2007, 2009, 2013-2014, 2016-2017 -# Free Software Foundation, Inc. +# Copyright 1994-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/Makefile.in b/Makefile.in index f3b817b5..502e4c44 100644 --- a/Makefile.in +++ b/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -16,8 +16,7 @@ # Main Makefile for GNU tar. -# Copyright 1994-1997, 1999-2001, 2003, 2007, 2009, 2013-2014, 2016-2017 -# Free Software Foundation, Inc. +# Copyright 1994-2019 Free Software Foundation, Inc. # This file is part of GNU tar. @@ -60,7 +59,17 @@ # changelog_dir [mandatory] Directory where to create ChangeLog # changelog_amend_file [optional] Amendment file VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -122,26 +131,12 @@ PRE_UNINSTALL = : POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ -DIST_COMMON = $(srcdir)/Make.rules INSTALL NEWS README AUTHORS \ - ChangeLog THANKS $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/configure $(am__configure_deps) \ - $(srcdir)/config.h.in ABOUT-NLS COPYING TODO build-aux/ar-lib \ - build-aux/compile build-aux/config.guess \ - build-aux/config.rpath build-aux/config.sub build-aux/depcomp \ - build-aux/install-sh build-aux/mdate-sh build-aux/missing \ - build-aux/texinfo.tex build-aux/ylwrap \ - $(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 subdir = . ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ + $(top_srcdir)/m4/__inline.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/acl.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argp.m4 \ - $(top_srcdir)/m4/asm-underscore.m4 \ $(top_srcdir)/m4/backupfile.m4 $(top_srcdir)/m4/bison.m4 \ $(top_srcdir)/m4/btowc.m4 $(top_srcdir)/m4/builtin-expect.m4 \ $(top_srcdir)/m4/canonicalize.m4 \ @@ -161,11 +156,12 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/extern-inline.m4 \ $(top_srcdir)/m4/faccessat.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/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \ - $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpending.m4 \ + $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.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/flexmember.m4 \ + $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \ + $(top_srcdir)/m4/fnmatch_h.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 \ @@ -179,7 +175,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/group-member.m4 \ - $(top_srcdir)/m4/hard-locale.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.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 \ @@ -274,6 +269,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ + $(am__configure_deps) $(am__DIST_COMMON) am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ configure.lineno config.status.lineno mkinstalldirs = $(install_sh) -d @@ -337,6 +334,18 @@ ETAGS = etags CTAGS = ctags CSCOPE = cscope DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Make.rules $(srcdir)/Makefile.in \ + $(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 ABOUT-NLS AUTHORS COPYING \ + ChangeLog INSTALL NEWS README THANKS TODO build-aux/compile \ + build-aux/config.guess build-aux/config.rpath \ + build-aux/config.sub build-aux/depcomp build-aux/install-sh \ + build-aux/mdate-sh build-aux/missing build-aux/texinfo.tex \ + build-aux/ylwrap DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) distdir = $(PACKAGE)-$(VERSION) top_distdir = $(distdir) @@ -469,6 +478,7 @@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ +GNULIB_FNMATCH = @GNULIB_FNMATCH@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ @@ -501,6 +511,7 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ @@ -517,6 +528,7 @@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ +GNULIB_LOCALENAME = @GNULIB_LOCALENAME@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ @@ -755,6 +767,7 @@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ +HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ @@ -778,6 +791,9 @@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ +HAVE_FNMATCH = @HAVE_FNMATCH@ +HAVE_FNMATCH_H = @HAVE_FNMATCH_H@ +HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ @@ -790,13 +806,16 @@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ +HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ +HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ @@ -829,6 +848,7 @@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ +HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ @@ -899,7 +919,6 @@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ -HAVE_TRUNCATE = @HAVE_TRUNCATE@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ @@ -954,8 +973,6 @@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ -HOST_CPU = @HOST_CPU@ -HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ @@ -1000,6 +1017,7 @@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ +NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_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@ @@ -1027,6 +1045,7 @@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_FNMATCH_H = @NEXT_FNMATCH_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ @@ -1087,9 +1106,11 @@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ +REPLACE_FNMATCH = @REPLACE_FNMATCH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ +REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ @@ -1107,6 +1128,7 @@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ISATTY = @REPLACE_ISATTY@ @@ -1137,6 +1159,7 @@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ @@ -1342,7 +1365,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(srcdir)/Make.rules $(am__configu echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnits Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -1352,7 +1374,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: +$(srcdir)/Make.rules $(am__empty): $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) $(SHELL) ./config.status --recheck @@ -1572,15 +1594,15 @@ dist-xz: distdir $(am__post_remove_distdir) dist-tarZ: distdir - @echo WARNING: "Support for shar distribution archives is" \ - "deprecated." >&2 + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z $(am__post_remove_distdir) dist-shar: distdir - @echo WARNING: "Support for distribution archives compressed with" \ - "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz $(am__post_remove_distdir) @@ -1616,16 +1638,17 @@ distcheck: dist esac chmod -R a-w $(distdir) chmod u+w $(distdir) - mkdir $(distdir)/_build $(distdir)/_inst + mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst chmod a-w $(distdir) test -d $(distdir)/_build || exit 0; \ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ && am__cwd=`pwd` \ - && $(am__cd) $(distdir)/_build \ - && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + && $(am__cd) $(distdir)/_build/sub \ + && ../../configure \ $(AM_DISTCHECK_CONFIGURE_FLAGS) \ $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=../.. --prefix="$$dc_install_base" \ && $(MAKE) $(AM_MAKEFLAGS) \ && $(MAKE) $(AM_MAKEFLAGS) dvi \ && $(MAKE) $(AM_MAKEFLAGS) check \ @@ -1801,6 +1824,8 @@ uninstall-am: mostlyclean mostlyclean-generic pdf pdf-am ps ps-am tags \ tags-am uninstall uninstall-am +.PRECIOUS: Makefile + dist-hook: $(MAKE) changelog_dir=$(distdir) ChangeLog diff --git a/NEWS b/NEWS index cd15fa1b..acbebdd4 100644 --- a/NEWS +++ b/NEWS @@ -1,6 +1,52 @@ -GNU tar NEWS - User visible changes. 2017-12-17 +GNU tar NEWS - User visible changes. 2019-02-23 Please send GNU tar bug reports to <bug-tar@gnu.org> + +version 1.32 - Sergey Poznyakoff, 2019-02-23 + +* Fix the use of --checkpoint without explicit --checkpoint-action + +* Fix extraction with the -U option + +See http://lists.gnu.org/archive/html/bug-tar/2019-01/msg00015.html, +for details + +* Fix iconv usage on BSD-based systems + +* Fix possible NULL dereference (savannah bug #55369) + +* Improve the testsuite + + +version 1.31 - Sergey Poznyakoff, 2019-01-02 + +* Fix heap-buffer-overrun with --one-top-level. +Bug introduced with the addition of that option in 1.28. + +* Support for zstd compression + +New option '--zstd' instructs tar to use zstd as compression program. +When listing, extractng and comparing, zstd compressed archives are +recognized automatically. +When '-a' option is in effect, zstd compression is selected if the +destination archive name ends in '.zst' or '.tzst'. + +* The -K option interacts properly with member names given in the command line + +Names of members to extract can be specified along with the "-K NAME" +option. In this case, tar will extract NAME and those of named members +that appear in the archive after it, which is consistent with the +semantics of the option. + +Previous versions of tar extracted NAME, those of named members that +appeared before it, and everything after it. + +* Fix CVE-2018-20482 + +When creating archives with the --sparse option, previous versions of +tar would loop endlessly if a sparse file had been truncated while +being archived. + version 1.30 - Sergey Poznyakoff, 2017-12-17 @@ -42,7 +88,7 @@ causing subsequent link extractions in that directory to fail. This new warning control option suppresses warning messages about unreadable files and directories. It has effect only if used together -with the --ignore-failed-read option. +with the --ignore-failed-read option. * The --warnings=none option now suppresses all warnings @@ -1641,7 +1687,7 @@ Versions 1.07 back to 1.00 by Jay Fenlason. -Copyright 1994-2001, 2003-2010, 2013-2017 Free Software Foundation, Inc. +Copyright 1994-2019 Free Software Foundation, Inc. This file is part of GNU tar. diff --git a/README b/README index 874b5455..3a14c7ef 100644 --- a/README +++ b/README @@ -221,8 +221,7 @@ and share your findings by writing to <bug-tar@gnu.org>. * Copying -Copyright 1990-1992, 1994, 1997-2001, 2003-2004, 2007, 2012-2014, -2016-2017 Free Software Foundation, Inc. +Copyright 1990-2019 Free Software Foundation, Inc. This file is part of GNU tar. diff --git a/THANKS b/THANKS index 5e8e8c92..aee0a924 100644 --- a/THANKS +++ b/THANKS @@ -8,6 +8,7 @@ list of these people. Help me keep it complete and exempt of errors. See various ChangeLogs for a detailed description of contributions. Aage Robeck aagero@ifi.uio.no +Adam Borowski kilobyte@angband.pl Adye, TJ (Tim) T.J.Adye@rl.ac.uk Akiko Matsushita matusita@sra.co.jp Alan Bawden Alan@lcs.mit.edu @@ -94,6 +95,7 @@ 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 +Christian Weisgerber naddy@mips.inka.de Christoph Litauer litauer@mailhost.uni-koblenz.de Christophe Colle colle@krtkg1.rug.ac.be Christophe Kalt Christophe.Kalt@kbcfp.com diff --git a/TODO b/TODO index 752668aa..ecfc4f20 100644 --- a/TODO +++ b/TODO @@ -45,8 +45,7 @@ Suggestions for improving GNU tar. * Copyright notice -Copyright 2003-2004, 2007, 2013-2014, 2016-2017 Free Software -Foundation, Inc. +Copyright 2003-2019 Free Software Foundation, Inc. This file is part of GNU tar. diff --git a/acinclude.m4 b/acinclude.m4 index 635b3c54..960506cd 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -1,6 +1,6 @@ dnl Special Autoconf macros for GNU tar -*- autoconf -*- -dnl Copyright 2009, 2013-2014, 2016-2017 Free Software Foundation, Inc. +dnl Copyright 2009-2019 Free Software Foundation, Inc. dnl dnl This file is part of GNU tar. dnl diff --git a/aclocal.m4 b/aclocal.m4 index 7d39b9b0..38119414 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -1,6 +1,6 @@ -# generated automatically by aclocal 1.14 -*- Autoconf -*- +# generated automatically by aclocal 1.15 -*- Autoconf -*- -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -20,7 +20,7 @@ You have another version of autoconf. It may work, but is not guaranteed to. If you have problems, you may need to regenerate the build system entirely. To do so, use the procedure documented by the package, typically 'autoreconf'.])]) -# Copyright (C) 2002-2013 Free Software Foundation, Inc. +# Copyright (C) 2002-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -32,10 +32,10 @@ To do so, use the procedure documented by the package, typically 'autoreconf'.]) # generated from the m4 files accompanying Automake X.Y. # (This private macro should not be called outside this file.) AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.14' +[am__api_version='1.15' 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.14], [], +m4_if([$1], [1.15], [], [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl ]) @@ -51,14 +51,14 @@ m4_define([_AM_AUTOCONF_VERSION], []) # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. # This function is AC_REQUIREd by AM_INIT_AUTOMAKE. AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.14])dnl +[AM_AUTOMAKE_VERSION([1.15])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-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -103,15 +103,14 @@ _AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) # configured tree to be moved without reconfiguration. AC_DEFUN([AM_AUX_DIR_EXPAND], -[dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` ]) # AM_CONDITIONAL -*- Autoconf -*- -# Copyright (C) 1997-2013 Free Software Foundation, Inc. +# Copyright (C) 1997-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -142,7 +141,7 @@ AC_CONFIG_COMMANDS_PRE( Usually this means the macro was only invoked conditionally.]]) fi])]) -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -333,7 +332,7 @@ _AM_SUBST_NOTMAKE([am__nodep])dnl # Generate code to set up dependency tracking. -*- Autoconf -*- -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -409,7 +408,7 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], # Do all the work for Automake. -*- Autoconf -*- -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -499,8 +498,8 @@ AC_REQUIRE([AC_PROG_MKDIR_P])dnl # <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. +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. AC_REQUIRE([AC_PROG_AWK])dnl AC_REQUIRE([AC_PROG_MAKE_SET])dnl AC_REQUIRE([AM_SET_LEADING_DOT])dnl @@ -573,7 +572,11 @@ to "yes", and re-run configure. END AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) fi -fi]) +fi +dnl The trailing newline in this macro's definition is deliberate, for +dnl backward compatibility and to allow trailing 'dnl'-style comments +dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. +]) dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further @@ -602,7 +605,7 @@ for _am_header in $config_headers :; do done echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -613,7 +616,7 @@ echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_co # Define $install_sh. AC_DEFUN([AM_PROG_INSTALL_SH], [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh}" != xset; then +if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; @@ -623,7 +626,7 @@ if test x"${install_sh}" != xset; then fi AC_SUBST([install_sh])]) -# Copyright (C) 2003-2013 Free Software Foundation, Inc. +# Copyright (C) 2003-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -644,7 +647,7 @@ AC_SUBST([am__leading_dot])]) # Check to see how 'make' treats includes. -*- Autoconf -*- -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -694,7 +697,7 @@ rm -f confinc confmf # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- -# Copyright (C) 1997-2013 Free Software Foundation, Inc. +# Copyright (C) 1997-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -733,7 +736,7 @@ fi # Helper functions for option handling. -*- Autoconf -*- -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -762,7 +765,7 @@ AC_DEFUN([_AM_SET_OPTIONS], AC_DEFUN([_AM_IF_OPTION], [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -809,7 +812,7 @@ AC_LANG_POP([C])]) # For backward compatibility. AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -828,7 +831,7 @@ AC_DEFUN([AM_RUN_LOG], # Check to make sure that the build environment is sane. -*- Autoconf -*- -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -909,7 +912,7 @@ AC_CONFIG_COMMANDS_PRE( rm -f conftest.file ]) -# Copyright (C) 2009-2013 Free Software Foundation, Inc. +# Copyright (C) 2009-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -969,7 +972,7 @@ AC_SUBST([AM_BACKSLASH])dnl _AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl ]) -# Copyright (C) 2001-2013 Free Software Foundation, Inc. +# Copyright (C) 2001-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -997,7 +1000,7 @@ fi INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" AC_SUBST([INSTALL_STRIP_PROGRAM])]) -# Copyright (C) 2006-2013 Free Software Foundation, Inc. +# Copyright (C) 2006-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1016,7 +1019,7 @@ AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) # Check how to create a tarball. -*- Autoconf -*- -# Copyright (C) 2004-2013 Free Software Foundation, Inc. +# Copyright (C) 2004-2014 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -1148,11 +1151,11 @@ AC_SUBST([am__untar]) ]) # _AM_PROG_TAR m4_include([m4/00gnulib.m4]) +m4_include([m4/__inline.m4]) m4_include([m4/absolute-header.m4]) m4_include([m4/acl.m4]) m4_include([m4/alloca.m4]) m4_include([m4/argp.m4]) -m4_include([m4/asm-underscore.m4]) m4_include([m4/backupfile.m4]) m4_include([m4/bison.m4]) m4_include([m4/btowc.m4]) @@ -1188,6 +1191,7 @@ m4_include([m4/fchdir.m4]) m4_include([m4/fchmodat.m4]) m4_include([m4/fchownat.m4]) m4_include([m4/fcntl-o.m4]) +m4_include([m4/fcntl-safer.m4]) m4_include([m4/fcntl.m4]) m4_include([m4/fcntl_h.m4]) m4_include([m4/fdopendir.m4]) @@ -1196,6 +1200,7 @@ m4_include([m4/filenamecat.m4]) m4_include([m4/flexmember.m4]) m4_include([m4/float_h.m4]) m4_include([m4/fnmatch.m4]) +m4_include([m4/fnmatch_h.m4]) m4_include([m4/fpending.m4]) m4_include([m4/fseek.m4]) m4_include([m4/fseeko.m4]) @@ -1219,7 +1224,6 @@ m4_include([m4/glibc21.m4]) m4_include([m4/gnulib-common.m4]) m4_include([m4/gnulib-comp.m4]) m4_include([m4/group-member.m4]) -m4_include([m4/hard-locale.m4]) m4_include([m4/host-cpu-c-abi.m4]) m4_include([m4/human.m4]) m4_include([m4/iconv.m4]) diff --git a/build-aux/ar-lib b/build-aux/ar-lib deleted file mode 100755 index fe2301e7..00000000 --- a/build-aux/ar-lib +++ /dev/null @@ -1,270 +0,0 @@ -#! /bin/sh -# Wrapper for Microsoft lib.exe - -me=ar-lib -scriptversion=2012-03-01.08; # UTC - -# Copyright (C) 2010-2013 Free Software Foundation, Inc. -# Written by Peter Rosin <peda@lysator.liu.se>. -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2, or (at your option) -# any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# This file is maintained in Automake, please report -# bugs to <bug-automake@gnu.org> or send patches to -# <automake-patches@gnu.org>. - - -# func_error message -func_error () -{ - echo "$me: $1" 1>&2 - exit 1 -} - -file_conv= - -# func_file_conv build_file -# Convert a $build file to $host form and store it in $file -# Currently only supports Windows hosts. -func_file_conv () -{ - file=$1 - case $file in - / | /[!/]*) # absolute file, and not a UNC file - if test -z "$file_conv"; then - # lazily determine how to convert abs files - case `uname -s` in - MINGW*) - file_conv=mingw - ;; - CYGWIN*) - file_conv=cygwin - ;; - *) - file_conv=wine - ;; - esac - fi - case $file_conv in - mingw) - file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` - ;; - cygwin) - file=`cygpath -m "$file" || echo "$file"` - ;; - wine) - file=`winepath -w "$file" || echo "$file"` - ;; - esac - ;; - esac -} - -# func_at_file at_file operation archive -# Iterate over all members in AT_FILE performing OPERATION on ARCHIVE -# for each of them. -# When interpreting the content of the @FILE, do NOT use func_file_conv, -# since the user would need to supply preconverted file names to -# binutils ar, at least for MinGW. -func_at_file () -{ - operation=$2 - archive=$3 - at_file_contents=`cat "$1"` - eval set x "$at_file_contents" - shift - - for member - do - $AR -NOLOGO $operation:"$member" "$archive" || exit $? - done -} - -case $1 in - '') - func_error "no command. Try '$0 --help' for more information." - ;; - -h | --h*) - cat <<EOF -Usage: $me [--help] [--version] PROGRAM ACTION ARCHIVE [MEMBER...] - -Members may be specified in a file named with @FILE. -EOF - exit $? - ;; - -v | --v*) - echo "$me, version $scriptversion" - exit $? - ;; -esac - -if test $# -lt 3; then - func_error "you must specify a program, an action and an archive" -fi - -AR=$1 -shift -while : -do - if test $# -lt 2; then - func_error "you must specify a program, an action and an archive" - fi - case $1 in - -lib | -LIB \ - | -ltcg | -LTCG \ - | -machine* | -MACHINE* \ - | -subsystem* | -SUBSYSTEM* \ - | -verbose | -VERBOSE \ - | -wx* | -WX* ) - AR="$AR $1" - shift - ;; - *) - action=$1 - shift - break - ;; - esac -done -orig_archive=$1 -shift -func_file_conv "$orig_archive" -archive=$file - -# strip leading dash in $action -action=${action#-} - -delete= -extract= -list= -quick= -replace= -index= -create= - -while test -n "$action" -do - case $action in - d*) delete=yes ;; - x*) extract=yes ;; - t*) list=yes ;; - q*) quick=yes ;; - r*) replace=yes ;; - s*) index=yes ;; - S*) ;; # the index is always updated implicitly - c*) create=yes ;; - u*) ;; # TODO: don't ignore the update modifier - v*) ;; # TODO: don't ignore the verbose modifier - *) - func_error "unknown action specified" - ;; - esac - action=${action#?} -done - -case $delete$extract$list$quick$replace,$index in - yes,* | ,yes) - ;; - yesyes*) - func_error "more than one action specified" - ;; - *) - func_error "no action specified" - ;; -esac - -if test -n "$delete"; then - if test ! -f "$orig_archive"; then - func_error "archive not found" - fi - for member - do - case $1 in - @*) - func_at_file "${1#@}" -REMOVE "$archive" - ;; - *) - func_file_conv "$1" - $AR -NOLOGO -REMOVE:"$file" "$archive" || exit $? - ;; - esac - done - -elif test -n "$extract"; then - if test ! -f "$orig_archive"; then - func_error "archive not found" - fi - if test $# -gt 0; then - for member - do - case $1 in - @*) - func_at_file "${1#@}" -EXTRACT "$archive" - ;; - *) - func_file_conv "$1" - $AR -NOLOGO -EXTRACT:"$file" "$archive" || exit $? - ;; - esac - done - else - $AR -NOLOGO -LIST "$archive" | sed -e 's/\\/\\\\/g' | while read member - do - $AR -NOLOGO -EXTRACT:"$member" "$archive" || exit $? - done - fi - -elif test -n "$quick$replace"; then - if test ! -f "$orig_archive"; then - if test -z "$create"; then - echo "$me: creating $orig_archive" - fi - orig_archive= - else - orig_archive=$archive - fi - - for member - do - case $1 in - @*) - func_file_conv "${1#@}" - set x "$@" "@$file" - ;; - *) - func_file_conv "$1" - set x "$@" "$file" - ;; - esac - shift - shift - done - - if test -n "$orig_archive"; then - $AR -NOLOGO -OUT:"$archive" "$orig_archive" "$@" || exit $? - else - $AR -NOLOGO -OUT:"$archive" "$@" || exit $? - fi - -elif test -n "$list"; then - if test ! -f "$orig_archive"; then - func_error "archive not found" - fi - $AR -NOLOGO -LIST "$archive" || exit $? -fi diff --git a/build-aux/compile b/build-aux/compile index 531136b0..a85b723c 100755 --- a/build-aux/compile +++ b/build-aux/compile @@ -3,7 +3,7 @@ scriptversion=2012-10-14.11; # UTC -# Copyright (C) 1999-2013 Free Software Foundation, Inc. +# Copyright (C) 1999-2014 Free Software Foundation, Inc. # Written by Tom Tromey <tromey@cygnus.com>. # # This program is free software; you can redistribute it and/or modify diff --git a/build-aux/config.guess b/build-aux/config.guess index 31e01efe..0f9b29c8 100755 --- a/build-aux/config.guess +++ b/build-aux/config.guess @@ -1,8 +1,8 @@ #! /bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2017 Free Software Foundation, Inc. +# Copyright 1992-2019 Free Software Foundation, Inc. -timestamp='2017-11-07' +timestamp='2019-01-01' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -50,7 +50,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2017 Free Software Foundation, Inc. +Copyright 1992-2019 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." @@ -84,8 +84,6 @@ if test $# != 0; then exit 1 fi -trap 'exit 1' 1 2 15 - # CC_FOR_BUILD -- compiler used by this script. Note that the use of a # compiler to aid in system detection is discouraged as it requires # temporary files to be created and, as you can see below, it is a @@ -96,34 +94,38 @@ trap 'exit 1' 1 2 15 # Portable tmp directory creation inspired by the Autoconf team. -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039 + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD="$driver" + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} # This is needed to find uname on a Pyramid OSx when run in the BSD universe. # (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then +if test -f /.attbin/uname ; then PATH=$PATH:/.attbin ; export PATH fi @@ -132,14 +134,14 @@ 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 +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 + set_cc_for_build + cat <<-EOF > "$dummy.c" #include <features.h> #if defined(__UCLIBC__) LIBC=uclibc @@ -149,13 +151,20 @@ Linux|GNU|GNU/*) LIBC=gnu #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" + + # If ldd exists, use it to detect musl libc. + if command -v ldd >/dev/null && \ + ldd --version 2>&1 | grep -q ^musl + then + LIBC=musl + fi ;; esac # Note: order is significant - the case branches are not exclusive. -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in *:NetBSD:*:*) # NetBSD (nbsd) targets should (where applicable) match one or # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, @@ -169,30 +178,30 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # portion of the name. We always set it to "unknown". sysctl="sysctl -n hw.machine_arch" UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ - /sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || \ + "/sbin/$sysctl" 2>/dev/null || \ + "/usr/sbin/$sysctl" 2>/dev/null || \ echo unknown)` - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in armeb) machine=armeb-unknown ;; arm*) machine=arm-unknown ;; sh3el) machine=shl-unknown ;; sh3eb) machine=sh-unknown ;; sh5el) machine=sh5le-unknown ;; earmv*) - arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` - endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` - machine=${arch}${endian}-unknown + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine="${arch}${endian}"-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; esac # The Operating System including object format, if it has switched # to ELF recently (or will in the future) and ABI. - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in earm*) os=netbsdelf ;; arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build + set_cc_for_build if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ELF__ then @@ -208,10 +217,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ;; esac # Determine ABI tags. - case "${UNAME_MACHINE_ARCH}" in + case "$UNAME_MACHINE_ARCH" in earm*) expr='s/^earmv[0-9]/-eabi/;s/eb$//' - abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` ;; esac # The OS release @@ -219,52 +228,55 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # thus, need a distinct triplet. However, they do not need # kernel version information, so it can be replaced with a # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in + case "$UNAME_VERSION" in Debian*) release='-gnu' ;; *) - release=`echo ${UNAME_RELEASE} | sed -e 's/[-_].*//' | cut -d. -f1,2` + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` ;; esac # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: # contains redundant information, the shorter form: # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}${abi}" + echo "$machine-${os}${release}${abi-}" exit ;; *:Bitrig:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + 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} + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" exit ;; *:LibertyBSD:*:*) UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-libertybsd${UNAME_RELEASE} + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" exit ;; *:MidnightBSD:*:*) - echo ${UNAME_MACHINE}-unknown-midnightbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" exit ;; *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" exit ;; *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" exit ;; macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" exit ;; *:Sortix:*:*) - echo ${UNAME_MACHINE}-unknown-sortix + echo "$UNAME_MACHINE"-unknown-sortix exit ;; *:Redox:*:*) - echo ${UNAME_MACHINE}-unknown-redox + echo "$UNAME_MACHINE"-unknown-redox exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 + exit ;; alpha:OSF1:*:*) case $UNAME_RELEASE in *4.0) @@ -316,7 +328,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # A Tn.n version is a released field test version. # A Xn.n version is an unreleased experimental baselevel. # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" # Reset EXIT trap before exiting to avoid spurious non-zero exit code. exitcode=$? trap '' 0 @@ -325,10 +337,10 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in echo m68k-unknown-sysv4 exit ;; *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos + echo "$UNAME_MACHINE"-unknown-amigaos exit ;; *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos + echo "$UNAME_MACHINE"-unknown-morphos exit ;; *:OS/390:*:*) echo i370-ibm-openedition @@ -340,7 +352,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in echo powerpc-ibm-os400 exit ;; arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} + echo arm-acorn-riscix"$UNAME_RELEASE" exit ;; arm*:riscos:*:*|arm*:RISCOS:*:*) echo arm-unknown-riscos @@ -367,19 +379,19 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in sparc) echo sparc-icl-nx7; exit ;; esac ;; s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" exit ;; i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) - echo i386-pc-auroraux${UNAME_RELEASE} + echo i386-pc-auroraux"$UNAME_RELEASE" exit ;; i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build + set_cc_for_build SUN_ARCH=i386 # If there is a compiler, see if it is configured for 64-bit objects. # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. @@ -392,13 +404,13 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in SUN_ARCH=x86_64 fi fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:6*:*) # According to config.sub, this is the proper way to canonicalize # SunOS6. Hard to guess exactly what SunOS6 will be like, but # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; sun4*:SunOS:*:*) case "`/usr/bin/arch -k`" in @@ -407,25 +419,25 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in ;; esac # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" exit ;; sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" exit ;; sun*:*:4.2BSD:*) UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = x && UNAME_RELEASE=3 + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 case "`/bin/arch`" in sun3) - echo m68k-sun-sunos${UNAME_RELEASE} + echo m68k-sun-sunos"$UNAME_RELEASE" ;; sun4) - echo sparc-sun-sunos${UNAME_RELEASE} + echo sparc-sun-sunos"$UNAME_RELEASE" ;; esac exit ;; aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} + echo sparc-auspex-sunos"$UNAME_RELEASE" exit ;; # The situation for MiNT is a little confusing. The machine name # can be virtually everything (everything which is not @@ -436,44 +448,44 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # MiNT. But MiNT is downward compatible to TOS, so this should # be no problem. atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} + echo m68k-atari-mint"$UNAME_RELEASE" exit ;; milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} + echo m68k-milan-mint"$UNAME_RELEASE" exit ;; hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} + echo m68k-hades-mint"$UNAME_RELEASE" exit ;; *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} + echo m68k-unknown-mint"$UNAME_RELEASE" exit ;; m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} + echo m68k-apple-machten"$UNAME_RELEASE" exit ;; powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} + echo powerpc-apple-machten"$UNAME_RELEASE" exit ;; RISC*:Mach:*:*) echo mips-dec-mach_bsd4.3 exit ;; RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} + echo mips-dec-ultrix"$UNAME_RELEASE" exit ;; VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} + echo vax-dec-ultrix"$UNAME_RELEASE" exit ;; 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} + echo clipper-intergraph-clix"$UNAME_RELEASE" exit ;; mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #ifdef __cplusplus #include <stdio.h> /* for printf() prototype */ int main (int argc, char *argv[]) { @@ -494,11 +506,11 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in exit (-1); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} + echo mips-mips-riscos"$UNAME_RELEASE" exit ;; Motorola:PowerMAX_OS:*:*) echo powerpc-motorola-powermax @@ -524,17 +536,17 @@ EOF AViiON:dgux:*:*) # DG/UX returns AViiON for all architectures UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] + if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ + [ "$TARGET_BINARY_INTERFACE"x = x ] then - echo m88k-dg-dgux${UNAME_RELEASE} + echo m88k-dg-dgux"$UNAME_RELEASE" else - echo m88k-dg-dguxbcs${UNAME_RELEASE} + echo m88k-dg-dguxbcs"$UNAME_RELEASE" fi else - echo i586-dg-dgux${UNAME_RELEASE} + echo i586-dg-dgux"$UNAME_RELEASE" fi exit ;; M88*:DolphinOS:*:*) # DolphinOS (SVR3) @@ -551,7 +563,7 @@ EOF echo m68k-tektronix-bsd exit ;; *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" exit ;; ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id @@ -563,14 +575,14 @@ EOF if [ -x /usr/bin/oslevel ] ; then IBM_REV=`/usr/bin/oslevel` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" exit ;; *:AIX:2:3) if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #include <sys/systemcfg.h> main() @@ -581,7 +593,7 @@ EOF exit(0); } EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` then echo "$SYSTEM_NAME" else @@ -595,7 +607,7 @@ EOF exit ;; *:AIX:*:[4567]) IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then IBM_ARCH=rs6000 else IBM_ARCH=powerpc @@ -604,9 +616,9 @@ EOF IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} + echo "$IBM_ARCH"-ibm-aix"$IBM_REV" exit ;; *:AIX:*:*) echo rs6000-ibm-aix @@ -615,7 +627,7 @@ EOF echo romp-ibm-bsd4.4 exit ;; ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to exit ;; # report: romp-ibm BSD 4.3 *:BOSX:*:*) echo rs6000-bull-bosx @@ -630,28 +642,28 @@ EOF echo m68k-hp-bsd4.4 exit ;; 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + case "$UNAME_MACHINE" in 9000/31?) HP_ARCH=m68000 ;; 9000/[34]??) HP_ARCH=m68k ;; 9000/[678][0-9][0-9]) if [ -x /usr/bin/getconf ]; then sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in + case "$sc_cpu_version" in 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in + case "$sc_kernel_bits" in 32) HP_ARCH=hppa2.0n ;; 64) HP_ARCH=hppa2.0w ;; '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 esac ;; esac fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + if [ "$HP_ARCH" = "" ]; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #define _HPUX_SOURCE #include <stdlib.h> @@ -684,13 +696,13 @@ EOF exit (0); } EOF - (CCOPTS="" $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` test -z "$HP_ARCH" && HP_ARCH=hppa fi ;; esac - if [ ${HP_ARCH} = hppa2.0w ] + if [ "$HP_ARCH" = hppa2.0w ] then - eval $set_cc_for_build + set_cc_for_build # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler @@ -709,15 +721,15 @@ EOF HP_ARCH=hppa64 fi fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} + echo "$HP_ARCH"-hp-hpux"$HPUX_REV" exit ;; ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux"$HPUX_REV" exit ;; 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #include <unistd.h> int main () @@ -742,7 +754,7 @@ EOF exit (0); } EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && { echo "$SYSTEM_NAME"; exit; } echo unknown-hitachi-hiuxwe2 exit ;; @@ -763,9 +775,9 @@ EOF exit ;; i*86:OSF1:*:*) if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk + echo "$UNAME_MACHINE"-unknown-osf1mk else - echo ${UNAME_MACHINE}-unknown-osf1 + echo "$UNAME_MACHINE"-unknown-osf1 fi exit ;; parisc*:Lites*:*:*) @@ -790,109 +802,120 @@ EOF echo c4-convex-bsd exit ;; CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ -e 's/\.[^.]*$/.X/' exit ;; CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' exit ;; F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; 5000:UNIX_System_V:4.*:*) FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" exit ;; i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" exit ;; sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} + echo sparc-unknown-bsdi"$UNAME_RELEASE" exit ;; *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" + exit ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=`uname -p` + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabi + else + echo "${UNAME_PROCESSOR}"-unknown-freebsd"`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`"-gnueabihf + fi exit ;; *:FreeBSD:*:*) UNAME_PROCESSOR=`/usr/bin/uname -p` - case ${UNAME_PROCESSOR} in + case "$UNAME_PROCESSOR" in amd64) UNAME_PROCESSOR=x86_64 ;; i386) UNAME_PROCESSOR=i586 ;; esac - echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin + echo "$UNAME_MACHINE"-pc-cygwin exit ;; *:MINGW64*:*) - echo ${UNAME_MACHINE}-pc-mingw64 + echo "$UNAME_MACHINE"-pc-mingw64 exit ;; *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 + echo "$UNAME_MACHINE"-pc-mingw32 exit ;; *:MSYS*:*) - echo ${UNAME_MACHINE}-pc-msys + echo "$UNAME_MACHINE"-pc-msys exit ;; i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 + echo "$UNAME_MACHINE"-pc-pw32 exit ;; *:Interix*:*) - case ${UNAME_MACHINE} in + case "$UNAME_MACHINE" in x86) - echo i586-pc-interix${UNAME_RELEASE} + echo i586-pc-interix"$UNAME_RELEASE" exit ;; authenticamd | genuineintel | EM64T) - echo x86_64-unknown-interix${UNAME_RELEASE} + echo x86_64-unknown-interix"$UNAME_RELEASE" exit ;; IA64) - echo ia64-unknown-interix${UNAME_RELEASE} + echo ia64-unknown-interix"$UNAME_RELEASE" exit ;; esac ;; i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin + echo "$UNAME_MACHINE"-pc-uwin exit ;; amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin + echo x86_64-pc-cygwin exit ;; prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" exit ;; *:GNU:*:*) # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`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 "[:upper:]" "[:lower:]"``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix + *:Minix:*:*) + echo "$UNAME_MACHINE"-unknown-minix exit ;; aarch64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; alpha:Linux:*:*) case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in @@ -906,63 +929,63 @@ EOF esac objdump --private-headers /bin/sh | grep -q ld.so.1 if test "$?" = 0 ; then LIBC=gnulibc1 ; fi - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arc:Linux:*:* | arceb:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; arm*:Linux:*:*) - eval $set_cc_for_build + 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-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" else if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ | grep -q __ARM_PCS_VFP then - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi else - echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf fi fi exit ;; avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; cris:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; crisv32:Linux:*:*) - echo ${UNAME_MACHINE}-axis-linux-${LIBC} + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" exit ;; e2k:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; frv:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; hexagon:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; k1om:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" #undef CPU #undef ${UNAME_MACHINE} #undef ${UNAME_MACHINE}el @@ -976,70 +999,70 @@ EOF #endif #endif EOF - eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" + test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } ;; mips64el:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; openrisc*:Linux:*:*) - echo or1k-unknown-linux-${LIBC} + echo or1k-unknown-linux-"$LIBC" exit ;; or32:Linux:*:* | or1k*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; padre:Linux:*:*) - echo sparc-unknown-linux-${LIBC} + echo sparc-unknown-linux-"$LIBC" exit ;; parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-${LIBC} + 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-${LIBC} ;; - PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; - *) echo hppa-unknown-linux-${LIBC} ;; + 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-${LIBC} + echo powerpc64-unknown-linux-"$LIBC" exit ;; ppc:Linux:*:*) - echo powerpc-unknown-linux-${LIBC} + echo powerpc-unknown-linux-"$LIBC" exit ;; ppc64le:Linux:*:*) - echo powerpc64le-unknown-linux-${LIBC} + echo powerpc64le-unknown-linux-"$LIBC" exit ;; ppcle:Linux:*:*) - echo powerpcle-unknown-linux-${LIBC} + echo powerpcle-unknown-linux-"$LIBC" exit ;; riscv32:Linux:*:* | riscv64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" exit ;; sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; tile*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-${LIBC} + echo "$UNAME_MACHINE"-dec-linux-"$LIBC" exit ;; x86_64:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-${LIBC} + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" exit ;; xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" exit ;; i*86:DYNIX/ptx:4*:*) # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. @@ -1053,34 +1076,34 @@ EOF # I am not positive that other SVR4 systems won't match this, # I just have to hope. -- rms. # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" exit ;; i*86:OS/2:*:*) # If we were able to find `uname', then EMX Unix compatibility # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx + echo "$UNAME_MACHINE"-pc-os2-emx exit ;; i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop + echo "$UNAME_MACHINE"-unknown-stop exit ;; i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos + echo "$UNAME_MACHINE"-unknown-atheos exit ;; i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable + echo "$UNAME_MACHINE"-pc-syllable exit ;; i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} + echo i386-unknown-lynxos"$UNAME_RELEASE" exit ;; i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp + echo "$UNAME_MACHINE"-pc-msdosdjgpp exit ;; i*86:*:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" fi exit ;; i*86:*:5:[678]*) @@ -1090,12 +1113,12 @@ EOF *Pentium) UNAME_MACHINE=i586 ;; *Pent*|*Celeron) UNAME_MACHINE=i686 ;; esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" exit ;; i*86:*:3.2:*) if test -f /usr/options/cb.name; then UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name` - echo ${UNAME_MACHINE}-pc-isc$UNAME_REL + echo "$UNAME_MACHINE"-pc-isc"$UNAME_REL" elif /bin/uname -X 2>/dev/null >/dev/null ; then UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 @@ -1105,9 +1128,9 @@ EOF && UNAME_MACHINE=i686 (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" else - echo ${UNAME_MACHINE}-pc-sysv32 + echo "$UNAME_MACHINE"-pc-sysv32 fi exit ;; pc:*:*:*) @@ -1127,9 +1150,9 @@ EOF exit ;; i860:*:4.*:*) # i860-SVR4 if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 fi exit ;; mini*:CTIX:SYS*5:*) @@ -1149,9 +1172,9 @@ EOF test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ && { echo i486-ncr-sysv4; exit; } ;; @@ -1160,28 +1183,28 @@ EOF test -r /etc/.relid \ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} + echo m68k-unknown-lynxos"$UNAME_RELEASE" exit ;; mc68030:UNIX_System_V:4.*:*) echo m68k-atari-sysv4 exit ;; TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} + echo sparc-unknown-lynxos"$UNAME_RELEASE" exit ;; rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} + echo rs6000-unknown-lynxos"$UNAME_RELEASE" exit ;; PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} + echo powerpc-unknown-lynxos"$UNAME_RELEASE" exit ;; SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} + echo mips-dde-sysv"$UNAME_RELEASE" exit ;; RM*:ReliantUNIX-*:*:*) echo mips-sni-sysv4 @@ -1192,7 +1215,7 @@ EOF *:SINIX-*:*:*) if uname -p 2>/dev/null >/dev/null ; then UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 + echo "$UNAME_MACHINE"-sni-sysv4 else echo ns32k-sni-sysv fi @@ -1212,23 +1235,23 @@ EOF exit ;; i*86:VOS:*:*) # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos + echo "$UNAME_MACHINE"-stratus-vos exit ;; *:VOS:*:*) # From Paul.Green@stratus.com. echo hppa1.1-stratus-vos exit ;; mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} + echo m68k-apple-aux"$UNAME_RELEASE" exit ;; news*:NEWS-OS:6*:*) echo mips-sony-newsos6 exit ;; R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} + echo mips-nec-sysv"$UNAME_RELEASE" else - echo mips-unknown-sysv${UNAME_RELEASE} + echo mips-unknown-sysv"$UNAME_RELEASE" fi exit ;; BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. @@ -1247,39 +1270,39 @@ EOF echo x86_64-unknown-haiku exit ;; SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} + echo sx4-nec-superux"$UNAME_RELEASE" exit ;; SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} + echo sx5-nec-superux"$UNAME_RELEASE" exit ;; SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} + echo sx6-nec-superux"$UNAME_RELEASE" exit ;; SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} + echo sx7-nec-superux"$UNAME_RELEASE" exit ;; SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} + echo sx8-nec-superux"$UNAME_RELEASE" exit ;; SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} + echo sx8r-nec-superux"$UNAME_RELEASE" exit ;; SX-ACE:SUPER-UX:*:*) - echo sxace-nec-superux${UNAME_RELEASE} + echo sxace-nec-superux"$UNAME_RELEASE" exit ;; Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} + echo powerpc-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" exit ;; *:Darwin:*:*) UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - eval $set_cc_for_build + set_cc_for_build if test "$UNAME_PROCESSOR" = unknown ; then UNAME_PROCESSOR=powerpc fi - if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then if [ "$CC_FOR_BUILD" != no_compiler_found ]; then if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ @@ -1307,7 +1330,7 @@ EOF # that Apple uses in portable devices. UNAME_PROCESSOR=x86_64 fi - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" exit ;; *:procnto*:*:* | *:QNX:[0123456789]*:*) UNAME_PROCESSOR=`uname -p` @@ -1315,22 +1338,25 @@ EOF UNAME_PROCESSOR=i386 UNAME_MACHINE=pc fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" exit ;; *:QNX:*:4*) echo i386-pc-qnx exit ;; NEO-*:NONSTOP_KERNEL:*:*) - echo neo-tandem-nsk${UNAME_RELEASE} + echo neo-tandem-nsk"$UNAME_RELEASE" exit ;; NSE-*:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} + echo nse-tandem-nsk"$UNAME_RELEASE" exit ;; NSR-*:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} + echo nsr-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSV-*:NONSTOP_KERNEL:*:*) + echo nsv-tandem-nsk"$UNAME_RELEASE" exit ;; NSX-*:NONSTOP_KERNEL:*:*) - echo nsx-tandem-nsk${UNAME_RELEASE} + echo nsx-tandem-nsk"$UNAME_RELEASE" exit ;; *:NonStop-UX:*:*) echo mips-compaq-nonstopux @@ -1339,18 +1365,19 @@ EOF echo bs2000-siemens-sysv exit ;; DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" exit ;; *:Plan9:*:*) # "uname -m" is not consistent, so use $cputype instead. 386 # is converted to i386 for consistency with other x86 # operating systems. + # shellcheck disable=SC2154 if test "$cputype" = 386; then UNAME_MACHINE=i386 else UNAME_MACHINE="$cputype" fi - echo ${UNAME_MACHINE}-unknown-plan9 + echo "$UNAME_MACHINE"-unknown-plan9 exit ;; *:TOPS-10:*:*) echo pdp10-unknown-tops10 @@ -1371,14 +1398,14 @@ EOF echo pdp10-unknown-its exit ;; SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} + echo mips-sei-seiux"$UNAME_RELEASE" exit ;; *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" exit ;; *:*VMS:*:*) UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in + case "$UNAME_MACHINE" in A*) echo alpha-dec-vms ; exit ;; I*) echo ia64-dec-vms ; exit ;; V*) echo vax-dec-vms ; exit ;; @@ -1387,25 +1414,28 @@ EOF echo i386-pc-xenix exit ;; i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE} | sed -e 's/ .*$//'` + echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" exit ;; i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos + echo "$UNAME_MACHINE"-pc-rdos exit ;; i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros + echo "$UNAME_MACHINE"-pc-aros exit ;; x86_64:VMkernel:*:*) - echo ${UNAME_MACHINE}-unknown-esx + echo "$UNAME_MACHINE"-unknown-esx exit ;; amd64:Isilon\ OneFS:*:*) echo x86_64-unknown-onefs exit ;; + *:Unleashed:*:*) + echo "$UNAME_MACHINE"-unknown-unleashed"$UNAME_RELEASE" + exit ;; esac echo "$0: unable to guess system type" >&2 -case "${UNAME_MACHINE}:${UNAME_SYSTEM}" in +case "$UNAME_MACHINE:$UNAME_SYSTEM" in mips:Linux | mips64:Linux) # If we got here on MIPS GNU/Linux, output extra information. cat >&2 <<EOF @@ -1447,16 +1477,16 @@ hostinfo = `(hostinfo) 2>/dev/null` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" EOF exit 1 # Local variables: -# eval: (add-hook 'write-file-functions 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff --git a/build-aux/config.rpath b/build-aux/config.rpath index af3c4155..be202c1a 100755 --- a/build-aux/config.rpath +++ b/build-aux/config.rpath @@ -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-2017 Free Software Foundation, Inc. +# Copyright 1996-2019 Free Software Foundation, Inc. # Taken from GNU libtool, 2001 # Originally by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996 # diff --git a/build-aux/config.sub b/build-aux/config.sub index fb579478..a8f3f7e7 100755 --- a/build-aux/config.sub +++ b/build-aux/config.sub @@ -1,8 +1,8 @@ #! /bin/sh # Configuration validation subroutine script. -# Copyright 1992-2017 Free Software Foundation, Inc. +# Copyright 1992-2019 Free Software Foundation, Inc. -timestamp='2017-11-04' +timestamp='2019-01-01' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -67,7 +67,7 @@ Report bugs and patches to <config-patches@gnu.org>." version="\ GNU config.sub ($timestamp) -Copyright 1992-2017 Free Software Foundation, Inc. +Copyright 1992-2019 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." @@ -89,12 +89,12 @@ while test $# -gt 0 ; do - ) # Use stdin as input. break ;; -* ) - echo "$me: invalid option $1$help" + echo "$me: invalid option $1$help" >&2 exit 1 ;; *local*) # First pass through any local machine types. - echo $1 + echo "$1" exit ;; * ) @@ -110,1251 +110,1160 @@ case $# in exit 1;; esac -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ - linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ - kopensolaris*-gnu* | cloudabi*-eabi* | \ - 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 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac +# Split fields of configuration type +IFS="-" read field1 field2 field3 field4 <<EOF +$1 +EOF -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -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*) - os= - basic_machine=$1 - ;; - -bluegene*) - os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*178) - os=-lynxos178 - ;; - -lynx*5) - os=-lynxos5 +# Separate into logical components for further validation +case $1 in + *-*-*-*-*) + echo Invalid configuration \`"$1"\': more than four components >&2 + exit 1 ;; - -lynx*) - os=-lynxos + *-*-*-*) + basic_machine=$field1-$field2 + os=$field3-$field4 ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc \ + | linux-newlib* | linux-musl* | linux-uclibc* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova*) + basic_machine=$field1 + os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + os=linux-android + ;; + *) + basic_machine=$field1-$field2 + os=$field3 + ;; + esac ;; - -psos*) - os=-psos + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | 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* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + os= + ;; + *) + basic_machine=$field1 + os=$field2 + ;; + esac + ;; + esac ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + os=bsd + ;; + a29khif) + basic_machine=a29k-amd + os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + os=scout + ;; + alliant) + basic_machine=fx80-alliant + os= + ;; + altos | altos3068) + basic_machine=m68k-altos + os= + ;; + am29k) + basic_machine=a29k-none + os=bsd + ;; + amdahl) + basic_machine=580-amdahl + os=sysv + ;; + amiga) + basic_machine=m68k-unknown + os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=bsd + ;; + aros) + basic_machine=i386-pc + os=aros + ;; + aux) + basic_machine=m68k-apple + os=aux + ;; + balance) + basic_machine=ns32k-sequent + os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=linux + ;; + cegcc) + basic_machine=arm-unknown + os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=bsd + ;; + convex-c2) + basic_machine=c2-convex + os=bsd + ;; + convex-c32) + basic_machine=c32-convex + os=bsd + ;; + convex-c34) + basic_machine=c34-convex + os=bsd + ;; + convex-c38) + basic_machine=c38-convex + os=bsd + ;; + cray) + basic_machine=j90-cray + os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + os= + ;; + da30) + basic_machine=m68k-da30 + os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + os= + ;; + delta88) + basic_machine=m88k-motorola + os=sysv3 + ;; + dicos) + basic_machine=i686-pc + os=dicos + ;; + djgpp) + basic_machine=i586-pc + os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=ose + ;; + gmicro) + basic_machine=tron-gmicro + os=sysv + ;; + go32) + basic_machine=i386-pc + os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=hms + ;; + harris) + basic_machine=m88k-harris + os=sysv3 + ;; + hp300) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=hpux + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=proelf + ;; + i386mach) + basic_machine=i386-mach + os=mach + ;; + vsta) + basic_machine=i386-pc + os=vsta + ;; + isi68 | isi) + basic_machine=m68k-isi + os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + os=sysv + ;; + merlin) + basic_machine=ns32k-utek + os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + os=coff + ;; + morphos) + basic_machine=powerpc-unknown + os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + os=moxiebox + ;; + msdos) + basic_machine=i386-pc + os=msdos + ;; + msys) + basic_machine=i686-pc + os=msys + ;; + mvs) + basic_machine=i370-ibm + os=mvs + ;; + nacl) + basic_machine=le32-unknown + os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=newsos + ;; + news1000) + basic_machine=m68030-sony + os=newsos + ;; + necv70) + basic_machine=v70-nec + os=sysv + ;; + nh3000) + basic_machine=m68k-harris + os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=cxux + ;; + nindy960) + basic_machine=i960-intel + os=nindy + ;; + mon960) + basic_machine=i960-intel + os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=ose + ;; + os68k) + basic_machine=m68k-none + os=os68k + ;; + paragon) + basic_machine=i860-intel + os=osf + ;; + parisc) + basic_machine=hppa-unknown + os=linux + ;; + pw32) + basic_machine=i586-unknown + os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + os=rdos + ;; + rdos32) + basic_machine=i386-pc + os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=coff + ;; + sa29200) + basic_machine=a29k-amd + os=udi + ;; + sei) + basic_machine=mips-sei + os=seiux + ;; + sequent) + basic_machine=i386-sequent + os= + ;; + sps7) + basic_machine=m68k-bull + os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + os= + ;; + stratus) + basic_machine=i860-stratus + os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + os= + ;; + sun2os3) + basic_machine=m68000-sun + os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + os= + ;; + sun3os3) + basic_machine=m68k-sun + os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + os= + ;; + sun4os3) + basic_machine=sparc-sun + os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + os= + ;; + sv1) + basic_machine=sv1-cray + os=unicos + ;; + symmetry) + basic_machine=i386-sequent + os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=unicos + ;; + t90) + basic_machine=t90-cray + os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + os=tpf + ;; + udi29k) + basic_machine=a29k-amd + os=udi + ;; + ultra3) + basic_machine=a29k-nyu + os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=none + ;; + vaxv) + basic_machine=vax-dec + os=sysv + ;; + vms) + basic_machine=vax-dec + os=vms + ;; + vxworks960) + basic_machine=i960-wrs + os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=vxworks + ;; + xbox) + basic_machine=i686-pc + os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + os=unicos + ;; + *) + basic_machine=$1 + os= + ;; + esac ;; esac -# Decode aliases for certain CPU-COMPANY combinations. +# Decode 1-component or ad-hoc basic machines case $basic_machine in - # Recognize the basic CPU types without company name. - # 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 | arceb \ - | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ - | avr | avr32 \ - | ba \ - | be32 | be64 \ - | bfin \ - | c4x | c8051 | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | e2k | epiphany \ - | fido | fr30 | frv | ft32 \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | hexagon \ - | i370 | i860 | i960 | ia16 | ia64 \ - | ip2k | iq2000 \ - | k1om \ - | le32 | le64 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa32r6 | mipsisa32r6el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64r6 | mipsisa64r6el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipsr5900 | mipsr5900el \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nds32 | nds32le | nds32be \ - | nios | nios2 | nios2eb | nios2el \ - | ns16k | ns32k \ - | open8 | or1k | or1knd | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle \ - | pru \ - | pyramid \ - | riscv32 | riscv64 \ - | rl78 | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu \ - | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ - | ubicom32 \ - | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ - | visium \ - | wasm32 \ - | x86 | xc16x | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - c54x) - basic_machine=tic54x-unknown - ;; - c55x) - basic_machine=tic55x-unknown - ;; - c6x) - basic_machine=tic6x-unknown - ;; - leon|leon[3-9]) - basic_machine=sparc-$basic_machine + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond ;; - m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) - basic_machine=$basic_machine-unknown - os=-none + op50n) + cpu=hppa1.1 + vendor=oki ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + op60c) + cpu=hppa1.1 + vendor=oki ;; - ms1) - basic_machine=mt-unknown + ibm*) + cpu=i370 + vendor=ibm ;; - - strongarm | thumb | xscale) - basic_machine=arm-unknown - ;; - xgate) - basic_machine=$basic_machine-unknown - os=-none + orion105) + cpu=clipper + vendor=highlevel ;; - xscaleeb) - basic_machine=armeb-unknown + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple ;; - - xscaleel) - basic_machine=armel-unknown + pmac | pmac-mpw) + cpu=powerpc + vendor=apple ;; - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # 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-* | arceb-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | ba-* \ - | be32-* | be64-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* \ - | c8051-* | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | e2k-* | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | hexagon-* \ - | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ - | ip2k-* | iq2000-* \ - | k1om-* \ - | le32-* | le64-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ - | microblaze-* | microblazeel-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa32r6-* | mipsisa32r6el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64r6-* | mipsisa64r6el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipsr5900-* | mipsr5900el-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nds32-* | nds32le-* | nds32be-* \ - | nios-* | nios2-* | nios2eb-* | nios2el-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | open8-* \ - | or1k*-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ - | pru-* \ - | pyramid-* \ - | riscv32-* | riscv64-* \ - | rl78-* | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ - | tahoe-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ - | tile*-* \ - | tron-* \ - | ubicom32-* \ - | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ - | vax-* \ - | visium-* \ - | wasm32-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; # Recognize the various machine names and aliases which stand # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att + cpu=m68000 + vendor=att ;; 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - asmjs) - basic_machine=asmjs-unknown - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux + cpu=we32k + vendor=att ;; bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; - c54x-*) - basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c55x-*) - basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c6x-*) - basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16 | cr16-*) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec + cpu=powerpc + vendor=ibm + os=cnk ;; decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 + cpu=pdp10 + vendor=dec + os=tops10 ;; decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 + cpu=pdp10 + vendor=dec + os=tops20 ;; delta | 3300 | motorola-3300 | motorola-delta \ | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx + cpu=m68k + vendor=motorola ;; dpx2*) - basic_machine=m68k-bull - os=-sysv3 - ;; - e500v[12]) - basic_machine=powerpc-unknown - os=$os"spe" - ;; - e500v[12]-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - os=$os"spe" - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd + cpu=m68k + vendor=bull + os=sysv3 ;; encore | umax | mmax) - basic_machine=ns32k-encore + cpu=ns32k + vendor=encore ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose + elxsi) + cpu=elxsi + vendor=elxsi + os=${os:-bsd} ;; fx2800) - basic_machine=i860-alliant + cpu=i860 + vendor=alliant ;; genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 + cpu=ns32k + vendor=ns ;; h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux + cpu=hppa1.1 + vendor=hitachi + os=hiuxwe2 ;; hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp + cpu=hppa1.0 + vendor=hp ;; hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp + cpu=m68000 + vendor=hp ;; hp9k3[2-9][0-9]) - basic_machine=m68k-hp + cpu=m68k + vendor=hp ;; hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp + cpu=hppa1.0 + vendor=hp ;; hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k78[0-9] | hp78[0-9]) # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp + cpu=hppa1.1 + vendor=hp ;; hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm + cpu=hppa1.0 + vendor=hp ;; i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + os=sysv32 ;; i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + os=sysv4 ;; i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + os=sysv ;; i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + os=solaris2 ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta + j90 | j90-cray) + cpu=j90 + vendor=cray + os=${os:-unicos} ;; iris | iris4d) - basic_machine=mips-sgi + cpu=mips + vendor=sgi case $os in - -irix*) + irix*) ;; *) - os=-irix4 + os=irix4 ;; esac ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - leon-*|leon[3-9]-*) - basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - microblaze*) - basic_machine=microblaze-xilinx - ;; - mingw64) - basic_machine=x86_64-pc - os=-mingw64 - ;; - mingw32) - basic_machine=i686-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - moxiebox) - basic_machine=moxie-unknown - os=-moxiebox - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - msys) - basic_machine=i686-pc - os=-msys - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - nacl) - basic_machine=le32-unknown - os=-nacl + cpu=m68000 + vendor=convergent ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + os=mint ;; news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv + cpu=mips + vendor=sony + os=newsos ;; next | m*-next) - basic_machine=m68k-next + cpu=m68k + vendor=next case $os in - -nextstep* ) + nextstep* ) ;; - -ns2*) - os=-nextstep2 + ns2*) + os=nextstep2 ;; *) - os=-nextstep3 + os=nextstep3 ;; esac ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; np1) - basic_machine=np1-gould - ;; - neo-tandem) - basic_machine=neo-tandem - ;; - nse-tandem) - basic_machine=nse-tandem - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - nsx-tandem) - basic_machine=nsx-tandem + cpu=np1 + vendor=gould ;; op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k + cpu=hppa1.1 + vendor=oki + os=proelf ;; pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux + cpu=hppa1.1 + vendor=hitachi + os=hiuxwe2 ;; pbd) - basic_machine=sparc-tti + cpu=sparc + vendor=tti ;; pbb) - basic_machine=m68k-tti + cpu=m68k + vendor=tti ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + pc532) + cpu=ns32k + vendor=pc532 ;; pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm + cpu=pn + vendor=gould ;; - ppc | ppcbe) basic_machine=powerpc-unknown - ;; - ppc-* | ppcbe-*) - basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + power) + cpu=power + vendor=ibm ;; ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rdos | rdos64) - basic_machine=x86_64-pc - os=-rdos - ;; - rdos32) - basic_machine=i386-pc - os=-rdos - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff + cpu=i386 + vendor=ibm ;; rm[46]00) - basic_machine=mips-siemens + cpu=mips + vendor=siemens ;; rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown + cpu=romp + vendor=ibm ;; sde) - basic_machine=mipsisa32-sde - os=-elf + cpu=mipsisa32 + vendor=sde + os=${os:-elf} ;; - sei) - basic_machine=mips-sei - os=-seiux + simso-wrs) + cpu=sparclite + vendor=wrs + os=vxworks ;; - sequent) - basic_machine=i386-sequent + tower | tower-32) + cpu=m68k + vendor=ncr ;; - sh) - basic_machine=sh-hitachi - os=-hms + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu ;; - sh5el) - basic_machine=sh5le-unknown + w65) + cpu=w65 + vendor=wdc ;; - sh64) - basic_machine=sh64-unknown + w89k-*) + cpu=hppa1.1 + vendor=winbond + os=proelf ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks + none) + cpu=none + vendor=none ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine ;; - spur) - basic_machine=spur-unknown + leon-*|leon[3-9]-*) + cpu=sparc + vendor=`echo "$basic_machine" | sed 's/-.*//'` ;; - st2000) - basic_machine=m68k-tandem + + *-*) + IFS="-" read cpu vendor <<EOF +$basic_machine +EOF ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + cpu=$basic_machine + vendor=pc ;; - strongarm-* | thumb-*) - basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + # These rules are duplicated from below for sake of the special case above; + # i.e. things that normalized to x86 arches should also default to "pc" + pc98) + cpu=i386 + vendor=pc ;; - sun2) - basic_machine=m68000-sun + x64 | amd64) + cpu=x86_64 + vendor=pc ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 + # Recognize the basic CPU types without company name. + *) + cpu=$basic_machine + vendor=unknown ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 +esac + +unset -v basic_machine + +# Decode basic machines in the full and proper CPU-Company form. +case $cpu-$vendor in + # Here we handle the default manufacturer of certain CPU types in canonical form. It is in + # some cases the only manufacturer, in others, it is the most popular. + craynv-unknown) + vendor=cray + os=${os:-unicosmp} ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 + c90-unknown | c90-cray) + vendor=cray + os=${os:-unicos} ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 + fx80-unknown) + vendor=alliant ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 + romp-unknown) + vendor=ibm ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 + mmix-unknown) + vendor=knuth ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 + microblaze-unknown | microblazeel-unknown) + vendor=xilinx ;; - sun3 | sun3-*) - basic_machine=m68k-sun + rs6000-unknown) + vendor=ibm ;; - sun4) - basic_machine=sparc-sun + vax-unknown) + vendor=dec ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun + pdp11-unknown) + vendor=dec ;; - sv1) - basic_machine=sv1-cray - os=-unicos + we32k-unknown) + vendor=att ;; - symmetry) - basic_machine=i386-sequent - os=-dynix + cydra-unknown) + vendor=cydrome ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos + i370-ibm*) + vendor=ibm ;; - t90) - basic_machine=t90-cray - os=-unicos + orion-unknown) + vendor=highlevel ;; - tile*) - basic_machine=$basic_machine-unknown - os=-linux-gnu + xps-unknown | xps100-unknown) + cpu=xps100 + vendor=honeywell ;; - tx39) - basic_machine=mipstx39-unknown + + # Here we normalize CPU types with a missing or matching vendor + dpx20-unknown | dpx20-bull) + cpu=rs6000 + vendor=bull + os=${os:-bosx} ;; - tx39el) - basic_machine=mipstx39el-unknown + + # Here we normalize CPU types irrespective of the vendor + amd64-*) + cpu=x86_64 ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 + blackfin-*) + cpu=bfin + os=linux ;; - tower | tower-32) - basic_machine=m68k-ncr + c54x-*) + cpu=tic54x ;; - tpf) - basic_machine=s390x-ibm - os=-tpf + c55x-*) + cpu=tic55x ;; - udi29k) - basic_machine=a29k-amd - os=-udi + c6x-*) + cpu=tic6x ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 + e500v[12]-*) + cpu=powerpc + os=$os"spe" ;; - v810 | necv810) - basic_machine=v810-nec - os=-none + mips3*-*) + cpu=mips64 ;; - vaxv) - basic_machine=vax-dec - os=-sysv + ms1-*) + cpu=mt ;; - vms) - basic_machine=vax-dec - os=-vms + m68knommu-*) + cpu=m68k + os=linux ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu + m9s12z-* | m68hcs12z-* | hcs12z-* | s12z-*) + cpu=s12z ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks + openrisc-*) + cpu=or32 ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks + parisc-*) + cpu=hppa + os=linux ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + cpu=i586 ;; - wasm32) - basic_machine=wasm32-unknown + pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*) + cpu=i686 ;; - w65*) - basic_machine=w65-wdc - os=-none + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + cpu=i686 ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf + pentium4-*) + cpu=i786 ;; - x64) - basic_machine=x86_64-pc + pc98-*) + cpu=i386 ;; - xbox) - basic_machine=i686-pc - os=-mingw32 + ppc-* | ppcbe-*) + cpu=powerpc ;; - xps | xps100) - basic_machine=xps100-honeywell + ppcle-* | powerpclittle-*) + cpu=powerpcle ;; - xscale-* | xscalee[bl]-*) - basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ppc64-*) + cpu=powerpc64 ;; - ymp) - basic_machine=ymp-cray - os=-unicos + ppc64le-* | powerpc64little-*) + cpu=powerpc64le ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim + sb1-*) + cpu=mipsisa64sb1 ;; - z80-*-coff) - basic_machine=z80-unknown - os=-sim + sb1el-*) + cpu=mipsisa64sb1el ;; - none) - basic_machine=none-none - os=-none + sh5e[lb]-*) + cpu=`echo "$cpu" | sed 's/^\(sh.\)e\(.\)$/\1\2e/'` ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond + spur-*) + cpu=spur ;; - op50n) - basic_machine=hppa1.1-oki + strongarm-* | thumb-*) + cpu=arm ;; - op60c) - basic_machine=hppa1.1-oki + tx39-*) + cpu=mipstx39 ;; - romp) - basic_machine=romp-ibm + tx39el-*) + cpu=mipstx39el ;; - mmix) - basic_machine=mmix-knuth + x64-*) + cpu=x86_64 ;; - rs6000) - basic_machine=rs6000-ibm + xscale-* | xscalee[bl]-*) + cpu=`echo "$cpu" | sed 's/^xscale/arm/'` ;; - vax) - basic_machine=vax-dec + + # Recognize the canonical CPU Types that limit and/or modify the + # company names they are paired with. + cr16-*) + os=${os:-elf} ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown + crisv32-* | etraxfs*-*) + cpu=crisv32 + vendor=axis ;; - pdp11) - basic_machine=pdp11-dec + cris-* | etrax*-*) + cpu=cris + vendor=axis ;; - we32k) - basic_machine=we32k-att + crx-*) + os=${os:-elf} ;; - sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown + neo-tandem) + cpu=neo + vendor=tandem ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun + nse-tandem) + cpu=nse + vendor=tandem ;; - cydra) - basic_machine=cydra-cydrome + nsr-tandem) + cpu=nsr + vendor=tandem ;; - orion) - basic_machine=orion-highlevel + nsv-tandem) + cpu=nsv + vendor=tandem ;; - orion105) - basic_machine=clipper-highlevel + nsx-tandem) + cpu=nsx + vendor=tandem ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple + s390-*) + cpu=s390 + vendor=ibm ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple + s390x-*) + cpu=s390x + vendor=ibm ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. + tile*-*) + os=${os:-linux-gnu} ;; + *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 + # Recognize the canonical CPU types that are allowed with any + # company name. + case $cpu in + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | abacus \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \ + | alphapca5[67] | alpha64pca5[67] \ + | am33_2.0 \ + | amdgcn \ + | arc | arceb \ + | arm | arm[lb]e | arme[lb] | armv* \ + | avr | avr32 \ + | asmjs \ + | ba \ + | be32 | be64 \ + | bfin | bs2000 \ + | c[123]* | c30 | [cjt]90 | c4x \ + | c8051 | clipper | craynv | csky | cydra \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | elxsi | epiphany \ + | f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \ + | h8300 | h8500 \ + | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i*86 | i860 | i960 | ia16 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle \ + | m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k | v70 | w65 \ + | m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip \ + | m88110 | m88k | maxq | mb | mcore | mep | metag \ + | microblaze | microblazeel \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mmix \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nfp \ + | nios | nios2 | nios2eb | nios2el \ + | none | np1 | ns16k | ns32k \ + | open8 \ + | or1k* \ + | or32 \ + | orion \ + | pdp10 | pdp11 | pj | pjl | pn | power \ + | powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \ + | pru \ + | pyramid \ + | riscv | riscv32 | riscv64 \ + | rl78 | romp | rs6000 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]ae[lb] | sh[23]e | she[lb] | sh[lb]e \ + | sh[1234]e[lb] | sh[12345][lb]e | sh[23]ele | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet \ + | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \ + | spu \ + | tahoe \ + | tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \ + | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \ + | vax \ + | visium \ + | wasm32 \ + | we32k \ + | x86 | x86_64 | xc16x | xgate | xps100 \ + | xstormy16 | xtensa* \ + | ymp \ + | z8k | z80) + ;; + + *) + echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2 + exit 1 + ;; + esac ;; esac # Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` +case $vendor in + digital*) + vendor=dec ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + commodore*) + vendor=cbm ;; *) ;; @@ -1362,200 +1271,246 @@ esac # Decode manufacturer-specific aliases for certain operating systems. -if [ x"$os" != x"" ] +if [ x$os != x ] then case $os in # First match some system type aliases that might get confused # with valid system types. - # -solaris* is a basic system type, with this one exception. - -auroraux) - os=-auroraux + # solaris* is a basic system type, with this one exception. + auroraux) + os=auroraux ;; - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` + bluegene*) + os=cnk ;; - -solaris) - os=-solaris2 + solaris1 | solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` ;; - -svr4*) - os=-sysv4 + solaris) + os=solaris2 ;; - -unixware*) - os=-sysv4.2uw + unixware*) + os=sysv4.2uw ;; - -gnu/linux*) + gnu/linux*) os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` ;; + # es1800 is here to avoid being matched by es* (a different OS) + es1800*) + os=ose + ;; + # Some version numbers need modification + chorusos*) + os=chorusos + ;; + isc) + os=isc2.2 + ;; + sco6) + os=sco5v6 + ;; + sco5) + os=sco3.2v5 + ;; + sco4) + os=sco3.2v4 + ;; + sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + ;; + sco3.2v[4-9]* | sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + ;; + scout) + # Don't match below + ;; + sco*) + os=sco3.2v2 + ;; + psos*) + os=psos + ;; # Now accept the basic system types. # The portable systems comes first. # Each alternative MUST end in a * to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -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* | -plan9* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* | -cloudabi* | -sortix* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ - | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ - | -linux-newlib* | -linux-musl* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ - | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox*) + # sysv* is not here because it comes later, after sysvr4. + gnu* | bsd* | mach* | minix* | genix* | ultrix* | irix* \ + | *vms* | esix* | aix* | cnk* | sunos | sunos[34]*\ + | hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \ + | sym* | kopensolaris* | plan9* \ + | amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \ + | aos* | aros* | cloudabi* | sortix* \ + | nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \ + | clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \ + | knetbsd* | mirbsd* | netbsd* \ + | bitrig* | openbsd* | solidbsd* | libertybsd* \ + | ekkobsd* | kfreebsd* | freebsd* | riscix* | lynxos* \ + | bosx* | nextstep* | cxux* | aout* | elf* | oabi* \ + | ptx* | coff* | ecoff* | winnt* | domain* | vsta* \ + | udi* | eabi* | lites* | ieee* | go32* | aux* | hcos* \ + | chorusrdb* | cegcc* | glidix* \ + | cygwin* | msys* | pe* | moss* | proelf* | rtems* \ + | midipix* | mingw32* | mingw64* | linux-gnu* | linux-android* \ + | linux-newlib* | linux-musl* | linux-uclibc* \ + | uxpv* | beos* | mpeix* | udk* | moxiebox* \ + | interix* | uwin* | mks* | rhapsody* | darwin* \ + | openstep* | oskit* | conix* | pw32* | nonstopux* \ + | storm-chaos* | tops10* | tenex* | tops20* | its* \ + | os2* | vos* | palmos* | uclinux* | nucleus* \ + | morphos* | superux* | rtmk* | windiss* \ + | powermax* | dnix* | nx6 | nx7 | sei* | dragonfly* \ + | skyos* | haiku* | rdos* | toppers* | drops* | es* \ + | onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \ + | midnightbsd* | amdhsa* | unleashed* | emscripten*) # Remember, each alternative MUST END IN *, to match a version number. ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) + qnx*) + case $cpu in + x86 | i*86) ;; *) - os=-nto$os + os=nto-$os ;; esac ;; - -nto-qnx*) + hiux*) + os=hiuxwe2 ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` + nto-qnx*) ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` + sim | xray | os68k* | v88r* \ + | windows* | osx | abug | netware* | os9* \ + | macos* | mpw* | magic* | mmixware* | mon960* | lnews*) ;; - -linux-dietlibc) - os=-linux-dietlibc + linux-dietlibc) + os=linux-dietlibc ;; - -linux*) + linux*) os=`echo $os | sed -e 's|linux|linux-gnu|'` ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` + lynx*178) + os=lynxos178 + ;; + lynx*5) + os=lynxos5 ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` + lynx*) + os=lynxos ;; - -opened*) - os=-openedition + mac*) + os=`echo "$os" | sed -e 's|mac|macos|'` ;; - -os400*) - os=-os400 + opened*) + os=openedition ;; - -wince*) - os=-wince + os400*) + os=os400 ;; - -osfrose*) - os=-osfrose + sunos5*) + os=`echo "$os" | sed -e 's|sunos5|solaris2|'` ;; - -osf*) - os=-osf + sunos6*) + os=`echo "$os" | sed -e 's|sunos6|solaris3|'` ;; - -utek*) - os=-bsd + wince*) + os=wince ;; - -dynix*) - os=-bsd + utek*) + os=bsd ;; - -acis*) - os=-aos + dynix*) + os=bsd ;; - -atheos*) - os=-atheos + acis*) + os=aos ;; - -syllable*) - os=-syllable + atheos*) + os=atheos ;; - -386bsd) - os=-bsd + syllable*) + os=syllable ;; - -ctix* | -uts*) - os=-sysv + 386bsd) + os=bsd + ;; + ctix* | uts*) + os=sysv ;; - -nova*) - os=-rtmk-nova + nova*) + os=rtmk-nova ;; - -ns2) - os=-nextstep2 + ns2) + os=nextstep2 ;; - -nsk*) - os=-nsk + nsk*) + os=nsk ;; # Preserve the version number of sinix5. - -sinix5.*) + sinix5.*) os=`echo $os | sed -e 's|sinix|sysv|'` ;; - -sinix*) - os=-sysv4 - ;; - -tpf*) - os=-tpf + sinix*) + os=sysv4 ;; - -triton*) - os=-sysv3 + tpf*) + os=tpf ;; - -oss*) - os=-sysv3 + triton*) + os=sysv3 ;; - -svr4) - os=-sysv4 + oss*) + os=sysv3 ;; - -svr3) - os=-sysv3 + svr4*) + os=sysv4 ;; - -sysvr4) - os=-sysv4 + svr3) + os=sysv3 ;; - # This must come after -sysvr4. - -sysv*) + sysvr4) + os=sysv4 ;; - -ose*) - os=-ose + # This must come after sysvr4. + sysv*) ;; - -es1800*) - os=-ose + ose*) + os=ose ;; - -xenix) - os=-xenix + *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) + os=mint ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint + zvmoe) + os=zvmoe ;; - -aros*) - os=-aros + dicos*) + os=dicos ;; - -zvmoe) - os=-zvmoe + pikeos*) + # Until real need of OS specific support for + # particular features comes up, bare metal + # configurations are quite functional. + case $cpu in + arm*) + os=eabi + ;; + *) + os=elf + ;; + esac ;; - -dicos*) - os=-dicos + nacl*) ;; - -nacl*) + ios) ;; - -ios) + none) ;; - -none) + *-eabi) ;; *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 exit 1 ;; esac @@ -1571,264 +1526,265 @@ else # will signal an error saying that MANUFACTURER isn't an operating # system, and we'll never get to this point. -case $basic_machine in +case $cpu-$vendor in score-*) - os=-elf + os=elf ;; spu-*) - os=-elf + os=elf ;; *-acorn) - os=-riscix1.2 + os=riscix1.2 ;; arm*-rebel) - os=-linux + os=linux ;; arm*-semi) - os=-aout + os=aout ;; c4x-* | tic4x-*) - os=-coff + os=coff ;; c8051-*) - os=-elf + os=elf + ;; + clipper-intergraph) + os=clix ;; hexagon-*) - os=-elf + os=elf ;; tic54x-*) - os=-coff + os=coff ;; tic55x-*) - os=-coff + os=coff ;; tic6x-*) - os=-coff + os=coff ;; # This must come before the *-dec entry. pdp10-*) - os=-tops20 + os=tops20 ;; pdp11-*) - os=-none + os=none ;; *-dec | vax-*) - os=-ultrix4.2 + os=ultrix4.2 ;; m68*-apollo) - os=-domain + os=domain ;; i386-sun) - os=-sunos4.0.2 + os=sunos4.0.2 ;; m68000-sun) - os=-sunos3 + os=sunos3 ;; m68*-cisco) - os=-aout + os=aout ;; mep-*) - os=-elf + os=elf ;; mips*-cisco) - os=-elf + os=elf ;; mips*-*) - os=-elf + os=elf ;; or32-*) - os=-coff + os=coff ;; *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 + os=sysv3 ;; sparc-* | *-sun) - os=-sunos4.1.1 + os=sunos4.1.1 ;; pru-*) - os=-elf + os=elf ;; *-be) - os=-beos - ;; - *-haiku) - os=-haiku + os=beos ;; *-ibm) - os=-aix + os=aix ;; *-knuth) - os=-mmixware + os=mmixware ;; *-wec) - os=-proelf + os=proelf ;; *-winbond) - os=-proelf + os=proelf ;; *-oki) - os=-proelf + os=proelf ;; *-hp) - os=-hpux + os=hpux ;; *-hitachi) - os=-hiux + os=hiux ;; i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv + os=sysv ;; *-cbm) - os=-amigaos + os=amigaos ;; *-dg) - os=-dgux + os=dgux ;; *-dolphin) - os=-sysv3 + os=sysv3 ;; m68k-ccur) - os=-rtu + os=rtu ;; m88k-omron*) - os=-luna + os=luna ;; *-next) - os=-nextstep + os=nextstep ;; *-sequent) - os=-ptx + os=ptx ;; *-crds) - os=-unos + os=unos ;; *-ns) - os=-genix + os=genix ;; i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 + os=mvs ;; *-gould) - os=-sysv + os=sysv ;; *-highlevel) - os=-bsd + os=bsd ;; *-encore) - os=-bsd + os=bsd ;; *-sgi) - os=-irix + os=irix ;; *-siemens) - os=-sysv4 + os=sysv4 ;; *-masscomp) - os=-rtu + os=rtu ;; f30[01]-fujitsu | f700-fujitsu) - os=-uxpv + os=uxpv ;; *-rom68k) - os=-coff + os=coff ;; *-*bug) - os=-coff + os=coff ;; *-apple) - os=-macos + os=macos ;; *-atari*) - os=-mint + os=mint + ;; + *-wrs) + os=vxworks ;; *) - os=-none + os=none ;; esac fi # Here we handle the case where we know the os, and the CPU type, but not the # manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) +case $vendor in + unknown) case $os in - -riscix*) + riscix*) vendor=acorn ;; - -sunos*) + sunos*) vendor=sun ;; - -cnk*|-aix*) + cnk*|-aix*) vendor=ibm ;; - -beos*) + beos*) vendor=be ;; - -hpux*) + hpux*) vendor=hp ;; - -mpeix*) + mpeix*) vendor=hp ;; - -hiux*) + hiux*) vendor=hitachi ;; - -unos*) + unos*) vendor=crds ;; - -dgux*) + dgux*) vendor=dg ;; - -luna*) + luna*) vendor=omron ;; - -genix*) + genix*) vendor=ns ;; - -mvs* | -opened*) + clix*) + vendor=intergraph + ;; + mvs* | opened*) vendor=ibm ;; - -os400*) + os400*) vendor=ibm ;; - -ptx*) + ptx*) vendor=sequent ;; - -tpf*) + tpf*) vendor=ibm ;; - -vxsim* | -vxworks* | -windiss*) + vxsim* | vxworks* | windiss*) vendor=wrs ;; - -aux*) + aux*) vendor=apple ;; - -hms*) + hms*) vendor=hitachi ;; - -mpw* | -macos*) + mpw* | macos*) vendor=apple ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + *mint | mint[0-9]* | *MiNT | MiNT[0-9]*) vendor=atari ;; - -vos*) + vos*) vendor=stratus ;; esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` ;; esac -echo $basic_machine$os +echo "$cpu-$vendor-$os" exit # Local variables: -# eval: (add-hook 'write-file-functions 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "timestamp='" # time-stamp-format: "%:y-%02m-%02d" # time-stamp-end: "'" diff --git a/build-aux/depcomp b/build-aux/depcomp index 5ff3c6fe..65cbf709 100755 --- a/build-aux/depcomp +++ b/build-aux/depcomp @@ -1,9 +1,9 @@ #! /bin/sh # depcomp - compile a program generating dependencies as side-effects -scriptversion=2017-09-16.17; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1999-2017 Free Software Foundation, Inc. +# Copyright (C) 1999-2018 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -783,7 +783,7 @@ exit 0 # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" diff --git a/build-aux/gitlog-to-changelog b/build-aux/gitlog-to-changelog index 3c94bd56..deddef24 100755 --- a/build-aux/gitlog-to-changelog +++ b/build-aux/gitlog-to-changelog @@ -3,13 +3,13 @@ eval '(exit $?0)' && eval 'exec perl -wS "$0" "$@"' if 0; # Convert git log output to ChangeLog format. -my $VERSION = '2017-09-13 06:45'; # UTC +my $VERSION = '2018-03-07 03:47'; # UTC # The definition above must lie within the first 8 lines in order # for the Emacs time-stamp write hook (at end) to update it. # If you change this file with Emacs, please let the write hook # do its job. Otherwise, update this string manually. -# Copyright (C) 2008-2017 Free Software Foundation, Inc. +# Copyright (C) 2008-2019 Free Software Foundation, Inc. # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -491,7 +491,7 @@ sub git_dir_option($) # Local Variables: # mode: perl # indent-tabs-mode: nil -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "my $VERSION = '" # time-stamp-format: "%:y-%02m-%02d %02H:%02M" # time-stamp-time-zone: "UTC0" diff --git a/build-aux/install-sh b/build-aux/install-sh index ac159ced..8175c640 100755 --- a/build-aux/install-sh +++ b/build-aux/install-sh @@ -1,7 +1,7 @@ #!/bin/sh # install - install a program, script, or datafile -scriptversion=2017-09-23.17; # UTC +scriptversion=2018-03-11.20; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the @@ -332,34 +332,43 @@ do # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) + # Note that $RANDOM variable is not portable (e.g. dash); Use it + # here however when possible just to lower collision chance. tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 + trap 'ret=$?; rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null; exit $ret' 0 + + # Because "mkdir -p" follows existing symlinks and we likely work + # directly in world-writeable /tmp, make sure that the '$tmpdir' + # directory is successfully created first before we actually test + # 'mkdir -p' feature. if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 + $mkdirprog $mkdir_mode "$tmpdir" && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` + test_tmpdir="$tmpdir/a" + ls_ld_tmpdir=`ls -ld "$test_tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` + $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi - rmdir "$tmpdir/d" "$tmpdir" + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null + rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null fi trap '' 0;; esac;; @@ -501,7 +510,7 @@ do done # Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" diff --git a/build-aux/mdate-sh b/build-aux/mdate-sh index 34de9755..8c7a5901 100755 --- a/build-aux/mdate-sh +++ b/build-aux/mdate-sh @@ -1,9 +1,9 @@ #!/bin/sh # Get modification time of a file or directory and pretty-print it. -scriptversion=2017-09-22.02; # UTC +scriptversion=2018-03-07.03; # UTC -# Copyright (C) 1995-2017 Free Software Foundation, Inc. +# Copyright (C) 1995-2018 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 @@ -220,7 +220,7 @@ echo $day $month $year # Local Variables: # mode: shell-script # sh-indentation: 2 -# eval: (add-hook 'write-file-hooks 'time-stamp) +# eval: (add-hook 'before-save-hook 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC0" diff --git a/build-aux/missing b/build-aux/missing index cdea5149..f62bbae3 100755 --- a/build-aux/missing +++ b/build-aux/missing @@ -1,9 +1,9 @@ #! /bin/sh # Common wrapper for a few potentially missing GNU programs. -scriptversion=2012-06-26.16; # UTC +scriptversion=2013-10-28.13; # UTC -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # Originally written by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. # This program is free software; you can redistribute it and/or modify @@ -160,7 +160,7 @@ give_advice () ;; autom4te*) echo "You might have modified some maintainer files that require" - echo "the 'automa4te' program to be rebuilt." + echo "the 'autom4te' program to be rebuilt." program_details 'autom4te' ;; bison*|yacc*) diff --git a/build-aux/texinfo.tex b/build-aux/texinfo.tex index 022c3f5b..66a832e0 100644 --- a/build-aux/texinfo.tex +++ b/build-aux/texinfo.tex @@ -3,12 +3,9 @@ % Load plain if necessary, i.e., if running under initex. \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi % -\def\texinfoversion{2017-09-11.18} +\def\texinfoversion{2018-12-28.17} % -% Copyright 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, -% 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, -% 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017 -% Free Software Foundation, Inc. +% Copyright 1985, 1986, 1988, 1990-2018 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 @@ -244,17 +241,7 @@ % \def\finalout{\overfullrule=0pt } -% Do @cropmarks to get crop marks. -% -\newif\ifcropmarks -\let\cropmarks = \cropmarkstrue -% -% Dimensions to add cropmarks at corners. -% Added by P. A. MacKay, 12 Nov. 1986 -% \newdimen\outerhsize \newdimen\outervsize % set by the paper size routines -\newdimen\cornerlong \cornerlong=1pc -\newdimen\cornerthick \cornerthick=.3pt \newdimen\topandbottommargin \topandbottommargin=.75in % Output a mark which sets \thischapter, \thissection and \thiscolor. @@ -328,12 +315,12 @@ \newbox\footlinebox % \onepageout takes a vbox as an argument. -% \shipout a vbox for a single page, adding an optional header, footer, -% cropmarks, and footnote. This also causes index entries for this page -% to be written to the auxiliary files. +% \shipout a vbox for a single page, adding an optional header, footer +% and footnote. This also causes index entries for this page to be written +% to the auxiliary files. % \def\onepageout#1{% - \ifcropmarks \hoffset=0pt \else \hoffset=\normaloffset \fi + \hoffset=\normaloffset % \ifodd\pageno \advance\hoffset by \bindingoffset \else \advance\hoffset by -\bindingoffset\fi @@ -386,25 +373,6 @@ % Do this early so pdf references go to the beginning of the page. \ifpdfmakepagedest \pdfdest name{\the\pageno} xyz\fi % - \ifcropmarks \vbox to \outervsize\bgroup - \hsize = \outerhsize - \vskip-\topandbottommargin - \vtop to0pt{% - \line{\ewtop\hfil\ewtop}% - \nointerlineskip - \line{% - \vbox{\moveleft\cornerthick\nstop}% - \hfill - \vbox{\moveright\cornerthick\nstop}% - }% - \vss}% - \vskip\topandbottommargin - \line\bgroup - \hfil % center the page within the outer (page) hsize. - \ifodd\pageno\hskip\bindingoffset\fi - \vbox\bgroup - \fi - % \unvbox\headlinebox \pagebody{#1}% \ifdim\ht\footlinebox > 0pt @@ -415,22 +383,6 @@ \unvbox\footlinebox \fi % - \ifcropmarks - \egroup % end of \vbox\bgroup - \hfil\egroup % end of (centering) \line\bgroup - \vskip\topandbottommargin plus1fill minus1fill - \boxmaxdepth = \cornerthick - \vbox to0pt{\vss - \line{% - \vbox{\moveleft\cornerthick\nsbot}% - \hfill - \vbox{\moveright\cornerthick\nsbot}% - }% - \nointerlineskip - \line{\ewbot\hfil\ewbot}% - }% - \egroup % \vbox from first cropmarks clause - \fi }% end of \shipout\vbox }% end of group with \indexdummies \advancepageno @@ -451,17 +403,6 @@ \ifr@ggedbottom \kern-\dimen@ \vfil \fi} } -% Here are the rules for the cropmarks. Note that they are -% offset so that the space between them is truly \outerhsize or \outervsize -% (P. A. MacKay, 12 November, 1986) -% -\def\ewtop{\vrule height\cornerthick depth0pt width\cornerlong} -\def\nstop{\vbox - {\hrule height\cornerthick depth\cornerlong width\cornerthick}} -\def\ewbot{\vrule height0pt depth\cornerthick width\cornerlong} -\def\nsbot{\vbox - {\hrule height\cornerlong depth\cornerthick width\cornerthick}} - % Argument parsing @@ -1528,6 +1469,9 @@ output) for that.)} \startlink attr{/Border [0 0 0]}% user{/Subtype /Link /A << /S /URI /URI (#1) >>}% \endgroup} + % \pdfgettoks - Surround page numbers in #1 with @pdflink. #1 may + % be a simple number, or a list of numbers in the case of an index + % entry. \def\pdfgettoks#1.{\setbox\boxA=\hbox{\toksA={#1.}\toksB={}\maketoks}} \def\addtokens#1#2{\edef\addtoks{\noexpand#1={\the#1#2}}\addtoks} \def\adn#1{\addtokens{\toksC}{#1}\global\countA=1\let\next=\maketoks} @@ -2235,6 +2179,20 @@ end \font\smallersy=cmsy8 \def\smallerecsize{0800} +% Fonts for math mode superscripts (7pt). +\def\sevennominalsize{7pt} +\setfont\sevenrm\rmshape{7}{1000}{OT1} +\setfont\seventt\ttshape{10}{700}{OT1TT} +\setfont\sevenbf\bfshape{10}{700}{OT1} +\setfont\sevenit\itshape{7}{1000}{OT1IT} +\setfont\sevensl\slshape{10}{700}{OT1} +\setfont\sevensf\sfshape{10}{700}{OT1} +\setfont\sevensc\scshape{10}{700}{OT1} +\setfont\seventtsl\ttslshape{10}{700}{OT1TT} +\font\seveni=cmmi7 +\font\sevensy=cmsy7 +\def\sevenecsize{0700} + % Fonts for title page (20.4pt): \def\titlenominalsize{20pt} \setfont\titlerm\rmbshape{12}{\magstep3}{OT1} @@ -2369,6 +2327,20 @@ end \font\smallersy=cmsy8 \def\smallerecsize{0800} +% Fonts for math mode superscripts (7pt). +\def\sevennominalsize{7pt} +\setfont\sevenrm\rmshape{7}{1000}{OT1} +\setfont\seventt\ttshape{10}{700}{OT1TT} +\setfont\sevenbf\bfshape{10}{700}{OT1} +\setfont\sevenit\itshape{7}{1000}{OT1IT} +\setfont\sevensl\slshape{10}{700}{OT1} +\setfont\sevensf\sfshape{10}{700}{OT1} +\setfont\sevensc\scshape{10}{700}{OT1} +\setfont\seventtsl\ttslshape{10}{700}{OT1TT} +\font\seveni=cmmi7 +\font\sevensy=cmsy7 +\def\sevenecsize{0700} + % Fonts for title page (20.4pt): \def\titlenominalsize{20pt} \setfont\titlerm\rmbshape{12}{\magstep3}{OT1} @@ -2503,13 +2475,20 @@ end % In order for the font changes to affect most math symbols and letters, -% we have to define the \textfont of the standard families. We don't -% bother to reset \scriptfont and \scriptscriptfont; awaiting user need. +% we have to define the \textfont of the standard families. +% We don't bother to reset \scriptscriptfont; awaiting user need. % \def\resetmathfonts{% \textfont0=\rmfont \textfont1=\ifont \textfont2=\syfont \textfont\itfam=\itfont \textfont\slfam=\slfont \textfont\bffam=\bffont \textfont\ttfam=\ttfont \textfont\sffam=\sffont + % + % Fonts for superscript. Note that the 7pt fonts are used regardless + % of the current font size. + \scriptfont0=\sevenrm \scriptfont1=\seveni \scriptfont2=\sevensy + \scriptfont\itfam=\sevenit \scriptfont\slfam=\sevensl + \scriptfont\bffam=\sevenbf \scriptfont\ttfam=\seventt + \scriptfont\sffam=\sevensf } % @@ -2519,6 +2498,9 @@ end % to also set the current \fam for math mode. Our \STYLE (e.g., \rm) % commands hardwire \STYLEfont to set the current font. % +% The fonts used for \ifont are for "math italics" (\itfont is for italics +% in regular text). \syfont is also used in math mode only. +% % Each font-changing command also sets the names \lsize (one size lower) % and \lllsize (three sizes lower). These relative commands are used % in, e.g., the LaTeX logo and acronyms. @@ -2619,26 +2601,11 @@ end % Markup style infrastructure. \defmarkupstylesetup\INITMACRO will % define and register \INITMACRO to be called on markup style changes. % \INITMACRO can check \currentmarkupstyle for the innermost -% style and the set of \ifmarkupSTYLE switches for all styles -% currently in effect. -\newif\ifmarkupvar -\newif\ifmarkupsamp -\newif\ifmarkupkey -%\newif\ifmarkupfile % @file == @samp. -%\newif\ifmarkupoption % @option == @samp. -\newif\ifmarkupcode -\newif\ifmarkupkbd -%\newif\ifmarkupenv % @env == @code. -%\newif\ifmarkupcommand % @command == @code. -\newif\ifmarkuptex % @tex (and part of @math, for now). -\newif\ifmarkupexample -\newif\ifmarkupverb -\newif\ifmarkupverbatim +% style. \let\currentmarkupstyle\empty \def\setupmarkupstyle#1{% - \csname markup#1true\endcsname \def\currentmarkupstyle{#1}% \markupstylesetup } @@ -2700,11 +2667,15 @@ end % lilypond developers report. xpdf does work with the regular 0x27. % \def\codequoteright{% - \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax - \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax - '% + \ifmonospace + \expandafter\ifx\csname SETtxicodequoteundirected\endcsname\relax + \expandafter\ifx\csname SETcodequoteundirected\endcsname\relax + '% + \else \char'15 \fi \else \char'15 \fi - \else \char'15 \fi + \else + '% + \fi } % % and a similar option for the left quote char vs. a grave accent. @@ -2712,13 +2683,17 @@ end % the code environments to do likewise. % \def\codequoteleft{% - \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax - \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax - % [Knuth] pp. 380,381,391 - % \relax disables Spanish ligatures ?` and !` of \tt font. - \relax`% + \ifmonospace + \expandafter\ifx\csname SETtxicodequotebacktick\endcsname\relax + \expandafter\ifx\csname SETcodequotebacktick\endcsname\relax + % [Knuth] pp. 380,381,391 + % \relax disables Spanish ligatures ?` and !` of \tt font. + \relax`% + \else \char'22 \fi \else \char'22 \fi - \else \char'22 \fi + \else + \relax`% + \fi } % Commands to set the quote options. @@ -5969,24 +5944,30 @@ end % Split the last of the double-column material. \savemarks \balancecolumns - % + }% + \eject % call the \output just set + \ifdim\pagetotal=0pt % Having called \balancecolumns once, we do not % want to call it again. Therefore, reset \output to its normal % definition right away. \global\output = {\onepageout{\pagecontents\PAGE}}% - }% - \eject - \endgroup % started in \begindoublecolumns - \restoremarks - % Leave the double-column material on the current page, no automatic - % page break. - \box\balancedcolumns - % - % \pagegoal was set to the doubled \vsize above, since we restarted - % the current page. We're now back to normal single-column - % typesetting, so reset \pagegoal to the normal \vsize. - \global\vsize = \txipageheight % - \pagegoal = \txipageheight % + % + \endgroup % started in \begindoublecolumns + \restoremarks + % Leave the double-column material on the current page, no automatic + % page break. + \box\balancedcolumns + % + % \pagegoal was set to the doubled \vsize above, since we restarted + % the current page. We're now back to normal single-column + % typesetting, so reset \pagegoal to the normal \vsize. + \global\vsize = \txipageheight % + \pagegoal = \txipageheight % + \else + % We had some left-over material. This might happen when \doublecolumnout + % is called in \balancecolumns. Try again. + \expandafter\enddoublecolumns + \fi } \newbox\balancedcolumns \setbox\balancedcolumns=\vbox{shouldnt see this}% @@ -6001,6 +5982,7 @@ end \ifdim\dimen@<5\baselineskip % Don't split a short final column in two. \setbox2=\vbox{}% + \global\setbox\balancedcolumns=\vbox{\pagesofar}% \else \divide\dimen@ by 2 % target to split to \dimen@ii = \dimen@ @@ -6016,15 +5998,15 @@ end \repeat }% % Now the left column is in box 1, and the right column in box 3. + % % Check whether the left column has come out higher than the page itself. % (Note that we have doubled \vsize for the double columns, so % the actual height of the page is 0.5\vsize). \ifdim2\ht1>\vsize - % Just split the last of the double column material roughly in half. - \setbox2=\box0 - \setbox0 = \vsplit2 to \dimen@ii - \setbox0=\vbox to \dimen@ii {\unvbox0\vfill}% - \setbox2=\vbox to \dimen@ii {\unvbox2\vfill}% + % It appears that we have been called upon to balance too much material. + % Output some of it with \doublecolumnout, leaving the rest on the page. + \setbox\PAGE=\box0 + \doublecolumnout \else % Compare the heights of the two columns. \ifdim4\ht1>5\ht3 @@ -6037,10 +6019,10 @@ end \setbox2=\vbox to\ht1{\unvbox3\unskip}% \setbox0=\vbox to\ht1{\unvbox1\unskip}% \fi + \global\setbox\balancedcolumns=\vbox{\pagesofar}% \fi \fi % - \global\setbox\balancedcolumns=\vbox{\pagesofar}% } \catcode`\@ = \other @@ -7963,6 +7945,7 @@ end \gdef\boldbrax{\let(=\opnr\let)=\clnr\let[=\lbrb\let]=\rbrb} \gdef\magicamp{\let&=\amprm} } +\let\ampchar\& \newcount\parencount @@ -11677,7 +11660,7 @@ directory should work if nowhere else does.} @markupsetuprqdefault @c Local variables: -@c eval: (add-hook 'write-file-hooks 'time-stamp) +@c eval: (add-hook 'before-save-hook 'time-stamp) @c page-delimiter: "^\\\\message\\|emacs-page" @c time-stamp-start: "def\\\\texinfoversion{" @c time-stamp-format: "%:y-%02m-%02d.%02H" diff --git a/build-aux/ylwrap b/build-aux/ylwrap index 8f072a8e..7c2d927f 100755 --- a/build-aux/ylwrap +++ b/build-aux/ylwrap @@ -3,7 +3,7 @@ scriptversion=2013-01-12.17; # UTC -# Copyright (C) 1996-2013 Free Software Foundation, Inc. +# Copyright (C) 1996-2014 Free Software Foundation, Inc. # # Written by Tom Tromey <tromey@cygnus.com>. # diff --git a/config.h.in b/config.h.in index 5d2301dc..a954dee8 100644 --- a/config.h.in +++ b/config.h.in @@ -1,80 +1,5 @@ /* config.h.in. Generated from configure.ac by autoheader. */ -/* CPU and C ABI indicator */ -#ifndef __i386__ -#undef __i386__ -#endif -#ifndef __x86_64_x32__ -#undef __x86_64_x32__ -#endif -#ifndef __x86_64__ -#undef __x86_64__ -#endif -#ifndef __alpha__ -#undef __alpha__ -#endif -#ifndef __arm__ -#undef __arm__ -#endif -#ifndef __armhf__ -#undef __armhf__ -#endif -#ifndef __arm64_ilp32__ -#undef __arm64_ilp32__ -#endif -#ifndef __arm64__ -#undef __arm64__ -#endif -#ifndef __hppa__ -#undef __hppa__ -#endif -#ifndef __hppa64__ -#undef __hppa64__ -#endif -#ifndef __ia64_ilp32__ -#undef __ia64_ilp32__ -#endif -#ifndef __ia64__ -#undef __ia64__ -#endif -#ifndef __m68k__ -#undef __m68k__ -#endif -#ifndef __mips__ -#undef __mips__ -#endif -#ifndef __mipsn32__ -#undef __mipsn32__ -#endif -#ifndef __mips64__ -#undef __mips64__ -#endif -#ifndef __powerpc__ -#undef __powerpc__ -#endif -#ifndef __powerpc64__ -#undef __powerpc64__ -#endif -#ifndef __powerpc64_elfv2__ -#undef __powerpc64_elfv2__ -#endif -#ifndef __s390__ -#undef __s390__ -#endif -#ifndef __s390x__ -#undef __s390x__ -#endif -#ifndef __sh__ -#undef __sh__ -#endif -#ifndef __sparc__ -#undef __sparc__ -#endif -#ifndef __sparc64__ -#undef __sparc64__ -#endif - - /* Define if building universal (internal helper macro) */ #undef AC_APPLE_UNIVERSAL_BUILD @@ -168,6 +93,10 @@ /* Define if struct dirent has a member d_ino that actually works. */ #undef D_INO_IN_DIRENT +/* Enable the use of error_print_progname to print program name with error + messages. See comment to function tar_print_progname in src/tar.c */ +#undef ENABLE_ERROR_PRINT_PROGNAME + /* Define to 1 if translation of program messages to the user's native language is requested. */ #undef ENABLE_NLS @@ -269,6 +198,10 @@ 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 fcntl-safer shall be considered present. */ +#undef GNULIB_FCNTL_SAFER + /* 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 @@ -281,6 +214,10 @@ whether the gnulib module fd-safer-flag shall be considered present. */ #undef GNULIB_FD_SAFER_FLAG +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module fnmatch-gnu shall be considered present. */ +#undef GNULIB_FNMATCH_GNU + /* 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 @@ -301,6 +238,10 @@ whether the gnulib module openat shall be considered present. */ #undef GNULIB_OPENAT +/* Define to a C preprocessor expression that evaluates to 1 or 0, depending + whether the gnulib module openat-safer shall be considered present. */ +#undef GNULIB_OPENAT_SAFER + /* enable some gnulib portability checks */ #undef GNULIB_PORTCHECK @@ -387,6 +328,9 @@ /* Define to 1 when the gnulib module fdopendir should be tested. */ #undef GNULIB_TEST_FDOPENDIR +/* Define to 1 when the gnulib module fnmatch should be tested. */ +#undef GNULIB_TEST_FNMATCH + /* Define to 1 when the gnulib module fseek should be tested. */ #undef GNULIB_TEST_FSEEK @@ -729,6 +673,10 @@ CoreFoundation framework. */ #undef HAVE_CFLOCALECOPYCURRENT +/* Define to 1 if you have the Mac OS X function + CFLocaleCopyPreferredLanguages in the CoreFoundation framework. */ +#undef HAVE_CFLOCALECOPYPREFERREDLANGUAGES + /* Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework. */ #undef HAVE_CFPREFERENCESCOPYAPPVALUE @@ -963,6 +911,10 @@ don't. */ #undef HAVE_DECL_WCWIDTH +/* Define to 1 if you have the declaration of `_fseeki64', and to 0 if you + don't. */ +#undef HAVE_DECL__FSEEKI64 + /* Define to 1 if you have the declaration of `_snprintf', and to 0 if you don't. */ #undef HAVE_DECL__SNPRINTF @@ -1026,6 +978,12 @@ /* Define to 1 if you have the `flockfile' function. */ #undef HAVE_FLOCKFILE +/* Define to 1 if you have the `fnmatch' function. */ +#undef HAVE_FNMATCH + +/* Define to 1 if you have the <fnmatch.h> header file. */ +#undef HAVE_FNMATCH_H + /* Define to 1 if fseeko (and presumably ftello) exists and is declared. */ #undef HAVE_FSEEKO @@ -1075,7 +1033,7 @@ /* Define to 1 if you have the `getopt_long_only' function. */ #undef HAVE_GETOPT_LONG_ONLY -/* Define to 1 if you have the `getpagesize' function. */ +/* Define to 1 if the system has the 'getpagesize' function. */ #undef HAVE_GETPAGESIZE /* Define to 1 if you have the `getppriv' function. */ @@ -1163,6 +1121,10 @@ /* Define to 1 if you have the <locale.h> header file. */ #undef HAVE_LOCALE_H +/* Define if localtime-like functions can loop forever on extreme arguments. + */ +#undef HAVE_LOCALTIME_INFLOOP_BUG + /* Define to 1 if you have the `localtime_r' function. */ #undef HAVE_LOCALTIME_R @@ -1248,9 +1210,6 @@ 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 <netdb.h> header file. */ #undef HAVE_NETDB_H @@ -1303,610 +1262,6 @@ /* Define to 1 if you have the `rawmemchr' function. */ #undef HAVE_RAWMEMCHR -/* Define to 1 if alphasort is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_ALPHASORT - -/* Define to 1 if atoll is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_ATOLL - -/* Define to 1 if btowc is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_BTOWC - -/* Define to 1 if canonicalize_file_name is declared even after undefining - 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 environ is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_ENVIRON - -/* Define to 1 if euidaccess is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_EUIDACCESS - -/* Define to 1 if faccessat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FACCESSAT - -/* Define to 1 if fchdir is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FCHDIR - -/* Define to 1 if fchmodat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FCHMODAT - -/* Define to 1 if fchownat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FCHOWNAT - -/* 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 fsync is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FSYNC - -/* Define to 1 if ftello is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FTELLO - -/* Define to 1 if ftruncate is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FTRUNCATE - -/* Define to 1 if futimens is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_FUTIMENS - -/* Define to 1 if getcwd is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETCWD - -/* Define to 1 if getdelim is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETDELIM - -/* Define to 1 if getdomainname is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETDOMAINNAME - -/* Define to 1 if getdtablesize is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETDTABLESIZE - -/* Define to 1 if getgroups is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETGROUPS - -/* Define to 1 if gethostname is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETHOSTNAME - -/* Define to 1 if getline is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETLINE - -/* Define to 1 if getloadavg is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETLOADAVG - -/* Define to 1 if getlogin is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETLOGIN - -/* Define to 1 if getlogin_r is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETLOGIN_R - -/* 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 gettimeofday is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETTIMEOFDAY - -/* Define to 1 if getusershell is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_GETUSERSHELL - -/* 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 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 lchmod is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_LCHMOD - -/* Define to 1 if lchown is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_LCHOWN - -/* Define to 1 if link is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_LINK - -/* Define to 1 if linkat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_LINKAT - -/* Define to 1 if lseek is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_LSEEK - -/* Define to 1 if lstat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_LSTAT - -/* Define to 1 if mbrlen is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MBRLEN - -/* Define to 1 if mbrtowc is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MBRTOWC - -/* Define to 1 if mbsinit is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MBSINIT - -/* Define to 1 if mbsnrtowcs is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MBSNRTOWCS - -/* Define to 1 if mbsrtowcs is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MBSRTOWCS - -/* Define to 1 if memmem is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MEMMEM - -/* Define to 1 if mempcpy is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MEMPCPY - -/* Define to 1 if memrchr is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MEMRCHR - -/* Define to 1 if mkdirat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKDIRAT - -/* Define to 1 if mkdtemp is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKDTEMP - -/* Define to 1 if mkfifo is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKFIFO - -/* Define to 1 if mkfifoat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKFIFOAT - -/* Define to 1 if mknod is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKNOD - -/* Define to 1 if mknodat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKNODAT - -/* Define to 1 if mkostemp is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKOSTEMP - -/* Define to 1 if mkostemps is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKOSTEMPS - -/* Define to 1 if mkstemp is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKSTEMP - -/* Define to 1 if mkstemps is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_MKSTEMPS - -/* Define to 1 if nl_langinfo is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_NL_LANGINFO - -/* 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 pipe2 is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_PIPE2 - -/* 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 qsort_r is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_QSORT_R - -/* 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 readlinkat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_READLINKAT - -/* Define to 1 if reallocarray is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_REALLOCARRAY - -/* Define to 1 if realpath is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_REALPATH - -/* 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 rpmatch is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_RPMATCH - -/* 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 stat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STAT - -/* Define to 1 if stpcpy is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STPCPY - -/* Define to 1 if stpncpy is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STPNCPY - -/* Define to 1 if strcasecmp is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRCASECMP - -/* Define to 1 if strcasestr is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRCASESTR - -/* Define to 1 if strchrnul is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRCHRNUL - -/* Define to 1 if strdup is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRDUP - -/* Define to 1 if strerror_r is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRERROR_R - -/* Define to 1 if strncasecmp is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRNCASECMP - -/* Define to 1 if strncat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRNCAT - -/* Define to 1 if strndup is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRNDUP - -/* Define to 1 if strnlen is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRNLEN - -/* Define to 1 if strpbrk is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRPBRK - -/* Define to 1 if strsep is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRSEP - -/* Define to 1 if strsignal is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRSIGNAL - -/* Define to 1 if strtod is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRTOD - -/* Define to 1 if strtoimax is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRTOIMAX - -/* Define to 1 if strtok_r is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRTOK_R - -/* Define to 1 if strtoll is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRTOLL - -/* Define to 1 if strtoull is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRTOULL - -/* Define to 1 if strtoumax is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRTOUMAX - -/* Define to 1 if strverscmp is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_STRVERSCMP - -/* Define to 1 if symlink is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SYMLINK - -/* Define to 1 if symlinkat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_SYMLINKAT - -/* Define to 1 if tmpfile is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_TMPFILE - -/* Define to 1 if towctrans is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_TOWCTRANS - -/* Define to 1 if truncate is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_TRUNCATE - -/* Define to 1 if ttyname_r is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_TTYNAME_R - -/* Define to 1 if unlink is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_UNLINK - -/* Define to 1 if unlinkat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_UNLINKAT - -/* Define to 1 if unlockpt is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_UNLOCKPT - -/* Define to 1 if unsetenv is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_UNSETENV - -/* Define to 1 if usleep is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_USLEEP - -/* Define to 1 if utime is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_UTIME - -/* Define to 1 if utimensat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_UTIMENSAT - -/* Define to 1 if vdprintf is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_VDPRINTF - -/* Define to 1 if vsnprintf is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_VSNPRINTF - -/* Define to 1 if wcpcpy is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCPCPY - -/* Define to 1 if wcpncpy is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCPNCPY - -/* Define to 1 if wcrtomb is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCRTOMB - -/* Define to 1 if wcscasecmp is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSCASECMP - -/* Define to 1 if wcscat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSCAT - -/* Define to 1 if wcschr is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSCHR - -/* Define to 1 if wcscmp is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSCMP - -/* Define to 1 if wcscoll is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSCOLL - -/* Define to 1 if wcscpy is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSCPY - -/* Define to 1 if wcscspn is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSCSPN - -/* Define to 1 if wcsdup is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSDUP - -/* Define to 1 if wcsftime is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSFTIME - -/* Define to 1 if wcslen is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSLEN - -/* Define to 1 if wcsncasecmp is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSNCASECMP - -/* Define to 1 if wcsncat is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSNCAT - -/* Define to 1 if wcsncmp is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSNCMP - -/* Define to 1 if wcsncpy is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSNCPY - -/* Define to 1 if wcsnlen is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSNLEN - -/* Define to 1 if wcsnrtombs is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSNRTOMBS - -/* Define to 1 if wcspbrk is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSPBRK - -/* Define to 1 if wcsrchr is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSRCHR - -/* Define to 1 if wcsrtombs is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSRTOMBS - -/* Define to 1 if wcsspn is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSSPN - -/* Define to 1 if wcsstr is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSSTR - -/* Define to 1 if wcstok is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSTOK - -/* Define to 1 if wcswidth is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSWIDTH - -/* Define to 1 if wcsxfrm is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCSXFRM - -/* Define to 1 if wctob is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCTOB - -/* Define to 1 if wctrans is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCTRANS - -/* Define to 1 if wctype is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCTYPE - -/* Define to 1 if wcwidth is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WCWIDTH - -/* Define to 1 if wmemchr is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WMEMCHR - -/* Define to 1 if wmemcmp is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WMEMCMP - -/* Define to 1 if wmemcpy is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WMEMCPY - -/* Define to 1 if wmemmove is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WMEMMOVE - -/* Define to 1 if wmemset is declared even after undefining macros. */ -#undef HAVE_RAW_DECL_WMEMSET - -/* 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 @@ -1925,6 +1280,9 @@ /* Define to 1 if you have the `renameat' function. */ #undef HAVE_RENAMEAT +/* Define to 1 if you have the `renameat2' function. */ +#undef HAVE_RENAMEAT2 + /* Define to 1 if you have the `rewinddir' function. */ #undef HAVE_REWINDDIR @@ -2294,6 +1652,9 @@ #endif +/* Define to 1 if the compiler supports the keyword '__inline'. */ +#undef HAVE___INLINE + /* Define as const if the declaration of iconv() needs const. */ #undef ICONV_CONST @@ -2587,6 +1948,11 @@ #ifndef _XOPEN_SOURCE # undef _XOPEN_SOURCE #endif +/* Enable X/Open compliant socket functions that do not require linking + with -lxnet on HP-UX 11.11. */ +#ifndef _HPUX_ALT_XOPEN_SOCKET_API +# undef _HPUX_ALT_XOPEN_SOCKET_API +#endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ @@ -2627,6 +1993,9 @@ /* Define to the program name of xz compressor program */ #undef XZ_PROGRAM +/* Define to the program name of zstd compressor program */ +#undef ZSTD_PROGRAM + /* Enable large inode numbers on Mac OS X 10.5. */ #undef _DARWIN_USE_64_BIT_INODE @@ -2649,12 +2018,15 @@ #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) +#ifndef _Noreturn +# if 201103 <= (defined __cplusplus ? __cplusplus : 0) +# define _Noreturn [[noreturn]] +# elif (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ + || 4 < __GNUC__ + (7 <= __GNUC_MINOR__)) + /* _Noreturn works as-is. */ +# elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C # define _Noreturn __attribute__ ((__noreturn__)) -# elif defined _MSC_VER && 1200 <= _MSC_VER +# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) # define _Noreturn __declspec (noreturn) # else # define _Noreturn @@ -2709,7 +2081,8 @@ if isdigit is mistakenly implemented via a static inline function, a program containing an extern inline function that calls isdigit may not work since the C standard prohibits extern inline functions - from calling static functions. This bug is known to occur on: + from calling static functions (ISO C 99 section 6.7.4.(3). + This bug is known to occur on: OS X 10.8 and earlier; see: https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html @@ -2722,7 +2095,18 @@ OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and for clang but remains for g++; see <https://trac.macports.org/ticket/41033>. - Assume DragonFly and FreeBSD will be similar. */ + Assume DragonFly and FreeBSD will be similar. + + GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 + inline semantics, unless -fgnu89-inline is used. It defines a macro + __GNUC_STDC_INLINE__ to indicate this situation or a macro + __GNUC_GNU_INLINE__ to indicate the opposite situation. + GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline + semantics but warns, unless -fgnu89-inline is used: + warning: C99 inline functions are not supported; using GNU89 + warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute + It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. + */ #if (((defined __APPLE__ && defined __MACH__) \ || defined __DragonFly__ || defined __FreeBSD__) \ && (defined __header_inline \ @@ -2787,9 +2171,6 @@ /* Always use our fgetfilecon wrapper. */ #undef fgetfilecon -/* Define to a replacement function name for fnmatch(). */ -#undef fnmatch - /* Always use our getfilecon wrapper. */ #undef getfilecon @@ -2965,6 +2346,13 @@ # define _GL_ATTRIBUTE_CONST /* empty */ #endif +/* The __malloc__ attribute was added in gcc 3. */ +#if 3 <= __GNUC__ +# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) +#else +# define _GL_ATTRIBUTE_MALLOC /* empty */ +#endif + /* Define as a macro for copying va_list variables. */ #undef va_copy diff --git a/configure b/configure index c8cc0a24..81b35017 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for GNU tar 1.30. +# Generated by GNU Autoconf 2.69 for GNU tar 1.32. # # Report bugs to <bug-tar@gnu.org>. # @@ -580,8 +580,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='GNU tar' PACKAGE_TARNAME='tar' -PACKAGE_VERSION='1.30' -PACKAGE_STRING='GNU tar 1.30' +PACKAGE_VERSION='1.32' +PACKAGE_STRING='GNU tar 1.32' PACKAGE_BUGREPORT='bug-tar@gnu.org' PACKAGE_URL='http://www.gnu.org/software/tar/' @@ -735,6 +735,7 @@ SELINUX_CONTEXT_H NEXT_AS_FIRST_DIRECTIVE_SELINUX_SELINUX_H NEXT_SELINUX_SELINUX_H LIB_SELINUX +GLIBC21 REPLACE_RAISE REPLACE_PTHREAD_SIGMASK HAVE_SIGHANDLER_T @@ -845,17 +846,22 @@ HAVE_WCHAR_T HAVE_MAX_ALIGN_T REPLACE_NULL REPLACE_STRUCT_LCONV +REPLACE_FREELOCALE REPLACE_DUPLOCALE +REPLACE_NEWLOCALE REPLACE_SETLOCALE REPLACE_LOCALECONV +HAVE_FREELOCALE HAVE_DUPLOCALE +HAVE_NEWLOCALE +GNULIB_LOCALENAME GNULIB_DUPLOCALE GNULIB_SETLOCALE GNULIB_LOCALECONV LOCALCHARSET_TESTS_ENVIRONMENT -GLIBC21 HAVE_LANGINFO_YESEXPR HAVE_LANGINFO_ERA +HAVE_LANGINFO_ALTMON HAVE_LANGINFO_T_FMT_AMPM HAVE_LANGINFO_CODESET HAVE_LANGINFO_H @@ -891,6 +897,7 @@ INT64_MAX_EQ_LONG_MAX INT32_MAX_LT_INTMAX_MAX REPLACE_STRTOUMAX REPLACE_STRTOIMAX +HAVE_IMAXDIV_T HAVE_DECL_STRTOUMAX HAVE_DECL_STRTOIMAX HAVE_DECL_IMAXDIV @@ -933,8 +940,6 @@ GL_GENERATE_LIMITS_H_TRUE LIMITS_H NEXT_AS_FIRST_DIRECTIVE_LIMITS_H NEXT_LIMITS_H -HOST_CPU_C_ABI -HOST_CPU REPLACE_LOCALTIME REPLACE_GMTIME REPLACE_TZSET @@ -1089,6 +1094,12 @@ GNULIB_DPRINTF GL_GENERATE_FNMATCH_H_FALSE GL_GENERATE_FNMATCH_H_TRUE FNMATCH_H +HAVE_FNMATCH_H +NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H +NEXT_FNMATCH_H +REPLACE_FNMATCH +HAVE_FNMATCH +GNULIB_FNMATCH REPLACE_ITOLD GL_GENERATE_FLOAT_H_FALSE GL_GENERATE_FLOAT_H_TRUE @@ -1209,6 +1220,7 @@ REPLACE_LINKAT REPLACE_LINK REPLACE_LCHOWN REPLACE_ISATTY +REPLACE_GETPASS REPLACE_GETPAGESIZE REPLACE_GETGROUPS REPLACE_GETLOGIN_R @@ -1225,6 +1237,7 @@ REPLACE_CHOWN HAVE_SYS_PARAM_H HAVE_OS_H HAVE_DECL_TTYNAME_R +HAVE_DECL_TRUNCATE HAVE_DECL_SETHOSTNAME HAVE_DECL_GETUSERSHELL HAVE_DECL_GETPAGESIZE @@ -1236,7 +1249,6 @@ HAVE_DECL_FCHDIR HAVE_DECL_ENVIRON HAVE_USLEEP HAVE_UNLINKAT -HAVE_TRUNCATE HAVE_SYMLINKAT HAVE_SYMLINK HAVE_SLEEP @@ -1251,6 +1263,7 @@ HAVE_LINKAT HAVE_LINK HAVE_LCHOWN HAVE_GROUP_MEMBER +HAVE_GETPASS HAVE_GETPAGESIZE HAVE_GETLOGIN HAVE_GETHOSTNAME @@ -1293,6 +1306,7 @@ GNULIB_LCHOWN GNULIB_ISATTY GNULIB_GROUP_MEMBER GNULIB_GETUSERSHELL +GNULIB_GETPASS GNULIB_GETPAGESIZE GNULIB_GETLOGIN_R GNULIB_GETLOGIN @@ -1623,6 +1637,7 @@ with_lzip with_lzma with_lzop with_xz +with_zstd with_gnu_ld enable_rpath with_libiconv_prefix @@ -2187,7 +2202,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.30 to adapt to many kinds of systems. +\`configure' configures GNU tar 1.32 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -2257,7 +2272,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of GNU tar 1.30:";; + short | recursive ) echo "Configuration of GNU tar 1.32:";; esac cat <<\_ACEOF @@ -2302,6 +2317,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-zstd=PROG use PROG as zstd compressor program --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 @@ -2407,7 +2423,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -GNU tar configure 1.30 +GNU tar configure 1.32 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -3116,7 +3132,7 @@ 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.30, which was +It was created by GNU tar $as_me 1.32, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -3439,6 +3455,8 @@ 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_header_list " fnmatch.h" +as_fn_append ac_func_list " fnmatch" as_fn_append ac_func_list " isblank" as_fn_append ac_func_list " iswctype" as_fn_append ac_func_list " mbsrtowcs" @@ -3459,7 +3477,6 @@ as_fn_append ac_header_list " sys/cdefs.h" as_fn_append ac_func_list " getprogname" as_fn_append ac_func_list " getexecname" as_fn_append ac_func_list " gettimeofday" -as_fn_append ac_func_list " nanotime" as_fn_append ac_header_list " limits.h" as_fn_append ac_header_list " wchar.h" as_fn_append ac_header_list " stdint.h" @@ -3478,7 +3495,6 @@ 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" @@ -3487,6 +3503,7 @@ as_fn_append ac_func_list " nl_langinfo" as_fn_append ac_header_list " priv.h" as_fn_append ac_header_list " malloc.h" as_fn_append ac_func_list " renameat" +as_fn_append ac_func_list " renameat2" as_fn_append ac_header_list " selinux/selinux.h" as_fn_append ac_func_list " setenv" as_fn_append ac_func_list " sleep" @@ -3515,6 +3532,7 @@ 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 " mkfifo" as_fn_append ac_func_list " setlocale" as_fn_append ac_func_list " fsync" gt_needs="$gt_needs need-formatstring-macros" @@ -3619,7 +3637,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.14' +am__api_version='1.15' # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or @@ -3791,8 +3809,8 @@ test "$program_suffix" != NONE && ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` if test x"${MISSING+set}" != xset; then case $am_aux_dir in @@ -3811,7 +3829,7 @@ else $as_echo "$as_me: WARNING: 'missing' script is too old or missing" >&2;} fi -if test x"${install_sh}" != xset; then +if test x"${install_sh+set}" != xset; then case $am_aux_dir in *\ * | *\ *) install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; @@ -4105,7 +4123,7 @@ fi # Define the identity of the package. PACKAGE='tar' - VERSION='1.30' + VERSION='1.32' cat >>confdefs.h <<_ACEOF @@ -4139,8 +4157,8 @@ MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} # <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. +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. # Always define AMTAR for backward compatibility. Yes, it's still used # in the wild :-( We should find a proper way to deprecate it ... AMTAR='$${TAR-tar}' @@ -4314,6 +4332,7 @@ END fi fi + # Enable silent rules by default: # Check whether --enable-silent-rules was given. if test "${enable_silent_rules+set}" = set; then : @@ -6351,6 +6370,8 @@ $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 + $as_echo "#define _HPUX_ALT_XOPEN_SOCKET_API 1" >>confdefs.h + @@ -6933,6 +6954,7 @@ fi # Code from module fchownat: # Code from module fcntl: # Code from module fcntl-h: + # Code from module fcntl-safer: # Code from module fd-hook: # Code from module fd-safer-flag: # Code from module fdopendir: @@ -6945,6 +6967,7 @@ fi # Code from module float: # Code from module fnmatch: # Code from module fnmatch-gnu: + # Code from module fnmatch-h: # Code from module fpending: # Code from module fprintftime: # Code from module fseek: @@ -6973,7 +6996,6 @@ fi # Code from module hard-locale: # Code from module hash: # Code from module havelib: - # Code from module host-cpu-c-abi: # Code from module human: # Code from module include_next: # Code from module intprops: @@ -6985,6 +7007,7 @@ fi # Code from module largefile: # Code from module lchown: + # Code from module libc-config: # Code from module limits-h: # Code from module link: # Code from module link-follow: @@ -7030,7 +7053,9 @@ fi # Code from module openat: # Code from module openat-die: # Code from module openat-h: + # Code from module openat-safer: # Code from module opendir: + # Code from module opendirat: # Code from module parse-datetime: # Code from module pathmax: # Code from module priv-set: @@ -7048,7 +7073,7 @@ fi # Code from module regex: # Code from module rename: # Code from module renameat: - # Code from module renameat2: + # Code from module renameatu: # Code from module rewinddir: # Code from module rmdir: # Code from module root-uid: @@ -8111,17 +8136,17 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ typedef int *int_ptr; - int foo (int_ptr $ac_kw ip) { return ip[0]; } - int bar (int [$ac_kw]); /* Catch GCC bug 14050. */ - int bar (int ip[$ac_kw]) { return ip[0]; } + int foo (int_ptr $ac_kw ip) { return ip[0]; } + int bar (int [$ac_kw]); /* Catch GCC bug 14050. */ + int bar (int ip[$ac_kw]) { return ip[0]; } int main () { int s[1]; - int *$ac_kw t = s; - t[0] = 0; - return foo (t) + bar (t); + int *$ac_kw t = s; + t[0] = 0; + return foo (t) + bar (t); ; return 0; @@ -8693,7 +8718,8 @@ int main () { return zero(); } _ACEOF save_ac_compile="$ac_compile" ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest1/` - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + if echo '#include "conftest.c"' >conftest1.c && + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 @@ -8714,7 +8740,8 @@ int zero (void) { return 0; } _ACEOF ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest2/` - if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + if echo '#include "conftest.c"' >conftest2.c && + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 (eval $ac_compile) 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 @@ -8727,7 +8754,7 @@ _ACEOF fi fi ac_compile="$save_ac_compile" - rm -f conftest1.$ac_objext conftest2.$ac_objext conftest$ac_exeext + rm -f conftest12.c conftest12.$ac_objext conftest$ac_exeext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_header_wchar_h_correct_inline" >&5 @@ -8809,7 +8836,7 @@ int main () { return 1; #else /* Check whether the given locale name is recognized by the system. */ -# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ +# if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE @@ -9143,7 +9170,7 @@ nocrash_init (void) } } } -#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#elif defined _WIN32 && ! defined __CYGWIN__ /* Avoid a crash on native Windows. */ #define WIN32_LEAN_AND_MEAN #include <windows.h> @@ -9288,6 +9315,7 @@ $as_echo "#define FUNC_REALPATH_WORKS 1" >>confdefs.h GNULIB_GETLOGIN=0; GNULIB_GETLOGIN_R=0; GNULIB_GETPAGESIZE=0; + GNULIB_GETPASS=0; GNULIB_GETUSERSHELL=0; GNULIB_GROUP_MEMBER=0; GNULIB_ISATTY=0; @@ -9330,6 +9358,7 @@ $as_echo "#define FUNC_REALPATH_WORKS 1" >>confdefs.h HAVE_GETHOSTNAME=1; HAVE_GETLOGIN=1; HAVE_GETPAGESIZE=1; + HAVE_GETPASS=1; HAVE_GROUP_MEMBER=1; HAVE_LCHOWN=1; HAVE_LINK=1; @@ -9344,7 +9373,6 @@ $as_echo "#define FUNC_REALPATH_WORKS 1" >>confdefs.h HAVE_SLEEP=1; HAVE_SYMLINK=1; HAVE_SYMLINKAT=1; - HAVE_TRUNCATE=1; HAVE_UNLINKAT=1; HAVE_USLEEP=1; HAVE_DECL_ENVIRON=1; @@ -9356,6 +9384,7 @@ $as_echo "#define FUNC_REALPATH_WORKS 1" >>confdefs.h HAVE_DECL_GETPAGESIZE=1; HAVE_DECL_GETUSERSHELL=1; HAVE_DECL_SETHOSTNAME=1; + HAVE_DECL_TRUNCATE=1; HAVE_DECL_TTYNAME_R=1; HAVE_OS_H=0; HAVE_SYS_PARAM_H=0; @@ -9372,6 +9401,7 @@ $as_echo "#define FUNC_REALPATH_WORKS 1" >>confdefs.h REPLACE_GETLOGIN_R=0; REPLACE_GETGROUPS=0; REPLACE_GETPAGESIZE=0; + REPLACE_GETPASS=0; REPLACE_ISATTY=0; REPLACE_LCHOWN=0; REPLACE_LINK=0; @@ -9419,12 +9449,14 @@ if ${ac_cv_func_chown_works+:} false; then : else if test "$cross_compiling" = yes; then : case "$host_os" in # (( - # Guess yes on glibc systems. - *-gnu*) ac_cv_func_chown_works="guessing yes" ;; - # Guess no on native Windows. - mingw*) ac_cv_func_chown_works="guessing no" ;; - # If we don't know, assume the worst. - *) ac_cv_func_chown_works="guessing no" ;; + # Guess yes on Linux systems. + linux-* | linux) ac_cv_func_chown_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) ac_cv_func_chown_works="guessing yes" ;; + # Guess no on native Windows. + mingw*) ac_cv_func_chown_works="guessing no" ;; + # If we don't know, assume the worst. + *) ac_cv_func_chown_works="guessing no" ;; esac else @@ -9852,11 +9884,10 @@ $as_echo "$gl_cv_pragma_columns" >&6; } { $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 ${gt_cv_var_environ_declaration+:} false; then : +if ${gt_cv_var_environ_declaration+:} false; then : $as_echo_n "(cached) " >&6 else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #if HAVE_UNISTD_H #include <unistd.h> @@ -9864,7 +9895,7 @@ else /* mingw, BeOS, Haiku declare environ in <stdlib.h>, not in <unistd.h>. */ #include <stdlib.h> - extern struct { int foo; } environ; + extern struct { int foo; } environ; int main () { @@ -9880,8 +9911,7 @@ else fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi - - { $as_echo "$as_me:${as_lineno-$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 @@ -10352,7 +10382,10 @@ else echo >conftest.file if test "$cross_compiling" = yes; then : case "$host_os" in - *-gnu*) + linux-* | linux) + # Guess yes on Linux systems. + gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; + *-gnu* | gnu*) # Guess yes on glibc systems. gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; mingw*) @@ -10626,6 +10659,165 @@ _ACEOF + { $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 + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/types.h> +int +main () +{ +typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1]; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_promoted_mode_t='int' +else + gl_cv_promoted_mode_t='mode_t' +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $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 PROMOTED_MODE_T $gl_cv_promoted_mode_t +_ACEOF + + + + + + GNULIB_FNMATCH=0; + HAVE_FNMATCH=1; + REPLACE_FNMATCH=0; + + + + + + + + + + + + + + + + + if test $gl_cv_have_include_next = yes; then + gl_cv_next_fnmatch_h='<'fnmatch.h'>' + else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking absolute name of <fnmatch.h>" >&5 +$as_echo_n "checking absolute name of <fnmatch.h>... " >&6; } +if ${gl_cv_next_fnmatch_h+:} false; then : + $as_echo_n "(cached) " >&6 +else + + if test $ac_cv_header_fnmatch_h = yes; then + + + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <fnmatch.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 'fnmatch.h' \ + | sed -e "$gl_make_literal_regex_sed"` + gl_absolute_header_sed="/${gl_dirsep_regex}${gl_header_literal_regex}/"'{ + s/.*"\(.*'"${gl_dirsep_regex}${gl_header_literal_regex}"'\)".*/\1/ + s|^/[^/]|//&| + p + q + }' + + gl_cv_absolute_fnmatch_h=`(eval "$gl_absname_cpp conftest.$ac_ext") 2>&5 | + sed -n "$gl_absolute_header_sed"` + + gl_header=$gl_cv_absolute_fnmatch_h + gl_cv_next_fnmatch_h='"'$gl_header'"' + else + gl_cv_next_fnmatch_h='<'fnmatch.h'>' + fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_next_fnmatch_h" >&5 +$as_echo "$gl_cv_next_fnmatch_h" >&6; } + fi + NEXT_FNMATCH_H=$gl_cv_next_fnmatch_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='<'fnmatch.h'>' + else + # INCLUDE_NEXT_AS_FIRST_DIRECTIVE='include' + gl_next_as_first_directive=$gl_cv_next_fnmatch_h + fi + NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H=$gl_next_as_first_directive + + + + + + + + if test $ac_cv_header_fnmatch_h = yes; then + HAVE_FNMATCH_H=1 + else + HAVE_FNMATCH_H=0 + fi + + + FNMATCH_H='' + if false; then + FNMATCH_H=fnmatch.h + else + if test $ac_cv_header_fnmatch_h != yes; then + FNMATCH_H=fnmatch.h + fi + fi + + + if test -n "$FNMATCH_H"; then + GL_GENERATE_FNMATCH_H_TRUE= + GL_GENERATE_FNMATCH_H_FALSE='#' +else + GL_GENERATE_FNMATCH_H_TRUE='#' + GL_GENERATE_FNMATCH_H_FALSE= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mbstate_t" >&5 @@ -11220,44 +11412,7 @@ fi - 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/stat.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 - eval ac_cv_have_decl_$gl_func=yes -fi - done @@ -11273,12 +11428,12 @@ if ${gl_cv_func_getcwd_null+:} false; then : 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";; + # Guess yes on glibc systems. + *-gnu* | 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 else @@ -11299,7 +11454,7 @@ int main () { -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ /* mingw cwd does not start with '/', but getcwd does allocate. However, mingw fails to honor non-zero size. */ #else @@ -11806,7 +11961,7 @@ nocrash_init (void) } } } -#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#elif defined _WIN32 && ! defined __CYGWIN__ /* Avoid a crash on native Windows. */ #define WIN32_LEAN_AND_MEAN #include <windows.h> @@ -12032,8 +12187,6 @@ $as_echo "$gl_cv_func_getopt_long_gnu" >&6; } - - GNULIB_GETTIMEOFDAY=0; HAVE_GETTIMEOFDAY=1; HAVE_STRUCT_TIMEVAL=1; @@ -12234,48 +12387,7 @@ $as_echo "$gl_cv_sys_struct_timeval_tv_sec" >&6; } 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:${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. */ - -#if HAVE_SYS_TIME_H -# include <sys/time.h> -#endif -#include <time.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 - eval ac_cv_have_decl_$gl_func=yes -fi - done @@ -12314,341 +12426,6 @@ fi REPLACE_LOCALTIME=0; - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -#ifdef _MSC_VER -MicrosoftCompiler -#endif - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "MicrosoftCompiler" >/dev/null 2>&1; then : - gl_asmext='asm' - gl_c_asm_opt='-c -Fa' - -else - gl_asmext='s' - gl_c_asm_opt='-S' - -fi -rm -f conftest* - - - - - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking host CPU and C ABI" >&5 -$as_echo_n "checking host CPU and C ABI... " >&6; } -if ${gl_cv_host_cpu_c_abi+:} false; then : - $as_echo_n "(cached) " >&6 -else - case "$host_cpu" in - - i[4567]86 ) - gl_cv_host_cpu_c_abi=i386 - ;; - - x86_64 ) - # On x86_64 systems, the C compiler may be generating code in one of - # these ABIs: - # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. - # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 - # with native Windows (mingw, MSVC). - # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. - # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if (defined __x86_64__ || defined __amd64__ \ - || defined _M_X64 || defined _M_AMD64) - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if defined __ILP32__ || defined _ILP32 - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gl_cv_host_cpu_c_abi=x86_64-x32 -else - gl_cv_host_cpu_c_abi=x86_64 -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - gl_cv_host_cpu_c_abi=i386 -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ;; - - alphaev[4-8] | alphaev56 | alphapca5[67] | alphaev6[78] ) - gl_cv_host_cpu_c_abi=alpha - ;; - - arm* | aarch64 ) - # Assume arm with EABI. - # On arm64 systems, the C compiler may be generating code in one of - # these ABIs: - # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. - # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. - # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __aarch64__ - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if defined __ILP32__ || defined _ILP32 - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gl_cv_host_cpu_c_abi=arm64-ilp32 -else - gl_cv_host_cpu_c_abi=arm64 -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - # Don't distinguish little-endian and big-endian arm, since they - # don't require different machine code for simple operations and - # since the user can distinguish them through the preprocessor - # defines __ARMEL__ vs. __ARMEB__. - # But distinguish arm which passes floating-point arguments and - # return values in integer registers (r0, r1, ...) - this is - # gcc -mfloat-abi=soft or gcc -mfloat-abi=softfp - from arm which - # passes them in float registers (s0, s1, ...) and double registers - # (d0, d1, ...) - this is gcc -mfloat-abi=hard. GCC 4.6 or newer - # sets the preprocessor defines __ARM_PCS (for the first case) and - # __ARM_PCS_VFP (for the second case), but older GCC does not. - echo 'double ddd; void func (double dd) { ddd = dd; }' > conftest.c - # Look for a reference to the register d0 in the .s file. - { ac_try='${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c' - { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_try\""; } >&5 - (eval $ac_try) 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; } >/dev/null 2>&1 - if LC_ALL=C grep -E 'd0,' conftest.$gl_asmext >/dev/null; then - gl_cv_host_cpu_c_abi=armhf - else - gl_cv_host_cpu_c_abi=arm - fi - rm -f conftest* - -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ;; - - hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) - # On hppa, the C compiler may be generating 32-bit code or 64-bit - # code. In the latter case, it defines _LP64 and __LP64__. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef __LP64__ - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gl_cv_host_cpu_c_abi=hppa64 -else - gl_cv_host_cpu_c_abi=hppa -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ;; - - ia64* ) - # On ia64 on HP-UX, the C compiler may be generating 64-bit code or - # 32-bit code. In the latter case, it defines _ILP32. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifdef _ILP32 - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gl_cv_host_cpu_c_abi=ia64-ilp32 -else - gl_cv_host_cpu_c_abi=ia64 -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ;; - - mips* ) - # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this - # at 32. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gl_cv_host_cpu_c_abi=mips64 -else - # In the n32 ABI, _ABIN32 is defined, _ABIO32 is not defined (but - # may later get defined by <sgidefs.h>), and _MIPS_SIM == _ABIN32. - # In the 32 ABI, _ABIO32 is defined, _ABIN32 is not defined (but - # may later get defined by <sgidefs.h>), and _MIPS_SIM == _ABIO32. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if (_MIPS_SIM == _ABIN32) - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gl_cv_host_cpu_c_abi=mipsn32 -else - gl_cv_host_cpu_c_abi=mips -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ;; - - powerpc* ) - # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. - # No need to distinguish them here; the caller may distinguish - # them based on the OS. - # On powerpc64 systems, the C compiler may still be generating - # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may - # be generating 64-bit code. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if defined __powerpc64__ || defined _ARCH_PPC64 - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # On powerpc64, there are two ABIs on Linux: The AIX compatible - # one and the ELFv2 one. The latter defines _CALL_ELF=2. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if defined _CALL_ELF && _CALL_ELF == 2 - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gl_cv_host_cpu_c_abi=powerpc64-elfv2 -else - gl_cv_host_cpu_c_abi=powerpc64 -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -else - gl_cv_host_cpu_c_abi=powerpc -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ;; - - rs6000 ) - gl_cv_host_cpu_c_abi=powerpc - ;; - - s390* ) - # On s390x, the C compiler may be generating 64-bit (= s390x) code - # or 31-bit (= s390) code. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if defined __LP64__ || defined __s390x__ - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gl_cv_host_cpu_c_abi=s390x -else - gl_cv_host_cpu_c_abi=s390 -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ;; - - sparc | sparc64 ) - # UltraSPARCs running Linux have `uname -m` = "sparc64", but the - # C compiler still generates 32-bit code. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#if defined __sparcv9 || defined __arch64__ - int ok; - #else - error fail - #endif - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gl_cv_host_cpu_c_abi=sparc64 -else - gl_cv_host_cpu_c_abi=sparc -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ;; - - *) - gl_cv_host_cpu_c_abi="$host_cpu" - ;; - esac - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_host_cpu_c_abi" >&5 -$as_echo "$gl_cv_host_cpu_c_abi" >&6; } - - HOST_CPU=`echo "$gl_cv_host_cpu_c_abi" | sed -e 's/-.*//'` - HOST_CPU_C_ABI="$gl_cv_host_cpu_c_abi" - - - - # This was - # AC_DEFINE_UNQUOTED([__${HOST_CPU}__]) - # AC_DEFINE_UNQUOTED([__${HOST_CPU_C_ABI}__]) - # earlier, but KAI C++ 3.2d doesn't like this. - sed -e 's/-/_/g' >> confdefs.h <<EOF -#ifndef __${HOST_CPU}__ -#define __${HOST_CPU}__ 1 -#endif -#ifndef __${HOST_CPU_C_ABI}__ -#define __${HOST_CPU_C_ABI}__ 1 -#endif -EOF - - - - @@ -12730,18 +12507,21 @@ $as_echo "$gl_cv_next_limits_h" >&6; } - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether limits.h has ULLONG_WIDTH etc." >&5 -$as_echo_n "checking whether limits.h has ULLONG_WIDTH etc.... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether limits.h has LLONG_MAX, WORD_BIT, ULLONG_WIDTH etc." >&5 +$as_echo_n "checking whether limits.h has LLONG_MAX, WORD_BIT, ULLONG_WIDTH etc.... " >&6; } if ${gl_cv_header_limits_width+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifndef __STDC_WANT_IEC_60559_BFP_EXT__ - #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 - #endif - #include <limits.h> - int ullw = ULLONG_WIDTH; + #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 + #endif + #include <limits.h> + long long llm = LLONG_MAX; + int wb = WORD_BIT; + int ullw = ULLONG_WIDTH; + int main () { @@ -13844,7 +13624,9 @@ _ACEOF ;; esac - LIMITS_H=limits.h + + + LIMITS_H='limits.h' if test -n "$LIMITS_H"; then GL_GENERATE_LIMITS_H_TRUE= GL_GENERATE_LIMITS_H_FALSE='#' @@ -13858,6 +13640,7 @@ fi + if test -n "$STDINT_H"; then GL_GENERATE_STDINT_H_TRUE= GL_GENERATE_STDINT_H_FALSE='#' @@ -13878,6 +13661,7 @@ fi HAVE_DECL_IMAXDIV=1; HAVE_DECL_STRTOIMAX=1; HAVE_DECL_STRTOUMAX=1; + HAVE_IMAXDIV_T=1; REPLACE_STRTOIMAX=0; REPLACE_STRTOUMAX=0; INT32_MAX_LT_INTMAX_MAX=1; @@ -13974,44 +13758,7 @@ $as_echo "$gl_cv_next_inttypes_h" >&6; } - 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> - -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 - eval ac_cv_have_decl_$gl_func=yes -fi - done @@ -14409,55 +14156,7 @@ $as_echo "$gl_cv_type_wctrans_t" >&6; } 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:${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 - - eval ac_cv_have_decl_$gl_func=yes -fi - done @@ -14527,50 +14226,18 @@ $as_echo "$gl_cv_macro_O_CLOEXEC" >&6; } - { $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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* 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:${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" - - - GNULIB_LOCALECONV=0; GNULIB_SETLOCALE=0; GNULIB_DUPLOCALE=0; - HAVE_DUPLOCALE=1; + GNULIB_LOCALENAME=0; + HAVE_NEWLOCALE=1; + HAVE_DUPLOCALE=1; + HAVE_FREELOCALE=1; REPLACE_LOCALECONV=0; REPLACE_SETLOCALE=0; + REPLACE_NEWLOCALE=0; REPLACE_DUPLOCALE=0; + REPLACE_FREELOCALE=0; REPLACE_STRUCT_LCONV=0; @@ -14615,19 +14282,49 @@ $as_echo "#define HAVE_WCHAR_T 1" >>confdefs.h STDDEF_H= - ac_fn_c_check_type "$LINENO" "max_align_t" "ac_cv_type_max_align_t" "#include <stddef.h> -" -if test "x$ac_cv_type_max_align_t" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for good max_align_t" >&5 +$as_echo_n "checking for good max_align_t... " >&6; } +if ${gl_cv_type_max_align_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stddef.h> + unsigned int s = sizeof (max_align_t); + #if defined __GNUC__ || defined __IBM__ALIGNOF__ + int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1]; + int check2[2 * (__alignof__ (long double) <= __alignof__ (max_align_t)) - 1]; + #endif +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_type_max_align_t=yes else - HAVE_MAX_ALIGN_T=0; STDDEF_H=stddef.h + gl_cv_type_max_align_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_max_align_t" >&5 +$as_echo "$gl_cv_type_max_align_t" >&6; } + if test $gl_cv_type_max_align_t = no; then + HAVE_MAX_ALIGN_T=0 + STDDEF_H=stddef.h + fi 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 : @@ -14660,6 +14357,7 @@ $as_echo "$gl_cv_decl_null_works" >&6; } STDDEF_H=stddef.h fi + if test -n "$STDDEF_H"; then GL_GENERATE_STDDEF_H_TRUE= GL_GENERATE_STDDEF_H_FALSE='#' @@ -14759,7 +14457,7 @@ else int main () { -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ choke me #endif @@ -14800,7 +14498,7 @@ else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on platforms where we know the result. - *-gnu* | freebsd* | netbsd* | openbsd* \ + *-gnu* | gnu* | freebsd* | netbsd* | openbsd* \ | hpux* | solaris* | cygwin* | mingw*) ac_cv_func_malloc_0_nonnull=yes ;; # If we don't know, assume the worst. @@ -14887,7 +14585,7 @@ int main () return 1; #else /* Check whether the given locale name is recognized by the system. */ -# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ +# if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE @@ -15036,7 +14734,7 @@ int main () return 1; #else /* Check whether the given locale name is recognized by the system. */ -# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ +# if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE @@ -15173,7 +14871,7 @@ int main () { 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__ +# if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE @@ -15618,8 +15316,6 @@ $as_echo "#define HAVE_MINMAX_IN_SYS_PARAM_H 1" >>confdefs.h - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether time_t is signed" >&5 $as_echo_n "checking whether time_t is signed... " >&6; } if ${gl_cv_time_t_is_signed+:} false; then : @@ -16025,41 +15721,6 @@ $as_echo "#define HAVE_TM_GMTOFF 1" >>confdefs.h fi - - - { $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 - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/types.h> -int -main () -{ -typedef int array[2 * (sizeof (mode_t) < sizeof (int)) - 1]; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - gl_cv_promoted_mode_t='int' -else - gl_cv_promoted_mode_t='mode_t' -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -fi -{ $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 PROMOTED_MODE_T $gl_cv_promoted_mode_t -_ACEOF - - { $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 : @@ -16184,7 +15845,7 @@ fi # parse-datetime.y works with bison only. - : ${YACC='bison -y'} + : ${YACC='bison -o y.tab.c'} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for compound literals" >&5 @@ -16244,6 +15905,45 @@ $as_echo "#define HAVE_COMPOUND_LITERALS 1" >>confdefs.h + { $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 confdefs.h - <<_ACEOF >conftest.$ac_ext +/* 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:${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" + + + + + @@ -16425,7 +16125,7 @@ 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";; + *-gnu* | 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";; @@ -16556,12 +16256,12 @@ if ${gl_cv_func_strerror_0_works+:} false; then : 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" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_strerror_0_works="guessing yes" ;; - # If we don't know, assume the worst. - *) gl_cv_func_strerror_0_works="guessing no" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_strerror_0_works="guessing yes" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_strerror_0_works="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_strerror_0_works="guessing no" ;; esac else @@ -16685,44 +16385,7 @@ $as_echo "$gl_cv_next_string_h" >&6; } - 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 - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <string.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 - eval ac_cv_have_decl_$gl_func=yes -fi - done @@ -16816,48 +16479,7 @@ $as_echo "$gl_cv_next_strings_h" >&6; } - 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. */ - - /* 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 - 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" @@ -17922,7 +17544,7 @@ done if test $ac_cv_header_sys_acl_h = yes; then ac_save_LIBS=$LIBS - if test $use_acl = 0; then + 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 : @@ -18765,8 +18387,8 @@ $as_echo "$gl_cv___builtin_expect" >&6; } HAVE_REALPATH=0 else case "$gl_cv_func_realpath_works" in - *yes) ;; - *) REPLACE_REALPATH=1 ;; + *yes) ;; + *) REPLACE_REALPATH=1 ;; esac fi else @@ -18870,7 +18492,7 @@ else # undef PATH_MAX # define PATH_MAX 1024 #endif -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ # undef PATH_MAX # define PATH_MAX 260 #endif @@ -19191,37 +18813,9 @@ $as_echo "#define GNULIB_TEST_CLOSEDIR 1" >>confdefs.h : - 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 if test "x$runstatedir" = x; then runstatedir='${localstatedir}/run' @@ -19385,44 +18979,7 @@ $as_echo "$gl_cv_next_dirent_h" >&6; } - 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 - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <dirent.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 - eval ac_cv_have_decl_$gl_func=yes -fi - done @@ -20081,10 +19638,10 @@ if ${ac_cv_func_getgroups_works+:} false; then : else if test "$cross_compiling" = yes; then : case "$host_os" in # (( - # Guess yes on glibc systems. - *-gnu*) ac_cv_func_getgroups_works="guessing yes" ;; - # If we don't know, assume the worst. - *) ac_cv_func_getgroups_works="guessing no" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) ac_cv_func_getgroups_works="guessing yes" ;; + # If we don't know, assume the worst. + *) ac_cv_func_getgroups_works="guessing no" ;; esac else @@ -20094,7 +19651,7 @@ $ac_includes_default int main () { -/* On Ultrix 4.3, getgroups (0, 0) always fails. */ +/* On NeXTstep 3.2, getgroups (0, 0) always fails. */ return getgroups (0, 0) == -1; ; return 0; @@ -20316,12 +19873,14 @@ if ${gl_cv_func_open_directory_works+:} false; then : 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" ;; - # Guess no on native Windows. - mingw*) gl_cv_func_open_directory_works="guessing no" ;; - # If we don't know, assume the worst. - *) gl_cv_func_open_directory_works="guessing no" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_open_directory_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_open_directory_works="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_open_directory_works="guessing no" ;; + # If we don't know, assume the worst. + *) gl_cv_func_open_directory_works="guessing no" ;; esac else @@ -20868,44 +20427,17 @@ $as_echo "$gl_cv_next_fcntl_h" >&6; } - 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <fcntl.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 - eval ac_cv_have_decl_$gl_func=yes -fi - done + + + + + + +cat >>confdefs.h <<_ACEOF +#define GNULIB_FCNTL_SAFER 1 +_ACEOF @@ -21404,108 +20936,110 @@ fi - - 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 + + if test $ac_cv_func_fnmatch = no; then + HAVE_FNMATCH=0 + else + 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 - 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 : + 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 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; - } + 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 () { 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; + 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; @@ -21525,13 +21059,15 @@ 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 + eval "gl_fnmatch_result=\"\$$gl_fnmatch_cache_var\"" + if test "$gl_fnmatch_result" != yes; then + REPLACE_FNMATCH=1 + fi fi + if test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1; then + + FNMATCH_H='fnmatch.h' if test -n "$FNMATCH_H"; then GL_GENERATE_FNMATCH_H_TRUE= GL_GENERATE_FNMATCH_H_FALSE='#' @@ -21541,22 +21077,19 @@ else fi - if test -n "$FNMATCH_H"; then - + fi + if test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1; then - gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext" + 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> @@ -21580,22 +21113,32 @@ _ACEOF - if test -n "$FNMATCH_H"; then + GNULIB_FNMATCH=1 +$as_echo "#define GNULIB_TEST_FNMATCH 1" >>confdefs.h - gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext" -cat >>confdefs.h <<_ACEOF -#define fnmatch ${gl_fnmatch_required_lowercase}_fnmatch -_ACEOF + + + if test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1; then + + + + + + + + + gl_LIBOBJS="$gl_LIBOBJS fnmatch.$ac_objext" + ac_fn_c_check_decl "$LINENO" "isblank" "ac_cv_have_decl_isblank" "#include <ctype.h> @@ -21616,6 +21159,14 @@ _ACEOF fi +cat >>confdefs.h <<_ACEOF +#define GNULIB_FNMATCH_GNU 1 +_ACEOF + + + + + fp_headers=' #include <stdio.h> #if HAVE_STDIO_EXT_H @@ -21789,6 +21340,19 @@ _ACEOF fi done + if test $ac_cv_func__fseeki64 = yes; then + ac_fn_c_check_decl "$LINENO" "_fseeki64" "ac_cv_have_decl__fseeki64" "$ac_includes_default" +if test "x$ac_cv_have_decl__fseeki64" = xyes; then : + ac_have_decl=1 +else + ac_have_decl=0 +fi + +cat >>confdefs.h <<_ACEOF +#define HAVE_DECL__FSEEKI64 $ac_have_decl +_ACEOF + + fi fi @@ -21811,8 +21375,8 @@ $as_echo "#define GNULIB_TEST_FSEEKO 1" >>confdefs.h case "$host_os" in - mingw*) - REPLACE_FSTAT=1 + mingw* | solaris*) + REPLACE_FSTAT=1 ;; esac @@ -21885,6 +21449,7 @@ $as_echo "#define GNULIB_TEST_FSTAT 1" >>confdefs.h + if test $ac_cv_func_fstatat = no; then HAVE_FSTATAT=0 else @@ -21929,15 +21494,20 @@ $as_echo "$gl_cv_func_fstatat_zero_flag" >&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) + *) REPLACE_FSTATAT=1 ;; + esac + + case $host_os in + solaris*) + REPLACE_FSTATAT=1 ;; + esac + + case $REPLACE_FSTATAT,$gl_cv_func_fstatat_zero_flag in + 1,*yes) $as_echo "#define HAVE_WORKING_FSTATAT_ZERO_FLAG 1" >>confdefs.h ;; - esac - ;; esac fi @@ -22086,10 +21656,22 @@ 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;; + # Cross-compilation guesses: + case "$host_os" in + aix*) # On AIX, it has the AIX bug. + gl_cv_func_getcwd_path_max='no, it has the AIX bug' ;; + gnu*) # On Hurd, it is 'yes'. + gl_cv_func_getcwd_path_max=yes ;; + linux* | kfreebsd*) + # On older Linux+glibc it's 'no, but it is partly working', + # on newer Linux+glibc it's 'yes'. + # On Linux+musl libc, it's 'no, but it is partly working'. + # On kFreeBSD+glibc, it's 'no, but it is partly working'. + gl_cv_func_getcwd_path_max='no, but it is partly working' ;; + *) # If we don't know, assume the worst. + gl_cv_func_getcwd_path_max=no ;; esac + else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -22123,7 +21705,7 @@ else # undef PATH_MAX # define PATH_MAX 1024 #endif -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ # undef PATH_MAX # define PATH_MAX 260 #endif @@ -22314,16 +21896,44 @@ $as_echo "$gl_cv_func_getcwd_path_max" >&6; } - 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 + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpagesize" >&5 +$as_echo_n "checking for getpagesize... " >&6; } +if ${gl_cv_func_getpagesize+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <unistd.h> +int +main () +{ +return getpagesize(); + ; + return 0; +} + _ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_func_getpagesize=yes +else + gl_cv_func_getpagesize=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -done +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getpagesize" >&5 +$as_echo "$gl_cv_func_getpagesize" >&6; } + + if test $gl_cv_func_getpagesize = yes; then + +cat >>confdefs.h <<_ACEOF +#define HAVE_GETPAGESIZE 1 +_ACEOF + + fi { $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; } @@ -22366,7 +21976,7 @@ else # undef PATH_MAX # define PATH_MAX 1024 #endif -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ # undef PATH_MAX # define PATH_MAX 260 #endif @@ -22894,10 +22504,10 @@ if ${ac_cv_func_getgroups_works+:} false; then : else if test "$cross_compiling" = yes; then : case "$host_os" in # (( - # Guess yes on glibc systems. - *-gnu*) ac_cv_func_getgroups_works="guessing yes" ;; - # If we don't know, assume the worst. - *) ac_cv_func_getgroups_works="guessing no" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) ac_cv_func_getgroups_works="guessing yes" ;; + # If we don't know, assume the worst. + *) ac_cv_func_getgroups_works="guessing no" ;; esac else @@ -22907,7 +22517,7 @@ $ac_includes_default int main () { -/* On Ultrix 4.3, getgroups (0, 0) always fails. */ +/* On NeXTstep 3.2, getgroups (0, 0) always fails. */ return getgroups (0, 0) == -1; ; return 0; @@ -22960,10 +22570,10 @@ if ${gl_cv_func_getgroups_works+:} false; then : else if test "$cross_compiling" = yes; then : case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_getgroups_works="guessing yes" ;; - # If we don't know, assume the worst. - *) gl_cv_func_getgroups_works="guessing no" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_getgroups_works="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_getgroups_works="guessing no" ;; esac else @@ -23220,18 +22830,37 @@ $as_echo "#define __GETOPT_PREFIX rpl_" >>confdefs.h - for ac_func in getpagesize -do : - ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" -if test "x$ac_cv_func_getpagesize" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_GETPAGESIZE 1 + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for getpagesize" >&5 +$as_echo_n "checking for getpagesize... " >&6; } +if ${gl_cv_func_getpagesize+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <unistd.h> +int +main () +{ +return getpagesize(); + ; + return 0; +} + _ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_func_getpagesize=yes +else + gl_cv_func_getpagesize=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext fi -done +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_func_getpagesize" >&5 +$as_echo "$gl_cv_func_getpagesize" >&6; } - if test $ac_cv_func_getpagesize = no; then + if test $gl_cv_func_getpagesize = no; then HAVE_GETPAGESIZE=0 for ac_header in OS.h do : @@ -23426,12 +23055,12 @@ 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" ;; - # Guess no on native Windows. - mingw*) gl_cv_func_gettimeofday_clobber="guessing no" ;; - # If we don't know, assume the worst. - *) gl_cv_func_gettimeofday_clobber="guessing yes" ;; + # Guess all is fine on glibc systems. + *-gnu* | gnu*) gl_cv_func_gettimeofday_clobber="guessing no" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_gettimeofday_clobber="guessing no" ;; + # If we don't know, assume the worst. + *) gl_cv_func_gettimeofday_clobber="guessing yes" ;; esac else @@ -23639,10 +23268,6 @@ $as_echo "#define GNULIB_TEST_GROUP_MEMBER 1" >>confdefs.h - : - - - : @@ -24063,12 +23688,13 @@ $as_echo "$gl_cv_next_langinfo_h" >&6; } HAVE_LANGINFO_CODESET=0 HAVE_LANGINFO_T_FMT_AMPM=0 + HAVE_LANGINFO_ALTMON=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:${as_lineno-$LINENO}: checking whether langinfo.h defines CODESET" >&5 + { $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 @@ -24130,6 +23756,37 @@ $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 ALTMON_1" >&5 +$as_echo_n "checking whether langinfo.h defines ALTMON_1... " >&6; } +if ${gl_cv_header_langinfo_altmon+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <langinfo.h> +int a = ALTMON_1; + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_header_langinfo_altmon=yes +else + gl_cv_header_langinfo_altmon=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_altmon" >&5 +$as_echo "$gl_cv_header_langinfo_altmon" >&6; } + if test $gl_cv_header_langinfo_altmon = yes; then + HAVE_LANGINFO_ALTMON=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 : @@ -24202,44 +23859,8 @@ $as_echo "$gl_cv_header_langinfo_yesexpr" >&6; } - 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <langinfo.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 - eval ac_cv_have_decl_$gl_func=yes -fi - done @@ -24303,6 +23924,39 @@ $as_echo "#define GNULIB_TEST_LCHOWN 1" >>confdefs.h + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports the __inline keyword" >&5 +$as_echo_n "checking whether the compiler supports the __inline keyword... " >&6; } +if ${gl_cv_c___inline+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +typedef int foo_t; + static __inline foo_t foo (void) { return 0; } +int +main () +{ +return foo (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_c___inline=yes +else + gl_cv_c___inline=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_c___inline" >&5 +$as_echo "$gl_cv_c___inline" >&6; } + if test $gl_cv_c___inline = yes; then + +$as_echo "#define HAVE___INLINE 1" >>confdefs.h + + fi + + @@ -24321,10 +23975,12 @@ else fi 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" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_link_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | 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 @@ -24444,10 +24100,10 @@ else 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 ;; + # On glibc/Linux we know the result. + linux*-gnu* | gnu*) gl_cv_func_link_follows_symlink="guessing no" ;; + # Otherwise, we don't know. + *) gl_cv_func_link_follows_symlink=unknown ;; esac else @@ -24582,10 +24238,14 @@ if ${gl_cv_func_linkat_slash+:} false; then : else rm -rf conftest.a conftest.b conftest.c conftest.d conftest.e conftest.s 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";; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_linkat_slash="guessing yes";; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_linkat_slash="guessing yes";; + # If we don't know, assume the worst. + *) gl_cv_func_linkat_slash="guessing no";; esac else @@ -24717,12 +24377,7 @@ $as_echo "#define GNULIB_TEST_LINKAT 1" >>confdefs.h - - - - - - LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(abs_top_builddir)/$gl_source_base\"" + LOCALCHARSET_TESTS_ENVIRONMENT= @@ -24915,48 +24570,7 @@ $as_echo "$gl_cv_next_locale_h" >&6; } - 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 - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <locale.h> -/* Some systems provide declarations in a non-standard header. */ -#if HAVE_XLOCALE_H -# include <xlocale.h> -#endif - -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 - eval ac_cv_have_decl_$gl_func=yes -fi - done @@ -25136,10 +24750,11 @@ $as_echo "#define GNULIB_TEST_LSEEK 1" >>confdefs.h + if test $ac_cv_func_lstat = yes; then - case "$gl_cv_func_lstat_dereferences_slashed_symlink" in - *no) + case $host_os,$gl_cv_func_lstat_dereferences_slashed_symlink in + solaris* | *no) REPLACE_LSTAT=1 ;; esac @@ -25198,7 +24813,7 @@ else if test "$cross_compiling" = yes; then : case "$host_os" in # Guess yes on platforms where we know the result. - *-gnu* | freebsd* | netbsd* | openbsd* \ + *-gnu* | gnu* | freebsd* | netbsd* | openbsd* \ | hpux* | solaris* | cygwin* | mingw*) ac_cv_func_malloc_0_nonnull=yes ;; # If we don't know, assume the worst. @@ -25852,12 +25467,11 @@ if ${gl_cv_func_mbrtowc_empty_input+:} false; then : else case "$host_os" in - # Guess no on AIX and glibc systems. - aix* | *-gnu*) - gl_cv_func_mbrtowc_empty_input="guessing no" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; - *) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; + # Guess no on AIX and glibc systems. + aix* | *-gnu* | gnu*) gl_cv_func_mbrtowc_empty_input="guessing no" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; + *) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; esac if test "$cross_compiling" = yes; then : : @@ -26010,6 +25624,7 @@ $as_echo "#define C_LOCALE_MAYBE_EILSEQ 1" >>confdefs.h gl_LIBOBJS="$gl_LIBOBJS mbrtowc.$ac_objext" + : fi @@ -26808,10 +26423,12 @@ 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" ;; - # Guess yes on MSVC, no on mingw. - mingw*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_mkdir_trailing_slash_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_mkdir_trailing_slash_works="guessing yes" ;; + # Guess yes on MSVC, no on mingw. + mingw*) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef _MSC_VER @@ -26827,9 +26444,9 @@ else fi rm -f conftest* - ;; - # If we don't know, assume the worst. - *) gl_cv_func_mkdir_trailing_slash_works="guessing no" ;; + ;; + # If we don't know, assume the worst. + *) gl_cv_func_mkdir_trailing_slash_works="guessing no" ;; esac else @@ -26877,12 +26494,12 @@ 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" ;; - # Guess no on native Windows. - mingw*) gl_cv_func_mkdir_trailing_dot_works="guessing no" ;; - # If we don't know, assume the worst. - *) gl_cv_func_mkdir_trailing_dot_works="guessing no" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_mkdir_trailing_dot_works="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_mkdir_trailing_dot_works="guessing no" ;; + # If we don't know, assume the worst. + *) gl_cv_func_mkdir_trailing_dot_works="guessing no" ;; esac else @@ -27024,10 +26641,41 @@ $as_echo "#define GNULIB_TEST_MKDTEMP 1" >>confdefs.h - if test $ac_cv_func_mkfifo = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for mkfifo" >&5 +$as_echo_n "checking for mkfifo... " >&6; } +if ${gl_cv_func_mkfifo+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <sys/stat.h> +int +main () +{ +return mkfifo("/",0); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gl_cv_func_mkfifo=yes +else + gl_cv_func_mkfifo=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_func_mkfifo" >&5 +$as_echo "$gl_cv_func_mkfifo" >&6; } + if test $gl_cv_func_mkfifo = no; then HAVE_MKFIFO=0 else +$as_echo "#define HAVE_MKFIFO 1" >>confdefs.h + + { $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 : @@ -27039,10 +26687,12 @@ else 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" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_mkfifo_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_mkfifo_works="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_mkfifo_works="guessing no" ;; esac else @@ -27197,10 +26847,12 @@ if ${gl_cv_func_mknod_works+:} false; then : else 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" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_mknod_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | 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 @@ -27461,8 +27113,11 @@ 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 + if test $HAVE_LANGINFO_CODESET = 1 \ + && test $HAVE_LANGINFO_T_FMT_AMPM = 1 \ + && test $HAVE_LANGINFO_ALTMON = 1 \ + && test $HAVE_LANGINFO_ERA = 1 \ + && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1; then : else REPLACE_NL_LANGINFO=1 @@ -27758,6 +27413,16 @@ $as_echo "#define GNULIB_TEST_OPENAT 1" >>confdefs.h + + +cat >>confdefs.h <<_ACEOF +#define GNULIB_OPENAT_SAFER 1 +_ACEOF + + + + + for ac_func in opendir do : ac_fn_c_check_func "$LINENO" "opendir" "ac_cv_func_opendir" @@ -28168,10 +27833,12 @@ else 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" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_readlink_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | 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 @@ -28576,6 +28243,17 @@ int result = 0; if (! REG_STARTEND) result |= 64; + /* Matching with the compiled form of this regexp would provoke + an assertion failure prior to glibc-2.28: + regexec.c:1375: pop_fail_stack: Assertion 'num >= 0' failed + With glibc-2.28, compilation fails and reports the invalid + back reference. */ + re_set_syntax (RE_SYNTAX_POSIX_EGREP); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("0|()0|\\1|0", 10, ®ex); + if (!s || strcmp (s, "Invalid back reference")) + 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 @@ -28734,12 +28412,14 @@ else 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" ;; - # Guess no on native Windows. - mingw*) gl_cv_func_rename_slash_dst_works="guessing no" ;; - # If we don't know, assume the worst. - *) gl_cv_func_rename_slash_dst_works="guessing no" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_rename_slash_dst_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_rename_slash_dst_works="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_rename_slash_dst_works="guessing no" ;; + # If we don't know, assume the worst. + *) gl_cv_func_rename_slash_dst_works="guessing no" ;; esac else @@ -28805,12 +28485,14 @@ else 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" ;; - # Guess yes on native Windows. - mingw*) 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" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_rename_slash_src_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_rename_slash_src_works="guessing yes" ;; + # Guess yes on native Windows. + mingw*) 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 else @@ -28874,12 +28556,14 @@ else 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" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_rename_link_works="guessing yes" ;; - # If we don't know, assume the worst. - *) gl_cv_func_rename_link_works="guessing no" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_rename_link_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_rename_link_works="guessing yes" ;; + # Guess yes on native Windows. + mingw*) 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 @@ -28957,12 +28641,14 @@ else 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" ;; - # Guess no on native Windows. - mingw*) gl_cv_func_rename_dest_works="guessing no" ;; - # If we don't know, assume the worst. - *) gl_cv_func_rename_dest_works="guessing no" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_rename_dest_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_rename_dest_works="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_rename_dest_works="guessing no" ;; + # If we don't know, assume the worst. + *) gl_cv_func_rename_dest_works="guessing no" ;; esac else @@ -29193,12 +28879,14 @@ else 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" ;; - # Guess no on native Windows. - mingw*) gl_cv_func_rmdir_works="guessing no" ;; - # If we don't know, assume the worst. - *) gl_cv_func_rmdir_works="guessing no" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_rmdir_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_rmdir_works="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_rmdir_works="guessing no" ;; + # If we don't know, assume the worst. + *) gl_cv_func_rmdir_works="guessing no" ;; esac else @@ -29569,10 +29257,10 @@ if ${gl_cv_func_setenv_works+:} false; then : 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" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_setenv_works="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_setenv_works="guessing no" ;; esac else @@ -29758,44 +29446,7 @@ fi - 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 - 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 -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 - done @@ -29918,12 +29569,12 @@ if ${gl_cv_func_sleep_works+:} false; then : else if test "$cross_compiling" = yes; then : case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_sleep_works="guessing yes" ;; - # Guess no on native Windows. - mingw*) gl_cv_func_sleep_works="guessing no" ;; - # If we don't know, assume the worst. - *) gl_cv_func_sleep_works="guessing no" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_sleep_works="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_sleep_works="guessing no" ;; + # If we don't know, assume the worst. + *) gl_cv_func_sleep_works="guessing no" ;; esac else @@ -30248,10 +29899,12 @@ else 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" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_stat_file_slash="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_stat_file_slash="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_stat_file_slash="guessing no" ;; esac else @@ -30296,6 +29949,10 @@ $as_echo "$gl_cv_func_stat_file_slash" >&6; } $as_echo "#define REPLACE_FUNC_STAT_FILE 1" >>confdefs.h ;; esac + case $host_os in + solaris*) + REPLACE_FSTAT=1 ;; + esac ;; esac @@ -30565,11 +30222,10 @@ fi 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 : +if ${gl_cv_func_va_copy+:} false; then : $as_echo_n "(cached) " >&6 else - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <stdarg.h> int @@ -30590,9 +30246,9 @@ else gl_cv_func_va_copy=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_va_copy" >&5 +fi +{ $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 @@ -30774,19 +30430,49 @@ fi STDDEF_H= - ac_fn_c_check_type "$LINENO" "max_align_t" "ac_cv_type_max_align_t" "#include <stddef.h> -" -if test "x$ac_cv_type_max_align_t" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for good max_align_t" >&5 +$as_echo_n "checking for good max_align_t... " >&6; } +if ${gl_cv_type_max_align_t+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stddef.h> + unsigned int s = sizeof (max_align_t); + #if defined __GNUC__ || defined __IBM__ALIGNOF__ + int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1]; + int check2[2 * (__alignof__ (long double) <= __alignof__ (max_align_t)) - 1]; + #endif + +int +main () +{ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_type_max_align_t=yes else - HAVE_MAX_ALIGN_T=0; STDDEF_H=stddef.h + gl_cv_type_max_align_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_max_align_t" >&5 +$as_echo "$gl_cv_type_max_align_t" >&6; } + if test $gl_cv_type_max_align_t = no; then + HAVE_MAX_ALIGN_T=0 + STDDEF_H=stddef.h + fi 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 : @@ -30819,6 +30505,7 @@ $as_echo "$gl_cv_decl_null_works" >&6; } STDDEF_H=stddef.h fi + if test -n "$STDDEF_H"; then GL_GENERATE_STDDEF_H_TRUE= GL_GENERATE_STDDEF_H_FALSE='#' @@ -30993,7 +30680,7 @@ else /* For non-mingw systems, compilation will trivially succeed. For mingw, compilation will succeed for older mingw (system printf, "I64d") and fail for newer mingw (gnu printf, "lld"). */ - #if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) && \ + #if (defined _WIN32 && ! defined __CYGWIN__) && \ (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) extern char PRIdMAX_probe[sizeof PRIdMAX == sizeof "I64d" ? 1 : -1]; #endif @@ -31058,44 +30745,7 @@ _ACEOF - 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <stdio.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 - - eval ac_cv_have_decl_$gl_func=yes -fi - done @@ -31173,50 +30823,7 @@ $as_echo "$gl_cv_next_stdlib_h" >&6; } - 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 qsort_r random random_r reallocarray 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 -#if HAVE_RANDOM_H -# include <random.h> -#endif - -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 - eval ac_cv_have_decl_$gl_func=yes -fi - done @@ -31516,10 +31123,10 @@ if ${gl_cv_func_working_strerror+:} false; then : else 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" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_working_strerror="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_working_strerror="guessing no" ;; esac else @@ -32176,10 +31783,12 @@ if ${gl_cv_func_symlink_works+:} false; then : else 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" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_symlink_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_symlink_works="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_symlink_works="guessing no" ;; esac else @@ -32266,10 +31875,12 @@ if ${gl_cv_func_symlinkat_works+:} false; then : else if test "$cross_compiling" = yes; then : case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_symlinkat_works="guessing yes" ;; - # If we don't know, assume the worst. - *) gl_cv_func_symlinkat_works="guessing no" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_symlinkat_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_symlinkat_works="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_symlinkat_works="guessing no" ;; esac else @@ -32451,44 +32062,7 @@ fi - 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 confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <sys/stat.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 - - eval ac_cv_have_decl_$gl_func=yes -fi - done @@ -32743,6 +32317,60 @@ $as_echo "#define GNULIB_TEST_TIME_R 1" >>confdefs.h + # Mac OS X 10.6 loops forever with some time_t values. + # See Bug#27706, Bug#27736, and + # https://lists.gnu.org/r/bug-gnulib/2017-07/msg00142.html + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether localtime loops forever near extrema" >&5 +$as_echo_n "checking whether localtime loops forever near extrema... " >&6; } +if ${gl_cv_func_localtime_infloop_bug+:} false; then : + $as_echo_n "(cached) " >&6 +else + gl_cv_func_localtime_infloop_bug=no + if test "$cross_compiling" = yes; then : + gl_cv_func_localtime_infloop_bug="guessing no" +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <stdlib.h> + #include <string.h> + #include <unistd.h> + #include <time.h> + +int +main () +{ + + time_t t = -67768038400666600; + struct tm *tm; + char *tz = getenv ("TZ"); + if (! (tz && strcmp (tz, "QQQ0") == 0)) + return 0; + alarm (2); + tm = localtime (&t); + /* Use TM and *TM to suppress over-optimization. */ + return tm && tm->tm_isdst; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + (TZ=QQQ0 ./conftest$EXEEXT) >/dev/null 2>&1 || + gl_cv_func_localtime_infloop_bug=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_localtime_infloop_bug" >&5 +$as_echo "$gl_cv_func_localtime_infloop_bug" >&6; } + if test "$gl_cv_func_localtime_infloop_bug" = yes; then + +$as_echo "#define HAVE_LOCALTIME_INFLOOP_BUG 1" >>confdefs.h + + fi + ac_fn_c_check_type "$LINENO" "timezone_t" "ac_cv_type_timezone_t" "#include <time.h> " if test "x$ac_cv_type_timezone_t" = xyes; then : @@ -32846,12 +32474,12 @@ if ${gl_cv_func_tzset_clobber+:} false; then : else if test "$cross_compiling" = yes; then : case "$host_os" in - # Guess all is fine on glibc systems. - *-gnu*) gl_cv_func_tzset_clobber="guessing no" ;; - # Guess no on native Windows. - mingw*) gl_cv_func_tzset_clobber="guessing no" ;; - # If we don't know, assume the worst. - *) gl_cv_func_tzset_clobber="guessing yes" ;; + # Guess all is fine on glibc systems. + *-gnu* | gnu*) gl_cv_func_tzset_clobber="guessing no" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_tzset_clobber="guessing no" ;; + # If we don't know, assume the worst. + *) gl_cv_func_tzset_clobber="guessing yes" ;; esac else @@ -33038,56 +32666,7 @@ $as_echo "$gl_cv_next_unistd_h" >&6; } - 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 truncate 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:${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. */ -#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> -# include <stdio.h> -# include <stdlib.h> -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ -# include <io.h> -# endif -#endif - -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 - - eval ac_cv_have_decl_$gl_func=yes -fi - done @@ -33158,7 +32737,7 @@ fi || { test $LIBUNISTRING_VERSION_MAJOR -eq 0 \ && { test $LIBUNISTRING_VERSION_MINOR -lt 9 \ || { test $LIBUNISTRING_VERSION_MINOR -eq 9 \ - && test $LIBUNISTRING_VERSION_SUBMINOR -lt 6 + && test $LIBUNISTRING_VERSION_SUBMINOR -lt 8 } } } @@ -33193,12 +32772,14 @@ else fi if test "$cross_compiling" = yes; then : case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_unlink_honors_slashes="guessing yes" ;; - # Guess no on native Windows. - mingw*) gl_cv_func_unlink_honors_slashes="guessing no" ;; - # If we don't know, assume the worst. - *) gl_cv_func_unlink_honors_slashes="guessing no" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_unlink_honors_slashes="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_unlink_honors_slashes="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_unlink_honors_slashes="guessing no" ;; + # If we don't know, assume the worst. + *) gl_cv_func_unlink_honors_slashes="guessing no" ;; esac else @@ -33668,6 +33249,7 @@ $as_echo "#define GNULIB_TEST_UTIME 1" >>confdefs.h + if test $gl_cv_have_include_next = yes; then gl_cv_next_utime_h='<'utime.h'>' else @@ -33746,14 +33328,19 @@ $as_echo "$gl_cv_next_utime_h" >&6; } UTIME_H='' - if test $ac_cv_header_utime_h != yes; then - UTIME_H=utime.h - else - case "$host_os" in - mingw*) UTIME_H=utime.h - ;; - esac - fi + if false; then + UTIME_H=utime.h + else + if test $ac_cv_header_utime_h != yes; then + UTIME_H=utime.h + else + case "$host_os" in + mingw*) UTIME_H=utime.h + ;; + esac + fi + fi + if test -n "$UTIME_H"; then GL_GENERATE_UTIME_H_TRUE= @@ -33765,44 +33352,7 @@ fi - for gl_func in utime; 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 <utime.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 - eval ac_cv_have_decl_$gl_func=yes -fi - done @@ -33819,10 +33369,12 @@ else touch conftest.file 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" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_futimesat_works="guessing yes" ;; + # 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 @@ -34459,54 +34011,7 @@ $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 wcsftime ; 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> -#endif -#include <wchar.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 - eval ac_cv_have_decl_$gl_func=yes -fi - done @@ -35120,55 +34625,7 @@ $as_echo "$gl_cv_type_wctrans_t" >&6; } 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:${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 - - eval ac_cv_have_decl_$gl_func=yes -fi - done @@ -35248,9 +34705,9 @@ else if test "$cross_compiling" = yes; then : case "$host_os" in - # Guess yes on glibc and AIX 7 systems. - *-gnu* | aix[7-9]*) gl_cv_func_wcwidth_works="guessing yes";; - *) gl_cv_func_wcwidth_works="guessing no";; + # Guess yes on glibc and AIX 7 systems. + *-gnu* | gnu* | aix[7-9]*) gl_cv_func_wcwidth_works="guessing yes";; + *) gl_cv_func_wcwidth_works="guessing no";; esac else @@ -35324,6 +34781,10 @@ $as_echo "$gl_cv_func_wcwidth_works" >&6; } gl_LIBOBJS="$gl_LIBOBJS wcwidth.$ac_objext" + + + : + fi @@ -35450,6 +34911,18 @@ done LIBGNU_LTLIBDEPS="$gl_ltlibdeps" + +if test $ac_cv_lib_error_at_line = no; then + # This means that the error() function is not present in libc, so + # the one from gnulib will be used instead. This function precedes + # error messages it prints with the program name as returned by getprogname() + # call, instead of using the name set by set_program_name. + # Install workaround. + +$as_echo "#define ENABLE_ERROR_PRINT_PROGNAME 1" >>confdefs.h + +fi + # paxutils modules @@ -35511,6 +34984,8 @@ fi + + # Set LIB_SETSOCKOPT to -lnsl -lsocket if necessary. pu_save_LIBS=$LIBS LIB_SETSOCKOPT= @@ -36069,13 +35544,12 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu { $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 : +if ${gl_cv_cc_nomfi_supported+:} false; then : $as_echo_n "(cached) " >&6 else - - gl_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -W -Werror -Wno-missing-field-initializers" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -W -Werror -Wno-missing-field-initializers" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -36092,29 +35566,28 @@ else gl_cv_cc_nomfi_supported=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS="$gl_save_CFLAGS" -fi + CFLAGS="$gl_save_CFLAGS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_nomfi_supported" >&5 +fi +{ $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 : +if ${gl_cv_cc_nomfi_needed+:} false; then : $as_echo_n "(cached) " >&6 else - - gl_save_CFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -W -Werror" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -W -Werror" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int f (void) - { - typedef struct { int a; int b; } s_t; - s_t s1 = { 0, }; - return s1.b; - } + { + typedef struct { int a; int b; } s_t; + s_t s1 = { 0, }; + return s1.b; + } int main () @@ -36130,23 +35603,21 @@ else gl_cv_cc_nomfi_needed=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS="$gl_save_CFLAGS" + CFLAGS="$gl_save_CFLAGS" fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_nomfi_needed" >&5 +{ $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 : +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 + gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror -Wuninitialized" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int @@ -36163,10 +35634,10 @@ else gl_cv_cc_uninitialized_supported=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - CFLAGS="$gl_save_CFLAGS" -fi + CFLAGS="$gl_save_CFLAGS" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_uninitialized_supported" >&5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_cc_uninitialized_supported" >&5 $as_echo "$gl_cv_cc_uninitialized_supported" >&6; } fi @@ -36175,18 +35646,17 @@ $as_echo "$gl_cv_cc_uninitialized_supported" >&6; } # To compare this list to your installed GCC's, run this Bash command: # # comm -3 \ - # <(sed -n 's/^ *\(-[^ ]*\) .*/\1/p' manywarnings.m4 | sort) \ - # <(gcc --help=warnings | sed -n 's/^ \(-[^ ]*\) .*/\1/p' | sort | - # grep -v -x -F -f <( - # awk '/^[^#]/ {print ws}' ../build-aux/gcc-warning.spec)) + # <((sed -n 's/^ *\(-[^ 0-9][^ ]*\) .*/\1/p' manywarnings.m4; \ + # awk '/^[^#]/ {print ws}' ../build-aux/gcc-warning.spec) | sort) \ + # <(LC_ALL=C gcc --help=warnings | sed -n 's/^ \(-[^ ]*\) .*/\1/p' | sort) gl_manywarn_set= for gl_manywarn_item in -fno-common \ -W \ - -Wabi \ -Waddress \ -Waggressive-loop-optimizations \ -Wall \ + -Wattribute-alias \ -Wattributes \ -Wbad-function-cast \ -Wbool-compare \ @@ -36194,8 +35664,9 @@ $as_echo "$gl_cv_cc_uninitialized_supported" >&6; } -Wbuiltin-declaration-mismatch \ -Wbuiltin-macro-redefined \ -Wcast-align \ + -Wcast-align=strict \ + -Wcast-function-type \ -Wchar-subscripts \ - -Wchkp \ -Wclobbered \ -Wcomment \ -Wcomments \ @@ -36229,6 +35700,7 @@ $as_echo "$gl_cv_cc_uninitialized_supported" >&6; } -Wframe-address \ -Wfree-nonheap-object \ -Whsa \ + -Wif-not-aligned \ -Wignored-attributes \ -Wignored-qualifiers \ -Wimplicit \ @@ -36242,7 +35714,6 @@ $as_echo "$gl_cv_cc_uninitialized_supported" >&6; } -Wint-to-pointer-cast \ -Winvalid-memory-model \ -Winvalid-pch \ - -Wjump-misses-init \ -Wlogical-not-parentheses \ -Wlogical-op \ -Wmain \ @@ -36250,6 +35721,7 @@ $as_echo "$gl_cv_cc_uninitialized_supported" >&6; } -Wmemset-elt-size \ -Wmemset-transposed-args \ -Wmisleading-indentation \ + -Wmissing-attributes \ -Wmissing-braces \ -Wmissing-declarations \ -Wmissing-field-initializers \ @@ -36257,6 +35729,7 @@ $as_echo "$gl_cv_cc_uninitialized_supported" >&6; } -Wmissing-parameter-type \ -Wmissing-prototypes \ -Wmultichar \ + -Wmultistatement-macros \ -Wnarrowing \ -Wnested-externs \ -Wnonnull \ @@ -36271,6 +35744,7 @@ $as_echo "$gl_cv_cc_uninitialized_supported" >&6; } -Woverride-init \ -Wpacked \ -Wpacked-bitfield-compat \ + -Wpacked-not-aligned \ -Wparentheses \ -Wpointer-arith \ -Wpointer-compare \ @@ -36288,20 +35762,23 @@ $as_echo "$gl_cv_cc_uninitialized_supported" >&6; } -Wshift-count-overflow \ -Wshift-negative-value \ -Wsizeof-array-argument \ + -Wsizeof-pointer-div \ -Wsizeof-pointer-memaccess \ -Wstack-protector \ -Wstrict-aliasing \ -Wstrict-overflow \ -Wstrict-prototypes \ + -Wstringop-truncation \ + -Wsuggest-attribute=cold \ -Wsuggest-attribute=const \ -Wsuggest-attribute=format \ + -Wsuggest-attribute=malloc \ -Wsuggest-attribute=noreturn \ -Wsuggest-attribute=pure \ -Wsuggest-final-methods \ -Wsuggest-final-types \ -Wswitch \ -Wswitch-bool \ - -Wswitch-default \ -Wswitch-unreachable \ -Wsync-nand \ -Wsystem-headers \ @@ -37139,6 +36616,22 @@ cat >>confdefs.h <<_ACEOF _ACEOF + + + +# Check whether --with-zstd was given. +if test "${with_zstd+set}" = set; then : + withval=$with_zstd; tar_cv_compressor_zstd=${withval} +else + tar_cv_compressor_zstd=zstd +fi + + +cat >>confdefs.h <<_ACEOF +#define ZSTD_PROGRAM "$tar_cv_compressor_zstd" +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for default archive format" >&5 $as_echo_n "checking for default archive format... " >&6; } @@ -37468,17 +36961,243 @@ fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the common suffixes of directories in the library search path" >&5 -$as_echo_n "checking for the common suffixes of directories in the library search path... " >&6; } -if ${acl_cv_libdirstems+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking 32-bit host C ABI" >&5 +$as_echo_n "checking 32-bit host C ABI... " >&6; } +if ${gl_cv_host_cpu_c_abi_32bit+:} false; then : $as_echo_n "(cached) " >&6 else - acl_libdirstem=lib - acl_libdirstem2= - case "$host_os" in - solaris*) - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5 + if test -n "$gl_cv_host_cpu_c_abi"; then + case "$gl_cv_host_cpu_c_abi" in + i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc) + gl_cv_host_cpu_c_abi_32bit=yes ;; + *) + gl_cv_host_cpu_c_abi_32bit=no ;; + esac + else + case "$host_cpu" in + + i[4567]86 ) + gl_cv_host_cpu_c_abi_32bit=yes + ;; + + x86_64 ) + # On x86_64 systems, the C compiler may be generating code in one of + # these ABIs: + # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. + # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 + # with native Windows (mingw, MSVC). + # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. + # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if (defined __x86_64__ || defined __amd64__ \ + || defined _M_X64 || defined _M_AMD64) \ + && !(defined __ILP32__ || defined _ILP32) + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=no +else + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + arm* | aarch64 ) + # Assume arm with EABI. + # On arm64 systems, the C compiler may be generating code in one of + # these ABIs: + # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. + # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. + # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32) + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=no +else + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) + # On hppa, the C compiler may be generating 32-bit code or 64-bit + # code. In the latter case, it defines _LP64 and __LP64__. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __LP64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=no +else + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + ia64* ) + # On ia64 on HP-UX, the C compiler may be generating 64-bit code or + # 32-bit code. In the latter case, it defines _ILP32. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef _ILP32 + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=yes +else + gl_cv_host_cpu_c_abi_32bit=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + mips* ) + # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this + # at 32. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=no +else + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + powerpc* ) + # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. + # No need to distinguish them here; the caller may distinguish + # them based on the OS. + # On powerpc64 systems, the C compiler may still be generating + # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may + # be generating 64-bit code. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __powerpc64__ || defined _ARCH_PPC64 + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=no +else + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + rs6000 ) + gl_cv_host_cpu_c_abi_32bit=yes + ;; + + riscv32 | riscv64 ) + # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. + # Size of 'long' and 'void *': + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __LP64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=no +else + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + s390* ) + # On s390x, the C compiler may be generating 64-bit (= s390x) code + # or 31-bit (= s390) code. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __LP64__ || defined __s390x__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=no +else + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + sparc | sparc64 ) + # UltraSPARCs running Linux have `uname -m` = "sparc64", but the + # C compiler still generates 32-bit code. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#if defined __sparcv9 || defined __arch64__ + int ok; + #else + error fail + #endif + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + gl_cv_host_cpu_c_abi_32bit=no +else + gl_cv_host_cpu_c_abi_32bit=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + + *) + gl_cv_host_cpu_c_abi_32bit=no + ;; + esac + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gl_cv_host_cpu_c_abi_32bit" >&5 +$as_echo "$gl_cv_host_cpu_c_abi_32bit" >&6; } + + HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit" + + + + + + case "$host_os" in + solaris*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for 64-bit host" >&5 $as_echo_n "checking for 64-bit host... " >&6; } if ${gl_cv_solaris_64bit+:} false; then : $as_echo_n "(cached) " >&6 @@ -37486,10 +37205,10 @@ else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef _LP64 - int ok; - #else - error fail - #endif + int ok; + #else + error fail + #endif _ACEOF if ac_fn_c_try_compile "$LINENO"; then : @@ -37501,8 +37220,19 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $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 +$as_echo "$gl_cv_solaris_64bit" >&6; };; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the common suffixes of directories in the library search path" >&5 +$as_echo_n "checking for the common suffixes of directories in the library search path... " >&6; } +if ${acl_cv_libdirstems+:} false; then : + $as_echo_n "(cached) " >&6 +else + acl_libdirstem=lib + acl_libdirstem2= + case "$host_os" in + solaris*) + if test $gl_cv_solaris_64bit = yes; then acl_libdirstem=lib/64 case "$host_cpu" in sparc*) acl_libdirstem2=lib/sparcv9 ;; @@ -37511,37 +37241,33 @@ $as_echo "$gl_cv_solaris_64bit" >&6; } fi ;; *) - case "$gl_cv_host_cpu_c_abi" in - i386 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | s390 | sparc) - ;; - *) # x86_64 | arm64 | hppa64 | ia64 | mips64 | powerpc64* | s390x | sparc64 | ... - searchpath=`(if test -f /usr/bin/gcc \ - && LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \ - LC_ALL=C /usr/bin/gcc -print-search-dirs; \ - else \ - LC_ALL=C $CC -print-search-dirs; \ - fi) 2>/dev/null \ - | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` - if test -n "$searchpath"; then - acl_save_IFS="${IFS= }"; IFS=":" - for searchdir in $searchpath; do - if test -d "$searchdir"; then - case "$searchdir" in - */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; - */../ | */.. ) - # Better ignore directories of this form. They are misleading. - ;; - *) searchdir=`cd "$searchdir" && pwd` - case "$searchdir" in - */lib64 ) acl_libdirstem=lib64 ;; - esac ;; - esac - fi - done - IFS="$acl_save_IFS" - fi - ;; - esac + if test "$HOST_CPU_C_ABI_32BIT" != yes; then + searchpath=`(if test -f /usr/bin/gcc \ + && LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \ + LC_ALL=C /usr/bin/gcc -print-search-dirs; \ + else \ + LC_ALL=C $CC -print-search-dirs; \ + fi) 2>/dev/null \ + | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi + fi ;; esac test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" @@ -37564,7 +37290,6 @@ $as_echo "$acl_cv_libdirstems" >&6; } - use_additional=yes acl_save_prefix="$prefix" @@ -37602,7 +37327,7 @@ if test "${with_libiconv_prefix+set}" = set; then : additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ - && ! test -d "$withval/$acl_libdirstem"; then + && test ! -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi @@ -38024,7 +37749,6 @@ fi - am_save_CPPFLAGS="$CPPFLAGS" for element in $INCICONV; do @@ -38730,9 +38454,6 @@ $as_echo "no" >&6; } fi - test -n "$localedir" || localedir='${datadir}/locale' - - test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= @@ -38830,9 +38551,45 @@ $as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } $as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyPreferredLanguages" >&5 +$as_echo_n "checking for CFLocaleCopyPreferredLanguages... " >&6; } +if ${gt_cv_func_CFLocaleCopyPreferredLanguages+:} false; then : + $as_echo_n "(cached) " >&6 +else + gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <CoreFoundation/CFLocale.h> +int +main () +{ +CFLocaleCopyPreferredLanguages(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_CFLocaleCopyPreferredLanguages=yes +else + gt_cv_func_CFLocaleCopyPreferredLanguages=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gt_save_LIBS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyPreferredLanguages" >&5 +$as_echo "$gt_cv_func_CFLocaleCopyPreferredLanguages" >&6; } + if test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then + +$as_echo "#define HAVE_CFLOCALECOPYPREFERREDLANGUAGES 1" >>confdefs.h + fi INTL_MACOSX_LIBS= - if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + if test $gt_cv_func_CFPreferencesCopyAppValue = yes \ + || test $gt_cv_func_CFLocaleCopyCurrent = yes \ + || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi @@ -39193,7 +38950,6 @@ $as_echo "$LIBICONV" >&6; } - use_additional=yes acl_save_prefix="$prefix" @@ -39231,7 +38987,7 @@ if test "${with_libintl_prefix+set}" = set; then : additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ - && ! test -d "$withval/$acl_libdirstem"; then + && test ! -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi @@ -39647,7 +39403,6 @@ fi - { $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 eval \${$gt_func_gnugettext_libintl+:} false; then : @@ -40028,6 +39783,10 @@ if test -z "${GL_GENERATE_FNMATCH_H_TRUE}" && test -z "${GL_GENERATE_FNMATCH_H_F as_fn_error $? "conditional \"GL_GENERATE_FNMATCH_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 fi +if test -z "${GL_GENERATE_FNMATCH_H_TRUE}" && test -z "${GL_GENERATE_FNMATCH_H_FALSE}"; then + as_fn_error $? "conditional \"GL_GENERATE_FNMATCH_H\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi if test -z "${GL_GENERATE_LIMITS_H_TRUE}" && test -z "${GL_GENERATE_LIMITS_H_FALSE}"; then as_fn_error $? "conditional \"GL_GENERATE_LIMITS_H\" was never defined. Usually this means the macro was only invoked conditionally." "$LINENO" 5 @@ -40522,7 +40281,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by GNU tar $as_me 1.30, which was +This file was extended by GNU tar $as_me 1.32, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -40590,7 +40349,7 @@ _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.30 +GNU tar config.status 1.32 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" @@ -40711,9 +40470,8 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" # Capture the value of obsolete ALL_LINGUAS because we need it to compute - # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it - # from automake < 1.5. - eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. + OBSOLETE_ALL_LINGUAS="$ALL_LINGUAS" # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" @@ -41466,14 +41224,11 @@ $as_echo X"$file" | if test -n "$OBSOLETE_ALL_LINGUAS"; then 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 assignment from automake < 1.5. - eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. - # Hide the ALL_LINGUAS assignment from automake < 1.5. - eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' + ALL_LINGUAS=$OBSOLETE_ALL_LINGUAS fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) diff --git a/configure.ac b/configure.ac index 0bddbeb6..75fb2e4f 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ # Configure template for GNU tar. -*- autoconf -*- -# Copyright 1991, 1994-2010, 2013-2017 Free Software Foundation, Inc. +# Copyright 1991, 1994-2010, 2013-2019 Free Software Foundation, Inc. # This file is part of GNU tar. @@ -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/>. -AC_INIT([GNU tar], [1.30], [bug-tar@gnu.org]) +AC_INIT([GNU tar], [1.32], [bug-tar@gnu.org]) AC_CONFIG_SRCDIR([src/tar.c]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_HEADERS([config.h]) @@ -102,6 +102,18 @@ gt_TYPE_SSIZE_T # gnulib modules gl_INIT + +if test $ac_cv_lib_error_at_line = no; then + # This means that the error() function is not present in libc, so + # the one from gnulib will be used instead. This function precedes + # error messages it prints with the program name as returned by getprogname() + # call, instead of using the name set by set_program_name. + # Install workaround. + AC_DEFINE([ENABLE_ERROR_PRINT_PROGNAME],[1], + [Enable the use of error_print_progname to print program name with error messages. + See comment to function tar_print_progname in src/tar.c]) +fi + # paxutils modules tar_PAXUTILS @@ -250,6 +262,7 @@ TAR_COMPR_PROGRAM(lzip) TAR_COMPR_PROGRAM(lzma) TAR_COMPR_PROGRAM(lzop) TAR_COMPR_PROGRAM(xz) +TAR_COMPR_PROGRAM(zstd) AC_MSG_CHECKING(for default archive format) diff --git a/doc/Makefile.am b/doc/Makefile.am index cb69b743..7ac68081 100644 --- a/doc/Makefile.am +++ b/doc/Makefile.am @@ -1,7 +1,6 @@ # Makefile for GNU tar documentation. -# Copyright 1994-1997, 1999-2001, 2003, 2006-2007, 2013-2014, 2016-2017 -# Free Software Foundation, Inc. +# Copyright 1994-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/doc/Makefile.in b/doc/Makefile.in index b30772ea..572d5c70 100644 --- a/doc/Makefile.in +++ b/doc/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -16,8 +16,7 @@ # Makefile for GNU tar documentation. -# Copyright 1994-1997, 1999-2001, 2003, 2006-2007, 2013-2014, 2016-2017 -# Free Software Foundation, Inc. +# Copyright 1994-2019 Free Software Foundation, Inc. # This file is part of GNU tar. @@ -34,7 +33,17 @@ # 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__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -97,15 +106,11 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = doc -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(tar_TEXINFOS) $(top_srcdir)/build-aux/mdate-sh \ - $(srcdir)/version.texi $(srcdir)/stamp-vti \ - $(top_srcdir)/build-aux/texinfo.tex $(dist_man_MANS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ + $(top_srcdir)/m4/__inline.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/acl.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argp.m4 \ - $(top_srcdir)/m4/asm-underscore.m4 \ $(top_srcdir)/m4/backupfile.m4 $(top_srcdir)/m4/bison.m4 \ $(top_srcdir)/m4/btowc.m4 $(top_srcdir)/m4/builtin-expect.m4 \ $(top_srcdir)/m4/canonicalize.m4 \ @@ -125,11 +130,12 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/extern-inline.m4 \ $(top_srcdir)/m4/faccessat.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/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \ - $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpending.m4 \ + $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.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/flexmember.m4 \ + $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \ + $(top_srcdir)/m4/fnmatch_h.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 \ @@ -143,7 +149,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/group-member.m4 \ - $(top_srcdir)/m4/hard-locale.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.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 \ @@ -238,6 +243,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/version.texi \ + $(srcdir)/stamp-vti $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -335,6 +342,9 @@ man8dir = $(mandir)/man8 NROFF = nroff MANS = $(dist_man_MANS) am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(dist_man_MANS) $(srcdir)/Makefile.in \ + $(tar_TEXINFOS) $(top_srcdir)/build-aux/mdate-sh \ + $(top_srcdir)/build-aux/texinfo.tex DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ @@ -426,6 +436,7 @@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ +GNULIB_FNMATCH = @GNULIB_FNMATCH@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ @@ -458,6 +469,7 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ @@ -474,6 +486,7 @@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ +GNULIB_LOCALENAME = @GNULIB_LOCALENAME@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ @@ -712,6 +725,7 @@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ +HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ @@ -735,6 +749,9 @@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ +HAVE_FNMATCH = @HAVE_FNMATCH@ +HAVE_FNMATCH_H = @HAVE_FNMATCH_H@ +HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ @@ -747,13 +764,16 @@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ +HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ +HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ @@ -786,6 +806,7 @@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ +HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ @@ -856,7 +877,6 @@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ -HAVE_TRUNCATE = @HAVE_TRUNCATE@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ @@ -911,8 +931,6 @@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ -HOST_CPU = @HOST_CPU@ -HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ @@ -957,6 +975,7 @@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ +NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_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@ @@ -984,6 +1003,7 @@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_FNMATCH_H = @NEXT_FNMATCH_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ @@ -1044,9 +1064,11 @@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ +REPLACE_FNMATCH = @REPLACE_FNMATCH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ +REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ @@ -1064,6 +1086,7 @@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ISATTY = @REPLACE_ISATTY@ @@ -1094,6 +1117,7 @@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ @@ -1315,7 +1339,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits doc/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnits doc/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -1388,15 +1411,16 @@ $(srcdir)/stamp-vti: tar.texi $(top_srcdir)/configure echo "@set UPDATED $$1 $$2 $$3"; \ echo "@set UPDATED-MONTH $$2 $$3"; \ echo "@set EDITION $(VERSION)"; \ - echo "@set VERSION $(VERSION)") > vti.tmp - @cmp -s vti.tmp $(srcdir)/version.texi \ - || (echo "Updating $(srcdir)/version.texi"; \ - cp vti.tmp $(srcdir)/version.texi) - -@rm -f vti.tmp + echo "@set VERSION $(VERSION)") > vti.tmp$$$$ && \ + (cmp -s vti.tmp$$$$ $(srcdir)/version.texi \ + || (echo "Updating $(srcdir)/version.texi" && \ + cp vti.tmp$$$$ $(srcdir)/version.texi.tmp$$$$ && \ + mv $(srcdir)/version.texi.tmp$$$$ $(srcdir)/version.texi)) && \ + rm -f vti.tmp$$$$ $(srcdir)/version.texi.$$$$ @cp $(srcdir)/version.texi $@ mostlyclean-vti: - -rm -f vti.tmp + -rm -f vti.tmp* $(srcdir)/version.texi.tmp* maintainer-clean-vti: -rm -f $(srcdir)/stamp-vti $(srcdir)/version.texi @@ -1835,6 +1859,8 @@ uninstall-man: uninstall-man1 uninstall-man8 uninstall-html-am uninstall-info-am uninstall-man \ uninstall-man1 uninstall-man8 uninstall-pdf-am uninstall-ps-am +.PRECIOUS: Makefile + header.texi: $(top_srcdir)/src/tar.h sed -f $(srcdir)/texify.sed $(top_srcdir)/src/tar.h \ diff --git a/doc/dumpdir.texi b/doc/dumpdir.texi index 7000e9b1..4a578175 100644 --- a/doc/dumpdir.texi +++ b/doc/dumpdir.texi @@ -1,6 +1,5 @@ @c This is part of the paxutils manual. -@c Copyright (C) 2006-2007, 2014, 2016-2017 Free Software Foundation, -@c Inc. +@c Copyright (C) 2006-2019 Free Software Foundation, Inc. @c Written by Sergey Poznyakoff @c This file is distributed under GFDL 1.1 or any later version @c published by the Free Software Foundation. diff --git a/doc/fdl.texi b/doc/fdl.texi index e89851d5..d1b4b8b3 100644 --- a/doc/fdl.texi +++ b/doc/fdl.texi @@ -5,8 +5,7 @@ @c hence no sectioning command or @node. @display -Copyright @copyright{} 2000-2002, 2007-2008, 2014, 2016-2017 Free -Software Foundation, Inc. +Copyright @copyright{} 2000-2019 Free Software Foundation, Inc. @uref{http://fsf.org/} Everyone is permitted to copy and distribute verbatim copies diff --git a/doc/gendocs_template b/doc/gendocs_template index 7600a89e..55e9b3e2 100755 --- a/doc/gendocs_template +++ b/doc/gendocs_template @@ -106,7 +106,7 @@ Please send broken links and other corrections (or suggestions) to </p> <p> -Copyright 2004, 2013-2014, 2016-2017 Free Software Foundation, Inc., +Copyright 2004-2019 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02111, USA <br /> Verbatim copying and distribution of this entire article is diff --git a/doc/genfile.texi b/doc/genfile.texi index 58aa593a..f65ecc38 100644 --- a/doc/genfile.texi +++ b/doc/genfile.texi @@ -1,5 +1,5 @@ @c This is part of the paxutils manual. -@c Copyright (C) 2005, 2006, 2009 Free Software Foundation, Inc. +@c Copyright (C) 2005, 2006, 2009, 2108 Free Software Foundation, Inc. @c Written by Sergey Poznyakoff @c This file is distributed under GFDL 1.1 or any later version @c published by the Free Software Foundation. @@ -283,13 +283,43 @@ genfile --stat=name,atime * @cindex Exec Mode, @command{genfile} This mode is designed for testing the behavior of @code{paxutils} -commands when some of the files change during archiving. It is an -experimental mode. - - The @samp{Exec Mode} is toggled by @option{--run} command line -option (or its alias @option{-r}). The non-optional arguments to -@command{getopt} give the command line to be executed. Normally, -it should contain at least the @option{--checkpoint} option. +commands when some of the files change during archiving. It supposes +that the command being executed supports @option{--checkpoint} and +@option{--checkpoint-action} options (@pxref{checkpoints, +Checkpoints,,tar,GNU tar}). + + The @samp{Exec Mode} is enabled by @option{--run} command line +option (or its alias @option{-r}). The non-optional arguments +supply the command line to be executed. @command{Genfile} modifies +this command line by inserting the following options between the +command name and first argument: + +@example +--checkpoint=@var{n} +--checkpoint-action "echo=genfile checkpoint %u" +--checkpoint-action "wait=SIGUSR1" +@end example + + Here, @var{n} stands for the checkpoint granularity (for GNU +@command{tar}, it is the number of archive records read or written +between each pair of checkpoints). The default value is 1. This +value can be changed using the optional argument to the @option{--run} +option. For example, to run actions on each 10th checkpoint: + +@example +genfile --run=10 ... +@end example + + If the command line contains options, it must be preceded by a +double-dash (@samp{--}), which will prevent these options from being +interpreted by @command{genfile} itself. For example: + +@example +genfile --run --checkpoint=2 --truncate foo -- tar -c -f a.tar . +@end example + + Notice also, that when running @command{tar}, its command line may +not contain traditional options (cluster of letters without dash). A set of options is provided for defining checkpoint values and actions to be executed upon reaching them. Checkpoint values are @@ -334,36 +364,6 @@ connected to descriptor 1. All messages it prints to file descriptor 2, except checkpoint notifications, are forwarded to standard error. - @command{Genfile} exits with the exit status of the executed command. - - For compatibility with previous @command{genfile} versions, the -@option{--run} option takes an optional argument. If used this way, -its argument supplies the command line to be executed. There should -be no non-optional arguments in the @command{genfile} command line. - - The actual command line is constructed by inserting -the @option{--checkpoint} option between the command name and its -first argument (if any). Due to this, the argument to @option{--run} -may not use traditional @command{tar} option syntax, i.e., the -following is wrong: - -@smallexample -# Wrong! -genfile --run='tar cf foo bar' -@end smallexample - -@noindent - -Use the following syntax instead: - -@smallexample -genfile --run='tar -cf foo bar' @var{actions}... -@end smallexample - -The above command line is equivalent to - -@smallexample -genfile @var{actions}... -- tar -cf foo bar -@end smallexample + In exec mode, @command{genfile} exits with the exit status of the +executed command. -Notice, that the use of compatibility mode is deprecated. diff --git a/doc/header.texi b/doc/header.texi index 7c303d5f..a4c433f8 100644 --- a/doc/header.texi +++ b/doc/header.texi @@ -1,7 +1,6 @@ @comment GNU tar Archive Format description. @comment -@comment Copyright 1988-1989, 1991-1997, 2000-2001, 2003-2007, 2012-2014, -@comment 2016-2017 Free Software Foundation, Inc. +@comment Copyright 1988-2019 Free Software Foundation, Inc. @comment @comment This file is part of GNU tar. @comment diff --git a/doc/intern.texi b/doc/intern.texi index bfb7c37c..bc4abd72 100644 --- a/doc/intern.texi +++ b/doc/intern.texi @@ -1,5 +1,5 @@ @c This is part of the paxutils manual. -@c Copyright (C) 2006, 2014, 2016-2017 Free Software Foundation, Inc. +@c Copyright (C) 2006-2019 Free Software Foundation, Inc. @c This file is distributed under GFDL 1.1 or any later version @c published by the Free Software Foundation. diff --git a/doc/mastermenu.el b/doc/mastermenu.el index d7dfb003..db2d4a92 100644 --- a/doc/mastermenu.el +++ b/doc/mastermenu.el @@ -1,7 +1,6 @@ ;;; mastermenu.el --- Redefinition of texinfo-master-menu-list -;; Copyright 2006-2007, 2013-2014, 2016-2017 Free Software Foundation, -;; Inc. +;; Copyright 2006-2019 Free Software Foundation, Inc. ;; Author: Sergey Poznyakoff ;; Maintainer: bug-tar@gnu.org diff --git a/doc/parse-datetime.texi b/doc/parse-datetime.texi index 9568a4a4..193575ed 100644 --- a/doc/parse-datetime.texi +++ b/doc/parse-datetime.texi @@ -1,6 +1,6 @@ @c GNU date syntax documentation -@c Copyright (C) 1994-2006, 2009-2017 Free Software Foundation, Inc. +@c Copyright (C) 1994-2006, 2009-2019 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 diff --git a/doc/recipes.texi b/doc/recipes.texi index da259da3..d4def4a9 100644 --- a/doc/recipes.texi +++ b/doc/recipes.texi @@ -1,5 +1,5 @@ @c This is part of the GNU tar manual. -@c Copyright (C) 2017 Free Software Foundation, Inc. +@c Copyright (C) 2017-2019 Free Software Foundation, Inc. @c This file is distributed under GFDL 1.3 or any later version @c published by the Free Software Foundation. diff --git a/doc/rendition.texi b/doc/rendition.texi index 77459937..1eb81c67 100644 --- a/doc/rendition.texi +++ b/doc/rendition.texi @@ -1,6 +1,5 @@ @c This is part of GNU tar manual. -@c Copyright 1992, 1994-1997, 1999-2004, 2006, 2013-2014, 2016-2017 Free -@c Software Foundation, Inc. +@c Copyright 1992-2019 Free Software Foundation, Inc. @c See file tar.texi for copying conditions. @c This file contains support for 'renditions' by Fran@,{c}ois Pinard diff --git a/doc/rmt.8 b/doc/rmt.8 index 75502771..574352e2 100644 --- a/doc/rmt.8 +++ b/doc/rmt.8 @@ -1,5 +1,5 @@ .\" This file is part of GNU tar. -*- nroff -*- -.\" Copyright 2013 Free Software Foundation, Inc. +.\" Copyright 2013, 2018 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 @@ -13,7 +13,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/>. -.TH RMT 1 "January 27, 2014" "RMT" "GNU TAR Manual" +.TH RMT 8 "March 24, 2018" "RMT" "GNU TAR Manual" .SH NAME rmt \- remote magnetic tape server .SH SYNOPSIS @@ -237,7 +237,7 @@ command appeared in 4.2BSD. The GNU .BR rmt is written from scratch, using the BSD specification. .SH COPYRIGHT -Copyright \(co 2013 Free Software Foundation, Inc. +Copyright \(co 2013, 2018 Free Software Foundation, Inc. .br .na License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> diff --git a/doc/snapshot.texi b/doc/snapshot.texi index 8ebfb781..fe2cf31b 100644 --- a/doc/snapshot.texi +++ b/doc/snapshot.texi @@ -1,6 +1,5 @@ @c This is part of the paxutils manual. -@c Copyright (C) 2005, 2007, 2014, 2016-2017 Free Software Foundation, -@c Inc. +@c Copyright (C) 2005-2019 Free Software Foundation, Inc. @c Written by Sergey Poznyakoff @c This file is distributed under GFDL 1.1 or any later version @c published by the Free Software Foundation. @@ -147,7 +146,7 @@ is compiled. To see the specific ranges allowed for a particular @option{--show-snapshot-field-ranges} option: @smallexample -$ @kbd{tar --show-shapshot-field-ranges} +$ @kbd{tar --show-snapshot-field-ranges} This tar's snapshot file field ranges are (field name => [ min, max ]): diff --git a/doc/sparse.texi b/doc/sparse.texi index 84fe2b0c..9cf14b94 100644 --- a/doc/sparse.texi +++ b/doc/sparse.texi @@ -1,5 +1,5 @@ @c This is part of the paxutils manual. -@c Copyright (C) 2006, 2014, 2016-2017 Free Software Foundation, Inc. +@c Copyright (C) 2006-2019 Free Software Foundation, Inc. @c This file is distributed under GFDL 1.1 or any later version @c published by the Free Software Foundation. @@ -218,12 +218,12 @@ The real name of the sparse file is stored in the variable variable @code{GNU.sparse.realsize}. The sparse map itself is stored in the file data block, preceding the actual -file data. It consists of a series of octal numbers of arbitrary length, delimited +file data. It consists of a series of decimal numbers delimited by newlines. The map is padded with nulls to the nearest block boundary. -The first number gives the number of entries in the map. Following are map entries, -each one consisting of two numbers giving the offset and size of the -data block it describes. +The first number gives the number of entries in the map. Following are +map entries, each one consisting of two numbers giving the offset and +size of the data block it describes. The format is designed in such a way that non-posix aware @command{tar}s and @command{tar}s not supporting @code{GNU.sparse.*} keywords will extract each sparse file diff --git a/doc/stamp-vti b/doc/stamp-vti index 0b311612..1b3ab5e4 100644 --- a/doc/stamp-vti +++ b/doc/stamp-vti @@ -1,4 +1,4 @@ -@set UPDATED 16 December 2017 -@set UPDATED-MONTH December 2017 -@set EDITION 1.30 -@set VERSION 1.30 +@set UPDATED 4 February 2019 +@set UPDATED-MONTH February 2019 +@set EDITION 1.32 +@set VERSION 1.32 diff --git a/doc/tar-snapshot-edit.texi b/doc/tar-snapshot-edit.texi index e8e77726..85f58cec 100644 --- a/doc/tar-snapshot-edit.texi +++ b/doc/tar-snapshot-edit.texi @@ -1,5 +1,5 @@ @c This is part of the paxutils manual. -@c Copyright (C) 2007, 2014, 2016-2017 Free Software Foundation, Inc. +@c Copyright (C) 2007-2019 Free Software Foundation, Inc. @c This file is distributed under GFDL 1.1 or any later version @c published by the Free Software Foundation. diff --git a/doc/tar.1 b/doc/tar.1 index ddf4fdcf..0ad69b74 100644 --- a/doc/tar.1 +++ b/doc/tar.1 @@ -1,5 +1,5 @@ .\" This file is part of GNU tar. -*- nroff -*- -.\" Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +.\" Copyright 2013-2019 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 @@ -13,7 +13,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/>. -.TH TAR 1 "November 16, 2017" "TAR" "GNU TAR Manual" +.TH TAR 1 "February 4, 2019" "TAR" "GNU TAR Manual" .SH NAME tar \- an archiving utility .SH SYNOPSIS @@ -111,7 +111,7 @@ into the archive file verbosely listing the files being archived: .PP .EX -.B tar cfv a.tar /etc +.B tar cfv etc.tar /etc .EE .PP In @@ -133,9 +133,9 @@ The example command above written in the could look like: .PP .EX -.B tar -cvf a.tar /etc +.B tar -cvf etc.tar /etc or -.B tar -c -v -f a.tar /etc +.B tar -c -v -f etc.tar /etc .EE .PP In @@ -152,11 +152,11 @@ method. Here are several ways of writing the example command in this style: .PP .EX -.B tar --create --file a.tar --verbose /etc +.B tar --create --file etc.tar --verbose /etc .EE or (abbreviating some options): .EX -.B tar --cre --file=a.tar --verb /etc +.B tar --cre --file=etc.tar --verb /etc .EE .PP The options in all three styles can be intermixed, although doing so @@ -256,7 +256,7 @@ exist when creating an archive, it will be created and all files will be added to the resulting archive (the \fBlevel 0\fR dump). To create incremental archives of non-zero level \fBN\fR, create a copy of the snapshot file created during the level \fBN-1\fR, and use it as -\fIFILE\fR. +\fIFILE\fR. When listing or extracting, the actual contents of \fIFILE\fR is not inspected, it is needed only due to syntactical requirements. It is @@ -287,7 +287,7 @@ effect only if the archive is open for reading (e.g. with .B \-\-list or .B \-\-extract -options). +options). .TP \fB\-\-no\-check\-device\fR Do not check device numbers when creating incremental archives. @@ -383,7 +383,7 @@ Extract files to standard output. Pipe extracted files to \fICOMMAND\fR. The argument is the pathname of an external program, optionally with command line arguments. The program will be invoked and the contents of the file being extracted -supplied to it on its standard output. Additional data will be +supplied to it on its standard input. Additional data will be supplied via the following environment variables: .RS .TP @@ -465,7 +465,7 @@ Format of the archive being processed. One of: .BR v7 . .B TAR_SUBCOMMAND A short option (with a leading dash) describing the operation \fBtar\fR is -executing. +executing. .RE .SS Handling of file attributes .TP @@ -562,9 +562,6 @@ stored in archive with owner name \fINEWUSR\fR and UID \fINEWUID\fR. \fB\-p\fR, \fB\-\-preserve\-permissions\fR, \fB\-\-same\-permissions\fR extract information about file permissions (default for superuser) .TP -\fB\-\-preserve\fR -Same as both \fB\-p\fR and \fB\-s\fR. -.TP \fB\-\-same\-owner\fR Try extracting files with the same ownership as exists in the archive (default for superuser). @@ -694,7 +691,7 @@ executing. .B TAR_FD File descriptor which can be used to communicate the new volume name to -.BR tar . +.BR tar . .RE .RS @@ -732,7 +729,7 @@ When this option is used in conjunction with .BR \-\-multi\-volume , .B tar will keep track of which volume of a multi-volume archive it is -working in \fIFILE\fR. +working in \fIFILE\fR. .SS Device blocking .TP \fB\-b\fR, \fB\-\-blocking\-factor\fR=\fIBLOCKS\fR @@ -740,7 +737,7 @@ Set record size to \fIBLOCKS\fRx\fB512\fR bytes. .TP \fB\-B\fR, \fB\-\-read\-full\-records\fR When listing or extracting, accept incomplete input records after -end-of-file marker. +end-of-file marker. .TP \fB\-i\fR, \fB\-\-ignore\-zeros\fR Ignore zeroed blocks in archive. Normally two consecutive 512-blocks @@ -831,6 +828,10 @@ Filter the archive through \fB\-Z\fR, \fB\-\-compress\fR, \fB\-\-uncompress\fR Filter the archive through .BR compress (1). +.TP +\fB\-\-zstd\fR +Filter the archive through +.BR zstd (1). .SS Local file selection .TP \fB\-\-add\-file\fR=\fIFILE\fR @@ -1102,7 +1103,7 @@ Show file or archive names after transformation by \fB\-\-strip\fR and Print total bytes after processing the archive. If \fISIGNAL\fR is given, print total bytes when this signal is delivered. Allowed signals are: -.BR SIGHUP , +.BR SIGHUP , .BR SIGQUIT , .BR SIGINT , .BR SIGUSR1 ", and" @@ -1113,7 +1114,11 @@ The \fBSIG\fR prefix can be omitted. Print file modification times in UTC. .TP \fB\-v\fR, \fB\-\-verbose\fR -Verbosely list files processed. +Verbosely list files processed. Each instance of this option on the +command line increases the verbosity level by one. The maximum +verbosity level is 3. For a detailed discussion of how various +verbosity levels affect tar's output, please refer to \fBGNU Tar +Manual\fR, subsection 2.5.1 "\fBThe \-\-verbose Option\fR". .TP \fB\-\-warning\fR=\fIKEYWORD\fR Enable or disable warning messages identified by \fIKEYWORD\fR. The @@ -1205,7 +1210,7 @@ default (unless \fB\-\-verbose\fR is used). A common example of what you can get when using this warning is: .EX -$ \fBtar --warning=decompress-program -x -f archive.Z +$ tar --warning=decompress-program -x -f archive.Z tar (child): cannot run compress: No such file or directory tar (child): trying gzip .EE @@ -1296,8 +1301,8 @@ failure during backup to a remote device. .BR lzop (1), .BR rmt (8), .BR symlink (7), -.BR tar (5), -.BR xz (1). +.BR xz (1), +.BR zstd (1). .PP Complete \fBtar\fR manual: run .B info tar @@ -1328,4 +1333,3 @@ There is NO WARRANTY, to the extent permitted by law. .\" time-stamp-end: "\"" .\" time-stamp-line-limit: 20 .\" end: - diff --git a/doc/tar.info b/doc/tar.info index 2981e585..e96e9140 100644 --- a/doc/tar.info +++ b/doc/tar.info @@ -1,6 +1,6 @@ -This is tar.info, produced by makeinfo version 5.2 from tar.texi. +This is tar.info, produced by makeinfo version 5.9.93 from tar.texi. -This manual is for GNU 'tar' (version 1.30, 16 December 2017), which +This manual is for GNU 'tar' (version 1.32, 4 February 2019), which creates and extracts files from archives. Copyright (C) 1992, 1994-1997, 1999-2001, 2003-2017 Free Software @@ -28,442 +28,443 @@ END-INFO-DIR-ENTRY Indirect: -tar.info-1: 1138 -tar.info-2: 302401 +tar.info-1: 1140 +tar.info-2: 303214 Tag Table: (Indirect) -Node: Top1138 -Node: Introduction10521 -Node: Book Contents11308 -Node: Definitions13480 -Node: What tar Does15283 -Node: Naming tar Archives18050 -Node: Authors18771 -Node: Reports20584 -Node: Tutorial20941 -Node: assumptions21754 -Node: stylistic conventions24228 -Node: basic tar options24671 -Node: frequent operations28310 -Node: Two Frequent Options28960 -Node: file tutorial29591 -Node: verbose tutorial30949 -Ref: verbose member listing33163 -Node: help tutorial35931 -Node: create36286 -Node: prepare for examples37724 -Node: Creating the archive39493 -Node: create verbose43080 -Node: short create43900 -Node: create dir46635 -Node: list49343 -Ref: listing member and file names50878 -Node: list dir53497 -Node: extract54509 -Node: extracting archives55623 -Node: extracting files56128 -Ref: extracting files-Footnote-158014 -Node: extract dir58394 -Node: extracting untrusted archives60786 -Node: failing commands61666 -Node: going further63251 -Node: tar invocation63464 -Node: Synopsis65244 -Ref: exit status68566 -Node: using tar options70199 -Ref: TAR_OPTIONS71779 -Node: Styles72798 -Ref: Styles-Footnote-174297 -Node: Long Options74553 -Node: Short Options76725 -Ref: Short Options-Footnote-178533 -Node: Old Options78750 -Node: Mixing81513 -Ref: Mixing-Footnote-183879 -Node: All Options83999 -Node: Operation Summary84635 -Ref: --append84755 -Ref: --catenate84836 -Ref: --compare84908 -Ref: --concatenate85112 -Ref: --create85223 -Ref: --delete85292 -Ref: --diff85407 -Ref: --extract85464 -Ref: --get85567 -Ref: --list85626 -Ref: --update85695 -Node: Option Summary85906 -Ref: --absolute-names86061 -Ref: --acls86353 -Ref: --after-date86434 -Ref: --anchored86487 -Ref: --atime-preserve86620 -Ref: --auto-compress89136 -Ref: --backup89364 -Ref: --block-number89556 -Ref: --blocking-factor89731 -Ref: --bzip289884 -Ref: --check-device89992 -Ref: --checkpoint90187 -Ref: --checkpoint-action90630 -Ref: --check-links91789 -Ref: --compress92066 -Ref: --uncompress92066 -Ref: --clamp-mtime92271 -Ref: --confirmation92311 -Ref: --delay-directory-restore92380 -Ref: --dereference92583 -Ref: --directory92778 -Ref: --exclude93032 -Ref: --exclude-backups93152 -Ref: --exclude-from93242 -Ref: --exclude-caches93389 -Ref: --exclude-caches-under93598 -Ref: --exclude-caches-all93777 -Ref: --exclude-ignore93907 -Ref: --exclude-ignore-recursive94127 -Ref: --exclude-tag94371 -Ref: --exclude-tag-under94543 -Ref: --exclude-tag-all94734 -Ref: --exclude-vcs94864 -Ref: --exclude-vcs-ignores95024 -Ref: --file95417 -Ref: --files-from95618 -Ref: --force-local95822 -Ref: --format96014 -Ref: --full-time96689 -Ref: --group97369 -Ref: --group-map97696 -Ref: --gzip98088 -Ref: --gunzip98088 -Ref: --ungzip98088 -Ref: --hard-dereference98312 -Ref: --help98499 -Ref: --hole-detection98635 -Ref: --ignore-case98871 -Ref: --ignore-command-error98998 -Ref: --ignore-failed-read99110 -Ref: --ignore-zeros99252 -Ref: --incremental99397 -Ref: --index-file99663 -Ref: --info-script99749 -Ref: --new-volume-script99749 -Ref: --interactive100047 -Ref: --keep-directory-symlink100260 -Ref: --keep-newer-files100809 -Ref: --keep-old-files100952 -Ref: --label101165 -Ref: --level101454 -Ref: --listed-incremental101894 -Ref: --lzip102259 -Ref: --lzma102360 -Ref: --mode102562 -Ref: --mtime102855 -Ref: --multi-volume103535 -Ref: --newer103741 -Ref: --newer-mtime104020 -Ref: --no-acls104245 -Ref: --no-anchored104339 -Ref: --no-auto-compress104476 -Ref: --no-check-device104628 -Ref: --no-delay-directory-restore104811 -Ref: --no-ignore-case105060 -Ref: --no-ignore-command-error105153 -Ref: --no-null105309 -Ref: --no-overwrite-dir105515 -Ref: --no-quote-chars105659 -Ref: --no-recursion105840 -Ref: --no-same-owner105946 -Ref: --no-same-permissions106130 -Ref: --no-seek106333 -Ref: --no-selinux106552 -Ref: --no-unquote106653 -Ref: --no-verbatim-files-from106791 -Ref: --no-wildcards107292 -Ref: --no-wildcards-match-slash107376 -Ref: --no-xattrs107478 -Ref: --null107581 -Ref: --numeric-owner107932 -Ref: --occurrence108584 -Ref: --old-archive109152 -Ref: --one-file-system109201 -Ref: --one-top-level109379 -Ref: --overwrite110015 -Ref: --overwrite-dir110158 -Ref: --owner110304 -Ref: --owner-map110667 -Ref: --pax-option111043 -Ref: --portability111350 -Ref: --posix111415 -Ref: --preserve-order111457 -Ref: --preserve-permissions111522 -Ref: --same-permissions111522 -Ref: --quote-chars111937 -Ref: --quoting-style112090 -Ref: --read-full-records112413 -Ref: --record-size112579 -Ref: --recursion112932 -Ref: --recursive-unlink113037 -Ref: --remove-files113200 -Ref: --restrict113347 -Ref: --rmt-command113536 -Ref: --rsh-command113678 -Ref: --same-order113801 -Ref: --same-owner114094 -Ref: --seek114473 -Ref: --selinux114844 -Ref: --show-defaults114945 -Ref: --show-omitted-dirs115455 -Ref: --show-snapshot-field-ranges115610 -Ref: --show-transformed-names115807 -Ref: --show-stored-names115807 -Ref: --skip-old-files116197 -Ref: --sort116648 -Ref: --sparse117287 -Ref: --sparse-version117427 -Ref: --starting-file117653 -Ref: --strip-components117843 -Ref: --suffix118180 -Ref: --tape-length118300 -Ref: --test-label118725 -Ref: --to-command118878 -Ref: --to-stdout119038 -Ref: --totals119192 -Ref: --touch119424 -Ref: --transform119627 -Ref: --xform119627 -Ref: --unlink-first120241 -Ref: --unquote120405 -Ref: --use-compress-program120512 -Ref: --utc120691 -Ref: --verbatim-files-from120785 -Ref: --verbose121629 -Ref: --verify121882 -Ref: --version122001 -Ref: --volno-file122174 -Ref: --warning122362 -Ref: --wildcards122540 -Ref: --wildcards-match-slash122660 -Ref: --xattrs122752 -Ref: --xattrs-exclude122851 -Ref: --xattrs-include122978 -Ref: --xz123234 -Ref: Option Summary-Footnote-1123364 -Node: Short Option Summary123583 -Node: Position-Sensitive Options126486 -Ref: Position-Sensitive Options-Footnote-1129975 -Node: help130137 -Ref: help-Footnote-1133972 -Node: defaults134183 -Node: verbose135202 -Ref: totals137505 -Ref: Progress information139095 -Ref: show-omitted-dirs140074 -Ref: block-number140493 -Ref: verbose-Footnote-1141520 -Node: checkpoints141627 -Ref: checkpoint exec147692 -Node: warnings149721 -Node: interactive153323 -Node: external155422 -Node: operations157010 -Node: Basic tar157252 -Ref: Basic tar-Footnote-1160359 -Node: Advanced tar160503 -Node: Operations161348 -Node: append163243 -Ref: append-Footnote-1166340 -Node: appending files166527 -Node: multiple168264 -Node: update170986 -Node: how to update171963 -Node: concatenate173744 -Ref: concatenate-Footnote-1176992 -Node: delete177135 -Node: compare178909 -Node: create options180343 -Node: override180830 -Node: Extended File Attributes187891 -Node: Ignore Failed Read192519 -Node: extract options193124 -Node: Reading193957 -Node: read full records195457 -Node: Ignore Zeros195792 -Node: Writing196783 -Node: Dealing with Old Files197340 -Node: Overwrite Old Files200142 -Node: Keep Old Files201599 -Node: Keep Newer Files202406 -Node: Unlink First202696 -Node: Recursive Unlink203100 -Node: Data Modification Times203653 -Node: Setting Access Permissions204463 -Node: Directory Modification Times and Permissions205095 -Node: Writing to Standard Output208708 -Node: Writing to an External Program210243 -Node: remove files213833 -Node: Scarce214026 -Node: Starting File214274 -Node: Same Order215075 -Node: backup215911 -Node: looking ahead219003 -Node: Backups219823 -Node: Full Dumps221404 -Node: Incremental Dumps223213 -Ref: --level=0226127 -Ref: device numbers226660 -Ref: incremental-op230643 -Ref: Incremental Dumps-Footnote-1231017 -Ref: Incremental Dumps-Footnote-2231167 -Node: Backup Levels231655 -Node: Backup Parameters234042 -Node: General-Purpose Variables235223 -Ref: RSH238391 -Node: Magnetic Tape Control240275 -Node: User Hooks241614 -Node: backup-specs example242947 -Node: Scripted Backups244087 -Ref: Scripted Backups-Footnote-1246952 -Node: Scripted Restoration247336 -Node: Choosing249942 -Node: file251064 -Ref: remote-dev253700 -Ref: local and remote archives254085 -Node: Selecting Archive Members255116 -Ref: input name quoting255797 -Node: files257772 -Ref: verbatim-files-from260479 -Ref: no-verbatim-files-from260739 -Ref: files-Footnote-1261481 -Node: nul261639 -Node: exclude264097 -Ref: exclude-vcs-ignores265655 -Ref: exclude-vcs267368 -Ref: exclude-Footnote-1271304 -Ref: exclude-Footnote-2271558 -Node: problems with exclude271629 -Node: wildcards273679 -Node: controlling pattern-matching276262 -Ref: anchored patterns278903 -Ref: case-insensitive matches279173 -Ref: controlling pattern-matching-Footnote-1280250 -Node: quoting styles280467 -Ref: escape sequences280812 -Node: transform286756 -Ref: show-transformed-names288747 -Node: after294938 -Node: recurse298540 -Node: one302401 -Node: directory303834 -Node: absolute306933 -Ref: absolute-Footnote-1310260 -Node: Date input formats310611 -Node: General date syntax313007 -Node: Calendar date items315984 -Node: Time of day items317981 -Node: Time zone items320177 -Node: Combined date and time of day items321427 -Node: Day of week items322282 -Node: Relative items in date strings323290 -Node: Pure numbers in date strings326092 -Node: Seconds since the Epoch327073 -Node: Specifying time zone rules328693 -Node: Authors of parse_datetime331066 -Ref: Authors of get_date331245 -Node: Formats332208 -Node: Compression336883 -Node: gzip337175 -Ref: alternative decompression programs339386 -Ref: auto-compress342935 -Ref: use-compress-program343700 -Ref: gzip-Footnote-1345667 -Ref: gzip-Footnote-2345716 -Node: lbzip2345856 -Node: sparse346953 -Node: Attributes351497 -Node: Portability357159 -Node: Portable Names358645 -Node: dereference359350 -Node: hard links360477 -Ref: hard links-Footnote-1363362 -Node: old363418 -Node: ustar364601 -Node: gnu365204 -Node: posix366081 -Node: PAX keywords366562 -Node: Checksumming372560 -Node: Large or Negative Values374504 -Node: Other Tars376105 -Node: Split Recovery377241 -Node: Sparse Recovery380990 -Ref: extracting sparse v0x384619 -Ref: Sparse Recovery-Footnote-1387908 -Ref: Sparse Recovery-Footnote-2387931 -Node: cpio388052 -Node: Media392813 -Node: Device394764 -Ref: size-suffixes399555 -Node: Remote Tape Server400695 -Node: Common Problems and Solutions404359 -Node: Blocking404751 -Ref: Blocking-Footnote-1411235 -Node: Format Variations411339 -Node: Blocking Factor412254 -Node: Many423905 -Node: Tape Positioning427699 -Node: mt429575 -Node: Using Multiple Tapes431132 -Node: Multi-Volume Archives433198 -Ref: tape-length434683 -Ref: change volume prompt435238 -Ref: volno-file436105 -Ref: info-script436658 -Ref: Multi-Volume Archives-Footnote-1442243 -Ref: Multi-Volume Archives-Footnote-2442353 -Node: Tape Files442421 -Node: Tarcat443906 -Node: label444951 -Ref: --test-label option446539 -Ref: label-Footnote-1449990 -Ref: label-Footnote-2450099 -Ref: label-Footnote-3450232 -Node: verify450467 -Node: Write Protection453767 -Node: Reliability and security454597 -Node: Reliability454985 -Node: Permissions problems455763 -Node: Data corruption and repair456202 -Node: Race conditions457129 -Node: Security458868 -Node: Privacy459471 -Node: Integrity460720 -Node: Live untrusted data462931 -Node: Security rules of thumb465270 -Node: Changes466798 -Node: Recipes470387 -Node: copy directory hierarchy470672 -Node: intermediate directories471476 -Ref: intermediate directories-Footnote-1473841 -Node: Configuring Help Summary473965 -Node: Fixing Snapshot Files480481 -Node: Tar Internals483850 -Node: Standard484182 -Node: Extensions506324 -Node: Sparse Formats509614 -Node: Old GNU Format510903 -Node: PAX 0513290 -Node: PAX 1516404 -Node: Snapshot Files518132 -Node: Dumpdir523730 -Node: Genfile526960 -Node: Generate Mode528056 -Node: Status Mode533296 -Node: Exec Mode535098 -Node: Free Software Needs Free Documentation537944 -Node: GNU Free Documentation License542925 -Node: Index of Command Line Options568133 -Node: Index596359 +Node: Top1140 +Node: Introduction10522 +Node: Book Contents11309 +Node: Definitions13481 +Node: What tar Does15284 +Node: Naming tar Archives18051 +Node: Authors18772 +Node: Reports20585 +Node: Tutorial20942 +Node: assumptions21755 +Node: stylistic conventions24229 +Node: basic tar options24672 +Node: frequent operations28311 +Node: Two Frequent Options28961 +Node: file tutorial29592 +Node: verbose tutorial30950 +Ref: verbose member listing33164 +Node: help tutorial35932 +Node: create36287 +Node: prepare for examples37725 +Node: Creating the archive39494 +Node: create verbose43081 +Node: short create43901 +Node: create dir46636 +Node: list49344 +Ref: listing member and file names50879 +Node: list dir53498 +Node: extract54510 +Node: extracting archives55624 +Node: extracting files56129 +Ref: extracting files-Footnote-158015 +Node: extract dir58395 +Node: extracting untrusted archives60787 +Node: failing commands61667 +Node: going further63252 +Node: tar invocation63465 +Node: Synopsis65245 +Ref: exit status68567 +Node: using tar options70200 +Ref: TAR_OPTIONS71780 +Node: Styles72799 +Ref: Styles-Footnote-174298 +Node: Long Options74554 +Node: Short Options76726 +Ref: Short Options-Footnote-178534 +Node: Old Options78751 +Node: Mixing81514 +Ref: Mixing-Footnote-183880 +Node: All Options84000 +Node: Operation Summary84636 +Ref: --append84756 +Ref: --catenate84837 +Ref: --compare84909 +Ref: --concatenate85113 +Ref: --create85224 +Ref: --delete85293 +Ref: --diff85408 +Ref: --extract85465 +Ref: --get85568 +Ref: --list85627 +Ref: --update85696 +Node: Option Summary85907 +Ref: --absolute-names86062 +Ref: --acls86354 +Ref: --after-date86435 +Ref: --anchored86488 +Ref: --atime-preserve86621 +Ref: --auto-compress89137 +Ref: --backup89365 +Ref: --block-number89557 +Ref: --blocking-factor89732 +Ref: --bzip289885 +Ref: --check-device89993 +Ref: --checkpoint90188 +Ref: --checkpoint-action90631 +Ref: --check-links91902 +Ref: --compress92179 +Ref: --uncompress92179 +Ref: --clamp-mtime92384 +Ref: --confirmation92424 +Ref: --delay-directory-restore92493 +Ref: --dereference92696 +Ref: --directory92891 +Ref: --exclude93145 +Ref: --exclude-backups93265 +Ref: --exclude-from93355 +Ref: --exclude-caches93502 +Ref: --exclude-caches-under93711 +Ref: --exclude-caches-all93890 +Ref: --exclude-ignore94020 +Ref: --exclude-ignore-recursive94240 +Ref: --exclude-tag94484 +Ref: --exclude-tag-under94656 +Ref: --exclude-tag-all94847 +Ref: --exclude-vcs94977 +Ref: --exclude-vcs-ignores95137 +Ref: --file95530 +Ref: --files-from95731 +Ref: --force-local95935 +Ref: --format96127 +Ref: --full-time96802 +Ref: --group97482 +Ref: --group-map97809 +Ref: --gzip98201 +Ref: --gunzip98201 +Ref: --ungzip98201 +Ref: --hard-dereference98425 +Ref: --help98612 +Ref: --hole-detection98748 +Ref: --ignore-case98984 +Ref: --ignore-command-error99111 +Ref: --ignore-failed-read99223 +Ref: --ignore-zeros99365 +Ref: --incremental99510 +Ref: --index-file99776 +Ref: --info-script99862 +Ref: --new-volume-script99862 +Ref: --interactive100160 +Ref: --keep-directory-symlink100373 +Ref: --keep-newer-files100922 +Ref: --keep-old-files101065 +Ref: --label101278 +Ref: --level101567 +Ref: --listed-incremental102007 +Ref: --lzip102372 +Ref: --lzma102473 +Ref: --mode102675 +Ref: --mtime102968 +Ref: --multi-volume103648 +Ref: --newer103854 +Ref: --newer-mtime104133 +Ref: --no-acls104358 +Ref: --no-anchored104452 +Ref: --no-auto-compress104589 +Ref: --no-check-device104741 +Ref: --no-delay-directory-restore104924 +Ref: --no-ignore-case105173 +Ref: --no-ignore-command-error105266 +Ref: --no-null105422 +Ref: --no-overwrite-dir105628 +Ref: --no-quote-chars105772 +Ref: --no-recursion105953 +Ref: --no-same-owner106059 +Ref: --no-same-permissions106243 +Ref: --no-seek106446 +Ref: --no-selinux106665 +Ref: --no-unquote106766 +Ref: --no-verbatim-files-from106904 +Ref: --no-wildcards107405 +Ref: --no-wildcards-match-slash107489 +Ref: --no-xattrs107591 +Ref: --null107694 +Ref: --numeric-owner108045 +Ref: --occurrence108697 +Ref: --old-archive109265 +Ref: --one-file-system109314 +Ref: --one-top-level109492 +Ref: --overwrite110128 +Ref: --overwrite-dir110271 +Ref: --owner110417 +Ref: --owner-map110780 +Ref: --pax-option111156 +Ref: --portability111463 +Ref: --posix111528 +Ref: --preserve-order111570 +Ref: --preserve-permissions111635 +Ref: --same-permissions111635 +Ref: --quote-chars112050 +Ref: --quoting-style112203 +Ref: --read-full-records112526 +Ref: --record-size112692 +Ref: --recursion113045 +Ref: --recursive-unlink113150 +Ref: --remove-files113313 +Ref: --restrict113460 +Ref: --rmt-command113649 +Ref: --rsh-command113791 +Ref: --same-order113914 +Ref: --same-owner114207 +Ref: --seek114586 +Ref: --selinux114957 +Ref: --show-defaults115058 +Ref: --show-omitted-dirs115568 +Ref: --show-snapshot-field-ranges115723 +Ref: --show-transformed-names115920 +Ref: --show-stored-names115920 +Ref: --skip-old-files116310 +Ref: --sort116761 +Ref: --sparse117400 +Ref: --sparse-version117540 +Ref: --starting-file117766 +Ref: --strip-components117956 +Ref: --suffix118293 +Ref: --tape-length118413 +Ref: --test-label118838 +Ref: --to-command118991 +Ref: --to-stdout119151 +Ref: --totals119305 +Ref: --touch119537 +Ref: --transform119740 +Ref: --xform119740 +Ref: --unlink-first120354 +Ref: --unquote120518 +Ref: --use-compress-program120625 +Ref: --utc120804 +Ref: --verbatim-files-from120898 +Ref: --verbose121742 +Ref: --verify121995 +Ref: --version122114 +Ref: --volno-file122287 +Ref: --warning122475 +Ref: --wildcards122653 +Ref: --wildcards-match-slash122773 +Ref: --xattrs122865 +Ref: --xattrs-exclude122964 +Ref: --xattrs-include123091 +Ref: --xz123347 +Ref: Option Summary-Footnote-1123570 +Node: Short Option Summary123789 +Node: Position-Sensitive Options126701 +Ref: Position-Sensitive Options-Footnote-1130190 +Node: help130352 +Ref: help-Footnote-1134187 +Node: defaults134398 +Node: verbose135417 +Ref: totals137720 +Ref: Progress information139310 +Ref: show-omitted-dirs140289 +Ref: block-number140708 +Ref: verbose-Footnote-1141735 +Node: checkpoints141842 +Ref: checkpoint wait147907 +Ref: checkpoint exec148503 +Node: warnings150532 +Node: interactive154134 +Node: external156233 +Node: operations157821 +Node: Basic tar158063 +Ref: Basic tar-Footnote-1161170 +Node: Advanced tar161314 +Node: Operations162159 +Node: append164054 +Ref: append-Footnote-1167151 +Node: appending files167338 +Node: multiple169075 +Node: update171797 +Node: how to update172774 +Node: concatenate174555 +Ref: concatenate-Footnote-1177803 +Node: delete177946 +Node: compare179720 +Node: create options181154 +Node: override181641 +Node: Extended File Attributes188702 +Node: Ignore Failed Read193330 +Node: extract options193935 +Node: Reading194768 +Node: read full records196268 +Node: Ignore Zeros196603 +Node: Writing197594 +Node: Dealing with Old Files198151 +Node: Overwrite Old Files200953 +Node: Keep Old Files202410 +Node: Keep Newer Files203217 +Node: Unlink First203507 +Node: Recursive Unlink203911 +Node: Data Modification Times204464 +Node: Setting Access Permissions205274 +Node: Directory Modification Times and Permissions205906 +Node: Writing to Standard Output209519 +Node: Writing to an External Program211054 +Node: remove files214644 +Node: Scarce214837 +Node: Starting File215085 +Node: Same Order215886 +Node: backup216722 +Node: looking ahead219814 +Node: Backups220634 +Node: Full Dumps222215 +Node: Incremental Dumps224024 +Ref: --level=0226938 +Ref: device numbers227471 +Ref: incremental-op231454 +Ref: Incremental Dumps-Footnote-1231828 +Ref: Incremental Dumps-Footnote-2231978 +Node: Backup Levels232466 +Node: Backup Parameters234853 +Node: General-Purpose Variables236034 +Ref: RSH239202 +Node: Magnetic Tape Control241086 +Node: User Hooks242425 +Node: backup-specs example243758 +Node: Scripted Backups244898 +Ref: Scripted Backups-Footnote-1247763 +Node: Scripted Restoration248147 +Node: Choosing250753 +Node: file251875 +Ref: remote-dev254511 +Ref: local and remote archives254896 +Node: Selecting Archive Members255927 +Ref: input name quoting256608 +Node: files258583 +Ref: verbatim-files-from261290 +Ref: no-verbatim-files-from261550 +Ref: files-Footnote-1262292 +Node: nul262450 +Node: exclude264908 +Ref: exclude-vcs-ignores266466 +Ref: exclude-vcs268179 +Ref: exclude-Footnote-1272115 +Ref: exclude-Footnote-2272369 +Node: problems with exclude272440 +Node: wildcards274490 +Node: controlling pattern-matching277073 +Ref: anchored patterns279714 +Ref: case-insensitive matches279984 +Ref: controlling pattern-matching-Footnote-1281061 +Node: quoting styles281278 +Ref: escape sequences281623 +Node: transform287567 +Ref: show-transformed-names289558 +Node: after295749 +Node: recurse299351 +Node: one303214 +Node: directory304647 +Node: absolute307746 +Ref: absolute-Footnote-1311073 +Node: Date input formats311424 +Node: General date syntax313820 +Node: Calendar date items316797 +Node: Time of day items318794 +Node: Time zone items320990 +Node: Combined date and time of day items322240 +Node: Day of week items323095 +Node: Relative items in date strings324103 +Node: Pure numbers in date strings326905 +Node: Seconds since the Epoch327886 +Node: Specifying time zone rules329506 +Node: Authors of parse_datetime331879 +Ref: Authors of get_date332058 +Node: Formats333021 +Node: Compression337696 +Node: gzip337988 +Ref: alternative decompression programs340473 +Ref: auto-compress344072 +Ref: use-compress-program344907 +Ref: gzip-Footnote-1346874 +Ref: gzip-Footnote-2346923 +Node: lbzip2347063 +Node: sparse348160 +Node: Attributes352704 +Node: Portability358366 +Node: Portable Names359852 +Node: dereference360557 +Node: hard links361684 +Ref: hard links-Footnote-1364569 +Node: old364625 +Node: ustar365808 +Node: gnu366411 +Node: posix367288 +Node: PAX keywords367769 +Node: Checksumming373767 +Node: Large or Negative Values375711 +Node: Other Tars377312 +Node: Split Recovery378448 +Node: Sparse Recovery382197 +Ref: extracting sparse v0x385826 +Ref: Sparse Recovery-Footnote-1389115 +Ref: Sparse Recovery-Footnote-2389138 +Node: cpio389259 +Node: Media394020 +Node: Device395971 +Ref: size-suffixes400762 +Node: Remote Tape Server401902 +Node: Common Problems and Solutions405566 +Node: Blocking405958 +Ref: Blocking-Footnote-1412442 +Node: Format Variations412546 +Node: Blocking Factor413461 +Node: Many425112 +Node: Tape Positioning428906 +Node: mt430782 +Node: Using Multiple Tapes432339 +Node: Multi-Volume Archives434405 +Ref: tape-length435890 +Ref: change volume prompt436445 +Ref: volno-file437312 +Ref: info-script437865 +Ref: Multi-Volume Archives-Footnote-1443450 +Ref: Multi-Volume Archives-Footnote-2443560 +Node: Tape Files443628 +Node: Tarcat445113 +Node: label446158 +Ref: --test-label option447746 +Ref: label-Footnote-1451197 +Ref: label-Footnote-2451306 +Ref: label-Footnote-3451439 +Node: verify451674 +Node: Write Protection454974 +Node: Reliability and security455804 +Node: Reliability456192 +Node: Permissions problems456970 +Node: Data corruption and repair457409 +Node: Race conditions458336 +Node: Security460075 +Node: Privacy460678 +Node: Integrity461927 +Node: Live untrusted data464138 +Node: Security rules of thumb466477 +Node: Changes468005 +Node: Recipes471594 +Node: copy directory hierarchy471879 +Node: intermediate directories472683 +Ref: intermediate directories-Footnote-1475048 +Node: Configuring Help Summary475172 +Node: Fixing Snapshot Files481688 +Node: Tar Internals485057 +Node: Standard485389 +Node: Extensions507531 +Node: Sparse Formats510821 +Node: Old GNU Format512110 +Node: PAX 0514497 +Node: PAX 1517611 +Node: Snapshot Files519320 +Node: Dumpdir524918 +Node: Genfile528148 +Node: Generate Mode529244 +Node: Status Mode534484 +Node: Exec Mode536286 +Node: Free Software Needs Free Documentation539342 +Node: GNU Free Documentation License544323 +Node: Index of Command Line Options569498 +Node: Index597797 End Tag Table diff --git a/doc/tar.info-1 b/doc/tar.info-1 index dc01ffba..5273a7bd 100644 --- a/doc/tar.info-1 +++ b/doc/tar.info-1 @@ -1,6 +1,6 @@ -This is tar.info, produced by makeinfo version 5.2 from tar.texi. +This is tar.info, produced by makeinfo version 5.9.93 from tar.texi. -This manual is for GNU 'tar' (version 1.30, 16 December 2017), which +This manual is for GNU 'tar' (version 1.32, 4 February 2019), which creates and extracts files from archives. Copyright (C) 1992, 1994-1997, 1999-2001, 2003-2017 Free Software @@ -32,7 +32,7 @@ File: tar.info, Node: Top, Next: Introduction, Up: (dir) GNU tar: an archiver tool ************************* -This manual is for GNU 'tar' (version 1.30, 16 December 2017), which +This manual is for GNU 'tar' (version 1.32, 4 February 2019), which creates and extracts files from archives. Copyright (C) 1992, 1994-1997, 1999-2001, 2003-2017 Free Software @@ -566,7 +566,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.30 were +to create version 1.12. The book for versions from 1.14 up to 1.32 were edited by the current maintainer, Sergey Poznyakoff. For version 1.12, Daniel Hagerty contributed a great deal of @@ -1312,7 +1312,7 @@ Consider this example, run from your home directory: /home/myself/practice/folk /home/myself/practice/jazz /home/myself/practice/collection.tar - $ tar --test --file practice.tar + $ tar --list --file practice.tar home/myself/practice/ home/myself/practice/blues home/myself/practice/folk @@ -1337,7 +1337,7 @@ GNU 'tar' show member names when creating archive by supplying home/myself/practice/folk home/myself/practice/jazz home/myself/practice/collection.tar - $ tar --test --file practice.tar + $ tar --list --file practice.tar home/myself/practice/ home/myself/practice/blues home/myself/practice/folk @@ -1910,10 +1910,11 @@ function; they are interchangeable. Short options which require arguments take their arguments immediately following the option, usually separated by white space. It is also possible to stick the argument right after the short option -name, using no intervening space. For example, you might write '-f archive.tar' -or '-farchive.tar' instead of using '--file=archive.tar'. Both -'--file=ARCHIVE-NAME' and '-f ARCHIVE-NAME' denote the option which -indicates a specific archive, here named 'archive.tar'. +name, using no intervening space. For example, you might write +'-f archive.tar' or '-farchive.tar' instead of using +'--file=archive.tar'. Both '--file=ARCHIVE-NAME' and '-f ARCHIVE-NAME' +denote the option which indicates a specific archive, here named +'archive.tar'. Short options which take optional arguments take their arguments immediately following the option letter, _without any intervening white @@ -1980,8 +1981,9 @@ Here, '20' is the argument of '-b' and '/dev/rmt0' is the argument of 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. +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. @@ -2305,6 +2307,12 @@ File: tar.info, Node: Option Summary, Next: Short Option Summary, Prev: Opera ttyout=STRING Output STRING on the current console ('/dev/tty'). + totals + Print statistics (see *note totals::). + + wait=SIGNO + Wait for signal SIGNO. + Several '--checkpoint-action' options can be specified. The supplied actions will be executed in order of their appearance in the command line. @@ -2628,7 +2636,7 @@ File: tar.info, Node: Option Summary, Next: Short Option Summary, Prev: Opera pattern specified in NAME. *Note Tape Files::. '--level=N' - Force incremental backup of level N. As of GNU 'tar' version 1.30, + Force incremental backup of level N. As of GNU 'tar' version 1.32, 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. @@ -3125,8 +3133,8 @@ File: tar.info, Node: Option Summary, Next: Short Option Summary, Prev: Opera '--tape-length=NUM[SUF]' '-L NUM[SUF]' - Specifies the length of tapes that 'tar' is writing as being NUM x 1024 - bytes long. If optional SUF is given, it specifies a + Specifies the length of tapes that 'tar' is writing as being + NUM x 1024 bytes long. If optional SUF is given, it specifies a multiplicative factor to be used instead of 1024. For example, '-L2M' means 2 megabytes. *Note Table 9.1: size-suffixes, for a list of allowed suffixes. *Note Using Multiple Tapes::, for a @@ -3284,6 +3292,10 @@ File: tar.info, Node: Option Summary, Next: Short Option Summary, Prev: Opera Use 'xz' for compressing or decompressing the archives. *Note gzip::. +'--zstd' + Use 'zstd' for compressing or decompressing the archives. *Note + gzip::. + ---------- Footnotes ---------- (1) Earlier versions of GNU 'tar' understood '-l' as a synonym for @@ -3365,8 +3377,8 @@ Short Option Reference -m *note --touch::. --o When creating, *note --no-same-owner::, when extracting - -- *note --portability::. +-o When extracting, same as *note --no-same-owner::. When + creating, - *note --old-archive::. The latter usage is deprecated. It is retained for compatibility with the earlier versions of GNU 'tar'. @@ -3530,8 +3542,8 @@ 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.30 - Copyright (C) 2013-2017 Free Software Foundation, Inc. + tar (GNU tar) 1.32 + Copyright (C) 2013-2019 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. @@ -3912,6 +3924,21 @@ checkpoint: $ tar -c --checkpoint=1000 --checkpoint-action=sleep=30 + The 'wait=SIGNO' action stops further execution until the signal +SIGNO is delivered. Valid values for SIGNO are: 'SIGHUP', 'SIGQUIT', +'SIGINT', 'SIGUSR1' and 'SIGUSR2'. The 'SIG' prefix is optional. For +example: + + $ tar -c -f arc --checkpoint=1000 --checkpoint-action wait=USR1 . + + In this example, GNU 'tar' will stop archivation at each 1000th +checkpoint. wait until the 'SIGUSR1' signal is delivered, and resume +processing. + + This action is used by the 'genfile' utility to perform modifications +on the input files upon hitting certain checkpoints (*note genfile: Exec +Mode.). + Finally, the 'exec' action executes a given external command. For example: @@ -6929,7 +6956,7 @@ options provide such possibility: systems: 'CVS', 'RCS', 'SCCS', 'SVN', 'Arch', 'Bazaar', 'Mercurial', and 'Darcs'. - As of version 1.30, the following files are excluded: + As of version 1.32, the following files are excluded: * 'CVS/', and everything under it * 'RCS/', and everything under it @@ -7058,7 +7085,7 @@ entirely: (1) According to the Bazaar docs, globbing-patterns are Korn-shell style and regular expressions are perl-style. As of GNU 'tar' version -1.30, these are treated as shell-style globs and posix extended regexps. +1.32, these are treated as shell-style globs and posix extended regexps. This will be fixed in future releases. (2) Support for perl-style regexps will appear in future releases. diff --git a/doc/tar.info-2 b/doc/tar.info-2 index e8494b81..c35abc4c 100644 --- a/doc/tar.info-2 +++ b/doc/tar.info-2 @@ -1,6 +1,6 @@ -This is tar.info, produced by makeinfo version 5.2 from tar.texi. +This is tar.info, produced by makeinfo version 5.9.93 from tar.texi. -This manual is for GNU 'tar' (version 1.30, 16 December 2017), which +This manual is for GNU 'tar' (version 1.32, 4 February 2019), which creates and extracts files from archives. Copyright (C) 1992, 1994-1997, 1999-2001, 2003-2017 Free Software @@ -750,7 +750,7 @@ v7 This format has traditionally been used by Automake when producing 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.30 + more than 99 characters long will not be able to use GNU 'tar' 1.32 and Automake prior to 1.9. ustar @@ -832,19 +832,27 @@ File: tar.info, Node: gzip, Next: sparse, Up: Compression GNU 'tar' is able to create and read compressed archives. It supports a wide variety of compression programs, namely: 'gzip', 'bzip2', 'lzip', -'lzma', 'lzop', 'xz' and traditional 'compress'. The latter is +'lzma', 'lzop', 'zstd', 'xz' and traditional 'compress'. The latter is supported mostly for backward compatibility, and we recommend against using it, because it is by far less effective than the other compression programs(1). Creating a compressed archive is simple: you just specify a "compression option" along with the usual archive creation commands. -The compression option is '-z' ('--gzip') to create a 'gzip' compressed -archive, '-j' ('--bzip2') to create a 'bzip2' compressed archive, -'--lzip' to create an lzip compressed archive, '-J' ('--xz') to create -an XZ archive, '--lzma' to create an LZMA compressed archive, '--lzop' -to create an LZOP archive, and '-Z' ('--compress') to use 'compress' -program. For example: +Available compression options are summarized in the table below: + +Long Short Archive format +--------------------------------------------------------------------------- +'--gzip' '-z' 'gzip' +'--bzip2' '-j' 'bzip2' +'--xz' '-J' 'xz' +'--lzip' 'lzip' +'--lzma' 'lzma' +'--lzop' 'lzop' +'--zstd' 'zstd' +'--compress' '-Z' 'compress' + + For example: $ tar czf archive.tar.gz . @@ -881,7 +889,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.30 the +installed, 'tar' will try to use 'gzip'. As of version 1.32 the following alternatives are tried(2): Format Main decompressor Alternatives @@ -937,6 +945,9 @@ program: '--lzop' Filter the archive through 'lzop'. +'--zstd' + Filter the archive through 'zstd'. + '-Z' '--compress' '--uncompress' @@ -995,6 +1006,8 @@ compressed archives. These are: '.tlz' 'lzma' '.lzo' 'lzop' '.xz' 'xz' + '.zst' 'zstd' + '.tzst' 'zstd' '--use-compress-program=COMMAND' '-I=COMMAND' @@ -4936,9 +4949,9 @@ constructed using the following pattern: 'GNU.sparse.realsize'. The sparse map itself is stored in the file data block, preceding the -actual file data. It consists of a series of octal numbers of arbitrary -length, delimited by newlines. The map is padded with nulls to the -nearest block boundary. +actual file data. It consists of a series of decimal numbers delimited +by newlines. The map is padded with nulls to the nearest block +boundary. The first number gives the number of entries in the map. Following are map entries, each one consisting of two numbers giving the offset @@ -4963,13 +4976,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.30 supports three snapshot file formats. The + GNU 'tar' version 1.32 supports three snapshot file formats. The first format, called "format 0", is the one used by GNU 'tar' versions 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.30, the "format 2" is used. +1.32, the "format 2" is used. GNU 'tar' is able to read all three formats, but will create snapshots only in format 2. @@ -5028,7 +5041,7 @@ 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.30-2 + GNU tar-1.32-2 This line is followed by newline. Rest of file consists of records, separated by null (ASCII 0) characters. Thus, in contrast @@ -5056,8 +5069,8 @@ snapshots only in format 2. 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 + contents Dumpdir Contents of the directory; + *Note Dumpdir::, for a description of its format. Dumpdirs stored in snapshot files contain only records of types @@ -5069,7 +5082,7 @@ snapshots only in format 2. 'tar' binary, you can use the '--show-snapshot-field-ranges' option: - $ tar --show-shapshot-field-ranges + $ tar --show-snapshot-field-ranges This tar's snapshot file field ranges are (field name => [ min, max ]): @@ -5439,13 +5452,35 @@ F.3 Exec Mode ============= This mode is designed for testing the behavior of 'paxutils' commands -when some of the files change during archiving. It is an experimental -mode. +when some of the files change during archiving. It supposes that the +command being executed supports '--checkpoint' and '--checkpoint-action' +options (*note Checkpoints: (tar)checkpoints.). + + The 'Exec Mode' is enabled by '--run' command line option (or its +alias '-r'). The non-optional arguments supply the command line to be +executed. 'Genfile' modifies this command line by inserting the +following options between the command name and first argument: + + --checkpoint=N + --checkpoint-action "echo=genfile checkpoint %u" + --checkpoint-action "wait=SIGUSR1" + + Here, N stands for the checkpoint granularity (for GNU 'tar', it is +the number of archive records read or written between each pair of +checkpoints). The default value is 1. This value can be changed using +the optional argument to the '--run' option. For example, to run +actions on each 10th checkpoint: + + genfile --run=10 ... + + If the command line contains options, it must be preceded by a +double-dash ('--'), which will prevent these options from being +interpreted by 'genfile' itself. For example: - The 'Exec Mode' is toggled by '--run' command line option (or its -alias '-r'). The non-optional arguments to 'getopt' give the command -line to be executed. Normally, it should contain at least the -'--checkpoint' option. + genfile --run --checkpoint=2 --truncate foo -- tar -c -f a.tar . + + Notice also, that when running 'tar', its command line may not +contain traditional options (cluster of letters without dash). A set of options is provided for defining checkpoint values and actions to be executed upon reaching them. Checkpoint values are @@ -5487,30 +5522,8 @@ exit status of the command. connected to descriptor 1. All messages it prints to file descriptor 2, except checkpoint notifications, are forwarded to standard error. - 'Genfile' exits with the exit status of the executed command. - - For compatibility with previous 'genfile' versions, the '--run' -option takes an optional argument. If used this way, its argument -supplies the command line to be executed. There should be no -non-optional arguments in the 'genfile' command line. - - The actual command line is constructed by inserting the -'--checkpoint' option between the command name and its first argument -(if any). Due to this, the argument to '--run' may not use traditional -'tar' option syntax, i.e., the following is wrong: - - # Wrong! - genfile --run='tar cf foo bar' - - Use the following syntax instead: - - genfile --run='tar -cf foo bar' ACTIONS... - - The above command line is equivalent to - - genfile ACTIONS... -- tar -cf foo bar - - Notice, that the use of compatibility mode is deprecated. + In exec mode, 'genfile' exits with the exit status of the executed +command. File: tar.info, Node: Free Software Needs Free Documentation, Next: GNU Free Documentation License, Prev: Genfile, Up: Top @@ -5612,8 +5625,7 @@ Appendix H GNU Free Documentation License Version 1.3, 3 November 2008 - Copyright (C) 2000-2002, 2007-2008, 2014, 2016-2017 Free - Software Foundation, Inc. + Copyright (C) 2000-2019 Free Software Foundation, Inc. <http://fsf.org/> Everyone is permitted to copy and distribute verbatim copies @@ -6115,7 +6127,7 @@ Summary::. * append, summary: Operation Summary. (line 6) * atime-preserve: Attributes. (line 10) * atime-preserve, summary: Option Summary. (line 25) -* auto-compress: gzip. (line 150) +* auto-compress: gzip. (line 161) * auto-compress, summary: Option Summary. (line 71) * backup: backup. (line 41) * backup, summary: Option Summary. (line 78) @@ -6129,21 +6141,21 @@ Summary::. * check-device, described: Incremental Dumps. (line 107) * check-device, summary: Option Summary. (line 103) * check-links, described: hard links. (line 31) -* check-links, summary: Option Summary. (line 155) +* check-links, summary: Option Summary. (line 161) * checkpoint: checkpoints. (line 6) * checkpoint, defined: checkpoints. (line 13) * checkpoint, summary: Option Summary. (line 108) * checkpoint-action: checkpoints. (line 6) * checkpoint-action, defined: checkpoints. (line 22) * checkpoint-action, summary: Option Summary. (line 117) -* clamp-mtime, summary: Option Summary. (line 172) +* clamp-mtime, summary: Option Summary. (line 178) * compare: compare. (line 6) * compare, summary: Operation Summary. (line 16) -* compress: gzip. (line 113) -* compress, summary: Option Summary. (line 164) +* compress: gzip. (line 124) +* compress, summary: Option Summary. (line 170) * concatenate: concatenate. (line 6) * concatenate, summary: Operation Summary. (line 23) -* confirmation, summary: Option Summary. (line 176) +* confirmation, summary: Option Summary. (line 182) * create, additional options: create options. (line 6) * create, complementary notes: Basic tar. (line 11) * create, introduced: Creating the archive. @@ -6153,45 +6165,45 @@ 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 180) +* delay-directory-restore, summary: Option Summary. (line 186) * delete: delete. (line 6) * delete, summary: Operation Summary. (line 34) * delete, using before -append: append. (line 47) * dereference: dereference. (line 6) -* dereference, summary: Option Summary. (line 186) +* dereference, summary: Option Summary. (line 192) * diff, summary: Operation Summary. (line 39) * directory: directory. (line 11) -* directory, summary: Option Summary. (line 193) +* directory, summary: Option Summary. (line 199) * exclude: exclude. (line 6) * exclude <1>: exclude. (line 9) * exclude, potential problems with: problems with exclude. (line 6) -* exclude, summary: Option Summary. (line 201) +* exclude, summary: Option Summary. (line 207) * exclude-backups: exclude. (line 114) -* exclude-backups, summary: Option Summary. (line 206) +* exclude-backups, summary: Option Summary. (line 212) * exclude-caches: exclude. (line 134) -* exclude-caches, summary: Option Summary. (line 215) +* exclude-caches, summary: Option Summary. (line 221) * exclude-caches-all: exclude. (line 142) -* exclude-caches-all, summary: Option Summary. (line 230) +* exclude-caches-all, summary: Option Summary. (line 236) * exclude-caches-under: exclude. (line 138) -* exclude-caches-under, summary: Option Summary. (line 223) +* exclude-caches-under, summary: Option Summary. (line 229) * exclude-from: exclude. (line 6) * exclude-from <1>: exclude. (line 20) -* exclude-from, summary: Option Summary. (line 209) +* exclude-from, summary: Option Summary. (line 215) * exclude-ignore: exclude. (line 76) -* exclude-ignore, summary: Option Summary. (line 235) +* exclude-ignore, summary: Option Summary. (line 241) * exclude-ignore-recursive: exclude. (line 81) -* exclude-ignore-recursive, summary: Option Summary. (line 240) +* exclude-ignore-recursive, summary: Option Summary. (line 246) * exclude-tag: exclude. (line 151) -* exclude-tag, summary: Option Summary. (line 245) +* exclude-tag, summary: Option Summary. (line 251) * exclude-tag-all: exclude. (line 159) -* exclude-tag-all, summary: Option Summary. (line 257) +* exclude-tag-all, summary: Option Summary. (line 263) * exclude-tag-under: exclude. (line 155) -* exclude-tag-under, summary: Option Summary. (line 251) +* exclude-tag-under, summary: Option Summary. (line 257) * exclude-vcs: exclude. (line 85) -* exclude-vcs, summary: Option Summary. (line 262) +* exclude-vcs, summary: Option Summary. (line 268) * exclude-vcs-ignores: exclude. (line 42) -* exclude-vcs-ignores, summary: Option Summary. (line 269) +* exclude-vcs-ignores, summary: Option Summary. (line 275) * extract: extract. (line 6) * extract, additional options: extract options. (line 6) * extract, complementary notes: Basic tar. (line 49) @@ -6200,60 +6212,60 @@ Summary::. (line 120) * file: file. (line 6) * file, short description: file. (line 15) -* file, summary: Option Summary. (line 277) +* file, summary: Option Summary. (line 283) * file, tutorial: file tutorial. (line 6) * files-from: files. (line 14) -* files-from, summary: Option Summary. (line 284) +* files-from, summary: Option Summary. (line 290) * force-local, short description: Device. (line 70) -* force-local, summary: Option Summary. (line 291) -* format, summary: Option Summary. (line 297) -* full-time, summary: Option Summary. (line 322) +* force-local, summary: Option Summary. (line 297) +* format, summary: Option Summary. (line 303) +* full-time, summary: Option Summary. (line 328) * get, summary: Operation Summary. (line 50) * group: override. (line 99) -* group, summary: Option Summary. (line 340) -* group-map, summary: Option Summary. (line 350) -* gunzip, summary: Option Summary. (line 360) -* gzip: gzip. (line 91) -* gzip, summary: Option Summary. (line 360) +* group, summary: Option Summary. (line 346) +* group-map, summary: Option Summary. (line 356) +* gunzip, summary: Option Summary. (line 366) +* gzip: gzip. (line 99) +* gzip, summary: Option Summary. (line 366) * hard-dereference, described: hard links. (line 59) -* hard-dereference, summary: Option Summary. (line 369) +* hard-dereference, summary: Option Summary. (line 375) * help: help tutorial. (line 6) * help, introduction: help. (line 26) -* help, summary: Option Summary. (line 375) +* help, summary: Option Summary. (line 381) * hole-detection: sparse. (line 66) -* hole-detection, summary: Option Summary. (line 381) +* hole-detection, summary: Option Summary. (line 387) * ignore-case: controlling pattern-matching. (line 85) -* ignore-case, summary: Option Summary. (line 386) +* ignore-case, summary: Option Summary. (line 392) * ignore-command-error: Writing to an External Program. (line 111) -* ignore-command-error, summary: Option Summary. (line 390) +* ignore-command-error, summary: Option Summary. (line 396) * ignore-failed-read: Ignore Failed Read. (line 7) -* ignore-failed-read, summary: Option Summary. (line 394) +* ignore-failed-read, summary: Option Summary. (line 400) * ignore-zeros: Ignore Zeros. (line 6) * ignore-zeros, short description: Blocking Factor. (line 152) -* ignore-zeros, summary: Option Summary. (line 399) -* incremental, summary: Option Summary. (line 405) +* ignore-zeros, summary: Option Summary. (line 405) +* incremental, summary: Option Summary. (line 411) * incremental, using with '--list': Incremental Dumps. (line 185) -* index-file, summary: Option Summary. (line 413) +* index-file, summary: Option Summary. (line 419) * info-script: Multi-Volume Archives. (line 83) * info-script, short description: Device. (line 121) -* info-script, summary: Option Summary. (line 417) +* info-script, summary: Option Summary. (line 423) * interactive: interactive. (line 14) -* interactive, summary: Option Summary. (line 426) -* keep-directory-symlink, summary: Option Summary. (line 434) +* interactive, summary: Option Summary. (line 432) +* keep-directory-symlink, summary: Option Summary. (line 440) * keep-newer-files: Keep Newer Files. (line 6) -* keep-newer-files, summary: Option Summary. (line 448) +* keep-newer-files, summary: Option Summary. (line 454) * 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 453) +* keep-old-files, summary: Option Summary. (line 459) * label: Tape Files. (line 6) * label <1>: label. (line 6) -* label, summary: Option Summary. (line 462) +* label, summary: Option Summary. (line 468) * level, described: Incremental Dumps. (line 75) -* level, summary: Option Summary. (line 470) +* level, summary: Option Summary. (line 476) * list: list. (line 6) * list, summary: Operation Summary. (line 55) * list, using with '--incremental': Incremental Dumps. (line 185) @@ -6262,228 +6274,229 @@ Summary::. * list, using with '--verbose': list. (line 34) * list, using with file name arguments: list. (line 25) * listed-incremental, described: Incremental Dumps. (line 14) -* listed-incremental, summary: Option Summary. (line 480) +* listed-incremental, summary: Option Summary. (line 486) * listed-incremental, using with '--extract': Incremental Dumps. (line 120) * listed-incremental, using with '--list': Incremental Dumps. (line 185) -* lzip: gzip. (line 104) -* lzip, summary: Option Summary. (line 489) -* lzma: gzip. (line 107) -* lzma, summary: Option Summary. (line 494) -* lzop: gzip. (line 110) +* lzip: gzip. (line 112) +* lzip, summary: Option Summary. (line 495) +* lzma: gzip. (line 115) +* lzma, summary: Option Summary. (line 500) +* lzop: gzip. (line 118) * mode: override. (line 14) -* mode, summary: Option Summary. (line 504) +* mode, summary: Option Summary. (line 510) * mtime: override. (line 30) -* mtime, summary: Option Summary. (line 511) +* mtime, summary: Option Summary. (line 517) * multi-volume: Multi-Volume Archives. (line 6) * multi-volume, short description: Device. (line 88) -* multi-volume, summary: Option Summary. (line 526) +* multi-volume, summary: Option Summary. (line 532) * new-volume-script: Multi-Volume Archives. (line 83) * new-volume-script, short description: Device. (line 121) -* new-volume-script, summary: Option Summary. (line 417) -* new-volume-script, summary <1>: Option Summary. (line 532) +* new-volume-script, summary: Option Summary. (line 423) +* new-volume-script, summary <1>: Option Summary. (line 538) * newer: after. (line 24) -* newer, summary: Option Summary. (line 536) +* newer, summary: Option Summary. (line 542) * newer-mtime: after. (line 35) -* newer-mtime, summary: Option Summary. (line 545) -* no-acls, summary: Option Summary. (line 551) +* newer-mtime, summary: Option Summary. (line 551) +* no-acls, summary: Option Summary. (line 557) * no-anchored: controlling pattern-matching. (line 78) -* no-anchored, summary: Option Summary. (line 555) -* no-auto-compress, summary: Option Summary. (line 559) +* no-anchored, summary: Option Summary. (line 561) +* no-auto-compress, summary: Option Summary. (line 565) * no-check-device, described: Incremental Dumps. (line 103) -* no-check-device, summary: Option Summary. (line 564) +* no-check-device, summary: Option Summary. (line 570) * no-delay-directory-restore: Directory Modification Times and Permissions. (line 68) -* no-delay-directory-restore, summary: Option Summary. (line 569) +* no-delay-directory-restore, summary: Option Summary. (line 575) * no-ignore-case: controlling pattern-matching. (line 85) -* no-ignore-case, summary: Option Summary. (line 575) +* no-ignore-case, summary: Option Summary. (line 581) * no-ignore-command-error: Writing to an External Program. (line 116) -* no-ignore-command-error, summary: Option Summary. (line 578) +* no-ignore-command-error, summary: Option Summary. (line 584) * no-null, described: nul. (line 15) -* no-null, summary: Option Summary. (line 582) -* no-overwrite-dir, summary: Option Summary. (line 588) -* no-quote-chars, summary: Option Summary. (line 593) +* no-null, summary: Option Summary. (line 588) +* no-overwrite-dir, summary: Option Summary. (line 594) +* no-quote-chars, summary: Option Summary. (line 599) * no-recursion: recurse. (line 11) -* no-recursion, summary: Option Summary. (line 598) +* no-recursion, summary: Option Summary. (line 604) * no-same-owner: Attributes. (line 63) -* no-same-owner, summary: Option Summary. (line 603) -* no-same-permissions, summary: Option Summary. (line 610) -* no-seek, summary: Option Summary. (line 616) -* no-selinux, summary: Option Summary. (line 622) +* no-same-owner, summary: Option Summary. (line 609) +* no-same-permissions, summary: Option Summary. (line 616) +* no-seek, summary: Option Summary. (line 622) +* no-selinux, summary: Option Summary. (line 628) * no-unquote: Selecting Archive Members. (line 42) -* no-unquote, summary: Option Summary. (line 626) +* no-unquote, summary: Option Summary. (line 632) * no-verbatim-files-from: files. (line 75) -* no-verbatim-files-from, summary: Option Summary. (line 630) +* no-verbatim-files-from, summary: Option Summary. (line 636) * no-wildcards: controlling pattern-matching. (line 41) -* no-wildcards, summary: Option Summary. (line 644) +* no-wildcards, summary: Option Summary. (line 650) * no-wildcards-match-slash: controlling pattern-matching. (line 91) -* no-wildcards-match-slash, summary: Option Summary. (line 647) -* no-xattrs, summary: Option Summary. (line 650) +* no-wildcards-match-slash, summary: Option Summary. (line 653) +* no-xattrs, summary: Option Summary. (line 656) * null, described: nul. (line 11) -* null, summary: Option Summary. (line 654) +* null, summary: Option Summary. (line 660) * numeric-owner: Attributes. (line 69) -* numeric-owner, summary: Option Summary. (line 667) +* numeric-owner, summary: Option Summary. (line 673) * occurrence, described: append. (line 34) -* occurrence, summary: Option Summary. (line 685) -* old-archive, summary: Option Summary. (line 700) +* occurrence, summary: Option Summary. (line 691) +* old-archive, summary: Option Summary. (line 706) * one-file-system: one. (line 14) -* one-file-system, summary: Option Summary. (line 703) -* one-top-level, summary: Option Summary. (line 708) +* one-file-system, summary: Option Summary. (line 709) +* one-top-level, summary: Option Summary. (line 714) * overwrite: Overwrite Old Files. (line 6) * overwrite, introduced: Dealing with Old Files. (line 32) -* overwrite, summary: Option Summary. (line 719) +* overwrite, summary: Option Summary. (line 725) * overwrite-dir: Overwrite Old Files. (line 28) * overwrite-dir, introduced: Dealing with Old Files. (line 6) -* overwrite-dir, summary: Option Summary. (line 724) +* overwrite-dir, summary: Option Summary. (line 730) * owner: override. (line 67) -* owner, summary: Option Summary. (line 729) -* owner-map, summary: Option Summary. (line 739) +* owner, summary: Option Summary. (line 735) +* owner-map, summary: Option Summary. (line 745) * pax-option: PAX keywords. (line 6) -* pax-option, summary: Option Summary. (line 749) -* portability, summary: Option Summary. (line 755) -* posix, summary: Option Summary. (line 759) +* pax-option, summary: Option Summary. (line 755) +* portability, summary: Option Summary. (line 761) +* posix, summary: Option Summary. (line 765) * preserve-order: Same Order. (line 6) -* preserve-order, summary: Option Summary. (line 762) +* preserve-order, summary: Option Summary. (line 768) * preserve-permissions: Setting Access Permissions. (line 10) * preserve-permissions, short description: Attributes. (line 109) -* preserve-permissions, summary: Option Summary. (line 766) -* quote-chars, summary: Option Summary. (line 777) +* preserve-permissions, summary: Option Summary. (line 772) +* quote-chars, summary: Option Summary. (line 783) * quoting-style: quoting styles. (line 36) -* quoting-style, summary: Option Summary. (line 781) +* quoting-style, summary: Option Summary. (line 787) * read-full-records: Reading. (line 6) * read-full-records <1>: read full records. (line 6) * read-full-records, short description: Blocking Factor. (line 168) -* read-full-records, summary: Option Summary. (line 788) -* record-size, summary: Option Summary. (line 794) +* read-full-records, summary: Option Summary. (line 794) +* record-size, summary: Option Summary. (line 800) * recursion: recurse. (line 22) -* recursion, summary: Option Summary. (line 802) +* recursion, summary: Option Summary. (line 808) * recursive-unlink: Recursive Unlink. (line 6) -* recursive-unlink, summary: Option Summary. (line 807) +* recursive-unlink, summary: Option Summary. (line 813) * remove-files: remove files. (line 6) -* remove-files, summary: Option Summary. (line 812) -* restrict, summary: Option Summary. (line 817) -* rmt-command, summary: Option Summary. (line 823) +* remove-files, summary: Option Summary. (line 818) +* restrict, summary: Option Summary. (line 823) +* rmt-command, summary: Option Summary. (line 829) * rsh-command: Device. (line 73) -* rsh-command, summary: Option Summary. (line 828) +* rsh-command, summary: Option Summary. (line 834) * same-order: Same Order. (line 6) -* same-order, summary: Option Summary. (line 833) +* same-order, summary: Option Summary. (line 839) * same-owner: Attributes. (line 44) -* same-owner, summary: Option Summary. (line 842) +* same-owner, summary: Option Summary. (line 848) * same-permissions: Setting Access Permissions. (line 10) * same-permissions, short description: Attributes. (line 109) -* same-permissions, summary: Option Summary. (line 766) -* same-permissions, summary <1>: Option Summary. (line 849) -* seek, summary: Option Summary. (line 853) -* selinux, summary: Option Summary. (line 863) +* same-permissions, summary: Option Summary. (line 772) +* same-permissions, summary <1>: Option Summary. (line 855) +* seek, summary: Option Summary. (line 859) +* selinux, summary: Option Summary. (line 869) * show-defaults: defaults. (line 6) -* show-defaults, summary: Option Summary. (line 867) +* show-defaults, summary: Option Summary. (line 873) * show-omitted-dirs: verbose. (line 105) -* show-omitted-dirs, summary: Option Summary. (line 880) +* show-omitted-dirs, summary: Option Summary. (line 886) * show-snapshot-field-ranges: Snapshot Files. (line 111) -* show-snapshot-field-ranges, summary: Option Summary. (line 885) +* show-snapshot-field-ranges, summary: Option Summary. (line 891) * show-stored-names: list. (line 68) -* show-stored-names, summary: Option Summary. (line 891) +* show-stored-names, summary: Option Summary. (line 897) * show-transformed-names: transform. (line 45) -* show-transformed-names, summary: Option Summary. (line 891) +* show-transformed-names, summary: Option Summary. (line 897) * skip-old-files, introduced: Dealing with Old Files. (line 28) -* skip-old-files, summary: Option Summary. (line 900) -* sort, summary: Option Summary. (line 913) +* skip-old-files, summary: Option Summary. (line 906) +* sort, summary: Option Summary. (line 919) * sparse: sparse. (line 24) -* sparse, summary: Option Summary. (line 930) +* sparse, summary: Option Summary. (line 936) * sparse-version: sparse. (line 59) -* sparse-version, summary: Option Summary. (line 936) +* sparse-version, summary: Option Summary. (line 942) * starting-file: Starting File. (line 6) -* starting-file, summary: Option Summary. (line 942) +* starting-file, summary: Option Summary. (line 948) * strip-components: transform. (line 25) -* strip-components, summary: Option Summary. (line 949) +* strip-components, summary: Option Summary. (line 955) * suffix: backup. (line 67) -* suffix, summary: Option Summary. (line 960) +* suffix, summary: Option Summary. (line 966) * tape-length: Multi-Volume Archives. (line 33) * tape-length, short description: Device. (line 96) -* tape-length, summary: Option Summary. (line 965) +* tape-length, summary: Option Summary. (line 971) * test-label: label. (line 35) -* test-label, summary: Option Summary. (line 975) +* test-label, summary: Option Summary. (line 982) * to-command: Writing to an External Program. (line 9) -* to-command, summary: Option Summary. (line 980) +* to-command, summary: Option Summary. (line 987) * to-stdout: Writing to Standard Output. (line 14) -* to-stdout, summary: Option Summary. (line 985) +* to-stdout, summary: Option Summary. (line 992) * totals: verbose. (line 45) -* totals, summary: Option Summary. (line 991) +* totals, summary: Option Summary. (line 998) * touch: Data Modification Times. (line 15) * touch <1>: Attributes. (line 33) -* touch, summary: Option Summary. (line 997) +* touch, summary: Option Summary. (line 1004) * transform: transform. (line 74) -* transform, summary: Option Summary. (line 1004) -* uncompress: gzip. (line 113) -* uncompress, summary: Option Summary. (line 164) -* uncompress, summary <1>: Option Summary. (line 1018) -* ungzip: gzip. (line 91) -* ungzip, summary: Option Summary. (line 360) -* ungzip, summary <1>: Option Summary. (line 1022) +* transform, summary: Option Summary. (line 1011) +* uncompress: gzip. (line 124) +* uncompress, summary: Option Summary. (line 170) +* uncompress, summary <1>: Option Summary. (line 1025) +* ungzip: gzip. (line 99) +* ungzip, summary: Option Summary. (line 366) +* ungzip, summary <1>: Option Summary. (line 1029) * unlink-first: Unlink First. (line 6) * unlink-first, introduced: Dealing with Old Files. (line 51) -* unlink-first, summary: Option Summary. (line 1026) +* unlink-first, summary: Option Summary. (line 1033) * unquote: Selecting Archive Members. (line 39) -* unquote, summary: Option Summary. (line 1032) +* unquote, summary: Option Summary. (line 1039) * update: update. (line 6) * update <1>: how to update. (line 6) * update, summary: Operation Summary. (line 60) * usage: help. (line 53) -* use-compress-program: gzip. (line 172) -* use-compress-program, summary: Option Summary. (line 1036) -* utc, summary: Option Summary. (line 1042) +* use-compress-program: gzip. (line 185) +* use-compress-program, summary: Option Summary. (line 1043) +* utc, summary: Option Summary. (line 1049) * verbatim-files-from: files. (line 70) -* verbatim-files-from, summary: Option Summary. (line 1047) +* verbatim-files-from, summary: Option Summary. (line 1054) * verbose: verbose. (line 18) * verbose, introduced: verbose tutorial. (line 6) -* verbose, summary: Option Summary. (line 1069) +* verbose, summary: Option Summary. (line 1076) * verbose, using with '--create': create verbose. (line 6) * verbose, using with '--list': list. (line 34) * verify, short description: verify. (line 8) -* verify, summary: Option Summary. (line 1077) +* verify, summary: Option Summary. (line 1084) * verify, using with '--create': verify. (line 24) * version: help. (line 6) -* version, summary: Option Summary. (line 1083) +* version, summary: Option Summary. (line 1090) * volno-file: Multi-Volume Archives. (line 74) -* volno-file, summary: Option Summary. (line 1089) +* volno-file, summary: Option Summary. (line 1096) * warning, explained: warnings. (line 12) -* warning, summary: Option Summary. (line 1095) +* warning, summary: Option Summary. (line 1102) * wildcards: controlling pattern-matching. (line 38) -* wildcards, summary: Option Summary. (line 1101) +* wildcards, summary: Option Summary. (line 1108) * wildcards-match-slash: controlling pattern-matching. (line 91) -* wildcards-match-slash, summary: Option Summary. (line 1105) -* xattrs, summary: Option Summary. (line 1108) -* xattrs-exclude, summary: Option Summary. (line 1112) -* xattrs-include, summary: Option Summary. (line 1116) +* wildcards-match-slash, summary: Option Summary. (line 1112) +* xattrs, summary: Option Summary. (line 1115) +* xattrs-exclude, summary: Option Summary. (line 1119) +* xattrs-include, summary: Option Summary. (line 1123) * xform: transform. (line 74) -* xform, summary: Option Summary. (line 1004) -* xz: gzip. (line 96) -* xz, summary: Option Summary. (line 1122) +* xform, summary: Option Summary. (line 1011) +* xz: gzip. (line 104) +* xz, summary: Option Summary. (line 1129) +* zstd: gzip. (line 121) File: tar.info, Node: Index, Prev: Index of Command Line Options, Up: Top @@ -6522,7 +6535,7 @@ Appendix J Index (line 23) * all: warnings. (line 28) * alone-zero-block: warnings. (line 33) -* alternative decompression programs: gzip. (line 54) +* alternative decompression programs: gzip. (line 62) * am in date strings: Time of day items. (line 21) * Appending files to an Archive: appending files. (line 6) * appending files to existing archive: append. (line 6) @@ -6600,7 +6613,7 @@ Appendix J Index (line 40) * contiguous-cast: warnings. (line 70) * corrupted archives: Full Dumps. (line 8) -* corrupted archives <1>: gzip. (line 140) +* corrupted archives <1>: gzip. (line 151) * Creation of the archive: create. (line 6) * 'Current %s is newer or same age', warning message: warnings. (line 76) @@ -6670,7 +6683,7 @@ Appendix J Index * 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 151) +* 'exec', checkpoint action: checkpoints. (line 166) * existing backup method: backup. (line 59) * existing-file: warnings. (line 66) * exit status: Synopsis. (line 67) @@ -6750,8 +6763,8 @@ Appendix J Index * GNU.sparse.offset, extended header variable: PAX 0. (line 17) * GNU.sparse.realsize, extended header variable: PAX 1. (line 24) * GNU.sparse.size, extended header variable: PAX 0. (line 10) -* gnupg, using with tar: gzip. (line 196) -* gpg, using with tar: gzip. (line 196) +* gnupg, using with tar: gzip. (line 209) +* gpg, using with tar: gzip. (line 209) * gzip: gzip. (line 6) * hard links, dereferencing: hard links. (line 6) * header-col: Configuring Help Summary. @@ -6875,7 +6888,7 @@ Appendix J Index (line 127) * option syntax, traditional: Old Options. (line 6) * optional arguments to long options: Long Options. (line 39) -* optional arguments to short options: Short Options. (line 21) +* 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) @@ -6939,7 +6952,7 @@ Appendix J Index * SCCS, excluding files: exclude. (line 85) * short options: Short Options. (line 6) * short options with mandatory arguments: Short Options. (line 13) -* short options with optional arguments: Short Options. (line 21) +* short options with optional arguments: Short Options. (line 22) * short-opt-col: Configuring Help Summary. (line 79) * simple backup method: backup. (line 64) @@ -7006,7 +7019,7 @@ Appendix J Index * tar-snapshot-edit: Fixing Snapshot Files. (line 17) * tarcat: Tarcat. (line 6) -* TAR_ARCHIVE, checkpoint script environment: checkpoints. (line 167) +* TAR_ARCHIVE, checkpoint script environment: checkpoints. (line 182) * TAR_ARCHIVE, info script environment variable: Multi-Volume Archives. (line 105) * TAR_ARCHIVE, to-command environment: Writing to an External Program. @@ -7014,12 +7027,12 @@ Appendix J Index * TAR_ATIME, to-command environment: Writing to an External Program. (line 52) * TAR_BLOCKING_FACTOR, checkpoint script environment: checkpoints. - (line 170) + (line 185) * TAR_BLOCKING_FACTOR, info script environment variable: Multi-Volume Archives. (line 108) * TAR_BLOCKING_FACTOR, to-command environment: Writing to an External Program. (line 82) -* TAR_CHECKPOINT, checkpoint script environment: checkpoints. (line 173) +* TAR_CHECKPOINT, checkpoint script environment: checkpoints. (line 188) * TAR_CTIME, to-command environment: Writing to an External Program. (line 61) * TAR_FD, info script environment variable: Multi-Volume Archives. @@ -7028,7 +7041,7 @@ Appendix J Index (line 40) * TAR_FILETYPE, to-command environment: Writing to an External Program. (line 24) -* TAR_FORMAT, checkpoint script environment: checkpoints. (line 180) +* TAR_FORMAT, checkpoint script environment: checkpoints. (line 195) * TAR_FORMAT, info script environment variable: Multi-Volume Archives. (line 118) * TAR_FORMAT, to-command environment: Writing to an External Program. @@ -7046,14 +7059,14 @@ Appendix J Index (line 43) * TAR_SIZE, to-command environment: Writing to an External Program. (line 64) -* TAR_SUBCOMMAND, checkpoint script environment: checkpoints. (line 176) +* TAR_SUBCOMMAND, checkpoint script environment: checkpoints. (line 191) * TAR_SUBCOMMAND, info script environment variable: Multi-Volume Archives. (line 114) * TAR_UID, to-command environment: Writing to an External Program. (line 67) * TAR_UNAME, to-command environment: Writing to an External Program. (line 46) -* TAR_VERSION, checkpoint script environment: checkpoints. (line 164) +* TAR_VERSION, checkpoint script environment: checkpoints. (line 179) * TAR_VERSION, info script environment variable: Multi-Volume Archives. (line 102) * TAR_VERSION, to-command environment: Writing to an External Program. @@ -7090,7 +7103,7 @@ Appendix J Index * Updating an archive: update. (line 6) * usage-indent: Configuring Help Summary. (line 155) -* Using encrypted archives: gzip. (line 196) +* Using encrypted archives: gzip. (line 209) * ustar archive format: ustar. (line 6) * v7 archive format: old. (line 6) * VCS, excluding files: exclude. (line 85) @@ -7110,6 +7123,7 @@ Appendix J Index * Volume label, listing: label. (line 27) * Volume number file: Multi-Volume Archives. (line 74) +* 'wait', checkpoint action: checkpoints. (line 151) * week in date strings: Relative items in date strings. (line 15) * Where is the archive?: file. (line 6) @@ -7126,4 +7140,5 @@ Appendix J Index (line 15) * yesterday in date strings: Relative items in date strings. (line 29) +* zstd: gzip. (line 6) diff --git a/doc/tar.texi b/doc/tar.texi index ce8508f5..71318f3e 100644 --- a/doc/tar.texi +++ b/doc/tar.texi @@ -1464,7 +1464,7 @@ tar: Removing leading '/' from member names /home/myself/practice/folk /home/myself/practice/jazz /home/myself/practice/collection.tar -$ @kbd{tar --test --file practice.tar} +$ @kbd{tar --list --file practice.tar} home/myself/practice/ home/myself/practice/blues home/myself/practice/folk @@ -1495,7 +1495,7 @@ home/myself/practice/blues home/myself/practice/folk home/myself/practice/jazz home/myself/practice/collection.tar -$ @kbd{tar --test --file practice.tar} +$ @kbd{tar --list --file practice.tar} home/myself/practice/ home/myself/practice/blues home/myself/practice/folk @@ -2553,6 +2553,12 @@ Wait for @var{time} seconds. @item ttyout=@var{string} Output @var{string} on the current console (@file{/dev/tty}). + +@item totals +Print statistics (see @pxref{totals}). + +@item wait=@var{signo} +Wait for signal @var{signo}. @end table Several @option{--checkpoint-action} options can be specified. The @@ -3713,6 +3719,9 @@ only attributes from the user namespace. @itemx -J Use @command{xz} for compressing or decompressing the archives. @xref{gzip}. +@item --zstd +Use @command{zstd} for compressing or decompressing the archives. @xref{gzip}. + @end table @node Short Option Summary @@ -3786,8 +3795,8 @@ them with the equivalent long option. @item -m @tab @ref{--touch}. -@item -o @tab When creating, @ref{--no-same-owner}, when extracting --- -@ref{--portability}. +@item -o @tab When extracting, same as @ref{--no-same-owner}. When creating, +-- @ref{--old-archive}. The latter usage is deprecated. It is retained for compatibility with the earlier versions of @GNUTAR{}. In future releases @@ -3968,7 +3977,7 @@ successfully. For example, @w{@samp{tar --version}} might print: @smallexample tar (GNU tar) @value{VERSION} -Copyright (C) 2013-2017 Free Software Foundation, Inc. +Copyright (C) 2013-2019 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. @@ -4449,6 +4458,25 @@ checkpoint: $ @kbd{tar -c --checkpoint=1000 --checkpoint-action=sleep=30} @end smallexample +@anchor{checkpoint wait} +@cindex @code{wait}, checkpoint action +The @code{wait=@var{signo}} action stops further execution until the +signal @var{signo} is delivered. Valid values for @var{signo} are: +@code{SIGHUP}, @code{SIGQUIT}, @code{SIGINT}, @code{SIGUSR1} and +@code{SIGUSR2}. The @samp{SIG} prefix is optional. For example: + +@example +$ @kbd{tar -c -f arc --checkpoint=1000 --checkpoint-action wait=USR1 .} +@end example + +In this example, @GNUTAR{} will stop archivation at each 1000th +checkpoint. wait until the @samp{SIGUSR1} signal is delivered, +and resume processing. + +This action is used by the @command{genfile} utility to perform +modifications on the input files upon hitting certain checkpoints +(@pxref{Exec Mode, genfile}). + @anchor{checkpoint exec} @cindex @code{exec}, checkpoint action Finally, the @code{exec} action executes a given external command. @@ -5477,7 +5505,7 @@ reproducible archives given a common timestamp for generated files while still retaining the original timestamps of untouched files. @smallexample -$ @kbd{tar -c -f archive.tar --clamp-mtime --mtime=@atchar{}$SOURCE_DATE_EPOCH .} +$ @kbd{tar -c -f archive.tar --clamp-mtime --mtime=@@$SOURCE_DATE_EPOCH .} @end smallexample @item --owner=@var{user} @@ -9520,24 +9548,32 @@ switch to @samp{posix}. @cindex lzma @cindex lzop @cindex compress +@cindex zstd @GNUTAR{} is able to create and read compressed archives. It supports a wide variety of compression programs, namely: @command{gzip}, @command{bzip2}, @command{lzip}, @command{lzma}, @command{lzop}, -@command{xz} and traditional @command{compress}. The latter is -supported mostly for backward compatibility, and we recommend +@command{zstd}, @command{xz} and traditional @command{compress}. The +latter is supported mostly for backward compatibility, and we recommend against using it, because it is by far less effective than the other compression programs@footnote{It also had patent problems in the past.}. Creating a compressed archive is simple: you just specify a @dfn{compression option} along with the usual archive creation -commands. The compression option is @option{-z} (@option{--gzip}) to -create a @command{gzip} compressed archive, @option{-j} -(@option{--bzip2}) to create a @command{bzip2} compressed archive, -@option{--lzip} to create an @asis{lzip} compressed archive, -@option{-J} (@option{--xz}) to create an @asis{XZ} archive, -@option{--lzma} to create an @asis{LZMA} compressed -archive, @option{--lzop} to create an @asis{LZOP} archive, and -@option{-Z} (@option{--compress}) to use @command{compress} program. +commands. Available compression options are summarized in the +table below: + +@multitable @columnfractions 0.4 0.2 0.4 +@headitem Long @tab Short @tab Archive format +@item @option{--gzip} @tab @option{-z} @tab @command{gzip} +@item @option{--bzip2} @tab @option{-j} @tab @command{bzip2} +@item @option{--xz} @tab @option{-J} @tab @command{xz} +@item @option{--lzip} @tab @tab @command{lzip} +@item @option{--lzma} @tab @tab @command{lzma} +@item @option{--lzop} @tab @tab @command{lzop} +@item @option{--zstd} @tab @tab @command{zstd} +@item @option{--compress} @tab @option{-Z} @tab @command{compress} +@end multitable + For example: @smallexample @@ -9658,6 +9694,10 @@ Filter the archive through @command{lzma}. @item --lzop Filter the archive through @command{lzop}. +@opindex zstd +@item --zstd +Filter the archive through @command{zstd}. + @opindex compress @opindex uncompress @item -Z @@ -9730,6 +9770,8 @@ suffix. The following suffixes are recognized: @item @samp{.tlz} @tab @command{lzma} @item @samp{.lzo} @tab @command{lzop} @item @samp{.xz} @tab @command{xz} +@item @samp{.zst} @tab @command{zstd} +@item @samp{.tzst} @tab @command{zstd} @end multitable @anchor{use-compress-program} diff --git a/doc/texify.sed b/doc/texify.sed index f48f2051..b67c018c 100644 --- a/doc/texify.sed +++ b/doc/texify.sed @@ -1,5 +1,4 @@ -# Copyright 2006-2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2006-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/doc/value.texi b/doc/value.texi index 790b1999..b2e14485 100644 --- a/doc/value.texi +++ b/doc/value.texi @@ -1,6 +1,5 @@ @c This is part of GNU tar manual. -@c Copyright 1992, 1994-1997, 1999-2006, 2013-2014, 2016-2017 Free -@c Software Foundation, Inc. +@c Copyright 1992-2019 Free Software Foundation, Inc. @c See file tar.texi for copying conditions. @macro GNUTAR diff --git a/doc/version.texi b/doc/version.texi index 0b311612..1b3ab5e4 100644 --- a/doc/version.texi +++ b/doc/version.texi @@ -1,4 +1,4 @@ -@set UPDATED 16 December 2017 -@set UPDATED-MONTH December 2017 -@set EDITION 1.30 -@set VERSION 1.30 +@set UPDATED 4 February 2019 +@set UPDATED-MONTH February 2019 +@set EDITION 1.32 +@set VERSION 1.32 diff --git a/gnu/Makefile.am b/gnu/Makefile.am index 276b528e..acbf88d3 100644 --- a/gnu/Makefile.am +++ b/gnu/Makefile.am @@ -1,6 +1,6 @@ ## DO NOT EDIT! GENERATED AUTOMATICALLY! ## Process this file with automake to produce Makefile.in. -# Copyright (C) 2002-2017 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 Free Software Foundation, Inc. # # This file is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -21,9 +21,105 @@ # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. -# Reproduce by: gnulib-tool --import --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 alloca areadlinkat-with-size argmatch argp argp-version-etc backupfile closeout configmake dirname error exclude exitfail extern-inline faccessat fchmodat fchownat fcntl-h fdopendir fdutimensat file-has-acl fileblocks fnmatch-gnu fprintftime 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 strtoimax strtol strtoul strtoumax symlinkat timespec timespec-sub unlinkat unlinkdir unlocked-io utimensat version-etc-fsf xalloc xalloc-die xgetcwd xstrtoumax xvasprintf - -AUTOMAKE_OPTIONS = 1.9.6 gnits subdir-objects +# Reproduce by: +# gnulib-tool --import --local-dir=gl \ +# --lib=libgnu \ +# --source-base=gnu \ +# --m4-base=m4 \ +# --doc-base=doc \ +# --tests-base=tests \ +# --aux-dir=build-aux \ +# --no-conditional-dependencies \ +# --no-libtool \ +# --macro-prefix=gl \ +# --avoid=lock \ +# alloca \ +# areadlinkat-with-size \ +# argmatch \ +# argp \ +# argp-version-etc \ +# backupfile \ +# closeout \ +# configmake \ +# dirname \ +# error \ +# exclude \ +# exitfail \ +# extern-inline \ +# faccessat \ +# fchmodat \ +# fchownat \ +# fcntl-h \ +# fdopendir \ +# fdutimensat \ +# file-has-acl \ +# fileblocks \ +# fnmatch-gnu \ +# fprintftime \ +# 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 \ +# strnlen \ +# strtoimax \ +# strtol \ +# strtoul \ +# strtoumax \ +# symlinkat \ +# timespec \ +# timespec-sub \ +# unlinkat \ +# unlinkdir \ +# unlocked-io \ +# utimensat \ +# version-etc-fsf \ +# xalloc \ +# xalloc-die \ +# xgetcwd \ +# xstrtoumax \ +# xvasprintf + +AUTOMAKE_OPTIONS = 1.11 gnits subdir-objects SUBDIRS = noinst_HEADERS = @@ -611,6 +707,14 @@ EXTRA_DIST += fcntl.in.h ## end gnulib module fcntl-h +## begin gnulib module fcntl-safer + +libgnu_a_SOURCES += creat-safer.c open-safer.c + +EXTRA_DIST += fcntl--.h fcntl-safer.h + +## end gnulib module fcntl-safer + ## begin gnulib module fd-hook libgnu_a_SOURCES += fd-hook.c @@ -712,29 +816,46 @@ EXTRA_libgnu_a_SOURCES += float.c itold.c ## begin gnulib module fnmatch + +EXTRA_DIST += fnmatch.c fnmatch_loop.c + +EXTRA_libgnu_a_SOURCES += fnmatch.c fnmatch_loop.c + +## end gnulib module fnmatch + +## begin gnulib module fnmatch-h + 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. +# We need the following in order to create <fnmatch.h>. if GL_GENERATE_FNMATCH_H -fnmatch.h: fnmatch.in.h $(top_builddir)/config.status $(ARG_NONNULL_H) +fnmatch.h: fnmatch.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) $(AM_V_GEN)rm -f $@-t $@ && \ - { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ - sed -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ + { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ + sed -e 's|@''GUARD_PREFIX''@|GL|g' \ + -e 's|@''HAVE_FNMATCH_H''@|$(HAVE_FNMATCH_H)|g' \ + -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ + -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ + -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ + -e 's|@''NEXT_FNMATCH_H''@|$(NEXT_FNMATCH_H)|g' \ + -e 's/@''GNULIB_FNMATCH''@/$(GNULIB_FNMATCH)/g' \ + -e 's|@''HAVE_FNMATCH''@|$(HAVE_FNMATCH)|g' \ + -e 's|@''REPLACE_FNMATCH''@|$(REPLACE_FNMATCH)|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)/fnmatch.in.h; \ } > $@-t && \ - mv -f $@-t $@ + mv $@-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 +EXTRA_DIST += fnmatch.in.h -## end gnulib module fnmatch +## end gnulib module fnmatch-h ## begin gnulib module fpending @@ -864,7 +985,7 @@ BUILT_SOURCES += $(GETOPT_H) $(GETOPT_CDEFS_H) # We need the following in order to create <getopt.h> when the system # doesn't have one that works with the given compiler. -getopt.h: getopt.in.h $(top_builddir)/config.status +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' \ @@ -1038,6 +1159,7 @@ inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_U -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/@''HAVE_IMAXDIV_T''@/$(HAVE_IMAXDIV_T)/g' \ -e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \ -e 's/@''REPLACE_STRTOUMAX''@/$(REPLACE_STRTOUMAX)/g' \ -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \ @@ -1083,6 +1205,7 @@ langinfo.h: langinfo.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_U -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_ALTMON''@|$(HAVE_LANGINFO_ALTMON)|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' \ @@ -1107,6 +1230,13 @@ EXTRA_libgnu_a_SOURCES += lchown.c ## end gnulib module lchown +## begin gnulib module libc-config + + +EXTRA_DIST += cdefs.h libc-config.h + +## end gnulib module libc-config + ## begin gnulib module limits-h BUILT_SOURCES += $(LIMITS_H) @@ -1155,75 +1285,9 @@ EXTRA_libgnu_a_SOURCES += at-func2.c linkat.c ## 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-$@ $@ +libgnu_a_SOURCES += localcharset.c -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 +EXTRA_DIST += localcharset.h ## end gnulib module localcharset @@ -1244,11 +1308,16 @@ locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \ -e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \ -e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \ + -e 's/@''GNULIB_LOCALENAME''@/$(GNULIB_LOCALENAME)/g' \ + -e 's|@''HAVE_NEWLOCALE''@|$(HAVE_NEWLOCALE)|g' \ -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \ + -e 's|@''HAVE_FREELOCALE''@|$(HAVE_FREELOCALE)|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_NEWLOCALE''@|$(REPLACE_NEWLOCALE)|g' \ -e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \ + -e 's|@''REPLACE_FREELOCALE''@|$(REPLACE_FREELOCALE)|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)' \ @@ -1320,7 +1389,7 @@ EXTRA_libgnu_a_SOURCES += malloc.c libgnu_a_SOURCES += malloca.c -EXTRA_DIST += malloca.h malloca.valgrind +EXTRA_DIST += malloca.h ## end gnulib module malloca @@ -1568,6 +1637,14 @@ EXTRA_DIST += openat.h ## end gnulib module openat-h +## begin gnulib module openat-safer + +libgnu_a_SOURCES += openat-safer.c + +EXTRA_DIST += fcntl--.h fcntl-safer.h + +## end gnulib module openat-safer + ## begin gnulib module opendir @@ -1577,6 +1654,14 @@ EXTRA_libgnu_a_SOURCES += opendir.c ## end gnulib module opendir +## begin gnulib module opendirat + +libgnu_a_SOURCES += opendirat.c + +EXTRA_DIST += opendirat.h + +## end gnulib module opendirat + ## begin gnulib module parse-datetime # This rule overrides the Automake generated .y.c rule, to ensure that the @@ -1728,15 +1813,15 @@ EXTRA_libgnu_a_SOURCES += renameat.c ## end gnulib module renameat -## begin gnulib module renameat2 +## begin gnulib module renameatu -libgnu_a_SOURCES += renameat2.c +libgnu_a_SOURCES += renameatu.c -EXTRA_DIST += at-func2.c renameat2.h +EXTRA_DIST += at-func2.c renameatu.h EXTRA_libgnu_a_SOURCES += at-func2.c -## end gnulib module renameat2 +## end gnulib module renameatu ## begin gnulib module rewinddir @@ -1776,7 +1861,7 @@ EXTRA_libgnu_a_SOURCES += rpmatch.c libgnu_a_SOURCES += safe-read.c -EXTRA_DIST += safe-read.h +EXTRA_DIST += safe-read.h sys-limits.h ## end gnulib module safe-read @@ -1784,7 +1869,7 @@ EXTRA_DIST += safe-read.h libgnu_a_SOURCES += safe-write.c -EXTRA_DIST += safe-read.c safe-write.h +EXTRA_DIST += safe-read.c safe-write.h sys-limits.h EXTRA_libgnu_a_SOURCES += safe-read.c @@ -1890,8 +1975,8 @@ signal.h: signal.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_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_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' \ @@ -2605,7 +2690,7 @@ strings.h: strings.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE -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/@''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' \ @@ -3022,6 +3107,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -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_GETPASS''@/$(GNULIB_GETPASS)/g' \ -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \ -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \ -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \ @@ -3065,6 +3151,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ + -e 's|@''HAVE_GETPASS''@|$(HAVE_GETPASS)|g' \ -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ @@ -3079,7 +3166,6 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ - -e 's|@''HAVE_TRUNCATE''@|$(HAVE_TRUNCATE)|g' \ -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ @@ -3091,6 +3177,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -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_TRUNCATE''@|$(HAVE_DECL_TRUNCATE)|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' \ @@ -3108,6 +3195,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ + -e 's|@''REPLACE_GETPASS''@|$(REPLACE_GETPASS)|g' \ -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ @@ -3249,7 +3337,7 @@ BUILT_SOURCES += $(UTIME_H) # We need the following in order to create <utime.h> when the system # doesn't have one that works with the given compiler. if GL_GENERATE_UTIME_H -utime.h: utime.in.h $(top_builddir)/config.status +utime.h: utime.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' \ diff --git a/gnu/Makefile.in b/gnu/Makefile.in index 28471b7e..7668e95d 100644 --- a/gnu/Makefile.in +++ b/gnu/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -14,7 +14,7 @@ @SET_MAKE@ -# Copyright (C) 2002-2017 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 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 @@ -35,12 +35,118 @@ # the same distribution terms as the rest of that program. # # Generated by gnulib-tool. -# Reproduce by: gnulib-tool --import --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 alloca areadlinkat-with-size argmatch argp argp-version-etc backupfile closeout configmake dirname error exclude exitfail extern-inline faccessat fchmodat fchownat fcntl-h fdopendir fdutimensat file-has-acl fileblocks fnmatch-gnu fprintftime 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 strtoimax strtol strtoul strtoumax symlinkat timespec timespec-sub unlinkat unlinkdir unlocked-io utimensat version-etc-fsf xalloc xalloc-die xgetcwd xstrtoumax xvasprintf +# Reproduce by: +# gnulib-tool --import --local-dir=gl \ +# --lib=libgnu \ +# --source-base=gnu \ +# --m4-base=m4 \ +# --doc-base=doc \ +# --tests-base=tests \ +# --aux-dir=build-aux \ +# --no-conditional-dependencies \ +# --no-libtool \ +# --macro-prefix=gl \ +# --avoid=lock \ +# alloca \ +# areadlinkat-with-size \ +# argmatch \ +# argp \ +# argp-version-etc \ +# backupfile \ +# closeout \ +# configmake \ +# dirname \ +# error \ +# exclude \ +# exitfail \ +# extern-inline \ +# faccessat \ +# fchmodat \ +# fchownat \ +# fcntl-h \ +# fdopendir \ +# fdutimensat \ +# file-has-acl \ +# fileblocks \ +# fnmatch-gnu \ +# fprintftime \ +# 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 \ +# strnlen \ +# strtoimax \ +# strtol \ +# strtoul \ +# strtoumax \ +# symlinkat \ +# timespec \ +# timespec-sub \ +# unlinkat \ +# unlinkdir \ +# unlocked-io \ +# utimensat \ +# version-etc-fsf \ +# xalloc \ +# xalloc-die \ +# xgetcwd \ +# xstrtoumax \ +# xvasprintf VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -104,14 +210,11 @@ build_triplet = @build@ host_triplet = @host@ @LIBUNISTRING_COMPILE_UNIWIDTH_WIDTH_TRUE@am__append_1 = uniwidth/width.c subdir = gnu -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am alloca.c \ - parse-datetime.c $(top_srcdir)/build-aux/depcomp \ - $(top_srcdir)/build-aux/ylwrap $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ + $(top_srcdir)/m4/__inline.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/acl.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argp.m4 \ - $(top_srcdir)/m4/asm-underscore.m4 \ $(top_srcdir)/m4/backupfile.m4 $(top_srcdir)/m4/bison.m4 \ $(top_srcdir)/m4/btowc.m4 $(top_srcdir)/m4/builtin-expect.m4 \ $(top_srcdir)/m4/canonicalize.m4 \ @@ -131,11 +234,12 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/extern-inline.m4 \ $(top_srcdir)/m4/faccessat.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/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \ - $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpending.m4 \ + $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.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/flexmember.m4 \ + $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \ + $(top_srcdir)/m4/fnmatch_h.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 \ @@ -149,7 +253,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/group-member.m4 \ - $(top_srcdir)/m4/hard-locale.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.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 \ @@ -244,6 +347,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -266,24 +371,25 @@ am__libgnu_a_SOURCES_DIST = acl-errno-valid.c acl-internal.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 \ - fd-safer-flag.c dup-safer-flag.c fdutimensat.c file-has-acl.c \ - filenamecat-lgpl.c fprintftime.c full-write.h full-write.c \ - getprogname.h getprogname.c gettext.h gettime.c hard-locale.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 minmax.h modechange.c \ - nstrftime.c openat-die.c parse-datetime.y priv-set.c \ - progname.h progname.c quotearg.c renameat2.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 timespec-sub.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 + exclude.c exitfail.c chmodat.c chownat.c creat-safer.c \ + open-safer.c fd-hook.c fd-safer-flag.c dup-safer-flag.c \ + fdutimensat.c file-has-acl.c filenamecat-lgpl.c fprintftime.c \ + full-write.h full-write.c getprogname.h getprogname.c \ + gettext.h gettime.c hard-locale.c hash.c human.c imaxtostr.c \ + inttostr.c offtostr.c uinttostr.c umaxtostr.c localcharset.c \ + malloca.c mbchar.c mbscasecmp.c mbuiter.h mbuiter.c minmax.h \ + modechange.c nstrftime.c openat-die.c openat-safer.c \ + opendirat.c parse-datetime.y priv-set.c progname.h progname.c \ + quotearg.c renameatu.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 timespec-sub.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 = acl-errno-valid.$(OBJEXT) acl-internal.$(OBJEXT) \ @@ -303,30 +409,31 @@ am_libgnu_a_OBJECTS = acl-errno-valid.$(OBJEXT) acl-internal.$(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) \ - fd-safer-flag.$(OBJEXT) dup-safer-flag.$(OBJEXT) \ - fdutimensat.$(OBJEXT) file-has-acl.$(OBJEXT) \ - filenamecat-lgpl.$(OBJEXT) fprintftime.$(OBJEXT) \ - full-write.$(OBJEXT) getprogname.$(OBJEXT) gettime.$(OBJEXT) \ - hard-locale.$(OBJEXT) hash.$(OBJEXT) human.$(OBJEXT) \ - imaxtostr.$(OBJEXT) inttostr.$(OBJEXT) offtostr.$(OBJEXT) \ - uinttostr.$(OBJEXT) umaxtostr.$(OBJEXT) localcharset.$(OBJEXT) \ - malloca.$(OBJEXT) mbchar.$(OBJEXT) mbscasecmp.$(OBJEXT) \ - mbuiter.$(OBJEXT) modechange.$(OBJEXT) nstrftime.$(OBJEXT) \ - openat-die.$(OBJEXT) parse-datetime.$(OBJEXT) \ - priv-set.$(OBJEXT) progname.$(OBJEXT) quotearg.$(OBJEXT) \ - renameat2.$(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) \ - timespec-sub.$(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) + chmodat.$(OBJEXT) chownat.$(OBJEXT) creat-safer.$(OBJEXT) \ + open-safer.$(OBJEXT) fd-hook.$(OBJEXT) fd-safer-flag.$(OBJEXT) \ + dup-safer-flag.$(OBJEXT) fdutimensat.$(OBJEXT) \ + file-has-acl.$(OBJEXT) filenamecat-lgpl.$(OBJEXT) \ + fprintftime.$(OBJEXT) full-write.$(OBJEXT) \ + getprogname.$(OBJEXT) gettime.$(OBJEXT) hard-locale.$(OBJEXT) \ + hash.$(OBJEXT) human.$(OBJEXT) imaxtostr.$(OBJEXT) \ + inttostr.$(OBJEXT) offtostr.$(OBJEXT) uinttostr.$(OBJEXT) \ + umaxtostr.$(OBJEXT) localcharset.$(OBJEXT) malloca.$(OBJEXT) \ + mbchar.$(OBJEXT) mbscasecmp.$(OBJEXT) mbuiter.$(OBJEXT) \ + modechange.$(OBJEXT) nstrftime.$(OBJEXT) openat-die.$(OBJEXT) \ + openat-safer.$(OBJEXT) opendirat.$(OBJEXT) \ + parse-datetime.$(OBJEXT) priv-set.$(OBJEXT) progname.$(OBJEXT) \ + quotearg.$(OBJEXT) renameatu.$(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) timespec-sub.$(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@) @@ -409,6 +516,9 @@ am__define_uniq_tagged_files = \ ETAGS = etags CTAGS = ctags DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp $(top_srcdir)/build-aux/ylwrap \ + alloca.c parse-datetime.c DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) am__relativize = \ dir0=`pwd`; \ @@ -525,6 +635,7 @@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ +GNULIB_FNMATCH = @GNULIB_FNMATCH@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ @@ -557,6 +668,7 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ @@ -573,6 +685,7 @@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ +GNULIB_LOCALENAME = @GNULIB_LOCALENAME@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ @@ -811,6 +924,7 @@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ +HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ @@ -834,6 +948,9 @@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ +HAVE_FNMATCH = @HAVE_FNMATCH@ +HAVE_FNMATCH_H = @HAVE_FNMATCH_H@ +HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ @@ -846,13 +963,16 @@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ +HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ +HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ @@ -885,6 +1005,7 @@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ +HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ @@ -955,7 +1076,6 @@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ -HAVE_TRUNCATE = @HAVE_TRUNCATE@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ @@ -1010,8 +1130,6 @@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ -HOST_CPU = @HOST_CPU@ -HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ @@ -1056,6 +1174,7 @@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ +NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_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@ @@ -1083,6 +1202,7 @@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_FNMATCH_H = @NEXT_FNMATCH_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ @@ -1143,9 +1263,11 @@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ +REPLACE_FNMATCH = @REPLACE_FNMATCH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ +REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ @@ -1163,6 +1285,7 @@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ISATTY = @REPLACE_ISATTY@ @@ -1193,6 +1316,7 @@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ @@ -1372,7 +1496,7 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -AUTOMAKE_OPTIONS = 1.9.6 gnits subdir-objects +AUTOMAKE_OPTIONS = 1.11 gnits subdir-objects SUBDIRS = noinst_HEADERS = noinst_LIBRARIES = libgnu.a @@ -1399,39 +1523,40 @@ EXTRA_DIST = acl-internal.h acl.h acl_entries.c alignof.h alloca.c \ dirname.h dosname.h dup.c dup2.c errno.in.h error.c error.h \ euidaccess.c exclude.h exitfail.h at-func.c faccessat.c \ 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 flexmember.h float.c float.in.h \ - itold.c fnmatch.c fnmatch.in.h fnmatch_loop.c fpending.c \ - fpending.h stdio-impl.h fprintftime.h fseek.c fseeko.c \ - stdio-impl.h fstat.c stat-w32.c stat-w32.h at-func.c fstatat.c \ - futimens.c getcwd.c getcwd-lgpl.c getdelim.c getdtablesize.c \ - getgroups.c getline.c getopt-cdefs.in.h getopt-core.h \ - getopt-ext.h getopt-pfx-core.h getopt-pfx-ext.h getopt.c \ - getopt.in.h getopt1.c getopt_int.h getpagesize.c \ - $(top_srcdir)/build-aux/config.rpath gettimeofday.c \ - $(top_srcdir)/build-aux/gitlog-to-changelog group-member.c \ - hard-locale.h 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 limits.in.h link.c \ - at-func2.c linkat.c config.charset ref-add.sin ref-del.sin \ - locale.in.h localeconv.c localtime-buffer.c localtime-buffer.h \ - 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 mktime-internal.h mktime.c \ - modechange.h msvc-inval.c msvc-inval.h msvc-nothrow.c \ + fcntl.in.h fcntl--.h fcntl-safer.h fd-hook.h fdopendir.c \ + utimens.h fileblocks.c filename.h filenamecat.h flexmember.h \ + float.c float.in.h itold.c fnmatch.c fnmatch_loop.c \ + fnmatch.in.h fpending.c fpending.h stdio-impl.h fprintftime.h \ + fseek.c fseeko.c stdio-impl.h fstat.c stat-w32.c stat-w32.h \ + at-func.c fstatat.c futimens.c getcwd.c getcwd-lgpl.c \ + getdelim.c getdtablesize.c getgroups.c getline.c \ + getopt-cdefs.in.h getopt-core.h getopt-ext.h getopt-pfx-core.h \ + getopt-pfx-ext.h getopt.c getopt.in.h getopt1.c getopt_int.h \ + getpagesize.c $(top_srcdir)/build-aux/config.rpath \ + gettimeofday.c $(top_srcdir)/build-aux/gitlog-to-changelog \ + group-member.c hard-locale.h 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 cdefs.h libc-config.h limits.in.h link.c at-func2.c \ + linkat.c localcharset.h locale.in.h localeconv.c \ + localtime-buffer.c localtime-buffer.h lseek.c lstat.c malloc.c \ + malloc.c malloca.h 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 mktime-internal.h \ + mktime.c modechange.h msvc-inval.c msvc-inval.h msvc-nothrow.c \ msvc-nothrow.h nl_langinfo.c strftime.h 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 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 \ - renameat.c at-func2.c renameat2.h 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 at-func.c \ + open.c openat.c openat.h fcntl--.h fcntl-safer.h \ + dirent-private.h opendir.c opendirat.h parse-datetime.c \ + parse-datetime.h pathmax.h priv-set.h 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 renameat.c at-func2.c \ + renameatu.h dirent-private.h rewinddir.c rmdir.c root-uid.h \ + rpmatch.c safe-read.h sys-limits.h safe-read.c safe-write.h \ + sys-limits.h same-inode.h save-cwd.h savedir.h at-func.c \ selinux-at.c selinux-at.h getfilecon.c setenv.c signal.in.h \ sleep.c _Noreturn.h arg-nonnull.h c++defs.h unused-parameter.h \ warn-on-use.h snprintf.c stat-w32.c stat-w32.h stat.c \ @@ -1462,7 +1587,7 @@ BUILT_SOURCES = $(ALLOCA_H) configmake.h dirent.h $(ERRNO_H) fcntl.h \ stdlib.h string.h strings.h sys/stat.h sys/time.h sys/types.h \ $(SYSEXITS_H) time.h unistd.h $(LIBUNISTRING_UNITYPES_H) \ $(LIBUNISTRING_UNIWIDTH_H) $(UTIME_H) wchar.h wctype.h -SUFFIXES = .sed .sin +SUFFIXES = 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 \ @@ -1479,8 +1604,7 @@ MOSTLYCLEANFILES = core *.stackdump alloca.h alloca.h-t dirent.h \ unitypes.h-t uniwidth.h uniwidth.h-t utime.h utime.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 +CLEANFILES = configmake.h configmake.h-t DISTCLEANFILES = MAINTAINERCLEANFILES = parse-datetime.c # No GNU Make output. @@ -1497,24 +1621,25 @@ libgnu_a_SOURCES = acl-errno-valid.c acl-internal.c get-permissions.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 \ - fd-safer-flag.c dup-safer-flag.c fdutimensat.c file-has-acl.c \ - filenamecat-lgpl.c fprintftime.c full-write.h full-write.c \ - getprogname.h getprogname.c gettext.h gettime.c hard-locale.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 minmax.h modechange.c \ - nstrftime.c openat-die.c parse-datetime.y priv-set.c \ - progname.h progname.c quotearg.c renameat2.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 timespec-sub.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 + exclude.c exitfail.c chmodat.c chownat.c creat-safer.c \ + open-safer.c fd-hook.c fd-safer-flag.c dup-safer-flag.c \ + fdutimensat.c file-has-acl.c filenamecat-lgpl.c fprintftime.c \ + full-write.h full-write.c getprogname.h getprogname.c \ + gettext.h gettime.c hard-locale.c hash.c human.c imaxtostr.c \ + inttostr.c offtostr.c uinttostr.c umaxtostr.c localcharset.c \ + malloca.c mbchar.c mbscasecmp.c mbuiter.h mbuiter.c minmax.h \ + modechange.c nstrftime.c openat-die.c openat-safer.c \ + opendirat.c parse-datetime.y priv-set.c progname.h progname.c \ + quotearg.c renameatu.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 timespec-sub.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 = acl_entries.c alloca.c at-func.c at-func.c \ @@ -1552,8 +1677,6 @@ EXTRA_libgnu_a_SOURCES = acl_entries.c alloca.c at-func.c at-func.c \ # Do not rely on a 'configure'-time test for this, since the expression # might appear in an installed header, which is used by some other compiler. HAVE_INCLUDE_NEXT = (__GNUC__ || 60000000 <= __DECC_VER) -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 makefiles that @@ -1583,7 +1706,7 @@ all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive .SUFFIXES: -.SUFFIXES: .sed .sin .c .o .obj .y +.SUFFIXES: .c .o .obj .y $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) @for dep in $?; do \ case '$(am__configure_deps)' in \ @@ -1596,7 +1719,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits gnu/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnits gnu/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -1696,6 +1818,7 @@ distclean-compile: @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)/creat-safer.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@ @@ -1790,12 +1913,15 @@ distclean-compile: @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nstrftime.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@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open-safer.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/open.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat-die.Po@am__quote@ @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat-proc.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/openat-safer.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)/opendirat.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@ @@ -1816,7 +1942,7 @@ 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)/renameat2.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/renameatu.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@ @@ -2069,7 +2195,7 @@ distdir: $(DISTFILES) check-am: all-am check: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) check-recursive -all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) all-local +all-am: Makefile $(LIBRARIES) $(LTLIBRARIES) $(HEADERS) installdirs: installdirs-recursive installdirs-am: install: $(BUILT_SOURCES) @@ -2140,7 +2266,7 @@ install-dvi: install-dvi-recursive install-dvi-am: -install-exec-am: install-exec-local +install-exec-am: install-html: install-html-recursive @@ -2180,25 +2306,26 @@ ps: ps-recursive ps-am: -uninstall-am: uninstall-local +uninstall-am: .MAKE: $(am__recursive_targets) all check install install-am \ install-strip -.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am all-local \ - check check-am clean clean-generic clean-noinstLIBRARIES \ +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-noinstLIBRARIES \ clean-noinstLTLIBRARIES cscopelist-am ctags ctags-am distclean \ distclean-compile distclean-generic distclean-tags distdir dvi \ dvi-am html html-am info info-am install install-am \ install-data install-data-am install-dvi install-dvi-am \ - install-exec install-exec-am install-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-am uninstall \ - uninstall-am uninstall-local + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-local pdf \ + pdf-am ps ps-am tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile # We need the following in order to create <alloca.h> when the system @@ -2354,21 +2481,31 @@ fcntl.h: fcntl.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) @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. -@GL_GENERATE_FNMATCH_H_TRUE@fnmatch.h: fnmatch.in.h $(top_builddir)/config.status $(ARG_NONNULL_H) +# We need the following in order to create <fnmatch.h>. +@GL_GENERATE_FNMATCH_H_TRUE@fnmatch.h: fnmatch.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) @GL_GENERATE_FNMATCH_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ -@GL_GENERATE_FNMATCH_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ -@GL_GENERATE_FNMATCH_H_TRUE@ sed -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ +@GL_GENERATE_FNMATCH_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ +@GL_GENERATE_FNMATCH_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ +@GL_GENERATE_FNMATCH_H_TRUE@ -e 's|@''HAVE_FNMATCH_H''@|$(HAVE_FNMATCH_H)|g' \ +@GL_GENERATE_FNMATCH_H_TRUE@ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ +@GL_GENERATE_FNMATCH_H_TRUE@ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ +@GL_GENERATE_FNMATCH_H_TRUE@ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ +@GL_GENERATE_FNMATCH_H_TRUE@ -e 's|@''NEXT_FNMATCH_H''@|$(NEXT_FNMATCH_H)|g' \ +@GL_GENERATE_FNMATCH_H_TRUE@ -e 's/@''GNULIB_FNMATCH''@/$(GNULIB_FNMATCH)/g' \ +@GL_GENERATE_FNMATCH_H_TRUE@ -e 's|@''HAVE_FNMATCH''@|$(HAVE_FNMATCH)|g' \ +@GL_GENERATE_FNMATCH_H_TRUE@ -e 's|@''REPLACE_FNMATCH''@|$(REPLACE_FNMATCH)|g' \ +@GL_GENERATE_FNMATCH_H_TRUE@ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ +@GL_GENERATE_FNMATCH_H_TRUE@ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ +@GL_GENERATE_FNMATCH_H_TRUE@ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ @GL_GENERATE_FNMATCH_H_TRUE@ < $(srcdir)/fnmatch.in.h; \ @GL_GENERATE_FNMATCH_H_TRUE@ } > $@-t && \ -@GL_GENERATE_FNMATCH_H_TRUE@ mv -f $@-t $@ +@GL_GENERATE_FNMATCH_H_TRUE@ mv $@-t $@ @GL_GENERATE_FNMATCH_H_FALSE@fnmatch.h: $(top_builddir)/config.status @GL_GENERATE_FNMATCH_H_FALSE@ rm -f $@ # We need the following in order to create <getopt.h> when the system # doesn't have one that works with the given compiler. -getopt.h: getopt.in.h $(top_builddir)/config.status +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' \ @@ -2413,6 +2550,7 @@ inttypes.h: inttypes.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_U -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/@''HAVE_IMAXDIV_T''@/$(HAVE_IMAXDIV_T)/g' \ -e 's/@''REPLACE_STRTOIMAX''@/$(REPLACE_STRTOIMAX)/g' \ -e 's/@''REPLACE_STRTOUMAX''@/$(REPLACE_STRTOUMAX)/g' \ -e 's/@''INT32_MAX_LT_INTMAX_MAX''@/$(INT32_MAX_LT_INTMAX_MAX)/g' \ @@ -2440,6 +2578,7 @@ langinfo.h: langinfo.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_U -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_ALTMON''@|$(HAVE_LANGINFO_ALTMON)|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' \ @@ -2466,65 +2605,6 @@ langinfo.h: langinfo.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_U @GL_GENERATE_LIMITS_H_FALSE@limits.h: $(top_builddir)/config.status @GL_GENERATE_LIMITS_H_FALSE@ rm -f $@ -# We need the following in order to 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 -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-$@ $@ -.sin.sed: - $(AM_V_GEN)rm -f t-$@ $@ && \ - 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) @@ -2538,11 +2618,16 @@ locale.h: locale.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's/@''GNULIB_LOCALECONV''@/$(GNULIB_LOCALECONV)/g' \ -e 's/@''GNULIB_SETLOCALE''@/$(GNULIB_SETLOCALE)/g' \ -e 's/@''GNULIB_DUPLOCALE''@/$(GNULIB_DUPLOCALE)/g' \ + -e 's/@''GNULIB_LOCALENAME''@/$(GNULIB_LOCALENAME)/g' \ + -e 's|@''HAVE_NEWLOCALE''@|$(HAVE_NEWLOCALE)|g' \ -e 's|@''HAVE_DUPLOCALE''@|$(HAVE_DUPLOCALE)|g' \ + -e 's|@''HAVE_FREELOCALE''@|$(HAVE_FREELOCALE)|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_NEWLOCALE''@|$(REPLACE_NEWLOCALE)|g' \ -e 's|@''REPLACE_DUPLOCALE''@|$(REPLACE_DUPLOCALE)|g' \ + -e 's|@''REPLACE_FREELOCALE''@|$(REPLACE_FREELOCALE)|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)' \ @@ -2600,8 +2685,8 @@ signal.h: signal.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -e 's|@''NEXT_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_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' \ @@ -3044,7 +3129,7 @@ strings.h: strings.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(WARN_ON_USE -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/@''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' \ @@ -3248,6 +3333,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -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_GETPASS''@/$(GNULIB_GETPASS)/g' \ -e 's/@''GNULIB_GETUSERSHELL''@/$(GNULIB_GETUSERSHELL)/g' \ -e 's/@''GNULIB_GROUP_MEMBER''@/$(GNULIB_GROUP_MEMBER)/g' \ -e 's/@''GNULIB_ISATTY''@/$(GNULIB_ISATTY)/g' \ @@ -3291,6 +3377,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''HAVE_GETGROUPS''@|$(HAVE_GETGROUPS)|g' \ -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \ -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \ + -e 's|@''HAVE_GETPASS''@|$(HAVE_GETPASS)|g' \ -e 's|@''HAVE_GROUP_MEMBER''@|$(HAVE_GROUP_MEMBER)|g' \ -e 's|@''HAVE_LCHOWN''@|$(HAVE_LCHOWN)|g' \ -e 's|@''HAVE_LINK''@|$(HAVE_LINK)|g' \ @@ -3305,7 +3392,6 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''HAVE_SLEEP''@|$(HAVE_SLEEP)|g' \ -e 's|@''HAVE_SYMLINK''@|$(HAVE_SYMLINK)|g' \ -e 's|@''HAVE_SYMLINKAT''@|$(HAVE_SYMLINKAT)|g' \ - -e 's|@''HAVE_TRUNCATE''@|$(HAVE_TRUNCATE)|g' \ -e 's|@''HAVE_UNLINKAT''@|$(HAVE_UNLINKAT)|g' \ -e 's|@''HAVE_USLEEP''@|$(HAVE_USLEEP)|g' \ -e 's|@''HAVE_DECL_ENVIRON''@|$(HAVE_DECL_ENVIRON)|g' \ @@ -3317,6 +3403,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -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_TRUNCATE''@|$(HAVE_DECL_TRUNCATE)|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' \ @@ -3334,6 +3421,7 @@ unistd.h: unistd.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H -e 's|@''REPLACE_GETLOGIN_R''@|$(REPLACE_GETLOGIN_R)|g' \ -e 's|@''REPLACE_GETGROUPS''@|$(REPLACE_GETGROUPS)|g' \ -e 's|@''REPLACE_GETPAGESIZE''@|$(REPLACE_GETPAGESIZE)|g' \ + -e 's|@''REPLACE_GETPASS''@|$(REPLACE_GETPASS)|g' \ -e 's|@''REPLACE_ISATTY''@|$(REPLACE_ISATTY)|g' \ -e 's|@''REPLACE_LCHOWN''@|$(REPLACE_LCHOWN)|g' \ -e 's|@''REPLACE_LINK''@|$(REPLACE_LINK)|g' \ @@ -3378,7 +3466,7 @@ uniwidth.h: uniwidth.in.h # We need the following in order to create <utime.h> when the system # doesn't have one that works with the given compiler. -@GL_GENERATE_UTIME_H_TRUE@utime.h: utime.in.h $(top_builddir)/config.status +@GL_GENERATE_UTIME_H_TRUE@utime.h: utime.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) @GL_GENERATE_UTIME_H_TRUE@ $(AM_V_GEN)rm -f $@-t $@ && \ @GL_GENERATE_UTIME_H_TRUE@ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ @GL_GENERATE_UTIME_H_TRUE@ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ diff --git a/gnu/_Noreturn.h b/gnu/_Noreturn.h index c44ad89b..94fdfaf0 100644 --- a/gnu/_Noreturn.h +++ b/gnu/_Noreturn.h @@ -1,8 +1,12 @@ -#if !defined _Noreturn && __STDC_VERSION__ < 201112 -# if (3 <= __GNUC__ || (__GNUC__ == 2 && 8 <= __GNUC_MINOR__) \ - || 0x5110 <= __SUNPRO_C) +#ifndef _Noreturn +# if 201103 <= (defined __cplusplus ? __cplusplus : 0) +# define _Noreturn [[noreturn]] +# elif (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ + || 4 < __GNUC__ + (7 <= __GNUC_MINOR__)) + /* _Noreturn works as-is. */ +# elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C # define _Noreturn __attribute__ ((__noreturn__)) -# elif 1200 <= _MSC_VER +# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) # define _Noreturn __declspec (noreturn) # else # define _Noreturn diff --git a/gnu/acl-errno-valid.c b/gnu/acl-errno-valid.c index 1e96974d..99ddf3bb 100644 --- a/gnu/acl-errno-valid.c +++ b/gnu/acl-errno-valid.c @@ -1,6 +1,6 @@ /* Test whether ACLs are well supported on this system. - Copyright 2013-2017 Free Software Foundation, Inc. + Copyright 2013-2019 Free Software Foundation, Inc. This program is free 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/acl-internal.c b/gnu/acl-internal.c index 63e6b6b9..cc42183f 100644 --- a/gnu/acl-internal.c +++ b/gnu/acl-internal.c @@ -1,6 +1,6 @@ /* Test whether a file has a nontrivial ACL. -*- coding: utf-8 -*- - Copyright (C) 2002-2003, 2005-2017 Free Software Foundation, Inc. + Copyright (C) 2002-2003, 2005-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -23,7 +23,7 @@ #include "acl-internal.h" -#if USE_ACL && HAVE_ACL_GET_FILE +#if USE_ACL && HAVE_ACL_GET_FILE /* Linux, FreeBSD, Mac OS X, IRIX, Tru64, Cygwin >= 2.5 */ # if HAVE_ACL_TYPE_EXTENDED /* Mac OS X */ @@ -37,7 +37,7 @@ acl_extended_nontrivial (acl_t acl) return (acl_entries (acl) > 0); } -# else /* Linux, FreeBSD, IRIX, Tru64 */ +# else /* Linux, FreeBSD, IRIX, Tru64, Cygwin >= 2.5 */ /* ACL is an ACL, from a file, stored as type ACL_TYPE_ACCESS. Return 1 if the given ACL is non-trivial. @@ -51,7 +51,7 @@ acl_access_nontrivial (acl_t acl) 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 */ +# if HAVE_ACL_FIRST_ENTRY /* Linux, FreeBSD, Cygwin >= 2.5 */ acl_entry_t ace; int got_one; @@ -124,7 +124,7 @@ acl_default_nontrivial (acl_t acl) # endif -#elif USE_ACL && HAVE_FACL && defined GETACL /* Solaris, Cygwin, not HP-UX */ +#elif USE_ACL && HAVE_FACL && defined GETACL /* Solaris, Cygwin < 2.5, not HP-UX */ /* Test an ACL retrieved with GETACL. Return 1 if the given ACL, consisting of COUNT entries, is non-trivial. @@ -355,7 +355,7 @@ acl_nontrivial (int count, struct acl_entry *entries) struct acl_entry *ace = &entries[i]; if (ace->uid != ACL_NSUSER && ace->gid != ACL_NSGROUP) - return 1; + return 1; } return 0; } @@ -479,7 +479,7 @@ void free_permission_context (struct permission_context *ctx) { #if USE_ACL -# if HAVE_ACL_GET_FILE /* Linux, FreeBSD, Mac OS X, IRIX, Tru64 */ +# if HAVE_ACL_GET_FILE /* Linux, FreeBSD, Mac OS X, IRIX, Tru64, Cygwin >= 2.5 */ if (ctx->acl) acl_free (ctx->acl); # if !HAVE_ACL_TYPE_EXTENDED @@ -487,7 +487,7 @@ free_permission_context (struct permission_context *ctx) acl_free (ctx->default_acl); # endif -# elif defined GETACL /* Solaris, Cygwin */ +# elif defined GETACL /* Solaris, Cygwin < 2.5 */ free (ctx->entries); # ifdef ACE_GETACL free (ctx->ace_entries); diff --git a/gnu/acl-internal.h b/gnu/acl-internal.h index ebd24217..05833efa 100644 --- a/gnu/acl-internal.h +++ b/gnu/acl-internal.h @@ -1,6 +1,6 @@ /* Internal implementation of access control lists. -*- coding: utf-8 -*- - Copyright (C) 2002-2003, 2005-2017 Free Software Foundation, Inc. + Copyright (C) 2002-2003, 2005-2019 Free Software Foundation, Inc. This 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 @@ # define GETACLCNT ACL_CNT #endif -/* On Linux, additional ACL related API is available in <acl/libacl.h>. */ +/* On Linux and Cygwin >= 2.5, additional ACL related API is available in + <acl/libacl.h>. */ #ifdef HAVE_ACL_LIBACL_H # include <acl/libacl.h> #endif @@ -72,7 +73,7 @@ _GL_INLINE_HEADER_BEGIN # if HAVE_ACL_GET_FILE /* POSIX 1003.1e (draft 17 -- abandoned) specific version. */ -/* Linux, FreeBSD, Mac OS X, IRIX, Tru64 */ +/* Linux, FreeBSD, Mac OS X, IRIX, Tru64, Cygwin >= 2.5 */ # ifndef MIN_ACL_ENTRIES # define MIN_ACL_ENTRIES 4 @@ -122,7 +123,10 @@ rpl_acl_set_fd (int fd, acl_t acl) # endif /* Linux-specific */ -# ifndef HAVE_ACL_EXTENDED_FILE +/* Cygwin >= 2.5 implements this function, but it returns 1 for all + directories, thus is unusable. */ +# if !defined HAVE_ACL_EXTENDED_FILE || defined __CYGWIN__ +# undef HAVE_ACL_EXTENDED_FILE # define HAVE_ACL_EXTENDED_FILE false # define acl_extended_file(name) (-1) # endif @@ -163,7 +167,7 @@ extern int acl_access_nontrivial (acl_t); extern int acl_default_nontrivial (acl_t); # endif -# elif HAVE_FACL && defined GETACL /* Solaris, Cygwin, not HP-UX */ +# elif HAVE_FACL && defined GETACL /* Solaris, Cygwin < 2.5, not HP-UX */ /* Set to 0 if a file's mode is stored independently from the ACL. */ # if defined __CYGWIN__ /* Cygwin */ @@ -256,14 +260,14 @@ extern int acl_nontrivial (int count, struct acl *entries); struct permission_context { mode_t mode; #if USE_ACL -# if HAVE_ACL_GET_FILE /* Linux, FreeBSD, Mac OS X, IRIX, Tru64 */ +# if HAVE_ACL_GET_FILE /* Linux, FreeBSD, Mac OS X, IRIX, Tru64, Cygwin >= 2.5 */ acl_t acl; # if !HAVE_ACL_TYPE_EXTENDED acl_t default_acl; # endif bool acls_not_supported; -# elif defined GETACL /* Solaris, Cygwin */ +# elif defined GETACL /* Solaris, Cygwin < 2.5 */ int count; aclent_t *entries; # ifdef ACE_GETACL @@ -293,10 +297,6 @@ struct permission_context { int get_permissions (const char *, int, mode_t, struct permission_context *); int set_permissions (struct permission_context *, const char *, int); -void free_permission_context (struct permission_context *) -#if ! (defined USE_ACL && (HAVE_ACL_GET_FILE || defined GETACL)) - _GL_ATTRIBUTE_CONST -#endif - ; +void free_permission_context (struct permission_context *); _GL_INLINE_HEADER_END diff --git a/gnu/acl.h b/gnu/acl.h index d3b04802..904606df 100644 --- a/gnu/acl.h +++ b/gnu/acl.h @@ -1,6 +1,6 @@ /* acl.c - access control lists - Copyright (C) 2002, 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2002, 2008-2019 Free Software Foundation, Inc. This program is free 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/acl_entries.c b/gnu/acl_entries.c index c7efaefd..19ac3c3b 100644 --- a/gnu/acl_entries.c +++ b/gnu/acl_entries.c @@ -1,6 +1,6 @@ /* Return the number of entries in an ACL. - Copyright (C) 2002-2003, 2005-2017 Free Software Foundation, Inc. + Copyright (C) 2002-2003, 2005-2019 Free Software Foundation, Inc. This 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,7 +22,7 @@ #include "acl-internal.h" /* This file assumes POSIX-draft like ACLs - (Linux, FreeBSD, Mac OS X, IRIX, Tru64). */ + (Linux, FreeBSD, Mac OS X, IRIX, Tru64, Cygwin >= 2.5). */ /* Return the number of entries in ACL. Return -1 and set errno upon failure to determine it. */ @@ -34,7 +34,7 @@ acl_entries (acl_t acl) if (acl != NULL) { -#if HAVE_ACL_FIRST_ENTRY /* Linux, FreeBSD, Mac OS X */ +#if HAVE_ACL_FIRST_ENTRY /* Linux, FreeBSD, Mac OS X, Cygwin >= 2.5 */ # 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. */ @@ -45,7 +45,7 @@ acl_entries (acl_t acl) got_one >= 0; got_one = acl_get_entry (acl, ACL_NEXT_ENTRY, &ace)) count++; -# else /* Linux, FreeBSD */ +# else /* Linux, FreeBSD, Cygwin >= 2.5 */ /* acl_get_entry returns 1 when it successfully fetches an entry, and 0 at the end. */ acl_entry_t ace; diff --git a/gnu/alignof.h b/gnu/alignof.h index 21761d7b..46f4ad09 100644 --- a/gnu/alignof.h +++ b/gnu/alignof.h @@ -1,5 +1,5 @@ /* Determine alignment of types. - Copyright (C) 2003-2004, 2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2003-2004, 2006, 2009-2019 Free Software Foundation, Inc. This program is free 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/alloca.in.h b/gnu/alloca.in.h index 1881e74f..ec81e119 100644 --- a/gnu/alloca.in.h +++ b/gnu/alloca.in.h @@ -1,6 +1,6 @@ /* Memory allocation on the stack. - Copyright (C) 1995, 1999, 2001-2004, 2006-2017 Free Software Foundation, + Copyright (C) 1995, 1999, 2001-2004, 2006-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it diff --git a/gnu/allocator.h b/gnu/allocator.h index fc3d646a..5a632ba6 100644 --- a/gnu/allocator.h +++ b/gnu/allocator.h @@ -1,6 +1,6 @@ /* Memory allocators such as malloc+free. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This program is free 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/anytostr.c b/gnu/anytostr.c index 9bf9e15f..18902885 100644 --- a/gnu/anytostr.c +++ b/gnu/anytostr.c @@ -1,6 +1,6 @@ /* anytostr.c -- convert integers to printable strings - Copyright (C) 2001, 2006, 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2001, 2006, 2008-2019 Free Software Foundation, Inc. This program is free 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/areadlink-with-size.c b/gnu/areadlink-with-size.c index dbca6fcd..eacad3f6 100644 --- a/gnu/areadlink-with-size.c +++ b/gnu/areadlink-with-size.c @@ -1,7 +1,7 @@ /* 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-2017 Free Software Foundation, Inc. + Copyright (C) 2001, 2003-2007, 2009-2019 Free Software Foundation, Inc. This program is free 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/areadlink.c b/gnu/areadlink.c index f7609b1c..05943562 100644 --- a/gnu/areadlink.c +++ b/gnu/areadlink.c @@ -1,7 +1,7 @@ /* areadlink.c -- readlink wrapper to return the link name in malloc'd storage Unlike xreadlink and xreadlink_with_size, don't ever call exit. - Copyright (C) 2001, 2003-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2001, 2003-2007, 2009-2019 Free Software Foundation, Inc. This program is free 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/areadlink.h b/gnu/areadlink.h index 87efd508..ddcd06d7 100644 --- a/gnu/areadlink.h +++ b/gnu/areadlink.h @@ -1,6 +1,6 @@ /* Read symbolic links without size limitation. - Copyright (C) 2001, 2003-2004, 2007, 2009-2017 Free Software Foundation, + Copyright (C) 2001, 2003-2004, 2007, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/areadlinkat-with-size.c b/gnu/areadlinkat-with-size.c index fa3773fc..ed00b98e 100644 --- a/gnu/areadlinkat-with-size.c +++ b/gnu/areadlinkat-with-size.c @@ -1,7 +1,7 @@ /* readlinkat wrapper to return the link name in malloc'd storage. Unlike xreadlinkat, only call exit on failure to change directory. - Copyright (C) 2001, 2003-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2001, 2003-2007, 2009-2019 Free Software Foundation, Inc. This program is free 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/areadlinkat.c b/gnu/areadlinkat.c index 65e7334a..6dfbb610 100644 --- a/gnu/areadlinkat.c +++ b/gnu/areadlinkat.c @@ -1,7 +1,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-2017 Free Software Foundation, Inc. + Copyright (C) 2001, 2003-2007, 2009-2019 Free Software Foundation, Inc. This program is free 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/arg-nonnull.h b/gnu/arg-nonnull.h index 61ee0712..ad8c26c2 100644 --- a/gnu/arg-nonnull.h +++ b/gnu/arg-nonnull.h @@ -1,5 +1,5 @@ /* A C macro for declaring that specific arguments must not be NULL. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published diff --git a/gnu/argmatch.c b/gnu/argmatch.c index 59858ec6..b9a3e400 100644 --- a/gnu/argmatch.c +++ b/gnu/argmatch.c @@ -1,6 +1,6 @@ /* argmatch.c -- find a match for a string in an array - Copyright (C) 1990, 1998-1999, 2001-2007, 2009-2017 Free Software + Copyright (C) 1990, 1998-1999, 2001-2007, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/argmatch.h b/gnu/argmatch.h index 84508545..51d28858 100644 --- a/gnu/argmatch.h +++ b/gnu/argmatch.h @@ -1,6 +1,6 @@ /* argmatch.h -- definitions and prototypes for argmatch.c - Copyright (C) 1990, 1998-1999, 2001-2002, 2004-2005, 2009-2017 Free Software + Copyright (C) 1990, 1998-1999, 2001-2002, 2004-2005, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/argp-ba.c b/gnu/argp-ba.c index c2aadf00..fcf60c82 100644 --- a/gnu/argp-ba.c +++ b/gnu/argp-ba.c @@ -1,5 +1,5 @@ /* Default definition for ARGP_PROGRAM_BUG_ADDRESS. - Copyright (C) 1996-2017 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu>. diff --git a/gnu/argp-eexst.c b/gnu/argp-eexst.c index 823e3077..06b025d4 100644 --- a/gnu/argp-eexst.c +++ b/gnu/argp-eexst.c @@ -1,5 +1,5 @@ /* Default definition for ARGP_ERR_EXIT_STATUS - Copyright (C) 1997, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1997, 2009-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu>. diff --git a/gnu/argp-fmtstream.c b/gnu/argp-fmtstream.c index 92333fe7..ba6a407f 100644 --- a/gnu/argp-fmtstream.c +++ b/gnu/argp-fmtstream.c @@ -1,5 +1,5 @@ /* Word-wrapping and line-truncating streams - Copyright (C) 1997-2017 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu>. diff --git a/gnu/argp-fmtstream.h b/gnu/argp-fmtstream.h index f6deebdc..0cc88525 100644 --- a/gnu/argp-fmtstream.h +++ b/gnu/argp-fmtstream.h @@ -1,5 +1,5 @@ /* Word-wrapping and line-truncating streams. - Copyright (C) 1997-2017 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu>. diff --git a/gnu/argp-fs-xinl.c b/gnu/argp-fs-xinl.c index c88fd165..a2e843c8 100644 --- a/gnu/argp-fs-xinl.c +++ b/gnu/argp-fs-xinl.c @@ -1,5 +1,5 @@ /* Real definitions for extern inline functions in argp-fmtstream.h - Copyright (C) 1997-2017 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu>. diff --git a/gnu/argp-help.c b/gnu/argp-help.c index 0a98c682..e5375a0f 100644 --- a/gnu/argp-help.c +++ b/gnu/argp-help.c @@ -1,5 +1,5 @@ /* Hierarchical argument parsing help output - Copyright (C) 1995-2017 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu>. diff --git a/gnu/argp-namefrob.h b/gnu/argp-namefrob.h index a1c9a01a..2fb9ac49 100644 --- a/gnu/argp-namefrob.h +++ b/gnu/argp-namefrob.h @@ -1,5 +1,5 @@ /* Name frobnication for compiling argp outside of glibc - Copyright (C) 1997-2017 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu>. diff --git a/gnu/argp-parse.c b/gnu/argp-parse.c index 9a86044c..6dec5731 100644 --- a/gnu/argp-parse.c +++ b/gnu/argp-parse.c @@ -1,5 +1,5 @@ /* Hierarchical argument parsing, layered over getopt - Copyright (C) 1995-2017 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu>. diff --git a/gnu/argp-pin.c b/gnu/argp-pin.c index 7c05d1dd..ece7423e 100644 --- a/gnu/argp-pin.c +++ b/gnu/argp-pin.c @@ -1,5 +1,5 @@ /* Full and short program names for argp module - Copyright (C) 2005, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2005, 2009-2019 Free Software Foundation, Inc. This program is free 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/argp-pv.c b/gnu/argp-pv.c index 000bbb21..f76b365a 100644 --- a/gnu/argp-pv.c +++ b/gnu/argp-pv.c @@ -1,5 +1,5 @@ /* Default definition for ARGP_PROGRAM_VERSION. - Copyright (C) 1996-2017 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu>. diff --git a/gnu/argp-pvh.c b/gnu/argp-pvh.c index c25d5c4b..be73e335 100644 --- a/gnu/argp-pvh.c +++ b/gnu/argp-pvh.c @@ -1,5 +1,5 @@ /* Default definition for ARGP_PROGRAM_VERSION_HOOK. - Copyright (C) 1996-2017 Free Software Foundation, Inc. + Copyright (C) 1996-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu>. diff --git a/gnu/argp-version-etc.c b/gnu/argp-version-etc.c index 7562fb96..0c7e0af7 100644 --- a/gnu/argp-version-etc.c +++ b/gnu/argp-version-etc.c @@ -1,5 +1,5 @@ /* Version hook for Argp. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free 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/argp-version-etc.h b/gnu/argp-version-etc.h index 0b8969d3..b9a1d2eb 100644 --- a/gnu/argp-version-etc.h +++ b/gnu/argp-version-etc.h @@ -1,5 +1,5 @@ /* Version hook for Argp. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free 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/argp-xinl.c b/gnu/argp-xinl.c index cfaf996b..ebc032f6 100644 --- a/gnu/argp-xinl.c +++ b/gnu/argp-xinl.c @@ -1,5 +1,5 @@ /* Real definitions for extern inline functions in argp.h - Copyright (C) 1997-2017 Free Software Foundation, Inc. + Copyright (C) 1997-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu>. diff --git a/gnu/argp.h b/gnu/argp.h index 19813c85..317ac034 100644 --- a/gnu/argp.h +++ b/gnu/argp.h @@ -1,5 +1,5 @@ /* Hierarchical argument parsing, layered over getopt. - Copyright (C) 1995-2017 Free Software Foundation, Inc. + Copyright (C) 1995-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Written by Miles Bader <miles@gnu.ai.mit.edu>. diff --git a/gnu/asnprintf.c b/gnu/asnprintf.c index b0a01fcb..d2a8c097 100644 --- a/gnu/asnprintf.c +++ b/gnu/asnprintf.c @@ -1,5 +1,5 @@ /* Formatted output to strings. - Copyright (C) 1999, 2002, 2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2006, 2009-2019 Free Software Foundation, Inc. This program is free 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/asprintf.c b/gnu/asprintf.c index 00bb9d74..6cbd0629 100644 --- a/gnu/asprintf.c +++ b/gnu/asprintf.c @@ -1,5 +1,5 @@ /* Formatted output to strings. - Copyright (C) 1999, 2002, 2006-2007, 2009-2017 Free Software Foundation, + Copyright (C) 1999, 2002, 2006-2007, 2009-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify diff --git a/gnu/assure.h b/gnu/assure.h index 342b126c..c21b6a6b 100644 --- a/gnu/assure.h +++ b/gnu/assure.h @@ -1,6 +1,6 @@ /* Run-time assert-like macros. - Copyright (C) 2014-2017 Free Software Foundation, Inc. + Copyright (C) 2014-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -23,7 +23,7 @@ #include <assert.h> /* Check E's value at runtime, and report an error and abort if not. - However, do nothng if NDEBUG is defined. + However, do nothing if NDEBUG is defined. Unlike standard 'assert', this macro always compiles E even when NDEBUG is defined, so as to catch typos and avoid some GCC warnings. */ diff --git a/gnu/at-func.c b/gnu/at-func.c index 2a3e375e..d2e63191 100644 --- a/gnu/at-func.c +++ b/gnu/at-func.c @@ -1,5 +1,5 @@ /* Define at-style functions like fstatat, unlinkat, fchownat, etc. - Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2006, 2009-2019 Free Software Foundation, Inc. This program is free 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/at-func2.c b/gnu/at-func2.c index fbf3f6cb..eaa256cb 100644 --- a/gnu/at-func2.c +++ b/gnu/at-func2.c @@ -1,5 +1,5 @@ /* Define 2-FD at-style functions like linkat or renameat. - Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2006, 2009-2019 Free Software Foundation, Inc. This program is free 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/backup-find.c b/gnu/backup-find.c index 4c087414..c038ae6d 100644 --- a/gnu/backup-find.c +++ b/gnu/backup-find.c @@ -1,6 +1,6 @@ /* backupfile.c -- make Emacs style backup file names - Copyright 2017 Free Software Foundation, Inc. + Copyright 2017-2019 Free Software Foundation, Inc. This 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,14 +24,16 @@ #include <stdlib.h> -/* Return the name of a backup file for the existing file FILE, - allocated with malloc. Report an error and exit if out of memory. - Do not call this function if backup_type == no_backups. */ +/* Relative to DIR_FD, return the name of a backup file for the + existing file FILE, allocated with malloc. Report an error and + exit if out of memory. Do not call this function if + backup_type == no_backups. */ char * -find_backup_file_name (char const *file, enum backup_type backup_type) +find_backup_file_name (int dir_fd, char const *file, + enum backup_type backup_type) { - char *result = backupfile_internal (file, backup_type, false); + char *result = backupfile_internal (dir_fd, file, backup_type, false); if (!result) xalloc_die (); return result; diff --git a/gnu/backup-internal.h b/gnu/backup-internal.h index 2401c07b..17714b2d 100644 --- a/gnu/backup-internal.h +++ b/gnu/backup-internal.h @@ -1,3 +1,3 @@ #include "backupfile.h" #include <stdbool.h> -extern char *backupfile_internal (char const *, enum backup_type, bool); +extern char *backupfile_internal (int, char const *, enum backup_type, bool); diff --git a/gnu/backupfile.c b/gnu/backupfile.c index 22f54d33..254c0861 100644 --- a/gnu/backupfile.c +++ b/gnu/backupfile.c @@ -1,6 +1,6 @@ /* backupfile.c -- make Emacs style backup file names - Copyright (C) 1990-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1990-2006, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -23,20 +23,26 @@ #include "backup-internal.h" #include "dirname.h" -#include "renameat2.h" +#include "opendirat.h" +#include "renameatu.h" #include "xalloc-oversized.h" -#include <fcntl.h> #include <errno.h> +#include <fcntl.h> #include <stdbool.h> +#include <stdint.h> #include <stdlib.h> #include <string.h> - -#include <limits.h> - #include <unistd.h> -#include "dirent--.h" +#ifndef FALLTHROUGH +# if __GNUC__ < 7 +# define FALLTHROUGH ((void) 0) +# else +# define FALLTHROUGH __attribute__ ((__fallthrough__)) +# endif +#endif + #ifndef _D_EXACT_NAMLEN # define _D_EXACT_NAMLEN(dp) strlen ((dp)->d_name) #endif @@ -48,9 +54,6 @@ #ifndef _POSIX_NAME_MAX # define _POSIX_NAME_MAX 14 #endif -#ifndef SIZE_MAX -# define SIZE_MAX ((size_t) -1) -#endif #if defined _XOPEN_NAME_MAX # define NAME_MAX_MINIMUM _XOPEN_NAME_MAX @@ -92,10 +95,15 @@ set_simple_backup_suffix (char const *s) /* If FILE (which was of length FILELEN before an extension was appended to it) is too long, replace the extension with the single char E. If the result is still too long, remove the char just - before E. */ + before E. + + If DIR_FD is nonnegative, it is a file descriptor for FILE's parent. + *NAME_MAX is either 0, or the cached result of a previous call for + FILE's parent's _PC_NAME_MAX. */ static void -check_extension (char *file, size_t filelen, char e) +check_extension (char *file, size_t filelen, char e, + int dir_fd, size_t *base_max) { char *base = last_component (file); size_t baselen = base_len (base); @@ -104,22 +112,34 @@ check_extension (char *file, size_t filelen, char e) if (HAVE_DOS_FILE_NAMES || NAME_MAX_MINIMUM < baselen) { /* The new base name is long enough to require a pathconf check. */ - long name_max; - - /* Temporarily modify the buffer into its parent directory name, - invoke pathconf on the directory, and then restore the buffer. */ - char tmp[sizeof "."]; - memcpy (tmp, base, sizeof "."); - strcpy (base, "."); - errno = 0; - name_max = pathconf (file, _PC_NAME_MAX); - if (0 <= name_max || errno == 0) + if (*base_max == 0) { - long size = baselen_max = name_max; - if (name_max != size) - baselen_max = SIZE_MAX; + long name_max; + if (dir_fd < 0) + { + /* Temporarily modify the buffer into its parent + directory name, invoke pathconf on the directory, and + then restore the buffer. */ + char tmp[sizeof "."]; + memcpy (tmp, base, sizeof "."); + strcpy (base, "."); + errno = 0; + name_max = pathconf (file, _PC_NAME_MAX); + name_max -= !errno; + memcpy (base, tmp, sizeof "."); + } + else + { + errno = 0; + name_max = fpathconf (dir_fd, _PC_NAME_MAX); + name_max -= !errno; + } + + *base_max = (0 <= name_max && name_max <= SIZE_MAX ? name_max + : name_max < -1 ? NAME_MAX_MINIMUM : SIZE_MAX); } - memcpy (base, tmp, sizeof "."); + + baselen_max = *base_max; } if (HAVE_DOS_FILE_NAMES && baselen_max <= 12) @@ -167,8 +187,9 @@ enum numbered_backup_result BACKUP_NOMEM }; -/* *BUFFER contains a file name. Store into *BUFFER the next backup - name for the named file, with a version number greater than all the +/* Relative to DIR_FD, *BUFFER contains a file name. + Store into *BUFFER the next backup name for the named file, + with a version number greater than all the existing numbered backups. Reallocate *BUFFER as necessary; its initial allocated size is BUFFER_SIZE, which must be at least 4 bytes longer than the file name to make room for the initially @@ -180,11 +201,11 @@ enum numbered_backup_result *DIRPP is the destination directory. If *DIRPP is null, open the destination directory and store the resulting stream into *DIRPP - without closing the stream. */ + and its file descriptor into *PNEW_FD without closing the stream. */ static enum numbered_backup_result -numbered_backup (char **buffer, size_t buffer_size, size_t filelen, - ptrdiff_t base_offset, DIR **dirpp) +numbered_backup (int dir_fd, char **buffer, size_t buffer_size, size_t filelen, + ptrdiff_t base_offset, DIR **dirpp, int *pnew_fd) { enum numbered_backup_result result = BACKUP_IS_NEW; DIR *dirp = *dirpp; @@ -203,7 +224,7 @@ numbered_backup (char **buffer, size_t buffer_size, size_t filelen, char tmp[sizeof "."]; memcpy (tmp, base, sizeof "."); strcpy (base, "."); - dirp = opendir (buf); + dirp = opendirat (dir_fd, buf, 0, pnew_fd); if (!dirp && errno == ENOMEM) result = BACKUP_NOMEM; memcpy (base, tmp, sizeof "."); @@ -283,13 +304,15 @@ numbered_backup (char **buffer, size_t buffer_size, size_t filelen, return result; } -/* Return the name of the new backup file for the existing file FILE, - allocated with malloc. If RENAME, also rename FILE to the new name. +/* Relative to DIR_FD, return the name of the new backup file for the + existing file FILE, allocated with malloc. + If RENAME, also rename FILE to the new name. On failure, return NULL and set errno. Do not call this function if backup_type == no_backups. */ char * -backupfile_internal (char const *file, enum backup_type backup_type, bool rename) +backupfile_internal (int dir_fd, char const *file, + enum backup_type backup_type, bool rename) { ptrdiff_t base_offset = last_component (file) - file; size_t filelen = base_offset + strlen (file + base_offset); @@ -311,6 +334,8 @@ backupfile_internal (char const *file, enum backup_type backup_type, bool rename return s; DIR *dirp = NULL; + int sdir = -1; + size_t base_max = 0; while (true) { memcpy (s, file, filelen + 1); @@ -318,7 +343,8 @@ backupfile_internal (char const *file, enum backup_type backup_type, bool rename if (backup_type == simple_backups) memcpy (s + filelen, simple_backup_suffix, simple_backup_suffix_size); else - switch (numbered_backup (&s, ssize, filelen, base_offset, &dirp)) + switch (numbered_backup (dir_fd, &s, ssize, filelen, base_offset, + &dirp, &sdir)) { case BACKUP_IS_SAME_LENGTH: break; @@ -330,11 +356,9 @@ backupfile_internal (char const *file, enum backup_type backup_type, bool rename memcpy (s + filelen, simple_backup_suffix, simple_backup_suffix_size); } - check_extension (s, filelen, '~'); - break; - + FALLTHROUGH; case BACKUP_IS_LONGER: - check_extension (s, filelen, '~'); + check_extension (s, filelen, '~', sdir, &base_max); break; case BACKUP_NOMEM: @@ -346,14 +370,13 @@ backupfile_internal (char const *file, enum backup_type backup_type, bool rename if (! rename) break; - int sdir = dirp ? dirfd (dirp) : -1; if (sdir < 0) { sdir = AT_FDCWD; base_offset = 0; } unsigned flags = backup_type == simple_backups ? 0 : RENAME_NOREPLACE; - if (renameat2 (AT_FDCWD, file, sdir, s + base_offset, flags) == 0) + if (renameatu (AT_FDCWD, file, sdir, s + base_offset, flags) == 0) break; int e = errno; if (e != EEXIST) diff --git a/gnu/backupfile.h b/gnu/backupfile.h index c1c51c16..beb96854 100644 --- a/gnu/backupfile.h +++ b/gnu/backupfile.h @@ -1,6 +1,6 @@ /* backupfile.h -- declarations for making Emacs style backup file names - Copyright (C) 1990-1992, 1997-1999, 2003-2004, 2009-2017 Free Software + Copyright (C) 1990-1992, 1997-1999, 2003-2004, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -17,11 +17,13 @@ along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef BACKUPFILE_H_ -# define BACKUPFILE_H_ +#define BACKUPFILE_H_ -# ifdef __cplusplus +#include <fcntl.h> + +#ifdef __cplusplus extern "C" { -# endif +#endif /* When to make backup files. */ @@ -41,21 +43,20 @@ enum backup_type numbered_backups }; -# define VALID_BACKUP_TYPE(Type) \ +#define VALID_BACKUP_TYPE(Type) \ ((unsigned int) (Type) <= numbered_backups) extern char const *simple_backup_suffix; void set_simple_backup_suffix (char const *); -char *backup_file_rename (char const *, enum backup_type); -char *find_backup_file_name (char const *, enum backup_type); +char *backup_file_rename (int, char const *, enum backup_type); +char *find_backup_file_name (int, char const *, enum backup_type); enum backup_type get_version (char const *context, char const *arg); enum backup_type xget_version (char const *context, char const *arg); -void addext (char *, char const *, int); -# ifdef __cplusplus +#ifdef __cplusplus } -# endif +#endif #endif /* ! BACKUPFILE_H_ */ diff --git a/gnu/basename-lgpl.c b/gnu/basename-lgpl.c index e760df00..0ae04ee5 100644 --- a/gnu/basename-lgpl.c +++ b/gnu/basename-lgpl.c @@ -1,6 +1,6 @@ /* basename.c -- return the last element in a file name - Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2017 Free Software + Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/basename.c b/gnu/basename.c index 8ed46f23..1b6e0ea5 100644 --- a/gnu/basename.c +++ b/gnu/basename.c @@ -1,6 +1,6 @@ /* basename.c -- return the last element in a file name - Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2017 Free Software + Copyright (C) 1990, 1998-2001, 2003-2006, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/bitrotate.h b/gnu/bitrotate.h index 1e25f753..862331e2 100644 --- a/gnu/bitrotate.h +++ b/gnu/bitrotate.h @@ -1,5 +1,5 @@ /* bitrotate.h - Rotate bits in integers - Copyright (C) 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This program is free 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/btowc.c b/gnu/btowc.c index fa908b41..9e2496d4 100644 --- a/gnu/btowc.c +++ b/gnu/btowc.c @@ -1,5 +1,5 @@ /* Convert unibyte character to wide character. - Copyright (C) 2008, 2010-2017 Free Software Foundation, Inc. + Copyright (C) 2008, 2010-2019 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/c++defs.h b/gnu/c++defs.h index 09dcd3e0..87d07167 100644 --- a/gnu/c++defs.h +++ b/gnu/c++defs.h @@ -1,5 +1,5 @@ /* C++ compatible function declaration macros. - Copyright (C) 2010-2017 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published diff --git a/gnu/c-ctype.h b/gnu/c-ctype.h index 9ad3c18d..4d521763 100644 --- a/gnu/c-ctype.h +++ b/gnu/c-ctype.h @@ -5,7 +5,7 @@ <ctype.h> functions' behaviour depends on the current locale set via setlocale. - Copyright (C) 2000-2003, 2006, 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2000-2003, 2006, 2008-2019 Free Software Foundation, Inc. This program is free 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/c-strcase.h b/gnu/c-strcase.h index 220d21d3..b67c9b5d 100644 --- a/gnu/c-strcase.h +++ b/gnu/c-strcase.h @@ -1,5 +1,5 @@ /* Case-insensitive string comparison functions in C locale. - Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2017 Free Software + Copyright (C) 1995-1996, 2001, 2003, 2005, 2009-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify diff --git a/gnu/c-strcasecmp.c b/gnu/c-strcasecmp.c index b2880a2e..ec50f1ab 100644 --- a/gnu/c-strcasecmp.c +++ b/gnu/c-strcasecmp.c @@ -1,5 +1,5 @@ /* c-strcasecmp.c -- case insensitive string comparator in C locale - Copyright (C) 1998-1999, 2005-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1998-1999, 2005-2006, 2009-2019 Free Software Foundation, Inc. This program is free 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/c-strcaseeq.h b/gnu/c-strcaseeq.h index 1f70e265..bcc81fc3 100644 --- a/gnu/c-strcaseeq.h +++ b/gnu/c-strcaseeq.h @@ -1,5 +1,5 @@ /* Optimized case-insensitive string comparison in C locale. - Copyright (C) 2001-2002, 2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2001-2002, 2007, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published diff --git a/gnu/c-strncasecmp.c b/gnu/c-strncasecmp.c index 982e1791..513c353f 100644 --- a/gnu/c-strncasecmp.c +++ b/gnu/c-strncasecmp.c @@ -1,5 +1,5 @@ /* c-strncasecmp.c -- case insensitive string comparator in C locale - Copyright (C) 1998-1999, 2005-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1998-1999, 2005-2006, 2009-2019 Free Software Foundation, Inc. This program is free 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/canonicalize-lgpl.c b/gnu/canonicalize-lgpl.c index cd3396db..4d1be6dc 100644 --- a/gnu/canonicalize-lgpl.c +++ b/gnu/canonicalize-lgpl.c @@ -1,5 +1,5 @@ /* Return the canonical absolute name of a given file. - Copyright (C) 1996-2017 Free Software Foundation, Inc. + Copyright (C) 1996-2019 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 @@ -95,7 +95,7 @@ static void alloc_failed (void) { -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ /* Avoid errno problem without using the malloc or realloc modules; see: https://lists.gnu.org/r/bug-gnulib/2016-08/msg00025.html */ errno = ENOMEM; diff --git a/gnu/careadlinkat.c b/gnu/careadlinkat.c index e2af54f0..e56d5030 100644 --- a/gnu/careadlinkat.c +++ b/gnu/careadlinkat.c @@ -1,6 +1,6 @@ /* Read symbolic links into a buffer without size limitation, relative to fd. - Copyright (C) 2001, 2003-2004, 2007, 2009-2017 Free Software Foundation, + Copyright (C) 2001, 2003-2004, 2007, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/careadlinkat.h b/gnu/careadlinkat.h index d436c691..68b69aa8 100644 --- a/gnu/careadlinkat.h +++ b/gnu/careadlinkat.h @@ -1,6 +1,6 @@ /* Read symbolic links into a buffer without size limitation, relative to fd. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This program is free 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/cdefs.h b/gnu/cdefs.h new file mode 100644 index 00000000..f7a10644 --- /dev/null +++ b/gnu/cdefs.h @@ -0,0 +1,514 @@ +/* Copyright (C) 1992-2019 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify 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. + + 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. + + You should have received a copy of the GNU General Public + License along with the GNU C Library; if not, see + <https://www.gnu.org/licenses/>. */ + +#ifndef _SYS_CDEFS_H +#define _SYS_CDEFS_H 1 + +/* We are almost always included from features.h. */ +#ifndef _FEATURES_H +# include <features.h> +#endif + +/* The GNU libc does not support any K&R compilers or the traditional mode + of ISO C compilers anymore. Check for some of the combinations not + anymore supported. */ +#if defined __GNUC__ && !defined __STDC__ +# error "You need a ISO C conforming compiler to use the glibc headers" +#endif + +/* Some user header file might have defined this before. */ +#undef __P +#undef __PMT + +#ifdef __GNUC__ + +/* All functions, except those with callbacks or those that + synchronize memory, are leaf functions. */ +# if __GNUC_PREREQ (4, 6) && !defined _LIBC +# define __LEAF , __leaf__ +# define __LEAF_ATTR __attribute__ ((__leaf__)) +# else +# define __LEAF +# define __LEAF_ATTR +# endif + +/* GCC can always grok prototypes. For C++ programs we add throw() + to help it optimize the function calls. But this works only with + gcc 2.8.x and egcs. For gcc 3.2 and up we even mark C functions + as non-throwing using a function attribute since programs can use + the -fexceptions options for C code as well. */ +# if !defined __cplusplus && __GNUC_PREREQ (3, 3) +# define __THROW __attribute__ ((__nothrow__ __LEAF)) +# define __THROWNL __attribute__ ((__nothrow__)) +# define __NTH(fct) __attribute__ ((__nothrow__ __LEAF)) fct +# define __NTHNL(fct) __attribute__ ((__nothrow__)) fct +# else +# if defined __cplusplus && __GNUC_PREREQ (2,8) +# define __THROW throw () +# define __THROWNL throw () +# define __NTH(fct) __LEAF_ATTR fct throw () +# define __NTHNL(fct) fct throw () +# else +# define __THROW +# define __THROWNL +# define __NTH(fct) fct +# define __NTHNL(fct) fct +# endif +# endif + +#else /* Not GCC. */ + +# if (defined __cplusplus \ + || (defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L)) +# define __inline inline +# else +# define __inline /* No inline functions. */ +# endif + +# define __THROW +# define __THROWNL +# define __NTH(fct) fct + +#endif /* GCC. */ + +/* Compilers that are not clang may object to + #if defined __clang__ && __has_extension(...) + even though they do not need to evaluate the right-hand side of the &&. */ +#if defined __clang__ && defined __has_extension +# define __glibc_clang_has_extension(ext) __has_extension (ext) +#else +# define __glibc_clang_has_extension(ext) 0 +#endif + +/* These two macros are not used in glibc anymore. They are kept here + only because some other projects expect the macros to be defined. */ +#define __P(args) args +#define __PMT(args) args + +/* For these things, GCC behaves the ANSI way normally, + and the non-ANSI way under -traditional. */ + +#define __CONCAT(x,y) x ## y +#define __STRING(x) #x + +/* This is not a typedef so `const __ptr_t' does the right thing. */ +#define __ptr_t void * + + +/* C++ needs to know that types and declarations are C, not C++. */ +#ifdef __cplusplus +# define __BEGIN_DECLS extern "C" { +# define __END_DECLS } +#else +# define __BEGIN_DECLS +# define __END_DECLS +#endif + + +/* Fortify support. */ +#define __bos(ptr) __builtin_object_size (ptr, __USE_FORTIFY_LEVEL > 1) +#define __bos0(ptr) __builtin_object_size (ptr, 0) + +#if __GNUC_PREREQ (4,3) +# define __warndecl(name, msg) \ + extern void name (void) __attribute__((__warning__ (msg))) +# define __warnattr(msg) __attribute__((__warning__ (msg))) +# define __errordecl(name, msg) \ + extern void name (void) __attribute__((__error__ (msg))) +#else +# define __warndecl(name, msg) extern void name (void) +# define __warnattr(msg) +# define __errordecl(name, msg) extern void name (void) +#endif + +/* Support for flexible arrays. + Headers that should use flexible arrays only if they're "real" + (e.g. only if they won't affect sizeof()) should test + #if __glibc_c99_flexarr_available. */ +#if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L && !defined __HP_cc +# define __flexarr [] +# define __glibc_c99_flexarr_available 1 +#elif __GNUC_PREREQ (2,97) +/* GCC 2.97 supports C99 flexible array members as an extension, + even when in C89 mode or compiling C++ (any version). */ +# define __flexarr [] +# define __glibc_c99_flexarr_available 1 +#elif defined __GNUC__ +/* Pre-2.97 GCC did not support C99 flexible arrays but did have + an equivalent extension with slightly different notation. */ +# define __flexarr [0] +# define __glibc_c99_flexarr_available 1 +#else +/* Some other non-C99 compiler. Approximate with [1]. */ +# define __flexarr [1] +# define __glibc_c99_flexarr_available 0 +#endif + + +/* __asm__ ("xyz") is used throughout the headers to rename functions + at the assembly language level. This is wrapped by the __REDIRECT + macro, in order to support compilers that can do this some other + way. When compilers don't support asm-names at all, we have to do + preprocessor tricks instead (which don't have exactly the right + semantics, but it's the best we can do). + + Example: + int __REDIRECT(setpgrp, (__pid_t pid, __pid_t pgrp), setpgid); */ + +#if defined __GNUC__ && __GNUC__ >= 2 + +# define __REDIRECT(name, proto, alias) name proto __asm__ (__ASMNAME (#alias)) +# ifdef __cplusplus +# define __REDIRECT_NTH(name, proto, alias) \ + name proto __THROW __asm__ (__ASMNAME (#alias)) +# define __REDIRECT_NTHNL(name, proto, alias) \ + name proto __THROWNL __asm__ (__ASMNAME (#alias)) +# else +# define __REDIRECT_NTH(name, proto, alias) \ + name proto __asm__ (__ASMNAME (#alias)) __THROW +# define __REDIRECT_NTHNL(name, proto, alias) \ + name proto __asm__ (__ASMNAME (#alias)) __THROWNL +# endif +# define __ASMNAME(cname) __ASMNAME2 (__USER_LABEL_PREFIX__, cname) +# define __ASMNAME2(prefix, cname) __STRING (prefix) cname + +/* +#elif __SOME_OTHER_COMPILER__ + +# define __REDIRECT(name, proto, alias) name proto; \ + _Pragma("let " #name " = " #alias) +*/ +#endif + +/* GCC has various useful declarations that can be made with the + `__attribute__' syntax. All of the ways we use this do fine if + they are omitted for compilers that don't understand it. */ +#if !defined __GNUC__ || __GNUC__ < 2 +# define __attribute__(xyz) /* Ignore */ +#endif + +/* At some point during the gcc 2.96 development the `malloc' attribute + for functions was introduced. We don't want to use it unconditionally + (although this would be possible) since it generates warnings. */ +#if __GNUC_PREREQ (2,96) +# define __attribute_malloc__ __attribute__ ((__malloc__)) +#else +# define __attribute_malloc__ /* Ignore */ +#endif + +/* Tell the compiler which arguments to an allocation function + indicate the size of the allocation. */ +#if __GNUC_PREREQ (4, 3) +# define __attribute_alloc_size__(params) \ + __attribute__ ((__alloc_size__ params)) +#else +# define __attribute_alloc_size__(params) /* Ignore. */ +#endif + +/* At some point during the gcc 2.96 development the `pure' attribute + for functions was introduced. We don't want to use it unconditionally + (although this would be possible) since it generates warnings. */ +#if __GNUC_PREREQ (2,96) +# define __attribute_pure__ __attribute__ ((__pure__)) +#else +# define __attribute_pure__ /* Ignore */ +#endif + +/* This declaration tells the compiler that the value is constant. */ +#if __GNUC_PREREQ (2,5) +# define __attribute_const__ __attribute__ ((__const__)) +#else +# define __attribute_const__ /* Ignore */ +#endif + +/* At some point during the gcc 3.1 development the `used' attribute + for functions was introduced. We don't want to use it unconditionally + (although this would be possible) since it generates warnings. */ +#if __GNUC_PREREQ (3,1) +# define __attribute_used__ __attribute__ ((__used__)) +# define __attribute_noinline__ __attribute__ ((__noinline__)) +#else +# define __attribute_used__ __attribute__ ((__unused__)) +# define __attribute_noinline__ /* Ignore */ +#endif + +/* Since version 3.2, gcc allows marking deprecated functions. */ +#if __GNUC_PREREQ (3,2) +# define __attribute_deprecated__ __attribute__ ((__deprecated__)) +#else +# define __attribute_deprecated__ /* Ignore */ +#endif + +/* Since version 4.5, gcc also allows one to specify the message printed + when a deprecated function is used. clang claims to be gcc 4.2, but + may also support this feature. */ +#if __GNUC_PREREQ (4,5) || \ + __glibc_clang_has_extension (__attribute_deprecated_with_message__) +# define __attribute_deprecated_msg__(msg) \ + __attribute__ ((__deprecated__ (msg))) +#else +# define __attribute_deprecated_msg__(msg) __attribute_deprecated__ +#endif + +/* At some point during the gcc 2.8 development the `format_arg' attribute + for functions was introduced. We don't want to use it unconditionally + (although this would be possible) since it generates warnings. + If several `format_arg' attributes are given for the same function, in + gcc-3.0 and older, all but the last one are ignored. In newer gccs, + all designated arguments are considered. */ +#if __GNUC_PREREQ (2,8) +# define __attribute_format_arg__(x) __attribute__ ((__format_arg__ (x))) +#else +# define __attribute_format_arg__(x) /* Ignore */ +#endif + +/* At some point during the gcc 2.97 development the `strfmon' format + attribute for functions was introduced. We don't want to use it + unconditionally (although this would be possible) since it + generates warnings. */ +#if __GNUC_PREREQ (2,97) +# define __attribute_format_strfmon__(a,b) \ + __attribute__ ((__format__ (__strfmon__, a, b))) +#else +# define __attribute_format_strfmon__(a,b) /* Ignore */ +#endif + +/* The nonnull function attribute marks pointer parameters that + must not be NULL. Do not define __nonnull if it is already defined, + for portability when this file is used in Gnulib. */ +#ifndef __nonnull +# if __GNUC_PREREQ (3,3) +# define __nonnull(params) __attribute__ ((__nonnull__ params)) +# else +# define __nonnull(params) +# endif +#endif + +/* If fortification mode, we warn about unused results of certain + function calls which can lead to problems. */ +#if __GNUC_PREREQ (3,4) +# define __attribute_warn_unused_result__ \ + __attribute__ ((__warn_unused_result__)) +# if defined __USE_FORTIFY_LEVEL && __USE_FORTIFY_LEVEL > 0 +# define __wur __attribute_warn_unused_result__ +# endif +#else +# define __attribute_warn_unused_result__ /* empty */ +#endif +#ifndef __wur +# define __wur /* Ignore */ +#endif + +/* Forces a function to be always inlined. */ +#if __GNUC_PREREQ (3,2) +/* The Linux kernel defines __always_inline in stddef.h (283d7573), and + it conflicts with this definition. Therefore undefine it first to + allow either header to be included first. */ +# undef __always_inline +# define __always_inline __inline __attribute__ ((__always_inline__)) +#else +# undef __always_inline +# define __always_inline __inline +#endif + +/* Associate error messages with the source location of the call site rather + than with the source location inside the function. */ +#if __GNUC_PREREQ (4,3) +# define __attribute_artificial__ __attribute__ ((__artificial__)) +#else +# define __attribute_artificial__ /* Ignore */ +#endif + +/* GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 + inline semantics, unless -fgnu89-inline is used. Using __GNUC_STDC_INLINE__ + or __GNUC_GNU_INLINE is not a good enough check for gcc because gcc versions + older than 4.3 may define these macros and still not guarantee GNU inlining + semantics. + + clang++ identifies itself as gcc-4.2, but has support for GNU inlining + semantics, that can be checked fot by using the __GNUC_STDC_INLINE_ and + __GNUC_GNU_INLINE__ macro definitions. */ +#if (!defined __cplusplus || __GNUC_PREREQ (4,3) \ + || (defined __clang__ && (defined __GNUC_STDC_INLINE__ \ + || defined __GNUC_GNU_INLINE__))) +# if defined __GNUC_STDC_INLINE__ || defined __cplusplus +# define __extern_inline extern __inline __attribute__ ((__gnu_inline__)) +# define __extern_always_inline \ + extern __always_inline __attribute__ ((__gnu_inline__)) +# else +# define __extern_inline extern __inline +# define __extern_always_inline extern __always_inline +# endif +#endif + +#ifdef __extern_always_inline +# define __fortify_function __extern_always_inline __attribute_artificial__ +#endif + +/* GCC 4.3 and above allow passing all anonymous arguments of an + __extern_always_inline function to some other vararg function. */ +#if __GNUC_PREREQ (4,3) +# define __va_arg_pack() __builtin_va_arg_pack () +# define __va_arg_pack_len() __builtin_va_arg_pack_len () +#endif + +/* It is possible to compile containing GCC extensions even if GCC is + run in pedantic mode if the uses are carefully marked using the + `__extension__' keyword. But this is not generally available before + version 2.8. */ +#if !__GNUC_PREREQ (2,8) +# define __extension__ /* Ignore */ +#endif + +/* __restrict is known in EGCS 1.2 and above. */ +#if !__GNUC_PREREQ (2,92) +# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L +# define __restrict restrict +# else +# define __restrict /* Ignore */ +# endif +#endif + +/* ISO C99 also allows to declare arrays as non-overlapping. The syntax is + array_name[restrict] + GCC 3.1 supports this. */ +#if __GNUC_PREREQ (3,1) && !defined __GNUG__ +# define __restrict_arr __restrict +#else +# ifdef __GNUC__ +# define __restrict_arr /* Not supported in old GCC. */ +# else +# if defined __STDC_VERSION__ && __STDC_VERSION__ >= 199901L +# define __restrict_arr restrict +# else +/* Some other non-C99 compiler. */ +# define __restrict_arr /* Not supported. */ +# endif +# endif +#endif + +#if __GNUC__ >= 3 +# define __glibc_unlikely(cond) __builtin_expect ((cond), 0) +# define __glibc_likely(cond) __builtin_expect ((cond), 1) +#else +# define __glibc_unlikely(cond) (cond) +# define __glibc_likely(cond) (cond) +#endif + +#ifdef __has_attribute +# define __glibc_has_attribute(attr) __has_attribute (attr) +#else +# define __glibc_has_attribute(attr) 0 +#endif + +#if (!defined _Noreturn \ + && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \ + && !__GNUC_PREREQ (4,7)) +# if __GNUC_PREREQ (2,8) +# define _Noreturn __attribute__ ((__noreturn__)) +# else +# define _Noreturn +# endif +#endif + +#if __GNUC_PREREQ (8, 0) +/* Describes a char array whose address can safely be passed as the first + argument to strncpy and strncat, as the char array is not necessarily + a NUL-terminated string. */ +# define __attribute_nonstring__ __attribute__ ((__nonstring__)) +#else +# define __attribute_nonstring__ +#endif + +#if (!defined _Static_assert && !defined __cplusplus \ + && (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) < 201112 \ + && (!__GNUC_PREREQ (4, 6) || defined __STRICT_ANSI__)) +# define _Static_assert(expr, diagnostic) \ + extern int (*__Static_assert_function (void)) \ + [!!sizeof (struct { int __error_if_negative: (expr) ? 2 : -1; })] +#endif + +/* The #ifndef lets Gnulib avoid including these on non-glibc + platforms, where the includes typically do not exist. */ +#ifndef __WORDSIZE +# include <bits/wordsize.h> +# include <bits/long-double.h> +#endif + +#if defined __LONG_DOUBLE_MATH_OPTIONAL && defined __NO_LONG_DOUBLE_MATH +# define __LDBL_COMPAT 1 +# ifdef __REDIRECT +# define __LDBL_REDIR1(name, proto, alias) __REDIRECT (name, proto, alias) +# define __LDBL_REDIR(name, proto) \ + __LDBL_REDIR1 (name, proto, __nldbl_##name) +# define __LDBL_REDIR1_NTH(name, proto, alias) __REDIRECT_NTH (name, proto, alias) +# define __LDBL_REDIR_NTH(name, proto) \ + __LDBL_REDIR1_NTH (name, proto, __nldbl_##name) +# define __LDBL_REDIR1_DECL(name, alias) \ + extern __typeof (name) name __asm (__ASMNAME (#alias)); +# define __LDBL_REDIR_DECL(name) \ + extern __typeof (name) name __asm (__ASMNAME ("__nldbl_" #name)); +# define __REDIRECT_LDBL(name, proto, alias) \ + __LDBL_REDIR1 (name, proto, __nldbl_##alias) +# define __REDIRECT_NTH_LDBL(name, proto, alias) \ + __LDBL_REDIR1_NTH (name, proto, __nldbl_##alias) +# endif +#endif +#if !defined __LDBL_COMPAT || !defined __REDIRECT +# define __LDBL_REDIR1(name, proto, alias) name proto +# define __LDBL_REDIR(name, proto) name proto +# define __LDBL_REDIR1_NTH(name, proto, alias) name proto __THROW +# define __LDBL_REDIR_NTH(name, proto) name proto __THROW +# define __LDBL_REDIR_DECL(name) +# ifdef __REDIRECT +# define __REDIRECT_LDBL(name, proto, alias) __REDIRECT (name, proto, alias) +# define __REDIRECT_NTH_LDBL(name, proto, alias) \ + __REDIRECT_NTH (name, proto, alias) +# endif +#endif + +/* __glibc_macro_warning (MESSAGE) issues warning MESSAGE. This is + intended for use in preprocessor macros. + + Note: MESSAGE must be a _single_ string; concatenation of string + literals is not supported. */ +#if __GNUC_PREREQ (4,8) || __glibc_clang_prereq (3,5) +# define __glibc_macro_warning1(message) _Pragma (#message) +# define __glibc_macro_warning(message) \ + __glibc_macro_warning1 (GCC warning message) +#else +# define __glibc_macro_warning(msg) +#endif + +/* Generic selection (ISO C11) is a C-only feature, available in GCC + since version 4.9. Previous versions do not provide generic + selection, even though they might set __STDC_VERSION__ to 201112L, + when in -std=c11 mode. Thus, we must check for !defined __GNUC__ + when testing __STDC_VERSION__ for generic selection support. + On the other hand, Clang also defines __GNUC__, so a clang-specific + check is required to enable the use of generic selection. */ +#if !defined __cplusplus \ + && (__GNUC_PREREQ (4, 9) \ + || __glibc_clang_has_extension (c_generic_selections) \ + || (!defined __GNUC__ && defined __STDC_VERSION__ \ + && __STDC_VERSION__ >= 201112L)) +# define __HAVE_GENERIC_SELECTION 1 +#else +# define __HAVE_GENERIC_SELECTION 0 +#endif + +#endif /* sys/cdefs.h */ diff --git a/gnu/chdir-long.c b/gnu/chdir-long.c index 7e2e63c9..febdf59d 100644 --- a/gnu/chdir-long.c +++ b/gnu/chdir-long.c @@ -1,5 +1,5 @@ /* provide a chdir function that tries not to fail due to ENAMETOOLONG - Copyright (C) 2004-2017 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This program is free 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/chdir-long.h b/gnu/chdir-long.h index 3acd70db..43259d1b 100644 --- a/gnu/chdir-long.h +++ b/gnu/chdir-long.h @@ -1,5 +1,5 @@ /* provide a chdir function that tries not to fail due to ENAMETOOLONG - Copyright (C) 2004-2005, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2004-2005, 2009-2019 Free Software Foundation, Inc. This program is free 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/chown.c b/gnu/chown.c index 37d1a1fb..fc73e778 100644 --- a/gnu/chown.c +++ b/gnu/chown.c @@ -1,7 +1,7 @@ /* provide consistent interface to chown for systems that don't interpret an ID of -1 as meaning "don't change the corresponding ID". - Copyright (C) 1997, 2004-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1997, 2004-2007, 2009-2019 Free Software Foundation, Inc. This program is free 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/cloexec.c b/gnu/cloexec.c index 2b67a010..db425766 100644 --- a/gnu/cloexec.c +++ b/gnu/cloexec.c @@ -1,6 +1,6 @@ /* cloexec.c - set or clear the close-on-exec descriptor flag - Copyright (C) 1991, 2004-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1991, 2004-2006, 2009-2019 Free Software Foundation, Inc. This program is free 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/cloexec.h b/gnu/cloexec.h index d937a406..06ad945d 100644 --- a/gnu/cloexec.h +++ b/gnu/cloexec.h @@ -1,6 +1,6 @@ /* cloexec.c - set or clear the close-on-exec descriptor flag - Copyright (C) 2004, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2004, 2009-2019 Free Software Foundation, Inc. This program is free 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/close-stream.c b/gnu/close-stream.c index 19707626..5458c4f2 100644 --- a/gnu/close-stream.c +++ b/gnu/close-stream.c @@ -1,6 +1,6 @@ /* Close a stream, with nicer error checking than fclose's. - Copyright (C) 1998-2002, 2004, 2006-2017 Free Software Foundation, Inc. + Copyright (C) 1998-2002, 2004, 2006-2019 Free Software Foundation, Inc. This program is free 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/close.c b/gnu/close.c index 5b6bd3c7..40ce845b 100644 --- a/gnu/close.c +++ b/gnu/close.c @@ -1,5 +1,5 @@ /* close replacement. - Copyright (C) 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This program is free 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/closedir.c b/gnu/closedir.c index 6b5e78c6..017fb682 100644 --- a/gnu/closedir.c +++ b/gnu/closedir.c @@ -1,5 +1,5 @@ /* Stop reading the entries of a directory. - Copyright (C) 2006-2017 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This program is free 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/closeout.c b/gnu/closeout.c index 82cba4cd..4a604ec3 100644 --- a/gnu/closeout.c +++ b/gnu/closeout.c @@ -1,6 +1,6 @@ /* Close standard output and standard error, exiting with a diagnostic on error. - Copyright (C) 1998-2002, 2004, 2006, 2008-2017 Free Software Foundation, + Copyright (C) 1998-2002, 2004, 2006, 2008-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/closeout.h b/gnu/closeout.h index fff76f11..ac89f760 100644 --- a/gnu/closeout.h +++ b/gnu/closeout.h @@ -1,6 +1,6 @@ /* Close standard output and standard error. - Copyright (C) 1998, 2000, 2003-2004, 2006, 2008-2017 Free Software + Copyright (C) 1998, 2000, 2003-2004, 2006, 2008-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/config.charset b/gnu/config.charset deleted file mode 100644 index e017fed4..00000000 --- a/gnu/config.charset +++ /dev/null @@ -1,682 +0,0 @@ -#! /bin/sh -# Output a system dependent table of character encoding aliases. -# -# Copyright (C) 2000-2004, 2006-2017 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute 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 <https://www.gnu.org/licenses/>. -# -# The table consists of lines of the form -# ALIAS CANONICAL -# -# ALIAS is the (system dependent) result of "nl_langinfo (CODESET)". -# ALIAS is compared in a case sensitive way. -# -# CANONICAL is the GNU canonical name for this character encoding. -# It must be an encoding supported by libiconv. Support by GNU libc is -# also desirable. CANONICAL is case insensitive. Usually an upper case -# MIME charset name is preferred. -# 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 -# ISO-8859-3 Y glibc solaris cygwin -# ISO-8859-4 Y osf solaris freebsd netbsd openbsd darwin -# ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin -# ISO-8859-6 Y glibc aix hpux solaris cygwin -# ISO-8859-7 Y glibc aix hpux irix osf solaris netbsd openbsd darwin cygwin -# ISO-8859-8 Y glibc aix hpux osf solaris cygwin -# ISO-8859-9 Y glibc aix hpux irix osf solaris darwin cygwin -# ISO-8859-13 glibc netbsd openbsd darwin cygwin -# ISO-8859-14 glibc cygwin -# ISO-8859-15 glibc aix osf solaris freebsd netbsd openbsd darwin cygwin -# KOI8-R Y glibc solaris freebsd netbsd openbsd darwin -# KOI8-U Y glibc freebsd netbsd openbsd darwin cygwin -# KOI8-T glibc -# CP437 dos -# CP775 dos -# CP850 aix osf dos -# CP852 dos -# CP855 dos -# CP856 aix -# CP857 dos -# CP861 dos -# CP862 dos -# CP864 dos -# CP865 dos -# CP866 freebsd netbsd openbsd darwin dos -# CP869 dos -# CP874 woe32 dos -# CP922 aix -# CP932 aix cygwin woe32 dos -# CP943 aix -# CP949 osf darwin woe32 dos -# CP950 woe32 dos -# CP1046 aix -# CP1124 aix -# CP1125 dos -# CP1129 aix -# CP1131 darwin -# CP1250 woe32 -# CP1251 glibc solaris netbsd openbsd darwin cygwin woe32 -# CP1252 aix woe32 -# CP1253 woe32 -# CP1254 woe32 -# CP1255 glibc woe32 -# CP1256 woe32 -# CP1257 woe32 -# GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin -# EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin -# EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin -# EUC-TW glibc aix hpux irix osf solaris netbsd -# BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin cygwin -# BIG5-HKSCS glibc solaris darwin -# GBK glibc aix osf solaris darwin cygwin woe32 dos -# GB18030 glibc solaris netbsd darwin -# SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin -# JOHAB glibc solaris woe32 -# TIS-620 glibc aix hpux osf solaris cygwin -# VISCII Y glibc -# TCVN5712-1 glibc -# ARMSCII-8 glibc darwin -# GEORGIAN-PS glibc cygwin -# PT154 glibc -# HP-ROMAN8 hpux -# HP-ARABIC8 hpux -# HP-GREEK8 hpux -# HP-HEBREW8 hpux -# HP-TURKISH8 hpux -# HP-KANA8 hpux -# DEC-KANJI osf -# DEC-HANYU osf -# UTF-8 Y glibc aix hpux osf solaris netbsd darwin cygwin -# -# Note: Names which are not marked as being a MIME name should not be used in -# Internet protocols for information interchange (mail, news, etc.). -# -# Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications -# must understand both names and treat them as equivalent. -# -# The first argument passed to this file is the canonical host specification, -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM - -host="$1" -os=`echo "$host" | sed -e 's/^[^-]*-[^-]*-\(.*\)$/\1/'` -echo "# This file contains a table of character encoding aliases," -echo "# suitable for operating system '${os}'." -echo "# It was automatically generated from config.charset." -# List of references, updated during installation: -echo "# Packages using this file: " -case "$os" in - linux-gnulibc1*) - # Linux libc5 doesn't have nl_langinfo(CODESET); therefore - # localcharset.c falls back to using the full locale name - # from the environment variables. - echo "C ASCII" - echo "POSIX ASCII" - for l in af af_ZA ca ca_ES da da_DK de de_AT de_BE de_CH de_DE de_LU \ - en en_AU en_BW en_CA en_DK en_GB en_IE en_NZ en_US en_ZA \ - en_ZW es es_AR es_BO es_CL es_CO es_DO es_EC es_ES es_GT \ - es_HN es_MX es_PA es_PE es_PY es_SV es_US es_UY es_VE et \ - et_EE eu eu_ES fi fi_FI fo fo_FO fr fr_BE fr_CA fr_CH fr_FR \ - fr_LU ga ga_IE gl gl_ES id id_ID in in_ID is is_IS it it_CH \ - it_IT kl kl_GL nl nl_BE nl_NL no no_NO pt pt_BR pt_PT sv \ - sv_FI sv_SE; do - echo "$l ISO-8859-1" - echo "$l.iso-8859-1 ISO-8859-1" - echo "$l.iso-8859-15 ISO-8859-15" - echo "$l.iso-8859-15@euro ISO-8859-15" - echo "$l@euro ISO-8859-15" - echo "$l.cp-437 CP437" - echo "$l.cp-850 CP850" - echo "$l.cp-1252 CP1252" - echo "$l.cp-1252@euro CP1252" - #echo "$l.atari-st ATARI-ST" # not a commonly used encoding - echo "$l.utf-8 UTF-8" - echo "$l.utf-8@euro UTF-8" - done - for l in cs cs_CZ hr hr_HR hu hu_HU pl pl_PL ro ro_RO sk sk_SK sl \ - sl_SI sr sr_CS sr_YU; do - echo "$l ISO-8859-2" - echo "$l.iso-8859-2 ISO-8859-2" - echo "$l.cp-852 CP852" - echo "$l.cp-1250 CP1250" - echo "$l.utf-8 UTF-8" - done - for l in mk mk_MK ru ru_RU; do - echo "$l ISO-8859-5" - echo "$l.iso-8859-5 ISO-8859-5" - echo "$l.koi8-r KOI8-R" - echo "$l.cp-866 CP866" - echo "$l.cp-1251 CP1251" - echo "$l.utf-8 UTF-8" - done - for l in ar ar_SA; do - echo "$l ISO-8859-6" - echo "$l.iso-8859-6 ISO-8859-6" - echo "$l.cp-864 CP864" - #echo "$l.cp-868 CP868" # not a commonly used encoding - echo "$l.cp-1256 CP1256" - echo "$l.utf-8 UTF-8" - done - for l in el el_GR gr gr_GR; do - echo "$l ISO-8859-7" - echo "$l.iso-8859-7 ISO-8859-7" - echo "$l.cp-869 CP869" - echo "$l.cp-1253 CP1253" - echo "$l.cp-1253@euro CP1253" - echo "$l.utf-8 UTF-8" - echo "$l.utf-8@euro UTF-8" - done - for l in he he_IL iw iw_IL; do - echo "$l ISO-8859-8" - echo "$l.iso-8859-8 ISO-8859-8" - echo "$l.cp-862 CP862" - echo "$l.cp-1255 CP1255" - echo "$l.utf-8 UTF-8" - done - for l in tr tr_TR; do - echo "$l ISO-8859-9" - echo "$l.iso-8859-9 ISO-8859-9" - echo "$l.cp-857 CP857" - echo "$l.cp-1254 CP1254" - echo "$l.utf-8 UTF-8" - done - for l in lt lt_LT lv lv_LV; do - #echo "$l BALTIC" # not a commonly used encoding, wrong encoding name - echo "$l ISO-8859-13" - done - for l in ru_UA uk uk_UA; do - echo "$l KOI8-U" - done - for l in zh zh_CN; do - #echo "$l GB_2312-80" # not a commonly used encoding, wrong encoding name - echo "$l GB2312" - done - for l in ja ja_JP ja_JP.EUC; do - echo "$l EUC-JP" - done - for l in ko ko_KR; do - echo "$l EUC-KR" - done - for l in th th_TH; do - echo "$l TIS-620" - done - for l in fa fa_IR; do - #echo "$l ISIRI-3342" # a broken encoding - echo "$l.utf-8 UTF-8" - done - ;; - linux* | *-gnu*) - # With glibc-2.1 or newer, we don't need any canonicalization, - # because glibc has iconv and both glibc and libiconv support all - # GNU canonical names directly. Therefore, the Makefile does not - # need to install the alias file at all. - # The following applies only to glibc-2.0.x and older libcs. - echo "ISO_646.IRV:1983 ASCII" - ;; - aix*) - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-6 ISO-8859-6" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-8 ISO-8859-8" - echo "ISO8859-9 ISO-8859-9" - echo "ISO8859-15 ISO-8859-15" - echo "IBM-850 CP850" - echo "IBM-856 CP856" - echo "IBM-921 ISO-8859-13" - echo "IBM-922 CP922" - echo "IBM-932 CP932" - echo "IBM-943 CP943" - echo "IBM-1046 CP1046" - echo "IBM-1124 CP1124" - echo "IBM-1129 CP1129" - echo "IBM-1252 CP1252" - echo "IBM-eucCN GB2312" - echo "IBM-eucJP EUC-JP" - echo "IBM-eucKR EUC-KR" - echo "IBM-eucTW EUC-TW" - echo "big5 BIG5" - echo "GBK GBK" - echo "TIS-620 TIS-620" - echo "UTF-8 UTF-8" - ;; - hpux*) - echo "iso88591 ISO-8859-1" - echo "iso88592 ISO-8859-2" - echo "iso88595 ISO-8859-5" - echo "iso88596 ISO-8859-6" - echo "iso88597 ISO-8859-7" - echo "iso88598 ISO-8859-8" - echo "iso88599 ISO-8859-9" - echo "iso885915 ISO-8859-15" - echo "roman8 HP-ROMAN8" - echo "arabic8 HP-ARABIC8" - echo "greek8 HP-GREEK8" - echo "hebrew8 HP-HEBREW8" - echo "turkish8 HP-TURKISH8" - echo "kana8 HP-KANA8" - echo "tis620 TIS-620" - echo "big5 BIG5" - echo "eucJP EUC-JP" - echo "eucKR EUC-KR" - echo "eucTW EUC-TW" - echo "hp15CN GB2312" - #echo "ccdc ?" # what is this? - echo "SJIS SHIFT_JIS" - echo "utf8 UTF-8" - ;; - irix*) - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-9 ISO-8859-9" - echo "eucCN GB2312" - echo "eucJP EUC-JP" - echo "eucKR EUC-KR" - echo "eucTW EUC-TW" - ;; - osf*) - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-4 ISO-8859-4" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-8 ISO-8859-8" - echo "ISO8859-9 ISO-8859-9" - echo "ISO8859-15 ISO-8859-15" - echo "cp850 CP850" - echo "big5 BIG5" - echo "dechanyu DEC-HANYU" - echo "dechanzi GB2312" - echo "deckanji DEC-KANJI" - echo "deckorean EUC-KR" - echo "eucJP EUC-JP" - echo "eucKR EUC-KR" - echo "eucTW EUC-TW" - echo "GBK GBK" - echo "KSC5601 CP949" - echo "sdeckanji EUC-JP" - echo "SJIS SHIFT_JIS" - echo "TACTIS TIS-620" - echo "UTF-8 UTF-8" - ;; - solaris*) - echo "646 ASCII" - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-3 ISO-8859-3" - echo "ISO8859-4 ISO-8859-4" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-6 ISO-8859-6" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-8 ISO-8859-8" - echo "ISO8859-9 ISO-8859-9" - echo "ISO8859-15 ISO-8859-15" - echo "koi8-r KOI8-R" - echo "ansi-1251 CP1251" - echo "BIG5 BIG5" - echo "Big5-HKSCS BIG5-HKSCS" - echo "gb2312 GB2312" - echo "GBK GBK" - echo "GB18030 GB18030" - echo "cns11643 EUC-TW" - echo "5601 EUC-KR" - echo "ko_KR.johap92 JOHAB" - echo "eucJP EUC-JP" - echo "PCK SHIFT_JIS" - echo "TIS620.2533 TIS-620" - #echo "sun_eu_greek ?" # what is this? - echo "UTF-8 UTF-8" - ;; - freebsd*) - # FreeBSD 4.2 doesn't have nl_langinfo(CODESET); therefore - # localcharset.c falls back to using the full locale name - # from the environment variables. - echo "C ASCII" - echo "US-ASCII ASCII" - for l in la_LN lt_LN; do - echo "$l.ASCII ASCII" - done - for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ - fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT la_LN \ - lt_LN nl_BE nl_NL no_NO pt_PT sv_SE; do - echo "$l.ISO_8859-1 ISO-8859-1" - echo "$l.DIS_8859-15 ISO-8859-15" - done - for l in cs_CZ hr_HR hu_HU la_LN lt_LN pl_PL sl_SI; do - echo "$l.ISO_8859-2 ISO-8859-2" - done - for l in la_LN lt_LT; do - echo "$l.ISO_8859-4 ISO-8859-4" - done - for l in ru_RU ru_SU; do - echo "$l.KOI8-R KOI8-R" - echo "$l.ISO_8859-5 ISO-8859-5" - echo "$l.CP866 CP866" - done - echo "uk_UA.KOI8-U KOI8-U" - echo "zh_TW.BIG5 BIG5" - echo "zh_TW.Big5 BIG5" - echo "zh_CN.EUC GB2312" - echo "ja_JP.EUC EUC-JP" - echo "ja_JP.SJIS SHIFT_JIS" - echo "ja_JP.Shift_JIS SHIFT_JIS" - echo "ko_KR.EUC EUC-KR" - ;; - netbsd*) - echo "646 ASCII" - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-4 ISO-8859-4" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-13 ISO-8859-13" - echo "ISO8859-15 ISO-8859-15" - echo "eucCN GB2312" - echo "eucJP EUC-JP" - echo "eucKR EUC-KR" - echo "eucTW EUC-TW" - echo "BIG5 BIG5" - echo "SJIS SHIFT_JIS" - ;; - openbsd*) - echo "646 ASCII" - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-4 ISO-8859-4" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-13 ISO-8859-13" - echo "ISO8859-15 ISO-8859-15" - ;; - darwin[56]*) - # Darwin 6.8 doesn't have nl_langinfo(CODESET); therefore - # localcharset.c falls back to using the full locale name - # from the environment variables. - echo "C ASCII" - for l in en_AU en_CA en_GB en_US la_LN; do - echo "$l.US-ASCII ASCII" - done - for l in da_DK de_AT de_CH de_DE en_AU en_CA en_GB en_US es_ES \ - fi_FI fr_BE fr_CA fr_CH fr_FR is_IS it_CH it_IT nl_BE \ - nl_NL no_NO pt_PT sv_SE; do - echo "$l ISO-8859-1" - echo "$l.ISO8859-1 ISO-8859-1" - echo "$l.ISO8859-15 ISO-8859-15" - done - for l in la_LN; do - echo "$l.ISO8859-1 ISO-8859-1" - echo "$l.ISO8859-15 ISO-8859-15" - done - for l in cs_CZ hr_HR hu_HU la_LN pl_PL sl_SI; do - echo "$l.ISO8859-2 ISO-8859-2" - done - for l in la_LN lt_LT; do - echo "$l.ISO8859-4 ISO-8859-4" - done - for l in ru_RU; do - echo "$l.KOI8-R KOI8-R" - echo "$l.ISO8859-5 ISO-8859-5" - echo "$l.CP866 CP866" - done - for l in bg_BG; do - echo "$l.CP1251 CP1251" - done - echo "uk_UA.KOI8-U KOI8-U" - echo "zh_TW.BIG5 BIG5" - echo "zh_TW.Big5 BIG5" - echo "zh_CN.EUC GB2312" - echo "ja_JP.EUC EUC-JP" - echo "ja_JP.SJIS SHIFT_JIS" - echo "ko_KR.EUC EUC-KR" - ;; - darwin*) - # Darwin 7.5 has nl_langinfo(CODESET), but sometimes its value is - # useless: - # - It returns the empty string when LANG is set to a locale of the - # form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8 - # LC_CTYPE file. - # - The environment variables LANG, LC_CTYPE, LC_ALL are not set by - # the system; nl_langinfo(CODESET) returns "US-ASCII" in this case. - # - The documentation says: - # "... all code that calls BSD system routines should ensure - # that the const *char parameters of these routines are in UTF-8 - # encoding. All BSD system functions expect their string - # parameters to be in UTF-8 encoding and nothing else." - # It also says - # "An additional caveat is that string parameters for files, - # paths, and other file-system entities must be in canonical - # UTF-8. In a canonical UTF-8 Unicode string, all decomposable - # characters are decomposed ..." - # but this is not true: You can pass non-decomposed UTF-8 strings - # to file system functions, and it is the OS which will convert - # them to decomposed UTF-8 before accessing the file system. - # - The Apple Terminal application displays UTF-8 by default. - # - However, other applications are free to use different encodings: - # - xterm uses ISO-8859-1 by default. - # - TextEdit uses MacRoman by default. - # We prefer UTF-8 over decomposed UTF-8-MAC because one should - # minimize the use of decomposed Unicode. Unfortunately, through the - # Darwin file system, decomposed UTF-8 strings are leaked into user - # space nevertheless. - # Then there are also the locales with encodings other than US-ASCII - # and UTF-8. These locales can be occasionally useful to users (e.g. - # when grepping through ISO-8859-1 encoded text files), when all their - # file names are in US-ASCII. - echo "ISO8859-1 ISO-8859-1" - echo "ISO8859-2 ISO-8859-2" - echo "ISO8859-4 ISO-8859-4" - echo "ISO8859-5 ISO-8859-5" - echo "ISO8859-7 ISO-8859-7" - echo "ISO8859-9 ISO-8859-9" - echo "ISO8859-13 ISO-8859-13" - echo "ISO8859-15 ISO-8859-15" - echo "KOI8-R KOI8-R" - echo "KOI8-U KOI8-U" - echo "CP866 CP866" - echo "CP949 CP949" - echo "CP1131 CP1131" - echo "CP1251 CP1251" - echo "eucCN GB2312" - echo "GB2312 GB2312" - echo "eucJP EUC-JP" - echo "eucKR EUC-KR" - echo "Big5 BIG5" - echo "Big5HKSCS BIG5-HKSCS" - echo "GBK GBK" - echo "GB18030 GB18030" - echo "SJIS SHIFT_JIS" - echo "ARMSCII-8 ARMSCII-8" - echo "PT154 PT154" - #echo "ISCII-DEV ?" - echo "* UTF-8" - ;; - beos* | haiku*) - # BeOS and Haiku have a single locale, and it has UTF-8 encoding. - echo "* UTF-8" - ;; - msdosdjgpp*) - # DJGPP 2.03 doesn't have nl_langinfo(CODESET); therefore - # localcharset.c falls back to using the full locale name - # from the environment variables. - echo "#" - echo "# The encodings given here may not all be correct." - echo "# If you find that the encoding given for your language and" - echo "# country is not the one your DOS machine actually uses, just" - echo "# correct it in this file, and send a mail to" - echo "# Juan Manuel Guerrero <juan.guerrero@gmx.de>" - echo "# and Bruno Haible <bruno@clisp.org>." - echo "#" - echo "C ASCII" - # ISO-8859-1 languages - echo "ca CP850" - echo "ca_ES CP850" - echo "da CP865" # not CP850 ?? - echo "da_DK CP865" # not CP850 ?? - echo "de CP850" - echo "de_AT CP850" - echo "de_CH CP850" - echo "de_DE CP850" - echo "en CP850" - echo "en_AU CP850" # not CP437 ?? - echo "en_CA CP850" - echo "en_GB CP850" - echo "en_NZ CP437" - echo "en_US CP437" - echo "en_ZA CP850" # not CP437 ?? - echo "es CP850" - echo "es_AR CP850" - echo "es_BO CP850" - echo "es_CL CP850" - echo "es_CO CP850" - echo "es_CR CP850" - echo "es_CU CP850" - echo "es_DO CP850" - echo "es_EC CP850" - echo "es_ES CP850" - echo "es_GT CP850" - echo "es_HN CP850" - echo "es_MX CP850" - echo "es_NI CP850" - echo "es_PA CP850" - echo "es_PY CP850" - echo "es_PE CP850" - echo "es_SV CP850" - echo "es_UY CP850" - echo "es_VE CP850" - echo "et CP850" - echo "et_EE CP850" - echo "eu CP850" - echo "eu_ES CP850" - echo "fi CP850" - echo "fi_FI CP850" - echo "fr CP850" - echo "fr_BE CP850" - echo "fr_CA CP850" - echo "fr_CH CP850" - echo "fr_FR CP850" - echo "ga CP850" - echo "ga_IE CP850" - echo "gd CP850" - echo "gd_GB CP850" - echo "gl CP850" - echo "gl_ES CP850" - echo "id CP850" # not CP437 ?? - echo "id_ID CP850" # not CP437 ?? - echo "is CP861" # not CP850 ?? - echo "is_IS CP861" # not CP850 ?? - echo "it CP850" - echo "it_CH CP850" - echo "it_IT CP850" - echo "lt CP775" - echo "lt_LT CP775" - echo "lv CP775" - echo "lv_LV CP775" - echo "nb CP865" # not CP850 ?? - echo "nb_NO CP865" # not CP850 ?? - echo "nl CP850" - echo "nl_BE CP850" - echo "nl_NL CP850" - echo "nn CP865" # not CP850 ?? - echo "nn_NO CP865" # not CP850 ?? - echo "no CP865" # not CP850 ?? - echo "no_NO CP865" # not CP850 ?? - echo "pt CP850" - echo "pt_BR CP850" - echo "pt_PT CP850" - echo "sv CP850" - echo "sv_SE CP850" - # ISO-8859-2 languages - echo "cs CP852" - echo "cs_CZ CP852" - echo "hr CP852" - echo "hr_HR CP852" - echo "hu CP852" - echo "hu_HU CP852" - echo "pl CP852" - echo "pl_PL CP852" - echo "ro CP852" - echo "ro_RO CP852" - echo "sk CP852" - echo "sk_SK CP852" - echo "sl CP852" - echo "sl_SI CP852" - echo "sq CP852" - echo "sq_AL CP852" - echo "sr CP852" # CP852 or CP866 or CP855 ?? - echo "sr_CS CP852" # CP852 or CP866 or CP855 ?? - echo "sr_YU CP852" # CP852 or CP866 or CP855 ?? - # ISO-8859-3 languages - echo "mt CP850" - echo "mt_MT CP850" - # ISO-8859-5 languages - echo "be CP866" - echo "be_BE CP866" - echo "bg CP866" # not CP855 ?? - echo "bg_BG CP866" # not CP855 ?? - echo "mk CP866" # not CP855 ?? - echo "mk_MK CP866" # not CP855 ?? - echo "ru CP866" - echo "ru_RU CP866" - echo "uk CP1125" - echo "uk_UA CP1125" - # ISO-8859-6 languages - echo "ar CP864" - echo "ar_AE CP864" - echo "ar_DZ CP864" - echo "ar_EG CP864" - echo "ar_IQ CP864" - echo "ar_IR CP864" - echo "ar_JO CP864" - echo "ar_KW CP864" - echo "ar_MA CP864" - echo "ar_OM CP864" - echo "ar_QA CP864" - echo "ar_SA CP864" - echo "ar_SY CP864" - # ISO-8859-7 languages - echo "el CP869" - echo "el_GR CP869" - # ISO-8859-8 languages - echo "he CP862" - echo "he_IL CP862" - # ISO-8859-9 languages - echo "tr CP857" - echo "tr_TR CP857" - # Japanese - echo "ja CP932" - echo "ja_JP CP932" - # Chinese - echo "zh_CN GBK" - echo "zh_TW CP950" # not CP938 ?? - # Korean - echo "kr CP949" # not CP934 ?? - echo "kr_KR CP949" # not CP934 ?? - # Thai - echo "th CP874" - echo "th_TH CP874" - # Other - echo "eo CP850" - echo "eo_EO CP850" - ;; -esac diff --git a/gnu/creat-safer.c b/gnu/creat-safer.c new file mode 100644 index 00000000..243831d1 --- /dev/null +++ b/gnu/creat-safer.c @@ -0,0 +1,31 @@ +/* Invoke creat, but avoid some glitches. + + Copyright (C) 2005-2006, 2009-2019 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +/* Written by Jim Meyering. */ + +#include <config.h> + +#include "fcntl-safer.h" + +#include <fcntl.h> +#include "unistd-safer.h" + +int +creat_safer (char const *file, mode_t mode) +{ + return fd_safer (creat (file, mode)); +} diff --git a/gnu/dirent--.h b/gnu/dirent--.h index a033f555..167d210b 100644 --- a/gnu/dirent--.h +++ b/gnu/dirent--.h @@ -1,6 +1,6 @@ /* Like dirent.h, but redefine some names to avoid glitches. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free 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 index c9bf3b29..1eb1b357 100644 --- a/gnu/dirent-private.h +++ b/gnu/dirent-private.h @@ -1,5 +1,5 @@ /* Private details of the DIR type. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This program is free 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-safer.h b/gnu/dirent-safer.h index 35ff95e2..4d8e5ee9 100644 --- a/gnu/dirent-safer.h +++ b/gnu/dirent-safer.h @@ -1,6 +1,6 @@ /* Invoke dirent-like functions, but avoid some glitches. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free 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.in.h b/gnu/dirent.in.h index 5b235731..a3c8eb34 100644 --- a/gnu/dirent.in.h +++ b/gnu/dirent.in.h @@ -1,5 +1,5 @@ /* A GNU-like <dirent.h>. - Copyright (C) 2006-2017 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This program is free 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/dirfd.c b/gnu/dirfd.c index 7e38fabd..bc858fd0 100644 --- a/gnu/dirfd.c +++ b/gnu/dirfd.c @@ -1,6 +1,6 @@ /* dirfd.c -- return the file descriptor associated with an open DIR* - Copyright (C) 2001, 2006, 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2001, 2006, 2008-2019 Free Software Foundation, Inc. This program is free 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/dirname-lgpl.c b/gnu/dirname-lgpl.c index 6791185d..7cf89d8c 100644 --- a/gnu/dirname-lgpl.c +++ b/gnu/dirname-lgpl.c @@ -1,6 +1,6 @@ /* dirname.c -- return all but the last element in a file name - Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2017 Free Software + Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/dirname.c b/gnu/dirname.c index 4b475ce9..1e042a5c 100644 --- a/gnu/dirname.c +++ b/gnu/dirname.c @@ -1,6 +1,6 @@ /* dirname.c -- return all but the last element in a file name - Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2017 Free Software + Copyright (C) 1990, 1998, 2000-2001, 2003-2006, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/dirname.h b/gnu/dirname.h index 05cab41f..57916594 100644 --- a/gnu/dirname.h +++ b/gnu/dirname.h @@ -1,6 +1,6 @@ /* Take file names apart into directory and base names. - Copyright (C) 1998, 2001, 2003-2006, 2009-2017 Free Software Foundation, + Copyright (C) 1998, 2001, 2003-2006, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -36,7 +36,7 @@ extern "C" { #endif # if GNULIB_DIRNAME -char *base_name (char const *file); +char *base_name (char const *file) _GL_ATTRIBUTE_MALLOC; char *dir_name (char const *file); # endif diff --git a/gnu/dosname.h b/gnu/dosname.h index 255d57e4..c0ab6848 100644 --- a/gnu/dosname.h +++ b/gnu/dosname.h @@ -1,6 +1,6 @@ /* File names on MS-DOS/Windows systems. - Copyright (C) 2000-2001, 2004-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2000-2001, 2004-2006, 2009-2019 Free Software Foundation, Inc. This 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,9 +20,8 @@ #ifndef _DOSNAME_H #define _DOSNAME_H -#if (defined _WIN32 || defined __WIN32__ || \ - defined __MSDOS__ || defined __CYGWIN__ || \ - defined __EMX__ || defined __DJGPP__) +#if (defined _WIN32 || defined __CYGWIN__ \ + || defined __EMX__ || defined __MSDOS__ || defined __DJGPP__) /* This internal macro assumes ASCII, but all hosts that support drive letters use ASCII. */ # define _IS_DRIVE_LETTER(C) (((unsigned int) (C) | ('a' - 'A')) - 'a' \ diff --git a/gnu/dup-safer-flag.c b/gnu/dup-safer-flag.c index 5e286271..485f7411 100644 --- a/gnu/dup-safer-flag.c +++ b/gnu/dup-safer-flag.c @@ -1,7 +1,7 @@ /* Duplicate a file descriptor result, avoiding clobbering STD{IN,OUT,ERR}_FILENO, with specific flags. - Copyright (C) 2001, 2004-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2001, 2004-2006, 2009-2019 Free Software Foundation, Inc. This program is free 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-safer.c b/gnu/dup-safer.c index a063e973..c0c5f2a9 100644 --- a/gnu/dup-safer.c +++ b/gnu/dup-safer.c @@ -1,6 +1,6 @@ /* Invoke dup, but avoid some glitches. - Copyright (C) 2001, 2004-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2001, 2004-2006, 2009-2019 Free Software Foundation, Inc. This program is free 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 index 098e25f7..d37f920d 100644 --- a/gnu/dup.c +++ b/gnu/dup.c @@ -1,6 +1,6 @@ /* Duplicate an open file descriptor. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This program is free 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/dup2.c b/gnu/dup2.c index 85c1a444..d3aafa45 100644 --- a/gnu/dup2.c +++ b/gnu/dup2.c @@ -1,6 +1,6 @@ /* Duplicate an open file descriptor to a specified file descriptor. - Copyright (C) 1999, 2004-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1999, 2004-2007, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -29,7 +29,7 @@ # undef dup2 -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# if defined _WIN32 && ! defined __CYGWIN__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN diff --git a/gnu/errno.in.h b/gnu/errno.in.h index aaf5fecd..3bd27f1c 100644 --- a/gnu/errno.in.h +++ b/gnu/errno.in.h @@ -1,6 +1,6 @@ /* A POSIX-like <errno.h>. - Copyright (C) 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This 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,7 @@ /* On native Windows platforms, many macros are not defined. */ -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# if defined _WIN32 && ! defined __CYGWIN__ /* These are the same values as defined by MSVC 10, for interoperability. */ @@ -248,7 +248,7 @@ interoperability. */ # define EOWNERDEAD 58 # define ENOTRECOVERABLE 59 -# elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# elif 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 diff --git a/gnu/error.c b/gnu/error.c index ce81a1ee..7e532f0e 100644 --- a/gnu/error.c +++ b/gnu/error.c @@ -1,5 +1,5 @@ /* Error handler for noninteractive utilities - Copyright (C) 1990-1998, 2000-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1990-1998, 2000-2007, 2009-2019 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 @@ -93,7 +93,7 @@ extern void __error_at_line (int status, int errnum, const char *file_name, # include <fcntl.h> # include <unistd.h> -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# if defined _WIN32 && ! defined __CYGWIN__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include <windows.h> @@ -131,7 +131,7 @@ int strerror_r (int errnum, char *buf, size_t buflen); static int is_open (int fd) { -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# if defined _WIN32 && ! defined __CYGWIN__ /* On native Windows: The initial state of unassigned standard file descriptors is that they are open but point to an INVALID_HANDLE_VALUE. There is no fcntl, and the gnulib replacement fcntl does not support diff --git a/gnu/error.h b/gnu/error.h index dc004ef6..3759f8ad 100644 --- a/gnu/error.h +++ b/gnu/error.h @@ -1,5 +1,5 @@ /* Declaration for error-reporting function - Copyright (C) 1995-1997, 2003, 2006, 2008-2017 Free Software Foundation, + Copyright (C) 1995-1997, 2003, 2006, 2008-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. diff --git a/gnu/euidaccess.c b/gnu/euidaccess.c index 298c4459..fece4cfc 100644 --- a/gnu/euidaccess.c +++ b/gnu/euidaccess.c @@ -1,6 +1,6 @@ /* euidaccess -- check if effective user id can access file - Copyright (C) 1990-1991, 1995, 1998, 2000, 2003-2006, 2008-2017 Free + Copyright (C) 1990-1991, 1995, 1998, 2000, 2003-2006, 2008-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -29,8 +29,11 @@ #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> - -#include "root-uid.h" +#if defined _WIN32 && ! defined __CYGWIN__ +# include <io.h> +#else +# include "root-uid.h" +#endif #if HAVE_LIBGEN_H # include <libgen.h> @@ -84,7 +87,9 @@ euidaccess (const char *file, int mode) return accessx (file, mode, ACC_SELF); #elif HAVE_EACCESS /* FreeBSD */ return eaccess (file, mode); -#else /* Mac OS X, NetBSD, OpenBSD, HP-UX, Solaris, Cygwin, mingw, BeOS */ +#elif defined _WIN32 && ! defined __CYGWIN__ /* mingw */ + return _access (file, mode); +#else /* Mac OS X, NetBSD, OpenBSD, HP-UX, Solaris, Cygwin, BeOS */ uid_t uid = getuid (); gid_t gid = getgid (); diff --git a/gnu/exclude.c b/gnu/exclude.c index 50ecb360..21403865 100644 --- a/gnu/exclude.c +++ b/gnu/exclude.c @@ -1,6 +1,6 @@ /* exclude.c -- exclude file names - Copyright (C) 1992-1994, 1997, 1999-2007, 2009-2017 Free Software + Copyright (C) 1992-1994, 1997, 1999-2007, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -146,20 +146,20 @@ fnmatch_pattern_has_wildcards (const char *str, int options) { switch (*str++) { - case '.': - case '{': - case '}': - case '(': - case ')': - if (options & EXCLUDE_REGEX) - return true; - break; + case '.': + case '{': + case '}': + case '(': + case ')': + if (options & EXCLUDE_REGEX) + return true; + break; case '\\': - if (options & EXCLUDE_REGEX) - continue; - else - str += ! (options & FNM_NOESCAPE) && *str; + if (options & EXCLUDE_REGEX) + continue; + else + str += ! (options & FNM_NOESCAPE) && *str; break; case '+': case '@': case '!': @@ -287,10 +287,10 @@ free_exclude_segment (struct exclude_segment *seg) { case exclude_pattern: for (i = 0; i < seg->v.pat.exclude_count; i++) - { - if (seg->v.pat.exclude[i].options & EXCLUDE_REGEX) - regfree (&seg->v.pat.exclude[i].v.re); - } + { + if (seg->v.pat.exclude[i].options & EXCLUDE_REGEX) + regfree (&seg->v.pat.exclude[i].v.re); + } free (seg->v.pat.exclude); break; @@ -387,7 +387,7 @@ exclude_fnmatch (char const *pattern, char const *f, int options) if (! (options & EXCLUDE_ANCHORED)) for (p = f; *p && ! matched; p++) if (*p == '/' && p[1] != '/') - matched = ((*matcher) (pattern, p + 1, options) == 0); + matched = ((*matcher) (pattern, p + 1, options) == 0); return matched; } @@ -525,9 +525,9 @@ add_exclude (struct exclude *ex, char const *pattern, int options) && fnmatch_pattern_has_wildcards (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); + && ((ex->head->options & EXCLUDE_INCLUDE) + == (options & EXCLUDE_INCLUDE)))) + new_exclude_segment (ex, exclude_pattern, options); seg = ex->head; @@ -539,48 +539,48 @@ add_exclude (struct exclude *ex, char const *pattern, int options) patopts->options = options; if (options & EXCLUDE_REGEX) - { - int rc; - int cflags = REG_NOSUB|REG_EXTENDED| - ((options & FNM_CASEFOLD) ? REG_ICASE : 0); - - if (options & FNM_LEADING_DIR) - { - char *tmp; - size_t len = strlen (pattern); - - while (len > 0 && ISSLASH (pattern[len-1])) - --len; - - if (len == 0) - rc = 1; - else - { - tmp = xmalloc (len + 7); - memcpy (tmp, pattern, len); - strcpy (tmp + len, "(/.*)?"); - rc = regcomp (&patopts->v.re, tmp, cflags); - free (tmp); - } - } - else - rc = regcomp (&patopts->v.re, pattern, cflags); - - if (rc) - { - pat->exclude_count--; - return; - } - } + { + int rc; + int cflags = REG_NOSUB|REG_EXTENDED| + ((options & FNM_CASEFOLD) ? REG_ICASE : 0); + + if (options & FNM_LEADING_DIR) + { + char *tmp; + size_t len = strlen (pattern); + + while (len > 0 && ISSLASH (pattern[len-1])) + --len; + + if (len == 0) + rc = 1; + else + { + tmp = xmalloc (len + 7); + memcpy (tmp, pattern, len); + strcpy (tmp + len, "(/.*)?"); + rc = regcomp (&patopts->v.re, tmp, cflags); + free (tmp); + } + } + else + rc = regcomp (&patopts->v.re, pattern, cflags); + + if (rc) + { + pat->exclude_count--; + return; + } + } else - { - if (options & EXCLUDE_ALLOC) - { - pattern = xstrdup (pattern); - exclude_add_pattern_buffer (ex, (char*) pattern); - } - patopts->v.pattern = pattern; - } + { + if (options & EXCLUDE_ALLOC) + { + pattern = xstrdup (pattern); + exclude_add_pattern_buffer (ex, (char*) pattern); + } + patopts->v.pattern = pattern; + } } else { @@ -609,9 +609,9 @@ add_exclude (struct exclude *ex, char const *pattern, int options) int add_exclude_fp (void (*add_func) (struct exclude *, char const *, int, void *), - struct exclude *ex, FILE *fp, int options, - char line_end, - void *data) + struct exclude *ex, FILE *fp, int options, + char line_end, + void *data) { char *buf = NULL; char *p; @@ -674,8 +674,8 @@ call_addfn (struct exclude *ex, char const *pattern, int options, void *data) int add_exclude_file (void (*add_func) (struct exclude *, char const *, int), - struct exclude *ex, char const *file_name, int options, - char line_end) + struct exclude *ex, char const *file_name, int options, + char line_end) { bool use_stdin = file_name[0] == '-' && !file_name[1]; FILE *in; diff --git a/gnu/exclude.h b/gnu/exclude.h index 62cab710..4ab00e3b 100644 --- a/gnu/exclude.h +++ b/gnu/exclude.h @@ -1,6 +1,6 @@ /* exclude.h -- declarations for excluding file names - Copyright (C) 1992-1994, 1997, 1999, 2001-2003, 2005-2006, 2009-2017 Free + Copyright (C) 1992-1994, 1997, 1999, 2001-2003, 2005-2006, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -48,13 +48,13 @@ struct exclude; bool fnmatch_pattern_has_wildcards (const char *, int) _GL_ATTRIBUTE_PURE; -struct exclude *new_exclude (void); +struct exclude *new_exclude (void) _GL_ATTRIBUTE_MALLOC; void free_exclude (struct exclude *); void add_exclude (struct exclude *, char const *, int); int add_exclude_file (void (*) (struct exclude *, char const *, int), struct exclude *, char const *, int, char); int add_exclude_fp (void (*) (struct exclude *, char const *, int, void *), - struct exclude *, FILE *, int, char, void *); + struct exclude *, FILE *, int, char, void *); bool excluded_file_name (struct exclude const *, char const *); void exclude_add_pattern_buffer (struct exclude *ex, char *buf); bool exclude_fnmatch (char const *, char const *, int); diff --git a/gnu/exitfail.c b/gnu/exitfail.c index b2d60121..69b35137 100644 --- a/gnu/exitfail.c +++ b/gnu/exitfail.c @@ -1,6 +1,6 @@ /* Failure exit status - Copyright (C) 2002-2003, 2005-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2002-2003, 2005-2007, 2009-2019 Free Software Foundation, Inc. This program is free 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/exitfail.h b/gnu/exitfail.h index 819919a7..480ad1a1 100644 --- a/gnu/exitfail.h +++ b/gnu/exitfail.h @@ -1,6 +1,6 @@ /* Failure exit status - Copyright (C) 2002, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2002, 2009-2019 Free Software Foundation, Inc. This program is free 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/faccessat.c b/gnu/faccessat.c index fa923582..6c63e61d 100644 --- a/gnu/faccessat.c +++ b/gnu/faccessat.c @@ -1,5 +1,5 @@ /* Check the access rights of a file relative to an open directory. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free 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/fchdir.c b/gnu/fchdir.c index 1ce5d3f9..38ab802e 100644 --- a/gnu/fchdir.c +++ b/gnu/fchdir.c @@ -1,5 +1,5 @@ /* fchdir replacement. - Copyright (C) 2006-2017 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This program is free 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/fchmodat.c b/gnu/fchmodat.c index 639831e7..088d3c02 100644 --- a/gnu/fchmodat.c +++ b/gnu/fchmodat.c @@ -1,5 +1,5 @@ /* Change the protections of file relative to an open directory. - Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2006, 2009-2019 Free Software Foundation, Inc. This program is free 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/fchownat.c b/gnu/fchownat.c index ff58216c..538d86d6 100644 --- a/gnu/fchownat.c +++ b/gnu/fchownat.c @@ -4,7 +4,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-2017 Free Software Foundation, Inc. + Copyright (C) 2006-2007, 2009-2019 Free Software Foundation, Inc. This program is free 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/fcntl--.h b/gnu/fcntl--.h new file mode 100644 index 00000000..9f22e683 --- /dev/null +++ b/gnu/fcntl--.h @@ -0,0 +1,32 @@ +/* Like fcntl.h, but redefine some names to avoid glitches. + + Copyright (C) 2005, 2009-2019 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +/* Written by Paul Eggert. */ + +#include <fcntl.h> +#include "fcntl-safer.h" + +#undef open +#define open open_safer + +#undef creat +#define creat creat_safer + +#if GNULIB_OPENAT_SAFER +# undef openat +# define openat openat_safer +#endif diff --git a/gnu/fcntl-safer.h b/gnu/fcntl-safer.h new file mode 100644 index 00000000..4a7734ee --- /dev/null +++ b/gnu/fcntl-safer.h @@ -0,0 +1,27 @@ +/* Invoke fcntl-like functions, but avoid some glitches. + + Copyright (C) 2005, 2009-2019 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +/* Written by Paul Eggert. */ + +#include <sys/types.h> + +int open_safer (char const *, int, ...); +int creat_safer (char const *, mode_t); + +#if GNULIB_OPENAT_SAFER +int openat_safer (int, char const *, int, ...); +#endif diff --git a/gnu/fcntl.c b/gnu/fcntl.c index 91efd12c..f602fad6 100644 --- a/gnu/fcntl.c +++ b/gnu/fcntl.c @@ -1,6 +1,6 @@ /* Provide file descriptor control. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This 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,12 +27,12 @@ #include <stdarg.h> #include <unistd.h> -#if !HAVE_FCNTL -# define rpl_fcntl fcntl +#ifdef __KLIBC__ +# define INCL_DOS +# include <os2.h> #endif -#undef fcntl -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ /* Get declarations of the native Windows API functions. */ # define WIN32_LEAN_AND_MEAN # include <windows.h> @@ -166,93 +166,18 @@ dupfd (int oldfd, int newfd, int flags) } #endif /* W32 */ +/* Forward declarations, because we '#undef fcntl' in the middle of this + compilation unit. */ +/* Our implementation of fcntl (fd, F_DUPFD, target). */ +static int rpl_fcntl_DUPFD (int fd, int target); +/* Our implementation of fcntl (fd, F_DUPFD_CLOEXEC, target). */ +static int rpl_fcntl_DUPFD_CLOEXEC (int fd, int target); #ifdef __KLIBC__ - -# define INCL_DOS -# include <os2.h> - -static int -klibc_fcntl (int fd, int action, /* arg */...) -{ - va_list arg_ptr; - int arg; - struct stat sbuf; - int result = -1; - - va_start (arg_ptr, action); - arg = va_arg (arg_ptr, int); - result = fcntl (fd, action, arg); - /* EPERM for F_DUPFD, ENOTSUP for others */ - if (result == -1 && (errno == EPERM || errno == ENOTSUP) - && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode)) - { - ULONG ulMode; - - switch (action) - { - case F_DUPFD: - /* Find available fd */ - while (fcntl (arg, F_GETFL) != -1 || errno != EBADF) - arg++; - - result = dup2 (fd, arg); - break; - - /* Using underlying APIs is right ? */ - case F_GETFD: - if (DosQueryFHState (fd, &ulMode)) - break; - - result = (ulMode & OPEN_FLAGS_NOINHERIT) ? FD_CLOEXEC : 0; - break; - - case F_SETFD: - if (arg & ~FD_CLOEXEC) - break; - - if (DosQueryFHState (fd, &ulMode)) - break; - - if (arg & FD_CLOEXEC) - ulMode |= OPEN_FLAGS_NOINHERIT; - else - ulMode &= ~OPEN_FLAGS_NOINHERIT; - - /* Filter supported flags. */ - ulMode &= (OPEN_FLAGS_WRITE_THROUGH | OPEN_FLAGS_FAIL_ON_ERROR - | OPEN_FLAGS_NO_CACHE | OPEN_FLAGS_NOINHERIT); - - if (DosSetFHState (fd, ulMode)) - break; - - result = 0; - break; - - case F_GETFL: - result = 0; - break; - - case F_SETFL: - if (arg != 0) - break; - - result = 0; - break; - - default : - errno = EINVAL; - break; - } - } - - va_end (arg_ptr); - - return result; -} - -# define fcntl klibc_fcntl +/* Adds support for fcntl on directories. */ +static int klibc_fcntl (int fd, int action, /* arg */...); #endif + /* Perform the specified ACTION on the file descriptor FD, possibly using the argument ARG further described below. This replacement handles the following actions, and forwards all others on to the @@ -273,110 +198,35 @@ klibc_fcntl (int fd, int action, /* arg */...) return -1 and set errno. */ int -rpl_fcntl (int fd, int action, /* arg */...) +fcntl (int fd, int action, /* arg */...) +#undef fcntl +#ifdef __KLIBC__ +# define fcntl klibc_fcntl +#endif { va_list arg; int result = -1; va_start (arg, action); switch (action) { - -#if !HAVE_FCNTL case F_DUPFD: { int target = va_arg (arg, int); - result = dupfd (fd, target, 0); + result = rpl_fcntl_DUPFD (fd, target); break; } -#elif FCNTL_DUPFD_BUGGY || REPLACE_FCHDIR - case F_DUPFD: - { - int target = va_arg (arg, int); - /* Detect invalid target; needed for cygwin 1.5.x. */ - if (target < 0 || getdtablesize () <= target) - errno = EINVAL; - else - { - /* Haiku alpha 2 loses fd flags on original. */ - int flags = fcntl (fd, F_GETFD); - if (flags < 0) - { - result = -1; - break; - } - result = fcntl (fd, action, target); - if (0 <= result && fcntl (fd, F_SETFD, flags) == -1) - { - int saved_errno = errno; - close (result); - result = -1; - errno = saved_errno; - } -# if REPLACE_FCHDIR - if (0 <= result) - result = _gl_register_dup (fd, result); -# endif - } - break; - } /* F_DUPFD */ -#endif /* FCNTL_DUPFD_BUGGY || REPLACE_FCHDIR */ case F_DUPFD_CLOEXEC: { int target = va_arg (arg, int); - -#if !HAVE_FCNTL - result = dupfd (fd, target, O_CLOEXEC); - break; -#else /* HAVE_FCNTL */ - /* Try the system call first, if the headers claim it exists - (that is, if GNULIB_defined_F_DUPFD_CLOEXEC is 0), since we - may be running with a glibc that has the macro but with an - older kernel that does not support it. Cache the - information on whether the system call really works, but - avoid caching failure if the corresponding F_DUPFD fails - for any reason. 0 = unknown, 1 = yes, -1 = no. */ - static int have_dupfd_cloexec = GNULIB_defined_F_DUPFD_CLOEXEC ? -1 : 0; - if (0 <= have_dupfd_cloexec) - { - result = fcntl (fd, action, target); - if (0 <= result || errno != EINVAL) - { - have_dupfd_cloexec = 1; -# if REPLACE_FCHDIR - if (0 <= result) - result = _gl_register_dup (fd, result); -# endif - } - else - { - result = rpl_fcntl (fd, F_DUPFD, target); - if (result < 0) - break; - have_dupfd_cloexec = -1; - } - } - else - result = rpl_fcntl (fd, F_DUPFD, target); - if (0 <= result && have_dupfd_cloexec == -1) - { - int flags = fcntl (result, F_GETFD); - if (flags < 0 || fcntl (result, F_SETFD, flags | FD_CLOEXEC) == -1) - { - int saved_errno = errno; - close (result); - errno = saved_errno; - result = -1; - } - } + result = rpl_fcntl_DUPFD_CLOEXEC (fd, target); break; -#endif /* HAVE_FCNTL */ - } /* F_DUPFD_CLOEXEC */ + } #if !HAVE_FCNTL case F_GETFD: { -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# if defined _WIN32 && ! defined __CYGWIN__ HANDLE handle = (HANDLE) _get_osfhandle (fd); DWORD flags; if (handle == INVALID_HANDLE_VALUE @@ -405,8 +255,183 @@ rpl_fcntl (int fd, int action, /* arg */...) default: { #if HAVE_FCNTL - void *p = va_arg (arg, void *); - result = fcntl (fd, action, p); + switch (action) + { + #ifdef F_BARRIERFSYNC /* macOS */ + case F_BARRIERFSYNC: + #endif + #ifdef F_CHKCLEAN /* macOS */ + case F_CHKCLEAN: + #endif + #ifdef F_CLOSEM /* NetBSD, HP-UX */ + case F_CLOSEM: + #endif + #ifdef F_FLUSH_DATA /* macOS */ + case F_FLUSH_DATA: + #endif + #ifdef F_FREEZE_FS /* macOS */ + case F_FREEZE_FS: + #endif + #ifdef F_FULLFSYNC /* macOS */ + case F_FULLFSYNC: + #endif + #ifdef F_GETCONFINED /* macOS */ + case F_GETCONFINED: + #endif + #ifdef F_GETDEFAULTPROTLEVEL /* macOS */ + case F_GETDEFAULTPROTLEVEL: + #endif + #ifdef F_GETFD /* POSIX */ + case F_GETFD: + #endif + #ifdef F_GETFL /* POSIX */ + case F_GETFL: + #endif + #ifdef F_GETLEASE /* Linux */ + case F_GETLEASE: + #endif + #ifdef F_GETNOSIGPIPE /* macOS */ + case F_GETNOSIGPIPE: + #endif + #ifdef F_GETOWN /* POSIX */ + case F_GETOWN: + #endif + #ifdef F_GETPIPE_SZ /* Linux */ + case F_GETPIPE_SZ: + #endif + #ifdef F_GETPROTECTIONCLASS /* macOS */ + case F_GETPROTECTIONCLASS: + #endif + #ifdef F_GETPROTECTIONLEVEL /* macOS */ + case F_GETPROTECTIONLEVEL: + #endif + #ifdef F_GET_SEALS /* Linux */ + case F_GET_SEALS: + #endif + #ifdef F_GETSIG /* Linux */ + case F_GETSIG: + #endif + #ifdef F_MAXFD /* NetBSD */ + case F_MAXFD: + #endif + #ifdef F_RECYCLE /* macOS */ + case F_RECYCLE: + #endif + #ifdef F_SETFIFOENH /* HP-UX */ + case F_SETFIFOENH: + #endif + #ifdef F_THAW_FS /* macOS */ + case F_THAW_FS: + #endif + /* These actions take no argument. */ + result = fcntl (fd, action); + break; + + #ifdef F_ADD_SEALS /* Linux */ + case F_ADD_SEALS: + #endif + #ifdef F_BADFD /* Solaris */ + case F_BADFD: + #endif + #ifdef F_CHECK_OPENEVT /* macOS */ + case F_CHECK_OPENEVT: + #endif + #ifdef F_DUP2FD /* FreeBSD, AIX, Solaris */ + case F_DUP2FD: + #endif + #ifdef F_DUP2FD_CLOEXEC /* FreeBSD, Solaris */ + case F_DUP2FD_CLOEXEC: + #endif + #ifdef F_DUP2FD_CLOFORK /* Solaris */ + case F_DUP2FD_CLOFORK: + #endif + #ifdef F_DUPFD /* POSIX */ + case F_DUPFD: + #endif + #ifdef F_DUPFD_CLOEXEC /* POSIX */ + case F_DUPFD_CLOEXEC: + #endif + #ifdef F_DUPFD_CLOFORK /* Solaris */ + case F_DUPFD_CLOFORK: + #endif + #ifdef F_GETXFL /* Solaris */ + case F_GETXFL: + #endif + #ifdef F_GLOBAL_NOCACHE /* macOS */ + case F_GLOBAL_NOCACHE: + #endif + #ifdef F_MAKECOMPRESSED /* macOS */ + case F_MAKECOMPRESSED: + #endif + #ifdef F_MOVEDATAEXTENTS /* macOS */ + case F_MOVEDATAEXTENTS: + #endif + #ifdef F_NOCACHE /* macOS */ + case F_NOCACHE: + #endif + #ifdef F_NODIRECT /* macOS */ + case F_NODIRECT: + #endif + #ifdef F_NOTIFY /* Linux */ + case F_NOTIFY: + #endif + #ifdef F_OPLKACK /* IRIX */ + case F_OPLKACK: + #endif + #ifdef F_OPLKREG /* IRIX */ + case F_OPLKREG: + #endif + #ifdef F_RDAHEAD /* macOS */ + case F_RDAHEAD: + #endif + #ifdef F_SETBACKINGSTORE /* macOS */ + case F_SETBACKINGSTORE: + #endif + #ifdef F_SETCONFINED /* macOS */ + case F_SETCONFINED: + #endif + #ifdef F_SETFD /* POSIX */ + case F_SETFD: + #endif + #ifdef F_SETFL /* POSIX */ + case F_SETFL: + #endif + #ifdef F_SETLEASE /* Linux */ + case F_SETLEASE: + #endif + #ifdef F_SETNOSIGPIPE /* macOS */ + case F_SETNOSIGPIPE: + #endif + #ifdef F_SETOWN /* POSIX */ + case F_SETOWN: + #endif + #ifdef F_SETPIPE_SZ /* Linux */ + case F_SETPIPE_SZ: + #endif + #ifdef F_SETPROTECTIONCLASS /* macOS */ + case F_SETPROTECTIONCLASS: + #endif + #ifdef F_SETSIG /* Linux */ + case F_SETSIG: + #endif + #ifdef F_SINGLE_WRITER /* macOS */ + case F_SINGLE_WRITER: + #endif + /* These actions take an 'int' argument. */ + { + int x = va_arg (arg, int); + result = fcntl (fd, action, x); + } + break; + + default: + /* Other actions take a pointer argument. */ + { + void *p = va_arg (arg, void *); + result = fcntl (fd, action, p); + } + break; + } #else errno = EINVAL; #endif @@ -416,3 +441,186 @@ rpl_fcntl (int fd, int action, /* arg */...) va_end (arg); return result; } + +static int +rpl_fcntl_DUPFD (int fd, int target) +{ + int result; +#if !HAVE_FCNTL + result = dupfd (fd, target, 0); +#elif FCNTL_DUPFD_BUGGY || REPLACE_FCHDIR + /* Detect invalid target; needed for cygwin 1.5.x. */ + if (target < 0 || getdtablesize () <= target) + { + result = -1; + errno = EINVAL; + } + else + { + /* Haiku alpha 2 loses fd flags on original. */ + int flags = fcntl (fd, F_GETFD); + if (flags < 0) + result = -1; + else + { + result = fcntl (fd, F_DUPFD, target); + if (0 <= result && fcntl (fd, F_SETFD, flags) == -1) + { + int saved_errno = errno; + close (result); + result = -1; + errno = saved_errno; + } +# if REPLACE_FCHDIR + if (0 <= result) + result = _gl_register_dup (fd, result); +# endif + } + } +#else + result = fcntl (fd, F_DUPFD, target); +#endif + return result; +} + +static int +rpl_fcntl_DUPFD_CLOEXEC (int fd, int target) +{ + int result; +#if !HAVE_FCNTL + result = dupfd (fd, target, O_CLOEXEC); +#else /* HAVE_FCNTL */ +# if defined __HAIKU__ + /* On Haiku, the system fcntl (fd, F_DUPFD_CLOEXEC, target) sets + the FD_CLOEXEC flag on fd, not on target. Therefore avoid the + system fcntl in this case. */ +# define have_dupfd_cloexec -1 +# else + /* Try the system call first, if the headers claim it exists + (that is, if GNULIB_defined_F_DUPFD_CLOEXEC is 0), since we + may be running with a glibc that has the macro but with an + older kernel that does not support it. Cache the + information on whether the system call really works, but + avoid caching failure if the corresponding F_DUPFD fails + for any reason. 0 = unknown, 1 = yes, -1 = no. */ + static int have_dupfd_cloexec = GNULIB_defined_F_DUPFD_CLOEXEC ? -1 : 0; + if (0 <= have_dupfd_cloexec) + { + result = fcntl (fd, F_DUPFD_CLOEXEC, target); + if (0 <= result || errno != EINVAL) + { + have_dupfd_cloexec = 1; +# if REPLACE_FCHDIR + if (0 <= result) + result = _gl_register_dup (fd, result); +# endif + } + else + { + result = rpl_fcntl_DUPFD (fd, target); + if (result >= 0) + have_dupfd_cloexec = -1; + } + } + else +# endif + result = rpl_fcntl_DUPFD (fd, target); + if (0 <= result && have_dupfd_cloexec == -1) + { + int flags = fcntl (result, F_GETFD); + if (flags < 0 || fcntl (result, F_SETFD, flags | FD_CLOEXEC) == -1) + { + int saved_errno = errno; + close (result); + errno = saved_errno; + result = -1; + } + } +#endif /* HAVE_FCNTL */ + return result; +} + +#undef fcntl + +#ifdef __KLIBC__ + +static int +klibc_fcntl (int fd, int action, /* arg */...); +{ + va_list arg_ptr; + int arg; + struct stat sbuf; + int result; + + va_start (arg_ptr, action); + arg = va_arg (arg_ptr, int); + result = fcntl (fd, action, arg); + /* EPERM for F_DUPFD, ENOTSUP for others */ + if (result == -1 && (errno == EPERM || errno == ENOTSUP) + && !fstat (fd, &sbuf) && S_ISDIR (sbuf.st_mode)) + { + ULONG ulMode; + + switch (action) + { + case F_DUPFD: + /* Find available fd */ + while (fcntl (arg, F_GETFL) != -1 || errno != EBADF) + arg++; + + result = dup2 (fd, arg); + break; + + /* Using underlying APIs is right ? */ + case F_GETFD: + if (DosQueryFHState (fd, &ulMode)) + break; + + result = (ulMode & OPEN_FLAGS_NOINHERIT) ? FD_CLOEXEC : 0; + break; + + case F_SETFD: + if (arg & ~FD_CLOEXEC) + break; + + if (DosQueryFHState (fd, &ulMode)) + break; + + if (arg & FD_CLOEXEC) + ulMode |= OPEN_FLAGS_NOINHERIT; + else + ulMode &= ~OPEN_FLAGS_NOINHERIT; + + /* Filter supported flags. */ + ulMode &= (OPEN_FLAGS_WRITE_THROUGH | OPEN_FLAGS_FAIL_ON_ERROR + | OPEN_FLAGS_NO_CACHE | OPEN_FLAGS_NOINHERIT); + + if (DosSetFHState (fd, ulMode)) + break; + + result = 0; + break; + + case F_GETFL: + result = 0; + break; + + case F_SETFL: + if (arg != 0) + break; + + result = 0; + break; + + default: + errno = EINVAL; + break; + } + } + + va_end (arg_ptr); + + return result; +} + +#endif diff --git a/gnu/fcntl.in.h b/gnu/fcntl.in.h index 00b270c9..eb70dc61 100644 --- a/gnu/fcntl.in.h +++ b/gnu/fcntl.in.h @@ -1,6 +1,6 @@ /* Like <fcntl.h>, but with non-working flags defined to 0. - Copyright (C) 2006-2017 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -68,7 +68,7 @@ /* Native Windows platforms declare open(), creat() in <io.h>. */ #if (@GNULIB_OPEN@ || defined GNULIB_POSIXCHECK) \ - && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) + && (defined _WIN32 && ! defined __CYGWIN__) # include <io.h> #endif diff --git a/gnu/fd-hook.c b/gnu/fd-hook.c index 390b64a3..78791198 100644 --- a/gnu/fd-hook.c +++ b/gnu/fd-hook.c @@ -1,5 +1,5 @@ /* Hook for making file descriptor functions close(), ioctl() extensible. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 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 diff --git a/gnu/fd-hook.h b/gnu/fd-hook.h index deaa7582..bf07f006 100644 --- a/gnu/fd-hook.h +++ b/gnu/fd-hook.h @@ -1,5 +1,5 @@ /* Hook for making file descriptor functions close(), ioctl() extensible. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published diff --git a/gnu/fd-safer-flag.c b/gnu/fd-safer-flag.c index 9bfcd292..7c026ef5 100644 --- a/gnu/fd-safer-flag.c +++ b/gnu/fd-safer-flag.c @@ -1,7 +1,7 @@ /* Adjust a file descriptor result so that it avoids clobbering STD{IN,OUT,ERR}_FILENO, with specific flags. - Copyright (C) 2005-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2009-2019 Free Software Foundation, Inc. This program is free 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/fd-safer.c b/gnu/fd-safer.c index 330203b1..b5113e13 100644 --- a/gnu/fd-safer.c +++ b/gnu/fd-safer.c @@ -1,6 +1,6 @@ /* Return a safer copy of a file descriptor. - Copyright (C) 2005-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2009-2019 Free Software Foundation, Inc. This program is free 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/fdopendir.c b/gnu/fdopendir.c index 7f722585..b65588ac 100644 --- a/gnu/fdopendir.c +++ b/gnu/fdopendir.c @@ -1,5 +1,5 @@ /* provide a replacement fdopendir function - Copyright (C) 2004-2017 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This program is free 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/fdutimensat.c b/gnu/fdutimensat.c index 4041edd1..8b4d5e05 100644 --- a/gnu/fdutimensat.c +++ b/gnu/fdutimensat.c @@ -1,6 +1,6 @@ /* Set file access and modification times. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program 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 index 1ce71324..69a23ad8 100644 --- a/gnu/file-has-acl.c +++ b/gnu/file-has-acl.c @@ -1,6 +1,6 @@ /* Test whether a file has a nontrivial ACL. -*- coding: utf-8 -*- - Copyright (C) 2002-2003, 2005-2017 Free Software Foundation, Inc. + Copyright (C) 2002-2003, 2005-2019 Free Software Foundation, Inc. This 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 @@ file_has_acl (char const *name, struct stat const *sb) # elif HAVE_ACL_GET_FILE /* POSIX 1003.1e (draft 17 -- abandoned) specific version. */ - /* Linux, FreeBSD, Mac OS X, IRIX, Tru64 */ + /* Linux, FreeBSD, Mac OS X, IRIX, Tru64, Cygwin >= 2.5 */ int ret; if (HAVE_ACL_EXTENDED_FILE) /* Linux */ @@ -84,7 +84,7 @@ file_has_acl (char const *name, struct stat const *sb) ACL_TYPE_DEFAULT. */ ret = acl_extended_file (name); } - else /* FreeBSD, Mac OS X, IRIX, Tru64 */ + else /* FreeBSD, Mac OS X, IRIX, Tru64, Cygwin >= 2.5 */ { # if HAVE_ACL_TYPE_EXTENDED /* Mac OS X */ /* On Mac OS X, acl_get_file (name, ACL_TYPE_ACCESS) @@ -100,7 +100,7 @@ file_has_acl (char const *name, struct stat const *sb) } else ret = -1; -# else /* FreeBSD, IRIX, Tru64 */ +# else /* FreeBSD, IRIX, Tru64, Cygwin >= 2.5 */ acl_t acl = acl_get_file (name, ACL_TYPE_ACCESS); if (acl) { @@ -114,7 +114,7 @@ file_has_acl (char const *name, struct stat const *sb) /* 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 */ +# else /* FreeBSD, IRIX, Cygwin >= 2.5 */ /* 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 @@ -125,8 +125,15 @@ file_has_acl (char const *name, struct stat const *sb) acl = acl_get_file (name, ACL_TYPE_DEFAULT); if (acl) { +# ifdef __CYGWIN__ /* Cygwin >= 2.5 */ + ret = acl_access_nontrivial (acl); + saved_errno = errno; + acl_free (acl); + errno = saved_errno; +# else ret = (0 < acl_entries (acl)); acl_free (acl); +# endif } else ret = -1; @@ -141,7 +148,7 @@ file_has_acl (char const *name, struct stat const *sb) return - acl_errno_valid (errno); return ret; -# elif HAVE_FACL && defined GETACL /* Solaris, Cygwin, not HP-UX */ +# elif HAVE_FACL && defined GETACL /* Solaris, Cygwin < 2.5, not HP-UX */ # if defined ACL_NO_TRIVIAL diff --git a/gnu/fileblocks.c b/gnu/fileblocks.c index 4a6eb332..758e7609 100644 --- a/gnu/fileblocks.c +++ b/gnu/fileblocks.c @@ -1,6 +1,6 @@ /* Convert file size to number of blocks on System V-like machines. - Copyright (C) 1990, 1997-1999, 2004-2006, 2009-2017 Free Software + Copyright (C) 1990, 1997-1999, 2004-2006, 2009-2019 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 index ae4d409c..3ba31059 100644 --- a/gnu/filename.h +++ b/gnu/filename.h @@ -1,5 +1,5 @@ /* Basic filename support macros. - Copyright (C) 2001-2004, 2007-2017 Free Software Foundation, Inc. + Copyright (C) 2001-2004, 2007-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -28,7 +28,7 @@ extern "C" { 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__ +#if defined _WIN32 || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ /* Native Windows, Cygwin, OS/2, DOS */ # define ISSLASH(C) ((C) == '/' || (C) == '\\') # define HAS_DEVICE(P) \ diff --git a/gnu/filenamecat-lgpl.c b/gnu/filenamecat-lgpl.c index 2bd43c05..98b105a1 100644 --- a/gnu/filenamecat-lgpl.c +++ b/gnu/filenamecat-lgpl.c @@ -1,6 +1,6 @@ /* Concatenate two arbitrary file names. - Copyright (C) 1996-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1996-2007, 2009-2019 Free Software Foundation, Inc. This 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,55 +31,54 @@ # define mempcpy(D, S, N) ((void *) ((char *) memcpy (D, S, N) + (N))) #endif -/* 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 * _GL_ATTRIBUTE_PURE -longest_relative_suffix (char const *f) -{ - for (f += FILE_SYSTEM_PREFIX_LEN (f); ISSLASH (*f); f++) - continue; - return f; -} - -/* Concatenate two file name components, DIR and ABASE, in +/* Concatenate two file name components, DIR and BASE, in newly-allocated storage and return the result. The resulting file name F is such that the commands "ls F" and "(cd - DIR; ls BASE)" refer to the same file, where BASE is ABASE with any - file system prefixes and leading separators removed. - Arrange for a directory separator if necessary between DIR and BASE - in the result, removing any redundant separators. + DIR; ls ./BASE)" refer to the same file. If necessary, put + a separator between DIR and BASE in the result. Typically this + separator is "/", but in rare cases it might be ".". In any case, if BASE_IN_RESULT is non-NULL, set - *BASE_IN_RESULT to point to the copy of ABASE in the returned - concatenation. However, if ABASE begins with more than one slash, - set *BASE_IN_RESULT to point to the sole corresponding slash that - is copied into the result buffer. + *BASE_IN_RESULT to point to the copy of BASE at the end of the + returned concatenation. Return NULL if malloc fails. */ char * -mfile_name_concat (char const *dir, char const *abase, char **base_in_result) +mfile_name_concat (char const *dir, char const *base, char **base_in_result) { char const *dirbase = last_component (dir); size_t dirbaselen = base_len (dirbase); size_t dirlen = dirbase - dir + dirbaselen; - size_t needs_separator = (dirbaselen && ! ISSLASH (dirbase[dirbaselen - 1])); - - char const *base = longest_relative_suffix (abase); size_t baselen = strlen (base); - - char *p_concat = malloc (dirlen + needs_separator + baselen + 1); + char sep = '\0'; + if (dirbaselen) + { + /* DIR is not a file system root, so separate with / if needed. */ + if (! ISSLASH (dir[dirlen - 1]) && ! ISSLASH (*base)) + sep = '/'; + } + else if (ISSLASH (*base)) + { + /* DIR is a file system root and BASE begins with a slash, so + separate with ".". For example, if DIR is "/" and BASE is + "/foo" then return "/./foo", as "//foo" would be wrong on + some POSIX systems. A fancier algorithm could omit "." in + some cases but is not worth the trouble. */ + sep = '.'; + } + + char *p_concat = malloc (dirlen + (sep != '\0') + baselen + 1); char *p; if (p_concat == NULL) return NULL; p = mempcpy (p_concat, dir, dirlen); - *p = DIRECTORY_SEPARATOR; - p += needs_separator; + *p = sep; + p += sep != '\0'; if (base_in_result) - *base_in_result = p - IS_ABSOLUTE_FILE_NAME (abase); + *base_in_result = p; p = mempcpy (p, base, baselen); *p = '\0'; diff --git a/gnu/filenamecat.h b/gnu/filenamecat.h index aa996c18..67b46b0a 100644 --- a/gnu/filenamecat.h +++ b/gnu/filenamecat.h @@ -1,6 +1,6 @@ /* Concatenate two arbitrary file names. - Copyright (C) 1996-1997, 2003, 2005, 2007, 2009-2017 Free Software + Copyright (C) 1996-1997, 2003, 2005, 2007, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/flexmember.h b/gnu/flexmember.h index 7e4f95d3..0d65f6da 100644 --- a/gnu/flexmember.h +++ b/gnu/flexmember.h @@ -1,6 +1,6 @@ /* Sizes of structs with flexible array members. - Copyright 2016-2017 Free Software Foundation, Inc. + Copyright 2016-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. diff --git a/gnu/float+.h b/gnu/float+.h index fb999b97..5af861f7 100644 --- a/gnu/float+.h +++ b/gnu/float+.h @@ -1,5 +1,5 @@ /* Supplemental information about the floating-point formats. - Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2007, 2009-2019 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2007. This program is free software; you can redistribute it and/or modify diff --git a/gnu/float.c b/gnu/float.c index c4b059fe..8872deb5 100644 --- a/gnu/float.c +++ b/gnu/float.c @@ -1,5 +1,5 @@ /* Auxiliary definitions for <float.h>. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 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/float.in.h b/gnu/float.in.h index e7028e48..ba094a8e 100644 --- a/gnu/float.in.h +++ b/gnu/float.in.h @@ -1,6 +1,6 @@ /* A correct <float.h>. - Copyright (C) 2007-2017 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This program is free 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/fnmatch.c b/gnu/fnmatch.c index 0a7e8879..dbcd2906 100644 --- a/gnu/fnmatch.c +++ b/gnu/fnmatch.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-1993, 1996-2007, 2009-2017 Free Software Foundation, Inc. +/* Copyright (C) 1991-1993, 1996-2007, 2009-2019 Free Software Foundation, Inc. This program is free 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/fnmatch.in.h b/gnu/fnmatch.in.h index 7e9636b9..2ead7828 100644 --- a/gnu/fnmatch.in.h +++ b/gnu/fnmatch.in.h @@ -1,4 +1,5 @@ -/* Copyright (C) 1991-1993, 1996-1999, 2001-2003, 2005, 2007, 2009-2017 Free +/* Substitute for and wrapper around <fnmatch.h>. + Copyright (C) 1991-1993, 1996-1999, 2001-2003, 2005, 2007, 2009-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. @@ -16,15 +17,29 @@ You should have received a copy of the GNU General Public License along with this program; if not, see <https://www.gnu.org/licenses/>. */ -#ifndef _FNMATCH_H -#define _FNMATCH_H 1 +#ifndef _@GUARD_PREFIX@_FNMATCH_H -/* The definition of _GL_ARG_NONNULL is copied here. */ +#if __GNUC__ >= 3 +@PRAGMA_SYSTEM_HEADER@ +#endif +@PRAGMA_COLUMNS@ -#ifdef __cplusplus -extern "C" { +/* The include_next requires a split double-inclusion guard. */ +#if @HAVE_FNMATCH_H@ && !@REPLACE_FNMATCH@ +# @INCLUDE_NEXT@ @NEXT_FNMATCH_H@ #endif +#ifndef _@GUARD_PREFIX@_FNMATCH_H +#define _@GUARD_PREFIX@_FNMATCH_H + +/* The definitions of _GL_FUNCDECL_RPL etc. are copied here. */ + +/* The definition of _GL_ARG_NONNULL is copied here. */ + +/* The definition of _GL_WARN_ON_USE is copied here. */ + +#if !@HAVE_FNMATCH_H@ || @REPLACE_FNMATCH@ + /* We #undef these before defining them because some losing systems (HP-UX A.08.07 for example) define these in <unistd.h>. */ #undef FNM_PATHNAME @@ -54,14 +69,42 @@ extern "C" { # define FNM_NOSYS (-1) #endif +#endif + + +#if @GNULIB_FNMATCH@ /* Match NAME against the file name pattern PATTERN, returning zero if it matches, FNM_NOMATCH if not. */ -extern int fnmatch (const char *__pattern, const char *__name, - int __flags) - _GL_ARG_NONNULL ((1, 2)); - -#ifdef __cplusplus -} +# if @REPLACE_FNMATCH@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# define fnmatch rpl_fnmatch +# endif +_GL_FUNCDECL_RPL (fnmatch, int, + (const char *pattern, const char *name, int flags) + _GL_ARG_NONNULL ((1, 2))); +_GL_CXXALIAS_RPL (fnmatch, int, + (const char *pattern, const char *name, int flags)); +# else +# if !@HAVE_FNMATCH@ +_GL_FUNCDECL_SYS (fnmatch, int, + (const char *pattern, const char *name, int flags) + _GL_ARG_NONNULL ((1, 2))); +# endif +_GL_CXXALIAS_SYS (fnmatch, int, + (const char *pattern, const char *name, int flags)); +# endif +# if !GNULIB_FNMATCH_GNU +_GL_CXXALIASWARN (fnmatch); +# endif +#elif defined GNULIB_POSIXCHECK +# undef fnmatch +# if HAVE_RAW_DECL_FNMATCH +_GL_WARN_ON_USE (fnmatch, + "fnmatch does not portably work - " + "use gnulib module fnmatch for portability or gnulib module fnmatch-gnu for a glibc compatible implementation"); +# endif #endif -#endif /* fnmatch.h */ + +#endif /* _@GUARD_PREFIX@_FNMATCH_H */ +#endif /* _@GUARD_PREFIX@_FNMATCH_H */ diff --git a/gnu/fnmatch_loop.c b/gnu/fnmatch_loop.c index e2292904..82a7ceed 100644 --- a/gnu/fnmatch_loop.c +++ b/gnu/fnmatch_loop.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-1993, 1996-2006, 2009-2017 Free Software Foundation, Inc. +/* Copyright (C) 1991-1993, 1996-2006, 2009-2019 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 diff --git a/gnu/fpending.c b/gnu/fpending.c index 5811a4a7..3c01285b 100644 --- a/gnu/fpending.c +++ b/gnu/fpending.c @@ -1,5 +1,5 @@ /* fpending.c -- return the number of pending output bytes on a stream - Copyright (C) 2000, 2004, 2006-2007, 2009-2017 Free Software Foundation, + Copyright (C) 2000, 2004, 2006-2007, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -24,6 +24,9 @@ #include "stdio-impl.h" +/* This file is not used on systems that already have the __fpending function, + namely glibc >= 2.2, Solaris >= 7, Android API >= 23. */ + /* Return the number of pending (aka buffered, unflushed) bytes on the stream, FP, that is open for writing. */ size_t @@ -32,7 +35,8 @@ __fpending (FILE *fp) /* Most systems provide FILE as a struct and the necessary bitmask in <stdio.h>, because they need it for implementing getc() and putc() as fast macros. */ -#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ +#if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 + /* GNU libc, BeOS, Haiku, Linux libc5 */ return fp->_IO_write_ptr - fp->_IO_write_base; #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ /* FreeBSD, NetBSD, OpenBSD, DragonFly, Mac OS X, Cygwin, Minix 3, Android */ diff --git a/gnu/fpending.h b/gnu/fpending.h index 73c7d795..097a3ef0 100644 --- a/gnu/fpending.h +++ b/gnu/fpending.h @@ -1,6 +1,6 @@ /* Declare __fpending. - Copyright (C) 2000, 2003, 2005-2006, 2009-2017 Free Software Foundation, + Copyright (C) 2000, 2003, 2005-2006, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/fprintftime.h b/gnu/fprintftime.h index 88f1d242..d598d1e0 100644 --- a/gnu/fprintftime.h +++ b/gnu/fprintftime.h @@ -1,6 +1,6 @@ /* Generate time strings directly to the output. */ -/* Copyright (C) 2005, 2009-2017 Free Software Foundation, Inc. +/* Copyright (C) 2005, 2009-2019 Free Software Foundation, Inc. This program is free 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/fseek.c b/gnu/fseek.c index 21dbd53f..bb22fe08 100644 --- a/gnu/fseek.c +++ b/gnu/fseek.c @@ -1,5 +1,5 @@ /* An fseek() function that, together with fflush(), is POSIX compliant. - Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2007, 2009-2019 Free Software Foundation, Inc. This program is free 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/fseeko.c b/gnu/fseeko.c index d0f24d8a..859d212b 100644 --- a/gnu/fseeko.c +++ b/gnu/fseeko.c @@ -1,5 +1,5 @@ /* An fseeko() function that, together with fflush(), is POSIX compliant. - Copyright (C) 2007-2017 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -33,9 +33,9 @@ fseeko (FILE *fp, off_t offset, int whence) #endif #if _GL_WINDOWS_64_BIT_OFF_T # undef fseeko -# if HAVE__FSEEKI64 /* msvc, mingw64 */ +# if HAVE__FSEEKI64 && HAVE_DECL__FSEEKI64 /* msvc, mingw since msvcrt8.0, mingw64 */ # define fseeko _fseeki64 -# else /* mingw */ +# else /* mingw before msvcrt8.0 */ # define fseeko fseeko64 # endif #endif @@ -47,7 +47,8 @@ fseeko (FILE *fp, off_t offset, int whence) #endif /* These tests are based on fpurge.c. */ -#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ +#if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 + /* GNU libc, BeOS, Haiku, Linux libc5 */ if (fp->_IO_read_end == fp->_IO_read_ptr && fp->_IO_write_ptr == fp->_IO_write_base && fp->_IO_save_base == NULL) @@ -123,7 +124,8 @@ fseeko (FILE *fp, off_t offset, int whence) return -1; } -#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */ +#if defined _IO_EOF_SEEN || defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 + /* GNU libc, BeOS, Haiku, Linux libc5 */ fp->_flags &= ~_IO_EOF_SEEN; fp->_offset = pos; #elif defined __sferror || defined __DragonFly__ || defined __ANDROID__ diff --git a/gnu/fstat.c b/gnu/fstat.c index 7ab2cdcb..4f0e6188 100644 --- a/gnu/fstat.c +++ b/gnu/fstat.c @@ -1,5 +1,5 @@ /* fstat() replacement. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This 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,7 @@ #include <sys/stat.h> #undef __need_system_sys_stat_h -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ # define WINDOWS_NATIVE #endif @@ -45,6 +45,8 @@ orig_fstat (int fd, struct stat *buf) above. */ #include "sys/stat.h" +#include "stat-time.h" + #include <errno.h> #include <unistd.h> #ifdef WINDOWS_NATIVE @@ -83,6 +85,6 @@ rpl_fstat (int fd, struct stat *buf) } return _gl_fstat_by_handle (h, NULL, buf); #else - return orig_fstat (fd, buf); + return stat_time_normalize (orig_fstat (fd, buf), buf); #endif } diff --git a/gnu/fstatat.c b/gnu/fstatat.c index 294861f5..515b5693 100644 --- a/gnu/fstatat.c +++ b/gnu/fstatat.c @@ -1,6 +1,6 @@ /* Work around an fstatat bug on Solaris 9. - Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2006, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -41,6 +41,8 @@ orig_fstatat (int fd, char const *filename, struct stat *buf, int flags) above. */ #include "sys/stat.h" +#include "stat-time.h" + #include <errno.h> #include <fcntl.h> #include <string.h> @@ -51,6 +53,12 @@ orig_fstatat (int fd, char const *filename, struct stat *buf, int flags) # define LSTAT_FOLLOWS_SLASHED_SYMLINK 0 # endif +static int +normal_fstatat (int fd, char const *file, struct stat *st, int flag) +{ + return stat_time_normalize (orig_fstatat (fd, file, st, flag), st); +} + /* 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. @@ -63,7 +71,7 @@ orig_fstatat (int fd, char const *filename, struct stat *buf, int flags) int rpl_fstatat (int fd, char const *file, struct stat *st, int flag) { - int result = orig_fstatat (fd, file, st, flag); + int result = normal_fstatat (fd, file, st, flag); size_t len; if (LSTAT_FOLLOWS_SLASHED_SYMLINK || result != 0) @@ -79,7 +87,7 @@ rpl_fstatat (int fd, char const *file, struct stat *st, int flag) errno = ENOTDIR; return -1; } - result = orig_fstatat (fd, file, st, flag & ~AT_SYMLINK_NOFOLLOW); + result = normal_fstatat (fd, file, st, flag & ~AT_SYMLINK_NOFOLLOW); } /* Fix stat behavior. */ if (result == 0 && !S_ISDIR (st->st_mode) && file[len - 1] == '/') diff --git a/gnu/full-write.c b/gnu/full-write.c index 338b9424..ec6f8104 100644 --- a/gnu/full-write.c +++ b/gnu/full-write.c @@ -1,6 +1,6 @@ /* An interface to read and write that retries (if necessary) until complete. - Copyright (C) 1993-1994, 1997-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1993-1994, 1997-2006, 2009-2019 Free Software Foundation, Inc. This program is free 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/full-write.h b/gnu/full-write.h index bc0f162f..0e0be3a3 100644 --- a/gnu/full-write.h +++ b/gnu/full-write.h @@ -1,6 +1,6 @@ /* An interface to write() that writes all it is asked to write. - Copyright (C) 2002-2003, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2002-2003, 2009-2019 Free Software Foundation, Inc. This program is free 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/futimens.c b/gnu/futimens.c index 6c303926..cc03796c 100644 --- a/gnu/futimens.c +++ b/gnu/futimens.c @@ -1,5 +1,5 @@ /* Set the access and modification time of an open fd. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free 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/get-permissions.c b/gnu/get-permissions.c index c54d71c1..99b4664a 100644 --- a/gnu/get-permissions.c +++ b/gnu/get-permissions.c @@ -1,6 +1,6 @@ /* Get permissions of a file. -*- coding: utf-8 -*- - Copyright (C) 2002-2003, 2005-2017 Free Software Foundation, Inc. + Copyright (C) 2002-2003, 2005-2019 Free Software Foundation, Inc. This 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,16 +31,16 @@ int get_permissions (const char *name, int desc, mode_t mode, - struct permission_context *ctx) + struct permission_context *ctx) { memset (ctx, 0, sizeof *ctx); ctx->mode = mode; #if USE_ACL && HAVE_ACL_GET_FILE /* POSIX 1003.1e (draft 17 -- abandoned) specific version. */ - /* Linux, FreeBSD, Mac OS X, IRIX, Tru64 */ + /* Linux, FreeBSD, Mac OS X, IRIX, Tru64, Cygwin >= 2.5 */ # if !HAVE_ACL_TYPE_EXTENDED - /* Linux, FreeBSD, IRIX, Tru64 */ + /* Linux, FreeBSD, IRIX, Tru64, Cygwin >= 2.5 */ if (HAVE_ACL_GET_FD && desc != -1) ctx->acl = acl_get_fd (desc); @@ -57,16 +57,16 @@ get_permissions (const char *name, int desc, mode_t mode, { ctx->default_acl = acl_get_file (name, ACL_TYPE_DEFAULT); if (ctx->default_acl == NULL) - return -1; + return -1; } -# if HAVE_ACL_TYPE_NFS4 /* FreeBSD */ +# if HAVE_ACL_TYPE_NFS4 /* FreeBSD */ /* TODO (see set_permissions). */ -# endif +# endif -# else /* HAVE_ACL_TYPE_EXTENDED */ +# else /* HAVE_ACL_TYPE_EXTENDED */ /* Mac OS X */ /* On Mac OS X, acl_get_file (name, ACL_TYPE_ACCESS) @@ -115,16 +115,16 @@ get_permissions (const char *name, int desc, mode_t mode, int ret; if (desc != -1) - ret = facl (desc, ACE_GETACLCNT, 0, NULL); + ret = facl (desc, ACE_GETACLCNT, 0, NULL); else - ret = acl (name, ACE_GETACLCNT, 0, NULL); + ret = acl (name, ACE_GETACLCNT, 0, NULL); if (ret < 0) - { - if (errno == ENOSYS || errno == EINVAL) - ret = 0; - else - return -1; - } + { + if (errno == ENOSYS || errno == EINVAL) + ret = 0; + else + return -1; + } ctx->ace_count = ret; if (ctx->ace_count == 0) @@ -138,15 +138,15 @@ get_permissions (const char *name, int desc, mode_t mode, } if (desc != -1) - ret = facl (desc, ACE_GETACL, ctx->ace_count, ctx->ace_entries); + ret = facl (desc, ACE_GETACL, ctx->ace_count, ctx->ace_entries); else - ret = acl (name, ACE_GETACL, ctx->ace_count, ctx->ace_entries); + ret = acl (name, ACE_GETACL, ctx->ace_count, ctx->ace_entries); if (ret < 0) { if (errno == ENOSYS || errno == EINVAL) { - free (ctx->ace_entries); - ctx->ace_entries = NULL; + free (ctx->ace_entries); + ctx->ace_entries = NULL; ctx->ace_count = 0; break; } @@ -154,10 +154,10 @@ get_permissions (const char *name, int desc, mode_t mode, return -1; } if (ret <= ctx->ace_count) - { - ctx->ace_count = ret; - break; - } + { + ctx->ace_count = ret; + break; + } /* Huh? The number of ACL entries has increased since the last call. Repeat. */ free (ctx->ace_entries); @@ -170,20 +170,20 @@ get_permissions (const char *name, int desc, mode_t mode, int ret; if (desc != -1) - ret = facl (desc, GETACLCNT, 0, NULL); + ret = facl (desc, GETACLCNT, 0, NULL); else - ret = acl (name, GETACLCNT, 0, NULL); + ret = acl (name, GETACLCNT, 0, NULL); if (ret < 0) - { - if (errno == ENOSYS || errno == ENOTSUP || errno == EOPNOTSUPP) - ret = 0; - else - return -1; - } + { + if (errno == ENOSYS || errno == ENOTSUP || errno == EOPNOTSUPP) + ret = 0; + else + return -1; + } ctx->count = ret; if (ctx->count == 0) - break; + break; ctx->entries = (aclent_t *) malloc (ctx->count * sizeof (aclent_t)); if (ctx->entries == NULL) @@ -193,26 +193,26 @@ get_permissions (const char *name, int desc, mode_t mode, } if (desc != -1) - ret = facl (desc, GETACL, ctx->count, ctx->entries); + ret = facl (desc, GETACL, ctx->count, ctx->entries); else - ret = acl (name, GETACL, ctx->count, ctx->entries); + ret = acl (name, GETACL, ctx->count, ctx->entries); if (ret < 0) - { - if (errno == ENOSYS || errno == ENOTSUP || errno == EOPNOTSUPP) - { - free (ctx->entries); - ctx->entries = NULL; - ctx->count = 0; - break; - } - else - return -1; - } + { + if (errno == ENOSYS || errno == ENOTSUP || errno == EOPNOTSUPP) + { + free (ctx->entries); + ctx->entries = NULL; + ctx->count = 0; + break; + } + else + return -1; + } if (ret <= ctx->count) - { - ctx->count = ret; - break; - } + { + ctx->count = ret; + break; + } /* Huh? The number of ACL entries has increased since the last call. Repeat. */ free (ctx->entries); diff --git a/gnu/getcwd-lgpl.c b/gnu/getcwd-lgpl.c index 3aaab32b..b224cfc9 100644 --- a/gnu/getcwd-lgpl.c +++ b/gnu/getcwd-lgpl.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2011-2017 Free Software Foundation, Inc. +/* Copyright (C) 2011-2019 Free Software Foundation, Inc. This file is part of gnulib. This program is free software: you can redistribute it and/or modify diff --git a/gnu/getcwd.c b/gnu/getcwd.c index bb13dded..41eedb70 100644 --- a/gnu/getcwd.c +++ b/gnu/getcwd.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-1999, 2004-2017 Free Software Foundation, Inc. +/* Copyright (C) 1991-1999, 2004-2019 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 diff --git a/gnu/getdelim.c b/gnu/getdelim.c index 83cc2b08..528678c2 100644 --- a/gnu/getdelim.c +++ b/gnu/getdelim.c @@ -1,5 +1,5 @@ /* getdelim.c --- Implementation of replacement getdelim function. - Copyright (C) 1994, 1996-1998, 2001, 2003, 2005-2017 Free Software + Copyright (C) 1994, 1996-1998, 2001, 2003, 2005-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or @@ -50,7 +50,7 @@ static void alloc_failed (void) { -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ /* Avoid errno problem without using the realloc module; see: https://lists.gnu.org/r/bug-gnulib/2016-08/msg00025.html */ errno = ENOMEM; diff --git a/gnu/getdtablesize.c b/gnu/getdtablesize.c index d0a5ecaf..03a92435 100644 --- a/gnu/getdtablesize.c +++ b/gnu/getdtablesize.c @@ -1,5 +1,5 @@ /* getdtablesize() function: Return maximum possible file descriptor value + 1. - Copyright (C) 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2008. This program is free software: you can redistribute it and/or modify @@ -20,7 +20,7 @@ /* Specification. */ #include <unistd.h> -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ # include <stdio.h> diff --git a/gnu/getfilecon.c b/gnu/getfilecon.c index 0067dbd2..713896de 100644 --- a/gnu/getfilecon.c +++ b/gnu/getfilecon.c @@ -1,5 +1,5 @@ /* wrap getfilecon, lgetfilecon, and fgetfilecon - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free 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/getgroups.c b/gnu/getgroups.c index 52473a5a..d8c77e9a 100644 --- a/gnu/getgroups.c +++ b/gnu/getgroups.c @@ -1,6 +1,6 @@ /* provide consistent interface to getgroups for systems that don't allow N==0 - Copyright (C) 1996, 1999, 2003, 2006-2017 Free Software Foundation, Inc. + Copyright (C) 1996, 1999, 2003, 2006-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -58,8 +58,8 @@ int posix_getgroups (int, gid_t []) __asm ("_getgroups"); # define getgroups posix_getgroups # endif -/* On at least Ultrix 4.3 and NextStep 3.2, getgroups (0, NULL) always - fails. On other systems, it returns the number of supplemental +/* On at least NeXTstep 3.2, getgroups (0, NULL) always fails. + On other systems, it returns the number of supplemental groups for the process. This function handles that special case and lets the system-provided function handle all others. However, it can fail with ENOMEM if memory is tight. It is unspecified diff --git a/gnu/getline.c b/gnu/getline.c index 92a25438..40882fb2 100644 --- a/gnu/getline.c +++ b/gnu/getline.c @@ -1,5 +1,5 @@ /* getline.c --- Implementation of replacement getline function. - Copyright (C) 2005-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2005-2007, 2009-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as diff --git a/gnu/getopt-cdefs.in.h b/gnu/getopt-cdefs.in.h index 83a18f9a..049145b3 100644 --- a/gnu/getopt-cdefs.in.h +++ b/gnu/getopt-cdefs.in.h @@ -1,5 +1,5 @@ /* getopt-on-non-glibc compatibility macros. - Copyright (C) 1989-2017 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of gnulib. Unlike most of the getopt implementation, it is NOT shared with the GNU C Library. diff --git a/gnu/getopt-core.h b/gnu/getopt-core.h index ec0734c7..6360ad69 100644 --- a/gnu/getopt-core.h +++ b/gnu/getopt-core.h @@ -1,5 +1,5 @@ /* Declarations for getopt (basic, portable features only). - Copyright (C) 1989-2017 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of the GNU C Library and is also part of gnulib. Patches to this file should be submitted to both projects. diff --git a/gnu/getopt-ext.h b/gnu/getopt-ext.h index 4cdbfb0e..13cb0077 100644 --- a/gnu/getopt-ext.h +++ b/gnu/getopt-ext.h @@ -1,5 +1,5 @@ /* Declarations for getopt (GNU extensions). - Copyright (C) 1989-2017 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of the GNU C Library and is also part of gnulib. Patches to this file should be submitted to both projects. diff --git a/gnu/getopt-pfx-core.h b/gnu/getopt-pfx-core.h index 02b2b506..8fac2691 100644 --- a/gnu/getopt-pfx-core.h +++ b/gnu/getopt-pfx-core.h @@ -1,5 +1,5 @@ /* getopt (basic, portable features) gnulib wrapper header. - Copyright (C) 1989-2017 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of gnulib. Unlike most of the getopt implementation, it is NOT shared with the GNU C Library. diff --git a/gnu/getopt-pfx-ext.h b/gnu/getopt-pfx-ext.h index 75e6fd32..0e21aefb 100644 --- a/gnu/getopt-pfx-ext.h +++ b/gnu/getopt-pfx-ext.h @@ -1,5 +1,5 @@ /* getopt (GNU extensions) gnulib wrapper header. - Copyright (C) 1989-2017 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of gnulib. Unlike most of the getopt implementation, it is NOT shared with the GNU C Library. diff --git a/gnu/getopt.c b/gnu/getopt.c index b0cc35bf..8ee075a8 100644 --- a/gnu/getopt.c +++ b/gnu/getopt.c @@ -1,5 +1,5 @@ /* Getopt for GNU. - Copyright (C) 1987-2017 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of the GNU C Library and is also part of gnulib. Patches to this file should be submitted to both projects. @@ -46,7 +46,7 @@ /* When used standalone, flockfile and funlockfile might not be available. */ # if (!defined _POSIX_THREAD_SAFE_FUNCTIONS \ - || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) + || (defined _WIN32 && ! defined __CYGWIN__)) # define flockfile(fp) /* nop */ # define funlockfile(fp) /* nop */ # endif diff --git a/gnu/getopt.in.h b/gnu/getopt.in.h index 594ed809..c77f34ce 100644 --- a/gnu/getopt.in.h +++ b/gnu/getopt.in.h @@ -1,5 +1,5 @@ /* Declarations for getopt. - Copyright (C) 1989-2017 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of gnulib. Unlike most of the getopt implementation, it is NOT shared with the GNU C Library, which supplies a different version of diff --git a/gnu/getopt1.c b/gnu/getopt1.c index d689f4ce..883aa6bb 100644 --- a/gnu/getopt1.c +++ b/gnu/getopt1.c @@ -1,5 +1,5 @@ /* getopt_long and getopt_long_only entry points for GNU getopt. - Copyright (C) 1987-2017 Free Software Foundation, Inc. + Copyright (C) 1987-2019 Free Software Foundation, Inc. This file is part of the GNU C Library and is also part of gnulib. Patches to this file should be submitted to both projects. diff --git a/gnu/getopt_int.h b/gnu/getopt_int.h index e33856ce..e63706f6 100644 --- a/gnu/getopt_int.h +++ b/gnu/getopt_int.h @@ -1,5 +1,5 @@ /* Internal declarations for getopt. - Copyright (C) 1989-2017 Free Software Foundation, Inc. + Copyright (C) 1989-2019 Free Software Foundation, Inc. This file is part of the GNU C Library and is also part of gnulib. Patches to this file should be submitted to both projects. diff --git a/gnu/getpagesize.c b/gnu/getpagesize.c index 4594a4a8..3a698292 100644 --- a/gnu/getpagesize.c +++ b/gnu/getpagesize.c @@ -1,6 +1,6 @@ /* getpagesize emulation for systems where it cannot be done in a C macro. - Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2007, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -23,7 +23,7 @@ #include <unistd.h> /* This implementation is only for native Windows systems. */ -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ # define WIN32_LEAN_AND_MEAN # include <windows.h> diff --git a/gnu/getprogname.c b/gnu/getprogname.c index a2b23362..96fa7596 100644 --- a/gnu/getprogname.c +++ b/gnu/getprogname.c @@ -1,5 +1,5 @@ /* Program name management. - Copyright (C) 2016-2017 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -110,9 +110,73 @@ getprogname (void) first = 0; pid_t pid = getpid (); struct pst_status status; - p = (0 < pstat_getproc (&status, sizeof status, 0, pid) - ? strdup (status.pst_ucomm) - : NULL); + if (pstat_getproc (&status, sizeof status, 0, pid) > 0) + { + char *ucomm = status.pst_ucomm; + char *cmd = status.pst_cmd; + if (strlen (ucomm) < PST_UCOMMLEN - 1) + p = ucomm; + else + { + /* ucomm is truncated to length PST_UCOMMLEN - 1. + Look at cmd instead. */ + char *space = strchr (cmd, ' '); + if (space != NULL) + *space = '\0'; + p = strrchr (cmd, '/'); + if (p != NULL) + p++; + else + p = cmd; + if (strlen (p) > PST_UCOMMLEN - 1 + && memcmp (p, ucomm, PST_UCOMMLEN - 1) == 0) + /* p is less truncated than ucomm. */ + ; + else + p = ucomm; + } + p = strdup (p); + } + else + { +# if !defined __LP64__ + /* Support for 32-bit programs running in 64-bit HP-UX. + The documented way to do this is to use the same source code + as above, but in a compilation unit where '#define _PSTAT64 1' + is in effect. I prefer a single compilation unit; the struct + size and the offsets are not going to change. */ + char status64[1216]; + if (__pstat_getproc64 (status64, sizeof status64, 0, pid) > 0) + { + char *ucomm = status64 + 288; + char *cmd = status64 + 168; + if (strlen (ucomm) < PST_UCOMMLEN - 1) + p = ucomm; + else + { + /* ucomm is truncated to length PST_UCOMMLEN - 1. + Look at cmd instead. */ + char *space = strchr (cmd, ' '); + if (space != NULL) + *space = '\0'; + p = strrchr (cmd, '/'); + if (p != NULL) + p++; + else + p = cmd; + if (strlen (p) > PST_UCOMMLEN - 1 + && memcmp (p, ucomm, PST_UCOMMLEN - 1) == 0) + /* p is less truncated than ucomm. */ + ; + else + p = ucomm; + } + p = strdup (p); + } + else +# endif + p = NULL; + } if (!p) p = "?"; } @@ -182,3 +246,10 @@ getprogname (void) } #endif + +/* + * Hey Emacs! + * Local Variables: + * coding: utf-8 + * End: + */ diff --git a/gnu/getprogname.h b/gnu/getprogname.h index dd5fac84..1590b38d 100644 --- a/gnu/getprogname.h +++ b/gnu/getprogname.h @@ -1,5 +1,5 @@ /* Program name management. - Copyright (C) 2016-2017 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This program is free 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/gettext.h b/gnu/gettext.h index f6150be6..89f53d91 100644 --- a/gnu/gettext.h +++ b/gnu/gettext.h @@ -1,5 +1,5 @@ /* Convenience header for conditional use of GNU <libintl.h>. - Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2017 Free Software + Copyright (C) 1995-1998, 2000-2002, 2004-2006, 2009-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify @@ -185,7 +185,7 @@ npgettext_aux (const char *domain, #include <string.h> #if (((__GNUC__ >= 3 || __GNUG__ >= 2) && !defined __STRICT_ANSI__) \ - /* || __STDC_VERSION__ == 199901L + /* || (__STDC_VERSION__ == 199901L && !defined __HP_cc) || (__STDC_VERSION__ >= 201112L && !defined __STDC_NO_VLA__) */ ) # define _LIBGETTEXT_HAVE_VARIABLE_SIZE_ARRAYS 1 #else diff --git a/gnu/gettime.c b/gnu/gettime.c index e5af26c9..1fd153f6 100644 --- a/gnu/gettime.c +++ b/gnu/gettime.c @@ -1,6 +1,6 @@ /* gettime -- get the system clock - Copyright (C) 2002, 2004-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2002, 2004-2007, 2009-2019 Free Software Foundation, Inc. This 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,21 +28,22 @@ void gettime (struct timespec *ts) { -#if HAVE_NANOTIME - nanotime (ts); +#if defined CLOCK_REALTIME && HAVE_CLOCK_GETTIME + clock_gettime (CLOCK_REALTIME, ts); #else + struct timeval tv; + gettimeofday (&tv, NULL); + ts->tv_sec = tv.tv_sec; + ts->tv_nsec = tv.tv_usec * 1000; +#endif +} -# if defined CLOCK_REALTIME && HAVE_CLOCK_GETTIME - if (clock_gettime (CLOCK_REALTIME, ts) == 0) - return; -# endif - - { - struct timeval tv; - gettimeofday (&tv, NULL); - ts->tv_sec = tv.tv_sec; - ts->tv_nsec = tv.tv_usec * 1000; - } +/* Return the current system time as a struct timespec. */ -#endif +struct timespec +current_timespec (void) +{ + struct timespec ts; + gettime (&ts); + return ts; } diff --git a/gnu/gettimeofday.c b/gnu/gettimeofday.c index a11b1830..360cdc4d 100644 --- a/gnu/gettimeofday.c +++ b/gnu/gettimeofday.c @@ -1,6 +1,6 @@ /* Provide gettimeofday for systems that don't have it or for which it's broken. - Copyright (C) 2001-2003, 2005-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2001-2003, 2005-2007, 2009-2019 Free Software Foundation, Inc. This 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 <time.h> -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ # define WINDOWS_NATIVE # include <windows.h> #endif @@ -33,6 +33,10 @@ #ifdef WINDOWS_NATIVE +/* Avoid warnings from gcc -Wcast-function-type. */ +# define GetProcAddress \ + (void *) GetProcAddress + /* GetSystemTimePreciseAsFileTime was introduced only in Windows 8. */ typedef void (WINAPI * GetSystemTimePreciseAsFileTimeFuncType) (FILETIME *lpTime); static GetSystemTimePreciseAsFileTimeFuncType GetSystemTimePreciseAsFileTimeFunc = NULL; @@ -45,7 +49,7 @@ initialize (void) if (kernel32 != NULL) { GetSystemTimePreciseAsFileTimeFunc = - (GetSystemTimePreciseAsFileTimeFuncType) GetProcAddress (kernel32, "GetSystemTimePreciseAsFileTime"); + (GetSystemTimePreciseAsFileTimeFuncType) GetProcAddress (kernel32, "GetSystemTimePreciseAsFileTime"); } initialized = TRUE; } diff --git a/gnu/group-member.c b/gnu/group-member.c index 7c4ce496..ad61cf0b 100644 --- a/gnu/group-member.c +++ b/gnu/group-member.c @@ -1,6 +1,6 @@ /* group-member.c -- determine whether group id is in calling user's group list - Copyright (C) 1994, 1997-1998, 2003, 2005-2006, 2009-2017 Free Software + Copyright (C) 1994, 1997-1998, 2003, 2005-2006, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/hard-locale.c b/gnu/hard-locale.c index 12a3512e..dcfcad62 100644 --- a/gnu/hard-locale.c +++ b/gnu/hard-locale.c @@ -1,6 +1,6 @@ /* hard-locale.c -- Determine whether a locale is hard. - Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2017 Free Software + Copyright (C) 1997-1999, 2002-2004, 2006-2007, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/hard-locale.h b/gnu/hard-locale.h index 7f8533d7..8f1da96e 100644 --- a/gnu/hard-locale.h +++ b/gnu/hard-locale.h @@ -1,6 +1,6 @@ /* Determine whether a locale is hard. - Copyright (C) 1999, 2003-2004, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1999, 2003-2004, 2009-2019 Free Software Foundation, Inc. This program is free 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/hash.c b/gnu/hash.c index 6e7a4af3..9e1f8e84 100644 --- a/gnu/hash.c +++ b/gnu/hash.c @@ -1,6 +1,6 @@ /* hash - hashing table processing. - Copyright (C) 1998-2004, 2006-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1998-2004, 2006-2007, 2009-2019 Free Software Foundation, Inc. Written by Jim Meyering, 1992. diff --git a/gnu/hash.h b/gnu/hash.h index faac4685..a1a483a3 100644 --- a/gnu/hash.h +++ b/gnu/hash.h @@ -1,5 +1,5 @@ /* hash - hashing table processing. - Copyright (C) 1998-1999, 2001, 2003, 2009-2017 Free Software Foundation, + Copyright (C) 1998-1999, 2001, 2003, 2009-2019 Free Software Foundation, Inc. Written by Jim Meyering <meyering@ascend.com>, 1998. diff --git a/gnu/human.c b/gnu/human.c index e4725019..fbfa2060 100644 --- a/gnu/human.c +++ b/gnu/human.c @@ -1,6 +1,6 @@ /* human.c -- print human readable file size - Copyright (C) 1996-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1996-2007, 2009-2019 Free Software Foundation, Inc. This program is free 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/human.h b/gnu/human.h index a87b6f2f..31a47377 100644 --- a/gnu/human.h +++ b/gnu/human.h @@ -1,6 +1,6 @@ /* human.h -- print human readable file size - Copyright (C) 1996-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1996-2007, 2009-2019 Free Software Foundation, Inc. This program is free 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/intprops.h b/gnu/intprops.h index 2df7b1f9..1a44ae55 100644 --- a/gnu/intprops.h +++ b/gnu/intprops.h @@ -1,6 +1,6 @@ /* intprops.h -- properties of integer types - Copyright (C) 2001-2017 Free Software Foundation, Inc. + Copyright (C) 2001-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -22,12 +22,13 @@ #include <limits.h> -/* Return a value with the common real type of E and V and the value of V. */ -#define _GL_INT_CONVERT(e, v) (0 * (e) + (v)) +/* Return a value with the common real type of E and V and the value of V. + Do not evaluate E. */ +#define _GL_INT_CONVERT(e, v) ((1 ? 0 : (e)) + (v)) /* Act like _GL_INT_CONVERT (E, -V) but work around a bug in IRIX 6.5 cc; see <https://lists.gnu.org/r/bug-gnulib/2011-05/msg00406.html>. */ -#define _GL_INT_NEGATE_CONVERT(e, v) (0 * (e) - (v)) +#define _GL_INT_NEGATE_CONVERT(e, v) ((1 ? 0 : (e)) - (v)) /* The extra casts in the following macros work around compiler bugs, e.g., in Cray C 5.0.3.0. */ @@ -40,13 +41,14 @@ #define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) /* Return 1 if the real expression E, after promotion, has a - signed or floating type. */ + signed or floating type. Do not evaluate E. */ #define EXPR_SIGNED(e) (_GL_INT_NEGATE_CONVERT (e, 1) < 0) /* Minimum and maximum values for integer types and expressions. */ /* The width in bits of the integer type or expression T. + Do not evaluate T. Padding bits are not supported; this is checked at compile-time below. */ #define TYPE_WIDTH(t) (sizeof (t) * CHAR_BIT) @@ -58,7 +60,7 @@ : ((((t) 1 << (TYPE_WIDTH (t) - 2)) - 1) * 2 + 1))) /* The maximum and minimum values for the type of the expression E, - after integer promotion. E should not have side effects. */ + after integer promotion. E is not evaluated. */ #define _GL_INT_MINIMUM(e) \ (EXPR_SIGNED (e) \ ? ~ _GL_SIGNED_INT_MAXIMUM (e) \ @@ -340,8 +342,8 @@ 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))) + _GL_INT_MINIMUM (_GL_INT_CONVERT (a, b)), \ + _GL_INT_MAXIMUM (_GL_INT_CONVERT (a, b))) /* Store the low-order bits of A + B, A - B, A * B, respectively, into *R. Return 1 if the result overflows. See above for restrictions. */ diff --git a/gnu/inttostr.h b/gnu/inttostr.h index 680b84b1..7cb67748 100644 --- a/gnu/inttostr.h +++ b/gnu/inttostr.h @@ -1,6 +1,6 @@ /* inttostr.h -- convert integers to printable strings - Copyright (C) 2001-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2001-2006, 2009-2019 Free Software Foundation, Inc. This program is free 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/inttypes.in.h b/gnu/inttypes.in.h index e7357e96..d3c735c1 100644 --- a/gnu/inttypes.in.h +++ b/gnu/inttypes.in.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2006-2017 Free Software Foundation, Inc. +/* Copyright (C) 2006-2019 Free Software Foundation, Inc. Written by Paul Eggert, Bruno Haible, Derek Price. This file is part of gnulib. @@ -52,7 +52,7 @@ /* Get CHAR_BIT. */ #include <limits.h> /* On mingw, __USE_MINGW_ANSI_STDIO only works if <stdio.h> is also included */ -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ # include <stdio.h> #endif @@ -1067,11 +1067,13 @@ _GL_WARN_ON_USE (imaxabs, "imaxabs is unportable - " #endif #if @GNULIB_IMAXDIV@ -# if !@HAVE_DECL_IMAXDIV@ +# if !@HAVE_IMAXDIV_T@ # if !GNULIB_defined_imaxdiv_t typedef struct { intmax_t quot; intmax_t rem; } imaxdiv_t; # define GNULIB_defined_imaxdiv_t 1 # endif +# endif +# if !@HAVE_DECL_IMAXDIV@ extern imaxdiv_t imaxdiv (intmax_t, intmax_t); # endif #elif defined GNULIB_POSIXCHECK diff --git a/gnu/iswblank.c b/gnu/iswblank.c index c3b5b072..6d7a6dfd 100644 --- a/gnu/iswblank.c +++ b/gnu/iswblank.c @@ -1,5 +1,5 @@ /* Test wide character for being blank. - Copyright (C) 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This program is free 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/itold.c b/gnu/itold.c index f787f676..bca01eb5 100644 --- a/gnu/itold.c +++ b/gnu/itold.c @@ -1,5 +1,5 @@ /* Replacement for 'int' to 'long double' conversion routine. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 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/langinfo.in.h b/gnu/langinfo.in.h index 394737ec..6d406350 100644 --- a/gnu/langinfo.in.h +++ b/gnu/langinfo.in.h @@ -1,5 +1,5 @@ /* Substitute for and wrapper around <langinfo.h>. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -86,6 +86,18 @@ typedef int nl_item; # define MON_10 (MON_1 + 9) # define MON_11 (MON_1 + 10) # define MON_12 (MON_1 + 11) +# define ALTMON_1 10200 +# define ALTMON_2 (ALTMON_1 + 1) +# define ALTMON_3 (ALTMON_1 + 2) +# define ALTMON_4 (ALTMON_1 + 3) +# define ALTMON_5 (ALTMON_1 + 4) +# define ALTMON_6 (ALTMON_1 + 5) +# define ALTMON_7 (ALTMON_1 + 6) +# define ALTMON_8 (ALTMON_1 + 7) +# define ALTMON_9 (ALTMON_1 + 8) +# define ALTMON_10 (ALTMON_1 + 9) +# define ALTMON_11 (ALTMON_1 + 10) +# define ALTMON_12 (ALTMON_1 + 11) # define ABMON_1 10035 # define ABMON_2 (ABMON_1 + 1) # define ABMON_3 (ABMON_1 + 2) @@ -138,6 +150,22 @@ typedef int nl_item; # define GNULIB_defined_T_FMT_AMPM 1 # endif +# if !@HAVE_LANGINFO_ALTMON@ +# define ALTMON_1 10200 +# define ALTMON_2 (ALTMON_1 + 1) +# define ALTMON_3 (ALTMON_1 + 2) +# define ALTMON_4 (ALTMON_1 + 3) +# define ALTMON_5 (ALTMON_1 + 4) +# define ALTMON_6 (ALTMON_1 + 5) +# define ALTMON_7 (ALTMON_1 + 6) +# define ALTMON_8 (ALTMON_1 + 7) +# define ALTMON_9 (ALTMON_1 + 8) +# define ALTMON_10 (ALTMON_1 + 9) +# define ALTMON_11 (ALTMON_1 + 10) +# define ALTMON_12 (ALTMON_1 + 11) +# define GNULIB_defined_ALTMON 1 +# endif + # if !@HAVE_LANGINFO_ERA@ # define ERA 10047 # define ERA_D_FMT 10048 diff --git a/gnu/lchown.c b/gnu/lchown.c index fff81e0b..03138c29 100644 --- a/gnu/lchown.c +++ b/gnu/lchown.c @@ -1,6 +1,6 @@ /* Provide a stub lchown function for systems that lack it. - Copyright (C) 1998-1999, 2002, 2004, 2006-2007, 2009-2017 Free Software + Copyright (C) 1998-1999, 2002, 2004, 2006-2007, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/libc-config.h b/gnu/libc-config.h new file mode 100644 index 00000000..57c69661 --- /dev/null +++ b/gnu/libc-config.h @@ -0,0 +1,174 @@ +/* System definitions for code taken from the GNU C Library + + Copyright 2017-2019 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or + modify it under the terms of the GNU General Public + License as published by the Free Software Foundation; either + version 3 of the License, or (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received a copy of the GNU General Public + License along with this program; if not, see + <https://www.gnu.org/licenses/>. */ + +/* Written by Paul Eggert. */ + +/* This is intended to be a good-enough substitute for glibc system + macros like those defined in <sys/cdefs.h>, so that Gnulib code + shared with glibc can do this as the first #include: + + #ifndef _LIBC + # include <libc-config.h> + #endif + + When compiled as part of glibc this is a no-op; when compiled as + part of Gnulib this includes Gnulib's <config.h> and defines macros + that glibc library code would normally assume. */ + +#include <config.h> + +/* On glibc this includes <features.h> and <sys/cdefs.h> and #defines + _FEATURES_H, __WORDSIZE, and __set_errno. On FreeBSD 11 it + includes <sys/cdefs.h> which defines __nonnull. Elsewhere it + is harmless. */ +#include <errno.h> + +/* From glibc <errno.h>. */ +#ifndef __set_errno +# define __set_errno(val) (errno = (val)) +#endif + +/* From glibc <features.h>. */ + +#ifndef __GNUC_PREREQ +# if defined __GNUC__ && defined __GNUC_MINOR__ +# define __GNUC_PREREQ(maj, min) ((maj) < __GNUC__ + ((min) <= __GNUC_MINOR__)) +# else +# define __GNUC_PREREQ(maj, min) 0 +# endif +#endif + +#ifndef __glibc_clang_prereq +# if defined __clang_major__ && defined __clang_minor__ +# define __glibc_clang_prereq(maj, min) \ + ((maj) < __clang_major__ + ((min) <= __clang_minor__)) +# else +# define __glibc_clang_prereq(maj, min) 0 +# endif +#endif + + +/* Prepare to include <cdefs.h>, which is our copy of glibc + <sys/cdefs.h>. */ + +/* Define _FEATURES_H so that <cdefs.h> does not include <features.h>. */ +#ifndef _FEATURES_H +# define _FEATURES_H 1 +#endif +/* Define __WORDSIZE so that <cdefs.h> does not attempt to include + nonexistent files. Make it a syntax error, since Gnulib does not + use __WORDSIZE now, and if Gnulib uses it later the syntax error + will let us know that __WORDSIZE needs configuring. */ +#ifndef __WORDSIZE +# define __WORDSIZE %%% +#endif +/* Undef the macros unconditionally defined by our copy of glibc + <sys/cdefs.h>, so that they do not clash with any system-defined + versions. */ +#undef _SYS_CDEFS_H +#undef __ASMNAME +#undef __ASMNAME2 +#undef __BEGIN_DECLS +#undef __CONCAT +#undef __END_DECLS +#undef __HAVE_GENERIC_SELECTION +#undef __LDBL_COMPAT +#undef __LDBL_REDIR +#undef __LDBL_REDIR1 +#undef __LDBL_REDIR1_DECL +#undef __LDBL_REDIR1_NTH +#undef __LDBL_REDIR_DECL +#undef __LDBL_REDIR_NTH +#undef __LEAF +#undef __LEAF_ATTR +#undef __NTH +#undef __NTHNL +#undef __P +#undef __PMT +#undef __REDIRECT +#undef __REDIRECT_LDBL +#undef __REDIRECT_NTH +#undef __REDIRECT_NTHNL +#undef __REDIRECT_NTH_LDBL +#undef __STRING +#undef __THROW +#undef __THROWNL +#undef __always_inline +#undef __attribute__ +#undef __attribute_alloc_size__ +#undef __attribute_artificial__ +#undef __attribute_const__ +#undef __attribute_deprecated__ +#undef __attribute_deprecated_msg__ +#undef __attribute_format_arg__ +#undef __attribute_format_strfmon__ +#undef __attribute_malloc__ +#undef __attribute_noinline__ +#undef __attribute_nonstring__ +#undef __attribute_pure__ +#undef __attribute_used__ +#undef __attribute_warn_unused_result__ +#undef __bos +#undef __bos0 +#undef __errordecl +#undef __extension__ +#undef __extern_always_inline +#undef __extern_inline +#undef __flexarr +#undef __fortify_function +#undef __glibc_c99_flexarr_available +#undef __glibc_clang_has_extension +#undef __glibc_likely +#undef __glibc_macro_warning +#undef __glibc_macro_warning1 +#undef __glibc_unlikely +#undef __inline +#undef __ptr_t +#undef __restrict +#undef __restrict_arr +#undef __va_arg_pack +#undef __va_arg_pack_len +#undef __warnattr +#undef __warndecl + +/* Include our copy of glibc <sys/cdefs.h>. */ +#include <cdefs.h> + +/* <cdefs.h> __inline is too pessimistic for non-GCC. */ +#undef __inline +#ifndef HAVE___INLINE +# if 199901 <= __STDC_VERSION__ || defined inline +# define __inline inline +# else +# define __inline +# endif +#endif + + +/* A substitute for glibc <libc-symbols.h>, good enough for Gnulib. */ +#define attribute_hidden +#define libc_hidden_proto(name, ...) +#define libc_hidden_def(name) +#define libc_hidden_weak(name) +#define libc_hidden_ver(local, name) +#define strong_alias(name, aliasname) +#define weak_alias(name, aliasname) + +/* A substitute for glibc <shlib-compat.h>, good enough for Gnulib. */ +#define SHLIB_COMPAT(lib, introduced, obsoleted) 0 +#define versioned_symbol(lib, local, symbol, version) diff --git a/gnu/limits.in.h b/gnu/limits.in.h index 78dcf310..39750b38 100644 --- a/gnu/limits.in.h +++ b/gnu/limits.in.h @@ -1,6 +1,6 @@ /* A GNU-like <limits.h>. - Copyright 2016-2017 Free Software Foundation, Inc. + Copyright 2016-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -28,15 +28,32 @@ #ifndef _@GUARD_PREFIX@_LIMITS_H #define _@GUARD_PREFIX@_LIMITS_H -/* For HP-UX 11.31. */ -#if defined LONG_LONG_MIN && !defined LLONG_MIN -# define LLONG_MIN LONG_LONG_MIN +#ifndef LLONG_MIN +# if defined LONG_LONG_MIN /* HP-UX 11.31 */ +# define LLONG_MIN LONG_LONG_MIN +# elif defined LONGLONG_MIN /* IRIX 6.5 */ +# define LLONG_MIN LONGLONG_MIN +# elif defined __GNUC__ +# define LLONG_MIN (- __LONG_LONG_MAX__ - 1LL) +# endif #endif -#if defined LONG_LONG_MAX && !defined LLONG_MAX -# define LLONG_MAX LONG_LONG_MAX +#ifndef LLONG_MAX +# if defined LONG_LONG_MAX /* HP-UX 11.31 */ +# define LLONG_MAX LONG_LONG_MAX +# elif defined LONGLONG_MAX /* IRIX 6.5 */ +# define LLONG_MAX LONGLONG_MAX +# elif defined __GNUC__ +# define LLONG_MAX __LONG_LONG_MAX__ +# endif #endif -#if defined ULONG_LONG_MAX && !defined ULLONG_MAX -# define ULLONG_MAX ULONG_LONG_MAX +#ifndef ULLONG_MAX +# if defined ULONG_LONG_MAX /* HP-UX 11.31 */ +# define ULLONG_MAX ULONG_LONG_MAX +# elif defined ULONGLONG_MAX /* IRIX 6.5 */ +# define ULLONG_MAX ULONGLONG_MAX +# elif defined __GNUC__ +# define ULLONG_MAX (__LONG_LONG_MAX__ * 2ULL + 1ULL) +# endif #endif /* The number of usable bits in an unsigned or signed integer type @@ -53,6 +70,19 @@ #define _GL_COB8(n) (_GL_COB4 ((n) >> 4) + _GL_COB4 (n)) #define _GL_COB4(n) (!!((n) & 8) + !!((n) & 4) + !!((n) & 2) + !!((n) & 1)) +#ifndef WORD_BIT +/* Assume 'int' is 32 bits wide. */ +# define WORD_BIT 32 +#endif +#ifndef LONG_BIT +/* Assume 'long' is 32 or 64 bits wide. */ +# if LONG_MAX == INT_MAX +# define LONG_BIT 32 +# else +# define LONG_BIT 64 +# endif +#endif + /* Macros specified by ISO/IEC TS 18661-1:2014. */ #if (! defined ULLONG_WIDTH \ diff --git a/gnu/link.c b/gnu/link.c index 70ad9ffa..2074b62b 100644 --- a/gnu/link.c +++ b/gnu/link.c @@ -1,6 +1,6 @@ /* Emulate link on platforms that lack it, namely native Windows platforms. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This 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,11 +25,15 @@ #include <sys/stat.h> #if !HAVE_LINK -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# if defined _WIN32 && ! defined __CYGWIN__ # define WIN32_LEAN_AND_MEAN # include <windows.h> +/* Avoid warnings from gcc -Wcast-function-type. */ +# define GetProcAddress \ + (void *) GetProcAddress + /* CreateHardLink was introduced only in Windows 2000. */ typedef BOOL (WINAPI * CreateHardLinkFuncType) (LPCTSTR lpFileName, LPCTSTR lpExistingFileName, diff --git a/gnu/linkat.c b/gnu/linkat.c index 48171777..6a4f1a61 100644 --- a/gnu/linkat.c +++ b/gnu/linkat.c @@ -1,5 +1,5 @@ /* Create a hard link relative to open directories. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free 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/localcharset.c b/gnu/localcharset.c index f16a1a1c..38e27e6f 100644 --- a/gnu/localcharset.c +++ b/gnu/localcharset.c @@ -1,6 +1,6 @@ /* Determine a canonical name for the current locale's character encoding. - Copyright (C) 2000-2006, 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2000-2006, 2008-2019 Free Software Foundation, Inc. This 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,7 +22,6 @@ /* Specification. */ #include "localcharset.h" -#include <fcntl.h> #include <stddef.h> #include <stdio.h> #include <string.h> @@ -32,7 +31,7 @@ # define DARWIN7 /* Darwin 7 or newer, i.e. Mac OS X 10.3 or newer */ #endif -#if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ +#if defined _WIN32 && !defined __CYGWIN__ # define WINDOWS_NATIVE # include <locale.h> #endif @@ -45,11 +44,10 @@ #endif #if !defined WINDOWS_NATIVE -# include <unistd.h> # if HAVE_LANGINFO_CODESET # include <langinfo.h> # else -# if 0 /* see comment below */ +# if 0 /* see comment regarding use of setlocale(), below */ # include <locale.h> # endif # endif @@ -71,321 +69,613 @@ # include <xlocale.h> #endif -#if ENABLE_RELOCATABLE -# include "relocatable.h" -#else -# define relocate(pathname) (pathname) -# define relocate2(pathname,allocatedp) (*(allocatedp) = NULL, (pathname)) -#endif - -/* Get LIBDIR. */ -#ifndef LIBDIR -# include "configmake.h" -#endif - -/* Define O_NOFOLLOW to 0 on platforms where it does not exist. */ -#ifndef O_NOFOLLOW -# define O_NOFOLLOW 0 -#endif - -#if defined _WIN32 || defined __WIN32__ || defined __CYGWIN__ || defined __EMX__ || defined __DJGPP__ - /* Native Windows, Cygwin, OS/2, DOS */ -# define ISSLASH(C) ((C) == '/' || (C) == '\\') -#endif -#ifndef DIRECTORY_SEPARATOR -# define DIRECTORY_SEPARATOR '/' -#endif +#if HAVE_LANGINFO_CODESET || defined WINDOWS_NATIVE || defined OS2 -#ifndef ISSLASH -# define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR) -#endif +/* On these platforms, we use a mapping from non-canonical encoding name + to GNU canonical encoding name. */ -#if HAVE_DECL_GETC_UNLOCKED -# undef getc -# define getc getc_unlocked -#endif +/* With glibc-2.1 or newer, we don't need any canonicalization, + because glibc has iconv and both glibc and libiconv support all + GNU canonical names directly. */ +# if !((defined __GNU_LIBRARY__ && __GLIBC__ >= 2) || defined __UCLIBC__) -/* The following static variable is declared 'volatile' to avoid a - possible multithread problem in the function get_charset_aliases. If we - are running in a threaded environment, and if two threads initialize - 'charset_aliases' simultaneously, both will produce the same value, - and everything will be ok if the two assignments to 'charset_aliases' - are atomic. But I don't know what will happen if the two assignments mix. */ -#if __STDC__ != 1 -# define volatile /* empty */ -#endif -/* Pointer to the contents of the charset.alias file, if it has already been - read, else NULL. Its format is: - ALIAS_1 '\0' CANONICAL_1 '\0' ... ALIAS_n '\0' CANONICAL_n '\0' '\0' */ -static const char * volatile charset_aliases; - -/* Return a pointer to the contents of the charset.alias file. */ -static const char * -get_charset_aliases (void) +struct table_entry { - const char *cp; - - cp = charset_aliases; - if (cp == NULL) - { -#if !(defined DARWIN7 || defined VMS || defined WINDOWS_NATIVE || defined __CYGWIN__ || defined OS2) - char *malloc_dir = NULL; - const char *dir; - const char *base = "charset.alias"; - char *file_name; - - /* Make it possible to override the charset.alias location. This is - necessary for running the testsuite before "make install". */ - dir = getenv ("CHARSETALIASDIR"); - if (dir == NULL || dir[0] == '\0') - dir = relocate2 (LIBDIR, &malloc_dir); - - /* Concatenate dir and base into freshly allocated file_name. */ - { - size_t dir_len = strlen (dir); - size_t base_len = strlen (base); - int add_slash = (dir_len > 0 && !ISSLASH (dir[dir_len - 1])); - file_name = (char *) malloc (dir_len + add_slash + base_len + 1); - if (file_name != NULL) - { - memcpy (file_name, dir, dir_len); - if (add_slash) - file_name[dir_len] = DIRECTORY_SEPARATOR; - memcpy (file_name + dir_len + add_slash, base, base_len + 1); - } - } - - free (malloc_dir); - - if (file_name == NULL) - /* Out of memory. Treat the file as empty. */ - cp = ""; - else - { - int fd; - - /* Open the file. Reject symbolic links on platforms that support - O_NOFOLLOW. This is a security feature. Without it, an attacker - could retrieve parts of the contents (namely, the tail of the - first line that starts with "* ") of an arbitrary file by placing - a symbolic link to that file under the name "charset.alias" in - some writable directory and defining the environment variable - CHARSETALIASDIR to point to that directory. */ - fd = open (file_name, - O_RDONLY | (HAVE_WORKING_O_NOFOLLOW ? O_NOFOLLOW : 0)); - if (fd < 0) - /* File not found. Treat it as empty. */ - cp = ""; - else - { - FILE *fp; - - fp = fdopen (fd, "r"); - if (fp == NULL) - { - /* Out of memory. Treat the file as empty. */ - close (fd); - cp = ""; - } - else - { - /* Parse the file's contents. */ - char *res_ptr = NULL; - size_t res_size = 0; - - for (;;) - { - int c; - char buf1[50+1]; - char buf2[50+1]; - size_t l1, l2; - char *old_res_ptr; - - c = getc (fp); - if (c == EOF) - break; - if (c == '\n' || c == ' ' || c == '\t') - continue; - if (c == '#') - { - /* Skip comment, to end of line. */ - do - c = getc (fp); - while (!(c == EOF || c == '\n')); - if (c == EOF) - break; - continue; - } - ungetc (c, fp); - if (fscanf (fp, "%50s %50s", buf1, buf2) < 2) - break; - l1 = strlen (buf1); - l2 = strlen (buf2); - old_res_ptr = res_ptr; - if (res_size == 0) - { - res_size = l1 + 1 + l2 + 1; - res_ptr = (char *) malloc (res_size + 1); - } - else - { - res_size += l1 + 1 + l2 + 1; - res_ptr = (char *) realloc (res_ptr, res_size + 1); - } - if (res_ptr == NULL) - { - /* Out of memory. */ - res_size = 0; - free (old_res_ptr); - break; - } - strcpy (res_ptr + res_size - (l2 + 1) - (l1 + 1), buf1); - strcpy (res_ptr + res_size - (l2 + 1), buf2); - } - fclose (fp); - if (res_size == 0) - cp = ""; - else - { - *(res_ptr + res_size) = '\0'; - cp = res_ptr; - } - } - } + const char alias[11+1]; + const char canonical[11+1]; +}; + +/* Table of platform-dependent mappings, sorted in ascending order. */ +static const struct table_entry alias_table[] = + { +# if defined __FreeBSD__ /* FreeBSD */ + /*{ "ARMSCII-8", "ARMSCII-8" },*/ + { "Big5", "BIG5" }, + { "C", "ASCII" }, + /*{ "CP1131", "CP1131" },*/ + /*{ "CP1251", "CP1251" },*/ + /*{ "CP866", "CP866" },*/ + /*{ "GB18030", "GB18030" },*/ + /*{ "GB2312", "GB2312" },*/ + /*{ "GBK", "GBK" },*/ + /*{ "ISCII-DEV", "?" },*/ + { "ISO8859-1", "ISO-8859-1" }, + { "ISO8859-13", "ISO-8859-13" }, + { "ISO8859-15", "ISO-8859-15" }, + { "ISO8859-2", "ISO-8859-2" }, + { "ISO8859-5", "ISO-8859-5" }, + { "ISO8859-7", "ISO-8859-7" }, + { "ISO8859-9", "ISO-8859-9" }, + /*{ "KOI8-R", "KOI8-R" },*/ + /*{ "KOI8-U", "KOI8-U" },*/ + { "SJIS", "SHIFT_JIS" }, + { "US-ASCII", "ASCII" }, + { "eucCN", "GB2312" }, + { "eucJP", "EUC-JP" }, + { "eucKR", "EUC-KR" } +# define alias_table_defined +# endif +# if defined __NetBSD__ /* NetBSD */ + { "646", "ASCII" }, + /*{ "ARMSCII-8", "ARMSCII-8" },*/ + /*{ "BIG5", "BIG5" },*/ + { "Big5-HKSCS", "BIG5-HKSCS" }, + /*{ "CP1251", "CP1251" },*/ + /*{ "CP866", "CP866" },*/ + /*{ "GB18030", "GB18030" },*/ + /*{ "GB2312", "GB2312" },*/ + { "ISO8859-1", "ISO-8859-1" }, + { "ISO8859-13", "ISO-8859-13" }, + { "ISO8859-15", "ISO-8859-15" }, + { "ISO8859-2", "ISO-8859-2" }, + { "ISO8859-4", "ISO-8859-4" }, + { "ISO8859-5", "ISO-8859-5" }, + { "ISO8859-7", "ISO-8859-7" }, + /*{ "KOI8-R", "KOI8-R" },*/ + /*{ "KOI8-U", "KOI8-U" },*/ + /*{ "PT154", "PT154" },*/ + { "SJIS", "SHIFT_JIS" }, + { "eucCN", "GB2312" }, + { "eucJP", "EUC-JP" }, + { "eucKR", "EUC-KR" }, + { "eucTW", "EUC-TW" } +# define alias_table_defined +# endif +# if defined __OpenBSD__ /* OpenBSD */ + { "646", "ASCII" }, + { "ISO8859-1", "ISO-8859-1" }, + { "ISO8859-13", "ISO-8859-13" }, + { "ISO8859-15", "ISO-8859-15" }, + { "ISO8859-2", "ISO-8859-2" }, + { "ISO8859-4", "ISO-8859-4" }, + { "ISO8859-5", "ISO-8859-5" }, + { "ISO8859-7", "ISO-8859-7" } +# define alias_table_defined +# endif +# if defined __APPLE__ && defined __MACH__ /* Mac OS X */ + /* Darwin 7.5 has nl_langinfo(CODESET), but sometimes its value is + useless: + - It returns the empty string when LANG is set to a locale of the + form ll_CC, although ll_CC/LC_CTYPE is a symlink to an UTF-8 + LC_CTYPE file. + - The environment variables LANG, LC_CTYPE, LC_ALL are not set by + the system; nl_langinfo(CODESET) returns "US-ASCII" in this case. + - The documentation says: + "... all code that calls BSD system routines should ensure + that the const *char parameters of these routines are in UTF-8 + encoding. All BSD system functions expect their string + parameters to be in UTF-8 encoding and nothing else." + It also says + "An additional caveat is that string parameters for files, + paths, and other file-system entities must be in canonical + UTF-8. In a canonical UTF-8 Unicode string, all decomposable + characters are decomposed ..." + but this is not true: You can pass non-decomposed UTF-8 strings + to file system functions, and it is the OS which will convert + them to decomposed UTF-8 before accessing the file system. + - The Apple Terminal application displays UTF-8 by default. + - However, other applications are free to use different encodings: + - xterm uses ISO-8859-1 by default. + - TextEdit uses MacRoman by default. + We prefer UTF-8 over decomposed UTF-8-MAC because one should + minimize the use of decomposed Unicode. Unfortunately, through the + Darwin file system, decomposed UTF-8 strings are leaked into user + space nevertheless. + Then there are also the locales with encodings other than US-ASCII + and UTF-8. These locales can be occasionally useful to users (e.g. + when grepping through ISO-8859-1 encoded text files), when all their + file names are in US-ASCII. + */ + { "ARMSCII-8", "ARMSCII-8" }, + { "Big5", "BIG5" }, + { "Big5HKSCS", "BIG5-HKSCS" }, + { "CP1131", "CP1131" }, + { "CP1251", "CP1251" }, + { "CP866", "CP866" }, + { "CP949", "CP949" }, + { "GB18030", "GB18030" }, + { "GB2312", "GB2312" }, + { "GBK", "GBK" }, + /*{ "ISCII-DEV", "?" },*/ + { "ISO8859-1", "ISO-8859-1" }, + { "ISO8859-13", "ISO-8859-13" }, + { "ISO8859-15", "ISO-8859-15" }, + { "ISO8859-2", "ISO-8859-2" }, + { "ISO8859-4", "ISO-8859-4" }, + { "ISO8859-5", "ISO-8859-5" }, + { "ISO8859-7", "ISO-8859-7" }, + { "ISO8859-9", "ISO-8859-9" }, + { "KOI8-R", "KOI8-R" }, + { "KOI8-U", "KOI8-U" }, + { "PT154", "PT154" }, + { "SJIS", "SHIFT_JIS" }, + { "eucCN", "GB2312" }, + { "eucJP", "EUC-JP" }, + { "eucKR", "EUC-KR" } +# define alias_table_defined +# endif +# if defined _AIX /* AIX */ + /*{ "GBK", "GBK" },*/ + { "IBM-1046", "CP1046" }, + { "IBM-1124", "CP1124" }, + { "IBM-1129", "CP1129" }, + { "IBM-1252", "CP1252" }, + { "IBM-850", "CP850" }, + { "IBM-856", "CP856" }, + { "IBM-921", "ISO-8859-13" }, + { "IBM-922", "CP922" }, + { "IBM-932", "CP932" }, + { "IBM-943", "CP943" }, + { "IBM-eucCN", "GB2312" }, + { "IBM-eucJP", "EUC-JP" }, + { "IBM-eucKR", "EUC-KR" }, + { "IBM-eucTW", "EUC-TW" }, + { "ISO8859-1", "ISO-8859-1" }, + { "ISO8859-15", "ISO-8859-15" }, + { "ISO8859-2", "ISO-8859-2" }, + { "ISO8859-5", "ISO-8859-5" }, + { "ISO8859-6", "ISO-8859-6" }, + { "ISO8859-7", "ISO-8859-7" }, + { "ISO8859-8", "ISO-8859-8" }, + { "ISO8859-9", "ISO-8859-9" }, + { "TIS-620", "TIS-620" }, + /*{ "UTF-8", "UTF-8" },*/ + { "big5", "BIG5" } +# define alias_table_defined +# endif +# if defined __hpux /* HP-UX */ + { "SJIS", "SHIFT_JIS" }, + { "arabic8", "HP-ARABIC8" }, + { "big5", "BIG5" }, + { "cp1251", "CP1251" }, + { "eucJP", "EUC-JP" }, + { "eucKR", "EUC-KR" }, + { "eucTW", "EUC-TW" }, + { "gb18030", "GB18030" }, + { "greek8", "HP-GREEK8" }, + { "hebrew8", "HP-HEBREW8" }, + { "hkbig5", "BIG5-HKSCS" }, + { "hp15CN", "GB2312" }, + { "iso88591", "ISO-8859-1" }, + { "iso885913", "ISO-8859-13" }, + { "iso885915", "ISO-8859-15" }, + { "iso88592", "ISO-8859-2" }, + { "iso88594", "ISO-8859-4" }, + { "iso88595", "ISO-8859-5" }, + { "iso88596", "ISO-8859-6" }, + { "iso88597", "ISO-8859-7" }, + { "iso88598", "ISO-8859-8" }, + { "iso88599", "ISO-8859-9" }, + { "kana8", "HP-KANA8" }, + { "koi8r", "KOI8-R" }, + { "roman8", "HP-ROMAN8" }, + { "tis620", "TIS-620" }, + { "turkish8", "HP-TURKISH8" }, + { "utf8", "UTF-8" } +# define alias_table_defined +# endif +# if defined __sgi /* IRIX */ + { "ISO8859-1", "ISO-8859-1" }, + { "ISO8859-15", "ISO-8859-15" }, + { "ISO8859-2", "ISO-8859-2" }, + { "ISO8859-5", "ISO-8859-5" }, + { "ISO8859-7", "ISO-8859-7" }, + { "ISO8859-9", "ISO-8859-9" }, + { "eucCN", "GB2312" }, + { "eucJP", "EUC-JP" }, + { "eucKR", "EUC-KR" }, + { "eucTW", "EUC-TW" } +# define alias_table_defined +# endif +# if defined __osf__ /* OSF/1 */ + /*{ "GBK", "GBK" },*/ + { "ISO8859-1", "ISO-8859-1" }, + { "ISO8859-15", "ISO-8859-15" }, + { "ISO8859-2", "ISO-8859-2" }, + { "ISO8859-4", "ISO-8859-4" }, + { "ISO8859-5", "ISO-8859-5" }, + { "ISO8859-7", "ISO-8859-7" }, + { "ISO8859-8", "ISO-8859-8" }, + { "ISO8859-9", "ISO-8859-9" }, + { "KSC5601", "CP949" }, + { "SJIS", "SHIFT_JIS" }, + { "TACTIS", "TIS-620" }, + /*{ "UTF-8", "UTF-8" },*/ + { "big5", "BIG5" }, + { "cp850", "CP850" }, + { "dechanyu", "DEC-HANYU" }, + { "dechanzi", "GB2312" }, + { "deckanji", "DEC-KANJI" }, + { "deckorean", "EUC-KR" }, + { "eucJP", "EUC-JP" }, + { "eucKR", "EUC-KR" }, + { "eucTW", "EUC-TW" }, + { "sdeckanji", "EUC-JP" } +# define alias_table_defined +# endif +# if defined __sun /* Solaris */ + { "5601", "EUC-KR" }, + { "646", "ASCII" }, + /*{ "BIG5", "BIG5" },*/ + { "Big5-HKSCS", "BIG5-HKSCS" }, + { "GB18030", "GB18030" }, + /*{ "GBK", "GBK" },*/ + { "ISO8859-1", "ISO-8859-1" }, + { "ISO8859-11", "TIS-620" }, + { "ISO8859-13", "ISO-8859-13" }, + { "ISO8859-15", "ISO-8859-15" }, + { "ISO8859-2", "ISO-8859-2" }, + { "ISO8859-3", "ISO-8859-3" }, + { "ISO8859-4", "ISO-8859-4" }, + { "ISO8859-5", "ISO-8859-5" }, + { "ISO8859-6", "ISO-8859-6" }, + { "ISO8859-7", "ISO-8859-7" }, + { "ISO8859-8", "ISO-8859-8" }, + { "ISO8859-9", "ISO-8859-9" }, + { "PCK", "SHIFT_JIS" }, + { "TIS620.2533", "TIS-620" }, + /*{ "UTF-8", "UTF-8" },*/ + { "ansi-1251", "CP1251" }, + { "cns11643", "EUC-TW" }, + { "eucJP", "EUC-JP" }, + { "gb2312", "GB2312" }, + { "koi8-r", "KOI8-R" } +# define alias_table_defined +# endif +# if defined __minix /* Minix */ + { "646", "ASCII" } +# define alias_table_defined +# endif +# if defined WINDOWS_NATIVE || defined __CYGWIN__ /* Windows */ + { "CP1361", "JOHAB" }, + { "CP20127", "ASCII" }, + { "CP20866", "KOI8-R" }, + { "CP20936", "GB2312" }, + { "CP21866", "KOI8-RU" }, + { "CP28591", "ISO-8859-1" }, + { "CP28592", "ISO-8859-2" }, + { "CP28593", "ISO-8859-3" }, + { "CP28594", "ISO-8859-4" }, + { "CP28595", "ISO-8859-5" }, + { "CP28596", "ISO-8859-6" }, + { "CP28597", "ISO-8859-7" }, + { "CP28598", "ISO-8859-8" }, + { "CP28599", "ISO-8859-9" }, + { "CP28605", "ISO-8859-15" }, + { "CP38598", "ISO-8859-8" }, + { "CP51932", "EUC-JP" }, + { "CP51936", "GB2312" }, + { "CP51949", "EUC-KR" }, + { "CP51950", "EUC-TW" }, + { "CP54936", "GB18030" }, + { "CP65001", "UTF-8" }, + { "CP936", "GBK" } +# define alias_table_defined +# endif +# if defined OS2 /* OS/2 */ + /* The list of encodings is taken from "List of OS/2 Codepages" + by Alex Taylor: + <http://altsan.org/os2/toolkits/uls/index.html#codepages>. + See also "IBM Globalization - Code page identifiers": + <https://www-01.ibm.com/software/globalization/cp/cp_cpgid.html>. */ + { "CP1089", "ISO-8859-6" }, + { "CP1208", "UTF-8" }, + { "CP1381", "GB2312" }, + { "CP1386", "GBK" }, + { "CP3372", "EUC-JP" }, + { "CP813", "ISO-8859-7" }, + { "CP819", "ISO-8859-1" }, + { "CP878", "KOI8-R" }, + { "CP912", "ISO-8859-2" }, + { "CP913", "ISO-8859-3" }, + { "CP914", "ISO-8859-4" }, + { "CP915", "ISO-8859-5" }, + { "CP916", "ISO-8859-8" }, + { "CP920", "ISO-8859-9" }, + { "CP921", "ISO-8859-13" }, + { "CP923", "ISO-8859-15" }, + { "CP954", "EUC-JP" }, + { "CP964", "EUC-TW" }, + { "CP970", "EUC-KR" } +# define alias_table_defined +# endif +# if defined VMS /* OpenVMS */ + /* The list of encodings is taken from the OpenVMS 7.3-1 documentation + "Compaq C Run-Time Library Reference Manual for OpenVMS systems" + section 10.7 "Handling Different Character Sets". */ + { "DECHANYU", "DEC-HANYU" }, + { "DECHANZI", "GB2312" }, + { "DECKANJI", "DEC-KANJI" }, + { "DECKOREAN", "EUC-KR" }, + { "ISO8859-1", "ISO-8859-1" }, + { "ISO8859-2", "ISO-8859-2" }, + { "ISO8859-5", "ISO-8859-5" }, + { "ISO8859-7", "ISO-8859-7" }, + { "ISO8859-8", "ISO-8859-8" }, + { "ISO8859-9", "ISO-8859-9" }, + { "SDECKANJI", "EUC-JP" }, + { "SJIS", "SHIFT_JIS" }, + { "eucJP", "EUC-JP" }, + { "eucTW", "EUC-TW" } +# define alias_table_defined +# endif +# ifndef alias_table_defined + /* Just a dummy entry, to avoid a C syntax error. */ + { "", "" } +# endif + }; - free (file_name); - } +# endif #else -# if defined DARWIN7 - /* To avoid the trouble of installing a file that is shared by many - GNU packages -- many packaging systems have problems with this --, - simply inline the aliases here. */ - cp = "ISO8859-1" "\0" "ISO-8859-1" "\0" - "ISO8859-2" "\0" "ISO-8859-2" "\0" - "ISO8859-4" "\0" "ISO-8859-4" "\0" - "ISO8859-5" "\0" "ISO-8859-5" "\0" - "ISO8859-7" "\0" "ISO-8859-7" "\0" - "ISO8859-9" "\0" "ISO-8859-9" "\0" - "ISO8859-13" "\0" "ISO-8859-13" "\0" - "ISO8859-15" "\0" "ISO-8859-15" "\0" - "KOI8-R" "\0" "KOI8-R" "\0" - "KOI8-U" "\0" "KOI8-U" "\0" - "CP866" "\0" "CP866" "\0" - "CP949" "\0" "CP949" "\0" - "CP1131" "\0" "CP1131" "\0" - "CP1251" "\0" "CP1251" "\0" - "eucCN" "\0" "GB2312" "\0" - "GB2312" "\0" "GB2312" "\0" - "eucJP" "\0" "EUC-JP" "\0" - "eucKR" "\0" "EUC-KR" "\0" - "Big5" "\0" "BIG5" "\0" - "Big5HKSCS" "\0" "BIG5-HKSCS" "\0" - "GBK" "\0" "GBK" "\0" - "GB18030" "\0" "GB18030" "\0" - "SJIS" "\0" "SHIFT_JIS" "\0" - "ARMSCII-8" "\0" "ARMSCII-8" "\0" - "PT154" "\0" "PT154" "\0" - /*"ISCII-DEV" "\0" "?" "\0"*/ - "*" "\0" "UTF-8" "\0"; -# endif +/* On these platforms, we use a mapping from locale name to GNU canonical + encoding name. */ -# if defined VMS - /* To avoid the troubles of an extra file charset.alias_vms in the - sources of many GNU packages, simply inline the aliases here. */ - /* The list of encodings is taken from the OpenVMS 7.3-1 documentation - "Compaq C Run-Time Library Reference Manual for OpenVMS systems" - section 10.7 "Handling Different Character Sets". */ - cp = "ISO8859-1" "\0" "ISO-8859-1" "\0" - "ISO8859-2" "\0" "ISO-8859-2" "\0" - "ISO8859-5" "\0" "ISO-8859-5" "\0" - "ISO8859-7" "\0" "ISO-8859-7" "\0" - "ISO8859-8" "\0" "ISO-8859-8" "\0" - "ISO8859-9" "\0" "ISO-8859-9" "\0" - /* Japanese */ - "eucJP" "\0" "EUC-JP" "\0" - "SJIS" "\0" "SHIFT_JIS" "\0" - "DECKANJI" "\0" "DEC-KANJI" "\0" - "SDECKANJI" "\0" "EUC-JP" "\0" - /* Chinese */ - "eucTW" "\0" "EUC-TW" "\0" - "DECHANYU" "\0" "DEC-HANYU" "\0" - "DECHANZI" "\0" "GB2312" "\0" - /* Korean */ - "DECKOREAN" "\0" "EUC-KR" "\0"; +struct table_entry +{ + const char locale[17+1]; + const char canonical[11+1]; +}; + +/* Table of platform-dependent mappings, sorted in ascending order. */ +static const struct table_entry locale_table[] = + { +# if defined __FreeBSD__ /* FreeBSD 4.2 */ + { "cs_CZ.ISO_8859-2", "ISO-8859-2" }, + { "da_DK.DIS_8859-15", "ISO-8859-15" }, + { "da_DK.ISO_8859-1", "ISO-8859-1" }, + { "de_AT.DIS_8859-15", "ISO-8859-15" }, + { "de_AT.ISO_8859-1", "ISO-8859-1" }, + { "de_CH.DIS_8859-15", "ISO-8859-15" }, + { "de_CH.ISO_8859-1", "ISO-8859-1" }, + { "de_DE.DIS_8859-15", "ISO-8859-15" }, + { "de_DE.ISO_8859-1", "ISO-8859-1" }, + { "en_AU.DIS_8859-15", "ISO-8859-15" }, + { "en_AU.ISO_8859-1", "ISO-8859-1" }, + { "en_CA.DIS_8859-15", "ISO-8859-15" }, + { "en_CA.ISO_8859-1", "ISO-8859-1" }, + { "en_GB.DIS_8859-15", "ISO-8859-15" }, + { "en_GB.ISO_8859-1", "ISO-8859-1" }, + { "en_US.DIS_8859-15", "ISO-8859-15" }, + { "en_US.ISO_8859-1", "ISO-8859-1" }, + { "es_ES.DIS_8859-15", "ISO-8859-15" }, + { "es_ES.ISO_8859-1", "ISO-8859-1" }, + { "fi_FI.DIS_8859-15", "ISO-8859-15" }, + { "fi_FI.ISO_8859-1", "ISO-8859-1" }, + { "fr_BE.DIS_8859-15", "ISO-8859-15" }, + { "fr_BE.ISO_8859-1", "ISO-8859-1" }, + { "fr_CA.DIS_8859-15", "ISO-8859-15" }, + { "fr_CA.ISO_8859-1", "ISO-8859-1" }, + { "fr_CH.DIS_8859-15", "ISO-8859-15" }, + { "fr_CH.ISO_8859-1", "ISO-8859-1" }, + { "fr_FR.DIS_8859-15", "ISO-8859-15" }, + { "fr_FR.ISO_8859-1", "ISO-8859-1" }, + { "hr_HR.ISO_8859-2", "ISO-8859-2" }, + { "hu_HU.ISO_8859-2", "ISO-8859-2" }, + { "is_IS.DIS_8859-15", "ISO-8859-15" }, + { "is_IS.ISO_8859-1", "ISO-8859-1" }, + { "it_CH.DIS_8859-15", "ISO-8859-15" }, + { "it_CH.ISO_8859-1", "ISO-8859-1" }, + { "it_IT.DIS_8859-15", "ISO-8859-15" }, + { "it_IT.ISO_8859-1", "ISO-8859-1" }, + { "ja_JP.EUC", "EUC-JP" }, + { "ja_JP.SJIS", "SHIFT_JIS" }, + { "ja_JP.Shift_JIS", "SHIFT_JIS" }, + { "ko_KR.EUC", "EUC-KR" }, + { "la_LN.ASCII", "ASCII" }, + { "la_LN.DIS_8859-15", "ISO-8859-15" }, + { "la_LN.ISO_8859-1", "ISO-8859-1" }, + { "la_LN.ISO_8859-2", "ISO-8859-2" }, + { "la_LN.ISO_8859-4", "ISO-8859-4" }, + { "lt_LN.ASCII", "ASCII" }, + { "lt_LN.DIS_8859-15", "ISO-8859-15" }, + { "lt_LN.ISO_8859-1", "ISO-8859-1" }, + { "lt_LN.ISO_8859-2", "ISO-8859-2" }, + { "lt_LT.ISO_8859-4", "ISO-8859-4" }, + { "nl_BE.DIS_8859-15", "ISO-8859-15" }, + { "nl_BE.ISO_8859-1", "ISO-8859-1" }, + { "nl_NL.DIS_8859-15", "ISO-8859-15" }, + { "nl_NL.ISO_8859-1", "ISO-8859-1" }, + { "no_NO.DIS_8859-15", "ISO-8859-15" }, + { "no_NO.ISO_8859-1", "ISO-8859-1" }, + { "pl_PL.ISO_8859-2", "ISO-8859-2" }, + { "pt_PT.DIS_8859-15", "ISO-8859-15" }, + { "pt_PT.ISO_8859-1", "ISO-8859-1" }, + { "ru_RU.CP866", "CP866" }, + { "ru_RU.ISO_8859-5", "ISO-8859-5" }, + { "ru_RU.KOI8-R", "KOI8-R" }, + { "ru_SU.CP866", "CP866" }, + { "ru_SU.ISO_8859-5", "ISO-8859-5" }, + { "ru_SU.KOI8-R", "KOI8-R" }, + { "sl_SI.ISO_8859-2", "ISO-8859-2" }, + { "sv_SE.DIS_8859-15", "ISO-8859-15" }, + { "sv_SE.ISO_8859-1", "ISO-8859-1" }, + { "uk_UA.KOI8-U", "KOI8-U" }, + { "zh_CN.EUC", "GB2312" }, + { "zh_TW.BIG5", "BIG5" }, + { "zh_TW.Big5", "BIG5" } +# define locale_table_defined # endif - -# 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. */ - - cp = "CP936" "\0" "GBK" "\0" - "CP1361" "\0" "JOHAB" "\0" - "CP20127" "\0" "ASCII" "\0" - "CP20866" "\0" "KOI8-R" "\0" - "CP20936" "\0" "GB2312" "\0" - "CP21866" "\0" "KOI8-RU" "\0" - "CP28591" "\0" "ISO-8859-1" "\0" - "CP28592" "\0" "ISO-8859-2" "\0" - "CP28593" "\0" "ISO-8859-3" "\0" - "CP28594" "\0" "ISO-8859-4" "\0" - "CP28595" "\0" "ISO-8859-5" "\0" - "CP28596" "\0" "ISO-8859-6" "\0" - "CP28597" "\0" "ISO-8859-7" "\0" - "CP28598" "\0" "ISO-8859-8" "\0" - "CP28599" "\0" "ISO-8859-9" "\0" - "CP28605" "\0" "ISO-8859-15" "\0" - "CP38598" "\0" "ISO-8859-8" "\0" - "CP51932" "\0" "EUC-JP" "\0" - "CP51936" "\0" "GB2312" "\0" - "CP51949" "\0" "EUC-KR" "\0" - "CP51950" "\0" "EUC-TW" "\0" - "CP54936" "\0" "GB18030" "\0" - "CP65001" "\0" "UTF-8" "\0"; +# if defined __DJGPP__ /* DOS / DJGPP 2.03 */ + /* The encodings given here may not all be correct. + If you find that the encoding given for your language and + country is not the one your DOS machine actually uses, just + correct it in this file, and send a mail to + Juan Manuel Guerrero <juan.guerrero@gmx.de> + and <bug-gnulib@gnu.org>. */ + { "C", "ASCII" }, + { "ar", "CP864" }, + { "ar_AE", "CP864" }, + { "ar_DZ", "CP864" }, + { "ar_EG", "CP864" }, + { "ar_IQ", "CP864" }, + { "ar_IR", "CP864" }, + { "ar_JO", "CP864" }, + { "ar_KW", "CP864" }, + { "ar_MA", "CP864" }, + { "ar_OM", "CP864" }, + { "ar_QA", "CP864" }, + { "ar_SA", "CP864" }, + { "ar_SY", "CP864" }, + { "be", "CP866" }, + { "be_BE", "CP866" }, + { "bg", "CP866" }, /* not CP855 ?? */ + { "bg_BG", "CP866" }, /* not CP855 ?? */ + { "ca", "CP850" }, + { "ca_ES", "CP850" }, + { "cs", "CP852" }, + { "cs_CZ", "CP852" }, + { "da", "CP865" }, /* not CP850 ?? */ + { "da_DK", "CP865" }, /* not CP850 ?? */ + { "de", "CP850" }, + { "de_AT", "CP850" }, + { "de_CH", "CP850" }, + { "de_DE", "CP850" }, + { "el", "CP869" }, + { "el_GR", "CP869" }, + { "en", "CP850" }, + { "en_AU", "CP850" }, /* not CP437 ?? */ + { "en_CA", "CP850" }, + { "en_GB", "CP850" }, + { "en_NZ", "CP437" }, + { "en_US", "CP437" }, + { "en_ZA", "CP850" }, /* not CP437 ?? */ + { "eo", "CP850" }, + { "eo_EO", "CP850" }, + { "es", "CP850" }, + { "es_AR", "CP850" }, + { "es_BO", "CP850" }, + { "es_CL", "CP850" }, + { "es_CO", "CP850" }, + { "es_CR", "CP850" }, + { "es_CU", "CP850" }, + { "es_DO", "CP850" }, + { "es_EC", "CP850" }, + { "es_ES", "CP850" }, + { "es_GT", "CP850" }, + { "es_HN", "CP850" }, + { "es_MX", "CP850" }, + { "es_NI", "CP850" }, + { "es_PA", "CP850" }, + { "es_PE", "CP850" }, + { "es_PY", "CP850" }, + { "es_SV", "CP850" }, + { "es_UY", "CP850" }, + { "es_VE", "CP850" }, + { "et", "CP850" }, + { "et_EE", "CP850" }, + { "eu", "CP850" }, + { "eu_ES", "CP850" }, + { "fi", "CP850" }, + { "fi_FI", "CP850" }, + { "fr", "CP850" }, + { "fr_BE", "CP850" }, + { "fr_CA", "CP850" }, + { "fr_CH", "CP850" }, + { "fr_FR", "CP850" }, + { "ga", "CP850" }, + { "ga_IE", "CP850" }, + { "gd", "CP850" }, + { "gd_GB", "CP850" }, + { "gl", "CP850" }, + { "gl_ES", "CP850" }, + { "he", "CP862" }, + { "he_IL", "CP862" }, + { "hr", "CP852" }, + { "hr_HR", "CP852" }, + { "hu", "CP852" }, + { "hu_HU", "CP852" }, + { "id", "CP850" }, /* not CP437 ?? */ + { "id_ID", "CP850" }, /* not CP437 ?? */ + { "is", "CP861" }, /* not CP850 ?? */ + { "is_IS", "CP861" }, /* not CP850 ?? */ + { "it", "CP850" }, + { "it_CH", "CP850" }, + { "it_IT", "CP850" }, + { "ja", "CP932" }, + { "ja_JP", "CP932" }, + { "kr", "CP949" }, /* not CP934 ?? */ + { "kr_KR", "CP949" }, /* not CP934 ?? */ + { "lt", "CP775" }, + { "lt_LT", "CP775" }, + { "lv", "CP775" }, + { "lv_LV", "CP775" }, + { "mk", "CP866" }, /* not CP855 ?? */ + { "mk_MK", "CP866" }, /* not CP855 ?? */ + { "mt", "CP850" }, + { "mt_MT", "CP850" }, + { "nb", "CP865" }, /* not CP850 ?? */ + { "nb_NO", "CP865" }, /* not CP850 ?? */ + { "nl", "CP850" }, + { "nl_BE", "CP850" }, + { "nl_NL", "CP850" }, + { "nn", "CP865" }, /* not CP850 ?? */ + { "nn_NO", "CP865" }, /* not CP850 ?? */ + { "no", "CP865" }, /* not CP850 ?? */ + { "no_NO", "CP865" }, /* not CP850 ?? */ + { "pl", "CP852" }, + { "pl_PL", "CP852" }, + { "pt", "CP850" }, + { "pt_BR", "CP850" }, + { "pt_PT", "CP850" }, + { "ro", "CP852" }, + { "ro_RO", "CP852" }, + { "ru", "CP866" }, + { "ru_RU", "CP866" }, + { "sk", "CP852" }, + { "sk_SK", "CP852" }, + { "sl", "CP852" }, + { "sl_SI", "CP852" }, + { "sq", "CP852" }, + { "sq_AL", "CP852" }, + { "sr", "CP852" }, /* CP852 or CP866 or CP855 ?? */ + { "sr_CS", "CP852" }, /* CP852 or CP866 or CP855 ?? */ + { "sr_YU", "CP852" }, /* CP852 or CP866 or CP855 ?? */ + { "sv", "CP850" }, + { "sv_SE", "CP850" }, + { "th", "CP874" }, + { "th_TH", "CP874" }, + { "tr", "CP857" }, + { "tr_TR", "CP857" }, + { "uk", "CP1125" }, + { "uk_UA", "CP1125" }, + { "zh_CN", "GBK" }, + { "zh_TW", "CP950" } /* not CP938 ?? */ +# define locale_table_defined # endif -# if defined OS2 - /* To avoid the troubles of installing a separate file in the same - directory as the DLL and of retrieving the DLL's directory at - runtime, simply inline the aliases here. */ - - /* The list of encodings is taken from "List of OS/2 Codepages" - by Alex Taylor: - <http://altsan.org/os2/toolkits/uls/index.html#codepages>. - See also "IBM Globalization - Code page identifiers": - <https://www-01.ibm.com/software/globalization/cp/cp_cpgid.html>. */ - cp = "CP813" "\0" "ISO-8859-7" "\0" - "CP878" "\0" "KOI8-R" "\0" - "CP819" "\0" "ISO-8859-1" "\0" - "CP912" "\0" "ISO-8859-2" "\0" - "CP913" "\0" "ISO-8859-3" "\0" - "CP914" "\0" "ISO-8859-4" "\0" - "CP915" "\0" "ISO-8859-5" "\0" - "CP916" "\0" "ISO-8859-8" "\0" - "CP920" "\0" "ISO-8859-9" "\0" - "CP921" "\0" "ISO-8859-13" "\0" - "CP923" "\0" "ISO-8859-15" "\0" - "CP954" "\0" "EUC-JP" "\0" - "CP964" "\0" "EUC-TW" "\0" - "CP970" "\0" "EUC-KR" "\0" - "CP1089" "\0" "ISO-8859-6" "\0" - "CP1208" "\0" "UTF-8" "\0" - "CP1381" "\0" "GB2312" "\0" - "CP1386" "\0" "GBK" "\0" - "CP3372" "\0" "EUC-JP" "\0"; +# ifndef locale_table_defined + /* Just a dummy entry, to avoid a C syntax error. */ + { "", "" } # endif -#endif + }; - charset_aliases = cp; - } +#endif - return cp; -} /* Determine the current locale's character encoding, and canonicalize it - into one of the canonical names listed in config.charset. + into one of the canonical names listed in localcharset.h. The result must not be freed; it is statically allocated. If the canonical name cannot be determined, the result is a non-canonical name. */ @@ -397,9 +687,8 @@ const char * locale_charset (void) { const char *codeset; - const char *aliases; -#if !(defined WINDOWS_NATIVE || defined OS2) +#if HAVE_LANGINFO_CODESET || defined WINDOWS_NATIVE || defined OS2 # if HAVE_LANGINFO_CODESET @@ -462,37 +751,11 @@ locale_charset (void) } # endif -# else - - /* On old systems which lack it, use setlocale or getenv. */ - const char *locale = NULL; - - /* But most old systems don't have a complete set of locales. Some - (like SunOS 4 or DJGPP) have only the C locale. Therefore we don't - use setlocale here; it would return "C" when it doesn't support the - locale name the user has set. */ -# if 0 - locale = setlocale (LC_CTYPE, NULL); -# endif - if (locale == NULL || locale[0] == '\0') - { - locale = getenv ("LC_ALL"); - if (locale == NULL || locale[0] == '\0') - { - locale = getenv ("LC_CTYPE"); - if (locale == NULL || locale[0] == '\0') - locale = getenv ("LANG"); - } - } - - /* On some old systems, one used to set locale = "iso8859_1". On others, - you set it to "language_COUNTRY.charset". In any case, we resolve it - through the charset.alias file. */ - codeset = locale; - -# endif + if (codeset == NULL) + /* The canonical name cannot be determined. */ + codeset = ""; -#elif defined WINDOWS_NATIVE +# elif defined WINDOWS_NATIVE static char buf[2 + 10 + 1]; @@ -526,7 +789,7 @@ locale_charset (void) } codeset = buf; -#elif defined OS2 +# elif defined OS2 const char *locale; static char buf[2 + 10 + 1]; @@ -583,28 +846,144 @@ locale_charset (void) } } -#endif +# else - if (codeset == NULL) - /* The canonical name cannot be determined. */ - codeset = ""; +# error "Add code for other platforms here." - /* Resolve alias. */ - for (aliases = get_charset_aliases (); - *aliases != '\0'; - aliases += strlen (aliases) + 1, aliases += strlen (aliases) + 1) - if (strcmp (codeset, aliases) == 0 - || (aliases[0] == '*' && aliases[1] == '\0')) +# endif + + /* Resolve alias. */ + { +# ifdef alias_table_defined + /* On some platforms, UTF-8 locales are the most frequently used ones. + Speed up the common case and slow down the less common cases by + testing for this case first. */ +# if defined __OpenBSD__ || (defined __APPLE__ && defined __MACH__) || defined __sun || defined __CYGWIN__ + if (strcmp (codeset, "UTF-8") == 0) + goto done_table_lookup; + else +# endif { - codeset = aliases + strlen (aliases) + 1; - break; + const struct table_entry * const table = alias_table; + size_t const table_size = + sizeof (alias_table) / sizeof (struct table_entry); + /* The table is sorted. Perform a binary search. */ + size_t hi = table_size; + size_t lo = 0; + while (lo < hi) + { + /* Invariant: + for i < lo, strcmp (table[i].alias, codeset) < 0, + for i >= hi, strcmp (table[i].alias, codeset) > 0. */ + size_t mid = (hi + lo) >> 1; /* >= lo, < hi */ + int cmp = strcmp (table[mid].alias, codeset); + if (cmp < 0) + lo = mid + 1; + else if (cmp > 0) + hi = mid; + else + { + /* Found an i with + strcmp (table[i].alias, codeset) == 0. */ + codeset = table[mid].canonical; + goto done_table_lookup; + } + } } + if (0) + done_table_lookup: ; + else +# endif + { + /* Did not find it in the table. */ + /* On Mac OS X, all modern locales use the UTF-8 encoding. + BeOS and Haiku have a single locale, and it has UTF-8 encoding. */ +# if (defined __APPLE__ && defined __MACH__) || defined __BEOS__ || defined __HAIKU__ + codeset = "UTF-8"; +# else + /* Don't return an empty string. GNU libc and GNU libiconv interpret + the empty string as denoting "the locale's character encoding", + thus GNU libiconv would call this function a second time. */ + if (codeset[0] == '\0') + codeset = "ASCII"; +# endif + } + } - /* Don't return an empty string. GNU libc and GNU libiconv interpret - the empty string as denoting "the locale's character encoding", - thus GNU libiconv would call this function a second time. */ - if (codeset[0] == '\0') - codeset = "ASCII"; +#else + + /* On old systems which lack it, use setlocale or getenv. */ + const char *locale = NULL; + + /* But most old systems don't have a complete set of locales. Some + (like DJGPP) have only the C locale. Therefore we don't use setlocale + here; it would return "C" when it doesn't support the locale name the + user has set. */ +# if 0 + locale = setlocale (LC_CTYPE, NULL); +# endif + if (locale == NULL || locale[0] == '\0') + { + locale = getenv ("LC_ALL"); + if (locale == NULL || locale[0] == '\0') + { + locale = getenv ("LC_CTYPE"); + if (locale == NULL || locale[0] == '\0') + locale = getenv ("LANG"); + if (locale == NULL) + locale = ""; + } + } + + /* Map locale name to canonical encoding name. */ + { +# ifdef locale_table_defined + const struct table_entry * const table = locale_table; + size_t const table_size = + sizeof (locale_table) / sizeof (struct table_entry); + /* The table is sorted. Perform a binary search. */ + size_t hi = table_size; + size_t lo = 0; + while (lo < hi) + { + /* Invariant: + for i < lo, strcmp (table[i].locale, locale) < 0, + for i >= hi, strcmp (table[i].locale, locale) > 0. */ + size_t mid = (hi + lo) >> 1; /* >= lo, < hi */ + int cmp = strcmp (table[mid].locale, locale); + if (cmp < 0) + lo = mid + 1; + else if (cmp > 0) + hi = mid; + else + { + /* Found an i with + strcmp (table[i].locale, locale) == 0. */ + codeset = table[mid].canonical; + goto done_table_lookup; + } + } + if (0) + done_table_lookup: ; + else +# endif + { + /* Did not find it in the table. */ + /* On Mac OS X, all modern locales use the UTF-8 encoding. + BeOS and Haiku have a single locale, and it has UTF-8 encoding. */ +# if (defined __APPLE__ && defined __MACH__) || defined __BEOS__ || defined __HAIKU__ + codeset = "UTF-8"; +# else + /* The canonical name cannot be determined. */ + /* Don't return an empty string. GNU libc and GNU libiconv interpret + the empty string as denoting "the locale's character encoding", + thus GNU libiconv would call this function a second time. */ + codeset = "ASCII"; +# endif + } + } + +#endif #ifdef DARWIN7 /* Mac OS X sets MB_CUR_MAX to 1 when LC_ALL=C, and "UTF-8" diff --git a/gnu/localcharset.h b/gnu/localcharset.h index bca429b6..7d0d7711 100644 --- a/gnu/localcharset.h +++ b/gnu/localcharset.h @@ -1,5 +1,5 @@ /* Determine a canonical name for the current locale's character encoding. - Copyright (C) 2000-2003, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2000-2003, 2009-2019 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 @@ -25,12 +25,106 @@ extern "C" { /* Determine the current locale's character encoding, and canonicalize it - into one of the canonical names listed in config.charset. + into one of the canonical names listed below. The result must not be freed; it is statically allocated. If the canonical name cannot be determined, the result is a non-canonical name. */ extern const char * locale_charset (void); +/* About GNU canonical names for character encodings: + + Every canonical name must be supported by GNU libiconv. Support by GNU libc + is also desirable. + + The name is case insensitive. Usually an upper case MIME charset name is + preferred. + + The current list of these GNU canonical names is: + + name MIME? used by which systems + (darwin = Mac OS X, windows = native Windows) + + ASCII, ANSI_X3.4-1968 glibc solaris freebsd netbsd darwin minix 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 + ISO-8859-3 Y glibc solaris cygwin + ISO-8859-4 Y hpux osf solaris freebsd netbsd openbsd darwin + ISO-8859-5 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin + ISO-8859-6 Y glibc aix hpux solaris cygwin + ISO-8859-7 Y glibc aix hpux irix osf solaris freebsd netbsd openbsd darwin cygwin + ISO-8859-8 Y glibc aix hpux osf solaris cygwin + ISO-8859-9 Y glibc aix hpux irix osf solaris freebsd darwin cygwin + ISO-8859-13 glibc hpux solaris freebsd netbsd openbsd darwin cygwin + ISO-8859-14 glibc cygwin + ISO-8859-15 glibc aix irix osf solaris freebsd netbsd openbsd darwin cygwin + KOI8-R Y glibc hpux solaris freebsd netbsd openbsd darwin + KOI8-U Y glibc freebsd netbsd openbsd darwin cygwin + KOI8-T glibc + CP437 dos + CP775 dos + CP850 aix osf dos + CP852 dos + CP855 dos + CP856 aix + CP857 dos + CP861 dos + CP862 dos + CP864 dos + CP865 dos + CP866 freebsd netbsd openbsd darwin dos + CP869 dos + CP874 windows dos + CP922 aix + CP932 aix cygwin windows dos + CP943 aix + CP949 osf darwin windows dos + CP950 windows dos + CP1046 aix + CP1124 aix + CP1125 dos + CP1129 aix + CP1131 freebsd darwin + CP1250 windows + CP1251 glibc hpux solaris freebsd netbsd openbsd darwin cygwin windows + CP1252 aix windows + CP1253 windows + CP1254 windows + CP1255 glibc windows + CP1256 windows + CP1257 windows + GB2312 Y glibc aix hpux irix solaris freebsd netbsd darwin cygwin + EUC-JP Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin + EUC-KR Y glibc aix hpux irix osf solaris freebsd netbsd darwin cygwin + EUC-TW glibc aix hpux irix osf solaris netbsd + BIG5 Y glibc aix hpux osf solaris freebsd netbsd darwin cygwin + BIG5-HKSCS glibc hpux solaris netbsd darwin + GBK glibc aix osf solaris freebsd darwin cygwin windows dos + GB18030 glibc hpux solaris freebsd netbsd darwin + SHIFT_JIS Y hpux osf solaris freebsd netbsd darwin + JOHAB glibc solaris windows + TIS-620 glibc aix hpux osf solaris cygwin + VISCII Y glibc + TCVN5712-1 glibc + ARMSCII-8 glibc freebsd netbsd darwin + GEORGIAN-PS glibc cygwin + PT154 glibc netbsd cygwin + HP-ROMAN8 hpux + HP-ARABIC8 hpux + HP-GREEK8 hpux + HP-HEBREW8 hpux + HP-TURKISH8 hpux + HP-KANA8 hpux + DEC-KANJI osf + DEC-HANYU osf + UTF-8 Y glibc aix hpux osf solaris netbsd darwin cygwin + + Note: Names which are not marked as being a MIME name should not be used in + Internet protocols for information interchange (mail, news, etc.). + + Note: ASCII and ANSI_X3.4-1968 are synonymous canonical names. Applications + must understand both names and treat them as equivalent. + */ + #ifdef __cplusplus } diff --git a/gnu/locale.in.h b/gnu/locale.in.h index 7cb3f88f..5f33ed17 100644 --- a/gnu/locale.in.h +++ b/gnu/locale.in.h @@ -1,5 +1,5 @@ /* A POSIX <locale.h>. - Copyright (C) 2007-2017 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,10 +19,13 @@ #endif @PRAGMA_COLUMNS@ -#ifdef _GL_ALREADY_INCLUDING_LOCALE_H +#if (defined _WIN32 && !defined __CYGWIN__ && defined __need_locale_t) \ + || defined _GL_ALREADY_INCLUDING_LOCALE_H -/* Special invocation conventions to handle Solaris header files - (through Solaris 10) when combined with gettext's libintl.h. */ +/* Special invocation convention: + - Inside mingw header files, + - To handle Solaris header files (through Solaris 10) when combined + with gettext's libintl.h. */ #@INCLUDE_NEXT@ @NEXT_LOCALE_H@ @@ -187,11 +190,40 @@ _GL_WARN_ON_USE (setlocale, "setlocale works differently on native Windows - " # endif #endif -#if @GNULIB_DUPLOCALE@ +#if /*@GNULIB_NEWLOCALE@ ||*/ (@GNULIB_LOCALENAME@ && @HAVE_NEWLOCALE@) +# if @REPLACE_NEWLOCALE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef newlocale +# define newlocale rpl_newlocale +# define GNULIB_defined_newlocale 1 +# endif +_GL_FUNCDECL_RPL (newlocale, locale_t, + (int category_mask, const char *name, locale_t base) + _GL_ARG_NONNULL ((2))); +_GL_CXXALIAS_RPL (newlocale, locale_t, + (int category_mask, const char *name, locale_t base)); +# else +# if @HAVE_NEWLOCALE@ +_GL_CXXALIAS_SYS (newlocale, locale_t, + (int category_mask, const char *name, locale_t base)); +# endif +# endif +# if @HAVE_NEWLOCALE@ +_GL_CXXALIASWARN (newlocale); +# endif +#elif defined GNULIB_POSIXCHECK +# undef newlocale +# if HAVE_RAW_DECL_NEWLOCALE +_GL_WARN_ON_USE (newlocale, "newlocale is not portable"); +# endif +#endif + +#if @GNULIB_DUPLOCALE@ || (@GNULIB_LOCALENAME@ && @HAVE_DUPLOCALE@) # if @REPLACE_DUPLOCALE@ # if !(defined __cplusplus && defined GNULIB_NAMESPACE) # undef duplocale # define duplocale rpl_duplocale +# define GNULIB_defined_duplocale 1 # endif _GL_FUNCDECL_RPL (duplocale, locale_t, (locale_t locale) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (duplocale, locale_t, (locale_t locale)); @@ -211,6 +243,30 @@ _GL_WARN_ON_USE (duplocale, "duplocale is buggy on some glibc systems - " # endif #endif +#if /*@GNULIB_FREELOCALE@ ||*/ (@GNULIB_LOCALENAME@ && @HAVE_FREELOCALE@) +# if @REPLACE_FREELOCALE@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef freelocale +# define freelocale rpl_freelocale +# define GNULIB_defined_freelocale 1 +# endif +_GL_FUNCDECL_RPL (freelocale, void, (locale_t locale) _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (freelocale, void, (locale_t locale)); +# else +# if @HAVE_FREELOCALE@ +_GL_CXXALIAS_SYS (freelocale, void, (locale_t locale)); +# endif +# endif +# if @HAVE_FREELOCALE@ +_GL_CXXALIASWARN (freelocale); +# endif +#elif defined GNULIB_POSIXCHECK +# undef freelocale +# if HAVE_RAW_DECL_FREELOCALE +_GL_WARN_ON_USE (freelocale, "freelocale is not portable"); +# endif +#endif + #endif /* _@GUARD_PREFIX@_LOCALE_H */ -#endif /* ! _GL_ALREADY_INCLUDING_LOCALE_H */ #endif /* _@GUARD_PREFIX@_LOCALE_H */ +#endif /* !(__need_locale_t || _GL_ALREADY_INCLUDING_LOCALE_H) */ diff --git a/gnu/localeconv.c b/gnu/localeconv.c index 4fd3fec7..b5a965f3 100644 --- a/gnu/localeconv.c +++ b/gnu/localeconv.c @@ -1,5 +1,5 @@ /* Query locale dependent information for formatting numbers. - Copyright (C) 2012-2017 Free Software Foundation, Inc. + Copyright (C) 2012-2019 Free Software Foundation, Inc. This program is free 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/localtime-buffer.c b/gnu/localtime-buffer.c index c96c577a..b65ea45a 100644 --- a/gnu/localtime-buffer.c +++ b/gnu/localtime-buffer.c @@ -1,6 +1,6 @@ /* Provide access to the last buffer returned by localtime() or gmtime(). - Copyright (C) 2001-2003, 2005-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2001-2003, 2005-2007, 2009-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -34,6 +34,7 @@ struct tm *localtime_buffer_addr = &tm_zero_buffer; struct tm * rpl_localtime (time_t const *timep) +#undef localtime { struct tm *tm = localtime (timep); @@ -46,6 +47,7 @@ rpl_localtime (time_t const *timep) /* Same as above, since gmtime and localtime use the same buffer. */ struct tm * rpl_gmtime (time_t const *timep) +#undef gmtime { struct tm *tm = gmtime (timep); diff --git a/gnu/localtime-buffer.h b/gnu/localtime-buffer.h index 0a0389da..031111a7 100644 --- a/gnu/localtime-buffer.h +++ b/gnu/localtime-buffer.h @@ -1,6 +1,6 @@ /* Provide access to the last buffer returned by localtime() or gmtime(). - Copyright (C) 2001-2003, 2005-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2001-2003, 2005-2007, 2009-2019 Free Software Foundation, Inc. This program is free 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/lseek.c b/gnu/lseek.c index 4c87bd5f..46f7a3fa 100644 --- a/gnu/lseek.c +++ b/gnu/lseek.c @@ -1,5 +1,5 @@ /* An lseek() function that detects pipes. - Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2007, 2009-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,7 +19,7 @@ /* Specification. */ #include <unistd.h> -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ /* Windows platforms. */ /* Get GetFileType. */ # include <windows.h> @@ -39,7 +39,7 @@ off_t rpl_lseek (int fd, off_t offset, int whence) { -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ /* mingw lseek mistakenly succeeds on pipes, sockets, and terminals. */ HANDLE h = (HANDLE) _get_osfhandle (fd); if (h == INVALID_HANDLE_VALUE) diff --git a/gnu/lstat.c b/gnu/lstat.c index c721a4e6..d57ca105 100644 --- a/gnu/lstat.c +++ b/gnu/lstat.c @@ -1,6 +1,6 @@ /* Work around a bug of lstat on some systems - Copyright (C) 1997-2006, 2008-2017 Free Software Foundation, Inc. + Copyright (C) 1997-2006, 2008-2019 Free Software Foundation, Inc. This 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,6 +47,8 @@ orig_lstat (const char *filename, struct stat *buf) above. */ # include "sys/stat.h" +# include "stat-time.h" + # include <string.h> # include <errno.h> @@ -66,32 +68,33 @@ orig_lstat (const char *filename, struct stat *buf) int rpl_lstat (const char *file, struct stat *sbuf) { - size_t len; - int lstat_result = orig_lstat (file, sbuf); - - if (lstat_result != 0) - return lstat_result; + int result = orig_lstat (file, sbuf); /* This replacement file can blindly check against '/' rather than using the ISSLASH macro, because all platforms with '\\' either lack symlinks (mingw) or have working lstat (cygwin) and thus do not compile this file. 0 len should have already been filtered out above, with a failure return of ENOENT. */ - len = strlen (file); - if (file[len - 1] != '/' || S_ISDIR (sbuf->st_mode)) - return 0; - - /* At this point, a trailing slash is only permitted on - symlink-to-dir; but it should have found information on the - directory, not the symlink. Call stat() to get info about the - link's referent. Our replacement stat guarantees valid results, - even if the symlink is not pointing to a directory. */ - if (!S_ISLNK (sbuf->st_mode)) + if (result == 0) { - errno = ENOTDIR; - return -1; + if (S_ISDIR (sbuf->st_mode) || file[strlen (file) - 1] != '/') + result = stat_time_normalize (result, sbuf); + else + { + /* At this point, a trailing slash is permitted only on + symlink-to-dir; but it should have found information on the + directory, not the symlink. Call 'stat' to get info about the + link's referent. Our replacement stat guarantees valid results, + even if the symlink is not pointing to a directory. */ + if (!S_ISLNK (sbuf->st_mode)) + { + errno = ENOTDIR; + return -1; + } + result = stat (file, sbuf); + } } - return stat (file, sbuf); + return result; } #endif /* HAVE_LSTAT */ diff --git a/gnu/malloc.c b/gnu/malloc.c index f13eb7b6..76e6ff76 100644 --- a/gnu/malloc.c +++ b/gnu/malloc.c @@ -1,6 +1,6 @@ /* malloc() function that is glibc compatible. - Copyright (C) 1997-1998, 2006-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1997-1998, 2006-2007, 2009-2019 Free Software Foundation, Inc. This program is free 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/malloca.c b/gnu/malloca.c index 4b3348d3..f60c5fb5 100644 --- a/gnu/malloca.c +++ b/gnu/malloca.c @@ -1,6 +1,6 @@ /* Safe automatic memory allocation. - Copyright (C) 2003, 2006-2007, 2009-2017 Free Software Foundation, Inc. - Written by Bruno Haible <bruno@clisp.org>, 2003. + Copyright (C) 2003, 2006-2007, 2009-2019 Free Software Foundation, Inc. + Written by Bruno Haible <bruno@clisp.org>, 2003, 2018. This 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,92 +21,49 @@ /* Specification. */ #include "malloca.h" -#include <stdint.h> - #include "verify.h" -/* Silence a warning from clang's MemorySanitizer. */ -#if defined __has_feature -# if __has_feature(memory_sanitizer) -# define NO_SANITIZE_MEMORY __attribute__((no_sanitize("memory"))) -# endif -#endif -#ifndef NO_SANITIZE_MEMORY -# define NO_SANITIZE_MEMORY -#endif - /* 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 mmalloca() and freea() in the other case are not critical, because they - are only invoked for big memory sizes. */ - -#if HAVE_ALLOCA - -/* Store the mmalloca() results in a hash table. This is needed to reliably - distinguish a mmalloca() result and an alloca() result. - - Although it is possible that the same pointer is returned by alloca() and - by mmalloca() at different times in the same application, it does not lead - to a bug in freea(), because: - - Before a pointer returned by alloca() can point into malloc()ed memory, - the function must return, and once this has happened the programmer must - not call freea() on it anyway. - - Before a pointer returned by mmalloca() can point into the stack, it - must be freed. The only function that can free it is freea(), and - when freea() frees it, it also removes it from the hash table. */ - -#define MAGIC_NUMBER 0x1415fb4a -#define MAGIC_SIZE sizeof (int) -/* This is how the header info would look like without any alignment - considerations. */ -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) -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 - lookup becomes slow, it means that the application has memory leaks. */ -#define HASH_TABLE_SIZE 257 -static void * mmalloca_results[HASH_TABLE_SIZE]; - -#endif + are only invoked for big memory sizes. + Here we use a bit in the address as an indicator, an idea by Ondřej Bílka. + malloca() can return three types of pointers: + - Pointers ≡ 0 mod 2*sa_alignment_max come from stack allocation. + - Pointers ≡ sa_alignment_max mod 2*sa_alignment_max come from heap + allocation. + - NULL comes from a failed heap allocation. */ + +/* Type for holding very small pointer differences. */ +typedef unsigned char small_t; +/* Verify that it is wide enough. */ +verify (2 * sa_alignment_max - 1 <= (small_t) -1); void * mmalloca (size_t n) { #if HAVE_ALLOCA - /* Allocate one more word, that serves as an indicator for malloc()ed - memory, so that freea() of an alloca() result is fast. */ - size_t nplus = n + HEADER_SIZE; + /* Allocate one more word, used to determine the address to pass to freea(), + and room for the alignment ≡ sa_alignment_max mod 2*sa_alignment_max. */ + size_t nplus = n + sizeof (small_t) + 2 * sa_alignment_max - 1; if (nplus >= n) { - void *p = malloc (nplus); + char *mem = (char *) malloc (nplus); - if (p != NULL) + if (mem != NULL) { - size_t slot; - union header *h = p; - - p = h + 1; - - /* Put a magic number into the indicator word. */ - h->magic.word = MAGIC_NUMBER; - - /* Enter p into the hash table. */ - slot = (uintptr_t) p % HASH_TABLE_SIZE; - h->next = mmalloca_results[slot]; - mmalloca_results[slot] = p; - + char *p = + (char *)((((uintptr_t)mem + sizeof (small_t) + sa_alignment_max - 1) + & ~(uintptr_t)(2 * sa_alignment_max - 1)) + + sa_alignment_max); + /* Here p >= mem + sizeof (small_t), + and p <= mem + sizeof (small_t) + 2 * sa_alignment_max - 1 + hence p + n <= mem + nplus. + So, the memory range [p, p+n) lies in the allocated memory range + [mem, mem + nplus). */ + ((small_t *) p)[-1] = p - mem; + /* p ≡ sa_alignment_max mod 2*sa_alignment_max. */ return p; } } @@ -122,38 +79,27 @@ mmalloca (size_t n) } #if HAVE_ALLOCA -void NO_SANITIZE_MEMORY +void freea (void *p) { - /* mmalloca() may have returned NULL. */ - if (p != NULL) + /* Check argument. */ + if ((uintptr_t) p & (sa_alignment_max - 1)) { - /* Attempt to quickly distinguish the mmalloca() result - which has - a magic indicator word - and the alloca() result - which has an - uninitialized indicator word. It is for this test that sa_increment - additional bytes are allocated in the alloca() case. */ - if (((int *) p)[-1] == MAGIC_NUMBER) - { - /* Looks like a mmalloca() result. To see whether it really is one, - perform a lookup in the hash table. */ - 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. */ - union header *p_begin = h - 1; - *chain = p_begin->next; - free (p_begin); - return; - } - h = *chain; - chain = &h[-1].next; - } - } - /* At this point, we know it was not a mmalloca() result. */ + /* p was not the result of a malloca() call. Invalid argument. */ + abort (); + } + /* Determine whether p was a non-NULL pointer returned by mmalloca(). */ + if ((uintptr_t) p & sa_alignment_max) + { + void *mem = (char *) p - ((small_t *) p)[-1]; + free (mem); } } #endif + +/* + * Hey Emacs! + * Local Variables: + * coding: utf-8 + * End: + */ diff --git a/gnu/malloca.h b/gnu/malloca.h index d5155c73..d80c316c 100644 --- a/gnu/malloca.h +++ b/gnu/malloca.h @@ -1,5 +1,5 @@ /* Safe automatic memory allocation. - Copyright (C) 2003-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2003-2007, 2009-2019 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2003. This program is free software; you can redistribute it and/or modify @@ -56,8 +56,10 @@ extern "C" { the function returns. Upon failure, it returns NULL. */ #if HAVE_ALLOCA # define malloca(N) \ - ((N) < 4032 - sa_increment \ - ? (void *) ((char *) alloca ((N) + sa_increment) + sa_increment) \ + ((N) < 4032 - (2 * sa_alignment_max - 1) \ + ? (void *) (((uintptr_t) (char *) alloca ((N) + 2 * sa_alignment_max - 1) \ + + (2 * sa_alignment_max - 1)) \ + & ~(uintptr_t)(2 * sa_alignment_max - 1)) \ : mmalloca (N)) #else # define malloca(N) \ @@ -119,10 +121,7 @@ enum | (sa_alignment_longlong - 1) #endif | (sa_alignment_longdouble - 1) - ) + 1, -/* The increment that guarantees room for a magic word must be >= sizeof (int) - and a multiple of sa_alignment_max. */ - sa_increment = ((sizeof (int) + sa_alignment_max - 1) / sa_alignment_max) * sa_alignment_max + ) + 1 }; #endif /* _MALLOCA_H */ diff --git a/gnu/malloca.valgrind b/gnu/malloca.valgrind deleted file mode 100644 index 52f0a50f..00000000 --- a/gnu/malloca.valgrind +++ /dev/null @@ -1,7 +0,0 @@ -# Suppress a valgrind message about use of uninitialized memory in freea(). -# This use is OK because it provides only a speedup. -{ - freea - Memcheck:Cond - fun:freea -} diff --git a/gnu/mbchar.c b/gnu/mbchar.c index edd6dc54..aa8012b6 100644 --- a/gnu/mbchar.c +++ b/gnu/mbchar.c @@ -1,4 +1,4 @@ -/* Copyright (C) 2001, 2006, 2009-2017 Free Software Foundation, Inc. +/* Copyright (C) 2001, 2006, 2009-2019 Free Software Foundation, Inc. This program is free 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/mbchar.h b/gnu/mbchar.h index 469b8022..2d26075c 100644 --- a/gnu/mbchar.h +++ b/gnu/mbchar.h @@ -1,5 +1,5 @@ /* Multibyte character data type. - Copyright (C) 2001, 2005-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2001, 2005-2007, 2009-2019 Free Software Foundation, Inc. This program is free 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/mbrtowc.c b/gnu/mbrtowc.c index 28787c6e..bbe3f7a3 100644 --- a/gnu/mbrtowc.c +++ b/gnu/mbrtowc.c @@ -1,5 +1,5 @@ /* Convert multibyte character to wide character. - Copyright (C) 1999-2002, 2005-2017 Free Software Foundation, Inc. + Copyright (C) 1999-2002, 2005-2019 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2008. This program is free software: you can redistribute it and/or modify @@ -35,12 +35,60 @@ # include "streq.h" # include "verify.h" -#ifndef FALLTHROUGH -# if __GNUC__ < 7 -# define FALLTHROUGH ((void) 0) -# else -# define FALLTHROUGH __attribute__ ((__fallthrough__)) +# ifndef FALLTHROUGH +# if __GNUC__ < 7 +# define FALLTHROUGH ((void) 0) +# else +# define FALLTHROUGH __attribute__ ((__fallthrough__)) +# endif # endif + +/* Returns a classification of special values of the encoding of the current + locale. */ +typedef enum { + enc_other, /* other */ + enc_utf8, /* UTF-8 */ + enc_eucjp, /* EUC-JP */ + enc_94, /* EUC-KR, GB2312, BIG5 */ + enc_euctw, /* EUC-TW */ + enc_gb18030, /* GB18030 */ + enc_sjis /* SJIS */ +} enc_t; +static inline enc_t +locale_enc (void) +{ + const char *encoding = locale_charset (); + if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0)) + return enc_utf8; + if (STREQ_OPT (encoding, "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0)) + return enc_eucjp; + 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)) + return enc_94; + if (STREQ_OPT (encoding, "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0)) + return enc_euctw; + if (STREQ_OPT (encoding, "GB18030", 'G', 'B', '1', '8', '0', '3', '0', 0, 0)) + return enc_gb18030; + if (STREQ_OPT (encoding, "SJIS", 'S', 'J', 'I', 'S', 0, 0, 0, 0, 0)) + return enc_sjis; + return enc_other; +} + +#if GNULIB_WCHAR_SINGLE +/* When we know that the locale does not change, provide a speedup by + caching the value of locale_enc. */ +static int cached_locale_enc = -1; +static inline enc_t +locale_enc_cached (void) +{ + if (cached_locale_enc < 0) + cached_locale_enc = locale_enc (); + return cached_locale_enc; +} +#else +/* By default, don't make assumptions, hence no caching. */ +# define locale_enc_cached locale_enc #endif verify (sizeof (mbstate_t) >= 4); @@ -137,10 +185,9 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) if (m >= 4 || m >= MB_CUR_MAX) goto invalid; /* Here MB_CUR_MAX > 1 and 0 < m < 4. */ - { - const char *encoding = locale_charset (); - - if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0)) + switch (locale_enc_cached ()) + { + case enc_utf8: /* UTF-8 */ { /* Cf. unistr/u8-mblen.c. */ unsigned char c = (unsigned char) p[0]; @@ -197,8 +244,7 @@ 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_OPT (encoding, - "EUC-JP", 'E', 'U', 'C', '-', 'J', 'P', 0, 0, 0)) + case enc_eucjp: /* EUC-JP */ { if (m == 1) { @@ -221,12 +267,8 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) } goto invalid; } - 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)) + + case enc_94: /* EUC-KR, GB2312, BIG5 */ { if (m == 1) { @@ -237,8 +279,8 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) } goto invalid; } - if (STREQ_OPT (encoding, - "EUC-TW", 'E', 'U', 'C', '-', 'T', 'W', 0, 0, 0)) + + case enc_euctw: /* EUC-TW */ { if (m == 1) { @@ -256,8 +298,8 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) } goto invalid; } - if (STREQ_OPT (encoding, - "GB18030", 'G', 'B', '1', '8', '0', '3', '0', 0, 0)) + + case enc_gb18030: /* GB18030 */ { if (m == 1) { @@ -290,7 +332,8 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) } goto invalid; } - if (STREQ_OPT (encoding, "SJIS", 'S', 'J', 'I', 'S', 0, 0, 0, 0, 0)) + + case enc_sjis: /* SJIS */ { if (m == 1) { @@ -303,9 +346,10 @@ mbrtowc (wchar_t *pwc, const char *s, size_t n, mbstate_t *ps) goto invalid; } - /* An unknown multibyte encoding. */ - goto incomplete; - } + default: + /* An unknown multibyte encoding. */ + goto incomplete; + } incomplete: { diff --git a/gnu/mbscasecmp.c b/gnu/mbscasecmp.c index cf00b402..86a5073b 100644 --- a/gnu/mbscasecmp.c +++ b/gnu/mbscasecmp.c @@ -1,5 +1,5 @@ /* Case-insensitive string comparison function. - Copyright (C) 1998-1999, 2005-2017 Free Software Foundation, Inc. + Copyright (C) 1998-1999, 2005-2019 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2005, based on earlier glibc code. diff --git a/gnu/mbsinit.c b/gnu/mbsinit.c index e429214f..5ecaef77 100644 --- a/gnu/mbsinit.c +++ b/gnu/mbsinit.c @@ -1,5 +1,5 @@ /* Test for initial conversion state. - Copyright (C) 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2008. This program is free software: you can redistribute it and/or modify @@ -54,7 +54,7 @@ mbsinit (const mbstate_t *ps) int mbsinit (const mbstate_t *ps) { -# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ +# if defined _WIN32 && !defined __CYGWIN__ /* Native Windows. */ # ifdef __MINGW32__ /* On mingw, 'mbstate_t' is defined as 'int'. */ diff --git a/gnu/mbsrtowcs-impl.h b/gnu/mbsrtowcs-impl.h index 22b31cbe..110d692e 100644 --- a/gnu/mbsrtowcs-impl.h +++ b/gnu/mbsrtowcs-impl.h @@ -1,5 +1,5 @@ /* Convert string to wide string. - Copyright (C) 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2008-2019 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/mbsrtowcs-state.c b/gnu/mbsrtowcs-state.c index ae7256c0..59525e72 100644 --- a/gnu/mbsrtowcs-state.c +++ b/gnu/mbsrtowcs-state.c @@ -1,5 +1,5 @@ /* Convert string to wide string. - Copyright (C) 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2008-2019 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/mbsrtowcs.c b/gnu/mbsrtowcs.c index 7441c82d..14f241e3 100644 --- a/gnu/mbsrtowcs.c +++ b/gnu/mbsrtowcs.c @@ -1,5 +1,5 @@ /* Convert string to wide string. - Copyright (C) 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2008-2019 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/mbtowc-impl.h b/gnu/mbtowc-impl.h index 7cba7d39..f4ab9818 100644 --- a/gnu/mbtowc-impl.h +++ b/gnu/mbtowc-impl.h @@ -1,5 +1,5 @@ /* Convert multibyte character to wide character. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 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/mbtowc.c b/gnu/mbtowc.c index 4db254b9..77a84724 100644 --- a/gnu/mbtowc.c +++ b/gnu/mbtowc.c @@ -1,5 +1,5 @@ /* Convert multibyte character to wide character. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 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.h b/gnu/mbuiter.h index 25a13f88..dde69abc 100644 --- a/gnu/mbuiter.h +++ b/gnu/mbuiter.h @@ -1,5 +1,5 @@ /* Iterating through multibyte strings: macros for multi-byte encodings. - Copyright (C) 2001, 2005, 2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2001, 2005, 2007, 2009-2019 Free Software Foundation, Inc. This program is free 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/memchr.c b/gnu/memchr.c index 5f89177c..4e0c5f9d 100644 --- a/gnu/memchr.c +++ b/gnu/memchr.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2017 +/* Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2004, 2006, 2008-2019 Free Software Foundation, Inc. Based on strlen implementation by Torbjorn Granlund (tege@sics.se), diff --git a/gnu/mempcpy.c b/gnu/mempcpy.c index b839a54e..d0220e10 100644 --- a/gnu/mempcpy.c +++ b/gnu/mempcpy.c @@ -1,5 +1,5 @@ /* Copy memory area and return pointer after last written byte. - Copyright (C) 2003, 2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2003, 2007, 2009-2019 Free Software Foundation, Inc. This program is free 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/memrchr.c b/gnu/memrchr.c index 29e56984..96022835 100644 --- a/gnu/memrchr.c +++ b/gnu/memrchr.c @@ -1,6 +1,6 @@ /* memrchr -- find the last occurrence of a byte in a memory block - Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2017 Free Software + Copyright (C) 1991, 1993, 1996-1997, 1999-2000, 2003-2019 Free Software Foundation, Inc. Based on strlen implementation by Torbjorn Granlund (tege@sics.se), @@ -68,7 +68,7 @@ __memrchr (void const *s, int c_in, size_t n) if (*--char_ptr == c) return (void *) char_ptr; - longword_ptr = (const longword *) char_ptr; + longword_ptr = (const void *) char_ptr; /* All these elucidatory comments refer to 4-byte longwords, but the theory applies equally well to any size longwords. */ diff --git a/gnu/minmax.h b/gnu/minmax.h index bbf14163..d7f6bea0 100644 --- a/gnu/minmax.h +++ b/gnu/minmax.h @@ -1,5 +1,5 @@ /* MIN, MAX macros. - Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009-2017 Free Software + Copyright (C) 1995, 1998, 2001, 2003, 2005, 2009-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify diff --git a/gnu/mkdir.c b/gnu/mkdir.c index c94c1ba8..b8320d00 100644 --- a/gnu/mkdir.c +++ b/gnu/mkdir.c @@ -1,7 +1,7 @@ /* On some systems, mkdir ("foo/", 0700) fails because of the trailing slash. On those systems, this wrapper removes the trailing slash. - Copyright (C) 2001, 2003, 2006, 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2001, 2003, 2006, 2008-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -38,7 +38,7 @@ Additionally, it declares _mkdir (and depending on compile flags, an alias mkdir), only in the nonstandard includes <direct.h> and <io.h>, which are included in the <sys/stat.h> override. */ -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ # define mkdir(name,mode) _mkdir (name) # define maybe_unused _GL_UNUSED #else diff --git a/gnu/mkdirat.c b/gnu/mkdirat.c index eb644da9..21c09cc8 100644 --- a/gnu/mkdirat.c +++ b/gnu/mkdirat.c @@ -1,5 +1,5 @@ /* fd-relative mkdir - Copyright (C) 2005-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2009-2019 Free Software Foundation, Inc. This program is free 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/mkdtemp.c b/gnu/mkdtemp.c index 9bd4ec9a..b1dd28dd 100644 --- a/gnu/mkdtemp.c +++ b/gnu/mkdtemp.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2001-2003, 2006-2007, 2009-2017 Free Software +/* Copyright (C) 1999, 2001-2003, 2006-2007, 2009-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. diff --git a/gnu/mkfifo.c b/gnu/mkfifo.c index af13362c..1878dca4 100644 --- a/gnu/mkfifo.c +++ b/gnu/mkfifo.c @@ -1,5 +1,5 @@ /* Create a named fifo. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free 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/mkfifoat.c b/gnu/mkfifoat.c index def4a147..8e44adeb 100644 --- a/gnu/mkfifoat.c +++ b/gnu/mkfifoat.c @@ -1,5 +1,5 @@ /* Create a named fifo relative to an open directory. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free 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/mknod.c b/gnu/mknod.c index d12d4fe6..dbbfe29c 100644 --- a/gnu/mknod.c +++ b/gnu/mknod.c @@ -1,5 +1,5 @@ /* Create a device inode. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free 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/mknodat.c b/gnu/mknodat.c index f9085582..0cec0d30 100644 --- a/gnu/mknodat.c +++ b/gnu/mknodat.c @@ -1,5 +1,5 @@ /* Create an inode relative to an open directory. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This 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 @@ mknodat (int fd _GL_UNUSED, char const *path _GL_UNUSED, return -1; } -#else /* HAVE_MKFIFO */ +#else /* Create a file system node FILE relative to directory FD, with access permissions and file type in MODE, and device type in DEV. @@ -54,4 +54,4 @@ mknodat (int fd _GL_UNUSED, char const *path _GL_UNUSED, # undef AT_FUNC_POST_FILE_PARAM_DECLS # undef AT_FUNC_POST_FILE_ARGS -#endif /* HAVE_MKFIFO */ +#endif diff --git a/gnu/mktime-internal.h b/gnu/mktime-internal.h index 00e58abd..d13d89cf 100644 --- a/gnu/mktime-internal.h +++ b/gnu/mktime-internal.h @@ -1,6 +1,6 @@ /* mktime variant that also uses an offset guess - Copyright 2016-2017 Free Software Foundation, Inc. + Copyright 2016-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public @@ -35,3 +35,19 @@ typedef int mktime_offset_t; time_t mktime_internal (struct tm *, struct tm * (*) (time_t const *, struct tm *), mktime_offset_t *); + +/* Although glibc source code uses leading underscores, Gnulib wants + ordinary names. + + Portable standalone applications should supply a <time.h> that + declares a POSIX-compliant localtime_r, for the benefit of older + implementations that lack localtime_r or have a nonstandard one. + Similarly for gmtime_r. See the gnulib time_r module for one way + to implement this. */ + +#undef __gmtime_r +#undef __localtime_r +#define __gmtime_r gmtime_r +#define __localtime_r localtime_r + +#define __mktime_internal mktime_internal diff --git a/gnu/mktime.c b/gnu/mktime.c index dd7f0a3a..d411aa77 100644 --- a/gnu/mktime.c +++ b/gnu/mktime.c @@ -1,5 +1,5 @@ /* Convert a 'struct tm' to a time_t value. - Copyright (C) 1993-2017 Free Software Foundation, Inc. + Copyright (C) 1993-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Paul Eggert <eggert@twinsun.com>. @@ -17,27 +17,21 @@ License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ -/* Define this to 1 to have a standalone program to test this implementation of - mktime. */ -#ifndef DEBUG_MKTIME -# define DEBUG_MKTIME 0 -#endif - /* The following macros influence what gets defined when this file is compiled: Macro/expression Which gnulib module This compilation unit should define + _LIBC (glibc proper) mktime + NEED_MKTIME_WORKING mktime rpl_mktime || NEED_MKTIME_WINDOWS NEED_MKTIME_INTERNAL mktime-internal mktime_internal - - DEBUG_MKTIME (defined manually) my_mktime, main */ -#if !defined _LIBC && !DEBUG_MKTIME -# include <config.h> +#ifndef _LIBC +# include <libc-config.h> #endif /* Assume that leap seconds are possible, unless told otherwise. @@ -49,34 +43,74 @@ #include <time.h> +#include <errno.h> #include <limits.h> #include <stdbool.h> +#include <stdlib.h> +#include <string.h> #include <intprops.h> #include <verify.h> -#if DEBUG_MKTIME -# include <stdio.h> -# include <stdlib.h> -# include <string.h> -/* Make it work even if the system's libc has its own mktime routine. */ -# undef mktime -# define mktime my_mktime +#ifndef NEED_MKTIME_INTERNAL +# define NEED_MKTIME_INTERNAL 0 +#endif +#ifndef NEED_MKTIME_WINDOWS +# define NEED_MKTIME_WINDOWS 0 +#endif +#ifndef NEED_MKTIME_WORKING +# define NEED_MKTIME_WORKING 0 #endif -#if NEED_MKTIME_WINDOWS /* on native Windows */ -# include <stdlib.h> -# include <string.h> +#include "mktime-internal.h" + +#if !defined _LIBC && (NEED_MKTIME_WORKING || NEED_MKTIME_WINDOWS) +static void +my_tzset (void) +{ +# if NEED_MKTIME_WINDOWS + /* Rectify the value of the environment variable TZ. + There are four possible kinds of such values: + - Traditional US time zone names, e.g. "PST8PDT". Syntax: see + <https://msdn.microsoft.com/en-us/library/90s5c885.aspx> + - Time zone names based on geography, that contain one or more + slashes, e.g. "Europe/Moscow". + - Time zone names based on geography, without slashes, e.g. + "Singapore". + - Time zone names that contain explicit DST rules. Syntax: see + <http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_03> + The Microsoft CRT understands only the first kind. It produces incorrect + results if the value of TZ is of the other kinds. + But in a Cygwin environment, /etc/profile.d/tzset.sh sets TZ to a value + of the second kind for most geographies, or of the first kind in a few + other geographies. If it is of the second kind, neutralize it. For the + Microsoft CRT, an absent or empty TZ means the time zone that the user + has set in the Windows Control Panel. + If the value of TZ is of the third or fourth kind -- Cygwin programs + understand these syntaxes as well --, it does not matter whether we + neutralize it or not, since these values occur only when a Cygwin user + has set TZ explicitly; this case is 1. rare and 2. under the user's + responsibility. */ + const char *tz = getenv ("TZ"); + if (tz != NULL && strchr (tz, '/') != NULL) + _putenv ("TZ="); +# elif HAVE_TZSET + tzset (); +# endif +} +# undef __tzset +# define __tzset() my_tzset () #endif -#if NEED_MKTIME_WORKING || NEED_MKTIME_INTERNAL || DEBUG_MKTIME +#if defined _LIBC || NEED_MKTIME_WORKING || NEED_MKTIME_INTERNAL /* A signed type that can represent an integer number of years - multiplied by three times the number of seconds in a year. It is + multiplied by four times the number of seconds in a year. It is needed when converting a tm_year value times the number of seconds - in a year. The factor of three comes because these products need + in a year. The factor of four comes because these products need to be subtracted from each other, and sometimes with an offset - added to them, without worrying about overflow. + added to them, and then with another timestamp added, without + worrying about overflow. Much of the code uses long_int to represent time_t values, to lessen the hassle of dealing with platforms where time_t is @@ -84,12 +118,12 @@ time_t values that mktime can generate even on platforms where time_t is excessively wide. */ -#if INT_MAX <= LONG_MAX / 3 / 366 / 24 / 60 / 60 +#if INT_MAX <= LONG_MAX / 4 / 366 / 24 / 60 / 60 typedef long int long_int; #else typedef long long int long_int; #endif -verify (INT_MAX <= TYPE_MAXIMUM (long_int) / 3 / 366 / 24 / 60 / 60); +verify (INT_MAX <= TYPE_MAXIMUM (long_int) / 4 / 366 / 24 / 60 / 60); /* Shift A right by B bits portably, by dividing A by 2**B and truncating towards minus infinity. B should be in the range 0 <= B @@ -150,19 +184,6 @@ const unsigned short int __mon_yday[2][13] = }; -#ifdef _LIBC -typedef time_t mktime_offset_t; -#else -/* Portable standalone applications should supply a <time.h> that - declares a POSIX-compliant localtime_r, for the benefit of older - implementations that lack localtime_r or have a nonstandard one. - See the gnulib time_r module for one way to implement this. */ -# undef __localtime_r -# define __localtime_r localtime_r -# define __mktime_internal mktime_internal -# include "mktime-internal.h" -#endif - /* Do the values A and B differ according to the rules for tm_isdst? A and B differ if one is zero and the other positive. */ static bool @@ -176,9 +197,10 @@ isdst_differ (int a, int b) were not adjusted between the timestamps. The YEAR values uses the same numbering as TP->tm_year. Values - need not be in the usual range. However, YEAR1 must not overflow - when multiplied by three times the number of seconds in a year, and - likewise for YDAY1 and three times the number of seconds in a day. */ + need not be in the usual range. However, YEAR1 - YEAR0 must not + overflow even when multiplied by three times the number of seconds + in a year, and likewise for YDAY1 - YDAY0 and three times the + number of seconds in a day. */ static long_int ydhms_diff (long_int year1, long_int yday1, int hour1, int min1, int sec1, @@ -213,43 +235,25 @@ long_int_avg (long_int a, long_int b) return shr (a, 1) + shr (b, 1) + ((a | b) & 1); } -/* Return a time_t value corresponding to (YEAR-YDAY HOUR:MIN:SEC), - assuming that T corresponds to *TP and that no clock adjustments - occurred between *TP and the desired time. - Although T and the returned value are of type long_int, - they represent time_t values and must be in time_t range. - If TP is null, return a value not equal to T; this avoids false matches. +/* Return a long_int value corresponding to (YEAR-YDAY HOUR:MIN:SEC) + minus *TP seconds, assuming no clock adjustments occurred between + the two timestamps. + YEAR and YDAY must not be so large that multiplying them by three times the number of seconds in a year (or day, respectively) would overflow long_int. - If the returned value would be out of range, yield the minimal or - maximal in-range value, except do not yield a value equal to T. */ + *TP should be in the usual range. */ static long_int -guess_time_tm (long_int year, long_int yday, int hour, int min, int sec, - long_int t, const struct tm *tp) +tm_diff (long_int year, long_int yday, int hour, int min, int sec, + struct tm const *tp) { - if (tp) - { - long_int result; - long_int d = ydhms_diff (year, yday, hour, min, sec, - tp->tm_year, tp->tm_yday, - tp->tm_hour, tp->tm_min, tp->tm_sec); - if (! INT_ADD_WRAPV (t, d, &result)) - return result; - } - - /* Overflow occurred one way or another. Return the nearest result - that is actually in range, except don't report a zero difference - if the actual difference is nonzero, as that would cause a false - match; and don't oscillate between two values, as that would - confuse the spring-forward gap detector. */ - return (t < long_int_avg (mktime_min, mktime_max) - ? (t <= mktime_min + 1 ? t + 1 : mktime_min) - : (mktime_max - 1 <= t ? t - 1 : mktime_max)); + return ydhms_diff (year, yday, hour, min, sec, + tp->tm_year, tp->tm_yday, + tp->tm_hour, tp->tm_min, tp->tm_sec); } /* Use CONVERT to convert T to a struct tm value in *TM. T must be in - range for time_t. Return TM if successful, NULL if T is out of - range for CONVERT. */ + range for time_t. Return TM if successful, NULL (setting errno) on + failure. */ static struct tm * convert_time (struct tm *(*convert) (const time_t *, struct tm *), long_int t, struct tm *tm) @@ -261,61 +265,64 @@ convert_time (struct tm *(*convert) (const time_t *, struct tm *), /* Use CONVERT to convert *T to a broken down time in *TP. If *T is out of range for conversion, adjust it so that it is the nearest in-range value and then convert that. - A value is in range if it fits in both time_t and long_int. */ + A value is in range if it fits in both time_t and long_int. + Return TP on success, NULL (setting errno) on failure. */ static struct tm * ranged_convert (struct tm *(*convert) (const time_t *, struct tm *), long_int *t, struct tm *tp) { - struct tm *r; - if (*t < mktime_min) - *t = mktime_min; - else if (mktime_max < *t) - *t = mktime_max; - r = convert_time (convert, *t, tp); - - if (!r && *t) + long_int t1 = (*t < mktime_min ? mktime_min + : *t <= mktime_max ? *t : mktime_max); + struct tm *r = convert_time (convert, t1, tp); + if (r) { - long_int bad = *t; - long_int ok = 0; + *t = t1; + return r; + } + if (errno != EOVERFLOW) + return NULL; - /* BAD is a known unconvertible value, and OK is a known good one. - Use binary search to narrow the range between BAD and OK until - they differ by 1. */ - while (true) - { - long_int mid = long_int_avg (ok, bad); - if (mid != ok && mid != bad) - break; - r = convert_time (convert, mid, tp); - if (r) - ok = mid; - else - bad = mid; - } + long_int bad = t1; + long_int ok = 0; + struct tm oktm; oktm.tm_sec = -1; - if (!r && ok) - { - /* The last conversion attempt failed; - revert to the most recent successful attempt. */ - r = convert_time (convert, ok, tp); - } + /* BAD is a known out-of-range value, and OK is a known in-range one. + Use binary search to narrow the range between BAD and OK until + they differ by 1. */ + while (true) + { + long_int mid = long_int_avg (ok, bad); + if (mid == ok || mid == bad) + break; + if (convert_time (convert, mid, tp)) + ok = mid, oktm = *tp; + else if (errno != EOVERFLOW) + return NULL; + else + bad = mid; } - return r; + if (oktm.tm_sec < 0) + return NULL; + *t = ok; + *tp = oktm; + return tp; } + /* Convert *TP to a time_t value, inverting the monotonic and mostly-unit-linear conversion function CONVERT. Use *OFFSET to keep track of a guess at the offset of the result, compared to what the result would be for UTC without leap seconds. If *OFFSET's guess is correct, only one CONVERT call is needed. + If successful, set *TP to the canonicalized struct tm; + otherwise leave *TP alone, return ((time_t) -1) and set errno. 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 *), mktime_offset_t *offset) { - long_int t, gt, t0, t1, t2, dt; struct tm tm; /* The maximum number of probes (calls to CONVERT) should be enough @@ -335,7 +342,7 @@ __mktime_internal (struct tm *tp, int isdst = tp->tm_isdst; /* 1 if the previous probe was DST. */ - int dst2; + int dst2 = 0; /* Ensure that mon is in range, and set year accordingly. */ int mon_remainder = mon % 12; @@ -355,6 +362,7 @@ __mktime_internal (struct tm *tp, long_int lmday = mday; long_int yday = mon_yday + lmday; + mktime_offset_t off = *offset; int negative_offset_guess; int sec_requested = sec; @@ -362,7 +370,7 @@ __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_diff assumes every minute has 60 seconds. */ if (sec < 0) sec = 0; if (59 < sec) @@ -372,34 +380,47 @@ __mktime_internal (struct tm *tp, /* Invert CONVERT by probing. First assume the same offset as last time. */ - INT_SUBTRACT_WRAPV (0, *offset, &negative_offset_guess); - t0 = ydhms_diff (year, yday, hour, min, sec, - EPOCH_YEAR - TM_YEAR_BASE, 0, 0, 0, negative_offset_guess); + INT_SUBTRACT_WRAPV (0, off, &negative_offset_guess); + long_int t0 = ydhms_diff (year, yday, hour, min, sec, + EPOCH_YEAR - TM_YEAR_BASE, 0, 0, 0, + negative_offset_guess); + long_int t = t0, t1 = t0, t2 = 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); - 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)))) - /* 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. */ - goto offset_found; - else if (--remaining_probes == 0) - return -1; + while (true) + { + if (! ranged_convert (convert, &t, &tm)) + return -1; + long_int dt = tm_diff (year, yday, hour, min, sec, &tm); + if (dt == 0) + break; + + if (t == t1 && t != t2 + && (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 DT. Follow the common + practice in this case, which is to return a time that is DT + 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; + + remaining_probes--; + if (remaining_probes == 0) + { + __set_errno (EOVERFLOW); + return -1; + } + + t1 = t2, t2 = t, t += dt, dst2 = tm.tm_isdst != 0; + } /* We have a match. Check whether tm.tm_isdst has the requested value, if any. */ @@ -441,25 +462,38 @@ __mktime_internal (struct tm *tp, if (! INT_ADD_WRAPV (t, delta * direction, &ot)) { struct tm otm; - ranged_convert (convert, &ot, &otm); + if (! ranged_convert (convert, &ot, &otm)) + return -1; if (! isdst_differ (isdst, otm.tm_isdst)) { /* We found the desired tm_isdst. Extrapolate back to the desired time. */ - t = guess_time_tm (year, yday, hour, min, sec, ot, &otm); - ranged_convert (convert, &t, &tm); - goto offset_found; + long_int gt = ot + tm_diff (year, yday, hour, min, sec, + &otm); + if (mktime_min <= gt && gt <= mktime_max) + { + if (convert_time (convert, gt, &tm)) + { + t = gt; + goto offset_found; + } + if (errno != EOVERFLOW) + return -1; + } } } } + + __set_errno (EOVERFLOW); + return -1; } offset_found: /* Set *OFFSET to the low-order bits of T - T0 - NEGATIVE_OFFSET_GUESS. This is just a heuristic to speed up the next mktime call, and correctness is unaffected if integer overflow occurs here. */ - INT_SUBTRACT_WRAPV (t, t0, &dt); - INT_SUBTRACT_WRAPV (dt, negative_offset_guess, offset); + INT_SUBTRACT_WRAPV (t, t0, offset); + INT_SUBTRACT_WRAPV (*offset, negative_offset_guess, offset); if (LEAP_SECONDS_POSSIBLE && sec_requested != tm.tm_sec) { @@ -469,8 +503,12 @@ __mktime_internal (struct tm *tp, sec_adjustment -= sec; sec_adjustment += sec_requested; if (INT_ADD_WRAPV (t, sec_adjustment, &t) - || ! (mktime_min <= t && t <= mktime_max) - || ! convert_time (convert, t, &tm)) + || ! (mktime_min <= t && t <= mktime_max)) + { + __set_errno (EOVERFLOW); + return -1; + } + if (! convert_time (convert, t, &tm)) return -1; } @@ -478,64 +516,28 @@ __mktime_internal (struct tm *tp, return t; } -#endif /* NEED_MKTIME_WORKING || NEED_MKTIME_INTERNAL || DEBUG_MKTIME */ +#endif /* _LIBC || NEED_MKTIME_WORKING || NEED_MKTIME_INTERNAL */ -#if NEED_MKTIME_WORKING || NEED_MKTIME_WINDOWS || DEBUG_MKTIME - -# if NEED_MKTIME_WORKING || DEBUG_MKTIME -static mktime_offset_t localtime_offset; -# endif +#if defined _LIBC || NEED_MKTIME_WORKING || NEED_MKTIME_WINDOWS /* Convert *TP to a time_t value. */ time_t mktime (struct tm *tp) { -# if NEED_MKTIME_WINDOWS - /* Rectify the value of the environment variable TZ. - There are four possible kinds of such values: - - Traditional US time zone names, e.g. "PST8PDT". Syntax: see - <https://msdn.microsoft.com/en-us/library/90s5c885.aspx> - - Time zone names based on geography, that contain one or more - slashes, e.g. "Europe/Moscow". - - Time zone names based on geography, without slashes, e.g. - "Singapore". - - Time zone names that contain explicit DST rules. Syntax: see - <http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_03> - The Microsoft CRT understands only the first kind. It produces incorrect - results if the value of TZ is of the other kinds. - But in a Cygwin environment, /etc/profile.d/tzset.sh sets TZ to a value - of the second kind for most geographies, or of the first kind in a few - other geographies. If it is of the second kind, neutralize it. For the - Microsoft CRT, an absent or empty TZ means the time zone that the user - has set in the Windows Control Panel. - If the value of TZ is of the third or fourth kind -- Cygwin programs - understand these syntaxes as well --, it does not matter whether we - neutralize it or not, since these values occur only when a Cygwin user - has set TZ explicitly; this case is 1. rare and 2. under the user's - responsibility. */ - const char *tz = getenv ("TZ"); - if (tz != NULL && strchr (tz, '/') != NULL) - _putenv ("TZ="); -# endif - -# if NEED_MKTIME_WORKING || DEBUG_MKTIME -# ifdef _LIBC /* POSIX.1 8.1.1 requires that whenever mktime() is called, the time zone names contained in the external variable 'tzname' shall be set as if the tzset() function had been called. */ __tzset (); -# elif HAVE_TZSET - tzset (); -# endif +# if defined _LIBC || NEED_MKTIME_WORKING + static mktime_offset_t localtime_offset; return __mktime_internal (tp, __localtime_r, &localtime_offset); # else # undef mktime return mktime (tp); # endif } - -#endif /* NEED_MKTIME_WORKING || NEED_MKTIME_WINDOWS || DEBUG_MKTIME */ +#endif /* _LIBC || NEED_MKTIME_WORKING || NEED_MKTIME_WINDOWS */ #ifdef weak_alias weak_alias (mktime, timelocal) @@ -545,146 +547,3 @@ weak_alias (mktime, timelocal) libc_hidden_def (mktime) libc_hidden_weak (timelocal) #endif - -#if DEBUG_MKTIME - -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)); -} - -static void -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); - else - printf ("0"); -} - -static int -check_result (time_t tk, struct tm tmk, time_t tl, const struct tm *lt) -{ - if (tk != tl || !lt || not_equal_tm (&tmk, lt)) - { - printf ("mktime ("); - print_tm (lt); - printf (")\nyields ("); - print_tm (&tmk); - printf (") == %ld, should be %ld\n", (long int) tk, (long int) tl); - return 1; - } - - return 0; -} - -int -main (int argc, char **argv) -{ - int status = 0; - struct tm tm, tmk, tml; - struct tm *lt; - time_t tk, tl, tl1; - char trailer; - - /* Sanity check, plus call tzset. */ - tl = 0; - if (! localtime (&tl)) - { - printf ("localtime (0) fails\n"); - status = 1; - } - - if ((argc == 3 || argc == 4) - && (sscanf (argv[1], "%d-%d-%d%c", - &tm.tm_year, &tm.tm_mon, &tm.tm_mday, &trailer) - == 3) - && (sscanf (argv[2], "%d:%d:%d%c", - &tm.tm_hour, &tm.tm_min, &tm.tm_sec, &trailer) - == 3)) - { - tm.tm_year -= TM_YEAR_BASE; - tm.tm_mon--; - tm.tm_isdst = argc == 3 ? -1 : atoi (argv[3]); - tmk = tm; - tl = mktime (&tmk); - lt = localtime_r (&tl, &tml); - printf ("mktime returns %ld == ", (long int) tl); - print_tm (&tmk); - printf ("\n"); - status = check_result (tl, tmk, tl, lt); - } - else if (argc == 4 || (argc == 5 && strcmp (argv[4], "-") == 0)) - { - time_t from = atol (argv[1]); - time_t by = atol (argv[2]); - time_t to = atol (argv[3]); - - if (argc == 4) - for (tl = from; by < 0 ? to <= tl : tl <= to; tl = tl1) - { - lt = localtime_r (&tl, &tml); - if (lt) - { - tmk = tml; - tk = mktime (&tmk); - status |= check_result (tk, tmk, tl, &tml); - } - else - { - printf ("localtime_r (%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_r (&tl, &tml); - if (lt) - { - tmk = tml; - tk = tl; - status |= check_result (tk, tmk, tl, &tml); - } - else - { - printf ("localtime_r (%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]); - - return status; -} - -#endif /* DEBUG_MKTIME */ - -/* -Local Variables: -compile-command: "gcc -DDEBUG_MKTIME -I. -Wall -W -O2 -g mktime.c -o mktime" -End: -*/ diff --git a/gnu/modechange.c b/gnu/modechange.c index c96e6d0f..29ba4872 100644 --- a/gnu/modechange.c +++ b/gnu/modechange.c @@ -1,6 +1,6 @@ /* modechange.c -- file mode manipulation - Copyright (C) 1989-1990, 1997-1999, 2001, 2003-2006, 2009-2017 Free Software + Copyright (C) 1989-1990, 1997-1999, 2001, 2003-2006, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/modechange.h b/gnu/modechange.h index 991fa09d..a1cc2432 100644 --- a/gnu/modechange.h +++ b/gnu/modechange.h @@ -1,6 +1,6 @@ /* modechange.h -- definitions for file mode manipulation - Copyright (C) 1989-1990, 1997, 2003-2006, 2009-2017 Free Software + Copyright (C) 1989-1990, 1997, 2003-2006, 2009-2019 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 index fced1178..75b5a070 100644 --- a/gnu/msvc-inval.c +++ b/gnu/msvc-inval.c @@ -1,5 +1,5 @@ /* Invalid parameter handler for MSVC runtime libraries. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This program is free 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/msvc-inval.h b/gnu/msvc-inval.h index b544a46e..e31cf650 100644 --- a/gnu/msvc-inval.h +++ b/gnu/msvc-inval.h @@ -1,5 +1,5 @@ /* Invalid parameter handler for MSVC runtime libraries. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This program is free 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/msvc-nothrow.c b/gnu/msvc-nothrow.c index b74b2228..49b709ca 100644 --- a/gnu/msvc-nothrow.c +++ b/gnu/msvc-nothrow.c @@ -1,6 +1,6 @@ /* Wrappers that don't throw invalid parameter notifications with MSVC runtime libraries. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This program is free 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/msvc-nothrow.h b/gnu/msvc-nothrow.h index b0622c0b..8d3ca789 100644 --- a/gnu/msvc-nothrow.h +++ b/gnu/msvc-nothrow.h @@ -1,6 +1,6 @@ /* Wrappers that don't throw invalid parameter notifications with MSVC runtime libraries. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This 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,7 @@ This file defines wrappers that turn such an invalid parameter notification into an error code. */ -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ /* Get original declaration of _get_osfhandle. */ # include <io.h> diff --git a/gnu/nl_langinfo.c b/gnu/nl_langinfo.c index 3e554e3d..e8a5595a 100644 --- a/gnu/nl_langinfo.c +++ b/gnu/nl_langinfo.c @@ -1,6 +1,6 @@ /* nl_langinfo() replacement: query locale dependent information. - Copyright (C) 2007-2017 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This 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,12 +22,13 @@ #include <locale.h> #include <string.h> -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include <windows.h> # include <stdio.h> #endif +#if !REPLACE_NL_LANGINFO || GNULIB_defined_CODESET /* Return the codeset of the current locale, if this is easily deducible. Otherwise, return "". */ static char * @@ -64,7 +65,7 @@ ctype_codeset (void) } } -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# if defined _WIN32 && ! defined __CYGWIN__ /* If setlocale is successful, it returns the number of the codepage, as a string. Otherwise, fall back on Windows API GetACP, which returns the locale's codepage as a number (although @@ -76,9 +77,10 @@ ctype_codeset (void) else sprintf (buf + 2, "%u", GetACP ()); codeset = memcpy (buf, "CP", 2); -#endif +# endif return codeset; } +#endif #if REPLACE_NL_LANGINFO @@ -100,6 +102,24 @@ rpl_nl_langinfo (nl_item item) case T_FMT_AMPM: return (char *) "%I:%M:%S %p"; # endif +# if GNULIB_defined_ALTMON + case ALTMON_1: + case ALTMON_2: + case ALTMON_3: + case ALTMON_4: + case ALTMON_5: + case ALTMON_6: + case ALTMON_7: + case ALTMON_8: + case ALTMON_9: + case ALTMON_10: + case ALTMON_11: + case ALTMON_12: + /* We don't ship the appropriate localizations with gnulib. Therefore, + treat ALTMON_i like MON_i. */ + item = item - ALTMON_1 + MON_1; + break; +# endif # if GNULIB_defined_ERA case ERA: /* The format is not standardized. In glibc it is a sequence of strings @@ -171,8 +191,10 @@ nl_langinfo (nl_item item) return localeconv () ->decimal_point; case THOUSEP: return localeconv () ->thousands_sep; +# ifdef GROUPING case GROUPING: return localeconv () ->grouping; +# endif /* nl_langinfo items of the LC_TIME category. TODO: Really use the locale. */ case D_T_FMT: @@ -228,28 +250,49 @@ nl_langinfo (nl_item item) return (char *) abdays[item - ABDAY_1]; return nlbuf; } - case MON_1: - case MON_2: - case MON_3: - case MON_4: - case MON_5: - case MON_6: - case MON_7: - case MON_8: - case MON_9: - case MON_10: - case MON_11: - case MON_12: - { - static char const months[][sizeof "September"] = { - "January", "February", "March", "April", "May", "June", "July", - "September", "October", "November", "December" - }; + { + static char const months[][sizeof "September"] = { + "January", "February", "March", "April", "May", "June", "July", + "September", "October", "November", "December" + }; + case MON_1: + case MON_2: + case MON_3: + case MON_4: + case MON_5: + case MON_6: + case MON_7: + case MON_8: + case MON_9: + case MON_10: + case MON_11: + case MON_12: tmm.tm_mon = item - MON_1; if (!strftime (nlbuf, sizeof nlbuf, "%B", &tmm)) return (char *) months[item - MON_1]; return nlbuf; - } + case ALTMON_1: + case ALTMON_2: + case ALTMON_3: + case ALTMON_4: + case ALTMON_5: + case ALTMON_6: + case ALTMON_7: + case ALTMON_8: + case ALTMON_9: + case ALTMON_10: + case ALTMON_11: + case ALTMON_12: + tmm.tm_mon = item - ALTMON_1; + /* The platforms without nl_langinfo() don't support strftime with %OB. + We don't even need to try. */ + #if 0 + if (!strftime (nlbuf, sizeof nlbuf, "%OB", &tmm)) + #endif + if (!strftime (nlbuf, sizeof nlbuf, "%B", &tmm)) + return (char *) months[item - ALTMON_1]; + return nlbuf; + } case ABMON_1: case ABMON_2: case ABMON_3: @@ -279,6 +322,7 @@ nl_langinfo (nl_item item) /* nl_langinfo items of the LC_MONETARY category. */ case CRNCYSTR: return localeconv () ->currency_symbol; +# ifdef INT_CURR_SYMBOL case INT_CURR_SYMBOL: return localeconv () ->int_curr_symbol; case MON_DECIMAL_POINT: @@ -307,6 +351,7 @@ nl_langinfo (nl_item item) return & localeconv () ->p_sign_posn; case N_SIGN_POSN: return & localeconv () ->n_sign_posn; +# endif /* nl_langinfo items of the LC_MESSAGES category TODO: Really use the locale. */ case YESEXPR: diff --git a/gnu/nstrftime.c b/gnu/nstrftime.c index 8795cd72..71f778a5 100644 --- a/gnu/nstrftime.c +++ b/gnu/nstrftime.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991-2017 Free Software Foundation, Inc. +/* Copyright (C) 1991-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -91,6 +91,7 @@ extern char *tzname[]; # define UCHAR_T unsigned char # define L_(Str) Str # define NLW(Sym) Sym +# define ABALTMON_1 _NL_ABALTMON_1 # define MEMCPY(d, s, n) memcpy (d, s, n) # define STRLEN(s) strlen (s) @@ -255,7 +256,7 @@ extern char *tzname[]; # undef _NL_CURRENT # define _NL_CURRENT(category, item) \ (current->values[_NL_ITEM_INDEX (item)].string) -# define LOCALE_PARAM , __locale_t loc +# define LOCALE_PARAM , locale_t loc # define LOCALE_ARG , loc # define HELPER_LOCALE_ARG , current #else @@ -475,12 +476,19 @@ __strftime_internal (STREAM_OR_CHAR_T *s, STRFTIME_ARG (size_t maxsize) # define f_month \ ((const CHAR_T *) (tp->tm_mon < 0 || tp->tm_mon > 11 \ ? "?" : _NL_CURRENT (LC_TIME, NLW(MON_1) + tp->tm_mon))) +# define a_altmonth \ + ((const CHAR_T *) (tp->tm_mon < 0 || tp->tm_mon > 11 \ + ? "?" : _NL_CURRENT (LC_TIME, NLW(ABALTMON_1) + tp->tm_mon))) +# define f_altmonth \ + ((const CHAR_T *) (tp->tm_mon < 0 || tp->tm_mon > 11 \ + ? "?" : _NL_CURRENT (LC_TIME, NLW(ALTMON_1) + tp->tm_mon))) # define ampm \ ((const CHAR_T *) _NL_CURRENT (LC_TIME, tp->tm_hour > 11 \ ? NLW(PM_STR) : NLW(AM_STR))) # define aw_len STRLEN (a_wkday) # define am_len STRLEN (a_month) +# define aam_len STRLEN (a_altmonth) # define ap_len STRLEN (ampm) #endif #if HAVE_TZNAME @@ -808,17 +816,20 @@ __strftime_internal (STREAM_OR_CHAR_T *s, STRFTIME_ARG (size_t maxsize) to_uppcase = true; to_lowcase = false; } - if (modifier != 0) + if (modifier == L_('E')) goto bad_format; #ifdef _NL_CURRENT - cpy (am_len, a_month); + if (modifier == L_('O')) + cpy (aam_len, a_altmonth); + else + cpy (am_len, a_month); break; #else goto underlying_strftime; #endif case L_('B'): - if (modifier != 0) + if (modifier == L_('E')) goto bad_format; if (change_case) { @@ -826,7 +837,10 @@ __strftime_internal (STREAM_OR_CHAR_T *s, STRFTIME_ARG (size_t maxsize) to_lowcase = false; } #ifdef _NL_CURRENT - cpy (STRLEN (f_month), f_month); + if (modifier == L_('O')) + cpy (STRLEN (f_altmonth), f_altmonth); + else + cpy (STRLEN (f_month), f_month); break; #else goto underlying_strftime; @@ -1424,28 +1438,10 @@ __strftime_internal (STREAM_OR_CHAR_T *s, STRFTIME_ARG (size_t maxsize) # endif ltm = *tp; + ltm.tm_wday = -1; lt = mktime_z (tz, <m); - - if (lt == (time_t) -1) - { - /* mktime returns -1 for errors, but -1 is also a - valid time_t value. Check whether an error really - occurred. */ - struct tm tm; - - if (! localtime_rz (tz, <, &tm) - || ((ltm.tm_sec ^ tm.tm_sec) - | (ltm.tm_min ^ tm.tm_min) - | (ltm.tm_hour ^ tm.tm_hour) - | (ltm.tm_mday ^ tm.tm_mday) - | (ltm.tm_mon ^ tm.tm_mon) - | (ltm.tm_year ^ tm.tm_year))) - break; - } - - if (! localtime_rz (0, <, >m)) + if (ltm.tm_wday < 0 || ! localtime_rz (0, <, >m)) break; - diff = tm_diff (<m, >m); } #endif diff --git a/gnu/obstack.c b/gnu/obstack.c index 31be3a76..abdd713d 100644 --- a/gnu/obstack.c +++ b/gnu/obstack.c @@ -1,5 +1,5 @@ /* obstack.c - subroutines used implicitly by object stack macros - Copyright (C) 1988-2017 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or diff --git a/gnu/obstack.h b/gnu/obstack.h index 00cd25dc..9fc64552 100644 --- a/gnu/obstack.h +++ b/gnu/obstack.h @@ -1,5 +1,5 @@ /* obstack.h - object stack macros - Copyright (C) 1988-2017 Free Software Foundation, Inc. + Copyright (C) 1988-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -111,7 +111,7 @@ #include <stddef.h> /* For size_t and ptrdiff_t. */ #include <string.h> /* For __GNU_LIBRARY__, and memcpy. */ -#if __STDC_VERSION__ < 199901L +#if __STDC_VERSION__ < 199901L || defined __HP_cc # define __FLEXIBLE_ARRAY_MEMBER 1 #else # define __FLEXIBLE_ARRAY_MEMBER diff --git a/gnu/open-safer.c b/gnu/open-safer.c new file mode 100644 index 00000000..040433a0 --- /dev/null +++ b/gnu/open-safer.c @@ -0,0 +1,46 @@ +/* Invoke open, but avoid some glitches. + + Copyright (C) 2005-2006, 2008-2019 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +/* Written by Paul Eggert. */ + +#include <config.h> + +#include "fcntl-safer.h" + +#include <fcntl.h> +#include <stdarg.h> +#include "unistd-safer.h" + +int +open_safer (char const *file, int flags, ...) +{ + mode_t mode = 0; + + if (flags & O_CREAT) + { + va_list ap; + va_start (ap, flags); + + /* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4 + creates crashing code when 'mode_t' is smaller than 'int'. */ + mode = va_arg (ap, PROMOTED_MODE_T); + + va_end (ap); + } + + return fd_safer (open (file, flags, mode)); +} diff --git a/gnu/open.c b/gnu/open.c index b5452b56..65526057 100644 --- a/gnu/open.c +++ b/gnu/open.c @@ -1,5 +1,5 @@ /* Open a descriptor to a file. - Copyright (C) 2007-2017 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -86,7 +86,7 @@ open (const char *filename, int flags, ...) flags &= ~O_NONBLOCK; #endif -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ if (strcmp (filename, "/dev/null") == 0) filename = "NUL"; #endif diff --git a/gnu/openat-die.c b/gnu/openat-die.c index b45b6b91..690c447a 100644 --- a/gnu/openat-die.c +++ b/gnu/openat-die.c @@ -1,6 +1,6 @@ /* Report a save- or restore-cwd failure in our openat replacement and then exit. - Copyright (C) 2005-2006, 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2008-2019 Free Software Foundation, Inc. This program is free 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/openat-priv.h b/gnu/openat-priv.h index b5a411b9..7b90eefa 100644 --- a/gnu/openat-priv.h +++ b/gnu/openat-priv.h @@ -1,6 +1,6 @@ /* Internals for openat-like functions. - Copyright (C) 2005-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2009-2019 Free Software Foundation, Inc. This program is free 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/openat-proc.c b/gnu/openat-proc.c index 6d2b598c..da76e2b3 100644 --- a/gnu/openat-proc.c +++ b/gnu/openat-proc.c @@ -1,6 +1,6 @@ /* Create /proc/self/fd-related names for subfiles of open directories. - Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2006, 2009-2019 Free Software Foundation, Inc. This program is free 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/openat-safer.c b/gnu/openat-safer.c new file mode 100644 index 00000000..667beaaa --- /dev/null +++ b/gnu/openat-safer.c @@ -0,0 +1,46 @@ +/* Invoke openat, but avoid some glitches. + + Copyright (C) 2005-2006, 2008-2019 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. */ + +/* Written by Paul Eggert for open, ported by Eric Blake for openat. */ + +#include <config.h> + +#include "fcntl-safer.h" + +#include <fcntl.h> +#include <stdarg.h> +#include "unistd-safer.h" + +int +openat_safer (int fd, char const *file, int flags, ...) +{ + mode_t mode = 0; + + if (flags & O_CREAT) + { + va_list ap; + va_start (ap, flags); + + /* We have to use PROMOTED_MODE_T instead of mode_t, otherwise GCC 4 + creates crashing code when 'mode_t' is smaller than 'int'. */ + mode = va_arg (ap, PROMOTED_MODE_T); + + va_end (ap); + } + + return fd_safer (openat (fd, file, flags, mode)); +} diff --git a/gnu/openat.c b/gnu/openat.c index 8b6389e2..4ab4a318 100644 --- a/gnu/openat.c +++ b/gnu/openat.c @@ -1,5 +1,5 @@ /* provide a replacement openat function - Copyright (C) 2004-2017 Free Software Foundation, Inc. + Copyright (C) 2004-2019 Free Software Foundation, Inc. This program is free 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/openat.h b/gnu/openat.h index 1c4f64a3..f23b371c 100644 --- a/gnu/openat.h +++ b/gnu/openat.h @@ -1,5 +1,5 @@ /* provide a replacement openat function - Copyright (C) 2004-2006, 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2004-2006, 2008-2019 Free Software Foundation, Inc. This program is free 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/opendir-safer.c b/gnu/opendir-safer.c index be18dc91..0bd831a7 100644 --- a/gnu/opendir-safer.c +++ b/gnu/opendir-safer.c @@ -1,6 +1,6 @@ /* Invoke opendir, but avoid some glitches. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free 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/opendir.c b/gnu/opendir.c index ad5c0d83..2eb96c6e 100644 --- a/gnu/opendir.c +++ b/gnu/opendir.c @@ -1,5 +1,5 @@ /* Start reading the entries of a directory. - Copyright (C) 2006-2017 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This program is free 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/opendirat.c b/gnu/opendirat.c new file mode 100644 index 00000000..ad63131e --- /dev/null +++ b/gnu/opendirat.c @@ -0,0 +1,54 @@ +/* Open a directory relative to another directory. + + Copyright 2006-2019 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see <https://www.gnu.org/licenses/>. + + Written by Jim Meyering and Paul Eggert. */ + +#include <config.h> + +#include <opendirat.h> + +#include <errno.h> +#include <fcntl--.h> +#include <unistd.h> + +/* Relative to DIR_FD, open the directory DIR, passing EXTRA_FLAGS to + the underlying openat call. On success, store into *PNEW_FD the + underlying file descriptor of the newly opened directory and return + the directory stream. On failure, return NULL and set errno. + + On success, *PNEW_FD is at least 3, so this is a "safer" function. */ + +DIR * +opendirat (int dir_fd, char const *dir, int extra_flags, int *pnew_fd) +{ + int open_flags = (O_RDONLY | O_CLOEXEC | O_DIRECTORY | O_NOCTTY + | O_NONBLOCK | extra_flags); + int new_fd = openat (dir_fd, dir, open_flags); + + if (new_fd < 0) + return NULL; + DIR *dirp = fdopendir (new_fd); + if (dirp) + *pnew_fd = new_fd; + else + { + int fdopendir_errno = errno; + close (new_fd); + errno = fdopendir_errno; + } + return dirp; +} diff --git a/gnu/opendirat.h b/gnu/opendirat.h new file mode 100644 index 00000000..1edf5b57 --- /dev/null +++ b/gnu/opendirat.h @@ -0,0 +1,2 @@ +#include <dirent.h> +DIR *opendirat (int, char const *, int, int *); diff --git a/gnu/parse-datetime.c b/gnu/parse-datetime.c index 600ecf63..568de6be 100644 --- a/gnu/parse-datetime.c +++ b/gnu/parse-datetime.c @@ -67,7 +67,7 @@ /* Parse a string into an internal timestamp. - Copyright (C) 1999-2000, 2002-2017 Free Software Foundation, Inc. + Copyright (C) 1999-2000, 2002-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -558,7 +558,7 @@ debug_print_current_time (char const *item, parser_control *pc) if (pc->local_zones_seen && !pc->debug_local_zones_seen) { fprintf (stderr, &" isdst=%d%s"[!space], - pc->local_isdst, pc->dsts_seen ? " DST" : ""); + pc->local_isdst, pc->dsts_seen ? " DST" : ""); pc->debug_local_zones_seen = true; space = true; } @@ -3456,24 +3456,17 @@ yyerror (parser_control const *pc _GL_UNUSED, return 0; } -/* In timezone TZ, if *TM0 is the old and *TM1 is the new value of a - struct tm after passing it to mktime_z, return true if it's OK that - mktime_z returned T. It's not OK if *TM0 has out-of-range - members. */ +/* If *TM0 is the old and *TM1 is the new value of a struct tm after + passing it to mktime_z, return true if it's OK. It's not OK if + mktime failed or if *TM0 has out-of-range mainline members. + The caller should set TM1->tm_wday to -1 before calling mktime, + as a negative tm_wday is how mktime failure is inferred. */ static bool -mktime_ok (timezone_t tz, struct tm const *tm0, struct tm const *tm1, time_t t) +mktime_ok (struct tm const *tm0, struct tm const *tm1) { - struct tm ltm; - if (t == (time_t) -1) - { - /* Guard against falsely reporting an error when parsing a - timestamp that happens to equal (time_t) -1, on a host that - supports such a timestamp. */ - tm1 = localtime_rz (tz, &t, <m); - if (!tm1) - return false; - } + if (tm1->tm_wday < 0) + return false; return ! ((tm0->tm_sec ^ tm1->tm_sec) | (tm0->tm_min ^ tm1->tm_min) @@ -3668,6 +3661,11 @@ parse_datetime2 (struct timespec *result, char const *p, timezone_t tz = tzdefault; + /* Store a local copy prior to first "goto". Without this, a prior use + below of RELATIVE_TIME_0 on the RHS might translate to an assignment- + to-temporary, which would trigger a -Wjump-misses-init warning. */ + const relative_time rel_time_0 = RELATIVE_TIME_0; + if (strncmp (p, "TZ=\"", 4) == 0) { char const *tzbase = p + 4; @@ -3740,7 +3738,7 @@ parse_datetime2 (struct timespec *result, char const *p, tm.tm_isdst = tmp.tm_isdst; pc.meridian = MER24; - pc.rel = RELATIVE_TIME_0; + pc.rel = rel_time_0; pc.timespec_seen = false; pc.rels_seen = false; pc.dates_seen = 0; @@ -3863,7 +3861,7 @@ parse_datetime2 (struct timespec *result, char const *p, fprintf (stderr, ", dst"); if (pc.zones_seen) - fprintf (stderr, " (%s)", time_zone_str (pc.time_zone, time_zone_buf)); + fprintf (stderr, " (%s)", time_zone_str (pc.time_zone, time_zone_buf)); fputc ('\n', stderr); } @@ -3943,10 +3941,11 @@ parse_datetime2 (struct timespec *result, char const *p, tm0.tm_mon = tm.tm_mon; tm0.tm_year = tm.tm_year; tm0.tm_isdst = tm.tm_isdst; + tm.tm_wday = -1; Start = mktime_z (tz, &tm); - if (! mktime_ok (tz, &tm0, &tm, Start)) + if (! mktime_ok (&tm0, &tm)) { bool repaired = false; bool time_zone_seen = pc.zones_seen != 0; @@ -3979,8 +3978,9 @@ parse_datetime2 (struct timespec *result, char const *p, tm.tm_mon = tm0.tm_mon; tm.tm_year = tm0.tm_year; tm.tm_isdst = tm0.tm_isdst; + tm.tm_wday = -1; Start = mktime_z (tz2, &tm); - repaired = mktime_ok (tz2, &tm0, &tm, Start); + repaired = mktime_ok (&tm0, &tm); tzfree (tz2); } diff --git a/gnu/parse-datetime.h b/gnu/parse-datetime.h index 013be4b1..9f7aebd1 100644 --- a/gnu/parse-datetime.h +++ b/gnu/parse-datetime.h @@ -1,6 +1,6 @@ /* Parse a string into an internal timestamp. - Copyright (C) 1995, 1997-1998, 2003-2004, 2007, 2009-2017 Free Software + Copyright (C) 1995, 1997-1998, 2003-2004, 2007, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/parse-datetime.y b/gnu/parse-datetime.y index f8da02d3..b264bb7f 100644 --- a/gnu/parse-datetime.y +++ b/gnu/parse-datetime.y @@ -1,7 +1,7 @@ %{ /* Parse a string into an internal timestamp. - Copyright (C) 1999-2000, 2002-2017 Free Software Foundation, Inc. + Copyright (C) 1999-2000, 2002-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -492,7 +492,7 @@ debug_print_current_time (char const *item, parser_control *pc) if (pc->local_zones_seen && !pc->debug_local_zones_seen) { fprintf (stderr, &" isdst=%d%s"[!space], - pc->local_isdst, pc->dsts_seen ? " DST" : ""); + pc->local_isdst, pc->dsts_seen ? " DST" : ""); pc->debug_local_zones_seen = true; space = true; } @@ -1554,24 +1554,17 @@ yyerror (parser_control const *pc _GL_UNUSED, return 0; } -/* In timezone TZ, if *TM0 is the old and *TM1 is the new value of a - struct tm after passing it to mktime_z, return true if it's OK that - mktime_z returned T. It's not OK if *TM0 has out-of-range - members. */ +/* If *TM0 is the old and *TM1 is the new value of a struct tm after + passing it to mktime_z, return true if it's OK. It's not OK if + mktime failed or if *TM0 has out-of-range mainline members. + The caller should set TM1->tm_wday to -1 before calling mktime, + as a negative tm_wday is how mktime failure is inferred. */ static bool -mktime_ok (timezone_t tz, struct tm const *tm0, struct tm const *tm1, time_t t) +mktime_ok (struct tm const *tm0, struct tm const *tm1) { - struct tm ltm; - if (t == (time_t) -1) - { - /* Guard against falsely reporting an error when parsing a - timestamp that happens to equal (time_t) -1, on a host that - supports such a timestamp. */ - tm1 = localtime_rz (tz, &t, <m); - if (!tm1) - return false; - } + if (tm1->tm_wday < 0) + return false; return ! ((tm0->tm_sec ^ tm1->tm_sec) | (tm0->tm_min ^ tm1->tm_min) @@ -1766,6 +1759,11 @@ parse_datetime2 (struct timespec *result, char const *p, timezone_t tz = tzdefault; + /* Store a local copy prior to first "goto". Without this, a prior use + below of RELATIVE_TIME_0 on the RHS might translate to an assignment- + to-temporary, which would trigger a -Wjump-misses-init warning. */ + const relative_time rel_time_0 = RELATIVE_TIME_0; + if (strncmp (p, "TZ=\"", 4) == 0) { char const *tzbase = p + 4; @@ -1838,7 +1836,7 @@ parse_datetime2 (struct timespec *result, char const *p, tm.tm_isdst = tmp.tm_isdst; pc.meridian = MER24; - pc.rel = RELATIVE_TIME_0; + pc.rel = rel_time_0; pc.timespec_seen = false; pc.rels_seen = false; pc.dates_seen = 0; @@ -1961,7 +1959,7 @@ parse_datetime2 (struct timespec *result, char const *p, fprintf (stderr, ", dst"); if (pc.zones_seen) - fprintf (stderr, " (%s)", time_zone_str (pc.time_zone, time_zone_buf)); + fprintf (stderr, " (%s)", time_zone_str (pc.time_zone, time_zone_buf)); fputc ('\n', stderr); } @@ -2041,10 +2039,11 @@ parse_datetime2 (struct timespec *result, char const *p, tm0.tm_mon = tm.tm_mon; tm0.tm_year = tm.tm_year; tm0.tm_isdst = tm.tm_isdst; + tm.tm_wday = -1; Start = mktime_z (tz, &tm); - if (! mktime_ok (tz, &tm0, &tm, Start)) + if (! mktime_ok (&tm0, &tm)) { bool repaired = false; bool time_zone_seen = pc.zones_seen != 0; @@ -2077,8 +2076,9 @@ parse_datetime2 (struct timespec *result, char const *p, tm.tm_mon = tm0.tm_mon; tm.tm_year = tm0.tm_year; tm.tm_isdst = tm0.tm_isdst; + tm.tm_wday = -1; Start = mktime_z (tz2, &tm); - repaired = mktime_ok (tz2, &tm0, &tm, Start); + repaired = mktime_ok (&tm0, &tm); tzfree (tz2); } diff --git a/gnu/pathmax.h b/gnu/pathmax.h index 191ba45e..83b9491f 100644 --- a/gnu/pathmax.h +++ b/gnu/pathmax.h @@ -1,5 +1,5 @@ /* Define PATH_MAX somehow. Requires sys/types.h. - Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2017 Free Software + Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify @@ -65,7 +65,7 @@ # define PATH_MAX 1024 # endif -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# if defined _WIN32 && ! defined __CYGWIN__ /* The page "Naming Files, Paths, and Namespaces" on msdn.microsoft.com, section "Maximum Path Length Limitation", <https://msdn.microsoft.com/en-us/library/aa365247.aspx#maxpath> diff --git a/gnu/pipe-safer.c b/gnu/pipe-safer.c index a3cfc10e..62017397 100644 --- a/gnu/pipe-safer.c +++ b/gnu/pipe-safer.c @@ -1,5 +1,5 @@ /* Invoke pipe, but avoid some glitches. - Copyright (C) 2005-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2009-2019 Free Software Foundation, Inc. This program is free 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/printf-args.c b/gnu/printf-args.c index 74335e49..e45cfbed 100644 --- a/gnu/printf-args.c +++ b/gnu/printf-args.c @@ -1,5 +1,5 @@ /* Decomposed printf argument list. - Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2017 Free Software + Copyright (C) 1999, 2002-2003, 2005-2007, 2009-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify diff --git a/gnu/printf-args.h b/gnu/printf-args.h index 74fd26e9..866cba04 100644 --- a/gnu/printf-args.h +++ b/gnu/printf-args.h @@ -1,5 +1,5 @@ /* Decomposed printf argument list. - Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2017 Free Software + Copyright (C) 1999, 2002-2003, 2006-2007, 2011-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify diff --git a/gnu/printf-parse.c b/gnu/printf-parse.c index b56eb724..8596fd5f 100644 --- a/gnu/printf-parse.c +++ b/gnu/printf-parse.c @@ -1,5 +1,5 @@ /* Formatted output to strings. - Copyright (C) 1999-2000, 2002-2003, 2006-2017 Free Software Foundation, Inc. + Copyright (C) 1999-2000, 2002-2003, 2006-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -419,7 +419,7 @@ PRINTF_PARSE (const CHAR_T *format, DIRECTIVES *d, arguments *a) cp++; } #endif -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ /* On native Windows, PRIdMAX is defined as "I64d". We cannot change it to "lld" because PRIdMAX must also be understood by the system's printf routines. */ diff --git a/gnu/printf-parse.h b/gnu/printf-parse.h index e19a07dc..746bb3fe 100644 --- a/gnu/printf-parse.h +++ b/gnu/printf-parse.h @@ -1,5 +1,5 @@ /* Parse printf format string. - Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2017 Free Software + Copyright (C) 1999, 2002-2003, 2005, 2007, 2010-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify diff --git a/gnu/priv-set.c b/gnu/priv-set.c index 1ba2551d..2e4ce40f 100644 --- a/gnu/priv-set.c +++ b/gnu/priv-set.c @@ -1,6 +1,6 @@ /* Query, remove, or restore a Solaris privilege. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free 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/priv-set.h b/gnu/priv-set.h index 22463e5d..96f6428f 100644 --- a/gnu/priv-set.h +++ b/gnu/priv-set.h @@ -1,6 +1,6 @@ /* Query, remove, or restore a Solaris privilege. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free 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/progname.c b/gnu/progname.c index fa51ca9c..a42b7fa2 100644 --- a/gnu/progname.c +++ b/gnu/progname.c @@ -1,5 +1,5 @@ /* Program name management. - Copyright (C) 2001-2003, 2005-2017 Free Software Foundation, Inc. + Copyright (C) 2001-2003, 2005-2019 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/progname.h b/gnu/progname.h index 3e026246..c726e97e 100644 --- a/gnu/progname.h +++ b/gnu/progname.h @@ -1,5 +1,5 @@ /* Program name management. - Copyright (C) 2001-2004, 2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2001-2004, 2006, 2009-2019 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/quote.h b/gnu/quote.h index 2c2f0b74..5cef8ff1 100644 --- a/gnu/quote.h +++ b/gnu/quote.h @@ -1,6 +1,6 @@ /* quote.h - prototypes for quote.c - Copyright (C) 1998-2001, 2003, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1998-2001, 2003, 2009-2019 Free Software Foundation, Inc. This program is free 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/quotearg.c b/gnu/quotearg.c index 8e432e13..773d53f1 100644 --- a/gnu/quotearg.c +++ b/gnu/quotearg.c @@ -1,6 +1,6 @@ /* quotearg.c - quote arguments for output - Copyright (C) 1998-2002, 2004-2017 Free Software Foundation, Inc. + Copyright (C) 1998-2002, 2004-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -1080,3 +1080,10 @@ quote (char const *arg) { return quote_n (0, arg); } + +/* + * Hey Emacs! + * Local Variables: + * coding: utf-8 + * End: + */ diff --git a/gnu/quotearg.h b/gnu/quotearg.h index 8d6b7f88..0f07e021 100644 --- a/gnu/quotearg.h +++ b/gnu/quotearg.h @@ -1,6 +1,6 @@ /* quotearg.h - quote arguments for output - Copyright (C) 1998-2002, 2004, 2006, 2008-2017 Free Software Foundation, + Copyright (C) 1998-2002, 2004, 2006, 2008-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/raise.c b/gnu/raise.c index aff5a582..e750b7a4 100644 --- a/gnu/raise.c +++ b/gnu/raise.c @@ -1,6 +1,6 @@ /* Provide a non-threads replacement for the POSIX raise function. - Copyright (C) 2002-2003, 2005-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2002-2003, 2005-2006, 2009-2019 Free Software Foundation, Inc. This 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,27 +31,9 @@ # include "msvc-inval.h" # endif -# 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; -} +/* Forward declaration. */ +static int raise_nothrow (int sig); # else # define raise_nothrow raise # endif @@ -61,12 +43,11 @@ raise_nothrow (int sig) # include <unistd.h> -# define rpl_raise raise - #endif int -rpl_raise (int sig) +raise (int sig) +#undef raise { #if GNULIB_defined_signal_blocking && GNULIB_defined_SIGPIPE if (sig == SIGPIPE) @@ -79,3 +60,24 @@ rpl_raise (int sig) return kill (getpid (), sig); #endif } + +#if HAVE_RAISE && 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; +} +#endif diff --git a/gnu/rawmemchr.c b/gnu/rawmemchr.c index f5793dd6..7df61512 100644 --- a/gnu/rawmemchr.c +++ b/gnu/rawmemchr.c @@ -1,5 +1,5 @@ /* Searching in a string. - Copyright (C) 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This program is free 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 index 238e765a..52df1b06 100644 --- a/gnu/read.c +++ b/gnu/read.c @@ -1,5 +1,5 @@ /* POSIX compatible read() function. - Copyright (C) 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2011. This program is free software: you can redistribute it and/or modify @@ -20,7 +20,7 @@ /* Specification. */ #include <unistd.h> -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ # include <errno.h> # include <io.h> diff --git a/gnu/readdir.c b/gnu/readdir.c index 041cdbdf..2a2e1e31 100644 --- a/gnu/readdir.c +++ b/gnu/readdir.c @@ -1,5 +1,5 @@ /* Read the next entry of a directory. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This program is free 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/readlink.c b/gnu/readlink.c index cd9604b2..bf711093 100644 --- a/gnu/readlink.c +++ b/gnu/readlink.c @@ -1,5 +1,5 @@ /* Stub for readlink(). - Copyright (C) 2003-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2003-2007, 2009-2019 Free Software Foundation, Inc. This program is free 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/readlinkat.c b/gnu/readlinkat.c index c9880e1c..c0f3e59f 100644 --- a/gnu/readlinkat.c +++ b/gnu/readlinkat.c @@ -1,5 +1,5 @@ /* Read a symlink relative to an open directory. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free 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/realloc.c b/gnu/realloc.c index 4a7d390e..a81ce3b5 100644 --- a/gnu/realloc.c +++ b/gnu/realloc.c @@ -1,6 +1,6 @@ /* realloc() function that is glibc compatible. - Copyright (C) 1997, 2003-2004, 2006-2007, 2009-2017 Free Software + Copyright (C) 1997, 2003-2004, 2006-2007, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/ref-add.sin b/gnu/ref-add.sin deleted file mode 100644 index 52df06a2..00000000 --- a/gnu/ref-add.sin +++ /dev/null @@ -1,29 +0,0 @@ -# Add this package to a list of references stored in a text file. -# -# Copyright (C) 2000, 2009-2017 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute 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 <https://www.gnu.org/licenses/>. -# -# Written by Bruno Haible <haible@clisp.cons.org>. -# -/^# Packages using this file: / { - s/# Packages using this file:// - ta - :a - s/ @PACKAGE@ / @PACKAGE@ / - tb - s/ $/ @PACKAGE@ / - :b - s/^/# Packages using this file:/ -} diff --git a/gnu/ref-del.sin b/gnu/ref-del.sin deleted file mode 100644 index 8e9752d2..00000000 --- a/gnu/ref-del.sin +++ /dev/null @@ -1,24 +0,0 @@ -# Remove this package from a list of references stored in a text file. -# -# Copyright (C) 2000, 2009-2017 Free Software Foundation, Inc. -# -# This program is free software; you can redistribute 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 <https://www.gnu.org/licenses/>. -# -# Written by Bruno Haible <haible@clisp.cons.org>. -# -/^# Packages using this file: / { - s/# Packages using this file:// - s/ @PACKAGE@ / / - s/^/# Packages using this file:/ -} diff --git a/gnu/regcomp.c b/gnu/regcomp.c index d79c69d6..10a0a49d 100644 --- a/gnu/regcomp.c +++ b/gnu/regcomp.c @@ -1,5 +1,5 @@ /* Extended regular expression matching and search library. - Copyright (C) 2002-2017 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>. @@ -59,7 +59,7 @@ static reg_errcode_t calc_inveclosure (re_dfa_t *dfa); static Idx fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax); static int peek_token (re_token_t *token, re_string_t *input, - reg_syntax_t syntax) internal_function; + reg_syntax_t syntax); static bin_tree_t *parse (re_string_t *regexp, regex_t *preg, reg_syntax_t syntax, reg_errcode_t *err); static bin_tree_t *parse_reg_exp (re_string_t *regexp, regex_t *preg, @@ -233,9 +233,7 @@ re_compile_pattern (const char *pattern, size_t length, return NULL; return gettext (__re_error_msgid + __re_error_msgid_idx[(int) ret]); } -#ifdef _LIBC weak_alias (__re_compile_pattern, re_compile_pattern) -#endif /* Set by 're_set_syntax' to the current regexp syntax to recognize. Can also be assigned to arbitrarily: each pattern buffer stores its own @@ -260,9 +258,7 @@ re_set_syntax (reg_syntax_t syntax) re_syntax_options = syntax; return ret; } -#ifdef _LIBC weak_alias (__re_set_syntax, re_set_syntax) -#endif int re_compile_fastmap (struct re_pattern_buffer *bufp) @@ -281,9 +277,7 @@ re_compile_fastmap (struct re_pattern_buffer *bufp) bufp->fastmap_accurate = 1; return 0; } -#ifdef _LIBC weak_alias (__re_compile_fastmap, re_compile_fastmap) -#endif static inline void __attribute__ ((always_inline)) @@ -464,7 +458,7 @@ re_compile_fastmap_iter (regex_t *bufp, const re_dfastate_t *init_state, the return codes and their meanings.) */ int -regcomp (regex_t *_Restrict_ preg, const char *_Restrict_ pattern, int cflags) +regcomp (regex_t *__restrict preg, const char *__restrict pattern, int cflags) { reg_errcode_t ret; reg_syntax_t syntax = ((cflags & REG_EXTENDED) ? RE_SYNTAX_POSIX_EXTENDED @@ -476,7 +470,7 @@ regcomp (regex_t *_Restrict_ preg, const char *_Restrict_ pattern, int cflags) /* Try to allocate space for the fastmap. */ preg->fastmap = re_malloc (char, SBC_MAX); - if (BE (preg->fastmap == NULL, 0)) + if (__glibc_unlikely (preg->fastmap == NULL)) return REG_ESPACE; syntax |= (cflags & REG_ICASE) ? RE_ICASE : 0; @@ -502,7 +496,7 @@ regcomp (regex_t *_Restrict_ preg, const char *_Restrict_ pattern, int cflags) ret = REG_EPAREN; /* We have already checked preg->fastmap != NULL. */ - if (BE (ret == REG_NOERROR, 1)) + if (__glibc_likely (ret == REG_NOERROR)) /* Compute the fastmap now, since regexec cannot modify the pattern buffer. This function never fails in this implementation. */ (void) re_compile_fastmap (preg); @@ -515,23 +509,21 @@ regcomp (regex_t *_Restrict_ preg, const char *_Restrict_ pattern, int cflags) return (int) ret; } -#ifdef _LIBC +libc_hidden_def (__regcomp) weak_alias (__regcomp, regcomp) -#endif /* Returns a message corresponding to an error code, ERRCODE, returned from either regcomp or regexec. We don't use PREG here. */ size_t -regerror (int errcode, const regex_t *_Restrict_ preg, char *_Restrict_ errbuf, +regerror (int errcode, const regex_t *__restrict preg, char *__restrict errbuf, size_t errbuf_size) { const char *msg; size_t msg_size; + int nerrcodes = sizeof __re_error_msgid_idx / sizeof __re_error_msgid_idx[0]; - if (BE (errcode < 0 - || errcode >= (int) (sizeof (__re_error_msgid_idx) - / sizeof (__re_error_msgid_idx[0])), 0)) + if (__glibc_unlikely (errcode < 0 || errcode >= nerrcodes)) /* Only error codes returned by the rest of the code should be passed to this routine. If we are given anything else, or if other regex code generates an invalid error code, then the program has a bug. @@ -542,10 +534,10 @@ regerror (int errcode, const regex_t *_Restrict_ preg, char *_Restrict_ errbuf, msg_size = strlen (msg) + 1; /* Includes the null. */ - if (BE (errbuf_size != 0, 1)) + if (__glibc_likely (errbuf_size != 0)) { size_t cpy_size = msg_size; - if (BE (msg_size > errbuf_size, 0)) + if (__glibc_unlikely (msg_size > errbuf_size)) { cpy_size = errbuf_size - 1; errbuf[cpy_size] = '\0'; @@ -555,9 +547,7 @@ regerror (int errcode, const regex_t *_Restrict_ preg, char *_Restrict_ errbuf, return msg_size; } -#ifdef _LIBC weak_alias (__regerror, regerror) -#endif #ifdef RE_ENABLE_I18N @@ -643,7 +633,7 @@ void regfree (regex_t *preg) { re_dfa_t *dfa = preg->buffer; - if (BE (dfa != NULL, 1)) + if (__glibc_likely (dfa != NULL)) { lock_fini (dfa->lock); free_dfa_content (dfa); @@ -657,9 +647,8 @@ regfree (regex_t *preg) re_free (preg->translate); preg->translate = NULL; } -#ifdef _LIBC +libc_hidden_def (__regfree) weak_alias (__regfree, regfree) -#endif /* Entry points compatible with 4.2 BSD regex library. We don't define them unless specifically requested. */ @@ -699,7 +688,7 @@ re_comp (const char *s) if (re_comp_buf.fastmap == NULL) { - re_comp_buf.fastmap = (char *) malloc (SBC_MAX); + re_comp_buf.fastmap = re_malloc (char, SBC_MAX); if (re_comp_buf.fastmap == NULL) return (char *) gettext (__re_error_msgid + __re_error_msgid_idx[(int) REG_ESPACE]); @@ -752,7 +741,7 @@ re_compile_internal (regex_t *preg, const char * pattern, size_t length, /* Initialize the dfa. */ dfa = preg->buffer; - if (BE (preg->allocated < sizeof (re_dfa_t), 0)) + if (__glibc_unlikely (preg->allocated < sizeof (re_dfa_t))) { /* If zero allocated, but buffer is non-null, try to realloc enough space. This loses if buffer's address is bogus, but @@ -767,9 +756,9 @@ re_compile_internal (regex_t *preg, const char * pattern, size_t length, preg->used = sizeof (re_dfa_t); err = init_dfa (dfa, length); - if (BE (err == REG_NOERROR && lock_init (dfa->lock) != 0, 0)) + if (__glibc_unlikely (err == REG_NOERROR && lock_init (dfa->lock) != 0)) err = REG_ESPACE; - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) { free_dfa_content (dfa); preg->buffer = NULL; @@ -784,7 +773,7 @@ re_compile_internal (regex_t *preg, const char * pattern, size_t length, err = re_string_construct (®exp, pattern, length, preg->translate, (syntax & RE_ICASE) != 0, dfa); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) { re_compile_internal_free_return: free_workarea_compile (preg); @@ -799,12 +788,12 @@ re_compile_internal (regex_t *preg, const char * pattern, size_t length, /* Parse the regular expression, and build a structure tree. */ preg->re_nsub = 0; dfa->str_tree = parse (®exp, preg, syntax, &err); - if (BE (dfa->str_tree == NULL, 0)) + if (__glibc_unlikely (dfa->str_tree == NULL)) goto re_compile_internal_free_return; /* Analyze the tree and create the nfa. */ err = analyze (preg); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) goto re_compile_internal_free_return; #ifdef RE_ENABLE_I18N @@ -820,7 +809,7 @@ re_compile_internal (regex_t *preg, const char * pattern, size_t length, free_workarea_compile (preg); re_string_destruct (®exp); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) { lock_fini (dfa->lock); free_dfa_content (dfa); @@ -862,7 +851,8 @@ 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 (MIN (IDX_MAX, SIZE_MAX / max_object_size) / 2 <= pat_len, 0)) + if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / max_object_size) / 2 + <= pat_len)) return REG_ESPACE; dfa->nodes_alloc = pat_len + 1; @@ -906,7 +896,7 @@ init_dfa (re_dfa_t *dfa, size_t pat_len) int i, j, ch; dfa->sb_char = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); - if (BE (dfa->sb_char == NULL, 0)) + if (__glibc_unlikely (dfa->sb_char == NULL)) return REG_ESPACE; /* Set the bits corresponding to single byte chars. */ @@ -925,7 +915,7 @@ init_dfa (re_dfa_t *dfa, size_t pat_len) } #endif - if (BE (dfa->nodes == NULL || dfa->state_table == NULL, 0)) + if (__glibc_unlikely (dfa->nodes == NULL || dfa->state_table == NULL)) return REG_ESPACE; return REG_NOERROR; } @@ -935,21 +925,23 @@ init_dfa (re_dfa_t *dfa, size_t pat_len) character used by some operators like "\<", "\>", etc. */ static void -internal_function init_word_char (re_dfa_t *dfa) { int i = 0; int j; int ch = 0; dfa->word_ops_used = 1; - if (BE (dfa->map_notascii == 0, 1)) + if (__glibc_likely (dfa->map_notascii == 0)) { + /* Avoid uint32_t and uint64_t as some non-GCC platforms lack + them, an issue when this code is used in Gnulib. */ bitset_word_t bits0 = 0x00000000; bitset_word_t bits1 = 0x03ff0000; bitset_word_t bits2 = 0x87fffffe; bitset_word_t bits3 = 0x07fffffe; if (BITSET_WORD_BITS == 64) { + /* Pacify gcc -Woverflow on 32-bit platformns. */ dfa->word_char[0] = bits1 << 31 << 1 | bits0; dfa->word_char[1] = bits3 << 31 << 1 | bits2; i = 2; @@ -966,7 +958,7 @@ init_word_char (re_dfa_t *dfa) goto general_case; ch = 128; - if (BE (dfa->is_utf8, 1)) + if (__glibc_likely (dfa->is_utf8)) { memset (&dfa->word_char[i], '\0', (SBC_MAX - ch) / 8); return; @@ -1013,7 +1005,7 @@ create_initial_state (re_dfa_t *dfa) first = dfa->str_tree->first->node_idx; dfa->init_node = first; err = re_node_set_init_copy (&init_nodes, dfa->eclosures + first); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; /* The back-references which are in initial states can epsilon transit, @@ -1057,7 +1049,7 @@ create_initial_state (re_dfa_t *dfa) /* It must be the first time to invoke acquire_state. */ dfa->init_state = re_acquire_state_context (&err, dfa, &init_nodes, 0); /* We don't check ERR here, since the initial state must not be NULL. */ - if (BE (dfa->init_state == NULL, 0)) + if (__glibc_unlikely (dfa->init_state == NULL)) return err; if (dfa->init_state->has_constraint) { @@ -1069,8 +1061,9 @@ create_initial_state (re_dfa_t *dfa) &init_nodes, CONTEXT_NEWLINE | CONTEXT_BEGBUF); - if (BE (dfa->init_state_word == NULL || dfa->init_state_nl == NULL - || dfa->init_state_begbuf == NULL, 0)) + if (__glibc_unlikely (dfa->init_state_word == NULL + || dfa->init_state_nl == NULL + || dfa->init_state_begbuf == NULL)) return err; } else @@ -1177,8 +1170,8 @@ analyze (regex_t *preg) dfa->org_indices = re_malloc (Idx, dfa->nodes_alloc); dfa->edests = re_malloc (re_node_set, dfa->nodes_alloc); dfa->eclosures = re_malloc (re_node_set, dfa->nodes_alloc); - if (BE (dfa->nexts == NULL || dfa->org_indices == NULL || dfa->edests == NULL - || dfa->eclosures == NULL, 0)) + if (__glibc_unlikely (dfa->nexts == NULL || dfa->org_indices == NULL + || dfa->edests == NULL || dfa->eclosures == NULL)) return REG_ESPACE; dfa->subexp_map = re_malloc (Idx, preg->re_nsub); @@ -1193,23 +1186,23 @@ analyze (regex_t *preg) break; if (i == preg->re_nsub) { - free (dfa->subexp_map); + re_free (dfa->subexp_map); dfa->subexp_map = NULL; } } ret = postorder (dfa->str_tree, lower_subexps, preg); - if (BE (ret != REG_NOERROR, 0)) + if (__glibc_unlikely (ret != REG_NOERROR)) return ret; ret = postorder (dfa->str_tree, calc_first, dfa); - if (BE (ret != REG_NOERROR, 0)) + if (__glibc_unlikely (ret != REG_NOERROR)) return ret; preorder (dfa->str_tree, calc_next, dfa); ret = preorder (dfa->str_tree, link_nfa_nodes, dfa); - if (BE (ret != REG_NOERROR, 0)) + if (__glibc_unlikely (ret != REG_NOERROR)) return ret; ret = calc_eclosure (dfa); - if (BE (ret != REG_NOERROR, 0)) + if (__glibc_unlikely (ret != REG_NOERROR)) return ret; /* We only need this during the prune_impossible_nodes pass in regexec.c; @@ -1218,7 +1211,7 @@ analyze (regex_t *preg) || dfa->nbackref) { dfa->inveclosures = re_malloc (re_node_set, dfa->nodes_len); - if (BE (dfa->inveclosures == NULL, 0)) + if (__glibc_unlikely (dfa->inveclosures == NULL)) return REG_ESPACE; ret = calc_inveclosure (dfa); } @@ -1248,7 +1241,7 @@ postorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), do { reg_errcode_t err = fn (extra, node); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; if (node->parent == NULL) return REG_NOERROR; @@ -1270,7 +1263,7 @@ preorder (bin_tree_t *root, reg_errcode_t (fn (void *, bin_tree_t *)), for (node = root; ; ) { reg_errcode_t err = fn (extra, node); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; /* Go to the left node, or up and to the right. */ @@ -1371,7 +1364,8 @@ lower_subexp (reg_errcode_t *err, regex_t *preg, bin_tree_t *node) cls = create_tree (dfa, NULL, NULL, OP_CLOSE_SUBEXP); tree1 = body ? create_tree (dfa, body, cls, CONCAT) : cls; tree = create_tree (dfa, op, tree1, CONCAT); - if (BE (tree == NULL || tree1 == NULL || op == NULL || cls == NULL, 0)) + if (__glibc_unlikely (tree == NULL || tree1 == NULL + || op == NULL || cls == NULL)) { *err = REG_ESPACE; return NULL; @@ -1397,7 +1391,7 @@ calc_first (void *extra, bin_tree_t *node) { node->first = node; node->node_idx = re_dfa_add_node (dfa, node->token); - if (BE (node->node_idx == -1, 0)) + if (__glibc_unlikely (node->node_idx == -1)) return REG_ESPACE; if (node->token.type == ANCHOR) dfa->nodes[node->node_idx].constraint = node->token.opr.ctx_type; @@ -1490,7 +1484,6 @@ link_nfa_nodes (void *extra, bin_tree_t *node) to their own constraint. */ static reg_errcode_t -internal_function duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node, Idx root_node, unsigned int init_constraint) { @@ -1509,11 +1502,11 @@ duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node, org_dest = dfa->nexts[org_node]; re_node_set_empty (dfa->edests + clone_node); clone_dest = duplicate_node (dfa, org_dest, constraint); - if (BE (clone_dest == -1, 0)) + if (__glibc_unlikely (clone_dest == -1)) return REG_ESPACE; dfa->nexts[clone_node] = dfa->nexts[org_node]; ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); - if (BE (! ok, 0)) + if (__glibc_unlikely (! ok)) return REG_ESPACE; } else if (dfa->edests[org_node].nelem == 0) @@ -1535,17 +1528,17 @@ duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node, if (org_node == root_node && clone_node != org_node) { ok = re_node_set_insert (dfa->edests + clone_node, org_dest); - if (BE (! ok, 0)) + if (__glibc_unlikely (! ok)) return REG_ESPACE; break; } /* In case the node has another constraint, append it. */ constraint |= dfa->nodes[org_node].constraint; clone_dest = duplicate_node (dfa, org_dest, constraint); - if (BE (clone_dest == -1, 0)) + if (__glibc_unlikely (clone_dest == -1)) return REG_ESPACE; ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); - if (BE (! ok, 0)) + if (__glibc_unlikely (! ok)) return REG_ESPACE; } else /* dfa->edests[org_node].nelem == 2 */ @@ -1561,14 +1554,14 @@ duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node, /* There is no such duplicated node, create a new one. */ reg_errcode_t err; clone_dest = duplicate_node (dfa, org_dest, constraint); - if (BE (clone_dest == -1, 0)) + if (__glibc_unlikely (clone_dest == -1)) return REG_ESPACE; ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); - if (BE (! ok, 0)) + if (__glibc_unlikely (! ok)) return REG_ESPACE; err = duplicate_node_closure (dfa, org_dest, clone_dest, root_node, constraint); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; } else @@ -1576,16 +1569,16 @@ duplicate_node_closure (re_dfa_t *dfa, Idx top_org_node, Idx top_clone_node, /* There is a duplicated node which satisfies the constraint, use it to avoid infinite loop. */ ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); - if (BE (! ok, 0)) + if (__glibc_unlikely (! ok)) return REG_ESPACE; } org_dest = dfa->edests[org_node].elems[1]; clone_dest = duplicate_node (dfa, org_dest, constraint); - if (BE (clone_dest == -1, 0)) + if (__glibc_unlikely (clone_dest == -1)) return REG_ESPACE; ok = re_node_set_insert (dfa->edests + clone_node, clone_dest); - if (BE (! ok, 0)) + if (__glibc_unlikely (! ok)) return REG_ESPACE; } org_node = org_dest; @@ -1619,7 +1612,7 @@ static Idx duplicate_node (re_dfa_t *dfa, Idx org_idx, unsigned int constraint) { Idx dup_idx = re_dfa_add_node (dfa, dfa->nodes[org_idx]); - if (BE (dup_idx != -1, 1)) + if (__glibc_likely (dup_idx != -1)) { dfa->nodes[dup_idx].constraint = constraint; dfa->nodes[dup_idx].constraint |= dfa->nodes[org_idx].constraint; @@ -1645,7 +1638,7 @@ calc_inveclosure (re_dfa_t *dfa) for (idx = 0; idx < dfa->eclosures[src].nelem; ++idx) { ok = re_node_set_insert_last (dfa->inveclosures + elems[idx], src); - if (BE (! ok, 0)) + if (__glibc_unlikely (! ok)) return REG_ESPACE; } } @@ -1686,7 +1679,7 @@ calc_eclosure (re_dfa_t *dfa) continue; /* Calculate epsilon closure of 'node_idx'. */ err = calc_eclosure_iter (&eclosure_elem, dfa, node_idx, true); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; if (dfa->eclosures[node_idx].nelem == 0) @@ -1709,7 +1702,7 @@ calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root) bool ok; bool incomplete = false; err = re_node_set_alloc (&eclosure, dfa->edests[node].nelem + 1); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; /* This indicates that we are calculating this node now. @@ -1724,7 +1717,7 @@ calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root) { err = duplicate_node_closure (dfa, node, node, node, dfa->nodes[node].constraint); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; } @@ -1746,14 +1739,14 @@ calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root) if (dfa->eclosures[edest].nelem == 0) { err = calc_eclosure_iter (&eclosure_elem, dfa, edest, false); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; } else eclosure_elem = dfa->eclosures[edest]; /* Merge the epsilon closure of 'edest'. */ err = re_node_set_merge (&eclosure, &eclosure_elem); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; /* If the epsilon closure of 'edest' is incomplete, the epsilon closure of this node is also incomplete. */ @@ -1766,7 +1759,7 @@ calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root) /* An epsilon closure includes itself. */ ok = re_node_set_insert (&eclosure, node); - if (BE (! ok, 0)) + if (__glibc_unlikely (! ok)) return REG_ESPACE; if (incomplete && !root) dfa->eclosures[node].nelem = 0; @@ -1782,7 +1775,6 @@ calc_eclosure_iter (re_node_set *new_set, re_dfa_t *dfa, Idx node, bool root) We must not use this function inside bracket expressions. */ static void -internal_function fetch_token (re_token_t *result, re_string_t *input, reg_syntax_t syntax) { re_string_skip_bytes (input, peek_token (result, input, syntax)); @@ -1792,7 +1784,6 @@ fetch_token (re_token_t *result, re_string_t *input, reg_syntax_t syntax) We must not use this function inside bracket expressions. */ static int -internal_function peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax) { unsigned char c; @@ -2031,7 +2022,6 @@ peek_token (re_token_t *token, re_string_t *input, reg_syntax_t syntax) We must not use this function out of bracket expressions. */ static int -internal_function peek_token_bracket (re_token_t *token, re_string_t *input, reg_syntax_t syntax) { unsigned char c; @@ -2139,14 +2129,14 @@ parse (re_string_t *regexp, regex_t *preg, reg_syntax_t syntax, dfa->syntax = syntax; fetch_token (¤t_token, regexp, syntax | RE_CARET_ANCHORS_HERE); tree = parse_reg_exp (regexp, preg, ¤t_token, syntax, 0, err); - if (BE (*err != REG_NOERROR && tree == NULL, 0)) + if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL)) return NULL; eor = create_tree (dfa, NULL, NULL, END_OF_RE); if (tree != NULL) root = create_tree (dfa, tree, eor, CONCAT); else root = eor; - if (BE (eor == NULL || root == NULL, 0)) + if (__glibc_unlikely (eor == NULL || root == NULL)) { *err = REG_ESPACE; return NULL; @@ -2171,7 +2161,7 @@ parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, bin_tree_t *tree, *branch = NULL; bitset_word_t initial_bkref_map = dfa->completed_bkref_map; tree = parse_branch (regexp, preg, token, syntax, nest, err); - if (BE (*err != REG_NOERROR && tree == NULL, 0)) + if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL)) return NULL; while (token->type == OP_ALT) @@ -2183,7 +2173,7 @@ parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, bitset_word_t accumulated_bkref_map = dfa->completed_bkref_map; dfa->completed_bkref_map = initial_bkref_map; branch = parse_branch (regexp, preg, token, syntax, nest, err); - if (BE (*err != REG_NOERROR && branch == NULL, 0)) + if (__glibc_unlikely (*err != REG_NOERROR && branch == NULL)) { if (tree != NULL) postorder (tree, free_tree, NULL); @@ -2194,7 +2184,7 @@ parse_reg_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, else branch = NULL; tree = create_tree (dfa, tree, branch, OP_ALT); - if (BE (tree == NULL, 0)) + if (__glibc_unlikely (tree == NULL)) { *err = REG_ESPACE; return NULL; @@ -2219,14 +2209,14 @@ parse_branch (re_string_t *regexp, regex_t *preg, re_token_t *token, bin_tree_t *tree, *expr; re_dfa_t *dfa = preg->buffer; tree = parse_expression (regexp, preg, token, syntax, nest, err); - if (BE (*err != REG_NOERROR && tree == NULL, 0)) + if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL)) return NULL; while (token->type != OP_ALT && token->type != END_OF_RE && (nest == 0 || token->type != OP_CLOSE_SUBEXP)) { expr = parse_expression (regexp, preg, token, syntax, nest, err); - if (BE (*err != REG_NOERROR && expr == NULL, 0)) + if (__glibc_unlikely (*err != REG_NOERROR && expr == NULL)) { if (tree != NULL) postorder (tree, free_tree, NULL); @@ -2267,7 +2257,7 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, { case CHARACTER: tree = create_token_tree (dfa, NULL, NULL, token); - if (BE (tree == NULL, 0)) + if (__glibc_unlikely (tree == NULL)) { *err = REG_ESPACE; return NULL; @@ -2282,7 +2272,7 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, fetch_token (token, regexp, syntax); mbc_remain = create_token_tree (dfa, NULL, NULL, token); tree = create_tree (dfa, tree, mbc_remain, CONCAT); - if (BE (mbc_remain == NULL || tree == NULL, 0)) + if (__glibc_unlikely (mbc_remain == NULL || tree == NULL)) { *err = REG_ESPACE; return NULL; @@ -2294,25 +2284,25 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, case OP_OPEN_SUBEXP: tree = parse_sub_exp (regexp, preg, token, syntax, nest + 1, err); - if (BE (*err != REG_NOERROR && tree == NULL, 0)) + if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL)) return NULL; break; case OP_OPEN_BRACKET: tree = parse_bracket_exp (regexp, dfa, token, syntax, err); - if (BE (*err != REG_NOERROR && tree == NULL, 0)) + if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL)) return NULL; break; case OP_BACK_REF: - if (!BE (dfa->completed_bkref_map & (1 << token->opr.idx), 1)) + if (!__glibc_likely (dfa->completed_bkref_map & (1 << token->opr.idx))) { *err = REG_ESUBREG; return NULL; } dfa->used_bkref_map |= 1 << token->opr.idx; tree = create_token_tree (dfa, NULL, NULL, token); - if (BE (tree == NULL, 0)) + if (__glibc_unlikely (tree == NULL)) { *err = REG_ESPACE; return NULL; @@ -2358,7 +2348,7 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, /* mb_partial and word_char bits should be initialized already by peek_token. */ tree = create_token_tree (dfa, NULL, NULL, token); - if (BE (tree == NULL, 0)) + if (__glibc_unlikely (tree == NULL)) { *err = REG_ESPACE; return NULL; @@ -2388,7 +2378,8 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, } tree_last = create_token_tree (dfa, NULL, NULL, token); tree = create_tree (dfa, tree_first, tree_last, OP_ALT); - if (BE (tree_first == NULL || tree_last == NULL || tree == NULL, 0)) + if (__glibc_unlikely (tree_first == NULL || tree_last == NULL + || tree == NULL)) { *err = REG_ESPACE; return NULL; @@ -2397,7 +2388,7 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, else { tree = create_token_tree (dfa, NULL, NULL, token); - if (BE (tree == NULL, 0)) + if (__glibc_unlikely (tree == NULL)) { *err = REG_ESPACE; return NULL; @@ -2412,7 +2403,7 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, case OP_PERIOD: tree = create_token_tree (dfa, NULL, NULL, token); - if (BE (tree == NULL, 0)) + if (__glibc_unlikely (tree == NULL)) { *err = REG_ESPACE; return NULL; @@ -2427,7 +2418,7 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, "alnum", "_", token->type == OP_NOTWORD, err); - if (BE (*err != REG_NOERROR && tree == NULL, 0)) + if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL)) return NULL; break; @@ -2437,7 +2428,7 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, "space", "", token->type == OP_NOTSPACE, err); - if (BE (*err != REG_NOERROR && tree == NULL, 0)) + if (__glibc_unlikely (*err != REG_NOERROR && tree == NULL)) return NULL; break; @@ -2463,7 +2454,7 @@ parse_expression (re_string_t *regexp, regex_t *preg, re_token_t *token, { bin_tree_t *dup_tree = parse_dup_op (tree, regexp, dfa, token, syntax, err); - if (BE (*err != REG_NOERROR && dup_tree == NULL, 0)) + if (__glibc_unlikely (*err != REG_NOERROR && dup_tree == NULL)) { if (tree != NULL) postorder (tree, free_tree, NULL); @@ -2509,13 +2500,14 @@ parse_sub_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, else { tree = parse_reg_exp (regexp, preg, token, syntax, nest, err); - if (BE (*err == REG_NOERROR && token->type != OP_CLOSE_SUBEXP, 0)) + if (__glibc_unlikely (*err == REG_NOERROR + && token->type != OP_CLOSE_SUBEXP)) { if (tree != NULL) postorder (tree, free_tree, NULL); *err = REG_EPAREN; } - if (BE (*err != REG_NOERROR, 0)) + if (__glibc_unlikely (*err != REG_NOERROR)) return NULL; } @@ -2523,7 +2515,7 @@ parse_sub_exp (re_string_t *regexp, regex_t *preg, re_token_t *token, dfa->completed_bkref_map |= 1 << cur_nsub; tree = create_tree (dfa, tree, NULL, SUBEXP); - if (BE (tree == NULL, 0)) + if (__glibc_unlikely (tree == NULL)) { *err = REG_ESPACE; return NULL; @@ -2556,17 +2548,17 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa, return NULL; } } - if (BE (start != -2, 1)) + if (__glibc_likely (start != -2)) { /* We treat "{n}" as "{n,n}". */ end = ((token->type == OP_CLOSE_DUP_NUM) ? start : ((token->type == CHARACTER && token->opr.c == ',') ? fetch_number (regexp, token, syntax) : -2)); } - if (BE (start == -2 || end == -2, 0)) + if (__glibc_unlikely (start == -2 || end == -2)) { /* Invalid sequence. */ - if (BE (!(syntax & RE_INVALID_INTERVAL_ORD), 0)) + if (__glibc_unlikely (!(syntax & RE_INVALID_INTERVAL_ORD))) { if (token->type == END_OF_RE) *err = REG_EBRACE; @@ -2585,15 +2577,15 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa, return elem; } - if (BE ((end != -1 && start > end) - || token->type != OP_CLOSE_DUP_NUM, 0)) + if (__glibc_unlikely ((end != -1 && start > end) + || token->type != OP_CLOSE_DUP_NUM)) { /* First number greater than second. */ *err = REG_BADBR; return NULL; } - if (BE (RE_DUP_MAX < (end == -1 ? start : end), 0)) + if (__glibc_unlikely (RE_DUP_MAX < (end == -1 ? start : end))) { *err = REG_ESIZE; return NULL; @@ -2607,23 +2599,23 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa, fetch_token (token, regexp, syntax); - if (BE (elem == NULL, 0)) + if (__glibc_unlikely (elem == NULL)) return NULL; - if (BE (start == 0 && end == 0, 0)) + if (__glibc_unlikely (start == 0 && end == 0)) { postorder (elem, free_tree, NULL); return NULL; } /* Extract "<re>{n,m}" to "<re><re>...<re><re>{0,<m-n>}". */ - if (BE (start > 0, 0)) + if (__glibc_unlikely (start > 0)) { tree = elem; for (i = 2; i <= start; ++i) { elem = duplicate_tree (elem, dfa); tree = create_tree (dfa, tree, elem, CONCAT); - if (BE (elem == NULL || tree == NULL, 0)) + if (__glibc_unlikely (elem == NULL || tree == NULL)) goto parse_dup_op_espace; } @@ -2632,7 +2624,7 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa, /* Duplicate ELEM before it is marked optional. */ elem = duplicate_tree (elem, dfa); - if (BE (elem == NULL, 0)) + if (__glibc_unlikely (elem == NULL)) goto parse_dup_op_espace; old_tree = tree; } @@ -2647,13 +2639,9 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa, tree = create_tree (dfa, elem, NULL, (end == -1 ? OP_DUP_ASTERISK : OP_ALT)); - if (BE (tree == NULL, 0)) + if (__glibc_unlikely (tree == NULL)) goto parse_dup_op_espace; -/* From gnulib's "intprops.h": - True if the arithmetic type T is signed. */ -#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) - /* This loop is actually executed only when end != -1, to rewrite <re>{0,n} as (<re>(<re>...<re>?)?)?... We have already created the start+1-th copy. */ @@ -2662,11 +2650,11 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa, { elem = duplicate_tree (elem, dfa); tree = create_tree (dfa, tree, elem, CONCAT); - if (BE (elem == NULL || tree == NULL, 0)) + if (__glibc_unlikely (elem == NULL || tree == NULL)) goto parse_dup_op_espace; tree = create_tree (dfa, tree, NULL, OP_ALT); - if (BE (tree == NULL, 0)) + if (__glibc_unlikely (tree == NULL)) goto parse_dup_op_espace; } @@ -2688,15 +2676,14 @@ parse_dup_op (bin_tree_t *elem, re_string_t *regexp, re_dfa_t *dfa, # ifdef RE_ENABLE_I18N /* Convert the byte B to the corresponding wide character. In a - unibyte locale, treat B as itself if it is an encoding error. - In a multibyte locale, return WEOF if B is an encoding error. */ + unibyte locale, treat B as itself. In a multibyte locale, return + WEOF if B is an encoding error. */ static wint_t parse_byte (unsigned char b, re_charset_t *mbcset) { - wint_t wc = __btowc (b); - return wc == WEOF && !mbcset ? b : wc; + return mbcset == NULL ? b : __btowc (b); } -#endif +# endif /* Local function for parse_bracket_exp only used in case of NOT _LIBC. Build the range expression which starts from START_ELEM, and ends @@ -2706,7 +2693,6 @@ parse_byte (unsigned char b, re_charset_t *mbcset) update it. */ static reg_errcode_t -internal_function # ifdef RE_ENABLE_I18N build_range_exp (const reg_syntax_t syntax, bitset_t sbcset, @@ -2723,17 +2709,18 @@ build_range_exp (const reg_syntax_t syntax, { unsigned int start_ch, end_ch; /* Equivalence Classes and Character Classes can't be a range start/end. */ - if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS - || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS, - 0)) + if (__glibc_unlikely (start_elem->type == EQUIV_CLASS + || start_elem->type == CHAR_CLASS + || end_elem->type == EQUIV_CLASS + || end_elem->type == CHAR_CLASS)) return REG_ERANGE; /* We can handle no multi character collating elements without libc support. */ - if (BE ((start_elem->type == COLL_SYM - && strlen ((char *) start_elem->opr.name) > 1) - || (end_elem->type == COLL_SYM - && strlen ((char *) end_elem->opr.name) > 1), 0)) + if (__glibc_unlikely ((start_elem->type == COLL_SYM + && strlen ((char *) start_elem->opr.name) > 1) + || (end_elem->type == COLL_SYM + && strlen ((char *) end_elem->opr.name) > 1))) return REG_ECOLLATE; # ifdef RE_ENABLE_I18N @@ -2754,7 +2741,8 @@ build_range_exp (const reg_syntax_t syntax, ? parse_byte (end_ch, mbcset) : end_elem->opr.wch); if (start_wc == WEOF || end_wc == WEOF) return REG_ECOLLATE; - else if (BE ((syntax & RE_NO_EMPTY_RANGES) && start_wc > end_wc, 0)) + else if (__glibc_unlikely ((syntax & RE_NO_EMPTY_RANGES) + && start_wc > end_wc)) return REG_ERANGE; /* Got valid collation sequence values, add them as a new entry. @@ -2765,7 +2753,7 @@ build_range_exp (const reg_syntax_t syntax, if (mbcset) { /* Check the space of the arrays. */ - if (BE (*range_alloc == mbcset->nranges, 0)) + if (__glibc_unlikely (*range_alloc == mbcset->nranges)) { /* There is not enough space, need realloc. */ wchar_t *new_array_start, *new_array_end; @@ -2780,7 +2768,8 @@ build_range_exp (const reg_syntax_t syntax, new_array_end = re_realloc (mbcset->range_ends, wchar_t, new_nranges); - if (BE (new_array_start == NULL || new_array_end == NULL, 0)) + if (__glibc_unlikely (new_array_start == NULL + || new_array_end == NULL)) { re_free (new_array_start); re_free (new_array_end); @@ -2832,7 +2821,6 @@ build_range_exp (const reg_syntax_t syntax, pointer argument since we may update it. */ static reg_errcode_t -internal_function # ifdef RE_ENABLE_I18N build_collating_symbol (bitset_t sbcset, re_charset_t *mbcset, Idx *coll_sym_alloc, const unsigned char *name) @@ -2841,7 +2829,7 @@ 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)) + if (__glibc_unlikely (name_len != 1)) return REG_ECOLLATE; else { @@ -2976,18 +2964,21 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, /* Equivalence Classes and Character Classes can't be a range start/end. */ - if (BE (start_elem->type == EQUIV_CLASS || start_elem->type == CHAR_CLASS - || end_elem->type == EQUIV_CLASS || end_elem->type == CHAR_CLASS, - 0)) + if (__glibc_unlikely (start_elem->type == EQUIV_CLASS + || start_elem->type == CHAR_CLASS + || end_elem->type == EQUIV_CLASS + || end_elem->type == CHAR_CLASS)) return REG_ERANGE; /* FIXME: Implement rational ranges here, too. */ start_collseq = lookup_collation_sequence_value (start_elem); end_collseq = lookup_collation_sequence_value (end_elem); /* Check start/end collation sequence values. */ - if (BE (start_collseq == UINT_MAX || end_collseq == UINT_MAX, 0)) + if (__glibc_unlikely (start_collseq == UINT_MAX + || end_collseq == UINT_MAX)) return REG_ECOLLATE; - if (BE ((syntax & RE_NO_EMPTY_RANGES) && start_collseq > end_collseq, 0)) + if (__glibc_unlikely ((syntax & RE_NO_EMPTY_RANGES) + && start_collseq > end_collseq)) return REG_ERANGE; /* Got valid collation sequence values, add them as a new entry. @@ -2997,7 +2988,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, if (nrules > 0 || dfa->mb_cur_max > 1) { /* Check the space of the arrays. */ - if (BE (*range_alloc == mbcset->nranges, 0)) + if (__glibc_unlikely (*range_alloc == mbcset->nranges)) { /* There is not enough space, need realloc. */ uint32_t *new_array_start; @@ -3011,7 +3002,8 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, new_array_end = re_realloc (mbcset->range_ends, uint32_t, new_nranges); - if (BE (new_array_start == NULL || new_array_end == NULL, 0)) + if (__glibc_unlikely (new_array_start == NULL + || new_array_end == NULL)) return REG_ESPACE; mbcset->range_starts = new_array_start; @@ -3075,7 +3067,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, /* Got valid collation sequence, add it as a new entry. */ /* Check the space of the arrays. */ - if (BE (*coll_sym_alloc == mbcset->ncoll_syms, 0)) + if (__glibc_unlikely (*coll_sym_alloc == mbcset->ncoll_syms)) { /* Not enough, realloc it. */ /* +1 in case of mbcset->ncoll_syms is 0. */ @@ -3084,7 +3076,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, if *alloc == 0. */ int32_t *new_coll_syms = re_realloc (mbcset->coll_syms, int32_t, new_coll_sym_alloc); - if (BE (new_coll_syms == NULL, 0)) + if (__glibc_unlikely (new_coll_syms == NULL)) return REG_ESPACE; mbcset->coll_syms = new_coll_syms; *coll_sym_alloc = new_coll_sym_alloc; @@ -3094,7 +3086,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, } else { - if (BE (name_len != 1, 0)) + if (__glibc_unlikely (name_len != 1)) return REG_ECOLLATE; else { @@ -3138,9 +3130,9 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1); #endif /* RE_ENABLE_I18N */ #ifdef RE_ENABLE_I18N - if (BE (sbcset == NULL || mbcset == NULL, 0)) + if (__glibc_unlikely (sbcset == NULL || mbcset == NULL)) #else - if (BE (sbcset == NULL, 0)) + if (__glibc_unlikely (sbcset == NULL)) #endif /* RE_ENABLE_I18N */ { re_free (sbcset); @@ -3152,7 +3144,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, } token_len = peek_token_bracket (token, regexp, syntax); - if (BE (token->type == END_OF_RE, 0)) + if (__glibc_unlikely (token->type == END_OF_RE)) { *err = REG_BADPAT; goto parse_bracket_exp_free_return; @@ -3167,7 +3159,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, bitset_set (sbcset, '\n'); re_string_skip_bytes (regexp, token_len); /* Skip a token. */ token_len = peek_token_bracket (token, regexp, syntax); - if (BE (token->type == END_OF_RE, 0)) + if (__glibc_unlikely (token->type == END_OF_RE)) { *err = REG_BADPAT; goto parse_bracket_exp_free_return; @@ -3192,7 +3184,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, start_elem.type = COLL_SYM; ret = parse_bracket_element (&start_elem, regexp, token, token_len, dfa, syntax, first_round); - if (BE (ret != REG_NOERROR, 0)) + if (__glibc_unlikely (ret != REG_NOERROR)) { *err = ret; goto parse_bracket_exp_free_return; @@ -3205,7 +3197,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, /* Do not check for ranges if we know they are not allowed. */ if (start_elem.type != CHAR_CLASS && start_elem.type != EQUIV_CLASS) { - if (BE (token->type == END_OF_RE, 0)) + if (__glibc_unlikely (token->type == END_OF_RE)) { *err = REG_EBRACK; goto parse_bracket_exp_free_return; @@ -3214,7 +3206,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, { re_string_skip_bytes (regexp, token_len); /* Skip '-'. */ token_len2 = peek_token_bracket (&token2, regexp, syntax); - if (BE (token2.type == END_OF_RE, 0)) + if (__glibc_unlikely (token2.type == END_OF_RE)) { *err = REG_EBRACK; goto parse_bracket_exp_free_return; @@ -3236,7 +3228,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, end_elem.type = COLL_SYM; ret = parse_bracket_element (&end_elem, regexp, &token2, token_len2, dfa, syntax, true); - if (BE (ret != REG_NOERROR, 0)) + if (__glibc_unlikely (ret != REG_NOERROR)) { *err = ret; goto parse_bracket_exp_free_return; @@ -3256,7 +3248,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, *err = build_range_exp (syntax, sbcset, &start_elem, &end_elem); # endif #endif /* RE_ENABLE_I18N */ - if (BE (*err != REG_NOERROR, 0)) + if (__glibc_unlikely (*err != REG_NOERROR)) goto parse_bracket_exp_free_return; } else @@ -3269,7 +3261,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, #ifdef RE_ENABLE_I18N case MB_CHAR: /* Check whether the array has enough space. */ - if (BE (mbchar_alloc == mbcset->nmbchars, 0)) + if (__glibc_unlikely (mbchar_alloc == mbcset->nmbchars)) { wchar_t *new_mbchars; /* Not enough, realloc it. */ @@ -3278,7 +3270,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, /* Use realloc since array is NULL if *alloc == 0. */ new_mbchars = re_realloc (mbcset->mbchars, wchar_t, mbchar_alloc); - if (BE (new_mbchars == NULL, 0)) + if (__glibc_unlikely (new_mbchars == NULL)) goto parse_bracket_exp_espace; mbcset->mbchars = new_mbchars; } @@ -3291,7 +3283,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, mbcset, &equiv_class_alloc, #endif /* RE_ENABLE_I18N */ start_elem.opr.name); - if (BE (*err != REG_NOERROR, 0)) + if (__glibc_unlikely (*err != REG_NOERROR)) goto parse_bracket_exp_free_return; break; case COLL_SYM: @@ -3300,7 +3292,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, mbcset, &coll_sym_alloc, #endif /* RE_ENABLE_I18N */ start_elem.opr.name); - if (BE (*err != REG_NOERROR, 0)) + if (__glibc_unlikely (*err != REG_NOERROR)) goto parse_bracket_exp_free_return; break; case CHAR_CLASS: @@ -3310,7 +3302,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, #endif /* RE_ENABLE_I18N */ (const char *) start_elem.opr.name, syntax); - if (BE (*err != REG_NOERROR, 0)) + if (__glibc_unlikely (*err != REG_NOERROR)) goto parse_bracket_exp_free_return; break; default: @@ -3318,7 +3310,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, break; } } - if (BE (token->type == END_OF_RE, 0)) + if (__glibc_unlikely (token->type == END_OF_RE)) { *err = REG_EBRACK; goto parse_bracket_exp_free_return; @@ -3349,7 +3341,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, br_token.type = COMPLEX_BRACKET; br_token.opr.mbcset = mbcset; mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token); - if (BE (mbc_tree == NULL, 0)) + if (__glibc_unlikely (mbc_tree == NULL)) goto parse_bracket_exp_espace; for (sbc_idx = 0; sbc_idx < BITSET_WORDS; ++sbc_idx) if (sbcset[sbc_idx]) @@ -3362,12 +3354,12 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, br_token.type = SIMPLE_BRACKET; br_token.opr.sbcset = sbcset; work_tree = create_token_tree (dfa, NULL, NULL, &br_token); - if (BE (work_tree == NULL, 0)) + if (__glibc_unlikely (work_tree == NULL)) goto parse_bracket_exp_espace; /* Then join them by ALT node. */ work_tree = create_tree (dfa, work_tree, mbc_tree, OP_ALT); - if (BE (work_tree == NULL, 0)) + if (__glibc_unlikely (work_tree == NULL)) goto parse_bracket_exp_espace; } else @@ -3386,7 +3378,7 @@ parse_bracket_exp (re_string_t *regexp, re_dfa_t *dfa, re_token_t *token, br_token.type = SIMPLE_BRACKET; br_token.opr.sbcset = sbcset; work_tree = create_token_tree (dfa, NULL, NULL, &br_token); - if (BE (work_tree == NULL, 0)) + if (__glibc_unlikely (work_tree == NULL)) goto parse_bracket_exp_espace; } return work_tree; @@ -3423,7 +3415,7 @@ parse_bracket_element (bracket_elem_t *elem, re_string_t *regexp, if (token->type == OP_OPEN_COLL_ELEM || token->type == OP_OPEN_CHAR_CLASS || token->type == OP_OPEN_EQUIV_CLASS) return parse_bracket_symbol (elem, regexp, token); - if (BE (token->type == OP_CHARSET_RANGE, 0) && !accept_hyphen) + if (__glibc_unlikely (token->type == OP_CHARSET_RANGE) && !accept_hyphen) { /* A '-' must only appear as anything but a range indicator before the closing bracket. Everything else is an error. */ @@ -3518,7 +3510,7 @@ build_equiv_class (bitset_t sbcset, const unsigned char *name) indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); idx1 = findidx (table, indirect, extra, &cp, -1); - if (BE (idx1 == 0 || *cp != '\0', 0)) + if (__glibc_unlikely (idx1 == 0 || *cp != '\0')) /* This isn't a valid character. */ return REG_ECOLLATE; @@ -3537,21 +3529,13 @@ build_equiv_class (bitset_t sbcset, const unsigned char *name) continue; /* Compare only if the length matches and the collation rule index is the same. */ - if (len == weights[idx2 & 0xffffff] && (idx1 >> 24) == (idx2 >> 24)) - { - int cnt = 0; - - while (cnt <= len && - weights[(idx1 & 0xffffff) + 1 + cnt] - == weights[(idx2 & 0xffffff) + 1 + cnt]) - ++cnt; - - if (cnt > len) - bitset_set (sbcset, ch); - } + if (len == weights[idx2 & 0xffffff] && (idx1 >> 24) == (idx2 >> 24) + && memcmp (weights + (idx1 & 0xffffff) + 1, + weights + (idx2 & 0xffffff) + 1, len) == 0) + bitset_set (sbcset, ch); } /* Check whether the array has enough space. */ - if (BE (*equiv_class_alloc == mbcset->nequiv_classes, 0)) + if (__glibc_unlikely (*equiv_class_alloc == mbcset->nequiv_classes)) { /* Not enough, realloc it. */ /* +1 in case of mbcset->nequiv_classes is 0. */ @@ -3560,7 +3544,7 @@ build_equiv_class (bitset_t sbcset, const unsigned char *name) int32_t *new_equiv_classes = re_realloc (mbcset->equiv_classes, int32_t, new_equiv_class_alloc); - if (BE (new_equiv_classes == NULL, 0)) + if (__glibc_unlikely (new_equiv_classes == NULL)) return REG_ESPACE; mbcset->equiv_classes = new_equiv_classes; *equiv_class_alloc = new_equiv_class_alloc; @@ -3570,7 +3554,7 @@ build_equiv_class (bitset_t sbcset, const unsigned char *name) else #endif /* _LIBC */ { - if (BE (strlen ((const char *) name) != 1, 0)) + if (__glibc_unlikely (strlen ((const char *) name) != 1)) return REG_ECOLLATE; bitset_set (sbcset, *name); } @@ -3604,7 +3588,7 @@ build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, #ifdef RE_ENABLE_I18N /* Check the space of the arrays. */ - if (BE (*char_class_alloc == mbcset->nchar_classes, 0)) + if (__glibc_unlikely (*char_class_alloc == mbcset->nchar_classes)) { /* Not enough, realloc it. */ /* +1 in case of mbcset->nchar_classes is 0. */ @@ -3612,7 +3596,7 @@ build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, /* Use realloc since array is NULL if *alloc == 0. */ wctype_t *new_char_classes = re_realloc (mbcset->char_classes, wctype_t, new_char_class_alloc); - if (BE (new_char_classes == NULL, 0)) + if (__glibc_unlikely (new_char_classes == NULL)) return REG_ESPACE; mbcset->char_classes = new_char_classes; *char_class_alloc = new_char_class_alloc; @@ -3622,7 +3606,7 @@ build_charclass (RE_TRANSLATE_TYPE trans, bitset_t sbcset, #define BUILD_CHARCLASS_LOOP(ctype_func) \ do { \ - if (BE (trans != NULL, 0)) \ + if (__glibc_unlikely (trans != NULL)) \ { \ for (i = 0; i < SBC_MAX; ++i) \ if (ctype_func (i)) \ @@ -3682,14 +3666,14 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans, bin_tree_t *tree; sbcset = (re_bitset_ptr_t) calloc (sizeof (bitset_t), 1); - if (BE (sbcset == NULL, 0)) + if (__glibc_unlikely (sbcset == NULL)) { *err = REG_ESPACE; return NULL; } #ifdef RE_ENABLE_I18N mbcset = (re_charset_t *) calloc (sizeof (re_charset_t), 1); - if (BE (mbcset == NULL, 0)) + if (__glibc_unlikely (mbcset == NULL)) { re_free (sbcset); *err = REG_ESPACE; @@ -3705,7 +3689,7 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans, #endif /* RE_ENABLE_I18N */ class_name, 0); - if (BE (ret != REG_NOERROR, 0)) + if (__glibc_unlikely (ret != REG_NOERROR)) { re_free (sbcset); #ifdef RE_ENABLE_I18N @@ -3735,7 +3719,7 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans, br_token.type = SIMPLE_BRACKET; br_token.opr.sbcset = sbcset; tree = create_token_tree (dfa, NULL, NULL, &br_token); - if (BE (tree == NULL, 0)) + if (__glibc_unlikely (tree == NULL)) goto build_word_op_espace; #ifdef RE_ENABLE_I18N @@ -3747,11 +3731,11 @@ build_charclass_op (re_dfa_t *dfa, RE_TRANSLATE_TYPE trans, br_token.opr.mbcset = mbcset; dfa->has_mb_node = 1; mbc_tree = create_token_tree (dfa, NULL, NULL, &br_token); - if (BE (mbc_tree == NULL, 0)) + if (__glibc_unlikely (mbc_tree == NULL)) goto build_word_op_espace; /* Then join them by ALT node. */ tree = create_tree (dfa, tree, mbc_tree, OP_ALT); - if (BE (mbc_tree != NULL, 1)) + if (__glibc_likely (mbc_tree != NULL)) return tree; } else @@ -3787,7 +3771,7 @@ fetch_number (re_string_t *input, re_token_t *token, reg_syntax_t syntax) { fetch_token (token, input, syntax); c = token->opr.c; - if (BE (token->type == END_OF_RE, 0)) + if (__glibc_unlikely (token->type == END_OF_RE)) return -2; if (token->type == OP_CLOSE_DUP_NUM || c == ',') break; @@ -3808,9 +3792,9 @@ free_charset (re_charset_t *cset) # ifdef _LIBC re_free (cset->coll_syms); re_free (cset->equiv_classes); +# endif re_free (cset->range_starts); re_free (cset->range_ends); -# endif re_free (cset->char_classes); re_free (cset); } @@ -3837,7 +3821,7 @@ create_token_tree (re_dfa_t *dfa, bin_tree_t *left, bin_tree_t *right, const re_token_t *token) { bin_tree_t *tree; - if (BE (dfa->str_tree_storage_idx == BIN_TREE_STORAGE_SIZE, 0)) + if (__glibc_unlikely (dfa->str_tree_storage_idx == BIN_TREE_STORAGE_SIZE)) { bin_tree_storage_t *storage = re_malloc (bin_tree_storage_t, 1); diff --git a/gnu/regex.c b/gnu/regex.c index 998d95e5..eab7a48b 100644 --- a/gnu/regex.c +++ b/gnu/regex.c @@ -1,5 +1,5 @@ /* Extended regular expression matching and search library. - Copyright (C) 2002-2017 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>. @@ -18,12 +18,12 @@ <https://www.gnu.org/licenses/>. */ #ifndef _LIBC -# include <config.h> +# include <libc-config.h> -# if (__GNUC__ == 4 && 6 <= __GNUC_MINOR__) || 4 < __GNUC__ +# if __GNUC_PREREQ (4, 6) # pragma GCC diagnostic ignored "-Wsuggest-attribute=pure" # endif -# if (__GNUC__ == 4 && 3 <= __GNUC_MINOR__) || 4 < __GNUC__ +# if __GNUC_PREREQ (4, 3) # pragma GCC diagnostic ignored "-Wold-style-definition" # pragma GCC diagnostic ignored "-Wtype-limits" # endif diff --git a/gnu/regex.h b/gnu/regex.h index b236a1b3..77ac1a55 100644 --- a/gnu/regex.h +++ b/gnu/regex.h @@ -1,7 +1,6 @@ /* Definitions for data structures and routines for the regular expression library. - Copyright (C) 1985, 1989-1993, 1995-1998, 2000-2003, 2005-2017 Free Software - Foundation, Inc. + Copyright (C) 1985, 1989-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -608,28 +607,28 @@ extern int re_exec (const char *); # endif #endif -/* GCC 2.95 and later have "__restrict"; C99 compilers have +/* For plain 'restrict', use glibc's __restrict if defined. + Otherwise, GCC 2.95 and later have "__restrict"; C99 compilers have "restrict", and "configure" may have defined "restrict". Other compilers use __restrict, __restrict__, and _Restrict, and 'configure' might #define 'restrict' to those words, so pick a different name. */ #ifndef _Restrict_ -# if 199901L <= __STDC_VERSION__ -# define _Restrict_ restrict -# elif 2 < __GNUC__ || (2 == __GNUC__ && 95 <= __GNUC_MINOR__) +# if defined __restrict || 2 < __GNUC__ + (95 <= __GNUC_MINOR__) # define _Restrict_ __restrict +# elif 199901L <= __STDC_VERSION__ || defined restrict +# define _Restrict_ restrict # else # define _Restrict_ # endif #endif -/* gcc 3.1 and up support the [restrict] syntax. Don't trust - sys/cdefs.h's definition of __restrict_arr, though, as it - mishandles gcc -ansi -pedantic. */ +/* For [restrict], use glibc's __restrict_arr if available. + Otherwise, GCC 3.1 (not in C++ mode) and C99 support [restrict]. */ #ifndef _Restrict_arr_ -# if ((199901L <= __STDC_VERSION__ \ - || ((3 < __GNUC__ || (3 == __GNUC__ && 1 <= __GNUC_MINOR__)) \ - && !defined __STRICT_ANSI__)) \ - && !defined __GNUG__) +# ifdef __restrict_arr +# define _Restrict_arr_ __restrict_arr +# elif ((199901L <= __STDC_VERSION__ || 3 < __GNUC__ + (1 <= __GNUC_MINOR__)) \ + && !defined __GNUG__) # define _Restrict_arr_ _Restrict_ # else # define _Restrict_arr_ diff --git a/gnu/regex_internal.c b/gnu/regex_internal.c index a77319b9..b592f067 100644 --- a/gnu/regex_internal.c +++ b/gnu/regex_internal.c @@ -1,5 +1,5 @@ /* Extended regular expression matching and search library. - Copyright (C) 2002-2017 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>. @@ -20,14 +20,24 @@ static void re_string_construct_common (const char *str, Idx len, re_string_t *pstr, RE_TRANSLATE_TYPE trans, bool icase, - const re_dfa_t *dfa) internal_function; + const re_dfa_t *dfa); static re_dfastate_t *create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes, - re_hashval_t hash) internal_function; + re_hashval_t hash); static re_dfastate_t *create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, unsigned int context, - re_hashval_t hash) internal_function; + re_hashval_t hash); +static reg_errcode_t re_string_realloc_buffers (re_string_t *pstr, + Idx new_buf_len); +#ifdef RE_ENABLE_I18N +static void build_wcs_buffer (re_string_t *pstr); +static reg_errcode_t build_wcs_upper_buffer (re_string_t *pstr); +#endif /* RE_ENABLE_I18N */ +static void build_upper_buffer (re_string_t *pstr); +static void re_string_translate_buffer (re_string_t *pstr); +static unsigned int re_string_context_at (const re_string_t *input, Idx idx, + int eflags) __attribute__ ((pure)); /* Functions for string operation. */ @@ -35,7 +45,7 @@ static re_dfastate_t *create_cd_newstate (const re_dfa_t *dfa, re_string_reconstruct before using the object. */ static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ re_string_allocate (re_string_t *pstr, const char *str, Idx len, Idx init_len, RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa) { @@ -49,7 +59,7 @@ re_string_allocate (re_string_t *pstr, const char *str, Idx len, Idx init_len, re_string_construct_common (str, len, pstr, trans, icase, dfa); ret = re_string_realloc_buffers (pstr, init_buf_len); - if (BE (ret != REG_NOERROR, 0)) + if (__glibc_unlikely (ret != REG_NOERROR)) return ret; pstr->word_char = dfa->word_char; @@ -63,7 +73,7 @@ re_string_allocate (re_string_t *pstr, const char *str, Idx len, Idx init_len, /* This function allocate the buffers, and initialize them. */ static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ re_string_construct (re_string_t *pstr, const char *str, Idx len, RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa) { @@ -74,7 +84,7 @@ re_string_construct (re_string_t *pstr, const char *str, Idx len, if (len > 0) { ret = re_string_realloc_buffers (pstr, len + 1); - if (BE (ret != REG_NOERROR, 0)) + if (__glibc_unlikely (ret != REG_NOERROR)) return ret; } pstr->mbs = pstr->mbs_allocated ? pstr->mbs : (unsigned char *) str; @@ -87,14 +97,14 @@ re_string_construct (re_string_t *pstr, const char *str, Idx len, while (1) { ret = build_wcs_upper_buffer (pstr); - if (BE (ret != REG_NOERROR, 0)) + if (__glibc_unlikely (ret != REG_NOERROR)) return ret; if (pstr->valid_raw_len >= len) break; if (pstr->bufs_len > pstr->valid_len + dfa->mb_cur_max) break; ret = re_string_realloc_buffers (pstr, pstr->bufs_len * 2); - if (BE (ret != REG_NOERROR, 0)) + if (__glibc_unlikely (ret != REG_NOERROR)) return ret; } } @@ -126,7 +136,7 @@ re_string_construct (re_string_t *pstr, const char *str, Idx len, /* Helper functions for re_string_allocate, and re_string_construct. */ static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ re_string_realloc_buffers (re_string_t *pstr, Idx new_buf_len) { #ifdef RE_ENABLE_I18N @@ -136,17 +146,18 @@ re_string_realloc_buffers (re_string_t *pstr, Idx new_buf_len) /* 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)) + if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / max_object_size) + < new_buf_len)) return REG_ESPACE; new_wcs = re_realloc (pstr->wcs, wint_t, new_buf_len); - if (BE (new_wcs == NULL, 0)) + if (__glibc_unlikely (new_wcs == NULL)) return REG_ESPACE; pstr->wcs = new_wcs; if (pstr->offsets != NULL) { Idx *new_offsets = re_realloc (pstr->offsets, Idx, new_buf_len); - if (BE (new_offsets == NULL, 0)) + if (__glibc_unlikely (new_offsets == NULL)) return REG_ESPACE; pstr->offsets = new_offsets; } @@ -156,7 +167,7 @@ re_string_realloc_buffers (re_string_t *pstr, Idx new_buf_len) { unsigned char *new_mbs = re_realloc (pstr->mbs, unsigned char, new_buf_len); - if (BE (new_mbs == NULL, 0)) + if (__glibc_unlikely (new_mbs == NULL)) return REG_ESPACE; pstr->mbs = new_mbs; } @@ -166,7 +177,6 @@ re_string_realloc_buffers (re_string_t *pstr, Idx new_buf_len) static void -internal_function re_string_construct_common (const char *str, Idx len, re_string_t *pstr, RE_TRANSLATE_TYPE trans, bool icase, const re_dfa_t *dfa) @@ -198,7 +208,6 @@ re_string_construct_common (const char *str, Idx len, re_string_t *pstr, built and starts from PSTR->VALID_LEN. */ static void -internal_function build_wcs_buffer (re_string_t *pstr) { #ifdef _LIBC @@ -222,7 +231,7 @@ build_wcs_buffer (re_string_t *pstr) remain_len = end_idx - byte_idx; prev_st = pstr->cur_state; /* Apply the translation if we need. */ - if (BE (pstr->trans != NULL, 0)) + if (__glibc_unlikely (pstr->trans != NULL)) { int i, ch; @@ -236,17 +245,18 @@ 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) -1 || mbclen == 0 - || (mbclen == (size_t) -2 && pstr->bufs_len >= pstr->len), 0)) + if (__glibc_unlikely (mbclen == (size_t) -1 || mbclen == 0 + || (mbclen == (size_t) -2 + && pstr->bufs_len >= pstr->len))) { /* We treat these cases as a singlebyte character. */ mbclen = 1; wc = (wchar_t) pstr->raw_mbs[pstr->raw_mbs_idx + byte_idx]; - if (BE (pstr->trans != NULL, 0)) + if (__glibc_unlikely (pstr->trans != NULL)) wc = pstr->trans[wc]; pstr->cur_state = prev_st; } - else if (BE (mbclen == (size_t) -2, 0)) + else if (__glibc_unlikely (mbclen == (size_t) -2)) { /* The buffer doesn't have enough space, finish to build. */ pstr->cur_state = prev_st; @@ -267,7 +277,7 @@ build_wcs_buffer (re_string_t *pstr) but for REG_ICASE. */ static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ build_wcs_upper_buffer (re_string_t *pstr) { mbstate_t prev_st; @@ -309,7 +319,7 @@ build_wcs_upper_buffer (re_string_t *pstr) mbclen = __mbrtowc (&wc, ((const char *) pstr->raw_mbs + pstr->raw_mbs_idx + byte_idx), remain_len, &pstr->cur_state); - if (BE (mbclen < (size_t) -2, 1)) + if (__glibc_likely (0 < mbclen && mbclen < (size_t) -2)) { wchar_t wcu = __towupper (wc); if (wcu != wc) @@ -317,7 +327,7 @@ build_wcs_upper_buffer (re_string_t *pstr) size_t mbcdlen; mbcdlen = __wcrtomb (buf, wcu, &prev_st); - if (BE (mbclen == mbcdlen, 1)) + if (__glibc_likely (mbclen == mbcdlen)) memcpy (pstr->mbs + byte_idx, buf, mbclen); else { @@ -342,7 +352,7 @@ build_wcs_upper_buffer (re_string_t *pstr) pstr->mbs[byte_idx] = ch; /* And also cast it to wide char. */ pstr->wcs[byte_idx++] = (wchar_t) ch; - if (BE (mbclen == (size_t) -1, 0)) + if (__glibc_unlikely (mbclen == (size_t) -1)) pstr->cur_state = prev_st; } else @@ -364,7 +374,7 @@ build_wcs_upper_buffer (re_string_t *pstr) offsets_needed: remain_len = end_idx - byte_idx; prev_st = pstr->cur_state; - if (BE (pstr->trans != NULL, 0)) + if (__glibc_unlikely (pstr->trans != NULL)) { int i, ch; @@ -378,15 +388,15 @@ build_wcs_upper_buffer (re_string_t *pstr) else p = (const char *) pstr->raw_mbs + pstr->raw_mbs_idx + src_idx; mbclen = __mbrtowc (&wc, p, remain_len, &pstr->cur_state); - if (BE (mbclen < (size_t) -2, 1)) + if (__glibc_likely (0 < mbclen && mbclen < (size_t) -2)) { wchar_t wcu = __towupper (wc); if (wcu != wc) { size_t mbcdlen; - mbcdlen = wcrtomb ((char *) buf, wcu, &prev_st); - if (BE (mbclen == mbcdlen, 1)) + mbcdlen = __wcrtomb ((char *) buf, wcu, &prev_st); + if (__glibc_likely (mbclen == mbcdlen)) memcpy (pstr->mbs + byte_idx, buf, mbclen); else if (mbcdlen != (size_t) -1) { @@ -436,7 +446,7 @@ build_wcs_upper_buffer (re_string_t *pstr) else memcpy (pstr->mbs + byte_idx, p, mbclen); - if (BE (pstr->offsets_needed != 0, 0)) + if (__glibc_unlikely (pstr->offsets_needed != 0)) { size_t i; for (i = 0; i < mbclen; ++i) @@ -455,17 +465,17 @@ build_wcs_upper_buffer (re_string_t *pstr) /* It is an invalid character or '\0'. Just use the byte. */ int ch = pstr->raw_mbs[pstr->raw_mbs_idx + src_idx]; - if (BE (pstr->trans != NULL, 0)) + if (__glibc_unlikely (pstr->trans != NULL)) ch = pstr->trans [ch]; pstr->mbs[byte_idx] = ch; - if (BE (pstr->offsets_needed != 0, 0)) + if (__glibc_unlikely (pstr->offsets_needed != 0)) pstr->offsets[byte_idx] = src_idx; ++src_idx; /* And also cast it to wide char. */ pstr->wcs[byte_idx++] = (wchar_t) ch; - if (BE (mbclen == (size_t) -1, 0)) + if (__glibc_unlikely (mbclen == (size_t) -1)) pstr->cur_state = prev_st; } else @@ -484,7 +494,6 @@ build_wcs_upper_buffer (re_string_t *pstr) Return the index. */ static Idx -internal_function re_string_skip_chars (re_string_t *pstr, Idx new_raw_idx, wint_t *last_wc) { mbstate_t prev_st; @@ -501,7 +510,8 @@ re_string_skip_chars (re_string_t *pstr, Idx new_raw_idx, wint_t *last_wc) prev_st = pstr->cur_state; mbclen = __mbrtowc (&wc2, (const char *) pstr->raw_mbs + rawbuf_idx, remain_len, &pstr->cur_state); - if (BE (mbclen == (size_t) -2 || mbclen == (size_t) -1 || mbclen == 0, 0)) + if (__glibc_unlikely (mbclen == (size_t) -2 || mbclen == (size_t) -1 + || mbclen == 0)) { /* We treat these cases as a single byte character. */ if (mbclen == 0 || remain_len == 0) @@ -525,7 +535,6 @@ re_string_skip_chars (re_string_t *pstr, Idx new_raw_idx, wint_t *last_wc) This function is used in case of REG_ICASE. */ static void -internal_function build_upper_buffer (re_string_t *pstr) { Idx char_idx, end_idx; @@ -534,7 +543,7 @@ build_upper_buffer (re_string_t *pstr) for (char_idx = pstr->valid_len; char_idx < end_idx; ++char_idx) { int ch = pstr->raw_mbs[pstr->raw_mbs_idx + char_idx]; - if (BE (pstr->trans != NULL, 0)) + if (__glibc_unlikely (pstr->trans != NULL)) ch = pstr->trans[ch]; pstr->mbs[char_idx] = toupper (ch); } @@ -545,7 +554,6 @@ build_upper_buffer (re_string_t *pstr) /* Apply TRANS to the buffer in PSTR. */ static void -internal_function re_string_translate_buffer (re_string_t *pstr) { Idx buf_idx, end_idx; @@ -566,12 +574,12 @@ re_string_translate_buffer (re_string_t *pstr) convert to upper case in case of REG_ICASE, apply translation. */ static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) { Idx offset; - if (BE (pstr->raw_mbs_idx <= idx, 0)) + if (__glibc_unlikely (pstr->raw_mbs_idx <= idx)) offset = idx - pstr->raw_mbs_idx; else { @@ -593,14 +601,14 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) offset = idx; } - if (BE (offset != 0, 1)) + if (__glibc_likely (offset != 0)) { /* Should the already checked characters be kept? */ - if (BE (offset < pstr->valid_raw_len, 1)) + if (__glibc_likely (offset < pstr->valid_raw_len)) { /* Yes, move them to the front of the buffer. */ #ifdef RE_ENABLE_I18N - if (BE (pstr->offsets_needed, 0)) + if (__glibc_unlikely (pstr->offsets_needed)) { Idx low = 0, high = pstr->valid_len, mid; do @@ -672,7 +680,7 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) memmove (pstr->wcs, pstr->wcs + offset, (pstr->valid_len - offset) * sizeof (wint_t)); #endif /* RE_ENABLE_I18N */ - if (BE (pstr->mbs_allocated, 0)) + if (__glibc_unlikely (pstr->mbs_allocated)) memmove (pstr->mbs, pstr->mbs + offset, pstr->valid_len - offset); pstr->valid_len -= offset; @@ -688,7 +696,7 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) /* No, skip all characters until IDX. */ Idx prev_valid_len = pstr->valid_len; - if (BE (pstr->offsets_needed, 0)) + if (__glibc_unlikely (pstr->offsets_needed)) { pstr->len = pstr->raw_len - idx + offset; pstr->stop = pstr->raw_stop - idx + offset; @@ -716,7 +724,7 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) #ifdef _LIBC /* We know the wchar_t encoding is UCS4, so for the simple case, ASCII characters, skip the conversion step. */ - if (isascii (*p) && BE (pstr->trans == NULL, 1)) + if (isascii (*p) && __glibc_likely (pstr->trans == NULL)) { memset (&pstr->cur_state, '\0', sizeof (mbstate_t)); /* pstr->valid_len = 0; */ @@ -734,7 +742,7 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) size_t mbclen; const unsigned char *pp = p; - if (BE (pstr->trans != NULL, 0)) + if (__glibc_unlikely (pstr->trans != NULL)) { int i = mlen < 6 ? mlen : 6; while (--i >= 0) @@ -764,13 +772,13 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) pstr->tip_context = re_string_context_at (pstr, prev_valid_len - 1, eflags); else - pstr->tip_context = ((BE (pstr->word_ops_used != 0, 0) + pstr->tip_context = ((__glibc_unlikely (pstr->word_ops_used != 0) && IS_WIDE_WORD_CHAR (wc)) ? CONTEXT_WORD : ((IS_WIDE_NEWLINE (wc) && pstr->newline_anchor) ? CONTEXT_NEWLINE : 0)); - if (BE (pstr->valid_len, 0)) + if (__glibc_unlikely (pstr->valid_len)) { for (wcs_idx = 0; wcs_idx < pstr->valid_len; ++wcs_idx) pstr->wcs[wcs_idx] = WEOF; @@ -792,7 +800,7 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) ? CONTEXT_NEWLINE : 0)); } } - if (!BE (pstr->mbs_allocated, 0)) + if (!__glibc_unlikely (pstr->mbs_allocated)) pstr->mbs += offset; } pstr->raw_mbs_idx = idx; @@ -806,7 +814,7 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) if (pstr->icase) { reg_errcode_t ret = build_wcs_upper_buffer (pstr); - if (BE (ret != REG_NOERROR, 0)) + if (__glibc_unlikely (ret != REG_NOERROR)) return ret; } else @@ -814,7 +822,7 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) } else #endif /* RE_ENABLE_I18N */ - if (BE (pstr->mbs_allocated, 0)) + if (__glibc_unlikely (pstr->mbs_allocated)) { if (pstr->icase) build_upper_buffer (pstr); @@ -829,14 +837,14 @@ re_string_reconstruct (re_string_t *pstr, Idx idx, int eflags) } static unsigned char -internal_function __attribute__ ((pure)) +__attribute__ ((pure)) re_string_peek_byte_case (const re_string_t *pstr, Idx idx) { int ch; Idx off; /* Handle the common (easiest) cases first. */ - if (BE (!pstr->mbs_allocated, 1)) + if (__glibc_likely (!pstr->mbs_allocated)) return re_string_peek_byte (pstr, idx); #ifdef RE_ENABLE_I18N @@ -866,10 +874,9 @@ re_string_peek_byte_case (const re_string_t *pstr, Idx idx) } static unsigned char -internal_function re_string_fetch_byte_case (re_string_t *pstr) { - if (BE (!pstr->mbs_allocated, 1)) + if (__glibc_likely (!pstr->mbs_allocated)) return re_string_fetch_byte (pstr); #ifdef RE_ENABLE_I18N @@ -904,7 +911,6 @@ re_string_fetch_byte_case (re_string_t *pstr) } static void -internal_function re_string_destruct (re_string_t *pstr) { #ifdef RE_ENABLE_I18N @@ -918,15 +924,14 @@ re_string_destruct (re_string_t *pstr) /* Return the context at IDX in INPUT. */ static unsigned int -internal_function re_string_context_at (const re_string_t *input, Idx idx, int eflags) { int c; - if (BE (idx < 0, 0)) + if (__glibc_unlikely (idx < 0)) /* In this case, we use the value stored in input->tip_context, since we can't know the character in input->mbs[-1] here. */ return input->tip_context; - if (BE (idx == input->len, 0)) + if (__glibc_unlikely (idx == input->len)) return ((eflags & REG_NOTEOL) ? CONTEXT_ENDBUF : CONTEXT_NEWLINE | CONTEXT_ENDBUF); #ifdef RE_ENABLE_I18N @@ -945,7 +950,8 @@ re_string_context_at (const re_string_t *input, Idx idx, int eflags) return input->tip_context; } wc = input->wcs[wc_idx]; - if (BE (input->word_ops_used != 0, 0) && IS_WIDE_WORD_CHAR (wc)) + if (__glibc_unlikely (input->word_ops_used != 0) + && IS_WIDE_WORD_CHAR (wc)) return CONTEXT_WORD; return (IS_WIDE_NEWLINE (wc) && input->newline_anchor ? CONTEXT_NEWLINE : 0); @@ -963,25 +969,26 @@ re_string_context_at (const re_string_t *input, Idx idx, int eflags) /* Functions for set operation. */ static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ 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) && (MALLOC_0_IS_NONNULL || size != 0)) + if (__glibc_unlikely (set->elems == NULL) + && (MALLOC_0_IS_NONNULL || size != 0)) return REG_ESPACE; return REG_NOERROR; } static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ re_node_set_init_1 (re_node_set *set, Idx elem) { set->alloc = 1; set->nelem = 1; set->elems = re_malloc (Idx, 1); - if (BE (set->elems == NULL, 0)) + if (__glibc_unlikely (set->elems == NULL)) { set->alloc = set->nelem = 0; return REG_ESPACE; @@ -991,12 +998,12 @@ re_node_set_init_1 (re_node_set *set, Idx elem) } static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ re_node_set_init_2 (re_node_set *set, Idx elem1, Idx elem2) { set->alloc = 2; set->elems = re_malloc (Idx, 2); - if (BE (set->elems == NULL, 0)) + if (__glibc_unlikely (set->elems == NULL)) return REG_ESPACE; if (elem1 == elem2) { @@ -1021,7 +1028,7 @@ re_node_set_init_2 (re_node_set *set, Idx elem1, Idx elem2) } static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ re_node_set_init_copy (re_node_set *dest, const re_node_set *src) { dest->nelem = src->nelem; @@ -1029,7 +1036,7 @@ re_node_set_init_copy (re_node_set *dest, const re_node_set *src) { dest->alloc = dest->nelem; dest->elems = re_malloc (Idx, dest->alloc); - if (BE (dest->elems == NULL, 0)) + if (__glibc_unlikely (dest->elems == NULL)) { dest->alloc = dest->nelem = 0; return REG_ESPACE; @@ -1046,7 +1053,7 @@ re_node_set_init_copy (re_node_set *dest, const re_node_set *src) Note: We assume dest->elems is NULL, when dest->alloc is 0. */ static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1, const re_node_set *src2) { @@ -1060,7 +1067,7 @@ re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1, { Idx new_alloc = src1->nelem + src2->nelem + dest->alloc; Idx *new_elems = re_realloc (dest->elems, Idx, new_alloc); - if (BE (new_elems == NULL, 0)) + if (__glibc_unlikely (new_elems == NULL)) return REG_ESPACE; dest->elems = new_elems; dest->alloc = new_alloc; @@ -1137,7 +1144,7 @@ re_node_set_add_intersect (re_node_set *dest, const re_node_set *src1, DEST. Return value indicate the error code or REG_NOERROR if succeeded. */ static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ re_node_set_init_union (re_node_set *dest, const re_node_set *src1, const re_node_set *src2) { @@ -1146,7 +1153,7 @@ re_node_set_init_union (re_node_set *dest, const re_node_set *src1, { dest->alloc = src1->nelem + src2->nelem; dest->elems = re_malloc (Idx, dest->alloc); - if (BE (dest->elems == NULL, 0)) + if (__glibc_unlikely (dest->elems == NULL)) return REG_ESPACE; } else @@ -1190,7 +1197,7 @@ re_node_set_init_union (re_node_set *dest, const re_node_set *src1, DEST. Return value indicate the error code or REG_NOERROR if succeeded. */ static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ re_node_set_merge (re_node_set *dest, const re_node_set *src) { Idx is, id, sbase, delta; @@ -1200,13 +1207,13 @@ re_node_set_merge (re_node_set *dest, const re_node_set *src) { Idx new_alloc = 2 * (src->nelem + dest->alloc); Idx *new_buffer = re_realloc (dest->elems, Idx, new_alloc); - if (BE (new_buffer == NULL, 0)) + if (__glibc_unlikely (new_buffer == NULL)) return REG_ESPACE; dest->elems = new_buffer; dest->alloc = new_alloc; } - if (BE (dest->nelem == 0, 0)) + if (__glibc_unlikely (dest->nelem == 0)) { dest->nelem = src->nelem; memcpy (dest->elems, src->elems, src->nelem * sizeof (Idx)); @@ -1273,15 +1280,15 @@ re_node_set_merge (re_node_set *dest, const re_node_set *src) Return true if successful. */ static bool -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ re_node_set_insert (re_node_set *set, Idx elem) { Idx idx; /* In case the set is empty. */ if (set->alloc == 0) - return BE (re_node_set_init_1 (set, elem) == REG_NOERROR, 1); + return __glibc_likely (re_node_set_init_1 (set, elem) == REG_NOERROR); - if (BE (set->nelem, 0) == 0) + if (__glibc_unlikely (set->nelem) == 0) { /* We already guaranteed above that set->alloc != 0. */ set->elems[0] = elem; @@ -1295,7 +1302,7 @@ re_node_set_insert (re_node_set *set, Idx elem) Idx *new_elems; set->alloc = set->alloc * 2; new_elems = re_realloc (set->elems, Idx, set->alloc); - if (BE (new_elems == NULL, 0)) + if (__glibc_unlikely (new_elems == NULL)) return false; set->elems = new_elems; } @@ -1325,7 +1332,7 @@ re_node_set_insert (re_node_set *set, Idx elem) Return true if successful. */ static bool -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ re_node_set_insert_last (re_node_set *set, Idx elem) { /* Realloc if we need. */ @@ -1334,7 +1341,7 @@ re_node_set_insert_last (re_node_set *set, Idx elem) Idx *new_elems; set->alloc = (set->alloc + 1) * 2; new_elems = re_realloc (set->elems, Idx, set->alloc); - if (BE (new_elems == NULL, 0)) + if (__glibc_unlikely (new_elems == NULL)) return false; set->elems = new_elems; } @@ -1348,7 +1355,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)) +__attribute__ ((pure)) re_node_set_compare (const re_node_set *set1, const re_node_set *set2) { Idx i; @@ -1363,7 +1370,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)) +__attribute__ ((pure)) re_node_set_contains (const re_node_set *set, Idx elem) { __re_size_t idx, right, mid; @@ -1385,7 +1392,6 @@ re_node_set_contains (const re_node_set *set, Idx elem) } static void -internal_function re_node_set_remove_at (re_node_set *set, Idx idx) { if (idx < 0 || idx >= set->nelem) @@ -1400,10 +1406,9 @@ re_node_set_remove_at (re_node_set *set, Idx idx) Or return -1 if an error occurred. */ static Idx -internal_function re_dfa_add_node (re_dfa_t *dfa, re_token_t token) { - if (BE (dfa->nodes_len >= dfa->nodes_alloc, 0)) + if (__glibc_unlikely (dfa->nodes_len >= dfa->nodes_alloc)) { size_t new_nodes_alloc = dfa->nodes_alloc * 2; Idx *new_nexts, *new_indices; @@ -1414,19 +1419,20 @@ re_dfa_add_node (re_dfa_t *dfa, re_token_t token) 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)) + if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / max_object_size) + < new_nodes_alloc)) return -1; new_nodes = re_realloc (dfa->nodes, re_token_t, new_nodes_alloc); - if (BE (new_nodes == NULL, 0)) + if (__glibc_unlikely (new_nodes == NULL)) return -1; dfa->nodes = new_nodes; new_nexts = re_realloc (dfa->nexts, Idx, new_nodes_alloc); new_indices = re_realloc (dfa->org_indices, Idx, new_nodes_alloc); new_edests = re_realloc (dfa->edests, re_node_set, new_nodes_alloc); new_eclosures = re_realloc (dfa->eclosures, re_node_set, new_nodes_alloc); - if (BE (new_nexts == NULL || new_indices == NULL - || new_edests == NULL || new_eclosures == NULL, 0)) + if (__glibc_unlikely (new_nexts == NULL || new_indices == NULL + || new_edests == NULL || new_eclosures == NULL)) { re_free (new_nexts); re_free (new_indices); @@ -1454,7 +1460,6 @@ re_dfa_add_node (re_dfa_t *dfa, re_token_t token) } static re_hashval_t -internal_function calc_state_hash (const re_node_set *nodes, unsigned int context) { re_hashval_t hash = nodes->nelem + context; @@ -1474,7 +1479,7 @@ calc_state_hash (const re_node_set *nodes, unsigned int context) optimization. */ static re_dfastate_t * -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa, const re_node_set *nodes) { @@ -1486,7 +1491,7 @@ re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa, /* Suppress bogus uninitialized-variable warnings. */ *err = REG_NOERROR; #endif - if (BE (nodes->nelem == 0, 0)) + if (__glibc_unlikely (nodes->nelem == 0)) { *err = REG_NOERROR; return NULL; @@ -1505,7 +1510,7 @@ re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa, /* There are no appropriate state in the dfa, create the new one. */ new_state = create_ci_newstate (dfa, nodes, hash); - if (BE (new_state == NULL, 0)) + if (__glibc_unlikely (new_state == NULL)) *err = REG_ESPACE; return new_state; @@ -1522,7 +1527,7 @@ re_acquire_state (reg_errcode_t *err, const re_dfa_t *dfa, optimization. */ static re_dfastate_t * -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ re_acquire_state_context (reg_errcode_t *err, const re_dfa_t *dfa, const re_node_set *nodes, unsigned int context) { @@ -1552,7 +1557,7 @@ re_acquire_state_context (reg_errcode_t *err, const re_dfa_t *dfa, } /* 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)) + if (__glibc_unlikely (new_state == NULL)) *err = REG_ESPACE; return new_state; @@ -1573,7 +1578,7 @@ register_state (const re_dfa_t *dfa, re_dfastate_t *newstate, newstate->hash = hash; err = re_node_set_alloc (&newstate->non_eps_nodes, newstate->nodes.nelem); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return REG_ESPACE; for (i = 0; i < newstate->nodes.nelem; i++) { @@ -1584,12 +1589,12 @@ register_state (const re_dfa_t *dfa, re_dfastate_t *newstate, } spot = dfa->state_table + (hash & dfa->state_hash_mask); - if (BE (spot->alloc <= spot->num, 0)) + if (__glibc_unlikely (spot->alloc <= spot->num)) { Idx new_alloc = 2 * spot->num + 2; re_dfastate_t **new_array = re_realloc (spot->array, re_dfastate_t *, new_alloc); - if (BE (new_array == NULL, 0)) + if (__glibc_unlikely (new_array == NULL)) return REG_ESPACE; spot->array = new_array; spot->alloc = new_alloc; @@ -1618,7 +1623,7 @@ free_state (re_dfastate_t *state) Return the new state if succeeded, otherwise return NULL. */ static re_dfastate_t * -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes, re_hashval_t hash) { @@ -1627,10 +1632,10 @@ create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes, re_dfastate_t *newstate; newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1); - if (BE (newstate == NULL, 0)) + if (__glibc_unlikely (newstate == NULL)) return NULL; err = re_node_set_init_copy (&newstate->nodes, nodes); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) { re_free (newstate); return NULL; @@ -1656,7 +1661,7 @@ create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes, newstate->has_constraint = 1; } err = register_state (dfa, newstate, hash); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) { free_state (newstate); newstate = NULL; @@ -1668,7 +1673,7 @@ create_ci_newstate (const re_dfa_t *dfa, const re_node_set *nodes, Return the new state if succeeded, otherwise return NULL. */ static re_dfastate_t * -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, unsigned int context, re_hashval_t hash) { @@ -1677,10 +1682,10 @@ create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, re_dfastate_t *newstate; newstate = (re_dfastate_t *) calloc (sizeof (re_dfastate_t), 1); - if (BE (newstate == NULL, 0)) + if (__glibc_unlikely (newstate == NULL)) return NULL; err = re_node_set_init_copy (&newstate->nodes, nodes); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) { re_free (newstate); return NULL; @@ -1712,7 +1717,7 @@ create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, if (newstate->entrance_nodes == &newstate->nodes) { newstate->entrance_nodes = re_malloc (re_node_set, 1); - if (BE (newstate->entrance_nodes == NULL, 0)) + if (__glibc_unlikely (newstate->entrance_nodes == NULL)) { free_state (newstate); return NULL; @@ -1732,7 +1737,7 @@ create_cd_newstate (const re_dfa_t *dfa, const re_node_set *nodes, } } err = register_state (dfa, newstate, hash); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) { free_state (newstate); newstate = NULL; diff --git a/gnu/regex_internal.h b/gnu/regex_internal.h index fc4ffdb2..a3aedda8 100644 --- a/gnu/regex_internal.h +++ b/gnu/regex_internal.h @@ -1,5 +1,5 @@ /* Extended regular expression matching and search library. - Copyright (C) 2002-2017 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>. @@ -33,13 +33,13 @@ #include <stdbool.h> #include <stdint.h> -#include "intprops.h" +#include <intprops.h> #ifdef _LIBC # include <libc-lock.h> # define lock_define(name) __libc_lock_define (, name) # define lock_init(lock) (__libc_lock_init (lock), 0) -# define lock_fini(lock) 0 +# define lock_fini(lock) ((void) 0) # define lock_lock(lock) __libc_lock_lock (lock) # define lock_unlock(lock) __libc_lock_unlock (lock) #elif defined GNULIB_LOCK && !defined USE_UNLOCKED_IO @@ -116,8 +116,6 @@ # define RE_ENABLE_I18N #endif -#define BE(expr, val) __builtin_expect (expr, val) - /* Number of ASCII characters. */ #define ASCII_CHARS 0x80 @@ -133,7 +131,10 @@ /* Rename to standard API for using out of glibc. */ #ifndef _LIBC # undef __wctype +# undef __iswalnum # undef __iswctype +# undef __towlower +# undef __towupper # define __wctype wctype # define __iswalnum iswalnum # define __iswctype iswctype @@ -143,13 +144,8 @@ # define __mbrtowc mbrtowc # define __wcrtomb wcrtomb # define __regfree regfree -# define attribute_hidden #endif /* not _LIBC */ -#if __GNUC__ < 3 + (__GNUC_MINOR__ < 1) -# define __attribute__(arg) -#endif - #ifndef SSIZE_MAX # define SSIZE_MAX ((ssize_t) (SIZE_MAX / 2)) #endif @@ -438,24 +434,9 @@ struct re_dfa_t; typedef struct re_dfa_t re_dfa_t; #ifndef _LIBC -# define internal_function # define IS_IN(libc) false #endif -static reg_errcode_t re_string_realloc_buffers (re_string_t *pstr, - Idx new_buf_len) - internal_function; -#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 */ -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)); - #define re_string_peek_byte(pstr, offset) \ ((pstr)->mbs[(pstr)->cur_idx + offset]) #define re_string_fetch_byte(pstr) \ @@ -761,31 +742,31 @@ typedef struct /* Functions for bitset_t operation. */ -static void +static inline void bitset_set (bitset_t set, Idx i) { set[i / BITSET_WORD_BITS] |= (bitset_word_t) 1 << i % BITSET_WORD_BITS; } -static void +static inline void bitset_clear (bitset_t set, Idx i) { set[i / BITSET_WORD_BITS] &= ~ ((bitset_word_t) 1 << i % BITSET_WORD_BITS); } -static bool +static inline bool bitset_contain (const bitset_t set, Idx i) { return (set[i / BITSET_WORD_BITS] >> i % BITSET_WORD_BITS) & 1; } -static void +static inline void bitset_empty (bitset_t set) { memset (set, '\0', sizeof (bitset_t)); } -static void +static inline void bitset_set_all (bitset_t set) { memset (set, -1, sizeof (bitset_word_t) * (SBC_MAX / BITSET_WORD_BITS)); @@ -794,13 +775,13 @@ bitset_set_all (bitset_t set) ((bitset_word_t) 1 << SBC_MAX % BITSET_WORD_BITS) - 1; } -static void +static inline void bitset_copy (bitset_t dest, const bitset_t src) { memcpy (dest, src, sizeof (bitset_t)); } -static void __attribute__ ((unused)) +static inline void bitset_not (bitset_t set) { int bitset_i; @@ -812,7 +793,7 @@ bitset_not (bitset_t set) & ~set[BITSET_WORDS - 1]); } -static void __attribute__ ((unused)) +static inline void bitset_merge (bitset_t dest, const bitset_t src) { int bitset_i; @@ -820,7 +801,7 @@ bitset_merge (bitset_t dest, const bitset_t src) dest[bitset_i] |= src[bitset_i]; } -static void __attribute__ ((unused)) +static inline void bitset_mask (bitset_t dest, const bitset_t src) { int bitset_i; @@ -831,7 +812,7 @@ bitset_mask (bitset_t dest, const bitset_t src) #ifdef RE_ENABLE_I18N /* Functions for re_string. */ static int -internal_function __attribute__ ((pure, unused)) +__attribute__ ((pure, unused)) re_string_char_size_at (const re_string_t *pstr, Idx idx) { int byte_idx; @@ -844,7 +825,7 @@ re_string_char_size_at (const re_string_t *pstr, Idx idx) } static wint_t -internal_function __attribute__ ((pure, unused)) +__attribute__ ((pure, unused)) re_string_wchar_at (const re_string_t *pstr, Idx idx) { if (pstr->mb_cur_max == 1) @@ -857,7 +838,7 @@ re_string_wchar_at (const re_string_t *pstr, Idx idx) # endif static int -internal_function __attribute__ ((pure, unused)) +__attribute__ ((pure, unused)) re_string_elem_size_at (const re_string_t *pstr, Idx idx) { # ifdef _LIBC @@ -882,23 +863,6 @@ re_string_elem_size_at (const re_string_t *pstr, Idx idx) } #endif /* RE_ENABLE_I18N */ -#ifndef __GNUC_PREREQ -# if defined __GNUC__ && defined __GNUC_MINOR__ -# define __GNUC_PREREQ(maj, min) \ - ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) -# else -# define __GNUC_PREREQ(maj, min) 0 -# endif -#endif - -#if __GNUC_PREREQ (3,4) -# undef __attribute_warn_unused_result__ -# define __attribute_warn_unused_result__ \ - __attribute__ ((__warn_unused_result__)) -#else -# define __attribute_warn_unused_result__ /* empty */ -#endif - #ifndef FALLTHROUGH # if __GNUC__ < 7 # define FALLTHROUGH ((void) 0) diff --git a/gnu/regexec.c b/gnu/regexec.c index 51a5c9ea..21cf7915 100644 --- a/gnu/regexec.c +++ b/gnu/regexec.c @@ -1,5 +1,5 @@ /* Extended regular expression matching and search library. - Copyright (C) 2002-2017 Free Software Foundation, Inc. + Copyright (C) 2002-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Isamu Hasegawa <isamu@yamato.ibm.com>. @@ -18,189 +18,159 @@ <https://www.gnu.org/licenses/>. */ static reg_errcode_t match_ctx_init (re_match_context_t *cache, int eflags, - Idx n) internal_function; -static void match_ctx_clean (re_match_context_t *mctx) internal_function; -static void match_ctx_free (re_match_context_t *cache) internal_function; + Idx n); +static void match_ctx_clean (re_match_context_t *mctx); +static void match_ctx_free (re_match_context_t *cache); static reg_errcode_t match_ctx_add_entry (re_match_context_t *cache, Idx node, - Idx str_idx, Idx from, Idx to) - internal_function; -static Idx search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx) - internal_function; + Idx str_idx, Idx from, Idx to); +static Idx search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx); static reg_errcode_t match_ctx_add_subtop (re_match_context_t *mctx, Idx node, - Idx str_idx) internal_function; + Idx str_idx); static re_sub_match_last_t * match_ctx_add_sublast (re_sub_match_top_t *subtop, - Idx node, Idx str_idx) - internal_function; + Idx node, Idx str_idx); static void sift_ctx_init (re_sift_context_t *sctx, re_dfastate_t **sifted_sts, re_dfastate_t **limited_sts, Idx last_node, - Idx last_str_idx) - internal_function; + Idx last_str_idx); static reg_errcode_t re_search_internal (const regex_t *preg, const char *string, Idx length, Idx start, Idx last_start, Idx stop, size_t nmatch, regmatch_t pmatch[], - int eflags) internal_function; + int eflags); static regoff_t re_search_2_stub (struct re_pattern_buffer *bufp, const char *string1, Idx length1, const char *string2, Idx length2, Idx start, regoff_t range, struct re_registers *regs, - Idx stop, bool ret_len) internal_function; + Idx stop, bool ret_len); static regoff_t re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length, Idx start, regoff_t range, Idx stop, struct re_registers *regs, - bool ret_len) internal_function; + bool ret_len); 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; + Idx nregs, int regs_allocated); +static reg_errcode_t prune_impossible_nodes (re_match_context_t *mctx); static Idx check_matching (re_match_context_t *mctx, bool fl_longest_match, - Idx *p_match_first) internal_function; + Idx *p_match_first); static Idx check_halt_state_context (const re_match_context_t *mctx, - const re_dfastate_t *state, Idx idx) - internal_function; + const re_dfastate_t *state, Idx idx); static void update_regs (const re_dfa_t *dfa, regmatch_t *pmatch, regmatch_t *prev_idx_match, Idx cur_node, - Idx cur_idx, Idx nmatch) internal_function; + Idx cur_idx, Idx nmatch); static reg_errcode_t push_fail_stack (struct re_fail_stack_t *fs, Idx str_idx, Idx dest_node, Idx nregs, regmatch_t *regs, - re_node_set *eps_via_nodes) - internal_function; + re_node_set *eps_via_nodes); static reg_errcode_t set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch, regmatch_t *pmatch, - bool fl_backtrack) internal_function; -static reg_errcode_t free_fail_stack_return (struct re_fail_stack_t *fs) - internal_function; + bool fl_backtrack); +static reg_errcode_t free_fail_stack_return (struct re_fail_stack_t *fs); #ifdef RE_ENABLE_I18N static int sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx, - Idx node_idx, Idx str_idx, Idx max_str_idx) - internal_function; + Idx node_idx, Idx str_idx, Idx max_str_idx); #endif /* RE_ENABLE_I18N */ static reg_errcode_t sift_states_backward (const re_match_context_t *mctx, - re_sift_context_t *sctx) - internal_function; + re_sift_context_t *sctx); static reg_errcode_t build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, - re_node_set *cur_dest) - internal_function; + re_node_set *cur_dest); static reg_errcode_t update_cur_sifted_state (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, - re_node_set *dest_nodes) - internal_function; + re_node_set *dest_nodes); static reg_errcode_t add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes, - const re_node_set *candidates) - internal_function; + const re_node_set *candidates); static bool check_dst_limits (const re_match_context_t *mctx, const re_node_set *limits, Idx dst_node, Idx dst_idx, Idx src_node, - Idx src_idx) internal_function; + Idx src_idx); static int check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries, Idx subexp_idx, - Idx from_node, Idx bkref_idx) - internal_function; + Idx from_node, Idx bkref_idx); static int check_dst_limits_calc_pos (const re_match_context_t *mctx, Idx limit, Idx subexp_idx, Idx node, Idx str_idx, - Idx bkref_idx) internal_function; + Idx bkref_idx); static reg_errcode_t check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, const re_node_set *candidates, re_node_set *limits, struct re_backref_cache_entry *bkref_ents, - Idx str_idx) internal_function; + Idx str_idx); static reg_errcode_t sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx, - Idx str_idx, const re_node_set *candidates) - internal_function; + Idx str_idx, const re_node_set *candidates); static reg_errcode_t merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst, - re_dfastate_t **src, Idx num) - internal_function; + re_dfastate_t **src, Idx num); static re_dfastate_t *find_recover_state (reg_errcode_t *err, - re_match_context_t *mctx) internal_function; + re_match_context_t *mctx); static re_dfastate_t *transit_state (reg_errcode_t *err, re_match_context_t *mctx, - re_dfastate_t *state) internal_function; + re_dfastate_t *state); static re_dfastate_t *merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, - re_dfastate_t *next_state) - internal_function; + re_dfastate_t *next_state); static reg_errcode_t check_subexp_matching_top (re_match_context_t *mctx, re_node_set *cur_nodes, - Idx str_idx) internal_function; + Idx str_idx); #if 0 static re_dfastate_t *transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx, - re_dfastate_t *pstate) - internal_function; + re_dfastate_t *pstate); #endif #ifdef RE_ENABLE_I18N static reg_errcode_t transit_state_mb (re_match_context_t *mctx, - re_dfastate_t *pstate) - internal_function; + re_dfastate_t *pstate); #endif /* RE_ENABLE_I18N */ static reg_errcode_t transit_state_bkref (re_match_context_t *mctx, - const re_node_set *nodes) - internal_function; + const re_node_set *nodes); static reg_errcode_t get_subexp (re_match_context_t *mctx, - Idx bkref_node, Idx bkref_str_idx) - internal_function; + Idx bkref_node, Idx bkref_str_idx); static reg_errcode_t get_subexp_sub (re_match_context_t *mctx, const re_sub_match_top_t *sub_top, re_sub_match_last_t *sub_last, - Idx bkref_node, Idx bkref_str) - internal_function; + Idx bkref_node, Idx bkref_str); static Idx find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes, - Idx subexp_idx, int type) internal_function; + Idx subexp_idx, int type); static reg_errcode_t check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, Idx top_str, Idx last_node, Idx last_str, - int type) internal_function; + int type); static reg_errcode_t check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx, re_node_set *cur_nodes, - re_node_set *next_nodes) - internal_function; + re_node_set *next_nodes); static reg_errcode_t check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes, - Idx ex_subexp, int type) - internal_function; + Idx ex_subexp, int type); static reg_errcode_t check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes, Idx target, Idx ex_subexp, - int type) internal_function; + int type); static reg_errcode_t expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, Idx cur_str, - Idx subexp_num, int type) - internal_function; -static bool build_trtable (const re_dfa_t *dfa, - re_dfastate_t *state) internal_function; + Idx subexp_num, int type); +static bool build_trtable (const re_dfa_t *dfa, re_dfastate_t *state); #ifdef RE_ENABLE_I18N static int check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, - const re_string_t *input, Idx idx) - internal_function; + const re_string_t *input, Idx idx); # ifdef _LIBC static unsigned int find_collation_sequence_value (const unsigned char *mbs, - size_t name_len) - internal_function; + size_t name_len); # endif /* _LIBC */ #endif /* RE_ENABLE_I18N */ static Idx group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, re_node_set *states_node, - bitset_t *states_ch) internal_function; + bitset_t *states_ch); 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, int min_len) - internal_function; + const re_token_t *node, Idx idx); +static reg_errcode_t extend_buffers (re_match_context_t *mctx, int min_len); /* Entry point for POSIX code. */ @@ -219,7 +189,7 @@ static reg_errcode_t extend_buffers (re_match_context_t *mctx, int min_len) We return 0 if we find a match and REG_NOMATCH if not. */ int -regexec (const regex_t *_Restrict_ preg, const char *_Restrict_ string, +regexec (const regex_t *__restrict preg, const char *__restrict string, size_t nmatch, regmatch_t pmatch[], int eflags) { reg_errcode_t err; @@ -252,6 +222,8 @@ regexec (const regex_t *_Restrict_ preg, const char *_Restrict_ string, } #ifdef _LIBC +libc_hidden_def (__regexec) + # include <shlib-compat.h> versioned_symbol (libc, __regexec, regexec, GLIBC_2_3_4); @@ -260,8 +232,8 @@ __typeof__ (__regexec) __compat_regexec; int attribute_compat_text_section -__compat_regexec (const regex_t *_Restrict_ preg, - const char *_Restrict_ string, size_t nmatch, +__compat_regexec (const regex_t *__restrict preg, + const char *__restrict string, size_t nmatch, regmatch_t pmatch[], int eflags) { return regexec (preg, string, nmatch, pmatch, @@ -346,7 +318,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, Idx start, regoff_t range, struct re_registers *regs, @@ -357,9 +328,8 @@ re_search_2_stub (struct re_pattern_buffer *bufp, const char *string1, Idx len; char *s = NULL; - if (BE ((length1 < 0 || length2 < 0 || stop < 0 - || INT_ADD_WRAPV (length1, length2, &len)), - 0)) + if (__glibc_unlikely ((length1 < 0 || length2 < 0 || stop < 0 + || INT_ADD_WRAPV (length1, length2, &len)))) return -2; /* Concatenate the strings. */ @@ -368,7 +338,7 @@ re_search_2_stub (struct re_pattern_buffer *bufp, const char *string1, { s = re_malloc (char, len); - if (BE (s == NULL, 0)) + if (__glibc_unlikely (s == NULL)) return -2; #ifdef _LIBC memcpy (__mempcpy (s, string1, length1), string2, length2); @@ -395,7 +365,6 @@ re_search_2_stub (struct re_pattern_buffer *bufp, const char *string1, 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, bool ret_len) @@ -409,11 +378,13 @@ re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length, Idx last_start = start + range; /* Check for out-of-range. */ - if (BE (start < 0 || start > length, 0)) + if (__glibc_unlikely (start < 0 || start > length)) return -1; - if (BE (length < last_start || (0 <= range && last_start < start), 0)) + if (__glibc_unlikely (length < last_start + || (0 <= range && last_start < start))) last_start = length; - else if (BE (last_start < 0 || (range < 0 && start <= last_start), 0)) + else if (__glibc_unlikely (last_start < 0 + || (range < 0 && start <= last_start))) last_start = 0; lock_lock (dfa->lock); @@ -425,17 +396,17 @@ re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length, if (start < last_start && bufp->fastmap != NULL && !bufp->fastmap_accurate) re_compile_fastmap (bufp); - if (BE (bufp->no_sub, 0)) + if (__glibc_unlikely (bufp->no_sub)) regs = NULL; /* We need at least 1 register. */ if (regs == NULL) nregs = 1; - else if (BE (bufp->regs_allocated == REGS_FIXED - && regs->num_regs <= bufp->re_nsub, 0)) + else if (__glibc_unlikely (bufp->regs_allocated == REGS_FIXED + && regs->num_regs <= bufp->re_nsub)) { nregs = regs->num_regs; - if (BE (nregs < 1, 0)) + if (__glibc_unlikely (nregs < 1)) { /* Nothing can be copied to regs. */ regs = NULL; @@ -445,7 +416,7 @@ re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length, else nregs = bufp->re_nsub + 1; pmatch = re_malloc (regmatch_t, nregs); - if (BE (pmatch == NULL, 0)) + if (__glibc_unlikely (pmatch == NULL)) { rval = -2; goto out; @@ -464,11 +435,11 @@ re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length, /* If caller wants register contents data back, copy them. */ bufp->regs_allocated = re_copy_regs (regs, pmatch, nregs, bufp->regs_allocated); - if (BE (bufp->regs_allocated == REGS_UNALLOCATED, 0)) + if (__glibc_unlikely (bufp->regs_allocated == REGS_UNALLOCATED)) rval = -2; } - if (BE (rval == 0, 1)) + if (__glibc_likely (rval == 0)) { if (ret_len) { @@ -485,7 +456,6 @@ re_search_stub (struct re_pattern_buffer *bufp, const char *string, Idx length, } static unsigned -internal_function re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, Idx nregs, int regs_allocated) { @@ -499,10 +469,10 @@ re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, Idx nregs, if (regs_allocated == REGS_UNALLOCATED) { /* No. So allocate them with malloc. */ regs->start = re_malloc (regoff_t, need_regs); - if (BE (regs->start == NULL, 0)) + if (__glibc_unlikely (regs->start == NULL)) return REGS_UNALLOCATED; regs->end = re_malloc (regoff_t, need_regs); - if (BE (regs->end == NULL, 0)) + if (__glibc_unlikely (regs->end == NULL)) { re_free (regs->start); return REGS_UNALLOCATED; @@ -513,14 +483,14 @@ re_copy_regs (struct re_registers *regs, regmatch_t *pmatch, Idx nregs, { /* Yes. If we need more elements than were already allocated, reallocate them. If we need fewer, just leave it alone. */ - if (BE (need_regs > regs->num_regs, 0)) + if (__glibc_unlikely (need_regs > regs->num_regs)) { regoff_t *new_start = re_realloc (regs->start, regoff_t, need_regs); regoff_t *new_end; - if (BE (new_start == NULL, 0)) + if (__glibc_unlikely (new_start == NULL)) return REGS_UNALLOCATED; new_end = re_realloc (regs->end, regoff_t, need_regs); - if (BE (new_end == NULL, 0)) + if (__glibc_unlikely (new_end == NULL)) { re_free (new_start); return REGS_UNALLOCATED; @@ -611,7 +581,7 @@ re_exec (const char *s) (0 <= LAST_START && LAST_START <= LENGTH) */ static reg_errcode_t -__attribute_warn_unused_result__ internal_function +__attribute_warn_unused_result__ re_search_internal (const regex_t *preg, const char *string, Idx length, Idx start, Idx last_start, Idx stop, size_t nmatch, regmatch_t pmatch[], int eflags) @@ -646,9 +616,10 @@ re_search_internal (const regex_t *preg, const char *string, Idx length, nmatch -= extra_nmatch; /* Check if the DFA haven't been compiled. */ - if (BE (preg->used == 0 || dfa->init_state == NULL - || dfa->init_state_word == NULL || dfa->init_state_nl == NULL - || dfa->init_state_begbuf == NULL, 0)) + if (__glibc_unlikely (preg->used == 0 || dfa->init_state == NULL + || dfa->init_state_word == NULL + || dfa->init_state_nl == NULL + || dfa->init_state_begbuf == NULL)) return REG_NOMATCH; #ifdef DEBUG @@ -675,14 +646,14 @@ re_search_internal (const regex_t *preg, const char *string, Idx length, err = re_string_allocate (&mctx.input, string, length, dfa->nodes_len + 1, preg->translate, (preg->syntax & RE_ICASE) != 0, dfa); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) goto free_return; mctx.input.stop = stop; mctx.input.raw_stop = stop; mctx.input.newline_anchor = preg->newline_anchor; err = match_ctx_init (&mctx, eflags, dfa->nbackref * 2); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) goto free_return; /* We will log all the DFA states through which the dfa pass, @@ -692,15 +663,15 @@ re_search_internal (const regex_t *preg, const char *string, Idx length, if (nmatch > 1 || dfa->has_mb_node) { /* Avoid overflow. */ - if (BE ((MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) - <= mctx.input.bufs_len), 0)) + if (__glibc_unlikely ((MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) + <= mctx.input.bufs_len))) { err = REG_ESPACE; goto free_return; } mctx.state_log = re_malloc (re_dfastate_t *, mctx.input.bufs_len + 1); - if (BE (mctx.state_log == NULL, 0)) + if (__glibc_unlikely (mctx.state_log == NULL)) { err = REG_ESPACE; goto free_return; @@ -744,19 +715,19 @@ re_search_internal (const regex_t *preg, const char *string, Idx length, case 7: /* Fastmap with single-byte translation, match forward. */ - while (BE (match_first < right_lim, 1) + while (__glibc_likely (match_first < right_lim) && !fastmap[t[(unsigned char) string[match_first]]]) ++match_first; goto forward_match_found_start_or_reached_end; case 6: /* Fastmap without translation, match forward. */ - while (BE (match_first < right_lim, 1) + while (__glibc_likely (match_first < right_lim) && !fastmap[(unsigned char) string[match_first]]) ++match_first; forward_match_found_start_or_reached_end: - if (BE (match_first == right_lim, 0)) + if (__glibc_unlikely (match_first == right_lim)) { ch = match_first >= length ? 0 : (unsigned char) string[match_first]; @@ -789,11 +760,12 @@ re_search_internal (const regex_t *preg, const char *string, Idx length, /* If MATCH_FIRST is out of the valid range, reconstruct the buffers. */ __re_size_t offset = match_first - mctx.input.raw_mbs_idx; - if (BE (offset >= (__re_size_t) mctx.input.valid_raw_len, 0)) + if (__glibc_unlikely (offset + >= (__re_size_t) mctx.input.valid_raw_len)) { err = re_string_reconstruct (&mctx.input, match_first, eflags); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) goto free_return; offset = match_first - mctx.input.raw_mbs_idx; @@ -817,7 +789,7 @@ re_search_internal (const regex_t *preg, const char *string, Idx length, /* Reconstruct the buffers so that the matcher can assume that the matching starts from the beginning of the buffer. */ err = re_string_reconstruct (&mctx.input, match_first, eflags); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) goto free_return; #ifdef RE_ENABLE_I18N @@ -834,7 +806,7 @@ re_search_internal (const regex_t *preg, const char *string, Idx length, start <= last_start ? &match_first : NULL); if (match_last != -1) { - if (BE (match_last == -2, 0)) + if (__glibc_unlikely (match_last == -2)) { err = REG_ESPACE; goto free_return; @@ -854,7 +826,7 @@ re_search_internal (const regex_t *preg, const char *string, Idx length, err = prune_impossible_nodes (&mctx); if (err == REG_NOERROR) break; - if (BE (err != REG_NOMATCH, 0)) + if (__glibc_unlikely (err != REG_NOMATCH)) goto free_return; match_last = -1; } @@ -891,7 +863,7 @@ re_search_internal (const regex_t *preg, const char *string, Idx length, { err = set_regs (preg, &mctx, nmatch, pmatch, dfa->has_plural_match && dfa->nbackref > 0); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) goto free_return; } @@ -902,7 +874,7 @@ re_search_internal (const regex_t *preg, const char *string, Idx length, if (pmatch[reg_idx].rm_so != -1) { #ifdef RE_ENABLE_I18N - if (BE (mctx.input.offsets_needed != 0, 0)) + if (__glibc_unlikely (mctx.input.offsets_needed != 0)) { pmatch[reg_idx].rm_so = (pmatch[reg_idx].rm_so == mctx.input.valid_len @@ -945,7 +917,7 @@ re_search_internal (const regex_t *preg, const char *string, Idx length, } 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; @@ -961,11 +933,12 @@ prune_impossible_nodes (re_match_context_t *mctx) halt_node = mctx->last_node; /* Avoid overflow. */ - if (BE (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) <= match_last, 0)) + if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) + <= match_last)) return REG_ESPACE; sifted_states = re_malloc (re_dfastate_t *, match_last + 1); - if (BE (sifted_states == NULL, 0)) + if (__glibc_unlikely (sifted_states == NULL)) { ret = REG_ESPACE; goto free_return; @@ -973,7 +946,7 @@ prune_impossible_nodes (re_match_context_t *mctx) if (dfa->nbackref) { lim_states = re_malloc (re_dfastate_t *, match_last + 1); - if (BE (lim_states == NULL, 0)) + if (__glibc_unlikely (lim_states == NULL)) { ret = REG_ESPACE; goto free_return; @@ -986,7 +959,7 @@ prune_impossible_nodes (re_match_context_t *mctx) match_last); ret = sift_states_backward (mctx, &sctx); re_node_set_free (&sctx.limits); - if (BE (ret != REG_NOERROR, 0)) + if (__glibc_unlikely (ret != REG_NOERROR)) goto free_return; if (sifted_states[0] != NULL || lim_states[0] != NULL) break; @@ -1008,7 +981,7 @@ prune_impossible_nodes (re_match_context_t *mctx) match_last + 1); re_free (lim_states); lim_states = NULL; - if (BE (ret != REG_NOERROR, 0)) + if (__glibc_unlikely (ret != REG_NOERROR)) goto free_return; } else @@ -1016,7 +989,7 @@ prune_impossible_nodes (re_match_context_t *mctx) sift_ctx_init (&sctx, sifted_states, lim_states, halt_node, match_last); ret = sift_states_backward (mctx, &sctx); re_node_set_free (&sctx.limits); - if (BE (ret != REG_NOERROR, 0)) + if (__glibc_unlikely (ret != REG_NOERROR)) goto free_return; if (sifted_states[0] == NULL) { @@ -1041,7 +1014,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)) acquire_init_state_context (reg_errcode_t *err, const re_match_context_t *mctx, Idx idx) { @@ -1083,7 +1056,7 @@ acquire_init_state_context (reg_errcode_t *err, const re_match_context_t *mctx, index of the buffer. */ static Idx -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ check_matching (re_match_context_t *mctx, bool fl_longest_match, Idx *p_match_first) { @@ -1099,7 +1072,7 @@ check_matching (re_match_context_t *mctx, bool fl_longest_match, err = REG_NOERROR; cur_state = acquire_init_state_context (&err, mctx, cur_str_idx); /* An initial state must not be NULL (invalid). */ - if (BE (cur_state == NULL, 0)) + if (__glibc_unlikely (cur_state == NULL)) { assert (err == REG_ESPACE); return -2; @@ -1111,24 +1084,24 @@ check_matching (re_match_context_t *mctx, bool fl_longest_match, /* Check OP_OPEN_SUBEXP in the initial state in case that we use them later. E.g. Processing back references. */ - if (BE (dfa->nbackref, 0)) + if (__glibc_unlikely (dfa->nbackref)) { at_init_state = false; err = check_subexp_matching_top (mctx, &cur_state->nodes, 0); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; if (cur_state->has_backref) { err = transit_state_bkref (mctx, &cur_state->nodes); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; } } } /* If the RE accepts NULL string. */ - if (BE (cur_state->halt, 0)) + if (__glibc_unlikely (cur_state->halt)) { if (!cur_state->has_constraint || check_halt_state_context (mctx, cur_state, cur_str_idx)) @@ -1148,13 +1121,13 @@ 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 ((__glibc_unlikely (next_char_idx >= mctx->input.bufs_len) && mctx->input.bufs_len < mctx->input.len) - || (BE (next_char_idx >= mctx->input.valid_len, 0) + || (__glibc_unlikely (next_char_idx >= mctx->input.valid_len) && mctx->input.valid_len < mctx->input.len)) { err = extend_buffers (mctx, next_char_idx + 1); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) { assert (err == REG_ESPACE); return -2; @@ -1170,7 +1143,7 @@ check_matching (re_match_context_t *mctx, bool fl_longest_match, /* Reached the invalid state or an error. Try to recover a valid state using the state log, if available and if we have not already found a valid (even if not the longest) match. */ - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return -2; if (mctx->state_log == NULL @@ -1179,7 +1152,7 @@ check_matching (re_match_context_t *mctx, bool fl_longest_match, break; } - if (BE (at_init_state, 0)) + if (__glibc_unlikely (at_init_state)) { if (old_state == cur_state) next_start_idx = next_char_idx; @@ -1216,7 +1189,6 @@ check_matching (re_match_context_t *mctx, bool fl_longest_match, /* Check NODE match the current context. */ static bool -internal_function check_halt_node_context (const re_dfa_t *dfa, Idx node, unsigned int context) { re_token_type_t type = dfa->nodes[node].type; @@ -1235,7 +1207,6 @@ check_halt_node_context (const re_dfa_t *dfa, Idx node, unsigned int context) match the context, return the node. */ static Idx -internal_function check_halt_state_context (const re_match_context_t *mctx, const re_dfastate_t *state, Idx idx) { @@ -1257,7 +1228,6 @@ check_halt_state_context (const re_match_context_t *mctx, return -1 in case of errors. */ static Idx -internal_function proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs, Idx *pidx, Idx node, re_node_set *eps_via_nodes, struct re_fail_stack_t *fs) @@ -1271,7 +1241,7 @@ proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs, re_node_set *edests = &dfa->edests[node]; Idx dest_node; ok = re_node_set_insert (eps_via_nodes, node); - if (BE (! ok, 0)) + if (__glibc_unlikely (! ok)) return -2; /* Pick up a valid destination, or return -1 if none is found. */ @@ -1333,7 +1303,7 @@ proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs, { Idx dest_node; ok = re_node_set_insert (eps_via_nodes, node); - if (BE (! ok, 0)) + if (__glibc_unlikely (! ok)) return -2; dest_node = dfa->edests[node].elems[0]; if (re_node_set_contains (&mctx->state_log[*pidx]->nodes, @@ -1359,7 +1329,7 @@ proceed_next_node (const re_match_context_t *mctx, Idx nregs, regmatch_t *regs, } static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ push_fail_stack (struct re_fail_stack_t *fs, Idx str_idx, Idx dest_node, Idx nregs, regmatch_t *regs, re_node_set *eps_via_nodes) { @@ -1368,8 +1338,8 @@ push_fail_stack (struct re_fail_stack_t *fs, Idx str_idx, Idx dest_node, if (fs->num == fs->alloc) { struct re_fail_stack_ent_t *new_array; - new_array = realloc (fs->stack, (sizeof (struct re_fail_stack_ent_t) - * fs->alloc * 2)); + new_array = re_realloc (fs->stack, struct re_fail_stack_ent_t, + fs->alloc * 2); if (new_array == NULL) return REG_ESPACE; fs->alloc *= 2; @@ -1386,7 +1356,6 @@ push_fail_stack (struct re_fail_stack_t *fs, Idx str_idx, Idx dest_node, } static Idx -internal_function pop_fail_stack (struct re_fail_stack_t *fs, Idx *pidx, Idx nregs, regmatch_t *regs, re_node_set *eps_via_nodes) { @@ -1406,7 +1375,7 @@ pop_fail_stack (struct re_fail_stack_t *fs, Idx *pidx, Idx nregs, pmatch[i].rm_so == pmatch[i].rm_eo == -1 for 0 < i < nmatch. */ static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__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) { @@ -1484,9 +1453,9 @@ set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch, cur_node = proceed_next_node (mctx, nmatch, pmatch, &idx, cur_node, &eps_via_nodes, fs); - if (BE (cur_node < 0, 0)) + if (__glibc_unlikely (cur_node < 0)) { - if (BE (cur_node == -2, 0)) + if (__glibc_unlikely (cur_node == -2)) { re_node_set_free (&eps_via_nodes); if (prev_idx_match_malloced) @@ -1513,7 +1482,6 @@ set_regs (const regex_t *preg, const re_match_context_t *mctx, size_t nmatch, } static reg_errcode_t -internal_function free_fail_stack_return (struct re_fail_stack_t *fs) { if (fs) @@ -1530,7 +1498,6 @@ free_fail_stack_return (struct re_fail_stack_t *fs) } static void -internal_function update_regs (const re_dfa_t *dfa, regmatch_t *pmatch, regmatch_t *prev_idx_match, Idx cur_node, Idx cur_idx, Idx nmatch) { @@ -1602,7 +1569,6 @@ update_regs (const re_dfa_t *dfa, regmatch_t *pmatch, ((state) != NULL && re_node_set_contains (&(state)->nodes, node)) static reg_errcode_t -internal_function sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx) { reg_errcode_t err; @@ -1617,10 +1583,10 @@ sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx) /* Build sifted state_log[str_idx]. It has the nodes which can epsilon transit to the last_node and the last_node itself. */ err = re_node_set_init_1 (&cur_dest, sctx->last_node); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) goto free_return; /* Then check each states in the state_log. */ @@ -1641,7 +1607,7 @@ sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx) if (mctx->state_log[str_idx]) { err = build_sifted_states (mctx, sctx, str_idx, &cur_dest); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) goto free_return; } @@ -1650,7 +1616,7 @@ sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx) - It is in CUR_SRC. And update state_log. */ err = update_cur_sifted_state (mctx, sctx, str_idx, &cur_dest); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) goto free_return; } err = REG_NOERROR; @@ -1660,7 +1626,7 @@ sift_states_backward (const re_match_context_t *mctx, re_sift_context_t *sctx) } static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, re_node_set *cur_dest) { @@ -1712,7 +1678,7 @@ build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx, continue; } ok = re_node_set_insert (cur_dest, prev_node); - if (BE (! ok, 0)) + if (__glibc_unlikely (! ok)) return REG_ESPACE; } @@ -1722,7 +1688,6 @@ build_sifted_states (const re_match_context_t *mctx, re_sift_context_t *sctx, /* Helper functions. */ static reg_errcode_t -internal_function clean_state_log_if_needed (re_match_context_t *mctx, Idx next_state_log_idx) { Idx top = mctx->state_log_top; @@ -1734,7 +1699,7 @@ clean_state_log_if_needed (re_match_context_t *mctx, Idx next_state_log_idx) { reg_errcode_t err; err = extend_buffers (mctx, next_state_log_idx + 1); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; } @@ -1748,7 +1713,6 @@ clean_state_log_if_needed (re_match_context_t *mctx, Idx next_state_log_idx) } static reg_errcode_t -internal_function merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst, re_dfastate_t **src, Idx num) { @@ -1763,11 +1727,11 @@ merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst, re_node_set merged_set; err = re_node_set_init_union (&merged_set, &dst[st_idx]->nodes, &src[st_idx]->nodes); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; dst[st_idx] = re_acquire_state (&err, dfa, &merged_set); re_node_set_free (&merged_set); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; } } @@ -1775,7 +1739,6 @@ merge_state_array (const re_dfa_t *dfa, re_dfastate_t **dst, } static reg_errcode_t -internal_function update_cur_sifted_state (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, re_node_set *dest_nodes) @@ -1795,7 +1758,7 @@ update_cur_sifted_state (const re_match_context_t *mctx, /* At first, add the nodes which can epsilon transit to a node in DEST_NODE. */ err = add_epsilon_src_nodes (dfa, dest_nodes, candidates); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; /* Then, check the limitations in the current sift_context. */ @@ -1803,27 +1766,27 @@ update_cur_sifted_state (const re_match_context_t *mctx, { err = check_subexp_limits (dfa, dest_nodes, candidates, &sctx->limits, mctx->bkref_ents, str_idx); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; } } sctx->sifted_states[str_idx] = re_acquire_state (&err, dfa, dest_nodes); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; } if (candidates && mctx->state_log[str_idx]->has_backref) { err = sift_states_bkref (mctx, sctx, str_idx, candidates); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; } return REG_NOERROR; } static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes, const re_node_set *candidates) { @@ -1831,19 +1794,19 @@ add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes, Idx i; re_dfastate_t *state = re_acquire_state (&err, dfa, dest_nodes); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; if (!state->inveclosure.alloc) { err = re_node_set_alloc (&state->inveclosure, dest_nodes->nelem); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return REG_ESPACE; for (i = 0; i < dest_nodes->nelem; i++) { err = re_node_set_merge (&state->inveclosure, dfa->inveclosures + dest_nodes->elems[i]); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return REG_ESPACE; } } @@ -1852,7 +1815,6 @@ add_epsilon_src_nodes (const re_dfa_t *dfa, re_node_set *dest_nodes, } static reg_errcode_t -internal_function sub_epsilon_src_nodes (const re_dfa_t *dfa, Idx node, re_node_set *dest_nodes, const re_node_set *candidates) { @@ -1879,7 +1841,7 @@ sub_epsilon_src_nodes (const re_dfa_t *dfa, Idx node, re_node_set *dest_nodes, { err = re_node_set_add_intersect (&except_nodes, candidates, dfa->inveclosures + cur_node); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) { re_node_set_free (&except_nodes); return err; @@ -1901,7 +1863,6 @@ sub_epsilon_src_nodes (const re_dfa_t *dfa, Idx node, re_node_set *dest_nodes, } static bool -internal_function check_dst_limits (const re_match_context_t *mctx, const re_node_set *limits, Idx dst_node, Idx dst_idx, Idx src_node, Idx src_idx) { @@ -1937,7 +1898,6 @@ check_dst_limits (const re_match_context_t *mctx, const re_node_set *limits, } static int -internal_function check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries, Idx subexp_idx, Idx from_node, Idx bkref_idx) { @@ -2019,7 +1979,6 @@ check_dst_limits_calc_pos_1 (const re_match_context_t *mctx, int boundaries, } static int -internal_function check_dst_limits_calc_pos (const re_match_context_t *mctx, Idx limit, Idx subexp_idx, Idx from_node, Idx str_idx, Idx bkref_idx) @@ -2049,7 +2008,6 @@ check_dst_limits_calc_pos (const re_match_context_t *mctx, Idx limit, which are against limitations from DEST_NODES. */ static reg_errcode_t -internal_function check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, const re_node_set *candidates, re_node_set *limits, struct re_backref_cache_entry *bkref_ents, Idx str_idx) @@ -2089,7 +2047,7 @@ check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, { err = sub_epsilon_src_nodes (dfa, ops_node, dest_nodes, candidates); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; } @@ -2107,7 +2065,7 @@ check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, Remove it form the current sifted state. */ err = sub_epsilon_src_nodes (dfa, node, dest_nodes, candidates); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; --node_idx; } @@ -2127,7 +2085,7 @@ check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, Remove it form the current sifted state. */ err = sub_epsilon_src_nodes (dfa, node, dest_nodes, candidates); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; } } @@ -2137,7 +2095,7 @@ check_subexp_limits (const re_dfa_t *dfa, re_node_set *dest_nodes, } static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx str_idx, const re_node_set *candidates) { @@ -2193,27 +2151,27 @@ sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx, { local_sctx = *sctx; err = re_node_set_init_copy (&local_sctx.limits, &sctx->limits); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) goto free_return; } local_sctx.last_node = node; local_sctx.last_str_idx = str_idx; ok = re_node_set_insert (&local_sctx.limits, enabled_idx); - if (BE (! ok, 0)) + if (__glibc_unlikely (! ok)) { err = REG_ESPACE; goto free_return; } cur_state = local_sctx.sifted_states[str_idx]; err = sift_states_backward (mctx, &local_sctx); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) goto free_return; if (sctx->limited_states != NULL) { err = merge_state_array (dfa, sctx->limited_states, local_sctx.sifted_states, str_idx + 1); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) goto free_return; } local_sctx.sifted_states[str_idx] = cur_state; @@ -2237,7 +2195,6 @@ sift_states_bkref (const re_match_context_t *mctx, re_sift_context_t *sctx, #ifdef RE_ENABLE_I18N static int -internal_function sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx, Idx node_idx, Idx str_idx, Idx max_str_idx) { @@ -2267,7 +2224,7 @@ sift_states_iter_mb (const re_match_context_t *mctx, re_sift_context_t *sctx, update the destination of STATE_LOG. */ static re_dfastate_t * -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ transit_state (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *state) { @@ -2276,10 +2233,10 @@ transit_state (reg_errcode_t *err, re_match_context_t *mctx, #ifdef RE_ENABLE_I18N /* If the current state can accept multibyte. */ - if (BE (state->accept_mb, 0)) + if (__glibc_unlikely (state->accept_mb)) { *err = transit_state_mb (mctx, state); - if (BE (*err != REG_NOERROR, 0)) + if (__glibc_unlikely (*err != REG_NOERROR)) return NULL; } #endif /* RE_ENABLE_I18N */ @@ -2296,11 +2253,11 @@ transit_state (reg_errcode_t *err, re_match_context_t *mctx, for (;;) { trtable = state->trtable; - if (BE (trtable != NULL, 1)) + if (__glibc_likely (trtable != NULL)) return trtable[ch]; trtable = state->word_trtable; - if (BE (trtable != NULL, 1)) + if (__glibc_likely (trtable != NULL)) { unsigned int context; context @@ -2325,7 +2282,6 @@ transit_state (reg_errcode_t *err, re_match_context_t *mctx, /* Update the state_log if we need */ static re_dfastate_t * -internal_function merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, re_dfastate_t *next_state) { @@ -2357,7 +2313,7 @@ merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, table_nodes = next_state->entrance_nodes; *err = re_node_set_init_union (&next_nodes, table_nodes, log_nodes); - if (BE (*err != REG_NOERROR, 0)) + if (__glibc_unlikely (*err != REG_NOERROR)) return NULL; } else @@ -2377,21 +2333,21 @@ merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, re_node_set_free (&next_nodes); } - if (BE (dfa->nbackref, 0) && next_state != NULL) + if (__glibc_unlikely (dfa->nbackref) && next_state != NULL) { /* Check OP_OPEN_SUBEXP in the current state in case that we use them later. We must check them here, since the back references in the next state might use them. */ *err = check_subexp_matching_top (mctx, &next_state->nodes, cur_idx); - if (BE (*err != REG_NOERROR, 0)) + if (__glibc_unlikely (*err != REG_NOERROR)) return NULL; /* If the next state has back references. */ if (next_state->has_backref) { *err = transit_state_bkref (mctx, &next_state->nodes); - if (BE (*err != REG_NOERROR, 0)) + if (__glibc_unlikely (*err != REG_NOERROR)) return NULL; next_state = mctx->state_log[cur_idx]; } @@ -2404,7 +2360,6 @@ merge_state_with_log (reg_errcode_t *err, re_match_context_t *mctx, multi-byte match, then look in the log for a state from which to restart matching. */ static re_dfastate_t * -internal_function find_recover_state (reg_errcode_t *err, re_match_context_t *mctx) { re_dfastate_t *cur_state; @@ -2435,7 +2390,6 @@ find_recover_state (reg_errcode_t *err, re_match_context_t *mctx) corresponding back references. */ static reg_errcode_t -internal_function check_subexp_matching_top (re_match_context_t *mctx, re_node_set *cur_nodes, Idx str_idx) { @@ -2457,7 +2411,7 @@ check_subexp_matching_top (re_match_context_t *mctx, re_node_set *cur_nodes, & ((bitset_word_t) 1 << dfa->nodes[node].opr.idx))) { err = match_ctx_add_subtop (mctx, node, str_idx); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; } } @@ -2479,7 +2433,7 @@ transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx, unsigned int context; *err = re_node_set_alloc (&next_nodes, state->nodes.nelem + 1); - if (BE (*err != REG_NOERROR, 0)) + if (__glibc_unlikely (*err != REG_NOERROR)) return NULL; for (node_cnt = 0; node_cnt < state->nodes.nelem; ++node_cnt) { @@ -2488,7 +2442,7 @@ transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx, { *err = re_node_set_merge (&next_nodes, dfa->eclosures + dfa->nexts[cur_node]); - if (BE (*err != REG_NOERROR, 0)) + if (__glibc_unlikely (*err != REG_NOERROR)) { re_node_set_free (&next_nodes); return NULL; @@ -2508,7 +2462,6 @@ transit_state_sb (reg_errcode_t *err, re_match_context_t *mctx, #ifdef RE_ENABLE_I18N static reg_errcode_t -internal_function transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate) { const re_dfa_t *const dfa = mctx->dfa; @@ -2548,7 +2501,7 @@ transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate) mctx->max_mb_elem_len = ((mctx->max_mb_elem_len < naccepted) ? naccepted : mctx->max_mb_elem_len); err = clean_state_log_if_needed (mctx, dest_idx); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; #ifdef DEBUG assert (dfa->nexts[cur_node_idx] != -1); @@ -2562,7 +2515,7 @@ transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate) { err = re_node_set_init_union (&dest_nodes, dest_state->entrance_nodes, new_nodes); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; } context = re_string_context_at (&mctx->input, dest_idx - 1, @@ -2571,7 +2524,8 @@ transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate) = re_acquire_state_context (&err, dfa, &dest_nodes, context); if (dest_state != NULL) re_node_set_free (&dest_nodes); - if (BE (mctx->state_log[dest_idx] == NULL && err != REG_NOERROR, 0)) + if (__glibc_unlikely (mctx->state_log[dest_idx] == NULL + && err != REG_NOERROR)) return err; } return REG_NOERROR; @@ -2579,7 +2533,6 @@ transit_state_mb (re_match_context_t *mctx, re_dfastate_t *pstate) #endif /* RE_ENABLE_I18N */ static reg_errcode_t -internal_function transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes) { const re_dfa_t *const dfa = mctx->dfa; @@ -2611,7 +2564,7 @@ transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes) 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)) + if (__glibc_unlikely (err != REG_NOERROR)) goto free_return; /* And add the epsilon closures (which is 'new_dest_nodes') of @@ -2644,8 +2597,8 @@ transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes) mctx->state_log[dest_str_idx] = re_acquire_state_context (&err, dfa, new_dest_nodes, context); - if (BE (mctx->state_log[dest_str_idx] == NULL - && err != REG_NOERROR, 0)) + if (__glibc_unlikely (mctx->state_log[dest_str_idx] == NULL + && err != REG_NOERROR)) goto free_return; } else @@ -2654,7 +2607,7 @@ transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes) err = re_node_set_init_union (&dest_nodes, dest_state->entrance_nodes, new_dest_nodes); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) { re_node_set_free (&dest_nodes); goto free_return; @@ -2662,8 +2615,8 @@ transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes) mctx->state_log[dest_str_idx] = re_acquire_state_context (&err, dfa, &dest_nodes, context); re_node_set_free (&dest_nodes); - if (BE (mctx->state_log[dest_str_idx] == NULL - && err != REG_NOERROR, 0)) + if (__glibc_unlikely (mctx->state_log[dest_str_idx] == NULL + && err != REG_NOERROR)) goto free_return; } /* We need to check recursively if the backreference can epsilon @@ -2673,10 +2626,10 @@ transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes) { err = check_subexp_matching_top (mctx, new_dest_nodes, cur_str_idx); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) goto free_return; err = transit_state_bkref (mctx, new_dest_nodes); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) goto free_return; } } @@ -2693,7 +2646,7 @@ transit_state_bkref (re_match_context_t *mctx, const re_node_set *nodes) delay these checking for prune_impossible_nodes(). */ static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx) { const re_dfa_t *const dfa = mctx->dfa; @@ -2737,7 +2690,8 @@ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx) at the back reference? */ if (sl_str_diff > 0) { - if (BE (bkref_str_off + sl_str_diff > mctx->input.valid_len, 0)) + if (__glibc_unlikely (bkref_str_off + sl_str_diff + > mctx->input.valid_len)) { /* Not enough chars for a successful match. */ if (bkref_str_off + sl_str_diff > mctx->input.len) @@ -2746,7 +2700,7 @@ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx) err = clean_state_log_if_needed (mctx, bkref_str_off + sl_str_diff); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; buf = (const char *) re_string_get_buffer (&mctx->input); } @@ -2765,7 +2719,7 @@ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx) if (err == REG_NOMATCH) continue; - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; } @@ -2784,14 +2738,14 @@ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx) at the back reference? */ if (sl_str_off > 0) { - if (BE (bkref_str_off >= mctx->input.valid_len, 0)) + if (__glibc_unlikely (bkref_str_off >= mctx->input.valid_len)) { /* If we are at the end of the input, we cannot match. */ if (bkref_str_off >= mctx->input.len) break; err = extend_buffers (mctx, bkref_str_off + 1); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; buf = (const char *) re_string_get_buffer (&mctx->input); @@ -2822,15 +2776,18 @@ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx) OP_CLOSE_SUBEXP); if (err == REG_NOMATCH) continue; - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; sub_last = match_ctx_add_sublast (sub_top, cls_node, sl_str); - if (BE (sub_last == NULL, 0)) + if (__glibc_unlikely (sub_last == NULL)) return REG_ESPACE; err = get_subexp_sub (mctx, sub_top, sub_last, bkref_node, bkref_str_idx); + buf = (const char *) re_string_get_buffer (&mctx->input); if (err == REG_NOMATCH) continue; + if (__glibc_unlikely (err != REG_NOERROR)) + return err; } } return REG_NOERROR; @@ -2843,7 +2800,6 @@ get_subexp (re_match_context_t *mctx, Idx bkref_node, Idx bkref_str_idx) and SUB_LAST. */ static reg_errcode_t -internal_function get_subexp_sub (re_match_context_t *mctx, const re_sub_match_top_t *sub_top, re_sub_match_last_t *sub_last, Idx bkref_node, Idx bkref_str) { @@ -2857,7 +2813,7 @@ get_subexp_sub (re_match_context_t *mctx, const re_sub_match_top_t *sub_top, return err; err = match_ctx_add_entry (mctx, bkref_node, bkref_str, sub_top->str_idx, sub_last->str_idx); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; to_idx = bkref_str + sub_last->str_idx - sub_top->str_idx; return clean_state_log_if_needed (mctx, to_idx); @@ -2872,7 +2828,6 @@ get_subexp_sub (re_match_context_t *mctx, const re_sub_match_top_t *sub_top, E.g. RE: (a){2} */ static Idx -internal_function find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes, Idx subexp_idx, int type) { @@ -2894,7 +2849,7 @@ find_subexp_node (const re_dfa_t *dfa, const re_node_set *nodes, Return REG_NOERROR if it can arrive, or REG_NOMATCH otherwise. */ static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, Idx top_str, Idx last_node, Idx last_str, int type) { @@ -2908,19 +2863,19 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, subexp_num = dfa->nodes[top_node].opr.idx; /* Extend the buffer if we need. */ - if (BE (path->alloc < last_str + mctx->max_mb_elem_len + 1, 0)) + if (__glibc_unlikely (path->alloc < last_str + mctx->max_mb_elem_len + 1)) { re_dfastate_t **new_array; Idx old_alloc = path->alloc; Idx incr_alloc = last_str + mctx->max_mb_elem_len + 1; Idx new_alloc; - if (BE (IDX_MAX - old_alloc < incr_alloc, 0)) + if (__glibc_unlikely (IDX_MAX - old_alloc < incr_alloc)) return REG_ESPACE; new_alloc = old_alloc + incr_alloc; - if (BE (SIZE_MAX / sizeof (re_dfastate_t *) < new_alloc, 0)) + if (__glibc_unlikely (SIZE_MAX / sizeof (re_dfastate_t *) < new_alloc)) return REG_ESPACE; new_array = re_realloc (path->array, re_dfastate_t *, new_alloc); - if (BE (new_array == NULL, 0)) + if (__glibc_unlikely (new_array == NULL)) return REG_ESPACE; path->array = new_array; path->alloc = new_alloc; @@ -2941,10 +2896,10 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, if (str_idx == top_str) { err = re_node_set_init_1 (&next_nodes, top_node); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; err = check_arrival_expand_ecl (dfa, &next_nodes, subexp_num, type); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) { re_node_set_free (&next_nodes); return err; @@ -2956,7 +2911,7 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, if (cur_state && cur_state->has_backref) { err = re_node_set_init_copy (&next_nodes, &cur_state->nodes); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; } else @@ -2968,14 +2923,14 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, { err = expand_bkref_cache (mctx, &next_nodes, str_idx, subexp_num, type); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) { re_node_set_free (&next_nodes); return err; } } cur_state = re_acquire_state_context (&err, dfa, &next_nodes, context); - if (BE (cur_state == NULL && err != REG_NOERROR, 0)) + if (__glibc_unlikely (cur_state == NULL && err != REG_NOERROR)) { re_node_set_free (&next_nodes); return err; @@ -2990,7 +2945,7 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, { err = re_node_set_merge (&next_nodes, &mctx->state_log[str_idx + 1]->nodes); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) { re_node_set_free (&next_nodes); return err; @@ -3001,7 +2956,7 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, err = check_arrival_add_next_nodes (mctx, str_idx, &cur_state->non_eps_nodes, &next_nodes); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) { re_node_set_free (&next_nodes); return err; @@ -3011,14 +2966,14 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, if (next_nodes.nelem) { err = check_arrival_expand_ecl (dfa, &next_nodes, subexp_num, type); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) { re_node_set_free (&next_nodes); return err; } err = expand_bkref_cache (mctx, &next_nodes, str_idx, subexp_num, type); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) { re_node_set_free (&next_nodes); return err; @@ -3026,7 +2981,7 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, } context = re_string_context_at (&mctx->input, str_idx - 1, mctx->eflags); cur_state = re_acquire_state_context (&err, dfa, &next_nodes, context); - if (BE (cur_state == NULL && err != REG_NOERROR, 0)) + if (__glibc_unlikely (cur_state == NULL && err != REG_NOERROR)) { re_node_set_free (&next_nodes); return err; @@ -3059,7 +3014,7 @@ check_arrival (re_match_context_t *mctx, state_array_t *path, Idx top_node, Can't we unify them? */ static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx, re_node_set *cur_nodes, re_node_set *next_nodes) { @@ -3095,22 +3050,22 @@ check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx, if (dest_state) { err = re_node_set_merge (&union_set, &dest_state->nodes); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) { re_node_set_free (&union_set); return err; } } ok = re_node_set_insert (&union_set, next_node); - if (BE (! ok, 0)) + if (__glibc_unlikely (! ok)) { re_node_set_free (&union_set); return REG_ESPACE; } mctx->state_log[next_idx] = re_acquire_state (&err, dfa, &union_set); - if (BE (mctx->state_log[next_idx] == NULL - && err != REG_NOERROR, 0)) + if (__glibc_unlikely (mctx->state_log[next_idx] == NULL + && err != REG_NOERROR)) { re_node_set_free (&union_set); return err; @@ -3122,7 +3077,7 @@ check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx, || check_node_accept (mctx, dfa->nodes + cur_node, str_idx)) { ok = re_node_set_insert (next_nodes, dfa->nexts[cur_node]); - if (BE (! ok, 0)) + if (__glibc_unlikely (! ok)) { re_node_set_free (&union_set); return REG_ESPACE; @@ -3140,7 +3095,6 @@ check_arrival_add_next_nodes (re_match_context_t *mctx, Idx str_idx, */ static reg_errcode_t -internal_function check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes, Idx ex_subexp, int type) { @@ -3151,7 +3105,7 @@ check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes, assert (cur_nodes->nelem); #endif err = re_node_set_alloc (&new_nodes, cur_nodes->nelem); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; /* Create a new node set NEW_NODES with the nodes which are epsilon closures of the node in CUR_NODES. */ @@ -3165,7 +3119,7 @@ check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes, { /* There are no problematic nodes, just merge them. */ err = re_node_set_merge (&new_nodes, eclosure); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) { re_node_set_free (&new_nodes); return err; @@ -3176,7 +3130,7 @@ check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes, /* There are problematic nodes, re-calculate incrementally. */ err = check_arrival_expand_ecl_sub (dfa, &new_nodes, cur_node, ex_subexp, type); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) { re_node_set_free (&new_nodes); return err; @@ -3193,7 +3147,7 @@ check_arrival_expand_ecl (const re_dfa_t *dfa, re_node_set *cur_nodes, problematic append it to DST_NODES. */ static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes, Idx target, Idx ex_subexp, int type) { @@ -3208,13 +3162,13 @@ check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes, if (type == OP_CLOSE_SUBEXP) { ok = re_node_set_insert (dst_nodes, cur_node); - if (BE (! ok, 0)) + if (__glibc_unlikely (! ok)) return REG_ESPACE; } break; } ok = re_node_set_insert (dst_nodes, cur_node); - if (BE (! ok, 0)) + if (__glibc_unlikely (! ok)) return REG_ESPACE; if (dfa->edests[cur_node].nelem == 0) break; @@ -3224,7 +3178,7 @@ check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes, err = check_arrival_expand_ecl_sub (dfa, dst_nodes, dfa->edests[cur_node].elems[1], ex_subexp, type); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; } cur_node = dfa->edests[cur_node].elems[0]; @@ -3238,7 +3192,7 @@ check_arrival_expand_ecl_sub (const re_dfa_t *dfa, re_node_set *dst_nodes, in MCTX->BKREF_ENTS. */ static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, Idx cur_str, Idx subexp_num, int type) { @@ -3276,8 +3230,8 @@ expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, err2 = check_arrival_expand_ecl (dfa, &new_dests, subexp_num, type); err3 = re_node_set_merge (cur_nodes, &new_dests); re_node_set_free (&new_dests); - if (BE (err != REG_NOERROR || err2 != REG_NOERROR - || err3 != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR || err2 != REG_NOERROR + || err3 != REG_NOERROR)) { err = (err != REG_NOERROR ? err : (err2 != REG_NOERROR ? err2 : err3)); @@ -3299,7 +3253,7 @@ expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, err = re_node_set_init_copy (&union_set, &mctx->state_log[to_idx]->nodes); ok = re_node_set_insert (&union_set, next_node); - if (BE (err != REG_NOERROR || ! ok, 0)) + if (__glibc_unlikely (err != REG_NOERROR || ! ok)) { re_node_set_free (&union_set); err = err != REG_NOERROR ? err : REG_ESPACE; @@ -3309,13 +3263,13 @@ expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, else { err = re_node_set_init_1 (&union_set, next_node); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) return err; } mctx->state_log[to_idx] = re_acquire_state (&err, dfa, &union_set); re_node_set_free (&union_set); - if (BE (mctx->state_log[to_idx] == NULL - && err != REG_NOERROR, 0)) + if (__glibc_unlikely (mctx->state_log[to_idx] == NULL + && err != REG_NOERROR)) return err; } } @@ -3327,7 +3281,6 @@ expand_bkref_cache (re_match_context_t *mctx, re_node_set *cur_nodes, Return true if successful. */ static bool -internal_function build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) { reg_errcode_t err; @@ -3359,7 +3312,7 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) else { dests_alloc = re_malloc (struct dests_alloc, 1); - if (BE (dests_alloc == NULL, 0)) + if (__glibc_unlikely (dests_alloc == NULL)) return false; dests_node_malloced = true; } @@ -3372,16 +3325,16 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) /* At first, group all nodes belonging to 'state' into several destinations. */ ndests = group_nodes_into_DFAstates (dfa, state, dests_node, dests_ch); - if (BE (ndests <= 0, 0)) + if (__glibc_unlikely (ndests <= 0)) { if (dests_node_malloced) - free (dests_alloc); + re_free (dests_alloc); /* Return false in case of an error, true otherwise. */ if (ndests == 0) { state->trtable = (re_dfastate_t **) calloc (sizeof (re_dfastate_t *), SBC_MAX); - if (BE (state->trtable == NULL, 0)) + if (__glibc_unlikely (state->trtable == NULL)) return false; return true; } @@ -3389,14 +3342,14 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) } err = re_node_set_alloc (&follows, ndests + 1); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) goto out_free; /* Avoid arithmetic overflow in size calculation. */ - if (BE ((((SIZE_MAX - (sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX) - / (3 * sizeof (re_dfastate_t *))) - < ndests), - 0)) + size_t ndests_max + = ((SIZE_MAX - (sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX) + / (3 * sizeof (re_dfastate_t *))); + if (__glibc_unlikely (ndests_max < ndests)) goto out_free; if (__libc_use_alloca ((sizeof (re_node_set) + sizeof (bitset_t)) * SBC_MAX @@ -3405,18 +3358,17 @@ build_trtable (const re_dfa_t *dfa, re_dfastate_t *state) alloca (ndests * 3 * sizeof (re_dfastate_t *)); else { - dest_states = (re_dfastate_t **) - malloc (ndests * 3 * sizeof (re_dfastate_t *)); - if (BE (dest_states == NULL, 0)) + dest_states = re_malloc (re_dfastate_t *, ndests * 3); + if (__glibc_unlikely (dest_states == NULL)) { out_free: if (dest_states_malloced) - free (dest_states); + re_free (dest_states); re_node_set_free (&follows); for (i = 0; i < ndests; ++i) re_node_set_free (dests_node + i); if (dests_node_malloced) - free (dests_alloc); + re_free (dests_alloc); return false; } dest_states_malloced = true; @@ -3437,12 +3389,12 @@ out_free: if (next_node != -1) { err = re_node_set_merge (&follows, dfa->eclosures + next_node); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) goto out_free; } } dest_states[i] = re_acquire_state_context (&err, dfa, &follows, 0); - if (BE (dest_states[i] == NULL && err != REG_NOERROR, 0)) + if (__glibc_unlikely (dest_states[i] == NULL && err != REG_NOERROR)) goto out_free; /* If the new state has context constraint, build appropriate states for these contexts. */ @@ -3450,7 +3402,8 @@ out_free: { dest_states_word[i] = re_acquire_state_context (&err, dfa, &follows, CONTEXT_WORD); - if (BE (dest_states_word[i] == NULL && err != REG_NOERROR, 0)) + if (__glibc_unlikely (dest_states_word[i] == NULL + && err != REG_NOERROR)) goto out_free; if (dest_states[i] != dest_states_word[i] && dfa->mb_cur_max > 1) @@ -3458,7 +3411,7 @@ out_free: dest_states_nl[i] = re_acquire_state_context (&err, dfa, &follows, CONTEXT_NEWLINE); - if (BE (dest_states_nl[i] == NULL && err != REG_NOERROR, 0)) + if (__glibc_unlikely (dest_states_nl[i] == NULL && err != REG_NOERROR)) goto out_free; } else @@ -3469,7 +3422,7 @@ out_free: bitset_merge (acceptable, dests_ch[i]); } - if (!BE (need_word_trtable, 0)) + if (!__glibc_unlikely (need_word_trtable)) { /* We don't care about whether the following character is a word character, or we are in a single-byte character set so we can @@ -3477,7 +3430,7 @@ out_free: 256-entry transition table. */ trtable = state->trtable = (re_dfastate_t **) calloc (sizeof (re_dfastate_t *), SBC_MAX); - if (BE (trtable == NULL, 0)) + if (__glibc_unlikely (trtable == NULL)) goto out_free; /* For all characters ch...: */ @@ -3485,7 +3438,7 @@ out_free: for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1; elem; mask <<= 1, elem >>= 1, ++ch) - if (BE (elem & 1, 0)) + if (__glibc_unlikely (elem & 1)) { /* There must be exactly one destination which accepts character ch. See group_nodes_into_DFAstates. */ @@ -3508,7 +3461,7 @@ out_free: starting at trtable[SBC_MAX]. */ trtable = state->word_trtable = (re_dfastate_t **) calloc (sizeof (re_dfastate_t *), 2 * SBC_MAX); - if (BE (trtable == NULL, 0)) + if (__glibc_unlikely (trtable == NULL)) goto out_free; /* For all characters ch...: */ @@ -3516,7 +3469,7 @@ out_free: for (ch = i * BITSET_WORD_BITS, elem = acceptable[i], mask = 1; elem; mask <<= 1, elem >>= 1, ++ch) - if (BE (elem & 1, 0)) + if (__glibc_unlikely (elem & 1)) { /* There must be exactly one destination which accepts character ch. See group_nodes_into_DFAstates. */ @@ -3547,14 +3500,14 @@ out_free: } if (dest_states_malloced) - free (dest_states); + re_free (dest_states); re_node_set_free (&follows); for (i = 0; i < ndests; ++i) re_node_set_free (dests_node + i); if (dests_node_malloced) - free (dests_alloc); + re_free (dests_alloc); return true; } @@ -3565,7 +3518,6 @@ out_free: to DEST_CH[i]. This function return the number of destinations. */ static Idx -internal_function group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, re_node_set *dests_node, bitset_t *dests_ch) { @@ -3716,14 +3668,14 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, bitset_copy (dests_ch[ndests], remains); bitset_copy (dests_ch[j], intersec); err = re_node_set_init_copy (dests_node + ndests, &dests_node[j]); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) goto error_return; ++ndests; } /* Put the position in the current group. */ ok = re_node_set_insert (&dests_node[j], cur_nodes->elems[i]); - if (BE (! ok, 0)) + if (__glibc_unlikely (! ok)) goto error_return; /* If all characters are consumed, go to next node. */ @@ -3735,7 +3687,7 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, { bitset_copy (dests_ch[ndests], accepts); err = re_node_set_init_1 (dests_node + ndests, cur_nodes->elems[i]); - if (BE (err != REG_NOERROR, 0)) + if (__glibc_unlikely (err != REG_NOERROR)) goto error_return; ++ndests; bitset_empty (accepts); @@ -3762,7 +3714,6 @@ group_nodes_into_DFAstates (const re_dfa_t *dfa, const re_dfastate_t *state, # endif static int -internal_function check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, const re_string_t *input, Idx str_idx) { @@ -3770,10 +3721,10 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, int char_len, elem_len; Idx i; - if (BE (node->type == OP_UTF8_PERIOD, 0)) + if (__glibc_unlikely (node->type == OP_UTF8_PERIOD)) { unsigned char c = re_string_byte_at (input, str_idx), d; - if (BE (c < 0xc2, 1)) + if (__glibc_likely (c < 0xc2)) return 0; if (str_idx + 2 > input->len) @@ -3937,30 +3888,27 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, indirect = (const int32_t *) _NL_CURRENT (LC_COLLATE, _NL_COLLATE_INDIRECTMB); int32_t idx = findidx (table, indirect, extra, &cp, elem_len); + int32_t rule = idx >> 24; + idx &= 0xffffff; if (idx > 0) - for (i = 0; i < cset->nequiv_classes; ++i) - { - int32_t equiv_class_idx = cset->equiv_classes[i]; - size_t weight_len = weights[idx & 0xffffff]; - if (weight_len == weights[equiv_class_idx & 0xffffff] - && (idx >> 24) == (equiv_class_idx >> 24)) - { - Idx cnt = 0; - - idx &= 0xffffff; - equiv_class_idx &= 0xffffff; - - while (cnt <= weight_len - && (weights[equiv_class_idx + 1 + cnt] - == weights[idx + 1 + cnt])) - ++cnt; - if (cnt > weight_len) - { - match_len = elem_len; - goto check_node_accept_bytes_match; - } - } - } + { + size_t weight_len = weights[idx]; + for (i = 0; i < cset->nequiv_classes; ++i) + { + int32_t equiv_class_idx = cset->equiv_classes[i]; + int32_t equiv_class_rule = equiv_class_idx >> 24; + equiv_class_idx &= 0xffffff; + if (weights[equiv_class_idx] == weight_len + && equiv_class_rule == rule + && memcmp (weights + idx + 1, + weights + equiv_class_idx + 1, + weight_len) == 0) + { + match_len = elem_len; + goto check_node_accept_bytes_match; + } + } + } } } else @@ -3992,7 +3940,6 @@ check_node_accept_bytes (const re_dfa_t *dfa, Idx node_idx, # ifdef _LIBC static unsigned int -internal_function find_collation_sequence_value (const unsigned char *mbs, size_t mbs_len) { uint32_t nrules = _NL_CURRENT_WORD (LC_COLLATE, _NL_COLLATE_NRULES); @@ -4056,7 +4003,6 @@ find_collation_sequence_value (const unsigned char *mbs, size_t mbs_len) byte of the INPUT. */ static bool -internal_function check_node_accept (const re_match_context_t *mctx, const re_token_t *node, Idx idx) { @@ -4106,22 +4052,22 @@ check_node_accept (const re_match_context_t *mctx, const re_token_t *node, /* Extend the buffers, if the buffers have run out. */ static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ extend_buffers (re_match_context_t *mctx, int min_len) { reg_errcode_t ret; re_string_t *pstr = &mctx->input; /* Avoid overflow. */ - if (BE (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) / 2 - <= pstr->bufs_len, 0)) + if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / sizeof (re_dfastate_t *)) / 2 + <= pstr->bufs_len)) return REG_ESPACE; /* 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)) + if (__glibc_unlikely (ret != REG_NOERROR)) return ret; if (mctx->state_log != NULL) @@ -4132,7 +4078,7 @@ extend_buffers (re_match_context_t *mctx, int min_len) does not have the right size. */ re_dfastate_t **new_array = re_realloc (mctx->state_log, re_dfastate_t *, pstr->bufs_len + 1); - if (BE (new_array == NULL, 0)) + if (__glibc_unlikely (new_array == NULL)) return REG_ESPACE; mctx->state_log = new_array; } @@ -4144,7 +4090,7 @@ extend_buffers (re_match_context_t *mctx, int min_len) if (pstr->mb_cur_max > 1) { ret = build_wcs_upper_buffer (pstr); - if (BE (ret != REG_NOERROR, 0)) + if (__glibc_unlikely (ret != REG_NOERROR)) return ret; } else @@ -4172,7 +4118,7 @@ extend_buffers (re_match_context_t *mctx, int min_len) /* Initialize MCTX. */ static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ match_ctx_init (re_match_context_t *mctx, int eflags, Idx n) { mctx->eflags = eflags; @@ -4183,12 +4129,12 @@ 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 (MIN (IDX_MAX, SIZE_MAX / max_object_size) < n, 0)) + if (__glibc_unlikely (MIN (IDX_MAX, SIZE_MAX / max_object_size) < n)) return REG_ESPACE; mctx->bkref_ents = re_malloc (struct re_backref_cache_entry, n); mctx->sub_tops = re_malloc (re_sub_match_top_t *, n); - if (BE (mctx->bkref_ents == NULL || mctx->sub_tops == NULL, 0)) + if (__glibc_unlikely (mctx->bkref_ents == NULL || mctx->sub_tops == NULL)) return REG_ESPACE; } /* Already zero-ed by the caller. @@ -4207,7 +4153,6 @@ match_ctx_init (re_match_context_t *mctx, int eflags, Idx n) of the input, or changes the input string. */ static void -internal_function match_ctx_clean (re_match_context_t *mctx) { Idx st_idx; @@ -4227,7 +4172,7 @@ match_ctx_clean (re_match_context_t *mctx) re_free (top->path->array); re_free (top->path); } - free (top); + re_free (top); } mctx->nsub_tops = 0; @@ -4237,7 +4182,6 @@ match_ctx_clean (re_match_context_t *mctx) /* Free all the memory associated with MCTX. */ static void -internal_function match_ctx_free (re_match_context_t *mctx) { /* First, free all the memory associated with MCTX->SUB_TOPS. */ @@ -4252,7 +4196,7 @@ match_ctx_free (re_match_context_t *mctx) */ static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ match_ctx_add_entry (re_match_context_t *mctx, Idx node, Idx str_idx, Idx from, Idx to) { @@ -4261,7 +4205,7 @@ match_ctx_add_entry (re_match_context_t *mctx, Idx node, Idx str_idx, Idx from, struct re_backref_cache_entry* new_entry; new_entry = re_realloc (mctx->bkref_ents, struct re_backref_cache_entry, mctx->abkref_ents * 2); - if (BE (new_entry == NULL, 0)) + if (__glibc_unlikely (new_entry == NULL)) { re_free (mctx->bkref_ents); return REG_ESPACE; @@ -4301,7 +4245,6 @@ match_ctx_add_entry (re_match_context_t *mctx, Idx node, Idx str_idx, Idx from, found. Note that MCTX->BKREF_ENTS is already sorted by MCTX->STR_IDX. */ static Idx -internal_function search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx) { Idx left, right, mid, last; @@ -4324,26 +4267,26 @@ search_cur_bkref_entry (const re_match_context_t *mctx, Idx str_idx) at STR_IDX. */ static reg_errcode_t -internal_function __attribute_warn_unused_result__ +__attribute_warn_unused_result__ match_ctx_add_subtop (re_match_context_t *mctx, Idx node, Idx str_idx) { #ifdef DEBUG assert (mctx->sub_tops != NULL); assert (mctx->asub_tops > 0); #endif - if (BE (mctx->nsub_tops == mctx->asub_tops, 0)) + if (__glibc_unlikely (mctx->nsub_tops == mctx->asub_tops)) { Idx new_asub_tops = mctx->asub_tops * 2; re_sub_match_top_t **new_array = re_realloc (mctx->sub_tops, re_sub_match_top_t *, new_asub_tops); - if (BE (new_array == NULL, 0)) + if (__glibc_unlikely (new_array == NULL)) return REG_ESPACE; mctx->sub_tops = new_array; mctx->asub_tops = new_asub_tops; } mctx->sub_tops[mctx->nsub_tops] = calloc (1, sizeof (re_sub_match_top_t)); - if (BE (mctx->sub_tops[mctx->nsub_tops] == NULL, 0)) + if (__glibc_unlikely (mctx->sub_tops[mctx->nsub_tops] == NULL)) return REG_ESPACE; mctx->sub_tops[mctx->nsub_tops]->node = node; mctx->sub_tops[mctx->nsub_tops++]->str_idx = str_idx; @@ -4354,23 +4297,22 @@ match_ctx_add_subtop (re_match_context_t *mctx, Idx node, Idx str_idx) at STR_IDX, whose corresponding OP_OPEN_SUBEXP is SUB_TOP. */ static re_sub_match_last_t * -internal_function match_ctx_add_sublast (re_sub_match_top_t *subtop, Idx node, Idx str_idx) { re_sub_match_last_t *new_entry; - if (BE (subtop->nlasts == subtop->alasts, 0)) + if (__glibc_unlikely (subtop->nlasts == subtop->alasts)) { Idx new_alasts = 2 * subtop->alasts + 1; re_sub_match_last_t **new_array = re_realloc (subtop->lasts, re_sub_match_last_t *, new_alasts); - if (BE (new_array == NULL, 0)) + if (__glibc_unlikely (new_array == NULL)) return NULL; subtop->lasts = new_array; subtop->alasts = new_alasts; } new_entry = calloc (1, sizeof (re_sub_match_last_t)); - if (BE (new_entry != NULL, 1)) + if (__glibc_likely (new_entry != NULL)) { subtop->lasts[subtop->nlasts] = new_entry; new_entry->node = node; @@ -4381,7 +4323,6 @@ match_ctx_add_sublast (re_sub_match_top_t *subtop, Idx node, Idx str_idx) } static void -internal_function sift_ctx_init (re_sift_context_t *sctx, re_dfastate_t **sifted_sts, re_dfastate_t **limited_sts, Idx last_node, Idx last_str_idx) { diff --git a/gnu/rename.c b/gnu/rename.c index 9eb32206..9d88e5c6 100644 --- a/gnu/rename.c +++ b/gnu/rename.c @@ -1,6 +1,6 @@ /* Work around rename bugs in some systems. - Copyright (C) 2001-2003, 2005-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2001-2003, 2005-2006, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -23,7 +23,7 @@ #undef rename -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ /* The mingw rename has problems with trailing slashes; it also requires use of native Windows calls to allow atomic renames over existing files. */ diff --git a/gnu/renameat.c b/gnu/renameat.c index 48cee4ba..1ac3f33c 100644 --- a/gnu/renameat.c +++ b/gnu/renameat.c @@ -1,5 +1,5 @@ /* Rename a file relative to open directories. - Copyright 2017 Free Software Foundation, Inc. + Copyright 2017-2019 Free Software Foundation, Inc. This 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,10 +16,10 @@ #include <config.h> #include <stdio.h> -#include "renameat2.h" +#include "renameatu.h" int renameat (int fd1, char const *src, int fd2, char const *dst) { - return renameat2 (fd1, src, fd2, dst, 0); + return renameatu (fd1, src, fd2, dst, 0); } diff --git a/gnu/renameat2.c b/gnu/renameatu.c similarity index 92% rename from gnu/renameat2.c rename to gnu/renameatu.c index 26cde863..7dd5a637 100644 --- a/gnu/renameat2.c +++ b/gnu/renameatu.c @@ -1,5 +1,5 @@ /* Rename a file relative to open directories. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This 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 @@ #include <config.h> -#include "renameat2.h" +#include "renameatu.h" #include <errno.h> #include <stdio.h> @@ -68,16 +68,22 @@ rename_noreplace (char const *src, char const *dst) the restore_cwd fails, then give a diagnostic and exit nonzero. Obey FLAGS when doing the renaming. If FLAGS is zero, this - function is equivalent to renameat (FD1, SRC, FD2, DST). */ + function is equivalent to renameat (FD1, SRC, FD2, DST). + Otherwise, attempt to implement FLAGS even if the implementation is + not atomic; this differs from the GNU/Linux native renameat2, + which fails if it cannot guarantee atomicity. */ int -renameat2 (int fd1, char const *src, int fd2, char const *dst, +renameatu (int fd1, char const *src, int fd2, char const *dst, unsigned int flags) { int ret_val = -1; int err = EINVAL; -#ifdef SYS_renameat2 +#ifdef HAVE_RENAMEAT2 + ret_val = renameat2 (fd1, src, fd2, dst, flags); + err = errno; +#elif defined SYS_renameat2 ret_val = syscall (SYS_renameat2, fd1, src, fd2, dst, flags); err = errno; #elif defined RENAME_EXCL diff --git a/gnu/renameat2.h b/gnu/renameatu.h similarity index 79% rename from gnu/renameat2.h rename to gnu/renameatu.h index 179210f9..b4b1c3c6 100644 --- a/gnu/renameat2.h +++ b/gnu/renameatu.h @@ -1,5 +1,5 @@ /* Rename a file relative to open directories. - Copyright 2017 Free Software Foundation, Inc. + Copyright 2017-2019 Free Software Foundation, Inc. This 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,15 +16,13 @@ /* written by Paul Eggert */ -/* Get RENAME_* macros from linux/fs.h if present, otherwise supply +/* Get RENAME_* macros from <stdio.h> if present, otherwise supply the traditional Linux values. */ -#if HAVE_LINUX_FS_H -# include <linux/fs.h> -#endif +#include <stdio.h> #ifndef RENAME_NOREPLACE # define RENAME_NOREPLACE (1 << 0) # define RENAME_EXCHANGE (1 << 1) # define RENAME_WHITEOUT (1 << 2) #endif -extern int renameat2 (int, char const *, int, char const *, unsigned int); +extern int renameatu (int, char const *, int, char const *, unsigned int); diff --git a/gnu/rewinddir.c b/gnu/rewinddir.c index c477c468..b58a47d5 100644 --- a/gnu/rewinddir.c +++ b/gnu/rewinddir.c @@ -1,5 +1,5 @@ /* Restart reading the entries of a directory from the beginning. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This program is free 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/rmdir.c b/gnu/rmdir.c index 77d5e3e2..1d088222 100644 --- a/gnu/rmdir.c +++ b/gnu/rmdir.c @@ -1,6 +1,6 @@ /* Work around rmdir bugs. - Copyright (C) 1988, 1990, 1999, 2003-2006, 2009-2017 Free Software + Copyright (C) 1988, 1990, 1999, 2003-2006, 2009-2019 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 index 4aa9dfe2..eebfa943 100644 --- a/gnu/root-uid.h +++ b/gnu/root-uid.h @@ -1,6 +1,6 @@ /* The user ID that always has appropriate privileges in the POSIX sense. - Copyright 2012-2017 Free Software Foundation, Inc. + Copyright 2012-2019 Free Software Foundation, Inc. This program is free 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/rpmatch.c b/gnu/rpmatch.c index 72797ead..4c80973d 100644 --- a/gnu/rpmatch.c +++ b/gnu/rpmatch.c @@ -1,7 +1,7 @@ /* Determine whether string value is affirmation or negative response according to current locale's data. - Copyright (C) 1996, 1998, 2000, 2002-2003, 2006-2017 Free Software + Copyright (C) 1996, 1998, 2000, 2002-2003, 2006-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/safe-read.c b/gnu/safe-read.c index 896c115e..e6c54b75 100644 --- a/gnu/safe-read.c +++ b/gnu/safe-read.c @@ -1,6 +1,6 @@ /* An interface to read and write that retries after interrupts. - Copyright (C) 1993-1994, 1998, 2002-2006, 2009-2017 Free Software + Copyright (C) 1993-1994, 1998, 2002-2006, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -37,7 +37,7 @@ # define IS_EINTR(x) 0 #endif -#include <limits.h> +#include "sys-limits.h" #ifdef SAFE_WRITE # define safe_rw safe_write @@ -55,12 +55,6 @@ size_t safe_rw (int fd, void const *buf, size_t count) { - /* Work around a bug in Tru64 5.1. Attempting to read more than - INT_MAX bytes fails with errno == EINVAL. See - <https://lists.gnu.org/r/bug-gnu-utils/2002-04/msg00010.html>. - When decreasing COUNT, keep it block-aligned. */ - enum { BUGGY_READ_MAXIMUM = INT_MAX & ~8191 }; - for (;;) { ssize_t result = rw (fd, buf, count); @@ -69,8 +63,8 @@ safe_rw (int fd, void const *buf, size_t count) return result; else if (IS_EINTR (errno)) continue; - else if (errno == EINVAL && BUGGY_READ_MAXIMUM < count) - count = BUGGY_READ_MAXIMUM; + else if (errno == EINVAL && SYS_BUFSIZE_MAX < count) + count = SYS_BUFSIZE_MAX; else return result; } diff --git a/gnu/safe-read.h b/gnu/safe-read.h index e17a72e1..3f421f6b 100644 --- a/gnu/safe-read.h +++ b/gnu/safe-read.h @@ -1,5 +1,5 @@ /* An interface to read() that retries after interrupts. - Copyright (C) 2002, 2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2002, 2006, 2009-2019 Free Software Foundation, Inc. This program is free 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/safe-write.c b/gnu/safe-write.c index d075df65..a6bbd839 100644 --- a/gnu/safe-write.c +++ b/gnu/safe-write.c @@ -1,5 +1,5 @@ /* An interface to write that retries after interrupts. - Copyright (C) 2002, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2002, 2009-2019 Free Software Foundation, Inc. This program is free 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/safe-write.h b/gnu/safe-write.h index 20edfc5d..0474d528 100644 --- a/gnu/safe-write.h +++ b/gnu/safe-write.h @@ -1,5 +1,5 @@ /* An interface to write() that retries after interrupts. - Copyright (C) 2002, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2002, 2009-2019 Free Software Foundation, Inc. This program is free 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/same-inode.h b/gnu/same-inode.h index 43e8f707..06655b6b 100644 --- a/gnu/same-inode.h +++ b/gnu/same-inode.h @@ -1,6 +1,6 @@ /* Determine whether two stat buffers are known to refer to the same file. - Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2006, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -26,7 +26,7 @@ && (a).st_ino[1] == (b).st_ino[1] \ && (a).st_ino[2] == (b).st_ino[2] \ && (a).st_dev == (b).st_dev) -# elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# elif defined _WIN32 && ! defined __CYGWIN__ /* Native Windows. */ # if _GL_WINDOWS_STAT_INODES /* stat() and fstat() set st_dev and st_ino to 0 if information about diff --git a/gnu/save-cwd.c b/gnu/save-cwd.c index 53767a7e..a67d95d1 100644 --- a/gnu/save-cwd.c +++ b/gnu/save-cwd.c @@ -1,6 +1,6 @@ /* save-cwd.c -- Save and restore current working directory. - Copyright (C) 1995, 1997-1998, 2003-2006, 2009-2017 Free Software + Copyright (C) 1995, 1997-1998, 2003-2006, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/save-cwd.h b/gnu/save-cwd.h index 597c752c..6a780703 100644 --- a/gnu/save-cwd.h +++ b/gnu/save-cwd.h @@ -1,6 +1,6 @@ /* Save and restore current working directory. - Copyright (C) 1995, 1997-1998, 2003, 2009-2017 Free Software Foundation, + Copyright (C) 1995, 1997-1998, 2003, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/savedir.c b/gnu/savedir.c index 9381b3de..07e123d5 100644 --- a/gnu/savedir.c +++ b/gnu/savedir.c @@ -1,6 +1,6 @@ /* savedir.c -- save the list of files in a directory in a string - Copyright (C) 1990, 1997-2001, 2003-2006, 2009-2017 Free Software + Copyright (C) 1990, 1997-2001, 2003-2006, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/savedir.h b/gnu/savedir.h index 23b0ea95..0374d255 100644 --- a/gnu/savedir.h +++ b/gnu/savedir.h @@ -1,6 +1,6 @@ /* Save the list of files in a directory in a string. - Copyright (C) 1997, 1999, 2001, 2003, 2005, 2009-2017 Free Software + Copyright (C) 1997, 1999, 2001, 2003, 2005, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/se-selinux.in.h b/gnu/se-selinux.in.h index 3e4cd158..b68e2c7e 100644 --- a/gnu/se-selinux.in.h +++ b/gnu/se-selinux.in.h @@ -1,5 +1,5 @@ /* Replacement <selinux/selinux.h> for platforms that lack it. - Copyright (C) 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This program is free 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/selinux-at.c b/gnu/selinux-at.c index cd4b5f94..169a3512 100644 --- a/gnu/selinux-at.c +++ b/gnu/selinux-at.c @@ -1,5 +1,5 @@ /* openat-style fd-relative functions for SE Linux - Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2007, 2009-2019 Free Software Foundation, Inc. This program is free 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/selinux-at.h b/gnu/selinux-at.h index 67a33d94..35a1821b 100644 --- a/gnu/selinux-at.h +++ b/gnu/selinux-at.h @@ -1,5 +1,5 @@ /* Prototypes for openat-style fd-relative SELinux functions - Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2007, 2009-2019 Free Software Foundation, Inc. This program is free 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/set-permissions.c b/gnu/set-permissions.c index b30841fc..38cd30a5 100644 --- a/gnu/set-permissions.c +++ b/gnu/set-permissions.c @@ -1,6 +1,6 @@ /* Set permissions of a file. -*- coding: utf-8 -*- - Copyright (C) 2002-2003, 2005-2017 Free Software Foundation, Inc. + Copyright (C) 2002-2003, 2005-2019 Free Software Foundation, Inc. This 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 "acl-internal.h" #if USE_ACL -# if ! defined HAVE_ACL_FROM_MODE && defined HAVE_ACL_FROM_TEXT /* FreeBSD, IRIX, Tru64 */ +# if ! defined HAVE_ACL_FROM_MODE && defined HAVE_ACL_FROM_TEXT /* FreeBSD, IRIX, Tru64, Cygwin >= 2.5 */ # if HAVE_ACL_GET_FILE && !HAVE_ACL_TYPE_EXTENDED static acl_t @@ -32,7 +32,7 @@ acl_from_mode (mode_t mode) { # if HAVE_ACL_FREE_TEXT /* Tru64 */ char acl_text[] = "u::---,g::---,o::---,"; -# else /* FreeBSD, IRIX */ +# else /* FreeBSD, IRIX, Cygwin >= 2.5 */ char acl_text[] = "u::---,g::---,o::---"; # endif @@ -51,7 +51,7 @@ acl_from_mode (mode_t mode) # endif # endif -# if HAVE_FACL && defined GETACL /* Solaris, Cygwin, not HP-UX */ +# if HAVE_FACL && defined GETACL /* Solaris, Cygwin < 2.5, not HP-UX */ static int set_acls_from_mode (const char *name, int desc, mode_t mode, bool *must_chmod) { @@ -229,14 +229,14 @@ set_acls_from_mode (const char *name, int desc, mode_t mode, bool *must_chmod) if (ret < 0 && errno != EINVAL && errno != ENOTSUP) { if (errno == ENOSYS) - { - *must_chmod = true; - return 0; - } + { + *must_chmod = true; + return 0; + } return -1; } if (ret == 0) - return 0; + return 0; } # endif @@ -256,18 +256,18 @@ set_acls_from_mode (const char *name, int desc, mode_t mode, bool *must_chmod) if (desc != -1) ret = facl (desc, SETACL, - sizeof (entries) / sizeof (aclent_t), entries); + sizeof (entries) / sizeof (aclent_t), entries); else ret = acl (name, SETACL, - sizeof (entries) / sizeof (aclent_t), entries); + sizeof (entries) / sizeof (aclent_t), entries); if (ret < 0) { - if (errno == ENOSYS || errno == EOPNOTSUPP) - { - *must_chmod = true; - return 0; - } - return -1; + if (errno == ENOSYS || errno == EOPNOTSUPP) + { + *must_chmod = true; + return 0; + } + return -1; } return 0; } @@ -483,15 +483,15 @@ context_acl_from_mode (struct permission_context *ctx) static int set_acls (struct permission_context *ctx, const char *name, int desc, - int from_mode, bool *must_chmod, bool *acls_set) + int from_mode, bool *must_chmod, bool *acls_set) { int ret = 0; # if HAVE_ACL_GET_FILE /* POSIX 1003.1e (draft 17 -- abandoned) specific version. */ - /* Linux, FreeBSD, Mac OS X, IRIX, Tru64 */ + /* Linux, FreeBSD, Mac OS X, IRIX, Tru64, Cygwin >= 2.5 */ # if !HAVE_ACL_TYPE_EXTENDED - /* Linux, FreeBSD, IRIX, Tru64 */ + /* Linux, FreeBSD, IRIX, Tru64, Cygwin >= 2.5 */ # ifndef HAVE_ACL_FROM_TEXT # error Must have acl_from_text (see POSIX 1003.1e draft 17). @@ -503,53 +503,53 @@ set_acls (struct permission_context *ctx, const char *name, int desc, if (! ctx->acls_not_supported) { if (ret == 0 && from_mode) - { - if (ctx->acl) - acl_free (ctx->acl); - ctx->acl = acl_from_mode (ctx->mode); - if (ctx->acl == NULL) - ret = -1; - } + { + if (ctx->acl) + acl_free (ctx->acl); + ctx->acl = acl_from_mode (ctx->mode); + if (ctx->acl == NULL) + ret = -1; + } if (ret == 0 && ctx->acl) - { - if (HAVE_ACL_SET_FD && desc != -1) - ret = acl_set_fd (desc, ctx->acl); - else - ret = acl_set_file (name, ACL_TYPE_ACCESS, ctx->acl); - if (ret != 0) - { - if (! acl_errno_valid (errno)) - { - ctx->acls_not_supported = true; - if (from_mode || acl_access_nontrivial (ctx->acl) == 0) - ret = 0; - } - } - else - { - *acls_set = true; - if (S_ISDIR(ctx->mode)) - { - if (! from_mode && ctx->default_acl && - acl_default_nontrivial (ctx->default_acl)) - ret = acl_set_file (name, ACL_TYPE_DEFAULT, - ctx->default_acl); - else - ret = acl_delete_def_file (name); - } - } - } + { + if (HAVE_ACL_SET_FD && desc != -1) + ret = acl_set_fd (desc, ctx->acl); + else + ret = acl_set_file (name, ACL_TYPE_ACCESS, ctx->acl); + if (ret != 0) + { + if (! acl_errno_valid (errno)) + { + ctx->acls_not_supported = true; + if (from_mode || acl_access_nontrivial (ctx->acl) == 0) + ret = 0; + } + } + else + { + *acls_set = true; + if (S_ISDIR(ctx->mode)) + { + if (! from_mode && ctx->default_acl && + acl_default_nontrivial (ctx->default_acl)) + ret = acl_set_file (name, ACL_TYPE_DEFAULT, + ctx->default_acl); + else + ret = acl_delete_def_file (name); + } + } + } } -# if HAVE_ACL_TYPE_NFS4 /* FreeBSD */ +# if HAVE_ACL_TYPE_NFS4 /* FreeBSD */ /* File systems either support POSIX ACLs (for example, ufs) or NFS4 ACLs (for example, zfs). */ /* TODO: Implement setting ACLs once get_permissions() reads them. */ -# endif +# endif # else /* HAVE_ACL_TYPE_EXTENDED */ /* Mac OS X */ @@ -573,38 +573,38 @@ set_acls (struct permission_context *ctx, const char *name, int desc, /* Remove ACLs if the file has ACLs. */ if (HAVE_ACL_GET_FD && desc != -1) - acl = acl_get_fd (desc); + acl = acl_get_fd (desc); else - acl = acl_get_file (name, ACL_TYPE_EXTENDED); + 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); - acl_free (acl); - } - else - ret = -1; - } + { + 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); + acl_free (acl); + } + else + ret = -1; + } } else { if (HAVE_ACL_SET_FD && desc != -1) - ret = acl_set_fd (desc, ctx->acl); + ret = acl_set_fd (desc, ctx->acl); else - ret = acl_set_file (name, ACL_TYPE_EXTENDED, ctx->acl); + ret = acl_set_file (name, ACL_TYPE_EXTENDED, ctx->acl); if (ret != 0) - { - if (! acl_errno_valid (errno) - && ! acl_extended_nontrivial (ctx->acl)) - ret = 0; - } + { + if (! acl_errno_valid (errno) + && ! acl_extended_nontrivial (ctx->acl)) + ret = 0; + } } *acls_set = true; @@ -626,34 +626,34 @@ set_acls (struct permission_context *ctx, const char *name, int desc, if (ret == 0 && ctx->count) { if (desc != -1) - ret = facl (desc, SETACL, ctx->count, ctx->entries); + ret = facl (desc, SETACL, ctx->count, ctx->entries); else - ret = acl (name, SETACL, ctx->count, ctx->entries); + ret = acl (name, SETACL, ctx->count, ctx->entries); if (ret < 0) - { - if ((errno == ENOSYS || errno == EOPNOTSUPP || errno == EINVAL) - && acl_nontrivial (ctx->count, ctx->entries) == 0) - ret = 0; - } + { + if ((errno == ENOSYS || errno == EOPNOTSUPP || errno == EINVAL) + && acl_nontrivial (ctx->count, ctx->entries) == 0) + ret = 0; + } else - *acls_set = true; + *acls_set = true; } # ifdef ACE_GETACL if (ret == 0 && ctx->ace_count) { if (desc != -1) - ret = facl (desc, ACE_SETACL, ctx->ace_count, ctx->ace_entries); + ret = facl (desc, ACE_SETACL, ctx->ace_count, ctx->ace_entries); else - ret = acl (name, ACE_SETACL, ctx->ace_count, ctx->ace_entries); + ret = acl (name, ACE_SETACL, ctx->ace_count, ctx->ace_entries); if (ret < 0) - { - if ((errno == ENOSYS || errno == EINVAL || errno == ENOTSUP) - && acl_ace_nontrivial (ctx->ace_count, ctx->ace_entries) == 0) - ret = 0; - } + { + if ((errno == ENOSYS || errno == EINVAL || errno == ENOTSUP) + && acl_ace_nontrivial (ctx->ace_count, ctx->ace_entries) == 0) + ret = 0; + } else - *acls_set = true; + *acls_set = true; } # endif @@ -665,17 +665,17 @@ set_acls (struct permission_context *ctx, const char *name, int desc, if (ret == 0 && ctx->count > 0) { if (desc != -1) - ret = fsetacl (desc, ctx->count, ctx->entries); + ret = fsetacl (desc, ctx->count, ctx->entries); else - ret = setacl (name, ctx->count, ctx->entries); + ret = setacl (name, ctx->count, ctx->entries); if (ret < 0) - { - if ((errno == ENOSYS || errno == EOPNOTSUPP || errno == ENOTSUP) - && (from_mode || !acl_nontrivial (ctx->count, ctx->entries))) - ret = 0; - } + { + if ((errno == ENOSYS || errno == EOPNOTSUPP || errno == ENOTSUP) + && (from_mode || !acl_nontrivial (ctx->count, ctx->entries))) + ret = 0; + } else - *acls_set = true; + *acls_set = true; } # if HAVE_ACLV_H @@ -686,13 +686,13 @@ set_acls (struct permission_context *ctx, const char *name, int desc, { ret = acl ((char *) name, ACL_SET, ctx->aclv_count, ctx->aclv_entries); if (ret < 0) - { - if ((errno == ENOSYS || errno == EOPNOTSUPP || errno == EINVAL) - && (from_mode || !aclv_nontrivial (ctx->aclv_count, ctx->aclv_entries))) - ret = 0; - } + { + if ((errno == ENOSYS || errno == EOPNOTSUPP || errno == EINVAL) + && (from_mode || !aclv_nontrivial (ctx->aclv_count, ctx->aclv_entries))) + ret = 0; + } else - *acls_set = true; + *acls_set = true; } # endif @@ -711,16 +711,16 @@ set_acls (struct permission_context *ctx, const char *name, int desc, if (ret == 0 && ctx->have_u) { if (desc != -1) - ret = fchacl (desc, &ctx->u.a, ctx->u.a.acl_len); + ret = fchacl (desc, &ctx->u.a, ctx->u.a.acl_len); else - ret = chacl ((char *) name, &ctx->u.a, ctx->u.a.acl_len); + ret = chacl ((char *) name, &ctx->u.a, ctx->u.a.acl_len); if (ret < 0) - { - if (errno == ENOSYS && from_mode) - ret = 0; - } + { + if (errno == ENOSYS && from_mode) + ret = 0; + } else - *acls_set = true; + *acls_set = true; } # elif HAVE_ACLSORT /* NonStop Kernel */ @@ -732,12 +732,12 @@ set_acls (struct permission_context *ctx, const char *name, int desc, { ret = acl ((char *) name, ACL_SET, ctx->count, ctx->entries); if (ret != 0) - { - if (!acl_nontrivial (ctx->count, ctx->entries)) - ret = 0; - } + { + if (!acl_nontrivial (ctx->count, ctx->entries)) + ret = 0; + } else - *acls_set = true; + *acls_set = true; } # else /* No ACLs */ @@ -805,7 +805,7 @@ set_permissions (struct permission_context *ctx, const char *name, int desc) { ret = chmod_or_fchmod (name, desc, ctx->mode); if (ret != 0) - return -1; + return -1; } #if USE_ACL @@ -815,18 +815,18 @@ set_permissions (struct permission_context *ctx, const char *name, int desc) int saved_errno = ret ? errno : 0; /* If we can't set an acl which we expect to be able to set, try setting - the permissions to ctx->mode. Due to possible inherited permissions, - we cannot simply chmod. */ + the permissions to ctx->mode. Due to possible inherited permissions, + we cannot simply chmod. */ ret = set_acls (ctx, name, desc, true, &must_chmod, &acls_set); if (! acls_set) - must_chmod = true; + must_chmod = true; if (saved_errno) - { - errno = saved_errno; - ret = -1; - } + { + errno = saved_errno; + ret = -1; + } } #endif @@ -837,10 +837,10 @@ set_permissions (struct permission_context *ctx, const char *name, int desc) ret = chmod_or_fchmod (name, desc, ctx->mode); if (saved_errno) - { - errno = saved_errno; - ret = -1; - } + { + errno = saved_errno; + ret = -1; + } } return ret; diff --git a/gnu/setenv.c b/gnu/setenv.c index fb685e9a..733b257c 100644 --- a/gnu/setenv.c +++ b/gnu/setenv.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 1995-2003, 2005-2017 Free Software Foundation, Inc. +/* Copyright (C) 1992, 1995-2003, 2005-2019 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 diff --git a/gnu/signal.in.h b/gnu/signal.in.h index e8107c37..a6960a25 100644 --- a/gnu/signal.in.h +++ b/gnu/signal.in.h @@ -1,6 +1,6 @@ /* A GNU-like <signal.h>. - Copyright (C) 2006-2017 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -137,7 +137,7 @@ _GL_FUNCDECL_RPL (pthread_sigmask, int, _GL_CXXALIAS_RPL (pthread_sigmask, int, (int how, const sigset_t *new_mask, sigset_t *old_mask)); # else -# if !@HAVE_PTHREAD_SIGMASK@ +# if !(@HAVE_PTHREAD_SIGMASK@ || defined pthread_sigmask) _GL_FUNCDECL_SYS (pthread_sigmask, int, (int how, const sigset_t *new_mask, sigset_t *old_mask)); # endif diff --git a/gnu/size_max.h b/gnu/size_max.h index 5b78d938..e265fb97 100644 --- a/gnu/size_max.h +++ b/gnu/size_max.h @@ -1,5 +1,5 @@ /* size_max.h -- declare SIZE_MAX through system headers - Copyright (C) 2005-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2009-2019 Free Software Foundation, Inc. Written by Simon Josefsson. This program is free software; you can redistribute it and/or modify diff --git a/gnu/sleep.c b/gnu/sleep.c index 5cd34d53..c5218e5f 100644 --- a/gnu/sleep.c +++ b/gnu/sleep.c @@ -1,5 +1,5 @@ /* Pausing execution of the current thread. - Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2007, 2009-2019 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2007. This program is free software: you can redistribute it and/or modify @@ -24,7 +24,7 @@ #include "verify.h" -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ # define WIN32_LEAN_AND_MEAN /* avoid including junk */ # include <windows.h> diff --git a/gnu/snprintf.c b/gnu/snprintf.c index 322af250..5cf1ede1 100644 --- a/gnu/snprintf.c +++ b/gnu/snprintf.c @@ -1,5 +1,5 @@ /* Formatted output to strings. - Copyright (C) 2004, 2006-2017 Free Software Foundation, Inc. + Copyright (C) 2004, 2006-2019 Free Software Foundation, Inc. Written by Simon Josefsson and Paul Eggert. This program is free software; you can redistribute it and/or modify diff --git a/gnu/stat-time.h b/gnu/stat-time.h index 47a3bf8f..d4f1f961 100644 --- a/gnu/stat-time.h +++ b/gnu/stat-time.h @@ -1,6 +1,6 @@ /* stat-related time functions. - Copyright (C) 2005, 2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2005, 2007, 2009-2019 Free Software Foundation, Inc. This 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,10 @@ #ifndef STAT_TIME_H #define STAT_TIME_H 1 +#include "intprops.h" + +#include <errno.h> +#include <stddef.h> #include <sys/stat.h> #include <time.h> @@ -98,15 +102,13 @@ get_stat_mtime_ns (struct stat const *st) /* Return the nanosecond component of *ST's birth time. */ _GL_STAT_TIME_INLINE long int _GL_ATTRIBUTE_PURE -get_stat_birthtime_ns (struct stat const *st) +get_stat_birthtime_ns (struct stat const *st _GL_UNUSED) { # if defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC return STAT_TIMESPEC (st, st_birthtim).tv_nsec; # elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC return STAT_TIMESPEC_NS (st, st_birthtim); # else - /* Avoid a "parameter unused" warning. */ - (void) st; return 0; # endif } @@ -156,7 +158,7 @@ get_stat_mtime (struct stat const *st) /* Return *ST's birth time, if available; otherwise return a value with tv_sec and tv_nsec both equal to -1. */ _GL_STAT_TIME_INLINE struct timespec _GL_ATTRIBUTE_PURE -get_stat_birthtime (struct stat const *st) +get_stat_birthtime (struct stat const *st _GL_UNUSED) { struct timespec t; @@ -166,7 +168,7 @@ get_stat_birthtime (struct stat const *st) #elif defined HAVE_STRUCT_STAT_ST_BIRTHTIMENSEC t.tv_sec = st->st_birthtime; t.tv_nsec = st->st_birthtimensec; -#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#elif defined _WIN32 && ! defined __CYGWIN__ /* Native Windows platforms (but not Cygwin) put the "file creation time" in st_ctime (!). See <https://msdn.microsoft.com/en-us/library/14h5k7ff(VS.80).aspx>. */ @@ -180,8 +182,6 @@ get_stat_birthtime (struct stat const *st) /* Birth time is not supported. */ t.tv_sec = -1; t.tv_nsec = -1; - /* Avoid a "parameter unused" warning. */ - (void) st; #endif #if (defined HAVE_STRUCT_STAT_ST_BIRTHTIMESPEC_TV_NSEC \ @@ -202,6 +202,47 @@ get_stat_birthtime (struct stat const *st) return t; } +/* If a stat-like function returned RESULT, normalize the timestamps + in *ST, in case this platform suffers from the Solaris 11 bug where + tv_nsec might be negative. Return the adjusted RESULT, setting + errno to EOVERFLOW if normalization overflowed. This function + is intended to be private to this .h file. */ +_GL_STAT_TIME_INLINE int +stat_time_normalize (int result, struct stat *st _GL_UNUSED) +{ +#if defined __sun && defined STAT_TIMESPEC + if (result == 0) + { + long int timespec_hz = 1000000000; + short int const ts_off[] = { offsetof (struct stat, st_atim), + offsetof (struct stat, st_mtim), + offsetof (struct stat, st_ctim) }; + int i; + for (i = 0; i < sizeof ts_off / sizeof *ts_off; i++) + { + struct timespec *ts = (struct timespec *) ((char *) st + ts_off[i]); + long int q = ts->tv_nsec / timespec_hz; + long int r = ts->tv_nsec % timespec_hz; + if (r < 0) + { + r += timespec_hz; + q--; + } + ts->tv_nsec = r; + /* Overflow is possible, as Solaris 11 stat can yield + tv_sec == TYPE_MINIMUM (time_t) && tv_nsec == -1000000000. + INT_ADD_WRAPV is OK, since time_t is signed on Solaris. */ + if (INT_ADD_WRAPV (q, ts->tv_sec, &ts->tv_sec)) + { + errno = EOVERFLOW; + return -1; + } + } + } +#endif + return result; +} + #ifdef __cplusplus } #endif diff --git a/gnu/stat-w32.c b/gnu/stat-w32.c index 5eb5dbd1..ffa99429 100644 --- a/gnu/stat-w32.c +++ b/gnu/stat-w32.c @@ -1,5 +1,5 @@ /* Core of implementation of fstat and stat for native Windows. - Copyright (C) 2017 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This 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 @@ #include <config.h> -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ /* Ensure that <windows.h> defines FILE_ID_INFO. */ #undef _WIN32_WINNT @@ -38,6 +38,10 @@ #include "pathmax.h" #include "verify.h" +/* Avoid warnings from gcc -Wcast-function-type. */ +#define GetProcAddress \ + (void *) GetProcAddress + #if _GL_WINDOWS_STAT_INODES == 2 /* GetFileInformationByHandleEx was introduced only in Windows Vista. */ typedef DWORD (WINAPI * GetFileInformationByHandleExFuncType) (HANDLE hFile, diff --git a/gnu/stat-w32.h b/gnu/stat-w32.h index cf6bcca6..6b961d7f 100644 --- a/gnu/stat-w32.h +++ b/gnu/stat-w32.h @@ -1,5 +1,5 @@ /* Core of implementation of fstat and stat for native Windows. - Copyright (C) 2017 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This program is free 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/stat.c b/gnu/stat.c index 06149632..74f47954 100644 --- a/gnu/stat.c +++ b/gnu/stat.c @@ -1,5 +1,5 @@ /* Work around platform bugs in stat. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -27,7 +27,7 @@ #include <sys/stat.h> #undef __need_system_sys_stat_h -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ # define WINDOWS_NATIVE #endif @@ -47,6 +47,8 @@ orig_stat (const char *filename, struct stat *buf) above. */ #include "sys/stat.h" +#include "stat-time.h" + #include <errno.h> #include <limits.h> #include <stdbool.h> @@ -405,19 +407,23 @@ rpl_stat (char const *name, struct stat *buf) } #else int result = orig_stat (name, buf); -# if REPLACE_FUNC_STAT_FILE - /* Solaris 9 mistakenly succeeds when given a non-directory with a - trailing slash. */ - if (result == 0 && !S_ISDIR (buf->st_mode)) + if (result == 0) { - size_t len = strlen (name); - if (ISSLASH (name[len - 1])) +# if REPLACE_FUNC_STAT_FILE + /* Solaris 9 mistakenly succeeds when given a non-directory with a + trailing slash. */ + if (!S_ISDIR (buf->st_mode)) { - errno = ENOTDIR; - return -1; + size_t len = strlen (name); + if (ISSLASH (name[len - 1])) + { + errno = ENOTDIR; + return -1; + } } - } # endif /* REPLACE_FUNC_STAT_FILE */ + result = stat_time_normalize (result, buf); + } return result; #endif } diff --git a/gnu/stdalign.in.h b/gnu/stdalign.in.h index 68e889e0..d988d7c1 100644 --- a/gnu/stdalign.in.h +++ b/gnu/stdalign.in.h @@ -1,6 +1,6 @@ /* A substitute for ISO C11 <stdalign.h>. - Copyright 2011-2017 Free Software Foundation, Inc. + Copyright 2011-2019 Free Software Foundation, Inc. This program is free 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/stdarg.in.h b/gnu/stdarg.in.h index e2b59fc7..5eec8ba4 100644 --- a/gnu/stdarg.in.h +++ b/gnu/stdarg.in.h @@ -1,5 +1,5 @@ /* Substitute for and wrapper around <stdarg.h>. - Copyright (C) 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This program is free 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/stdbool.in.h b/gnu/stdbool.in.h index a7bc5b06..8158b009 100644 --- a/gnu/stdbool.in.h +++ b/gnu/stdbool.in.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2003, 2006-2017 Free Software Foundation, Inc. +/* Copyright (C) 2001-2003, 2006-2019 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 diff --git a/gnu/stddef.in.h b/gnu/stddef.in.h index 758ccf63..5aad1210 100644 --- a/gnu/stddef.in.h +++ b/gnu/stddef.in.h @@ -1,6 +1,6 @@ /* A substitute for POSIX 2008 <stddef.h>, for platforms that have issues. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free 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/stdint.in.h b/gnu/stdint.in.h index df8b37d3..21dd8d23 100644 --- a/gnu/stdint.in.h +++ b/gnu/stdint.in.h @@ -1,4 +1,4 @@ -/* Copyright (C) 2001-2002, 2004-2017 Free Software Foundation, Inc. +/* Copyright (C) 2001-2002, 2004-2019 Free Software Foundation, Inc. Written by Paul Eggert, Bruno Haible, Sam Steingold, Peter Burwood. This file is part of gnulib. diff --git a/gnu/stdio-impl.h b/gnu/stdio-impl.h index 329801ad..b2b2971f 100644 --- a/gnu/stdio-impl.h +++ b/gnu/stdio-impl.h @@ -1,5 +1,5 @@ /* Implementation details of FILE streams. - Copyright (C) 2007-2008, 2010-2017 Free Software Foundation, Inc. + Copyright (C) 2007-2008, 2010-2019 Free Software Foundation, Inc. This 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,12 @@ the same implementation of stdio extension API, except that some fields have different naming conventions, or their access requires some casts. */ +/* Glibc 2.28 made _IO_IN_BACKUP private. For now, work around this + problem by defining it ourselves. FIXME: Do not rely on glibc + internals. */ +#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN +# define _IO_IN_BACKUP 0x100 +#endif /* BSD stdio derived implementations. */ @@ -54,25 +60,79 @@ # define _flags pub._flags # define _r pub._r # define _w pub._w +# elif defined __ANDROID__ /* Android */ + /* Up to this commit from 2015-10-12 + <https://android.googlesource.com/platform/bionic.git/+/f0141dfab10a4b332769d52fa76631a64741297a> + the innards of FILE were public, and fp_ub could be defined like for OpenBSD, + see <https://android.googlesource.com/platform/bionic.git/+/e78392637d5086384a5631ddfdfa8d7ec8326ee3/libc/stdio/fileext.h> + and <https://android.googlesource.com/platform/bionic.git/+/e78392637d5086384a5631ddfdfa8d7ec8326ee3/libc/stdio/local.h>. + After this commit, the innards of FILE are hidden. */ +# define fp_ ((struct { unsigned char *_p; \ + int _r; \ + int _w; \ + int _flags; \ + int _file; \ + struct { unsigned char *_base; size_t _size; } _bf; \ + int _lbfsize; \ + void *_cookie; \ + void *_close; \ + void *_read; \ + void *_seek; \ + void *_write; \ + struct { unsigned char *_base; size_t _size; } _ext; \ + unsigned char *_up; \ + int _ur; \ + unsigned char _ubuf[3]; \ + unsigned char _nbuf[1]; \ + struct { unsigned char *_base; size_t _size; } _lb; \ + int _blksize; \ + fpos_t _offset; \ + /* More fields, not relevant here. */ \ + } *) fp) # else # define fp_ fp # endif -# if (defined __NetBSD__ && __NetBSD_Version__ >= 105270000) || defined __OpenBSD__ || defined __minix || defined __ANDROID__ /* NetBSD >= 1.5ZA, OpenBSD, Minix 3, Android */ +# if (defined __NetBSD__ && __NetBSD_Version__ >= 105270000) || defined __OpenBSD__ || defined __minix /* NetBSD >= 1.5ZA, OpenBSD, Minix 3 */ /* See <http://cvsweb.netbsd.org/bsdweb.cgi/src/lib/libc/stdio/fileext.h?rev=HEAD&content-type=text/x-cvsweb-markup> - and <https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libc/stdio/fileext.h?rev=HEAD&content-type=text/x-cvsweb-markup> */ + and <https://cvsweb.openbsd.org/cgi-bin/cvsweb/src/lib/libc/stdio/fileext.h?rev=HEAD&content-type=text/x-cvsweb-markup> + and <https://github.com/Stichting-MINIX-Research-Foundation/minix/blob/master/lib/libc/stdio/fileext.h> */ struct __sfileext { struct __sbuf _ub; /* ungetc buffer */ /* More fields, not relevant here. */ }; # define fp_ub ((struct __sfileext *) fp->_ext._base)->_ub -# else /* FreeBSD, NetBSD <= 1.5Z, DragonFly, Mac OS X, Cygwin, Android */ +# elif defined __ANDROID__ /* Android */ + struct __sfileext + { + struct { unsigned char *_base; size_t _size; } _ub; /* ungetc buffer */ + /* More fields, not relevant here. */ + }; +# define fp_ub ((struct __sfileext *) fp_->_ext._base)->_ub +# else /* FreeBSD, NetBSD <= 1.5Z, DragonFly, Mac OS X, Cygwin */ # define fp_ub fp_->_ub # endif # define HASUB(fp) (fp_ub._base != NULL) +# if defined __ANDROID__ /* Android */ + /* Needed after this commit from 2016-01-25 + <https://android.googlesource.com/platform/bionic.git/+/e70e0e9267d069bf56a5078c99307e08a7280de7> */ +# ifndef __SEOF +# define __SLBF 1 +# define __SNBF 2 +# define __SRD 4 +# define __SWR 8 +# define __SRW 0x10 +# define __SEOF 0x20 +# define __SERR 0x40 +# endif +# ifndef __SOFF +# define __SOFF 0x1000 +# endif +# endif + #endif @@ -112,7 +172,7 @@ # define _flag __flag # endif -#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ /* newer Windows with MSVC */ +#elif defined _WIN32 && ! defined __CYGWIN__ /* newer Windows with MSVC */ /* <stdio.h> does not define the innards of FILE any more. */ # define WINDOWS_OPAQUE_FILE diff --git a/gnu/stdio.in.h b/gnu/stdio.in.h index 505f3f49..acf29c4b 100644 --- a/gnu/stdio.in.h +++ b/gnu/stdio.in.h @@ -1,6 +1,6 @@ /* A GNU-like <stdio.h>. - Copyright (C) 2004, 2007-2017 Free Software Foundation, Inc. + Copyright (C) 2004, 2007-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -122,7 +122,7 @@ it before we #define perror rpl_perror. */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_PERROR@ || defined GNULIB_POSIXCHECK) \ - && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) \ + && (defined _WIN32 && ! defined __CYGWIN__) \ && ! defined __GLIBC__ # include <stdlib.h> #endif @@ -133,7 +133,7 @@ it before we #define rename rpl_rename. */ /* But in any case avoid namespace pollution on glibc systems. */ #if (@GNULIB_REMOVE@ || @GNULIB_RENAME@ || defined GNULIB_POSIXCHECK) \ - && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) \ + && (defined _WIN32 && ! defined __CYGWIN__) \ && ! defined __GLIBC__ # include <io.h> #endif diff --git a/gnu/stdlib.in.h b/gnu/stdlib.in.h index d5fa02b5..d80d7ec6 100644 --- a/gnu/stdlib.in.h +++ b/gnu/stdlib.in.h @@ -1,6 +1,6 @@ /* A GNU-like <stdlib.h>. - Copyright (C) 1995, 2001-2004, 2006-2017 Free Software Foundation, Inc. + Copyright (C) 1995, 2001-2004, 2006-2019 Free Software Foundation, Inc. This 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,11 +47,14 @@ /* Solaris declares getloadavg() in <sys/loadavg.h>. */ #if (@GNULIB_GETLOADAVG@ || defined GNULIB_POSIXCHECK) && @HAVE_SYS_LOADAVG_H@ +/* OpenIndiana has a bug: <sys/time.h> must be included before + <sys/loadavg.h>. */ +# include <sys/time.h> # include <sys/loadavg.h> #endif /* Native Windows platforms declare mktemp() in <io.h>. */ -#if 0 && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) +#if 0 && (defined _WIN32 && ! defined __CYGWIN__) # include <io.h> #endif @@ -87,9 +90,10 @@ struct random_data # endif #endif -#if (@GNULIB_MKSTEMP@ || @GNULIB_MKSTEMPS@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) +#if (@GNULIB_MKSTEMP@ || @GNULIB_MKSTEMPS@ || @GNULIB_MKOSTEMP@ || @GNULIB_MKOSTEMPS@ || @GNULIB_GETSUBOPT@ || defined GNULIB_POSIXCHECK) && ! defined __GLIBC__ && !(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 Mac OS X 10.13, only <unistd.h> declares mkostemp and mkostemps. */ /* On Cygwin 1.7.1, only <unistd.h> declares getsubopt. */ /* But avoid namespace pollution on glibc systems and native Windows. */ # include <unistd.h> diff --git a/gnu/stpcpy.c b/gnu/stpcpy.c index 079599db..a1d32fda 100644 --- a/gnu/stpcpy.c +++ b/gnu/stpcpy.c @@ -1,5 +1,5 @@ /* stpcpy.c -- copy a string and return pointer to end of new string - Copyright (C) 1992, 1995, 1997-1998, 2006, 2009-2017 Free Software + Copyright (C) 1992, 1995, 1997-1998, 2006, 2009-2019 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C Library. diff --git a/gnu/strcasecmp.c b/gnu/strcasecmp.c index b7fb4c72..6cd0e1e3 100644 --- a/gnu/strcasecmp.c +++ b/gnu/strcasecmp.c @@ -1,5 +1,5 @@ /* Case-insensitive string comparison function. - Copyright (C) 1998-1999, 2005-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1998-1999, 2005-2007, 2009-2019 Free Software Foundation, Inc. This program is free 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/strchrnul.c b/gnu/strchrnul.c index c073c942..0f5dd814 100644 --- a/gnu/strchrnul.c +++ b/gnu/strchrnul.c @@ -1,5 +1,5 @@ /* Searching in a string. - Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. + Copyright (C) 2003, 2007-2019 Free Software Foundation, Inc. This program is free 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/strdup.c b/gnu/strdup.c index ddabc508..717cf65b 100644 --- a/gnu/strdup.c +++ b/gnu/strdup.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1996-1998, 2002-2004, 2006-2007, 2009-2017 Free Software +/* Copyright (C) 1991, 1996-1998, 2002-2004, 2006-2007, 2009-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. diff --git a/gnu/streq.h b/gnu/streq.h index b4b726d8..326537b6 100644 --- a/gnu/streq.h +++ b/gnu/streq.h @@ -1,5 +1,5 @@ /* Optimized string comparison. - Copyright (C) 2001-2002, 2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2001-2002, 2007, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published diff --git a/gnu/strerror-override.c b/gnu/strerror-override.c index 15ea2190..558a010a 100644 --- a/gnu/strerror-override.c +++ b/gnu/strerror-override.c @@ -1,6 +1,6 @@ /* strerror-override.c --- POSIX compatible system error routine - Copyright (C) 2010-2017 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This program is free 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/strerror-override.h b/gnu/strerror-override.h index 5b9ef675..255febca 100644 --- a/gnu/strerror-override.h +++ b/gnu/strerror-override.h @@ -1,6 +1,6 @@ /* strerror-override.h --- POSIX compatible system error routine - Copyright (C) 2010-2017 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This program is free 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/strerror.c b/gnu/strerror.c index 3861ffdb..f5900fd1 100644 --- a/gnu/strerror.c +++ b/gnu/strerror.c @@ -1,6 +1,6 @@ /* strerror.c --- POSIX compatible system error routine - Copyright (C) 2007-2017 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This program is free 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/strftime.h b/gnu/strftime.h index 9d91e513..e4a720b0 100644 --- a/gnu/strftime.h +++ b/gnu/strftime.h @@ -1,6 +1,6 @@ /* declarations for strftime.c - Copyright (C) 2002, 2004, 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2002, 2004, 2008-2019 Free Software Foundation, Inc. This program is free 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/string.in.h b/gnu/string.in.h index 0e0e0c51..4a9292f7 100644 --- a/gnu/string.in.h +++ b/gnu/string.in.h @@ -1,6 +1,6 @@ /* A GNU-like <string.h>. - Copyright (C) 1995-1996, 2001-2017 Free Software Foundation, Inc. + Copyright (C) 1995-1996, 2001-2019 Free Software Foundation, Inc. This program is free 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/strings.in.h b/gnu/strings.in.h index a7284015..21b1a85b 100644 --- a/gnu/strings.in.h +++ b/gnu/strings.in.h @@ -1,6 +1,6 @@ /* A substitute <strings.h>. - Copyright (C) 2007-2017 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This program is free 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/stripslash.c b/gnu/stripslash.c index 41c589ed..dfc15b43 100644 --- a/gnu/stripslash.c +++ b/gnu/stripslash.c @@ -1,6 +1,6 @@ /* stripslash.c -- remove redundant trailing slashes from a file name - Copyright (C) 1990, 2001, 2003-2006, 2009-2017 Free Software Foundation, + Copyright (C) 1990, 2001, 2003-2006, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/strncasecmp.c b/gnu/strncasecmp.c index 90b309df..034011c5 100644 --- a/gnu/strncasecmp.c +++ b/gnu/strncasecmp.c @@ -1,5 +1,5 @@ /* strncasecmp.c -- case insensitive string comparator - Copyright (C) 1998-1999, 2005-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1998-1999, 2005-2007, 2009-2019 Free Software Foundation, Inc. This program is free 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/strndup.c b/gnu/strndup.c index cc860723..5b748284 100644 --- a/gnu/strndup.c +++ b/gnu/strndup.c @@ -1,6 +1,6 @@ /* A replacement function, for systems that lack strndup. - Copyright (C) 1996-1998, 2001-2003, 2005-2007, 2009-2017 Free Software + Copyright (C) 1996-1998, 2001-2003, 2005-2007, 2009-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it diff --git a/gnu/strnlen.c b/gnu/strnlen.c index a37f81f6..9fb66350 100644 --- a/gnu/strnlen.c +++ b/gnu/strnlen.c @@ -1,5 +1,5 @@ /* Find the length of STRING, but scan at most MAXLEN characters. - Copyright (C) 2005-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2005-2007, 2009-2019 Free Software Foundation, Inc. Written by Simon Josefsson. This program is free software; you can redistribute it and/or modify diff --git a/gnu/strnlen1.c b/gnu/strnlen1.c index c4433653..666a5572 100644 --- a/gnu/strnlen1.c +++ b/gnu/strnlen1.c @@ -1,5 +1,5 @@ /* Find the length of STRING + 1, but scan at most MAXLEN bytes. - Copyright (C) 2005-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2009-2019 Free Software Foundation, Inc. This program is free 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/strnlen1.h b/gnu/strnlen1.h index 4847e8ae..5d952446 100644 --- a/gnu/strnlen1.h +++ b/gnu/strnlen1.h @@ -1,5 +1,5 @@ /* Find the length of STRING + 1, but scan at most MAXLEN bytes. - Copyright (C) 2005, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2005, 2009-2019 Free Software Foundation, Inc. This program is free 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/strtoimax.c b/gnu/strtoimax.c index f7d46f04..87b080c4 100644 --- a/gnu/strtoimax.c +++ b/gnu/strtoimax.c @@ -1,6 +1,6 @@ /* Convert string representation of a number into an intmax_t value. - Copyright (C) 1999, 2001-2004, 2006, 2009-2017 Free Software Foundation, + Copyright (C) 1999, 2001-2004, 2006, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/strtol.c b/gnu/strtol.c index 1ef88700..1d920aff 100644 --- a/gnu/strtol.c +++ b/gnu/strtol.c @@ -1,6 +1,6 @@ /* Convert string representation of a number into an integer value. - Copyright (C) 1991-1992, 1994-1999, 2003, 2005-2007, 2009-2017 Free Software + Copyright (C) 1991-1992, 1994-1999, 2003, 2005-2007, 2009-2019 Free Software Foundation, Inc. NOTE: The canonical source of this file is maintained with the GNU C @@ -117,35 +117,6 @@ # define STRTOL_LONG_MIN LLONG_MIN # define STRTOL_LONG_MAX LLONG_MAX # define STRTOL_ULONG_MAX ULLONG_MAX - -/* 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 signed. */ -# define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) - -/* Minimum and maximum values for integer types. - These macros have undefined behavior for signed types that either - have padding bits or do not use two's complement. If this is a - problem for you, please let us know how to fix it for your host. */ - -/* The maximum and minimum values for the integer type T. */ -# define TYPE_MINIMUM(t) ((t) ~ TYPE_MAXIMUM (t)) -# define TYPE_MAXIMUM(t) \ - ((t) (! TYPE_SIGNED (t) \ - ? (t) -1 \ - : ((((t) 1 << (sizeof (t) * CHAR_BIT - 2)) - 1) * 2 + 1))) - -# ifndef ULLONG_MAX -# 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 - # if __GNUC__ == 2 && __GNUC_MINOR__ < 7 /* Work around gcc bug with using this constant. */ static const unsigned long long int maxquad = ULLONG_MAX; diff --git a/gnu/strtoll.c b/gnu/strtoll.c index f6952f3c..038362a3 100644 --- a/gnu/strtoll.c +++ b/gnu/strtoll.c @@ -1,5 +1,5 @@ /* Function to parse a 'long long int' from text. - Copyright (C) 1995-1997, 1999, 2001, 2009-2017 Free Software Foundation, + Copyright (C) 1995-1997, 1999, 2001, 2009-2019 Free Software Foundation, Inc. This file is part of the GNU C Library. diff --git a/gnu/strtoul.c b/gnu/strtoul.c index d4d538d5..e098701f 100644 --- a/gnu/strtoul.c +++ b/gnu/strtoul.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1991, 1997, 2009-2017 Free Software Foundation, Inc. +/* Copyright (C) 1991, 1997, 2009-2019 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 diff --git a/gnu/strtoull.c b/gnu/strtoull.c index 96168f29..8ba92bf3 100644 --- a/gnu/strtoull.c +++ b/gnu/strtoull.c @@ -1,5 +1,5 @@ /* Function to parse an 'unsigned long long int' from text. - Copyright (C) 1995-1997, 1999, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1995-1997, 1999, 2009-2019 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. diff --git a/gnu/symlink.c b/gnu/symlink.c index 427f1f5f..16432ee3 100644 --- a/gnu/symlink.c +++ b/gnu/symlink.c @@ -1,5 +1,5 @@ /* Stub for symlink(). - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free 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/symlinkat.c b/gnu/symlinkat.c index 3269dc81..7d58cd97 100644 --- a/gnu/symlinkat.c +++ b/gnu/symlinkat.c @@ -1,5 +1,5 @@ /* Create a symlink relative to an open directory. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free 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/sys-limits.h b/gnu/sys-limits.h new file mode 100644 index 00000000..5150e897 --- /dev/null +++ b/gnu/sys-limits.h @@ -0,0 +1,42 @@ +/* System call limits + + Copyright 2018-2019 Free Software Foundation, Inc. + + This program is free software; you can redistribute 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 <https://www.gnu.org/licenses/>. */ + +#ifndef _SYS_LIMITS_H +#define _SYS_LIMITS_H + +#include <limits.h> + +/* Maximum number of bytes to read or write in a single system call. + This can be useful for system calls like sendfile on GNU/Linux, + which do not handle more than MAX_RW_COUNT bytes correctly. + The Linux kernel MAX_RW_COUNT is at least INT_MAX >> 20 << 20, + where the 20 comes from the Hexagon port with 1 MiB pages; use that + as an approximation, as the exact value may not be available to us. + + Using this also works around a serious Linux bug before 2.6.16; see + <https://bugzilla.redhat.com/show_bug.cgi?id=612839>. + + Using this also works around a Tru64 5.1 bug, where attempting + to read INT_MAX bytes fails with errno == EINVAL. See + <https://lists.gnu.org/r/bug-gnu-utils/2002-04/msg00010.html>. + + Using this is likely to work around similar bugs in other operating + systems. */ + +enum { SYS_BUFSIZE_MAX = INT_MAX >> 20 << 20 }; + +#endif diff --git a/gnu/sys_stat.in.h b/gnu/sys_stat.in.h index f0919e90..58fa93fd 100644 --- a/gnu/sys_stat.in.h +++ b/gnu/sys_stat.in.h @@ -1,5 +1,5 @@ /* Provide a more complete sys/stat.h header file. - Copyright (C) 2005-2017 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This 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,13 +57,13 @@ /* Before doing "#define mkdir rpl_mkdir" below, we need to include all 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__ +#if defined _WIN32 && ! defined __CYGWIN__ # include <io.h> /* mingw32, mingw64 */ # include <direct.h> /* mingw64, MSVC 9 */ #endif /* Native Windows platforms declare umask() in <io.h>. */ -#if 0 && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) +#if 0 && (defined _WIN32 && ! defined __CYGWIN__) # include <io.h> #endif @@ -576,7 +576,7 @@ _GL_CXXALIAS_RPL (mkdir, int, (char const *name, mode_t mode)); Additionally, it declares _mkdir (and depending on compile flags, an alias mkdir), only in the nonstandard includes <direct.h> and <io.h>, which are included above. */ -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# if defined _WIN32 && ! defined __CYGWIN__ # if !GNULIB_defined_rpl_mkdir static int diff --git a/gnu/sys_time.in.h b/gnu/sys_time.in.h index 8a3c87d1..53976888 100644 --- a/gnu/sys_time.in.h +++ b/gnu/sys_time.in.h @@ -1,6 +1,6 @@ /* Provide a more complete sys/time.h. - Copyright (C) 2007-2017 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This program is free 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/sys_types.in.h b/gnu/sys_types.in.h index b0d6132a..237e2068 100644 --- a/gnu/sys_types.in.h +++ b/gnu/sys_types.in.h @@ -1,6 +1,6 @@ /* Provide a more complete sys/types.h. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This 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,17 @@ #endif @PRAGMA_COLUMNS@ +#if defined _WIN32 && !defined __CYGWIN__ \ + && (defined __need_off_t || defined __need___off64_t \ + || defined __need_ssize_t || defined __need_time_t) + +/* Special invocation convention inside mingw header files. */ + +#@INCLUDE_NEXT@ @NEXT_SYS_TYPES_H@ + +#else +/* Normal invocation convention. */ + #ifndef _@GUARD_PREFIX@_SYS_TYPES_H /* The include_next requires a split double-inclusion guard. */ @@ -86,10 +97,10 @@ typedef unsigned long long int rpl_ino_t; /* 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__ +#if (defined _WIN32 && ! defined __CYGWIN__) && ! defined __GLIBC__ # include <stddef.h> #endif #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ #endif /* _@GUARD_PREFIX@_SYS_TYPES_H */ +#endif /* __need_XXX */ diff --git a/gnu/sysexits.in.h b/gnu/sysexits.in.h index 66f04ca5..7043a0a9 100644 --- a/gnu/sysexits.in.h +++ b/gnu/sysexits.in.h @@ -1,5 +1,5 @@ /* exit() exit codes for some BSD system programs. - Copyright (C) 2003, 2006-2017 Free Software Foundation, Inc. + Copyright (C) 2003, 2006-2019 Free Software Foundation, Inc. This program is free 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/tempname.c b/gnu/tempname.c index 2e3f95f3..be62ed95 100644 --- a/gnu/tempname.c +++ b/gnu/tempname.c @@ -1,6 +1,6 @@ /* tempname.c - generate the name of a temporary file. - Copyright (C) 1991-2003, 2005-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1991-2003, 2005-2007, 2009-2019 Free Software Foundation, Inc. This program is free 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/tempname.h b/gnu/tempname.h index 245c8161..fb203d3a 100644 --- a/gnu/tempname.h +++ b/gnu/tempname.h @@ -1,6 +1,6 @@ /* Create a temporary file or directory. - Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2006, 2009-2019 Free Software Foundation, Inc. This program is free 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/time-internal.h b/gnu/time-internal.h index 8caf11d8..57f2e789 100644 --- a/gnu/time-internal.h +++ b/gnu/time-internal.h @@ -1,6 +1,6 @@ /* Time internal interface - Copyright 2015-2017 Free Software Foundation, Inc. + Copyright 2015-2019 Free Software Foundation, Inc. This program is free 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/time.in.h b/gnu/time.in.h index d210fbf8..dd3b2127 100644 --- a/gnu/time.in.h +++ b/gnu/time.in.h @@ -1,6 +1,6 @@ /* A more-standard <time.h>. - Copyright (C) 2007-2017 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -48,7 +48,7 @@ /* The definition of _GL_WARN_ON_USE is copied here. */ -/* Some systems don't define struct timespec (e.g., AIX 4.1, Ultrix 4.3). +/* Some systems don't define struct timespec (e.g., AIX 4.1). Or they define it with the wrong member names or define it in <sys/time.h> (e.g., FreeBSD circa 1997). Stock Mingw prior to 3.0 does not define it, but the pthreads-win32 library defines it in <pthread.h>. */ @@ -212,7 +212,7 @@ _GL_CXXALIASWARN (gmtime_r); # define localtime rpl_localtime # endif _GL_FUNCDECL_RPL (localtime, struct tm *, (time_t const *__timer) - _GL_ARG_NONNULL ((1))); + _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (localtime, struct tm *, (time_t const *__timer)); # else _GL_CXXALIAS_SYS (localtime, struct tm *, (time_t const *__timer)); diff --git a/gnu/time_r.c b/gnu/time_r.c index 8cf8329f..a701ccc5 100644 --- a/gnu/time_r.c +++ b/gnu/time_r.c @@ -1,6 +1,6 @@ /* Reentrant time functions like localtime_r. - Copyright (C) 2003, 2006-2007, 2010-2017 Free Software Foundation, Inc. + Copyright (C) 2003, 2006-2007, 2010-2019 Free Software Foundation, Inc. This program is free 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/time_rz.c b/gnu/time_rz.c index ad02edb2..42ae3d36 100644 --- a/gnu/time_rz.c +++ b/gnu/time_rz.c @@ -1,6 +1,6 @@ /* Time zone functions such as tzalloc and localtime_rz - Copyright 2015-2017 Free Software Foundation, Inc. + Copyright 2015-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -286,6 +286,21 @@ revert_tz (timezone_t tz) struct tm * localtime_rz (timezone_t tz, time_t const *t, struct tm *tm) { +#ifdef HAVE_LOCALTIME_INFLOOP_BUG + /* The -67768038400665599 comes from: + https://lists.gnu.org/r/bug-gnulib/2017-07/msg00142.html + On affected platforms the greatest POSIX-compatible time_t value + that could return nonnull is 67768036191766798 (when + TZ="XXX24:59:59" it resolves to the year 2**31 - 1 + 1900, on + 12-31 at 23:59:59), so test for that too while we're in the + neighborhood. */ + if (! (-67768038400665599 <= *t && *t <= 67768036191766798)) + { + errno = EOVERFLOW; + return NULL; + } +#endif + if (!tz) return gmtime_r (t, tm); else diff --git a/gnu/timegm.c b/gnu/timegm.c index 1cabf648..2ca57444 100644 --- a/gnu/timegm.c +++ b/gnu/timegm.c @@ -1,20 +1,21 @@ /* Convert UTC calendar time to simple time. Like mktime but assumes UTC. - Copyright (C) 1994, 1997, 2003-2004, 2006-2007, 2009-2017 Free Software - Foundation, Inc. This file is part of the GNU C Library. + Copyright (C) 1994-2019 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, see <https://www.gnu.org/licenses/>. */ + 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 _LIBC # include <config.h> @@ -22,14 +23,7 @@ #include <time.h> -#ifdef _LIBC -typedef time_t mktime_offset_t; -#else -# undef __gmtime_r -# define __gmtime_r gmtime_r -# define __mktime_internal mktime_internal -# include "mktime-internal.h" -#endif +#include "mktime-internal.h" time_t timegm (struct tm *tmp) diff --git a/gnu/timespec-sub.c b/gnu/timespec-sub.c index 3872f1bc..48434e81 100644 --- a/gnu/timespec-sub.c +++ b/gnu/timespec-sub.c @@ -1,6 +1,6 @@ /* Subtract two struct timespec values. - Copyright (C) 2011-2017 Free Software Foundation, Inc. + Copyright (C) 2011-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -19,7 +19,7 @@ /* Return the difference between two timespec values A and B. On overflow, return an extremal value. This assumes 0 <= tv_nsec < - TIMESPEC_RESOLUTION. */ + TIMESPEC_HZ. */ #include <config.h> #include "timespec.h" @@ -38,7 +38,7 @@ timespec_sub (struct timespec a, struct timespec b) if (ns < 0) { - rns = ns + TIMESPEC_RESOLUTION; + rns = ns + TIMESPEC_HZ; if (bs < tmax) bs++; else if (- TYPE_SIGNED (time_t) < rs) @@ -63,7 +63,7 @@ timespec_sub (struct timespec a, struct timespec b) else { rs = tmax; - rns = TIMESPEC_RESOLUTION - 1; + rns = TIMESPEC_HZ - 1; } } diff --git a/gnu/timespec.h b/gnu/timespec.h index 84c8146a..26f1bc1a 100644 --- a/gnu/timespec.h +++ b/gnu/timespec.h @@ -1,6 +1,6 @@ /* timespec -- System time interface - Copyright (C) 2000, 2002, 2004-2005, 2007, 2009-2017 Free Software + Copyright (C) 2000, 2002, 2004-2005, 2007, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -17,9 +17,9 @@ along with this program. If not, see <https://www.gnu.org/licenses/>. */ #if ! defined TIMESPEC_H -# define TIMESPEC_H +#define TIMESPEC_H -# include <time.h> +#include <time.h> #ifndef _GL_INLINE_HEADER_BEGIN #error "Please include config.h first." @@ -33,13 +33,20 @@ _GL_INLINE_HEADER_BEGIN extern "C" { #endif +#include "arg-nonnull.h" #include "verify.h" -/* Resolution of timespec timestamps (in units per second), and log - base 10 of the resolution. */ +/* Inverse resolution of timespec timestamps (in units per second), + and log base 10 of the inverse resolution. */ -enum { TIMESPEC_RESOLUTION = 1000000000 }; -enum { LOG10_TIMESPEC_RESOLUTION = 9 }; +enum { TIMESPEC_HZ = 1000000000 }; +enum { LOG10_TIMESPEC_HZ = 9 }; + +/* Obsolescent names for backward compatibility. + They are misnomers, because TIMESPEC_RESOLUTION is not a resolution. */ + +enum { TIMESPEC_RESOLUTION = TIMESPEC_HZ }; +enum { LOG10_TIMESPEC_RESOLUTION = LOG10_TIMESPEC_HZ }; /* Return a timespec with seconds S and nanoseconds NS. */ @@ -87,9 +94,9 @@ timespec_cmp (struct timespec a, struct timespec b) return 1; /* Pacify gcc -Wstrict-overflow (bleeding-edge circa 2017-10-02). See: - http://lists.gnu.org/r/bug-gnulib/2017-10/msg00006.html */ - assume (-1 <= a.tv_nsec && a.tv_nsec <= 2 * TIMESPEC_RESOLUTION); - assume (-1 <= b.tv_nsec && b.tv_nsec <= 2 * TIMESPEC_RESOLUTION); + https://lists.gnu.org/r/bug-gnulib/2017-10/msg00006.html */ + assume (-1 <= a.tv_nsec && a.tv_nsec <= 2 * TIMESPEC_HZ); + assume (-1 <= b.tv_nsec && b.tv_nsec <= 2 * TIMESPEC_HZ); return a.tv_nsec - b.tv_nsec; } @@ -116,8 +123,9 @@ timespectod (struct timespec a) return a.tv_sec + a.tv_nsec / 1e9; } -void gettime (struct timespec *); -int settime (struct timespec const *); +struct timespec current_timespec (void); +void gettime (struct timespec *) _GL_ARG_NONNULL ((1)); +int settime (struct timespec const *) _GL_ARG_NONNULL ((1)); #ifdef __cplusplus } diff --git a/gnu/tzset.c b/gnu/tzset.c index a259774e..a77633d2 100644 --- a/gnu/tzset.c +++ b/gnu/tzset.c @@ -1,6 +1,6 @@ /* Provide tzset for systems that don't have it or for which it's broken. - Copyright (C) 2001-2003, 2005-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2001-2003, 2005-2007, 2009-2019 Free Software Foundation, Inc. This 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 @@ tzset (void) struct tm save = *localtime_buffer_addr; #endif -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ /* Rectify the value of the environment variable TZ. There are four possible kinds of such values: - Traditional US time zone names, e.g. "PST8PDT". Syntax: see diff --git a/gnu/unistd--.h b/gnu/unistd--.h index cdfa2304..12688543 100644 --- a/gnu/unistd--.h +++ b/gnu/unistd--.h @@ -1,6 +1,6 @@ /* Like unistd.h, but redefine some names to avoid glitches. - Copyright (C) 2005, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2005, 2009-2019 Free Software Foundation, Inc. This program is free 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-safer.h b/gnu/unistd-safer.h index 74f0591a..8eebffca 100644 --- a/gnu/unistd-safer.h +++ b/gnu/unistd-safer.h @@ -1,6 +1,6 @@ /* Invoke unistd-like functions, but avoid some glitches. - Copyright (C) 2001, 2003, 2005, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2001, 2003, 2005, 2009-2019 Free Software Foundation, Inc. This program is free 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.in.h b/gnu/unistd.in.h index 91447835..a10ca28a 100644 --- a/gnu/unistd.in.h +++ b/gnu/unistd.in.h @@ -1,5 +1,5 @@ /* Substitute for and wrapper around <unistd.h>. - Copyright (C) 2003-2017 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -61,7 +61,7 @@ /* But avoid namespace pollution on glibc systems. */ #if (!(defined SEEK_CUR && defined SEEK_END && defined SEEK_SET) \ || ((@GNULIB_UNLINK@ || defined GNULIB_POSIXCHECK) \ - && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) \ + && (defined _WIN32 && ! defined __CYGWIN__)) \ || ((@GNULIB_SYMLINKAT@ || defined GNULIB_POSIXCHECK) \ && defined __CYGWIN__)) \ && ! defined __GLIBC__ @@ -94,13 +94,13 @@ lseek(), read(), unlink(), write() in <io.h>. */ #if ((@GNULIB_CHDIR@ || @GNULIB_GETCWD@ || @GNULIB_RMDIR@ \ || defined GNULIB_POSIXCHECK) \ - && ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) + && (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__) + && (defined _WIN32 && ! defined __CYGWIN__) # include <io.h> #endif @@ -400,6 +400,13 @@ _GL_WARN_ON_USE (dup3, "dup3 is unportable - " #if @GNULIB_ENVIRON@ +# if defined __CYGWIN__ && !defined __i386__ +/* The 'environ' variable is defined in a DLL. Therefore its declaration needs + the '__declspec(dllimport)' attribute, but the system's <unistd.h> lacks it. + This leads to a link error on 64-bit Cygwin when the option + -Wl,--disable-auto-import is in use. */ +_GL_EXTERN_C __declspec(dllimport) char **environ; +# endif # if !@HAVE_DECL_ENVIRON@ /* Set of environment variables and values. An array of strings of the form "VARIABLE=VALUE", terminated with a NULL. */ @@ -425,12 +432,12 @@ extern char **environ; #elif defined GNULIB_POSIXCHECK # if HAVE_RAW_DECL_ENVIRON _GL_UNISTD_INLINE char *** +_GL_WARN_ON_USE_ATTRIBUTE ("environ is unportable - " + "use gnulib module environ for portability") rpl_environ (void) { return &environ; } -_GL_WARN_ON_USE (rpl_environ, "environ is unportable - " - "use gnulib module environ for portability"); # undef environ # define environ (*rpl_environ ()) # endif @@ -928,6 +935,36 @@ _GL_WARN_ON_USE (getpagesize, "getpagesize is unportable - " #endif +#if @GNULIB_GETPASS@ +/* Function getpass() from module 'getpass': + Read a password from /dev/tty or stdin. + Function getpass() from module 'getpass-gnu': + Read a password of arbitrary length from /dev/tty or stdin. */ +# if @REPLACE_GETPASS@ +# if !(defined __cplusplus && defined GNULIB_NAMESPACE) +# undef getpass +# define getpass rpl_getpass +# endif +_GL_FUNCDECL_RPL (getpass, char *, (const char *prompt) + _GL_ARG_NONNULL ((1))); +_GL_CXXALIAS_RPL (getpass, char *, (const char *prompt)); +# else +# if !@HAVE_GETPASS@ +_GL_FUNCDECL_SYS (getpass, char *, (const char *prompt) + _GL_ARG_NONNULL ((1))); +# endif +_GL_CXXALIAS_SYS (getpass, char *, (const char *prompt)); +# endif +_GL_CXXALIASWARN (getpass); +#elif defined GNULIB_POSIXCHECK +# undef getpass +# if HAVE_RAW_DECL_GETPASS +_GL_WARN_ON_USE (getpass, "getpass is unportable - " + "use gnulib module getpass or getpass-gnu for portability"); +# endif +#endif + + #if @GNULIB_GETUSERSHELL@ /* Return the next valid login shell on the system, or NULL when the end of the list has been reached. */ @@ -1482,7 +1519,7 @@ _GL_FUNCDECL_RPL (truncate, int, (const char *filename, off_t length) _GL_ARG_NONNULL ((1))); _GL_CXXALIAS_RPL (truncate, int, (const char *filename, off_t length)); # else -# if !@HAVE_TRUNCATE@ +# if !@HAVE_DECL_TRUNCATE@ _GL_FUNCDECL_SYS (truncate, int, (const char *filename, off_t length) _GL_ARG_NONNULL ((1))); # endif diff --git a/gnu/unitypes.in.h b/gnu/unitypes.in.h index 01e0495d..631654bd 100644 --- a/gnu/unitypes.in.h +++ b/gnu/unitypes.in.h @@ -1,5 +1,5 @@ /* Elementary types and macros for the GNU UniString library. - Copyright (C) 2002, 2005-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2002, 2005-2006, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published diff --git a/gnu/uniwidth.in.h b/gnu/uniwidth.in.h index 360ff333..80c5eeab 100644 --- a/gnu/uniwidth.in.h +++ b/gnu/uniwidth.in.h @@ -1,5 +1,5 @@ /* Display width functions. - Copyright (C) 2001-2002, 2005, 2007, 2009-2017 Free Software Foundation, + Copyright (C) 2001-2002, 2005, 2007, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it diff --git a/gnu/uniwidth/cjk.h b/gnu/uniwidth/cjk.h index 95723f5f..9870422c 100644 --- a/gnu/uniwidth/cjk.h +++ b/gnu/uniwidth/cjk.h @@ -1,5 +1,5 @@ /* Test for CJK encoding. - Copyright (C) 2001-2002, 2005-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2001-2002, 2005-2007, 2009-2019 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 diff --git a/gnu/uniwidth/width.c b/gnu/uniwidth/width.c index 3e286f49..a7f59b18 100644 --- a/gnu/uniwidth/width.c +++ b/gnu/uniwidth/width.c @@ -1,5 +1,5 @@ /* Determine display width of Unicode character. - Copyright (C) 2001-2002, 2006-2017 Free Software Foundation, Inc. + Copyright (C) 2001-2002, 2006-2019 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2002. This program is free software: you can redistribute it and/or modify it @@ -32,7 +32,7 @@ * - Zero width characters; generated from * "grep '^[^;]*;ZERO WIDTH ' UnicodeData.txt" */ -static const unsigned char nonspacing_table_data[36*64] = { +static const unsigned char nonspacing_table_data[38*64] = { /* 0x0000-0x01ff */ 0xff, 0xff, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, /* 0x0000-0x003f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, /* 0x0040-0x007f */ @@ -73,7 +73,7 @@ static const unsigned char nonspacing_table_data[36*64] = { 0x00, 0x00, 0xc0, 0xfb, 0xef, 0x3e, 0x00, 0x00, /* 0x0800-0x083f */ 0x00, 0x00, 0x00, 0x0e, 0x00, 0x00, 0x00, 0x00, /* 0x0840-0x087f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x0880-0x08bf */ - 0x00, 0x00, 0x00, 0x00, 0xf8, 0xff, 0xff, 0xff, /* 0x08c0-0x08ff */ + 0x00, 0x00, 0xf0, 0xff, 0xff, 0xff, 0xff, 0xff, /* 0x08c0-0x08ff */ 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x14, /* 0x0900-0x093f */ 0xfe, 0x21, 0xfe, 0x00, 0x0c, 0x00, 0x00, 0x00, /* 0x0940-0x097f */ 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, /* 0x0980-0x09bf */ @@ -135,7 +135,7 @@ static const unsigned char nonspacing_table_data[36*64] = { /* 0x1800-0x19ff */ 0x00, 0x78, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1800-0x183f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1840-0x187f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, /* 0x1880-0x18bf */ + 0x60, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, /* 0x1880-0x18bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x18c0-0x18ff */ 0x00, 0x00, 0x00, 0x00, 0x87, 0x01, 0x04, 0x0e, /* 0x1900-0x193f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1940-0x197f */ @@ -158,7 +158,7 @@ static const unsigned char nonspacing_table_data[36*64] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d00-0x1d3f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d40-0x1d7f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1d80-0x1dbf */ - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xf0, /* 0x1dc0-0x1dff */ + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x3f, 0xf8, /* 0x1dc0-0x1dff */ /* 0x2000-0x21ff */ 0x00, 0xf8, 0x00, 0x00, 0x00, 0x7c, 0x00, 0x00, /* 0x2000-0x203f */ 0x00, 0x00, 0x00, 0x00, 0xdf, 0xff, 0x00, 0x00, /* 0x2040-0x207f */ @@ -199,7 +199,7 @@ static const unsigned char nonspacing_table_data[36*64] = { 0x44, 0x08, 0x00, 0x00, 0x60, 0x00, 0x00, 0x00, /* 0xa800-0xa83f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa840-0xa87f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa880-0xa8bf */ - 0x10, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x00, /* 0xa8c0-0xa8ff */ + 0x30, 0x00, 0x00, 0x00, 0xff, 0xff, 0x03, 0x00, /* 0xa8c0-0xa8ff */ 0x00, 0x00, 0x00, 0x00, 0xc0, 0x3f, 0x00, 0x00, /* 0xa900-0xa93f */ 0x80, 0xff, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0xa940-0xa97f */ 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc8, 0x13, /* 0xa980-0xa9bf */ @@ -268,7 +268,7 @@ static const unsigned char nonspacing_table_data[36*64] = { 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x7f, /* 0x11180-0x111bf */ 0x00, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x111c0-0x111ff */ /* 0x11200-0x113ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xd3, 0x00, /* 0x11200-0x1123f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xd3, 0x40, /* 0x11200-0x1123f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11240-0x1127f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11280-0x112bf */ 0x00, 0x00, 0x00, 0x80, 0xf8, 0x07, 0x00, 0x00, /* 0x112c0-0x112ff */ @@ -277,8 +277,8 @@ static const unsigned char nonspacing_table_data[36*64] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11380-0x113bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x113c0-0x113ff */ /* 0x11400-0x115ff */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11400-0x1143f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11440-0x1147f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, /* 0x11400-0x1143f */ + 0x5c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11440-0x1147f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, 0x85, /* 0x11480-0x114bf */ 0x0d, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x114c0-0x114ff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11500-0x1153f */ @@ -294,6 +294,15 @@ static const unsigned char nonspacing_table_data[36*64] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11740-0x1177f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11780-0x117bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x117c0-0x117ff */ + /* 0x11c00-0x11dff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7f, 0x3f, /* 0x11c00-0x11c3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11c40-0x11c7f */ + 0x00, 0x00, 0xfc, 0xff, 0xff, 0xfc, 0x6d, 0x00, /* 0x11c80-0x11cbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11cc0-0x11cff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11d00-0x11d3f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11d40-0x11d7f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11d80-0x11dbf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x11dc0-0x11dff */ /* 0x16a00-0x16bff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a00-0x16a3f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x16a40-0x16a7f */ @@ -348,13 +357,22 @@ static const unsigned char nonspacing_table_data[36*64] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db40-0x1db7f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1db80-0x1dbbf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1dbc0-0x1dbff */ + /* 0x1e000-0x1e1ff */ + 0x7f, 0xff, 0xff, 0xf9, 0xdb, 0x07, 0x00, 0x00, /* 0x1e000-0x1e03f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e040-0x1e07f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e080-0x1e0bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e0c0-0x1e0ff */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e100-0x1e13f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e140-0x1e17f */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e180-0x1e1bf */ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e1c0-0x1e1ff */ /* 0x1e800-0x1e9ff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e800-0x1e83f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e840-0x1e87f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e880-0x1e8bf */ 0x00, 0x00, 0x7f, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e8c0-0x1e8ff */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e900-0x1e93f */ - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e940-0x1e97f */ + 0xf0, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e940-0x1e97f */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, /* 0x1e980-0x1e9bf */ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 /* 0x1e9c0-0x1e9ff */ }; @@ -376,20 +394,20 @@ static const signed char nonspacing_table_ind[248] = { -1, -1, -1, -1, -1, -1, -1, -1, /* 0xe000-0xefff */ -1, -1, -1, -1, -1, 20, -1, 21, /* 0xf000-0xffff */ 22, 23, -1, -1, -1, 24, -1, -1, /* 0x10000-0x10fff */ - 25, 26, 27, 28, -1, -1, -1, -1, /* 0x11000-0x11fff */ + 25, 26, 27, 28, -1, -1, 29, -1, /* 0x11000-0x11fff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x12000-0x12fff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x13000-0x13fff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x14000-0x14fff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x15000-0x15fff */ - -1, -1, -1, -1, -1, 29, -1, 30, /* 0x16000-0x16fff */ + -1, -1, -1, -1, -1, 30, -1, 31, /* 0x16000-0x16fff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x17000-0x17fff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x18000-0x18fff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x19000-0x19fff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1a000-0x1afff */ - -1, -1, -1, -1, -1, -1, 31, -1, /* 0x1b000-0x1bfff */ + -1, -1, -1, -1, -1, -1, 32, -1, /* 0x1b000-0x1bfff */ -1, -1, -1, -1, -1, -1, -1, -1, /* 0x1c000-0x1cfff */ - 32, 33, -1, -1, -1, 34, -1, -1, /* 0x1d000-0x1dfff */ - -1, -1, -1, -1, 35, -1, -1, -1 /* 0x1e000-0x1efff */ + 33, 34, -1, -1, -1, 35, -1, -1, /* 0x1d000-0x1dfff */ + 36, -1, -1, -1, 37, -1, -1, -1 /* 0x1e000-0x1efff */ }; /* Determine number of column positions required for UC. */ diff --git a/gnu/unlink.c b/gnu/unlink.c index 7527c9af..90dc9d30 100644 --- a/gnu/unlink.c +++ b/gnu/unlink.c @@ -1,6 +1,6 @@ /* Work around unlink bugs. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free 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/unlinkat.c b/gnu/unlinkat.c index d55bce7d..2b301ce3 100644 --- a/gnu/unlinkat.c +++ b/gnu/unlinkat.c @@ -1,6 +1,6 @@ /* Work around unlinkat bugs on Solaris 9 and Hurd. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free 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/unlinkdir.c b/gnu/unlinkdir.c index 69f0984f..565f0c96 100644 --- a/gnu/unlinkdir.c +++ b/gnu/unlinkdir.c @@ -1,6 +1,6 @@ /* unlinkdir.c - determine whether we can unlink directories - Copyright (C) 2005-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2009-2019 Free Software Foundation, Inc. This program is free 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/unlinkdir.h b/gnu/unlinkdir.h index 3706cd99..44cd7778 100644 --- a/gnu/unlinkdir.h +++ b/gnu/unlinkdir.h @@ -1,6 +1,6 @@ /* unlinkdir.h - determine (and maybe change) whether we can unlink directories - Copyright (C) 2005, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2005, 2009-2019 Free Software Foundation, Inc. This program is free 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/unlocked-io.h b/gnu/unlocked-io.h index be5d2b5d..ee1c0626 100644 --- a/gnu/unlocked-io.h +++ b/gnu/unlocked-io.h @@ -1,6 +1,6 @@ /* Prefer faster, non-thread-safe stdio functions if available. - Copyright (C) 2001-2004, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2001-2004, 2009-2019 Free Software Foundation, Inc. This program is free 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/unsetenv.c b/gnu/unsetenv.c index 05f4d8c1..0199280c 100644 --- a/gnu/unsetenv.c +++ b/gnu/unsetenv.c @@ -1,4 +1,4 @@ -/* Copyright (C) 1992, 1995-2002, 2005-2017 Free Software Foundation, Inc. +/* Copyright (C) 1992, 1995-2002, 2005-2019 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 diff --git a/gnu/unused-parameter.h b/gnu/unused-parameter.h index 8bd04b1f..5e57de19 100644 --- a/gnu/unused-parameter.h +++ b/gnu/unused-parameter.h @@ -1,5 +1,5 @@ /* A C macro for declaring that specific function parameters are not used. - Copyright (C) 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published diff --git a/gnu/utime.c b/gnu/utime.c index 6083e758..88973e13 100644 --- a/gnu/utime.c +++ b/gnu/utime.c @@ -1,5 +1,5 @@ /* Work around platform bugs in utime. - Copyright (C) 2017 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This 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,7 +21,7 @@ /* Specification. */ #include <utime.h> -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ # include <errno.h> # include <stdbool.h> diff --git a/gnu/utime.in.h b/gnu/utime.in.h index bbf2aba1..f4b28046 100644 --- a/gnu/utime.in.h +++ b/gnu/utime.in.h @@ -1,5 +1,5 @@ /* Substitute for and wrapper around <utime.h>. - Copyright (C) 2017 Free Software Foundation, Inc. + Copyright (C) 2017-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -45,7 +45,7 @@ /* The definition of _GL_WARN_ON_USE is copied here. */ -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ /* Define 'struct utimbuf' as an alias of 'struct _utimbuf' (or possibly, if present, 'struct __utimbuf64'). */ diff --git a/gnu/utimens.c b/gnu/utimens.c index 55545e8c..34689bcd 100644 --- a/gnu/utimens.c +++ b/gnu/utimens.c @@ -1,6 +1,6 @@ /* Set file access and modification times. - Copyright (C) 2003-2017 Free Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -39,8 +39,7 @@ GNU Emacs, which arranges for this in some other way and which defines WIN32_LEAN_AND_MEAN itself. */ -#if ((defined _WIN32 || defined __WIN32__) \ - && ! defined __CYGWIN__ && ! defined EMACS_CONFIGURATION) +#if defined _WIN32 && ! defined __CYGWIN__ && ! defined EMACS_CONFIGURATION # define USE_SETFILETIME # define WIN32_LEAN_AND_MEAN # include <windows.h> @@ -92,11 +91,11 @@ validate_timespec (struct timespec timespec[2]) if ((timespec[0].tv_nsec != UTIME_NOW && timespec[0].tv_nsec != UTIME_OMIT && ! (0 <= timespec[0].tv_nsec - && timespec[0].tv_nsec < TIMESPEC_RESOLUTION)) + && timespec[0].tv_nsec < TIMESPEC_HZ)) || (timespec[1].tv_nsec != UTIME_NOW && timespec[1].tv_nsec != UTIME_OMIT && ! (0 <= timespec[1].tv_nsec - && timespec[1].tv_nsec < TIMESPEC_RESOLUTION))) + && timespec[1].tv_nsec < TIMESPEC_HZ))) { errno = EINVAL; return -1; diff --git a/gnu/utimens.h b/gnu/utimens.h index f1dd9884..b1740960 100644 --- a/gnu/utimens.h +++ b/gnu/utimens.h @@ -1,6 +1,6 @@ /* Set file access and modification times. - Copyright 2012-2017 Free Software Foundation, Inc. + Copyright 2012-2019 Free Software Foundation, Inc. This program 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/utimensat.c b/gnu/utimensat.c index 807c4605..e9ea626e 100644 --- a/gnu/utimensat.c +++ b/gnu/utimensat.c @@ -1,5 +1,5 @@ /* Set the access and modification time of a file relative to directory fd. - Copyright (C) 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -94,10 +94,10 @@ rpl_utimensat (int fd, char const *file, struct timespec const times[2], else if (times && ((times[0].tv_nsec != UTIME_NOW && ! (0 <= times[0].tv_nsec - && times[0].tv_nsec < TIMESPEC_RESOLUTION)) + && times[0].tv_nsec < TIMESPEC_HZ)) || (times[1].tv_nsec != UTIME_NOW && ! (0 <= times[1].tv_nsec - && times[1].tv_nsec < TIMESPEC_RESOLUTION)))) + && times[1].tv_nsec < TIMESPEC_HZ)))) { errno = EINVAL; return -1; diff --git a/gnu/vasnprintf.c b/gnu/vasnprintf.c index 2462d7d5..c4759037 100644 --- a/gnu/vasnprintf.c +++ b/gnu/vasnprintf.c @@ -1,5 +1,5 @@ /* vsprintf with automatic memory allocation. - Copyright (C) 1999, 2002-2017 Free Software Foundation, Inc. + Copyright (C) 1999, 2002-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -860,7 +860,9 @@ convert_to_decimal (mpn_t a, size_t extra_zeroes) size_t a_len = a.nlimbs; /* 0.03345 is slightly larger than log(2)/(9*log(10)). */ size_t c_len = 9 * ((size_t)(a_len * (GMP_LIMB_BITS * 0.03345f)) + 1); - char *c_ptr = (char *) malloc (xsum (c_len, extra_zeroes)); + /* We need extra_zeroes bytes for zeroes, followed by c_len bytes for the + digits of a, followed by 1 byte for the terminating NUL. */ + char *c_ptr = (char *) malloc (xsum (xsum (extra_zeroes, c_len), 1)); if (c_ptr != NULL) { char *d_ptr = c_ptr; @@ -2694,7 +2696,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, errno = EILSEQ; return NULL; } - if (precision < count) + if (precision < (unsigned int) count) break; arg_end++; characters += count; @@ -4243,7 +4245,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, static const wchar_t decimal_format[] = /* Produce the same number of exponent digits as the native printf implementation. */ -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# if defined _WIN32 && ! defined __CYGWIN__ { '%', '+', '.', '3', 'd', '\0' }; # else { '%', '+', '.', '2', 'd', '\0' }; @@ -4257,7 +4259,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, static const char decimal_format[] = /* Produce the same number of exponent digits as the native printf implementation. */ -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# if defined _WIN32 && ! defined __CYGWIN__ "%+.3d"; # else "%+.2d"; @@ -4436,7 +4438,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, static const wchar_t decimal_format[] = /* Produce the same number of exponent digits as the native printf implementation. */ -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# if defined _WIN32 && ! defined __CYGWIN__ { '%', '+', '.', '3', 'd', '\0' }; # else { '%', '+', '.', '2', 'd', '\0' }; @@ -4450,7 +4452,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, static const char decimal_format[] = /* Produce the same number of exponent digits as the native printf implementation. */ -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# if defined _WIN32 && ! defined __CYGWIN__ "%+.3d"; # else "%+.2d"; @@ -4508,7 +4510,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, *p++ = '+'; /* Produce the same number of exponent digits as the native printf implementation. */ -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# if defined _WIN32 && ! defined __CYGWIN__ *p++ = '0'; # endif *p++ = '0'; @@ -4836,7 +4838,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, #if HAVE_LONG_LONG_INT case TYPE_LONGLONGINT: case TYPE_ULONGLONGINT: -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# if defined _WIN32 && ! defined __CYGWIN__ *fbp++ = 'I'; *fbp++ = '6'; *fbp++ = '4'; @@ -4872,7 +4874,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, # if ! (((__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)) \ && !defined __UCLIBC__) \ || (defined __APPLE__ && defined __MACH__) \ - || ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__)) + || (defined _WIN32 && ! defined __CYGWIN__)) fbp[1] = '%'; fbp[2] = 'n'; fbp[3] = '\0'; @@ -5125,7 +5127,7 @@ VASNPRINTF (DCHAR_T *resultbuf, size_t *lengthp, { /* Verify that snprintf() has NUL-terminated its result. */ - if (count < maxlen + if ((unsigned int) count < maxlen && ((TCHAR_T *) (result + length)) [count] != '\0') abort (); /* Portability hack. */ diff --git a/gnu/vasnprintf.h b/gnu/vasnprintf.h index 6454e3f4..5b192b21 100644 --- a/gnu/vasnprintf.h +++ b/gnu/vasnprintf.h @@ -1,5 +1,5 @@ /* vsprintf with automatic memory allocation. - Copyright (C) 2002-2004, 2007-2017 Free Software Foundation, Inc. + Copyright (C) 2002-2004, 2007-2019 Free Software Foundation, Inc. This program is free 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/vasprintf.c b/gnu/vasprintf.c index 0963f27d..f5857ca1 100644 --- a/gnu/vasprintf.c +++ b/gnu/vasprintf.c @@ -1,5 +1,5 @@ /* Formatted output to strings. - Copyright (C) 1999, 2002, 2006-2017 Free Software Foundation, Inc. + Copyright (C) 1999, 2002, 2006-2019 Free Software Foundation, Inc. This program is free 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/verify.h b/gnu/verify.h index e0b48613..b2e5f644 100644 --- a/gnu/verify.h +++ b/gnu/verify.h @@ -1,6 +1,6 @@ /* Compile-time assert-like macros. - Copyright (C) 2005-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2005-2006, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -276,7 +276,8 @@ template <int w> when 'assume' silences warnings even with older GCCs. */ # define assume(R) ((R) ? (void) 0 : __builtin_trap ()) #else -# define assume(R) ((void) (0 && (R))) + /* Some tools grok NOTREACHED, e.g., Oracle Studio 12.6. */ +# define assume(R) ((R) ? (void) 0 : /*NOTREACHED*/ (void) 0) #endif /* @assert.h omit end@ */ diff --git a/gnu/version-etc-fsf.c b/gnu/version-etc-fsf.c index 52900785..b00819d1 100644 --- a/gnu/version-etc-fsf.c +++ b/gnu/version-etc-fsf.c @@ -1,5 +1,5 @@ /* Variable with FSF copyright information, for version-etc. - Copyright (C) 1999-2006, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1999-2006, 2009-2019 Free Software Foundation, Inc. This program is free 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/version-etc.c b/gnu/version-etc.c index 703740ca..9ca9a562 100644 --- a/gnu/version-etc.c +++ b/gnu/version-etc.c @@ -1,5 +1,5 @@ /* Print --version and bug-reporting information in a consistent format. - Copyright (C) 1999-2017 Free Software Foundation, Inc. + Copyright (C) 1999-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -23,7 +23,6 @@ #include <stdarg.h> #include <stdio.h> -#include <stdlib.h> #if USE_UNLOCKED_IO # include "unlocked-io.h" @@ -38,7 +37,7 @@ # define PACKAGE PACKAGE_TARNAME #endif -enum { COPYRIGHT_YEAR = 2017 }; +enum { COPYRIGHT_YEAR = 2019 }; /* The three functions below display the --version information the standard way. @@ -95,8 +94,9 @@ There is NO WARRANTY, to the extent permitted by law.\n\ switch (n_authors) { case 0: - /* The caller must provide at least one author name. */ - abort (); + /* No authors are given. The caller should output authorship + info after calling this function. */ + break; case 1: /* TRANSLATORS: %s denotes an author name. */ fprintf (stream, _("Written by %s.\n"), authors[0]); diff --git a/gnu/version-etc.h b/gnu/version-etc.h index c7323b85..225cfcdd 100644 --- a/gnu/version-etc.h +++ b/gnu/version-etc.h @@ -1,5 +1,5 @@ /* Print --version and bug-reporting information in a consistent format. - Copyright (C) 1999, 2003, 2005, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1999, 2003, 2005, 2009-2019 Free Software Foundation, Inc. This program is free 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/vsnprintf.c b/gnu/vsnprintf.c index 5aafe286..6a209f73 100644 --- a/gnu/vsnprintf.c +++ b/gnu/vsnprintf.c @@ -1,5 +1,5 @@ /* Formatted output to strings. - Copyright (C) 2004, 2006-2017 Free Software Foundation, Inc. + Copyright (C) 2004, 2006-2019 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 diff --git a/gnu/warn-on-use.h b/gnu/warn-on-use.h index cae8c3ee..7d11a156 100644 --- a/gnu/warn-on-use.h +++ b/gnu/warn-on-use.h @@ -1,5 +1,5 @@ /* A C macro for emitting warnings if a function is used. - Copyright (C) 2010-2017 Free Software Foundation, Inc. + Copyright (C) 2010-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published @@ -20,23 +20,32 @@ 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 + _GL_WARN_ON_USE_ATTRIBUTE ("literal string") expands to the + attribute used in _GL_WARN_ON_USE. If the compiler does not support + this feature, it expands to empty. + + These macros are 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. + instead. + _GL_WARN_ON_USE is for functions with 'extern' linkage. + _GL_WARN_ON_USE_ATTRIBUTE is for functions with 'static' or 'inline' + linkage. + + 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>]], @@ -54,12 +63,21 @@ (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 + #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 + or better (avoiding contradictory use of 'static' and 'extern'): + #if HAVE_RAW_DECL_ENVIRON + static char *** + _GL_WARN_ON_USE_ATTRIBUTE ("environ is not always properly declared") + rpl_environ (void) { return &environ; } + # undef environ + # define environ (*rpl_environ ()) + #endif */ #ifndef _GL_WARN_ON_USE @@ -67,13 +85,17 @@ /* 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))) +# define _GL_WARN_ON_USE_ATTRIBUTE(message) \ + __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 +# define _GL_WARN_ON_USE_ATTRIBUTE(message) # else /* Unsupported. */ # define _GL_WARN_ON_USE(function, message) \ _GL_WARN_EXTERN_C int _gl_warn_on_use +# define _GL_WARN_ON_USE_ATTRIBUTE(message) # endif #endif diff --git a/gnu/wchar.in.h b/gnu/wchar.in.h index b3c4b1ef..17d56912 100644 --- a/gnu/wchar.in.h +++ b/gnu/wchar.in.h @@ -1,6 +1,6 @@ /* A substitute for ISO C99 <wchar.h>, for platforms that have issues. - Copyright (C) 2007-2017 Free Software Foundation, Inc. + Copyright (C) 2007-2019 Free Software Foundation, Inc. This program is free 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/wcrtomb.c b/gnu/wcrtomb.c index e9f98463..9fc40cfc 100644 --- a/gnu/wcrtomb.c +++ b/gnu/wcrtomb.c @@ -1,5 +1,5 @@ /* Convert wide character to multibyte character. - Copyright (C) 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2008-2019 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.in.h b/gnu/wctype.in.h index f0903870..0a7471fd 100644 --- a/gnu/wctype.in.h +++ b/gnu/wctype.in.h @@ -1,6 +1,6 @@ /* A substitute for ISO C99 <wctype.h>, for platforms that lack it. - Copyright (C) 2006-2017 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -60,7 +60,7 @@ isw* functions in <ctype.h>, <wchar.h> as well as in <wctype.h>. Include <ctype.h>, <wchar.h> in advance to avoid rpl_ prefix being added to the declarations. */ -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ # include <ctype.h> # include <wchar.h> #endif diff --git a/gnu/wcwidth.c b/gnu/wcwidth.c index cb2e07f3..1f081cca 100644 --- a/gnu/wcwidth.c +++ b/gnu/wcwidth.c @@ -1,5 +1,5 @@ /* Determine the number of screen columns needed for a character. - Copyright (C) 2006-2007, 2010-2017 Free Software Foundation, Inc. + Copyright (C) 2006-2007, 2010-2019 Free Software Foundation, Inc. This 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,17 +26,40 @@ #include "streq.h" #include "uniwidth.h" +/* Returns 1 if the current locale is an UTF-8 locale, 0 otherwise. */ +static inline int +is_locale_utf8 (void) +{ + const char *encoding = locale_charset (); + return STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0, 0); +} + +#if GNULIB_WCHAR_SINGLE +/* When we know that the locale does not change, provide a speedup by + caching the value of is_locale_utf8. */ +static int cached_is_locale_utf8 = -1; +static inline int +is_locale_utf8_cached (void) +{ + if (cached_is_locale_utf8 < 0) + cached_is_locale_utf8 = is_locale_utf8 (); + return cached_is_locale_utf8; +} +#else +/* By default, don't make assumptions, hence no caching. */ +# define is_locale_utf8_cached is_locale_utf8 +#endif + int wcwidth (wchar_t wc) #undef wcwidth { /* In UTF-8 locales, use a Unicode aware width function. */ - const char *encoding = locale_charset (); - if (STREQ_OPT (encoding, "UTF-8", 'U', 'T', 'F', '-', '8', 0, 0, 0 ,0)) + if (is_locale_utf8_cached ()) { /* We assume that in a UTF-8 locale, a wide character is the same as a Unicode character. */ - return uc_width (wc, encoding); + return uc_width (wc, "UTF-8"); } else { diff --git a/gnu/write.c b/gnu/write.c index 91b59917..ffa0d068 100644 --- a/gnu/write.c +++ b/gnu/write.c @@ -1,5 +1,5 @@ /* POSIX compatible write() function. - Copyright (C) 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2008-2019 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2008. This program is free software: you can redistribute it and/or modify @@ -25,7 +25,7 @@ GetLastError() = ERROR_NO_DATA, and write() in consequence fails with error EINVAL. */ -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ # include <errno.h> # include <signal.h> diff --git a/gnu/xalloc-die.c b/gnu/xalloc-die.c index 3626c8b5..295f8d8e 100644 --- a/gnu/xalloc-die.c +++ b/gnu/xalloc-die.c @@ -1,6 +1,6 @@ /* Report a memory allocation failure and exit. - Copyright (C) 1997-2000, 2002-2004, 2006, 2009-2017 Free Software + Copyright (C) 1997-2000, 2002-2004, 2006, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/xalloc-oversized.h b/gnu/xalloc-oversized.h index ae4fbc77..e3068c83 100644 --- a/gnu/xalloc-oversized.h +++ b/gnu/xalloc-oversized.h @@ -1,6 +1,6 @@ /* xalloc-oversized.h -- memory allocation size checking - Copyright (C) 1990-2000, 2003-2004, 2006-2017 Free Software Foundation, Inc. + Copyright (C) 1990-2000, 2003-2004, 2006-2019 Free Software Foundation, Inc. This program is free 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/xalloc.h b/gnu/xalloc.h index 4f675e0a..fc7e86bd 100644 --- a/gnu/xalloc.h +++ b/gnu/xalloc.h @@ -1,6 +1,6 @@ /* xalloc.h -- malloc with out-of-memory checking - Copyright (C) 1990-2000, 2003-2004, 2006-2017 Free Software Foundation, Inc. + Copyright (C) 1990-2000, 2003-2004, 2006-2019 Free Software Foundation, Inc. This 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,12 +36,6 @@ extern "C" { #endif -#if __GNUC__ >= 3 -# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) -#else -# define _GL_ATTRIBUTE_MALLOC -#endif - #if ! defined __clang__ && \ (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 3)) # define _GL_ATTRIBUTE_ALLOC_SIZE(args) __attribute__ ((__alloc_size__ args)) diff --git a/gnu/xasprintf.c b/gnu/xasprintf.c index 6de3c359..8188983f 100644 --- a/gnu/xasprintf.c +++ b/gnu/xasprintf.c @@ -1,5 +1,5 @@ /* vasprintf and asprintf with out-of-memory checking. - Copyright (C) 1999, 2002-2004, 2006, 2009-2017 Free Software Foundation, + Copyright (C) 1999, 2002-2004, 2006, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/xgetcwd.c b/gnu/xgetcwd.c index 25fa6560..acbbe1cb 100644 --- a/gnu/xgetcwd.c +++ b/gnu/xgetcwd.c @@ -1,6 +1,6 @@ /* xgetcwd.c -- return current directory with unlimited length - Copyright (C) 2001, 2003-2004, 2006-2007, 2009-2017 Free Software + Copyright (C) 2001, 2003-2004, 2006-2007, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/xgetcwd.h b/gnu/xgetcwd.h index 2064d9bd..18b5b9fd 100644 --- a/gnu/xgetcwd.h +++ b/gnu/xgetcwd.h @@ -1,5 +1,5 @@ /* prototype for xgetcwd - Copyright (C) 1995, 2001, 2003, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 1995, 2001, 2003, 2009-2019 Free Software Foundation, Inc. This program is free 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/xmalloc.c b/gnu/xmalloc.c index c8dbc610..cbe9a4f5 100644 --- a/gnu/xmalloc.c +++ b/gnu/xmalloc.c @@ -1,6 +1,6 @@ /* xmalloc.c -- malloc with out of memory checking - Copyright (C) 1990-2000, 2002-2006, 2008-2017 Free Software Foundation, Inc. + Copyright (C) 1990-2000, 2002-2006, 2008-2019 Free Software Foundation, Inc. This program is free 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/xsize.h b/gnu/xsize.h index becaea17..ecfd478d 100644 --- a/gnu/xsize.h +++ b/gnu/xsize.h @@ -1,6 +1,6 @@ /* xsize.h -- Checked size_t computations. - Copyright (C) 2003, 2008-2017 Free Software Foundation, Inc. + Copyright (C) 2003, 2008-2019 Free Software Foundation, Inc. This program is free 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/xstrndup.c b/gnu/xstrndup.c index c63d7411..a9738291 100644 --- a/gnu/xstrndup.c +++ b/gnu/xstrndup.c @@ -1,6 +1,6 @@ /* Duplicate a bounded initial segment of a string, with out-of-memory checking. - Copyright (C) 2003, 2006-2007, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2003, 2006-2007, 2009-2019 Free Software Foundation, Inc. This program is free 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/xstrndup.h b/gnu/xstrndup.h index 0da5449c..360ccfdb 100644 --- a/gnu/xstrndup.h +++ b/gnu/xstrndup.h @@ -1,6 +1,6 @@ /* Duplicate a bounded initial segment of a string, with out-of-memory checking. - Copyright (C) 2003, 2009-2017 Free Software Foundation, Inc. + Copyright (C) 2003, 2009-2019 Free Software Foundation, Inc. This 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,4 +20,4 @@ /* Return a newly allocated copy of at most N bytes of STRING. In other words, return a copy of the initial segment of length N of STRING. */ -extern char *xstrndup (const char *string, size_t n); +extern char *xstrndup (const char *string, size_t n) _GL_ATTRIBUTE_MALLOC; diff --git a/gnu/xstrtol-error.c b/gnu/xstrtol-error.c index 98016d68..a0d10c28 100644 --- a/gnu/xstrtol-error.c +++ b/gnu/xstrtol-error.c @@ -1,6 +1,6 @@ /* A more useful interface to strtol. - Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2017 Free Software + Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/xstrtol.c b/gnu/xstrtol.c index 4ff6034c..ab73d040 100644 --- a/gnu/xstrtol.c +++ b/gnu/xstrtol.c @@ -1,6 +1,6 @@ /* A more useful interface to strtol. - Copyright (C) 1995-1996, 1998-2001, 2003-2007, 2009-2017 Free Software + Copyright (C) 1995-1996, 1998-2001, 2003-2007, 2009-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify @@ -41,20 +41,8 @@ #include <string.h> #include "assure.h" -#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 +#define TYPE_SIGNED(t) (! ((t) 0 < (t) -1)) static strtol_error bkm_scale (__strtol_t *x, int scale_factor) diff --git a/gnu/xstrtol.h b/gnu/xstrtol.h index 00ba14d2..fff320d5 100644 --- a/gnu/xstrtol.h +++ b/gnu/xstrtol.h @@ -1,6 +1,6 @@ /* A more useful interface to strtol. - Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2017 Free Software + Copyright (C) 1995-1996, 1998-1999, 2001-2004, 2006-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify diff --git a/gnu/xvasprintf.c b/gnu/xvasprintf.c index f165a384..17b053a3 100644 --- a/gnu/xvasprintf.c +++ b/gnu/xvasprintf.c @@ -1,5 +1,5 @@ /* vasprintf and asprintf with out-of-memory checking. - Copyright (C) 1999, 2002-2004, 2006-2017 Free Software Foundation, Inc. + Copyright (C) 1999, 2002-2004, 2006-2019 Free Software Foundation, Inc. This program is free 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/xvasprintf.h b/gnu/xvasprintf.h index 453f7acb..d4debcca 100644 --- a/gnu/xvasprintf.h +++ b/gnu/xvasprintf.h @@ -1,5 +1,5 @@ /* vasprintf and asprintf with out-of-memory checking. - Copyright (C) 2002-2004, 2006-2017 Free Software Foundation, Inc. + Copyright (C) 2002-2004, 2006-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/lib/Makefile.am b/lib/Makefile.am index cc108feb..21b0ae85 100644 --- a/lib/Makefile.am +++ b/lib/Makefile.am @@ -1,7 +1,6 @@ # Makefile for GNU tar library. -*- Makefile -*- -# Copyright 1994-1997, 1999-2001, 2003-2007, 2009-2010, 2013-2014, -# 2016-2017 Free Software Foundation, Inc. +# Copyright 1994-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/lib/Makefile.in b/lib/Makefile.in index 91b399a9..52a0dc06 100644 --- a/lib/Makefile.in +++ b/lib/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -16,8 +16,7 @@ # Makefile for GNU tar library. -*- Makefile -*- -# Copyright 1994-1997, 1999-2001, 2003-2007, 2009-2010, 2013-2014, -# 2016-2017 Free Software Foundation, Inc. +# Copyright 1994-2019 Free Software Foundation, Inc. # This file is part of GNU tar. @@ -36,7 +35,17 @@ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -100,13 +109,11 @@ build_triplet = @build@ host_triplet = @host@ @TAR_COND_XATTR_H_FALSE@am__append_1 = attr/xattr.h subdir = lib -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/build-aux/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ + $(top_srcdir)/m4/__inline.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/acl.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argp.m4 \ - $(top_srcdir)/m4/asm-underscore.m4 \ $(top_srcdir)/m4/backupfile.m4 $(top_srcdir)/m4/bison.m4 \ $(top_srcdir)/m4/btowc.m4 $(top_srcdir)/m4/builtin-expect.m4 \ $(top_srcdir)/m4/canonicalize.m4 \ @@ -126,11 +133,12 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/extern-inline.m4 \ $(top_srcdir)/m4/faccessat.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/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \ - $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpending.m4 \ + $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.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/flexmember.m4 \ + $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \ + $(top_srcdir)/m4/fnmatch_h.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 \ @@ -144,7 +152,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/group-member.m4 \ - $(top_srcdir)/m4/hard-locale.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.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 \ @@ -239,6 +246,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -309,6 +318,8 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ @@ -400,6 +411,7 @@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ +GNULIB_FNMATCH = @GNULIB_FNMATCH@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ @@ -432,6 +444,7 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ @@ -448,6 +461,7 @@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ +GNULIB_LOCALENAME = @GNULIB_LOCALENAME@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ @@ -686,6 +700,7 @@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ +HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ @@ -709,6 +724,9 @@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ +HAVE_FNMATCH = @HAVE_FNMATCH@ +HAVE_FNMATCH_H = @HAVE_FNMATCH_H@ +HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ @@ -721,13 +739,16 @@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ +HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ +HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ @@ -760,6 +781,7 @@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ +HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ @@ -830,7 +852,6 @@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ -HAVE_TRUNCATE = @HAVE_TRUNCATE@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ @@ -885,8 +906,6 @@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ -HOST_CPU = @HOST_CPU@ -HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ @@ -931,6 +950,7 @@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ +NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_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@ @@ -958,6 +978,7 @@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_FNMATCH_H = @NEXT_FNMATCH_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ @@ -1018,9 +1039,11 @@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ +REPLACE_FNMATCH = @REPLACE_FNMATCH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ +REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ @@ -1038,6 +1061,7 @@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ISATTY = @REPLACE_ISATTY@ @@ -1068,6 +1092,7 @@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ @@ -1289,7 +1314,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits lib/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnits lib/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -1549,6 +1573,8 @@ uninstall-am: mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am +.PRECIOUS: Makefile + rmt-command.h : Makefile $(AM_V_GEN)rm -f $@-t $@ $(AM_V_at)echo "#ifndef DEFAULT_RMT_COMMAND" >> $@-t diff --git a/lib/attr-xattr.in.h b/lib/attr-xattr.in.h index 5052aee6..62ea723c 100644 --- a/lib/attr-xattr.in.h +++ b/lib/attr-xattr.in.h @@ -1,5 +1,5 @@ /* Replacement <attr/xattr.h> for platforms that lack it. - Copyright 2012-2014, 2016-2017 Free Software Foundation, Inc. + Copyright 2012-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/lib/stdopen.c b/lib/stdopen.c index bb9ba601..0e4f724c 100644 --- a/lib/stdopen.c +++ b/lib/stdopen.c @@ -1,7 +1,6 @@ /* stdopen.c - ensure that the three standard file descriptors are in use - Copyright 2005, 2007, 2013-2014, 2016-2017 Free Software Foundation, - Inc. + Copyright 2005-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/lib/wordsplit.c b/lib/wordsplit.c index f2ecadaf..661a4f8b 100644 --- a/lib/wordsplit.c +++ b/lib/wordsplit.c @@ -1,5 +1,5 @@ /* wordsplit - a word splitter - Copyright (C) 2009-2014, 2016-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2018 Sergey Poznyakoff This program 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,10 +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, see <http://www.gnu.org/licenses/>. - - Written by Sergey Poznyakoff -*/ + with this program. If not, see <http://www.gnu.org/licenses/>. */ #ifdef HAVE_CONFIG_H # include <config.h> @@ -28,6 +25,8 @@ #include <string.h> #include <stdio.h> #include <stdarg.h> +#include <pwd.h> +#include <glob.h> #if ENABLE_NLS # include <gettext.h> @@ -37,6 +36,14 @@ #define _(msgid) gettext (msgid) #define N_(msgid) msgid +#ifndef FALLTHROUGH +# if __GNUC__ < 7 +# define FALLTHROUGH ((void) 0) +# else +# define FALLTHROUGH __attribute__ ((__fallthrough__)) +# endif +#endif + #include <wordsplit.h> #define ISWS(c) ((c)==' '||(c)=='\t'||(c)=='\n') @@ -51,13 +58,19 @@ #define ISALNUM(c) (ISALPHA(c) || ISDIGIT(c)) #define ISPRINT(c) (' ' <= ((unsigned) (c)) && ((unsigned) (c)) <= 127) +#define ISVARBEG(c) (ISALPHA(c) || c == '_') +#define ISVARCHR(c) (ISALNUM(c) || c == '_') + +#define WSP_RETURN_DELIMS(wsp) \ + ((wsp)->ws_flags & WRDSF_RETURN_DELIMS || ((wsp)->ws_options & WRDSO_MAXWORDS)) + #define ALLOC_INIT 128 #define ALLOC_INCR 128 static void _wsplt_alloc_die (struct wordsplit *wsp) { - wsp->ws_error (_("memory exhausted")); + wsp->ws_error ("%s", _("memory exhausted")); abort (); } @@ -74,6 +87,15 @@ _wsplt_error (const char *fmt, ...) static void wordsplit_free_nodes (struct wordsplit *); +static int +_wsplt_seterr (struct wordsplit *wsp, int ec) +{ + wsp->ws_errno = ec; + if (wsp->ws_flags & WRDSF_SHOWERR) + wordsplit_perror (wsp); + return ec; +} + static int _wsplt_nomem (struct wordsplit *wsp) { @@ -89,6 +111,84 @@ _wsplt_nomem (struct wordsplit *wsp) return wsp->ws_errno; } +static int wordsplit_run (const char *command, size_t length, + struct wordsplit *wsp, + unsigned flags, int lvl); + +static int wordsplit_init (struct wordsplit *wsp, const char *input, size_t len, + unsigned flags); +static int wordsplit_process_list (struct wordsplit *wsp, size_t start); +static int wordsplit_finish (struct wordsplit *wsp); + +static int +_wsplt_subsplit (struct wordsplit *wsp, struct wordsplit *wss, + char const *str, int len, + unsigned flags, int finalize) +{ + int rc; + + wss->ws_delim = wsp->ws_delim; + wss->ws_debug = wsp->ws_debug; + wss->ws_error = wsp->ws_error; + wss->ws_alloc_die = wsp->ws_alloc_die; + + if (!(flags & WRDSF_NOVAR)) + { + wss->ws_env = wsp->ws_env; + wss->ws_getvar = wsp->ws_getvar; + flags |= wsp->ws_flags & (WRDSF_ENV | WRDSF_ENV_KV | WRDSF_GETVAR); + } + if (!(flags & WRDSF_NOCMD)) + { + wss->ws_command = wsp->ws_command; + } + + if ((flags & (WRDSF_NOVAR|WRDSF_NOCMD)) != (WRDSF_NOVAR|WRDSF_NOCMD)) + { + wss->ws_closure = wsp->ws_closure; + flags |= wsp->ws_flags & WRDSF_CLOSURE; + } + + wss->ws_options = wsp->ws_options; + + flags |= WRDSF_DELIM + | WRDSF_ALLOC_DIE + | WRDSF_ERROR + | WRDSF_DEBUG + | (wsp->ws_flags & (WRDSF_SHOWDBG | WRDSF_SHOWERR | WRDSF_OPTIONS)); + + rc = wordsplit_init (wss, str, len, flags); + if (rc) + return rc; + wss->ws_lvl = wsp->ws_lvl + 1; + rc = wordsplit_process_list (wss, 0); + if (rc) + { + wordsplit_free_nodes (wss); + return rc; + } + if (finalize) + { + rc = wordsplit_finish (wss); + wordsplit_free_nodes (wss); + } + return rc; +} + +static void +_wsplt_seterr_sub (struct wordsplit *wsp, struct wordsplit *wss) +{ + if (wsp->ws_errno == WRDSE_USERERR) + free (wsp->ws_usererr); + wsp->ws_errno = wss->ws_errno; + if (wss->ws_errno == WRDSE_USERERR) + { + wsp->ws_usererr = wss->ws_usererr; + wss->ws_errno = WRDSE_EOF; + wss->ws_usererr = NULL; + } +} + static void wordsplit_init0 (struct wordsplit *wsp) { @@ -96,6 +196,7 @@ wordsplit_init0 (struct wordsplit *wsp) { if (!(wsp->ws_flags & WRDSF_APPEND)) wordsplit_free_words (wsp); + wordsplit_clearerr (wsp); } else { @@ -105,12 +206,13 @@ wordsplit_init0 (struct wordsplit *wsp) } wsp->ws_errno = 0; - wsp->ws_head = wsp->ws_tail = NULL; } +char wordsplit_c_escape_tab[] = "\\\\\"\"a\ab\bf\fn\nr\rt\tv\v"; + static int wordsplit_init (struct wordsplit *wsp, const char *input, size_t len, - int flags) + unsigned flags) { wsp->ws_flags = flags; @@ -119,23 +221,21 @@ wordsplit_init (struct wordsplit *wsp, const char *input, size_t len, if (!(wsp->ws_flags & WRDSF_ERROR)) wsp->ws_error = _wsplt_error; - if (!(wsp->ws_flags & WRDSF_NOVAR) - && !(wsp->ws_flags & (WRDSF_ENV | WRDSF_GETVAR))) + if (!(wsp->ws_flags & WRDSF_NOVAR)) { - errno = EINVAL; - wsp->ws_errno = WRDSE_USAGE; - if (wsp->ws_flags & WRDSF_SHOWERR) - wordsplit_perror (wsp); - return wsp->ws_errno; + /* These will be initialized on first variable assignment */ + wsp->ws_envidx = wsp->ws_envsiz = 0; + wsp->ws_envbuf = NULL; } 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_command) + { + _wsplt_seterr (wsp, WRDSE_USAGE); + errno = EINVAL; + return wsp->ws_errno; + } } if (wsp->ws_flags & WRDSF_SHOWDBG) @@ -166,10 +266,42 @@ wordsplit_init (struct wordsplit *wsp, const char *input, size_t len, if (!(wsp->ws_flags & WRDSF_CLOSURE)) wsp->ws_closure = NULL; + if (!(wsp->ws_flags & WRDSF_OPTIONS)) + wsp->ws_options = 0; + + if (wsp->ws_flags & WRDSF_ESCAPE) + { + if (!wsp->ws_escape[WRDSX_WORD]) + wsp->ws_escape[WRDSX_WORD] = ""; + if (!wsp->ws_escape[WRDSX_QUOTE]) + wsp->ws_escape[WRDSX_QUOTE] = ""; + } + else + { + if (wsp->ws_flags & WRDSF_CESCAPES) + { + wsp->ws_escape[WRDSX_WORD] = wordsplit_c_escape_tab; + wsp->ws_escape[WRDSX_QUOTE] = wordsplit_c_escape_tab; + wsp->ws_options |= WRDSO_OESC_QUOTE | WRDSO_OESC_WORD + | WRDSO_XESC_QUOTE | WRDSO_XESC_WORD; + } + else + { + wsp->ws_escape[WRDSX_WORD] = ""; + wsp->ws_escape[WRDSX_QUOTE] = "\\\\\"\""; + wsp->ws_options |= WRDSO_BSKEEP_QUOTE; + } + } + wsp->ws_endp = 0; + wsp->ws_wordi = 0; + if (wsp->ws_flags & WRDSF_REUSE) + wordsplit_free_nodes (wsp); + wsp->ws_head = wsp->ws_tail = NULL; + wordsplit_init0 (wsp); - + return 0; } @@ -212,6 +344,7 @@ alloc_space (struct wordsplit *wsp, size_t count) #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_DELIM 0x40 /* node is a delimiter */ #define _WSNF_EMPTYOK 0x0100 /* special flag indicating that wordsplit_add_segm must add the @@ -234,9 +367,9 @@ struct wordsplit_node }; static const char * -wsnode_flagstr (int flags) +wsnode_flagstr (unsigned flags) { - static char retbuf[6]; + static char retbuf[7]; char *p = retbuf; if (flags & _WSNF_WORD) @@ -261,6 +394,10 @@ wsnode_flagstr (int flags) *p++ = 's'; else *p++ = '-'; + if (flags & _WSNF_DELIM) + *p++ = 'd'; + else + *p++ = '-'; *p = 0; return retbuf; } @@ -341,6 +478,14 @@ wsnode_remove (struct wordsplit *wsp, struct wordsplit_node *node) node->next = node->prev = NULL; } +static struct wordsplit_node * +wsnode_tail (struct wordsplit_node *p) +{ + while (p && p->next) + p = p->next; + return p; +} + static void wsnode_insert (struct wordsplit *wsp, struct wordsplit_node *node, struct wordsplit_node *anchor, int before) @@ -356,22 +501,24 @@ wsnode_insert (struct wordsplit *wsp, struct wordsplit_node *node, wsnode_insert (wsp, node, anchor->prev, 0); else { + struct wordsplit_node *tail = wsnode_tail (node); node->prev = NULL; - node->next = anchor; - anchor->prev = node; + tail->next = anchor; + anchor->prev = tail; wsp->ws_head = node; } } else { struct wordsplit_node *p; + struct wordsplit_node *tail = wsnode_tail (node); p = anchor->next; if (p) - p->prev = node; + p->prev = tail; else - wsp->ws_tail = node; - node->next = p; + wsp->ws_tail = tail; + tail->next = p; node->prev = anchor; anchor->next = node; } @@ -418,10 +565,12 @@ wordsplit_dump_nodes (struct wordsplit *wsp) 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;", + wsp->ws_debug ("(%02d) %4d: %p: %#04x (%s):%s;", + wsp->ws_lvl, n, p, p->flags, wsnode_flagstr (p->flags), p->v.word); else - wsp->ws_debug ("%4d: %p: %#04x (%s):%.*s;", + wsp->ws_debug ("(%02d) %4d: %p: %#04x (%s):%.*s;", + wsp->ws_lvl, n, p, p->flags, wsnode_flagstr (p->flags), (int) (p->v.segm.end - p->v.segm.beg), wsp->ws_input + p->v.segm.beg); @@ -436,11 +585,15 @@ coalesce_segment (struct wordsplit *wsp, struct wordsplit_node *node) char *buf, *cur; int stop; + if (!(node->flags & _WSNF_JOIN)) + return 0; + for (p = node; p && (p->flags & _WSNF_JOIN); p = p->next) { len += wsnode_len (p); } - len += wsnode_len (p); + if (p) + len += wsnode_len (p); end = p; buf = malloc (len + 1); @@ -459,6 +612,7 @@ coalesce_segment (struct wordsplit *wsp, struct wordsplit_node *node) cur += slen; if (p != node) { + node->flags |= p->flags & _WSNF_QUOTE; wsnode_remove (wsp, p); stop = p == end; wsnode_free (p); @@ -478,13 +632,14 @@ coalesce_segment (struct wordsplit *wsp, struct wordsplit_node *node) return 0; } +static void wordsplit_string_unquote_copy (struct wordsplit *ws, int inquote, + char *dst, const char *src, + size_t n); + 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) { @@ -493,9 +648,7 @@ wsnode_quoteremoval (struct wordsplit *wsp) int unquote; if (wsp->ws_flags & WRDSF_QUOTE) - { - unquote = !(p->flags & _WSNF_NOEXPAND); - } + unquote = !(p->flags & _WSNF_NOEXPAND); else unquote = 0; @@ -512,11 +665,8 @@ wsnode_quoteremoval (struct wordsplit *wsp) 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); + wordsplit_string_unquote_copy (wsp, p->flags & _WSNF_QUOTE, + p->v.word, str, slen); } } return 0; @@ -536,24 +686,161 @@ wsnode_coalesce (struct wordsplit *wsp) return 0; } +static int +wsnode_tail_coalesce (struct wordsplit *wsp, struct wordsplit_node *p) +{ + if (p->next) + { + struct wordsplit_node *np = p; + while (np && np->next) + { + np->flags |= _WSNF_JOIN; + np = np->next; + } + if (coalesce_segment (wsp, p)) + return 1; + } + return 0; +} + +static size_t skip_delim (struct wordsplit *wsp); + static int wordsplit_finish (struct wordsplit *wsp) { struct wordsplit_node *p; size_t n; + int delim; - n = 0; + /* Postprocess delimiters. It would be rather simple, if it weren't for + the incremental operation. - for (p = wsp->ws_head; p; p = p->next) - n++; + Nodes of type _WSNF_DELIM get inserted to the node list if either + WRDSF_RETURN_DELIMS flag or WRDSO_MAXWORDS option is set. + + The following cases should be distinguished: + + 1. If both WRDSF_SQUEEZE_DELIMS and WRDSF_RETURN_DELIMS are set, compress + any runs of similar delimiter nodes to a single node. The nodes are + 'similar' if they point to the same delimiter character. + + If WRDSO_MAXWORDS option is set, stop compressing when + ws_wordi + 1 == ws_maxwords, and coalesce the rest of nodes into + a single last node. + + 2. If WRDSO_MAXWORDS option is set, but WRDSF_RETURN_DELIMS is not, + remove any delimiter nodes. Stop operation when + ws_wordi + 1 == ws_maxwords, and coalesce the rest of nodes into + a single last node. + + 3. If incremental operation is in progress, restart the loop any time + a delimiter node is about to be returned, unless WRDSF_RETURN_DELIMS + is set. + */ + again: + delim = 0; /* Delimiter being processed (if any) */ + n = 0; /* Number of words processed so far */ + p = wsp->ws_head; /* Current node */ + + while (p) + { + struct wordsplit_node *next = p->next; + if (p->flags & _WSNF_DELIM) + { + if (wsp->ws_flags & WRDSF_RETURN_DELIMS) + { + if (wsp->ws_flags & WRDSF_SQUEEZE_DELIMS) + { + char const *s = wsnode_ptr (wsp, p); + if (delim) + { + if (delim == *s) + { + wsnode_remove (wsp, p); + p = next; + continue; + } + else + { + delim = 0; + n++; /* Count this node; it will be returned */ + } + } + else + { + delim = *s; + p = next; + continue; + } + } + } + else if (wsp->ws_options & WRDSO_MAXWORDS) + { + wsnode_remove (wsp, p); + p = next; + continue; + } + } + else + { + if (delim) + { + /* Last node was a delimiter or a compressed run of delimiters; + Count it, and clear the delimiter marker */ + n++; + delim = 0; + } + if (wsp->ws_options & WRDSO_MAXWORDS) + { + if (wsp->ws_wordi + n + 1 == wsp->ws_maxwords) + break; + } + } + n++; + if (wsp->ws_flags & WRDSF_INCREMENTAL) + p = NULL; /* Break the loop */ + else + p = next; + } + + if (p) + { + /* We're here if WRDSO_MAXWORDS is in effect and wsp->ws_maxwords + words have already been collected. Reconstruct a single final + node from the remaining nodes. */ + if (wsnode_tail_coalesce (wsp, p)) + return wsp->ws_errno; + n++; + } + + if (n == 0 && (wsp->ws_flags & WRDSF_INCREMENTAL)) + { + /* The loop above have eliminated all nodes. Restart the + processing, if there's any input left. */ + if (wsp->ws_endp < wsp->ws_len) + { + int rc; + if (wsp->ws_flags & WRDSF_SHOWDBG) + wsp->ws_debug (_("Restarting")); + rc = wordsplit_process_list (wsp, skip_delim (wsp)); + if (rc) + return rc; + } + else + { + wsp->ws_error = WRDSE_EOF; + return WRDSE_EOF; + } + goto again; + } if (alloc_space (wsp, n + 1)) - return 1; + return wsp->ws_errno; - for (p = wsp->ws_head; p; p = p->next) + while (wsp->ws_head) { - const char *str = wsnode_ptr (wsp, p); - size_t slen = wsnode_len (p); + const char *str = wsnode_ptr (wsp, wsp->ws_head); + size_t slen = wsnode_len (wsp->ws_head); char *newstr = malloc (slen + 1); /* Assign newstr first, even if it is NULL. This way @@ -565,14 +852,47 @@ wordsplit_finish (struct wordsplit *wsp) memcpy (newstr, str, slen); newstr[slen] = 0; + wsnode_remove (wsp, wsp->ws_head); + wsp->ws_wordc++; + wsp->ws_wordi++; + if (wsp->ws_flags & WRDSF_INCREMENTAL) + break; } wsp->ws_wordv[wsp->ws_offs + wsp->ws_wordc] = NULL; return 0; } +int +wordsplit_append (wordsplit_t *wsp, int argc, char **argv) +{ + int rc; + size_t i; + rc = alloc_space (wsp, wsp->ws_wordc + argc + 1); + if (rc) + return rc; + for (i = 0; i < argc; i++) + { + char *newstr = strdup (argv[i]); + if (!newstr) + { + while (i > 0) + { + free (wsp->ws_wordv[wsp->ws_offs + wsp->ws_wordc + i - 1]); + wsp->ws_wordv[wsp->ws_offs + wsp->ws_wordc + i - 1] = NULL; + i--; + } + return _wsplt_nomem (wsp); + } + wsp->ws_wordv[wsp->ws_offs + wsp->ws_wordc + i] = newstr; + } + wsp->ws_wordc += i; + wsp->ws_wordv[wsp->ws_offs + wsp->ws_wordc] = NULL; + return 0; +} + /* Variable expansion */ static int node_split_prefix (struct wordsplit *wsp, @@ -609,10 +929,10 @@ node_split_prefix (struct wordsplit *wsp, } static int -find_closing_cbrace (const char *str, size_t i, size_t len, size_t * poff) +find_closing_paren (const char *str, size_t i, size_t len, size_t *poff, + char const *paren) { - enum - { st_init, st_squote, st_dquote } state = st_init; + enum { st_init, st_squote, st_dquote } state = st_init; size_t level = 1; for (; i < len; i++) @@ -622,18 +942,23 @@ find_closing_cbrace (const char *str, size_t i, size_t len, size_t * poff) case st_init: switch (str[i]) { - case '{': - level++; - break; - - case '}': - if (--level == 0) + default: + if (str[i] == paren[0]) { - *poff = i; - return 0; + level++; + break; + } + else if (str[i] == paren[1]) + { + if (--level == 0) + { + *poff = i; + return 0; + } + break; } break; - + case '"': state = st_dquote; break; @@ -660,13 +985,14 @@ find_closing_cbrace (const char *str, size_t i, size_t len, size_t * poff) return 1; } -static const char * -wordsplit_find_env (struct wordsplit *wsp, const char *name, size_t len) +static int +wordsplit_find_env (struct wordsplit *wsp, const char *name, size_t len, + char const **ret) { size_t i; if (!(wsp->ws_flags & WRDSF_ENV)) - return NULL; + return WRDSE_UNDEF; if (wsp->ws_flags & WRDSF_ENV_KV) { @@ -675,14 +1001,17 @@ wordsplit_find_env (struct wordsplit *wsp, const char *name, size_t len) { 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]; + { + *ret = wsp->ws_env[i + 1]; + return WRDSE_OK; + } /* Skip the value. Break the loop if it is NULL. */ i++; if (wsp->ws_env[i] == NULL) break; } } - else + else if (wsp->ws_env) { /* Usual (A=B) environment. */ for (i = 0; wsp->ws_env[i]; i++) @@ -694,27 +1023,137 @@ wordsplit_find_env (struct wordsplit *wsp, const char *name, size_t len) if (name[j] != var[j]) break; if (j == len && var[j] == '=') - return var + j + 1; + { + *ret = var + j + 1; + return WRDSE_OK; + } + } + } + return WRDSE_UNDEF; +} + +static int +wsplt_assign_var (struct wordsplit *wsp, const char *name, size_t namelen, + char *value) +{ + int n = (wsp->ws_flags & WRDSF_ENV_KV) ? 2 : 1; + char *v; + + if (wsp->ws_envidx + n >= wsp->ws_envsiz) + { + size_t sz; + char **newenv; + + if (!wsp->ws_envbuf) + { + if (wsp->ws_flags & WRDSF_ENV) + { + size_t i = 0, j; + + if (wsp->ws_env) + { + for (; wsp->ws_env[i]; i++) + ; + } + + sz = i + n + 1; + + newenv = calloc (sz, sizeof(newenv[0])); + if (!newenv) + return _wsplt_nomem (wsp); + + for (j = 0; j < i; j++) + { + newenv[j] = strdup (wsp->ws_env[j]); + if (!newenv[j]) + { + for (; j > 1; j--) + free (newenv[j-1]); + free (newenv[j-1]); + free (newenv); + return _wsplt_nomem (wsp); + } + } + newenv[j] = NULL; + + wsp->ws_envbuf = newenv; + wsp->ws_envidx = i; + wsp->ws_envsiz = sz; + wsp->ws_env = (const char**) wsp->ws_envbuf; + } + else + { + newenv = calloc (WORDSPLIT_ENV_INIT, sizeof(newenv[0])); + if (!newenv) + return _wsplt_nomem (wsp); + wsp->ws_envbuf = newenv; + wsp->ws_envidx = 0; + wsp->ws_envsiz = WORDSPLIT_ENV_INIT; + wsp->ws_env = (const char**) wsp->ws_envbuf; + wsp->ws_flags |= WRDSF_ENV; + } + } + else + { + wsp->ws_envsiz *= 2; + newenv = realloc (wsp->ws_envbuf, + wsp->ws_envsiz * sizeof (wsp->ws_envbuf[0])); + if (!newenv) + return _wsplt_nomem (wsp); + wsp->ws_envbuf = newenv; + wsp->ws_env = (const char**) wsp->ws_envbuf; + } + } + + if (wsp->ws_flags & WRDSF_ENV_KV) + { + /* A key-value pair environment */ + char *p = malloc (namelen + 1); + if (!p) + return _wsplt_nomem (wsp); + memcpy (p, name, namelen); + p[namelen] = 0; + + v = strdup (value); + if (!v) + { + free (p); + return _wsplt_nomem (wsp); } + wsp->ws_env[wsp->ws_envidx++] = p; + wsp->ws_env[wsp->ws_envidx++] = v; + } + else + { + v = malloc (namelen + strlen(value) + 2); + if (!v) + return _wsplt_nomem (wsp); + memcpy (v, name, namelen); + v[namelen++] = '='; + strcpy(v + namelen, value); + wsp->ws_env[wsp->ws_envidx++] = v; } - return NULL; + wsp->ws_env[wsp->ws_envidx++] = NULL; + return WRDSE_OK; } static int expvar (struct wordsplit *wsp, const char *str, size_t len, - struct wordsplit_node **ptail, const char **pend, int flg) + struct wordsplit_node **ptail, const char **pend, unsigned flg) { size_t i = 0; const char *defstr = NULL; - const char *value; + char *value; const char *vptr; struct wordsplit_node *newnode; const char *start = str - 1; - - if (ISALPHA (str[0]) || str[0] == '_') + int rc; + struct wordsplit ws; + + if (ISVARBEG (str[0])) { for (i = 1; i < len; i++) - if (!(ISALNUM (str[i]) || str[i] == '_')) + if (!ISVARCHR (str[i])) break; *pend = str + i - 1; } @@ -723,30 +1162,36 @@ expvar (struct wordsplit *wsp, const char *str, size_t len, 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)) + if (str[i] == ':') { - wsp->ws_errno = WRDSE_CBRACE; - return 1; + size_t j; + + defstr = str + i + 1; + if (find_closing_paren (str, i + 1, len, &j, "{}")) + return _wsplt_seterr (wsp, WRDSE_CBRACE); + *pend = str + j; + break; + } + else if (str[i] == '}') + { + defstr = NULL; + *pend = str + i; + break; + } + else if (strchr ("-+?=", str[i])) + { + size_t j; + + defstr = str + i; + if (find_closing_paren (str, i, len, &j, "{}")) + return _wsplt_seterr (wsp, WRDSE_CBRACE); + *pend = str + j; + break; } - *pend = str + j; - } - else if (str[i] == '}') - { - defstr = NULL; - *pend = str + i; - } - else - { - wsp->ws_errno = WRDSE_CBRACE; - return 1; } + if (i == len) + return _wsplt_seterr (wsp, WRDSE_CBRACE); } else { @@ -770,51 +1215,162 @@ expvar (struct wordsplit *wsp, const char *str, size_t len, 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) + if (defstr && strchr("-+?=", defstr[0]) == 0) { - wsp->ws_errno = WRDSE_UNDEF; - if (wsp->ws_flags & WRDSF_SHOWERR) - wordsplit_perror (wsp); - return 1; + rc = WRDSE_UNDEF; + defstr = NULL; } 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; + rc = wordsplit_find_env (wsp, str, i, &vptr); + if (rc == WRDSE_OK) + { + if (vptr) + { + value = strdup (vptr); + if (!value) + rc = WRDSE_NOSPACE; + } + else + rc = WRDSE_UNDEF; + } + else if (wsp->ws_flags & WRDSF_GETVAR) + rc = wsp->ws_getvar (&value, str, i, wsp->ws_closure); else - value = ""; - } - - /* FIXME: handle defstr */ - (void) defstr; + rc = WRDSE_UNDEF; - if (value) + if (rc == WRDSE_OK + && (!value || value[0] == 0) + && defstr && defstr[-1] == ':') + { + free (value); + rc = WRDSE_UNDEF; + } + } + + switch (rc) { - if (flg & _WSNF_QUOTE) + case WRDSE_OK: + if (defstr && *defstr == '+') { - 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); + size_t size = *pend - ++defstr; + + rc = _wsplt_subsplit (wsp, &ws, defstr, size, + WRDSF_NOSPLIT | WRDSF_WS | WRDSF_QUOTE | + (wsp->ws_flags & + (WRDSF_NOVAR | WRDSF_NOCMD)), 1); + if (rc) + return rc; + free (value); + value = ws.ws_wordv[0]; + ws.ws_wordv[0] = NULL; + wordsplit_free (&ws); } - else if (*value == 0) + break; + + case WRDSE_UNDEF: + if (defstr) { - /* Empty string is a special case */ + size_t size; + if (*defstr == '-' || *defstr == '=') + { + size = *pend - ++defstr; + + rc = _wsplt_subsplit (wsp, &ws, defstr, size, + WRDSF_NOSPLIT | WRDSF_WS | WRDSF_QUOTE | + (wsp->ws_flags & + (WRDSF_NOVAR | WRDSF_NOCMD)), + 1); + if (rc) + return rc; + + value = ws.ws_wordv[0]; + ws.ws_wordv[0] = NULL; + wordsplit_free (&ws); + + if (defstr[-1] == '=') + wsplt_assign_var (wsp, str, i, value); + } + else + { + if (*defstr == '?') + { + size = *pend - ++defstr; + if (size == 0) + wsp->ws_error (_("%.*s: variable null or not set"), + (int) i, str); + else + { + rc = _wsplt_subsplit (wsp, &ws, defstr, size, + WRDSF_NOSPLIT | WRDSF_WS | + WRDSF_QUOTE | + (wsp->ws_flags & + (WRDSF_NOVAR | WRDSF_NOCMD)), + 1); + if (rc == 0) + wsp->ws_error ("%.*s: %s", + (int) i, str, ws.ws_wordv[0]); + else + wsp->ws_error ("%.*s: %.*s", + (int) i, str, (int) size, defstr); + wordsplit_free (&ws); + } + } + value = NULL; + } + } + else if (wsp->ws_flags & WRDSF_UNDEF) + { + _wsplt_seterr (wsp, WRDSE_UNDEF); + 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 = strdup (""); + if (!value) + return _wsplt_nomem (wsp); + } + } + break; + + case WRDSE_NOSPACE: + return _wsplt_nomem (wsp); + + case WRDSE_USERERR: + if (wsp->ws_errno == WRDSE_USERERR) + free (wsp->ws_usererr); + wsp->ws_usererr = value; + FALLTHROUGH; + default: + _wsplt_seterr (wsp, rc); + return 1; + } + + if (value) + { + if (flg & _WSNF_QUOTE) + { + if (wsnode_new (wsp, &newnode)) + { + free (value); + return 1; + } + wsnode_insert (wsp, newnode, *ptail, 0); + *ptail = newnode; + newnode->flags = _WSNF_WORD | _WSNF_NOEXPAND | flg; + newnode->v.word = value; + } + else if (*value == 0) + { + free (value); + /* Empty string is a special case */ if (wsnode_new (wsp, &newnode)) return 1; wsnode_insert (wsp, newnode, *ptail, 0); @@ -824,28 +1380,23 @@ expvar (struct wordsplit *wsp, const char *str, size_t len, else { struct wordsplit ws; - int i; - - ws.ws_delim = wsp->ws_delim; - if (wordsplit (value, &ws, - WRDSF_NOVAR | WRDSF_NOCMD | WRDSF_DELIM | WRDSF_WS)) + int rc; + + rc = _wsplt_subsplit (wsp, &ws, value, strlen (value), + WRDSF_NOVAR | WRDSF_NOCMD | + WRDSF_QUOTE + | (WSP_RETURN_DELIMS (wsp) ? WRDSF_RETURN_DELIMS : 0) , + 0); + free (value); + if (rc) { + _wsplt_seterr_sub (wsp, &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); - } + wsnode_insert (wsp, ws.ws_head, *ptail, 0); + *ptail = ws.ws_tail; + ws.ws_head = ws.ws_tail = NULL; wordsplit_free (&ws); } } @@ -876,7 +1427,19 @@ expvar (struct wordsplit *wsp, const char *str, size_t len, } static int -node_expand_vars (struct wordsplit *wsp, struct wordsplit_node *node) +begin_var_p (int c) +{ + return c == '{' || ISVARBEG (c); +} + +static int +node_expand (struct wordsplit *wsp, struct wordsplit_node *node, + int (*beg_p) (int), + int (*ws_exp_fn) (struct wordsplit *wsp, + const char *str, size_t len, + struct wordsplit_node **ptail, + const char **pend, + unsigned flg)) { const char *str = wsnode_ptr (wsp, node); size_t slen = wsnode_len (node); @@ -892,7 +1455,7 @@ node_expand_vars (struct wordsplit *wsp, struct wordsplit_node *node) p++; continue; } - if (*p == '$') + if (*p == '$' && beg_p (p[1])) { size_t n = p - str; @@ -901,8 +1464,8 @@ node_expand_vars (struct wordsplit *wsp, struct wordsplit_node *node) 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))) + if (ws_exp_fn (wsp, p, slen - n, &tail, &p, + node->flags & (_WSNF_JOIN | _WSNF_QUOTE))) return 1; off += p - str + 1; str = p + 1; @@ -913,7 +1476,7 @@ node_expand_vars (struct wordsplit *wsp, struct wordsplit_node *node) if (tail != node) tail->flags |= _WSNF_JOIN; if (node_split_prefix (wsp, &tail, node, off, p - str, - node->flags & _WSNF_JOIN)) + node->flags & (_WSNF_JOIN|_WSNF_QUOTE))) return 1; } if (tail != node) @@ -923,8 +1486,8 @@ node_expand_vars (struct wordsplit *wsp, struct wordsplit_node *node) } return 0; } - -/* Remove NULL lists */ + +/* Remove NULL nodes from the list */ static void wsnode_nullelim (struct wordsplit *wsp) { @@ -933,6 +1496,8 @@ wsnode_nullelim (struct wordsplit *wsp) for (p = wsp->ws_head; p;) { struct wordsplit_node *next = p->next; + if (p->flags & _WSNF_DELIM && p->prev) + p->prev->flags &= ~_WSNF_JOIN; if (p->flags & _WSNF_NULL) { wsnode_remove (wsp, p); @@ -947,11 +1512,140 @@ 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|_WSNF_DELIM))) + if (node_expand (wsp, p, begin_var_p, expvar)) + return 1; + p = next; + } + + wsnode_nullelim (wsp); + return 0; +} + +static int +begin_cmd_p (int c) +{ + return c == '('; +} + +static int +expcmd (struct wordsplit *wsp, const char *str, size_t len, + struct wordsplit_node **ptail, const char **pend, unsigned flg) +{ + int rc; + size_t j; + char *value; + struct wordsplit_node *newnode; + + str++; + len--; + + if (find_closing_paren (str, 0, len, &j, "()")) + { + _wsplt_seterr (wsp, WRDSE_PAREN); + return 1; + } + + *pend = str + j; + if (wsp->ws_options & WRDSO_ARGV) + { + struct wordsplit ws; + + rc = _wsplt_subsplit (wsp, &ws, str, j, WRDSF_WS | WRDSF_QUOTE, 1); + if (rc) + { + _wsplt_seterr_sub (wsp, &ws); + wordsplit_free (&ws); + return 1; + } + rc = wsp->ws_command (&value, str, j, ws.ws_wordv, wsp->ws_closure); + wordsplit_free (&ws); + } + else + rc = wsp->ws_command (&value, str, j, NULL, wsp->ws_closure); + + if (rc == WRDSE_NOSPACE) + return _wsplt_nomem (wsp); + else if (rc) + { + if (rc == WRDSE_USERERR) + { + if (wsp->ws_errno == WRDSE_USERERR) + free (wsp->ws_usererr); + wsp->ws_usererr = value; + } + _wsplt_seterr (wsp, rc); + return 1; + } + + 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 = value; + } + else if (*value == 0) + { + free (value); + /* 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 rc; + + rc = _wsplt_subsplit (wsp, &ws, value, strlen (value), + WRDSF_NOVAR | WRDSF_NOCMD + | WRDSF_WS | WRDSF_QUOTE + | (WSP_RETURN_DELIMS (wsp) ? WRDSF_RETURN_DELIMS : 0), + 0); + free (value); + if (rc) + { + _wsplt_seterr_sub (wsp, &ws); + wordsplit_free (&ws); + return 1; + } + wsnode_insert (wsp, ws.ws_head, *ptail, 0); + *ptail = ws.ws_tail; + ws.ws_head = ws.ws_tail = NULL; + wordsplit_free (&ws); + } + } + else + { + if (wsnode_new (wsp, &newnode)) + return 1; + wsnode_insert (wsp, newnode, *ptail, 0); + *ptail = newnode; + newnode->flags = _WSNF_NULL; + } + return 0; +} + +static int +wordsplit_cmdexp (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)) + if (node_expand (wsp, p, begin_cmd_p, expcmd)) return 1; p = next; } @@ -963,7 +1657,7 @@ wordsplit_varexp (struct wordsplit *wsp) /* 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 +static int wordsplit_trimws (struct wordsplit *wsp) { struct wordsplit_node *p; @@ -972,14 +1666,21 @@ wordsplit_trimws (struct wordsplit *wsp) { size_t n; + if (!(p->flags & _WSNF_QUOTE)) + { + /* 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; + } + + while (p->next && (p->flags & _WSNF_JOIN)) + p = p->next; + 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--); @@ -989,6 +1690,194 @@ wordsplit_trimws (struct wordsplit *wsp) } wsnode_nullelim (wsp); + return 0; +} + +static int +wordsplit_tildexpand (struct wordsplit *wsp) +{ + struct wordsplit_node *p; + char *uname = NULL; + size_t usize = 0; + + for (p = wsp->ws_head; p; p = p->next) + { + const char *str; + + if (p->flags & _WSNF_QUOTE) + continue; + + str = wsnode_ptr (wsp, p); + if (str[0] == '~') + { + size_t i, size, dlen; + size_t slen = wsnode_len (p); + struct passwd *pw; + char *newstr; + + for (i = 1; i < slen && str[i] != '/'; i++) + ; + if (i == slen) + continue; + if (i > 1) + { + if (i > usize) + { + char *p = realloc (uname, i); + if (!p) + { + free (uname); + return _wsplt_nomem (wsp); + } + uname = p; + usize = i; + } + --i; + memcpy (uname, str + 1, i); + uname[i] = 0; + pw = getpwnam (uname); + } + else + pw = getpwuid (getuid ()); + + if (!pw) + continue; + + dlen = strlen (pw->pw_dir); + size = slen - i + dlen; + newstr = malloc (size); + if (!newstr) + { + free (uname); + return _wsplt_nomem (wsp); + } + --size; + + memcpy (newstr, pw->pw_dir, dlen); + memcpy (newstr + dlen, str + i + 1, slen - i - 1); + newstr[size] = 0; + if (p->flags & _WSNF_WORD) + free (p->v.word); + p->v.word = newstr; + p->flags |= _WSNF_WORD; + } + } + free (uname); + return 0; +} + +static int +isglob (const char *s, int l) +{ + while (l--) + { + if (strchr ("*?[", *s++)) + return 1; + } + return 0; +} + +static int +wordsplit_pathexpand (struct wordsplit *wsp) +{ + struct wordsplit_node *p, *next; + size_t slen; + int flags = 0; + +#ifdef GLOB_PERIOD + if (wsp->ws_options & WRDSO_DOTGLOB) + flags = GLOB_PERIOD; +#endif + + for (p = wsp->ws_head; p; p = next) + { + const char *str; + + next = p->next; + + if (p->flags & _WSNF_QUOTE) + continue; + + str = wsnode_ptr (wsp, p); + slen = wsnode_len (p); + + if (isglob (str, slen)) + { + int i; + glob_t g; + struct wordsplit_node *prev; + char *pattern; + + pattern = malloc (slen + 1); + if (!pattern) + return _wsplt_nomem (wsp); + memcpy (pattern, str, slen); + pattern[slen] = 0; + + switch (glob (pattern, flags, NULL, &g)) + { + case 0: + free (pattern); + break; + + case GLOB_NOSPACE: + free (pattern); + return _wsplt_nomem (wsp); + + case GLOB_NOMATCH: + if (wsp->ws_options & WRDSO_NULLGLOB) + { + wsnode_remove (wsp, p); + wsnode_free (p); + } + else if (wsp->ws_options & WRDSO_FAILGLOB) + { + char buf[128]; + if (wsp->ws_errno == WRDSE_USERERR) + free (wsp->ws_usererr); + snprintf (buf, sizeof (buf), _("no files match pattern %s"), + pattern); + free (pattern); + wsp->ws_usererr = strdup (buf); + if (!wsp->ws_usererr) + return _wsplt_nomem (wsp); + else + return _wsplt_seterr (wsp, WRDSE_USERERR); + } + free (pattern); + continue; + + default: + free (pattern); + return _wsplt_seterr (wsp, WRDSE_GLOBERR); + } + + prev = p; + for (i = 0; i < g.gl_pathc; i++) + { + struct wordsplit_node *newnode; + char *newstr; + + if (wsnode_new (wsp, &newnode)) + return 1; + newstr = strdup (g.gl_pathv[i]); + if (!newstr) + { + wsnode_free (newnode); + return _wsplt_nomem (wsp); + } + newnode->v.word = newstr; + newnode->flags |= _WSNF_WORD|_WSNF_QUOTE; + wsnode_insert (wsp, newnode, prev, 0); + prev = newnode; + } + globfree (&g); + + wsnode_remove (wsp, p); + wsnode_free (p); + } + } + return 0; } static int @@ -1024,33 +1913,24 @@ skip_sed_expr (const char *command, size_t i, size_t len) return i; } -static size_t -skip_delim (struct wordsplit *wsp) +/* wsp->ws_endp points to a delimiter character. If RETURN_DELIMS + is true, return its value, otherwise return the index past it. */ +static inline size_t +skip_delim_internal (struct wordsplit *wsp, int return_delims) { - 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--; - } + return return_delims ? wsp->ws_endp : wsp->ws_endp + 1; +} - if (!(wsp->ws_flags & WRDSF_RETURN_DELIMS)) - start++; +static inline size_t +skip_delim (struct wordsplit *wsp) +{ + return skip_delim_internal (wsp, WSP_RETURN_DELIMS (wsp)); +} - return start; +static inline size_t +skip_delim_real (struct wordsplit *wsp) +{ + return skip_delim_internal (wsp, wsp->ws_flags & WRDSF_RETURN_DELIMS); } #define _WRDS_EOF 0 @@ -1058,7 +1938,7 @@ skip_delim (struct wordsplit *wsp) #define _WRDS_ERR 2 static int -scan_qstring (struct wordsplit *wsp, size_t start, size_t * end) +scan_qstring (struct wordsplit *wsp, size_t start, size_t *end) { size_t j; const char *command = wsp->ws_input; @@ -1070,7 +1950,7 @@ scan_qstring (struct wordsplit *wsp, size_t start, size_t * end) j++; if (j < len && command[j] == q) { - int flags = _WSNF_QUOTE | _WSNF_EMPTYOK; + unsigned flags = _WSNF_QUOTE | _WSNF_EMPTYOK; if (q == '\'') flags |= _WSNF_NOEXPAND; if (wordsplit_add_segm (wsp, start + 1, j, flags)) @@ -1080,23 +1960,22 @@ scan_qstring (struct wordsplit *wsp, size_t start, size_t * end) else { wsp->ws_endp = start; - wsp->ws_errno = WRDSE_QUOTE; - if (wsp->ws_flags & WRDSF_SHOWERR) - wordsplit_perror (wsp); + _wsplt_seterr (wsp, WRDSE_QUOTE); return _WRDS_ERR; } return 0; } static int -scan_word (struct wordsplit *wsp, size_t start) +scan_word (struct wordsplit *wsp, size_t start, int consume_all) { size_t len = wsp->ws_len; const char *command = wsp->ws_input; const char *comment = wsp->ws_comment; int join = 0; - int flags = 0; - + unsigned flags = 0; + struct wordsplit_node *np = wsp->ws_tail; + size_t i = start; if (i >= len) @@ -1113,7 +1992,7 @@ scan_word (struct wordsplit *wsp, size_t start) flags = _WSNF_SEXP; i = skip_sed_expr (command, i, len); } - else if (!ISDELIM (wsp, command[i])) + else if (consume_all || !ISDELIM (wsp, command[i])) { while (i < len) { @@ -1152,15 +2031,28 @@ scan_word (struct wordsplit *wsp, size_t start) } } - if (ISDELIM (wsp, command[i])) + if (command[i] == '$') + { + if (!(wsp->ws_flags & WRDSF_NOVAR) + && command[i+1] == '{' + && find_closing_paren (command, i + 2, len, &i, "{}") == 0) + continue; + if (!(wsp->ws_flags & WRDSF_NOCMD) + && command[i+1] == '(' + && find_closing_paren (command, i + 2, len, &i, "()") == 0) + continue; + } + + if (!consume_all && ISDELIM (wsp, command[i])) break; else i++; } } - else if (wsp->ws_flags & WRDSF_RETURN_DELIMS) + else if (WSP_RETURN_DELIMS (wsp)) { i++; + flags |= _WSNF_DELIM; } else if (!(wsp->ws_flags & WRDSF_SQUEEZE_DELIMS)) flags |= _WSNF_EMPTYOK; @@ -1172,36 +2064,19 @@ scan_word (struct wordsplit *wsp, size_t start) 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 (consume_all) { - 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]; + if (!np) + np = wsp->ws_head; + while (np) + { + np->flags |= _WSNF_QUOTE; + np = np->next; + } } - return -1; + + return _WRDS_OK; } #define to_num(c) \ @@ -1244,7 +2119,7 @@ wordsplit_c_quoted_length (const char *str, int quote_hex, int *quote) len += 3; else { - if (wordsplit_c_quote_char (*str) != -1) + if (wordsplit_c_quote_char (*str)) len += 2; else len += 4; @@ -1253,47 +2128,56 @@ wordsplit_c_quoted_length (const char *str, int quote_hex, int *quote) return len; } -void -wordsplit_general_unquote_copy (char *dst, const char *src, size_t n, - const char *escapable) +static int +wsplt_unquote_char (const char *transtab, int c) { - int i; - - for (i = 0; i < n;) + while (*transtab && transtab[1]) { - if (src[i] == '\\' && i < n && strchr (escapable, src[i + 1])) - i++; - *dst++ = src[i++]; + if (*transtab++ == c) + return *transtab; + ++transtab; } - *dst = 0; + return 0; } -void -wordsplit_sh_unquote_copy (char *dst, const char *src, size_t n) +static int +wsplt_quote_char (const char *transtab, int c) { - int i; - - for (i = 0; i < n;) + for (; *transtab && transtab[1]; transtab += 2) { - if (src[i] == '\\') - i++; - *dst++ = src[i++]; + if (transtab[1] == c) + return *transtab; } - *dst = 0; + return 0; +} + +int +wordsplit_c_unquote_char (int c) +{ + return wsplt_unquote_char (wordsplit_c_escape_tab, c); +} + +int +wordsplit_c_quote_char (int c) +{ + return wsplt_quote_char (wordsplit_c_escape_tab, c); } void -wordsplit_c_unquote_copy (char *dst, const char *src, size_t n) +wordsplit_string_unquote_copy (struct wordsplit *ws, int inquote, + char *dst, const char *src, size_t n) { int i = 0; int c; + inquote = !!inquote; while (i < n) { if (src[i] == '\\') { ++i; - if (src[i] == 'x' || src[i] == 'X') + if (WRDSO_ESC_TEST (ws, inquote, WRDSO_XESC) + && (src[i] == 'x' || src[i] == 'X')) { if (n - i < 2) { @@ -1316,7 +2200,8 @@ wordsplit_c_unquote_copy (char *dst, const char *src, size_t n) } } } - else if ((unsigned char) src[i] < 128 && ISDIGIT (src[i])) + else if (WRDSO_ESC_TEST (ws, inquote, WRDSO_OESC) + && (unsigned char) src[i] < 128 && ISDIGIT (src[i])) { if (n - i < 1) { @@ -1338,8 +2223,17 @@ wordsplit_c_unquote_copy (char *dst, const char *src, size_t n) } } } + else if ((c = wsplt_unquote_char (ws->ws_escape[inquote], src[i]))) + { + *dst++ = c; + ++i; + } else - *dst++ = wordsplit_c_unquote_char (src[i++]); + { + if (WRDSO_ESC_TEST (ws, inquote, WRDSO_BSKEEP)) + *dst++ = '\\'; + *dst++ = src[i++]; + } } else *dst++ = src[i++]; @@ -1373,7 +2267,7 @@ wordsplit_c_quote_copy (char *dst, const char *src, int quote_hex) { int c = wordsplit_c_quote_char (*src); *dst++ = '\\'; - if (c != -1) + if (c) *dst++ = c; else { @@ -1386,20 +2280,82 @@ wordsplit_c_quote_copy (char *dst, const char *src, int quote_hex) } } + +/* This structure describes a single expansion phase */ +struct exptab +{ + char const *descr; /* Textual description (for debugging) */ + int flag; /* WRDSF_ bit that controls this phase */ + int opt; /* Entry-specific options (see EXPOPT_ flags below */ + int (*expansion) (struct wordsplit *wsp); /* expansion function */ +}; + +/* The following options control expansions: */ +/* Normally the exptab entry is run if its flag bit is set in struct + wordsplit. The EXPOPT_NEG option negates this test so that expansion + is performed if its associated flag bit is not set in struct wordsplit. */ +#define EXPOPT_NEG 0x01 +/* All bits in flag must be set in order for entry to match */ +#define EXPORT_ALLOF 0x02 +/* Coalesce the input list before running the expansion. */ +#define EXPOPT_COALESCE 0x04 + +static struct exptab exptab[] = { + { N_("WS trimming"), WRDSF_WS, 0, + wordsplit_trimws }, + { N_("command substitution"), WRDSF_NOCMD, EXPOPT_NEG|EXPOPT_COALESCE, + wordsplit_cmdexp }, + { N_("coalesce list"), 0, EXPOPT_NEG|EXPOPT_COALESCE, + NULL }, + { N_("tilde expansion"), WRDSF_PATHEXPAND, 0, + wordsplit_tildexpand }, + { N_("variable expansion"), WRDSF_NOVAR, EXPOPT_NEG, + wordsplit_varexp }, + { N_("quote removal"), 0, EXPOPT_NEG, + wsnode_quoteremoval }, + { N_("coalesce list"), 0, EXPOPT_NEG|EXPOPT_COALESCE, + NULL }, + { N_("path expansion"), WRDSF_PATHEXPAND, 0, + wordsplit_pathexpand }, + { NULL } +}; + +static inline int +exptab_matches(struct exptab *p, struct wordsplit *wsp) +{ + int result; + + result = (wsp->ws_flags & p->flag); + if (p->opt & EXPORT_ALLOF) + result = result == p->flag; + if (p->opt & EXPOPT_NEG) + result = !result; + + return result; +} + 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)) + struct exptab *p; + + if (wsp->ws_flags & WRDSF_SHOWDBG) + wsp->ws_debug (_("(%02d) Input:%.*s;"), + wsp->ws_lvl, (int) wsp->ws_len, wsp->ws_input); + + if ((wsp->ws_flags & WRDSF_NOSPLIT) + || ((wsp->ws_options & WRDSO_MAXWORDS) + && wsp->ws_wordi + 1 == wsp->ws_maxwords)) + { + /* Treat entire input as a single word */ + if (scan_word (wsp, start, 1) == _WRDS_ERR) return wsp->ws_errno; } else { int rc; - while ((rc = scan_word (wsp, start)) == _WRDS_OK) + while ((rc = scan_word (wsp, start, 0)) == _WRDS_OK) start = skip_delim (wsp); /* Make sure tail element is not joinable */ if (wsp->ws_tail) @@ -1410,132 +2366,88 @@ wordsplit_process_list (struct wordsplit *wsp, size_t start) if (wsp->ws_flags & WRDSF_SHOWDBG) { - wsp->ws_debug ("Initial list:"); + wsp->ws_debug ("(%02d) %s", wsp->ws_lvl, _("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)) + for (p = exptab; p->descr; p++) { - if (wordsplit_varexp (wsp)) + if (exptab_matches(p, 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); + if (p->opt & EXPOPT_COALESCE) + { + if (wsnode_coalesce (wsp)) + break; + if (wsp->ws_flags & WRDSF_SHOWDBG) + { + wsp->ws_debug ("(%02d) %s", wsp->ws_lvl, + _("Coalesced list:")); + wordsplit_dump_nodes (wsp); + } + } + if (p->expansion) + { + if (p->expansion (wsp)) + break; + if (wsp->ws_flags & WRDSF_SHOWDBG) + { + wsp->ws_debug ("(%02d) %s", wsp->ws_lvl, _(p->descr)); + wordsplit_dump_nodes (wsp); + } + } } } - while (0); return wsp->ws_errno; } -int -wordsplit_len (const char *command, size_t length, struct wordsplit *wsp, - int flags) +static int +wordsplit_run (const char *command, size_t length, struct wordsplit *wsp, + unsigned flags, int lvl) { int rc; size_t start; - const char *cmdptr; - size_t cmdlen; if (!command) { if (!(flags & WRDSF_INCREMENTAL)) - return EINVAL; + return _wsplt_seterr (wsp, WRDSE_USAGE); + + if (wsp->ws_head) + return wordsplit_finish (wsp); - start = skip_delim (wsp); + start = skip_delim_real (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; - } + return _wsplt_seterr (wsp, WRDSE_NOINPUT); - 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); + rc = wordsplit_init (wsp, command, length, flags); if (rc) return rc; + wsp->ws_lvl = lvl; } - 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; + return rc; + return wordsplit_finish (wsp); +} + +int +wordsplit_len (const char *command, size_t length, struct wordsplit *wsp, + unsigned flags) +{ + return wordsplit_run (command, length, wsp, flags, 0); } int -wordsplit (const char *command, struct wordsplit *ws, int flags) +wordsplit (const char *command, struct wordsplit *ws, unsigned flags) { - return wordsplit_len (command, command ? strlen (command) : 0, ws, - flags); + return wordsplit_len (command, command ? strlen (command) : 0, ws, flags); } void @@ -1555,67 +2467,69 @@ wordsplit_free_words (struct wordsplit *ws) ws->ws_wordc = 0; } +void +wordsplit_free_envbuf (struct wordsplit *ws) +{ + if (ws->ws_flags & WRDSF_NOCMD) + return; + if (ws->ws_envbuf) + { + size_t i; + + for (i = 0; ws->ws_envbuf[i]; i++) + free (ws->ws_envbuf[i]); + free (ws->ws_envbuf); + ws->ws_envidx = ws->ws_envsiz = 0; + ws->ws_envbuf = NULL; + } +} + +void +wordsplit_clearerr (struct wordsplit *ws) +{ + if (ws->ws_errno == WRDSE_USERERR) + free (ws->ws_usererr); + ws->ws_usererr = NULL; + ws->ws_errno = WRDSE_OK; +} + void wordsplit_free (struct wordsplit *ws) { + wordsplit_free_nodes (ws); wordsplit_free_words (ws); free (ws->ws_wordv); ws->ws_wordv = NULL; + wordsplit_free_envbuf (ws); } -void -wordsplit_perror (struct wordsplit *wsp) +int +wordsplit_get_words (struct wordsplit *ws, size_t *wordc, char ***wordv) { - 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")); - break; - - case WRDSE_USAGE: - wsp->ws_error (_("invalid wordsplit usage")); - break; - - case WRDSE_CBRACE: - wsp->ws_error (_("unbalanced curly brace")); - break; + char **p = realloc (ws->ws_wordv, + (ws->ws_wordc + 1) * sizeof (ws->ws_wordv[0])); + if (!p) + return -1; + *wordv = p; + *wordc = ws->ws_wordc; - case WRDSE_UNDEF: - wsp->ws_error (_("undefined variable")); - break; - - case WRDSE_NOINPUT: - wsp->ws_error (_("input exhausted")); - break; + ws->ws_wordv = NULL; + ws->ws_wordc = 0; + ws->ws_wordn = 0; - default: - wsp->ws_error (_("unknown error")); - } + return 0; } 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") + N_("input exhausted"), + N_("unbalanced parenthesis"), + N_("globbing error") }; int _wordsplit_nerrs = sizeof (_wordsplit_errstr) / sizeof (_wordsplit_errstr[0]); @@ -1623,7 +2537,26 @@ int _wordsplit_nerrs = const char * wordsplit_strerror (struct wordsplit *ws) { + if (ws->ws_errno == WRDSE_USERERR) + return ws->ws_usererr; if (ws->ws_errno < _wordsplit_nerrs) return _wordsplit_errstr[ws->ws_errno]; return N_("unknown error"); } + +void +wordsplit_perror (struct wordsplit *wsp) +{ + switch (wsp->ws_errno) + { + case WRDSE_QUOTE: + wsp->ws_error (_("missing closing %c (start near #%lu)"), + wsp->ws_input[wsp->ws_endp], + (unsigned long) wsp->ws_endp); + break; + + default: + wsp->ws_error ("%s", wordsplit_strerror (wsp)); + } +} + diff --git a/lib/wordsplit.h b/lib/wordsplit.h index 575865b6..ff7f6e37 100644 --- a/lib/wordsplit.h +++ b/lib/wordsplit.h @@ -1,5 +1,5 @@ /* wordsplit - a word splitter - Copyright (C) 2009-2014, 2016-2017 Free Software Foundation, Inc. + Copyright (C) 2009-2018 Sergey Poznyakoff This program 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,10 +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, see <http://www.gnu.org/licenses/>. - - Written by Sergey Poznyakoff -*/ + with this program. If not, see <http://www.gnu.org/licenses/>. */ #ifndef __WORDSPLIT_H #define __WORDSPLIT_H @@ -28,42 +25,106 @@ # define __WORDSPLIT_ATTRIBUTE_FORMAT(spec) /* empty */ #endif -struct wordsplit +typedef struct wordsplit wordsplit_t; + +/* Structure used to direct the splitting. Members marked with [Input] + can be defined before calling wordsplit(), those marked with [Output] + provide return values when the function returns. If neither mark is + used, the member is internal and must not be used by the caller. + + In the comments below, the identifiers in parentheses indicate bits that + must be set (or unset, if starting with !) in ws_flags (if starting with + WRDSF_) or ws_options (if starting with WRDSO_) to initialize or use the + given member. + + If not redefined explicitly, most of them are set to some reasonable + default value upon entry to wordsplit(). */ +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); + size_t ws_wordc; /* [Output] Number of words in ws_wordv. */ + char **ws_wordv; /* [Output] Array of parsed out words. */ + size_t ws_offs; /* [Input] (WRDSF_DOOFFS) Number of initial + elements in ws_wordv to fill with NULLs. */ + size_t ws_wordn; /* Number of elements ws_wordv can accomodate. */ + unsigned ws_flags; /* [Input] Flags passed to wordsplit. */ + unsigned ws_options; /* [Input] (WRDSF_OPTIONS) + Additional options. */ + size_t ws_maxwords; /* [Input] (WRDSO_MAXWORDS) Return at most that + many words */ + size_t ws_wordi; /* [Output] (WRDSF_INCREMENTAL) Total number of + words returned so far */ + + const char *ws_delim; /* [Input] (WRDSF_DELIM) Word delimiters. */ + const char *ws_comment; /* [Input] (WRDSF_COMMENT) Comment characters. */ + const char *ws_escape[2]; /* [Input] (WRDSF_ESCAPE) Characters to be escaped + with backslash. */ + void (*ws_alloc_die) (wordsplit_t *wsp); + /* [Input] (WRDSF_ALLOC_DIE) Function called when + out of memory. Must not return. */ void (*ws_error) (const char *, ...) - __WORDSPLIT_ATTRIBUTE_FORMAT ((__printf__, 1, 2)); + __attribute__ ((__format__ (__printf__, 1, 2))); + /* [Input] (WRDSF_ERROR) Function used for error + reporting */ void (*ws_debug) (const char *, ...) - __WORDSPLIT_ATTRIBUTE_FORMAT ((__printf__, 1, 2)); + __attribute__ ((__format__ (__printf__, 1, 2))); + /* [Input] (WRDSF_DEBUG) Function used for debug + output. */ + const char **ws_env; /* [Input] (WRDSF_ENV, !WRDSF_NOVAR) Array of + environment variables. */ - const char **ws_env; - const char *(*ws_getvar) (const char *, size_t, void *); - void *ws_closure; + char **ws_envbuf; + size_t ws_envidx; + size_t ws_envsiz; + + int (*ws_getvar) (char **ret, const char *var, size_t len, void *clos); + /* [Input] (WRDSF_GETVAR, !WRDSF_NOVAR) Looks up + the name VAR (LEN bytes long) in the table of + variables and if found returns in memory + location pointed to by RET the value of that + variable. Returns WRDSE_OK (0) on success, + and an error code (see WRDSE_* defines below) + on error. User-specific errors can be returned + by storing the error diagnostic string in RET + and returning WRDSE_USERERR. + Whatever is stored in RET, it must be allocated + using malloc(3). */ + void *ws_closure; /* [Input] (WRDSF_CLOSURE) Passed as the CLOS + argument to ws_getvar and ws_command. */ + int (*ws_command) (char **ret, const char *cmd, size_t len, char **argv, + void *clos); + /* [Input] (!WRDSF_NOCMD) Returns in the memory + location pointed to by RET the expansion of + the command CMD (LEN bytes long). If WRDSO_ARGV + option is set, ARGV contains CMD split out to + words. Otherwise ARGV is NULL. - const char *ws_input; - size_t ws_len; - size_t ws_endp; - int ws_errno; + See ws_getvar for a discussion of possible + return values. */ + + const char *ws_input; /* Input string (the S argument to wordsplit. */ + size_t ws_len; /* Length of ws_input. */ + size_t ws_endp; /* Points past the last processed byte in + ws_input. */ + int ws_errno; /* [Output] Error code, if an error occurred. */ + char *ws_usererr; /* Points to textual description of + the error, if ws_errno is WRDSE_USERERR. Must + be allocated with malloc(3). */ struct wordsplit_node *ws_head, *ws_tail; + /* Doubly-linked list of parsed out nodes. */ + int ws_lvl; /* Invocation nesting level. */ }; -/* Wordsplit flags. Only 2 bits of a 32-bit word remain unused. - It is getting crowded... */ +/* Initial size for ws_env, if allocated automatically */ +#define WORDSPLIT_ENV_INIT 16 + +/* Wordsplit flags. */ /* 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. +/* Insert ws_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. */ +/* Don't do command substitution. */ #define WRDSF_NOCMD 0x00000004 /* The parameter p resulted from a previous call to wordsplit(), and wordsplit_free() was not called. Reuse the @@ -71,10 +132,8 @@ struct wordsplit #define WRDSF_REUSE 0x00000008 /* Print errors */ #define WRDSF_SHOWERR 0x00000010 -/* Consider it an error if an undefined shell variable - is expanded. */ +/* Consider it an error if an undefined variable is expanded. */ #define WRDSF_UNDEF 0x00000020 - /* Don't do variable expansion. */ #define WRDSF_NOVAR 0x00000040 /* Abort on ENOMEM error */ @@ -85,7 +144,7 @@ struct wordsplit #define WRDSF_SQUOTE 0x00000200 /* Handle double quotes */ #define WRDSF_DQUOTE 0x00000400 -/* Handle quotes and escape directives */ +/* Handle single and double quotes */ #define WRDSF_QUOTE (WRDSF_SQUOTE|WRDSF_DQUOTE) /* Replace each input sequence of repeated delimiters with a single delimiter */ @@ -113,56 +172,106 @@ struct wordsplit /* 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 */ + empty strings. */ #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 +/* Perform pathname and tilde expansion */ +#define WRDSF_PATHEXPAND 0x40000000 +/* ws_options is initialized */ +#define WRDSF_OPTIONS 0x80000000 #define WRDSF_DEFFLAGS \ (WRDSF_NOVAR | WRDSF_NOCMD | \ WRDSF_QUOTE | WRDSF_SQUEEZE_DELIMS | WRDSF_CESCAPES) -#define WRDSE_EOF 0 +/* Remove the word that produces empty string after path expansion */ +#define WRDSO_NULLGLOB 0x00000001 +/* Print error message if path expansion produces empty string */ +#define WRDSO_FAILGLOB 0x00000002 +/* Allow a leading period to be matched by metacharacters. */ +#define WRDSO_DOTGLOB 0x00000004 +/* ws_command needs argv parameter */ +#define WRDSO_ARGV 0x00000008 +/* Keep backslash in unrecognized escape sequences in words */ +#define WRDSO_BSKEEP_WORD 0x00000010 +/* Handle octal escapes in words */ +#define WRDSO_OESC_WORD 0x00000020 +/* Handle hex escapes in words */ +#define WRDSO_XESC_WORD 0x00000040 + +/* ws_maxwords field is initialized */ +#define WRDSO_MAXWORDS 0x00000080 + +/* Keep backslash in unrecognized escape sequences in quoted strings */ +#define WRDSO_BSKEEP_QUOTE 0x00000100 +/* Handle octal escapes in quoted strings */ +#define WRDSO_OESC_QUOTE 0x00000200 +/* Handle hex escapes in quoted strings */ +#define WRDSO_XESC_QUOTE 0x00000400 + +#define WRDSO_BSKEEP WRDSO_BSKEEP_WORD +#define WRDSO_OESC WRDSO_OESC_WORD +#define WRDSO_XESC WRDSO_XESC_WORD + +/* Indices into ws_escape */ +#define WRDSX_WORD 0 +#define WRDSX_QUOTE 1 + +/* Set escape option F in WS for words (Q==0) or quoted strings (Q==1) */ +#define WRDSO_ESC_SET(ws,q,f) ((ws)->ws_options |= ((f) << 4*(q))) +/* Test WS for escape option F for words (Q==0) or quoted strings (Q==1) */ +#define WRDSO_ESC_TEST(ws,q,f) ((ws)->ws_options & ((f) << 4*(q))) + +#define WRDSE_OK 0 +#define WRDSE_EOF WRDSE_OK #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); +#define WRDSE_USAGE 3 +#define WRDSE_CBRACE 4 +#define WRDSE_UNDEF 5 +#define WRDSE_NOINPUT 6 +#define WRDSE_PAREN 7 +#define WRDSE_GLOBERR 8 +#define WRDSE_USERERR 9 + +int wordsplit (const char *s, wordsplit_t *ws, unsigned flags); +int wordsplit_len (const char *s, size_t len, wordsplit_t *ws, unsigned flags); +void wordsplit_free (wordsplit_t *ws); +void wordsplit_free_words (wordsplit_t *ws); +void wordsplit_free_envbuf (wordsplit_t *ws); +int wordsplit_get_words (wordsplit_t *ws, size_t *wordc, char ***wordv); + +static inline void wordsplit_getwords (wordsplit_t *ws, size_t *wordc, char ***wordv) + __attribute__ ((deprecated)); + +static inline void +wordsplit_getwords (wordsplit_t *ws, size_t *wordc, char ***wordv) +{ + wordsplit_get_words (ws, wordc, wordv); +} + +int wordsplit_append (wordsplit_t *wsp, int argc, char **argv); 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); +size_t wordsplit_c_quoted_length (const char *str, int quote_hex, int *quote); 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); +void wordsplit_perror (wordsplit_t *ws); +const char *wordsplit_strerror (wordsplit_t *ws); +void wordsplit_clearerr (wordsplit_t *ws); #endif diff --git a/lib/xattr-at.c b/lib/xattr-at.c index 3bba552f..89cfad42 100644 --- a/lib/xattr-at.c +++ b/lib/xattr-at.c @@ -1,7 +1,7 @@ /* openat-style fd-relative functions for operating with extended file attributes. - Copyright 2012-2014, 2016-2017 Free Software Foundation, Inc. + Copyright 2012-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/lib/xattr-at.h b/lib/xattr-at.h index 09a63d07..c278fb7f 100644 --- a/lib/xattr-at.h +++ b/lib/xattr-at.h @@ -1,7 +1,7 @@ /* Prototypes for openat-style fd-relative functions for operating with extended file attributes. - Copyright 2012-2014, 2016-2017 Free Software Foundation, Inc. + Copyright 2012-2019 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by diff --git a/m4/00gnulib.m4 b/m4/00gnulib.m4 index bb3512fd..e3e0fb6d 100644 --- a/m4/00gnulib.m4 +++ b/m4/00gnulib.m4 @@ -1,5 +1,5 @@ # 00gnulib.m4 serial 3 -dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/__inline.m4 b/m4/__inline.m4 new file mode 100644 index 00000000..e1aa310c --- /dev/null +++ b/m4/__inline.m4 @@ -0,0 +1,22 @@ +# Test for __inline keyword +dnl Copyright 2017-2019 Free Software Foundation, Inc. +dnl This file is free software; the Free 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___INLINE], +[ + AC_CACHE_CHECK([whether the compiler supports the __inline keyword], + [gl_cv_c___inline], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[typedef int foo_t; + static __inline foo_t foo (void) { return 0; }]], + [[return foo ();]])], + [gl_cv_c___inline=yes], + [gl_cv_c___inline=no])]) + if test $gl_cv_c___inline = yes; then + AC_DEFINE([HAVE___INLINE], [1], + [Define to 1 if the compiler supports the keyword '__inline'.]) + fi +]) diff --git a/m4/absolute-header.m4 b/m4/absolute-header.m4 index c73adc82..a8f2cba1 100644 --- a/m4/absolute-header.m4 +++ b/m4/absolute-header.m4 @@ -1,5 +1,5 @@ # absolute-header.m4 serial 16 -dnl Copyright (C) 2006-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2006-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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 index bf988d55..5234a80f 100644 --- a/m4/acl.m4 +++ b/m4/acl.m4 @@ -1,7 +1,7 @@ # acl.m4 - check for access control list (ACL) primitives -# serial 22 +# serial 23 -# Copyright (C) 2002, 2004-2017 Free Software Foundation, Inc. +# Copyright (C) 2002, 2004-2019 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. @@ -30,7 +30,8 @@ AC_DEFUN([gl_FUNC_ACL], ac_save_LIBS=$LIBS dnl Test for POSIX-draft-like API (GNU/Linux, FreeBSD, Mac OS X, - dnl IRIX, Tru64). -lacl is needed on GNU/Linux, -lpacl on OSF/1. + dnl IRIX, Tru64, Cygwin >= 2.5). + dnl -lacl is needed on GNU/Linux, -lpacl 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 diff --git a/m4/alloca.m4 b/m4/alloca.m4 index 867954a2..46d60f9c 100644 --- a/m4/alloca.m4 +++ b/m4/alloca.m4 @@ -1,5 +1,5 @@ # alloca.m4 serial 14 -dnl Copyright (C) 2002-2004, 2006-2007, 2009-2017 Free Software Foundation, +dnl Copyright (C) 2002-2004, 2006-2007, 2009-2019 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/argp.m4 b/m4/argp.m4 index 2a4592c8..8b2e2d85 100644 --- a/m4/argp.m4 +++ b/m4/argp.m4 @@ -1,5 +1,5 @@ # argp.m4 serial 15 -dnl Copyright (C) 2003-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2003-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/asm-underscore.m4 b/m4/asm-underscore.m4 deleted file mode 100644 index 07270c92..00000000 --- a/m4/asm-underscore.m4 +++ /dev/null @@ -1,71 +0,0 @@ -# asm-underscore.m4 serial 3 -dnl Copyright (C) 2010-2017 Free Software Foundation, Inc. -dnl This file is free software; the Free Software Foundation -dnl gives unlimited permission to copy and/or distribute it, -dnl with or without modifications, as long as this notice is preserved. - -dnl From Bruno Haible. Based on as-underscore.m4 in GNU clisp. - -# gl_ASM_SYMBOL_PREFIX -# Tests for the prefix of C symbols at the assembly language level and the -# linker level. This prefix is either an underscore or empty. Defines the -# C macro USER_LABEL_PREFIX to this prefix, and sets ASM_SYMBOL_PREFIX to -# a stringified variant of this prefix. - -AC_DEFUN([gl_ASM_SYMBOL_PREFIX], -[ - dnl We don't use GCC's __USER_LABEL_PREFIX__ here, because - dnl 1. It works only for GCC. - dnl 2. It is incorrectly defined on some platforms, in some GCC versions. - AC_REQUIRE([gl_C_ASM]) - AC_CACHE_CHECK( - [whether C symbols are prefixed with underscore at the linker level], - [gl_cv_prog_as_underscore], - [cat > conftest.c <<EOF -#ifdef __cplusplus -extern "C" int foo (void); -#endif -int foo(void) { return 0; } -EOF - # Look for the assembly language name in the .s file. - AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1 - if LC_ALL=C grep -E '(^|[[^a-zA-Z0-9_]])_foo([[^a-zA-Z0-9_]]|$)' conftest.$gl_asmext >/dev/null; then - gl_cv_prog_as_underscore=yes - else - gl_cv_prog_as_underscore=no - fi - rm -f conftest* - ]) - if test $gl_cv_prog_as_underscore = yes; then - USER_LABEL_PREFIX=_ - else - USER_LABEL_PREFIX= - fi - AC_DEFINE_UNQUOTED([USER_LABEL_PREFIX], [$USER_LABEL_PREFIX], - [Define to the prefix of C symbols at the assembler and linker level, - either an underscore or empty.]) - ASM_SYMBOL_PREFIX='"'${USER_LABEL_PREFIX}'"' - AC_SUBST([ASM_SYMBOL_PREFIX]) -]) - -# gl_C_ASM -# Determines how to produce an assembly language file from C source code. -# Sets the variables: -# gl_asmext - the extension of assembly language output, -# gl_c_asm_opt - the C compiler option that produces assembly language output. - -AC_DEFUN([gl_C_ASM], -[ - AC_EGREP_CPP([MicrosoftCompiler], - [ -#ifdef _MSC_VER -MicrosoftCompiler -#endif - ], - [gl_asmext='asm' - gl_c_asm_opt='-c -Fa' - ], - [gl_asmext='s' - gl_c_asm_opt='-S' - ]) -]) diff --git a/m4/backupfile.m4 b/m4/backupfile.m4 index 1bc22821..5c456251 100644 --- a/m4/backupfile.m4 +++ b/m4/backupfile.m4 @@ -1,5 +1,5 @@ # backupfile.m4 serial 14 -dnl Copyright (C) 2002-2006, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/bison.m4 b/m4/bison.m4 index 1bcfdf6e..d64883bd 100644 --- a/m4/bison.m4 +++ b/m4/bison.m4 @@ -1,6 +1,6 @@ # serial 7 -# Copyright (C) 2002, 2005, 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2002, 2005, 2009-2019 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. @@ -8,15 +8,16 @@ AC_DEFUN([gl_BISON], [ # parse-datetime.y works with bison only. - : ${YACC='bison -y'} + : ${YACC='bison -o y.tab.c'} 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 -o y.tab.c'. 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 -o y.tab.c'. Values other than 'bison -o y.tab.c' 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 diff --git a/m4/btowc.m4 b/m4/btowc.m4 index f59db65a..85c2cbf6 100644 --- a/m4/btowc.m4 +++ b/m4/btowc.m4 @@ -1,5 +1,5 @@ # btowc.m4 serial 11 -dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/builtin-expect.m4 b/m4/builtin-expect.m4 index aa3364bf..b65fbf87 100644 --- a/m4/builtin-expect.m4 +++ b/m4/builtin-expect.m4 @@ -1,6 +1,6 @@ dnl Check for __builtin_expect. -dnl Copyright 2016-2017 Free Software Foundation, Inc. +dnl Copyright 2016-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/canonicalize.m4 b/m4/canonicalize.m4 index 53b1597d..5b6e25df 100644 --- a/m4/canonicalize.m4 +++ b/m4/canonicalize.m4 @@ -1,6 +1,6 @@ # canonicalize.m4 serial 29 -dnl Copyright (C) 2003-2007, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2003-2007, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -35,8 +35,8 @@ AC_DEFUN([gl_CANONICALIZE_LGPL], HAVE_REALPATH=0 else case "$gl_cv_func_realpath_works" in - *yes) ;; - *) REPLACE_REALPATH=1 ;; + *yes) ;; + *) REPLACE_REALPATH=1 ;; esac fi else diff --git a/m4/chdir-long.m4 b/m4/chdir-long.m4 index c4c07b50..64b5ef94 100644 --- a/m4/chdir-long.m4 +++ b/m4/chdir-long.m4 @@ -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-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2004-2007, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/chown.m4 b/m4/chown.m4 index cf2f35f7..d92fd1c1 100644 --- a/m4/chown.m4 +++ b/m4/chown.m4 @@ -1,7 +1,7 @@ -# serial 28 +# serial 30 # Determine whether we need the chown wrapper. -dnl Copyright (C) 1997-2001, 2003-2005, 2007, 2009-2017 Free Software +dnl Copyright (C) 1997-2001, 2003-2005, 2007, 2009-2019 Free Software dnl Foundation, Inc. dnl This file is free software; the Free Software Foundation @@ -46,12 +46,14 @@ AC_DEFUN([AC_FUNC_CHOWN], [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="guessing yes" ;; - # Guess no on native Windows. - mingw*) ac_cv_func_chown_works="guessing no" ;; - # If we don't know, assume the worst. - *) ac_cv_func_chown_works="guessing no" ;; + # Guess yes on Linux systems. + linux-* | linux) ac_cv_func_chown_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) ac_cv_func_chown_works="guessing yes" ;; + # Guess no on native Windows. + mingw*) ac_cv_func_chown_works="guessing no" ;; + # If we don't know, assume the worst. + *) ac_cv_func_chown_works="guessing no" ;; esac ]) rm -f conftest.chown diff --git a/m4/clock_time.m4 b/m4/clock_time.m4 index 21b6f256..8f7a7fcd 100644 --- a/m4/clock_time.m4 +++ b/m4/clock_time.m4 @@ -1,5 +1,5 @@ # clock_time.m4 serial 10 -dnl Copyright (C) 2002-2006, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/close-stream.m4 b/m4/close-stream.m4 index 65a1acce..5d31221b 100644 --- a/m4/close-stream.m4 +++ b/m4/close-stream.m4 @@ -1,5 +1,5 @@ #serial 4 -dnl Copyright (C) 2006-2007, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2006-2007, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/close.m4 b/m4/close.m4 index ed357ab9..7013a130 100644 --- a/m4/close.m4 +++ b/m4/close.m4 @@ -1,5 +1,5 @@ # close.m4 serial 9 -dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/closedir.m4 b/m4/closedir.m4 index 69e41b3c..37dc5414 100644 --- a/m4/closedir.m4 +++ b/m4/closedir.m4 @@ -1,5 +1,5 @@ # closedir.m4 serial 6 -dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2011-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/closeout.m4 b/m4/closeout.m4 index 3c3aa2ff..c02179b7 100644 --- a/m4/closeout.m4 +++ b/m4/closeout.m4 @@ -1,5 +1,5 @@ # closeout.m4 serial 6 -dnl Copyright (C) 2002-2003, 2005-2006, 2009-2017 Free Software Foundation, +dnl Copyright (C) 2002-2003, 2005-2006, 2009-2019 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/codeset.m4 b/m4/codeset.m4 index bc98201e..280f556f 100644 --- a/m4/codeset.m4 +++ b/m4/codeset.m4 @@ -1,6 +1,6 @@ # codeset.m4 serial 5 (gettext-0.18.2) -dnl Copyright (C) 2000-2002, 2006, 2008-2014, 2016 Free Software Foundation, -dnl Inc. +dnl Copyright (C) 2000-2002, 2006, 2008-2014, 2016, 2019 Free Software +dnl Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/configmake.m4 b/m4/configmake.m4 index b783296b..05719526 100644 --- a/m4/configmake.m4 +++ b/m4/configmake.m4 @@ -1,55 +1,27 @@ -# configmake.m4 serial 2 -dnl Copyright (C) 2010-2017 Free Software Foundation, Inc. +# configmake.m4 serial 3 +dnl Copyright (C) 2010-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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_PREREQ([2.60]) + # gl_CONFIGMAKE_PREP # ------------------ # Guarantee all of the standard directory variables, even when used with -# autoconf 2.59 (datarootdir wasn't supported until 2.59c, and runstatedir -# in 2.70) or automake 1.9.6 (pkglibexecdir wasn't supported until 1.10b, -# and runstatedir in 1.14.1). +# autoconf 2.63 (runstatedir wasn't supported before 2.70) or +# automake 1.11 (runstatedir isn't supported even in 1.16.1). AC_DEFUN([gl_CONFIGMAKE_PREP], [ - dnl Technically, datadir should default to datarootdir. But if - dnl autoconf is too old to provide datarootdir, then reversing the - dnl definition is a reasonable compromise. Only AC_SUBST a variable - dnl if it was not already defined earlier by autoconf. - if test "x$datarootdir" = x; then - AC_SUBST([datarootdir], ['${datadir}']) - fi - dnl Copy the approach used in autoconf 2.60. - if test "x$docdir" = x; then - AC_SUBST([docdir], [m4_ifset([AC_PACKAGE_TARNAME], - ['${datarootdir}/doc/${PACKAGE_TARNAME}'], - ['${datarootdir}/doc/${PACKAGE}'])]) - fi - dnl The remaining variables missing from autoconf 2.59 are easier. - if test "x$htmldir" = x; then - AC_SUBST([htmldir], ['${docdir}']) - fi - if test "x$dvidir" = x; then - AC_SUBST([dvidir], ['${docdir}']) - fi - if test "x$pdfdir" = x; then - AC_SUBST([pdfdir], ['${docdir}']) - fi - if test "x$psdir" = x; then - AC_SUBST([psdir], ['${docdir}']) - fi if test "x$lispdir" = x; then AC_SUBST([lispdir], ['${datarootdir}/emacs/site-lisp']) fi - if test "x$localedir" = x; then - AC_SUBST([localedir], ['${datarootdir}/locale']) - fi - dnl Added in autoconf 2.70 + dnl Added in autoconf 2.70. if test "x$runstatedir" = x; then AC_SUBST([runstatedir], ['${localstatedir}/run']) fi - dnl Automake 1.9.6 only lacks pkglibexecdir; and since 1.11 merely - dnl provides it without AC_SUBST, this blind use of AC_SUBST is safe. + dnl Automake 1.11 provides pkglibexecdir merely without AC_SUBST. + dnl This blind use of AC_SUBST is safe. AC_SUBST([pkglibexecdir], ['${libexecdir}/${PACKAGE}']) ]) diff --git a/m4/d-ino.m4 b/m4/d-ino.m4 index 376045cc..f1420ccf 100644 --- a/m4/d-ino.m4 +++ b/m4/d-ino.m4 @@ -5,7 +5,7 @@ dnl dnl Check whether struct dirent has a member named d_ino. dnl -# Copyright (C) 1997, 1999-2001, 2003-2004, 2006-2007, 2009-2017 Free Software +# Copyright (C) 1997, 1999-2001, 2003-2004, 2006-2007, 2009-2019 Free Software # Foundation, Inc. # This file is free software; the Free Software Foundation diff --git a/m4/dirent-safer.m4 b/m4/dirent-safer.m4 index 2ee00e4a..3089ea63 100644 --- a/m4/dirent-safer.m4 +++ b/m4/dirent-safer.m4 @@ -1,5 +1,5 @@ #serial 2 -dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/dirent_h.m4 b/m4/dirent_h.m4 index 1f9c4f31..732aa554 100644 --- a/m4/dirent_h.m4 +++ b/m4/dirent_h.m4 @@ -1,5 +1,5 @@ # dirent_h.m4 serial 16 -dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/dirfd.m4 b/m4/dirfd.m4 index d472c385..5c758699 100644 --- a/m4/dirfd.m4 +++ b/m4/dirfd.m4 @@ -2,7 +2,7 @@ dnl Find out how to get the file descriptor associated with an open DIR*. -# Copyright (C) 2001-2006, 2008-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2006, 2008-2019 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. diff --git a/m4/dirname.m4 b/m4/dirname.m4 index 46f5394c..32141ae6 100644 --- a/m4/dirname.m4 +++ b/m4/dirname.m4 @@ -1,5 +1,5 @@ #serial 10 -*- autoconf -*- -dnl Copyright (C) 2002-2006, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/double-slash-root.m4 b/m4/double-slash-root.m4 index c80f9ead..0c5afb17 100644 --- a/m4/double-slash-root.m4 +++ b/m4/double-slash-root.m4 @@ -1,5 +1,5 @@ # double-slash-root.m4 serial 4 -*- Autoconf -*- -dnl Copyright (C) 2006, 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2006, 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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 index 42ef5d7a..005f1ea7 100644 --- a/m4/dup.m4 +++ b/m4/dup.m4 @@ -1,5 +1,5 @@ # dup.m4 serial 6 -dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2011-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/dup2.m4 b/m4/dup2.m4 index bdb9ae25..b314247d 100644 --- a/m4/dup2.m4 +++ b/m4/dup2.m4 @@ -1,5 +1,5 @@ #serial 25 -dnl Copyright (C) 2002, 2005, 2007, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2005, 2007, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/eealloc.m4 b/m4/eealloc.m4 index 96b9bca5..2a4b120a 100644 --- a/m4/eealloc.m4 +++ b/m4/eealloc.m4 @@ -1,5 +1,5 @@ # eealloc.m4 serial 3 -dnl Copyright (C) 2003, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2003, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/environ.m4 b/m4/environ.m4 index 3b9fa5f5..c1a6fa37 100644 --- a/m4/environ.m4 +++ b/m4/environ.m4 @@ -1,5 +1,5 @@ -# environ.m4 serial 6 -dnl Copyright (C) 2001-2004, 2006-2017 Free Software Foundation, Inc. +# environ.m4 serial 7 +dnl Copyright (C) 2001-2004, 2006-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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,16 +29,14 @@ AC_DEFUN_ONCE([gl_ENVIRON], AC_DEFUN([gt_CHECK_VAR_DECL], [ define([gt_cv_var], [gt_cv_var_]$2[_declaration]) - AC_MSG_CHECKING([if $2 is properly declared]) - AC_CACHE_VAL([gt_cv_var], [ - AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM( - [[$1 - extern struct { int foo; } $2;]], - [[$2.foo = 1;]])], - [gt_cv_var=no], - [gt_cv_var=yes])]) - AC_MSG_RESULT([$gt_cv_var]) + AC_CACHE_CHECK([if $2 is properly declared], [gt_cv_var], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[$1 + extern struct { int foo; } $2;]], + [[$2.foo = 1;]])], + [gt_cv_var=no], + [gt_cv_var=yes])]) if test $gt_cv_var = yes; then AC_DEFINE([HAVE_]m4_translit($2, [a-z], [A-Z])[_DECL], 1, [Define if you have the declaration of $2.]) diff --git a/m4/errno_h.m4 b/m4/errno_h.m4 index 9f0f2f2f..2388854e 100644 --- a/m4/errno_h.m4 +++ b/m4/errno_h.m4 @@ -1,9 +1,11 @@ -# errno_h.m4 serial 12 -dnl Copyright (C) 2004, 2006, 2008-2017 Free Software Foundation, Inc. +# errno_h.m4 serial 13 +dnl Copyright (C) 2004, 2006, 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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_PREREQ([2.61]) + AC_DEFUN_ONCE([gl_HEADER_ERRNO_H], [ AC_REQUIRE([AC_PROG_CC]) @@ -129,9 +131,3 @@ yes AC_SUBST($1[_VALUE]) fi ]) - -dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. -dnl Remove this when we can assume autoconf >= 2.61. -m4_ifdef([AC_COMPUTE_INT], [], [ - AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) -]) diff --git a/m4/error.m4 b/m4/error.m4 index 57c6f125..393adb54 100644 --- a/m4/error.m4 +++ b/m4/error.m4 @@ -1,6 +1,6 @@ #serial 14 -# Copyright (C) 1996-1998, 2001-2004, 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 1996-1998, 2001-2004, 2009-2019 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff --git a/m4/euidaccess.m4 b/m4/euidaccess.m4 index 02fca291..8e840e63 100644 --- a/m4/euidaccess.m4 +++ b/m4/euidaccess.m4 @@ -1,5 +1,5 @@ # euidaccess.m4 serial 15 -dnl Copyright (C) 2002-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/exponentd.m4 b/m4/exponentd.m4 index cd64b92d..90870dfa 100644 --- a/m4/exponentd.m4 +++ b/m4/exponentd.m4 @@ -1,5 +1,5 @@ # exponentd.m4 serial 3 -dnl Copyright (C) 2007-2008, 2010-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2007-2008, 2010-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/extensions.m4 b/m4/extensions.m4 index f8543386..fd1ce817 100644 --- a/m4/extensions.m4 +++ b/m4/extensions.m4 @@ -1,7 +1,7 @@ -# serial 17 -*- Autoconf -*- +# serial 18 -*- Autoconf -*- # Enable extensions on systems that normally disable them. -# Copyright (C) 2003, 2006-2017 Free Software Foundation, Inc. +# Copyright (C) 2003, 2006-2019 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. @@ -118,6 +118,11 @@ dnl configure.ac when using autoheader 2.62. #ifndef _XOPEN_SOURCE # undef _XOPEN_SOURCE #endif +/* Enable X/Open compliant socket functions that do not require linking + with -lxnet on HP-UX 11.11. */ +#ifndef _HPUX_ALT_XOPEN_SOCKET_API +# undef _HPUX_ALT_XOPEN_SOCKET_API +#endif /* Enable general extensions on Solaris. */ #ifndef __EXTENSIONS__ # undef __EXTENSIONS__ @@ -163,6 +168,7 @@ dnl configure.ac when using autoheader 2.62. [ac_cv_should_define__xopen_source=yes])])]) test $ac_cv_should_define__xopen_source = yes && AC_DEFINE([_XOPEN_SOURCE], [500]) + AC_DEFINE([_HPUX_ALT_XOPEN_SOCKET_API]) ])# AC_USE_SYSTEM_EXTENSIONS # gl_USE_SYSTEM_EXTENSIONS diff --git a/m4/extern-inline.m4 b/m4/extern-inline.m4 index 207aa6a0..ec9f2218 100644 --- a/m4/extern-inline.m4 +++ b/m4/extern-inline.m4 @@ -1,6 +1,6 @@ dnl 'extern inline' a la ISO C99. -dnl Copyright 2012-2017 Free Software Foundation, Inc. +dnl Copyright 2012-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -25,7 +25,8 @@ AC_DEFUN([gl_EXTERN_INLINE], if isdigit is mistakenly implemented via a static inline function, a program containing an extern inline function that calls isdigit may not work since the C standard prohibits extern inline functions - from calling static functions. This bug is known to occur on: + from calling static functions (ISO C 99 section 6.7.4.(3). + This bug is known to occur on: OS X 10.8 and earlier; see: https://lists.gnu.org/r/bug-gnulib/2012-12/msg00023.html @@ -38,7 +39,18 @@ AC_DEFUN([gl_EXTERN_INLINE], OS X 10.9 has a macro __header_inline indicating the bug is fixed for C and for clang but remains for g++; see <https://trac.macports.org/ticket/41033>. - Assume DragonFly and FreeBSD will be similar. */ + Assume DragonFly and FreeBSD will be similar. + + GCC 4.3 and above with -std=c99 or -std=gnu99 implements ISO C99 + inline semantics, unless -fgnu89-inline is used. It defines a macro + __GNUC_STDC_INLINE__ to indicate this situation or a macro + __GNUC_GNU_INLINE__ to indicate the opposite situation. + GCC 4.2 with -std=c99 or -std=gnu99 implements the GNU C inline + semantics but warns, unless -fgnu89-inline is used: + warning: C99 inline functions are not supported; using GNU89 + warning: to disable this warning use -fgnu89-inline or the gnu_inline function attribute + It defines a macro __GNUC_GNU_INLINE__ to indicate this situation. + */ #if (((defined __APPLE__ && defined __MACH__) \ || defined __DragonFly__ || defined __FreeBSD__) \ && (defined __header_inline \ diff --git a/m4/faccessat.m4 b/m4/faccessat.m4 index c64545ab..6c7d79b0 100644 --- a/m4/faccessat.m4 +++ b/m4/faccessat.m4 @@ -1,7 +1,7 @@ # serial 8 # See if we need to provide faccessat replacement. -dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/fchdir.m4 b/m4/fchdir.m4 index 0ef04ed8..ea5a4f91 100644 --- a/m4/fchdir.m4 +++ b/m4/fchdir.m4 @@ -1,5 +1,5 @@ -# fchdir.m4 serial 22 -dnl Copyright (C) 2006-2017 Free Software Foundation, Inc. +# fchdir.m4 serial 24 +dnl Copyright (C) 2006-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -31,12 +31,14 @@ AC_DEFUN([gl_FUNC_FCHDIR], [gl_cv_func_open_directory_works=yes], [gl_cv_func_open_directory_works=no], [case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_open_directory_works="guessing yes" ;; - # Guess no on native Windows. - mingw*) gl_cv_func_open_directory_works="guessing no" ;; - # If we don't know, assume the worst. - *) gl_cv_func_open_directory_works="guessing no" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_open_directory_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_open_directory_works="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_open_directory_works="guessing no" ;; + # 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 diff --git a/m4/fchmodat.m4 b/m4/fchmodat.m4 index 43b302b7..2797d3d6 100644 --- a/m4/fchmodat.m4 +++ b/m4/fchmodat.m4 @@ -1,5 +1,5 @@ # fchmodat.m4 serial 1 -dnl Copyright (C) 2004-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2004-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/fchownat.m4 b/m4/fchownat.m4 index 58eee3b3..5cca8b5a 100644 --- a/m4/fchownat.m4 +++ b/m4/fchownat.m4 @@ -1,5 +1,5 @@ # fchownat.m4 serial 2 -dnl Copyright (C) 2004-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2004-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/fcntl-o.m4 b/m4/fcntl-o.m4 index b388d893..6ab3387d 100644 --- a/m4/fcntl-o.m4 +++ b/m4/fcntl-o.m4 @@ -1,22 +1,20 @@ -# fcntl-o.m4 serial 5 -dnl Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc. +# fcntl-o.m4 serial 6 +dnl Copyright (C) 2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl Written by Paul Eggert. +AC_PREREQ([2.60]) + # Test whether the flags O_NOATIME and O_NOFOLLOW actually work. # Define HAVE_WORKING_O_NOATIME to 1 if O_NOATIME works, or to 0 otherwise. # Define HAVE_WORKING_O_NOFOLLOW to 1 if O_NOFOLLOW works, or to 0 otherwise. AC_DEFUN([gl_FCNTL_O_FLAGS], [ dnl Persuade glibc <fcntl.h> to define O_NOATIME and O_NOFOLLOW. - dnl AC_USE_SYSTEM_EXTENSIONS was introduced in autoconf 2.60 and obsoletes - dnl AC_GNU_SOURCE. - m4_ifdef([AC_USE_SYSTEM_EXTENSIONS], - [AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS])], - [AC_REQUIRE([AC_GNU_SOURCE])]) + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) AC_REQUIRE([AC_CANONICAL_HOST]) dnl for cross-compiles AC_CHECK_HEADERS_ONCE([unistd.h]) diff --git a/m4/fcntl-safer.m4 b/m4/fcntl-safer.m4 new file mode 100644 index 00000000..bacacb17 --- /dev/null +++ b/m4/fcntl-safer.m4 @@ -0,0 +1,16 @@ +#serial 9 +dnl Copyright (C) 2005-2007, 2009-2019 Free Software Foundation, Inc. +dnl This file is free software; the Free 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_FCNTL_SAFER], +[ + dnl Prerequisites of lib/open-safer.c. + AC_REQUIRE([gl_PROMOTED_TYPE_MODE_T]) +]) + +AC_DEFUN([gl_OPENAT_SAFER], +[ + AC_REQUIRE([gl_FCNTL_SAFER]) +]) diff --git a/m4/fcntl.m4 b/m4/fcntl.m4 index dda3b5f2..e409e96b 100644 --- a/m4/fcntl.m4 +++ b/m4/fcntl.m4 @@ -1,5 +1,5 @@ # fcntl.m4 serial 9 -dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/fcntl_h.m4 b/m4/fcntl_h.m4 index 09c21eff..a86fdae5 100644 --- a/m4/fcntl_h.m4 +++ b/m4/fcntl_h.m4 @@ -1,6 +1,6 @@ # serial 15 # Configure fcntl.h. -dnl Copyright (C) 2006-2007, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2006-2007, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/fdopendir.m4 b/m4/fdopendir.m4 index 51c2b64b..04905519 100644 --- a/m4/fdopendir.m4 +++ b/m4/fdopendir.m4 @@ -1,7 +1,7 @@ # serial 10 # See if we need to provide fdopendir. -dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/fileblocks.m4 b/m4/fileblocks.m4 index 6707d707..17b5f8d7 100644 --- a/m4/fileblocks.m4 +++ b/m4/fileblocks.m4 @@ -1,5 +1,5 @@ # fileblocks.m4 serial 6 -dnl Copyright (C) 2002, 2005-2006, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2005-2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/filenamecat.m4 b/m4/filenamecat.m4 index ce60cb47..351715a7 100644 --- a/m4/filenamecat.m4 +++ b/m4/filenamecat.m4 @@ -1,5 +1,5 @@ # filenamecat.m4 serial 11 -dnl Copyright (C) 2002-2006, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/flexmember.m4 b/m4/flexmember.m4 index 9d3b50d1..1347068f 100644 --- a/m4/flexmember.m4 +++ b/m4/flexmember.m4 @@ -1,7 +1,7 @@ # serial 5 # Check for flexible array member support. -# Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2006, 2009-2019 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. diff --git a/m4/float_h.m4 b/m4/float_h.m4 index 24bd06ec..1cd28a0b 100644 --- a/m4/float_h.m4 +++ b/m4/float_h.m4 @@ -1,5 +1,5 @@ # float_h.m4 serial 12 -dnl Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2007, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/fnmatch.m4 b/m4/fnmatch.m4 index 7292c1aa..c264ca71 100644 --- a/m4/fnmatch.m4 +++ b/m4/fnmatch.m4 @@ -1,6 +1,6 @@ -# Check for fnmatch - serial 9. -*- coding: utf-8 -*- +# Check for fnmatch - serial 13. -*- coding: utf-8 -*- -# Copyright (C) 2000-2007, 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2000-2007, 2009-2019 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,124 +13,120 @@ AC_DEFUN([gl_FUNC_FNMATCH_POSIX], [ m4_divert_text([DEFAULTS], [gl_fnmatch_required=POSIX]) - dnl Persuade glibc <fnmatch.h> to declare FNM_CASEFOLD etc. - dnl This is only needed if gl_fnmatch_required = GNU. It would be possible - dnl to avoid this dependency for gl_FUNC_FNMATCH_POSIX by putting - dnl gl_FUNC_FNMATCH_GNU into a separate .m4 file. - AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) - - FNMATCH_H= + AC_REQUIRE([gl_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}" - AC_CACHE_CHECK([for working $gl_fnmatch_required fnmatch], - [$gl_fnmatch_cache_var], - [dnl Some versions of Solaris, SCO, and the GNU C Library - dnl have a broken or incompatible fnmatch. - dnl So we run a test program. If we are cross-compiling, take no chance. - dnl Thanks to John Oleynick, François Pinard, and Paul Eggert for this - dnl test. - 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 - AC_RUN_IFELSE( - [AC_LANG_PROGRAM( - [[#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; - } - ]], - [[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; - ]])], - [eval "$gl_fnmatch_cache_var=yes"], - [eval "$gl_fnmatch_cache_var=no"], - [eval "$gl_fnmatch_cache_var=\"guessing no\""]) - ]) - eval "gl_fnmatch_result=\"\$$gl_fnmatch_cache_var\"" - if test "$gl_fnmatch_result" = yes; then - dnl Not strictly necessary. Only to avoid spurious leftover files if people - dnl don't do "make distclean". - rm -f "$gl_source_base/fnmatch.h" + AC_CHECK_FUNCS_ONCE([fnmatch]) + if test $ac_cv_func_fnmatch = no; then + HAVE_FNMATCH=0 else - FNMATCH_H=fnmatch.h + gl_fnmatch_cache_var="gl_cv_func_fnmatch_${gl_fnmatch_required_lowercase}" + AC_CACHE_CHECK([for working $gl_fnmatch_required fnmatch], + [$gl_fnmatch_cache_var], + [dnl Some versions of Solaris, SCO, and the GNU C Library + dnl have a broken or incompatible fnmatch. + dnl So we run a test program. If we are cross-compiling, take no chance. + dnl Thanks to John Oleynick, François Pinard, and Paul Eggert for this + dnl test. + 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 + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#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; + } + ]], + [[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; + ]])], + [eval "$gl_fnmatch_cache_var=yes"], + [eval "$gl_fnmatch_cache_var=no"], + [eval "$gl_fnmatch_cache_var=\"guessing no\""]) + ]) + eval "gl_fnmatch_result=\"\$$gl_fnmatch_cache_var\"" + if test "$gl_fnmatch_result" != yes; then + REPLACE_FNMATCH=1 + fi + fi + if test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1; then + gl_REPLACE_FNMATCH_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. @@ -143,11 +139,6 @@ AC_DEFUN([gl_FUNC_FNMATCH_GNU], 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>]]) diff --git a/m4/fnmatch_h.m4 b/m4/fnmatch_h.m4 new file mode 100644 index 00000000..fba6f868 --- /dev/null +++ b/m4/fnmatch_h.m4 @@ -0,0 +1,75 @@ +# fnmatch_h.m4 serial 4 +dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. + +dnl From Bruno Haible. + +AC_DEFUN_ONCE([gl_FNMATCH_H], +[ + AC_REQUIRE([gl_FNMATCH_H_DEFAULTS]) + m4_ifdef([gl_ANSI_CXX], [AC_REQUIRE([gl_ANSI_CXX])]) + AC_CHECK_HEADERS_ONCE([fnmatch.h]) + gl_CHECK_NEXT_HEADERS([fnmatch.h]) + + dnl Persuade glibc <fnmatch.h> to declare FNM_CASEFOLD etc. + dnl This is only needed if gl_fnmatch_required = GNU. It would be possible + dnl to avoid this dependency for gl_FUNC_FNMATCH_POSIX by putting + dnl gl_FUNC_FNMATCH_GNU into a separate .m4 file. + AC_REQUIRE([AC_USE_SYSTEM_EXTENSIONS]) + + if test $ac_cv_header_fnmatch_h = yes; then + HAVE_FNMATCH_H=1 + else + HAVE_FNMATCH_H=0 + fi + AC_SUBST([HAVE_FNMATCH_H]) + + m4_ifdef([gl_POSIXCHECK], + [FNMATCH_H=fnmatch.h], + [FNMATCH_H='' + if m4_ifdef([gl_ANSI_CXX], [test "$CXX" != no], [false]); then + dnl Override <fnmatch.h> always, to support the C++ GNULIB_NAMESPACE. + FNMATCH_H=fnmatch.h + else + if test $ac_cv_header_fnmatch_h != yes; then + dnl Provide a substitute <fnmatch.h> file. + FNMATCH_H=fnmatch.h + fi + fi + ]) + AC_SUBST([FNMATCH_H]) + AM_CONDITIONAL([GL_GENERATE_FNMATCH_H], [test -n "$FNMATCH_H"]) + + dnl Check for declarations of anything we want to poison if the + dnl corresponding gnulib module is not in use. + gl_WARN_ON_USE_PREPARE([[#include <fnmatch.h> + ]], + [fnmatch]) +]) + +dnl Unconditionally enables the replacement of <fnmatch.h>. +AC_DEFUN([gl_REPLACE_FNMATCH_H], +[ + AC_REQUIRE([gl_FNMATCH_H_DEFAULTS]) + FNMATCH_H='fnmatch.h' + AM_CONDITIONAL([GL_GENERATE_FNMATCH_H], [test -n "$FNMATCH_H"]) +]) + +AC_DEFUN([gl_FNMATCH_MODULE_INDICATOR], +[ + dnl Use AC_REQUIRE here, so that the default settings are expanded once only. + AC_REQUIRE([gl_FNMATCH_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_FNMATCH_H_DEFAULTS], +[ + GNULIB_FNMATCH=0; AC_SUBST([GNULIB_FNMATCH]) + dnl Assume POSIX behavior unless another module says otherwise. + HAVE_FNMATCH=1; AC_SUBST([HAVE_FNMATCH]) + REPLACE_FNMATCH=0; AC_SUBST([REPLACE_FNMATCH]) +]) diff --git a/m4/fpending.m4 b/m4/fpending.m4 index 3a5e934c..402ec403 100644 --- a/m4/fpending.m4 +++ b/m4/fpending.m4 @@ -1,6 +1,6 @@ # serial 22 -# Copyright (C) 2000-2001, 2004-2017 Free Software Foundation, Inc. +# Copyright (C) 2000-2001, 2004-2019 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. diff --git a/m4/fseek.m4 b/m4/fseek.m4 index 4664ac16..2dfeecb7 100644 --- a/m4/fseek.m4 +++ b/m4/fseek.m4 @@ -1,5 +1,5 @@ # fseek.m4 serial 4 -dnl Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2007, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/fseeko.m4 b/m4/fseeko.m4 index 5c30df22..1e2b08db 100644 --- a/m4/fseeko.m4 +++ b/m4/fseeko.m4 @@ -1,5 +1,5 @@ -# fseeko.m4 serial 18 -dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. +# fseeko.m4 serial 19 +dnl Copyright (C) 2007-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -68,7 +68,10 @@ AC_DEFUN([gl_STDIN_LARGE_OFFSET], # 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. + dnl Native Windows has the function _fseeki64. mingw hides it in some + dnl circumstances, but mingw64 makes it usable again. AC_CHECK_FUNCS([_fseeki64]) + if test $ac_cv_func__fseeki64 = yes; then + AC_CHECK_DECLS([_fseeki64]) + fi ]) diff --git a/m4/fstat.m4 b/m4/fstat.m4 index e70e533e..2a59c8ff 100644 --- a/m4/fstat.m4 +++ b/m4/fstat.m4 @@ -1,5 +1,5 @@ -# fstat.m4 serial 5 -dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. +# fstat.m4 serial 6 +dnl Copyright (C) 2011-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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,9 +10,10 @@ AC_DEFUN([gl_FUNC_FSTAT], AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) case "$host_os" in - mingw*) - dnl On this platform, the original stat() returns st_atime, st_mtime, + mingw* | solaris*) + dnl On MinGW, the original stat() returns st_atime, st_mtime, dnl st_ctime values that are affected by the time zone. + dnl Solaris stat can return a negative tv_nsec. REPLACE_FSTAT=1 ;; esac diff --git a/m4/fstatat.m4 b/m4/fstatat.m4 index 7dba5279..489a55a3 100644 --- a/m4/fstatat.m4 +++ b/m4/fstatat.m4 @@ -1,5 +1,5 @@ -# fstatat.m4 serial 3 -dnl Copyright (C) 2004-2017 Free Software Foundation, Inc. +# fstatat.m4 serial 4 +dnl Copyright (C) 2004-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -13,7 +13,7 @@ AC_DEFUN([gl_FUNC_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_REQUIRE([AC_CANONICAL_HOST]) AC_CHECK_FUNCS_ONCE([fstatat]) if test $ac_cv_func_fstatat = no; then @@ -46,15 +46,20 @@ AC_DEFUN([gl_FUNC_FSTATAT], 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) + *) REPLACE_FSTATAT=1 ;; + esac + + case $host_os in + solaris*) + REPLACE_FSTATAT=1 ;; + esac + + case $REPLACE_FSTATAT,$gl_cv_func_fstatat_zero_flag in + 1,*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 ]) diff --git a/m4/futimens.m4 b/m4/futimens.m4 index d68bff3a..3cfa4a19 100644 --- a/m4/futimens.m4 +++ b/m4/futimens.m4 @@ -1,7 +1,7 @@ # serial 7 # See if we need to provide futimens replacement. -dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/getcwd-abort-bug.m4 b/m4/getcwd-abort-bug.m4 index b16bb5ab..7929b674 100644 --- a/m4/getcwd-abort-bug.m4 +++ b/m4/getcwd-abort-bug.m4 @@ -1,9 +1,9 @@ -# serial 8 +# serial 9 # 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-2017 Free Software Foundation, Inc. +# Copyright (C) 2006, 2009-2019 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,7 +16,13 @@ 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]) + + gl_CHECK_FUNC_GETPAGESIZE + if test $gl_cv_func_getpagesize = yes; then + AC_DEFINE_UNQUOTED([HAVE_GETPAGESIZE], [1], + [Define to 1 if the system has the 'getpagesize' function.]) + fi + AC_CACHE_CHECK([whether getcwd aborts when 4k < cwd_length < 16k], [gl_cv_func_getcwd_abort_bug], [# Remove any remnants of a previous test. diff --git a/m4/getcwd-path-max.m4 b/m4/getcwd-path-max.m4 index 71e7cd07..2cefc00a 100644 --- a/m4/getcwd-path-max.m4 +++ b/m4/getcwd-path-max.m4 @@ -1,4 +1,4 @@ -# serial 20 +# serial 21 # Check for several getcwd bugs with long file names. # If so, arrange to compile the wrapper function. @@ -6,7 +6,7 @@ # 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. -# Copyright (C) 2003-2007, 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2003-2007, 2009-2019 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. @@ -209,9 +209,21 @@ main () 32) gl_cv_func_getcwd_path_max='yes, but with shorter paths';; *) gl_cv_func_getcwd_path_max=no;; esac], - [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]) + [# Cross-compilation guesses: + case "$host_os" in + aix*) # On AIX, it has the AIX bug. + gl_cv_func_getcwd_path_max='no, it has the AIX bug' ;; + gnu*) # On Hurd, it is 'yes'. + gl_cv_func_getcwd_path_max=yes ;; + linux* | kfreebsd*) + # On older Linux+glibc it's 'no, but it is partly working', + # on newer Linux+glibc it's 'yes'. + # On Linux+musl libc, it's 'no, but it is partly working'. + # On kFreeBSD+glibc, it's 'no, but it is partly working'. + gl_cv_func_getcwd_path_max='no, but it is partly working' ;; + *) # If we don't know, assume the worst. + gl_cv_func_getcwd_path_max=no ;; + esac + ]) ]) ]) diff --git a/m4/getcwd.m4 b/m4/getcwd.m4 index a3f62c46..4929b511 100644 --- a/m4/getcwd.m4 +++ b/m4/getcwd.m4 @@ -1,12 +1,12 @@ # getcwd.m4 - check for working getcwd that is compatible with glibc -# Copyright (C) 2001, 2003-2007, 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003-2007, 2009-2019 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 14 +# serial 16 AC_DEFUN([gl_FUNC_GETCWD_NULL], [ @@ -25,7 +25,7 @@ AC_DEFUN([gl_FUNC_GETCWD_NULL], char *getcwd (); # endif ]], [[ -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ /* mingw cwd does not start with '/', but getcwd does allocate. However, mingw fails to honor non-zero size. */ #else @@ -48,12 +48,12 @@ 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";; - # If we don't know, assume the worst. - *) gl_cv_func_getcwd_null="guessing no";; + # Guess yes on glibc systems. + *-gnu* | 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 ]])]) ]) diff --git a/m4/getdelim.m4 b/m4/getdelim.m4 index 67afdbab..bf17c572 100644 --- a/m4/getdelim.m4 +++ b/m4/getdelim.m4 @@ -1,6 +1,6 @@ # getdelim.m4 serial 12 -dnl Copyright (C) 2005-2007, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2005-2007, 2009-2019 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, diff --git a/m4/getdtablesize.m4 b/m4/getdtablesize.m4 index f1e4f5f6..96aa241b 100644 --- a/m4/getdtablesize.m4 +++ b/m4/getdtablesize.m4 @@ -1,5 +1,5 @@ # getdtablesize.m4 serial 7 -dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/getgroups.m4 b/m4/getgroups.m4 index 17f74099..2ce986ea 100644 --- a/m4/getgroups.m4 +++ b/m4/getgroups.m4 @@ -1,9 +1,9 @@ -# serial 19 +# serial 21 dnl From Jim Meyering. dnl A wrapper around AC_FUNC_GETGROUPS. -# Copyright (C) 1996-1997, 1999-2004, 2008-2017 Free Software Foundation, Inc. +# Copyright (C) 1996-1997, 1999-2004, 2008-2019 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -34,16 +34,16 @@ AC_DEFUN([AC_FUNC_GETGROUPS], [AC_RUN_IFELSE( [AC_LANG_PROGRAM( [AC_INCLUDES_DEFAULT], - [[/* On Ultrix 4.3, getgroups (0, 0) always fails. */ + [[/* On NeXTstep 3.2, getgroups (0, 0) always fails. */ return getgroups (0, 0) == -1;]]) ], [ac_cv_func_getgroups_works=yes], [ac_cv_func_getgroups_works=no], [case "$host_os" in # (( - # Guess yes on glibc systems. - *-gnu*) ac_cv_func_getgroups_works="guessing yes" ;; - # If we don't know, assume the worst. - *) ac_cv_func_getgroups_works="guessing no" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) ac_cv_func_getgroups_works="guessing yes" ;; + # If we don't know, assume the worst. + *) ac_cv_func_getgroups_works="guessing no" ;; esac ]) ]) @@ -93,10 +93,10 @@ AC_DEFUN([gl_FUNC_GETGROUPS], [gl_cv_func_getgroups_works=yes], [gl_cv_func_getgroups_works=no], [case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_getgroups_works="guessing yes" ;; - # If we don't know, assume the worst. - *) gl_cv_func_getgroups_works="guessing no" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_getgroups_works="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_getgroups_works="guessing no" ;; esac ])]) case "$gl_cv_func_getgroups_works" in diff --git a/m4/getline.m4 b/m4/getline.m4 index bd91befa..5b2ead28 100644 --- a/m4/getline.m4 +++ b/m4/getline.m4 @@ -1,6 +1,6 @@ # getline.m4 serial 28 -dnl Copyright (C) 1998-2003, 2005-2007, 2009-2017 Free Software Foundation, +dnl Copyright (C) 1998-2003, 2005-2007, 2009-2019 Free Software Foundation, dnl Inc. dnl dnl This file is free software; the Free Software Foundation diff --git a/m4/getopt.m4 b/m4/getopt.m4 index 3ebc7b7e..5991bf83 100644 --- a/m4/getopt.m4 +++ b/m4/getopt.m4 @@ -1,5 +1,5 @@ # getopt.m4 serial 46 -dnl Copyright (C) 2002-2006, 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2006, 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/getpagesize.m4 b/m4/getpagesize.m4 index f891200f..546c3ad1 100644 --- a/m4/getpagesize.m4 +++ b/m4/getpagesize.m4 @@ -1,5 +1,5 @@ -# getpagesize.m4 serial 9 -dnl Copyright (C) 2002, 2004-2005, 2007, 2009-2017 Free Software Foundation, +# getpagesize.m4 serial 10 +dnl Copyright (C) 2002, 2004-2005, 2007, 2009-2019 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, @@ -9,8 +9,8 @@ AC_DEFUN([gl_FUNC_GETPAGESIZE], [ AC_REQUIRE([gl_UNISTD_H_DEFAULTS]) AC_REQUIRE([AC_CANONICAL_HOST]) - AC_CHECK_FUNCS([getpagesize]) - if test $ac_cv_func_getpagesize = no; then + gl_CHECK_FUNC_GETPAGESIZE + if test $gl_cv_func_getpagesize = no; then HAVE_GETPAGESIZE=0 AC_CHECK_HEADERS([OS.h]) if test $ac_cv_header_OS_h = yes; then @@ -30,3 +30,20 @@ AC_DEFUN([gl_FUNC_GETPAGESIZE], dnl mingw has getpagesize() in libgcc.a but doesn't declare it. AC_CHECK_DECL([getpagesize], , [HAVE_DECL_GETPAGESIZE=0]) ]) + +dnl Tests whether the function getpagesize() exists. +dnl Sets gl_cv_func_getpagesize. +AC_DEFUN([gl_CHECK_FUNC_GETPAGESIZE], +[ + dnl We can't use AC_CHECK_FUNC here, because getpagesize() is defined as a + dnl static inline function when compiling for Android 4.4 or older. + AC_CACHE_CHECK([for getpagesize], [gl_cv_func_getpagesize], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include <unistd.h>]], + [[return getpagesize();]]) + ], + [gl_cv_func_getpagesize=yes], + [gl_cv_func_getpagesize=no]) + ]) +]) diff --git a/m4/getprogname.m4 b/m4/getprogname.m4 index efc06e78..4a96d066 100644 --- a/m4/getprogname.m4 +++ b/m4/getprogname.m4 @@ -1,6 +1,6 @@ # getprogname.m4 - check for getprogname or replacements for it -# Copyright (C) 2016-2017 Free Software Foundation, Inc. +# Copyright (C) 2016-2019 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. diff --git a/m4/gettext.m4 b/m4/gettext.m4 index eef5073b..fec38045 100644 --- a/m4/gettext.m4 +++ b/m4/gettext.m4 @@ -1,5 +1,5 @@ -# gettext.m4 serial 68 (gettext-0.19.8) -dnl Copyright (C) 1995-2014, 2016 Free Software Foundation, Inc. +# gettext.m4 serial 69 (gettext-0.19.9) +dnl Copyright (C) 1995-2014, 2016, 2018-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -91,8 +91,7 @@ AC_DEFUN([AM_GNU_GETTEXT], dnl again, outside any 'if'. There are two solutions: dnl - Invoke AM_ICONV_LINKFLAGS_BODY here, outside any 'if'. dnl - Control the expansions in more detail using AC_PROVIDE_IFELSE. - dnl Since AC_PROVIDE_IFELSE is only in autoconf >= 2.52 and not - dnl documented, we avoid it. + dnl Since AC_PROVIDE_IFELSE is not documented, we avoid it. ifelse(gt_included_intl, yes, , [ AC_REQUIRE([AM_ICONV_LINKFLAGS_BODY]) ]) diff --git a/m4/gettime.m4 b/m4/gettime.m4 index 1cdab278..60d8ea18 100644 --- a/m4/gettime.m4 +++ b/m4/gettime.m4 @@ -1,5 +1,5 @@ -# gettime.m4 serial 8 -dnl Copyright (C) 2002, 2004-2006, 2009-2017 Free Software Foundation, Inc. +# gettime.m4 serial 9 +dnl Copyright (C) 2002, 2004-2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -9,5 +9,5 @@ AC_DEFUN([gl_GETTIME], dnl Prerequisites of lib/gettime.c. AC_REQUIRE([gl_CLOCK_TIME]) AC_REQUIRE([gl_TIMESPEC]) - AC_CHECK_FUNCS_ONCE([gettimeofday nanotime]) + AC_CHECK_FUNCS_ONCE([gettimeofday]) ]) diff --git a/m4/gettimeofday.m4 b/m4/gettimeofday.m4 index efa114df..d29b4bff 100644 --- a/m4/gettimeofday.m4 +++ b/m4/gettimeofday.m4 @@ -1,6 +1,6 @@ -# serial 24 +# serial 25 -# Copyright (C) 2001-2003, 2005, 2007, 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2001-2003, 2005, 2007, 2009-2019 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. @@ -103,12 +103,12 @@ AC_DEFUN([gl_FUNC_GETTIMEOFDAY_CLOBBER], [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" ;; - # Guess no on native Windows. - mingw*) gl_cv_func_gettimeofday_clobber="guessing no" ;; - # If we don't know, assume the worst. - *) gl_cv_func_gettimeofday_clobber="guessing yes" ;; + # Guess all is fine on glibc systems. + *-gnu* | gnu*) gl_cv_func_gettimeofday_clobber="guessing no" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_gettimeofday_clobber="guessing no" ;; + # If we don't know, assume the worst. + *) gl_cv_func_gettimeofday_clobber="guessing yes" ;; esac ])]) diff --git a/m4/glibc21.m4 b/m4/glibc21.m4 index 2e30ed68..0ab0f235 100644 --- a/m4/glibc21.m4 +++ b/m4/glibc21.m4 @@ -1,5 +1,5 @@ # glibc21.m4 serial 5 -dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2017 Free Software Foundation, +dnl Copyright (C) 2000-2002, 2004, 2008, 2010-2019 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/gnulib-common.m4 b/m4/gnulib-common.m4 index bea5a650..7c0e3e8f 100644 --- a/m4/gnulib-common.m4 +++ b/m4/gnulib-common.m4 @@ -1,9 +1,11 @@ -# gnulib-common.m4 serial 38 -dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. +# gnulib-common.m4 serial 41 +dnl Copyright (C) 2007-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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_PREREQ([2.62]) + # gl_COMMON # is expanded unconditionally through gnulib-tool magic. AC_DEFUN([gl_COMMON], [ @@ -14,12 +16,15 @@ AC_DEFUN([gl_COMMON], [ 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) +#ifndef _Noreturn +# if 201103 <= (defined __cplusplus ? __cplusplus : 0) +# define _Noreturn [[noreturn]] +# elif (201112 <= (defined __STDC_VERSION__ ? __STDC_VERSION__ : 0) \ + || 4 < __GNUC__ + (7 <= __GNUC_MINOR__)) + /* _Noreturn works as-is. */ +# elif 2 < __GNUC__ + (8 <= __GNUC_MINOR__) || 0x5110 <= __SUNPRO_C # define _Noreturn __attribute__ ((__noreturn__)) -# elif defined _MSC_VER && 1200 <= _MSC_VER +# elif 1200 <= (defined _MSC_VER ? _MSC_VER : 0) # define _Noreturn __declspec (noreturn) # else # define _Noreturn @@ -72,6 +77,13 @@ AC_DEFUN([gl_COMMON_BODY], [ #else # define _GL_ATTRIBUTE_CONST /* empty */ #endif + +/* The __malloc__ attribute was added in gcc 3. */ +#if 3 <= __GNUC__ +# define _GL_ATTRIBUTE_MALLOC __attribute__ ((__malloc__)) +#else +# define _GL_ATTRIBUTE_MALLOC /* empty */ +#endif ]) dnl Preparation for running test programs: dnl Tell glibc to write diagnostics from -D_FORTIFY_SOURCE=2 to stderr, not @@ -207,13 +219,6 @@ AC_DEFUN([gl_FEATURES_H], AC_SUBST([HAVE_FEATURES_H]) ]) -# m4_foreach_w -# is a backport of autoconf-2.59c's m4_foreach_w. -# Remove this macro when we can assume autoconf >= 2.60. -m4_ifndef([m4_foreach_w], - [m4_define([m4_foreach_w], - [m4_foreach([$1], m4_split(m4_normalize([$2]), [ ]), [$3])])]) - # AS_VAR_IF(VAR, VALUE, [IF-MATCH], [IF-NOT-MATCH]) # ---------------------------------------------------- # Backport of autoconf-2.63b's macro. @@ -226,7 +231,6 @@ m4_ifndef([AS_VAR_IF], # 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 # <https://lists.gnu.org/r/bug-gnulib/2011-09/msg00367.html>, # but many more packages use AC_PROG_CC_STDC than AC_PROG_CC_C99 @@ -315,25 +319,6 @@ Amsterdam 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], - m4_defn([AC_PROG_MKDIR_P])[ - AC_SUBST([MKDIR_P])])], [ - dnl For autoconf < 2.60: Backport of AC_PROG_MKDIR_P. - AC_DEFUN_ONCE([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 is copied from post-2.69 Autoconf and overrides the # AC_C_RESTRICT macro from autoconf 2.60..2.69. It can be removed @@ -347,16 +332,16 @@ AC_DEFUN([AC_C_RESTRICT], for ac_kw in __restrict __restrict__ _Restrict restrict; do AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( - [[typedef int *int_ptr; - int foo (int_ptr $ac_kw ip) { return ip[0]; } - int bar (int [$ac_kw]); /* Catch GCC bug 14050. */ - int bar (int ip[$ac_kw]) { return ip[0]; } - ]], - [[int s[1]; - int *$ac_kw t = s; - t[0] = 0; - return foo (t) + bar (t); - ]])], + [[typedef int *int_ptr; + int foo (int_ptr $ac_kw ip) { return ip[0]; } + int bar (int [$ac_kw]); /* Catch GCC bug 14050. */ + int bar (int ip[$ac_kw]) { return ip[0]; } + ]], + [[int s[1]; + int *$ac_kw t = s; + t[0] = 0; + return foo (t) + bar (t); + ]])], [ac_cv_c_restrict=$ac_kw]) test "$ac_cv_c_restrict" != no && break done @@ -407,61 +392,3 @@ AC_DEFUN([gl_CACHE_VAL_SILENT], # AS_VAR_COPY was added in autoconf 2.63b m4_define_default([AS_VAR_COPY], [AS_LITERAL_IF([$1[]$2], [$1=$$2], [eval $1=\$$2])]) - -# AC_PROG_SED was added in autoconf 2.59b -m4_ifndef([AC_PROG_SED], -[AC_DEFUN([AC_PROG_SED], -[AC_CACHE_CHECK([for a sed that does not truncate output], ac_cv_path_SED, - [dnl ac_script should not contain more than 99 commands (for HP-UX sed), - dnl but more than about 7000 bytes, to catch a limit in Solaris 8 /usr/ucb/sed. - ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ - for ac_i in 1 2 3 4 5 6 7; do - ac_script="$ac_script$as_nl$ac_script" - done - echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed - AS_UNSET([ac_script]) - if test -z "$SED"; then - ac_path_SED_found=false - _AS_PATH_WALK([], [ - for ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" - AS_EXECUTABLE_P(["$ac_path_SED"]) || continue - case `"$ac_path_SED" --version 2>&1` in - *GNU*) ac_cv_path_SED=$ac_path_SED ac_path_SED_found=:;; - *) - ac_count=0 - _AS_ECHO_N([0123456789]) >conftest.in - while : - do - cat conftest.in conftest.in >conftest.tmp - mv conftest.tmp conftest.in - cp conftest.in conftest.nl - echo >> conftest.nl - "$ac_path_SED" -f conftest.sed <conftest.nl >conftest.out 2>/dev/null || break - diff conftest.out conftest.nl >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` - if test $ac_count -gt ${ac_path_SED_max-0}; then - # Best so far, but keep looking for better - ac_cv_path_SED=$ac_path_SED - ac_path_SED_max=$ac_count - fi - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; - esac - $ac_path_SED_found && break 3 - done - done]) - if test -z "$ac_cv_path_SED"; then - AC_ERROR([no acceptable sed could be found in \$PATH]) - fi - else - ac_cv_path_SED=$SED - fi - ]) - SED="$ac_cv_path_SED" - AC_SUBST([SED])dnl - rm -f conftest.sed -]) -]) diff --git a/m4/gnulib-comp.m4 b/m4/gnulib-comp.m4 index 15e7c4b7..1800eab0 100644 --- a/m4/gnulib-comp.m4 +++ b/m4/gnulib-comp.m4 @@ -1,5 +1,5 @@ # DO NOT EDIT! GENERATED AUTOMATICALLY! -# Copyright (C) 2002-2017 Free Software Foundation, Inc. +# Copyright (C) 2002-2019 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 @@ -101,6 +101,7 @@ AC_DEFUN([gl_EARLY], # Code from module fchownat: # Code from module fcntl: # Code from module fcntl-h: + # Code from module fcntl-safer: # Code from module fd-hook: # Code from module fd-safer-flag: # Code from module fdopendir: @@ -113,6 +114,7 @@ AC_DEFUN([gl_EARLY], # Code from module float: # Code from module fnmatch: # Code from module fnmatch-gnu: + # Code from module fnmatch-h: # Code from module fpending: # Code from module fprintftime: # Code from module fseek: @@ -141,7 +143,6 @@ AC_DEFUN([gl_EARLY], # Code from module hard-locale: # Code from module hash: # Code from module havelib: - # Code from module host-cpu-c-abi: # Code from module human: # Code from module include_next: # Code from module intprops: @@ -153,6 +154,7 @@ AC_DEFUN([gl_EARLY], # Code from module largefile: AC_REQUIRE([AC_SYS_LARGEFILE]) # Code from module lchown: + # Code from module libc-config: # Code from module limits-h: # Code from module link: # Code from module link-follow: @@ -198,7 +200,9 @@ AC_DEFUN([gl_EARLY], # Code from module openat: # Code from module openat-die: # Code from module openat-h: + # Code from module openat-safer: # Code from module opendir: + # Code from module opendirat: # Code from module parse-datetime: # Code from module pathmax: # Code from module priv-set: @@ -216,7 +220,7 @@ AC_DEFUN([gl_EARLY], # Code from module regex: # Code from module rename: # Code from module renameat: - # Code from module renameat2: + # Code from module renameatu: # Code from module rewinddir: # Code from module rmdir: # Code from module root-uid: @@ -246,9 +250,7 @@ AC_DEFUN([gl_EARLY], # 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 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. + dnl for the builtin va_copy to work. gl_PROG_CC_C99 arranges for this. gl_PROG_CC_C99 # Code from module stdbool: # Code from module stddef: @@ -467,6 +469,8 @@ AC_DEFUN([gl_INIT], fi gl_FCNTL_MODULE_INDICATOR([fcntl]) gl_FCNTL_H + gl_FCNTL_SAFER + gl_MODULE_INDICATOR([fcntl-safer]) gl_MODULE_INDICATOR([fd-safer-flag]) gl_FUNC_FDOPENDIR if test $HAVE_FDOPENDIR = 0 || test $REPLACE_FDOPENDIR = 1; then @@ -491,15 +495,18 @@ AC_DEFUN([gl_INIT], AC_LIBOBJ([itold]) fi gl_FUNC_FNMATCH_POSIX - if test -n "$FNMATCH_H"; then + if test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1; then AC_LIBOBJ([fnmatch]) gl_PREREQ_FNMATCH fi + gl_FNMATCH_MODULE_INDICATOR([fnmatch]) gl_FUNC_FNMATCH_GNU - if test -n "$FNMATCH_H"; then + if test $HAVE_FNMATCH = 0 || test $REPLACE_FNMATCH = 1; then AC_LIBOBJ([fnmatch]) gl_PREREQ_FNMATCH fi + gl_MODULE_INDICATOR([fnmatch-gnu]) + gl_FNMATCH_H gl_FUNC_FPENDING if test $gl_cv_func___fpending = no; then AC_LIBOBJ([fpending]) @@ -606,8 +613,6 @@ AC_DEFUN([gl_INIT], gl_PREREQ_GROUP_MEMBER fi gl_UNISTD_MODULE_INDICATOR([group-member]) - gl_HARD_LOCALE - AC_REQUIRE([gl_HOST_CPU_C_ABI]) gl_HUMAN gl_INTTOSTR gl_INTTYPES_H @@ -628,6 +633,7 @@ AC_DEFUN([gl_INIT], AC_LIBOBJ([lchown]) fi gl_UNISTD_MODULE_INDICATOR([lchown]) + gl___INLINE gl_LIMITS_H gl_FUNC_LINK if test $HAVE_LINK = 0 || test $REPLACE_LINK = 1; then @@ -642,7 +648,8 @@ AC_DEFUN([gl_INIT], fi gl_UNISTD_MODULE_INDICATOR([linkat]) gl_LOCALCHARSET - LOCALCHARSET_TESTS_ENVIRONMENT="CHARSETALIASDIR=\"\$(abs_top_builddir)/$gl_source_base\"" + dnl For backward compatibility. Some packages still use this. + LOCALCHARSET_TESTS_ENVIRONMENT= AC_SUBST([LOCALCHARSET_TESTS_ENVIRONMENT]) gl_LOCALE_H gl_FUNC_LOCALECONV @@ -800,6 +807,8 @@ AC_DEFUN([gl_INIT], fi gl_MODULE_INDICATOR([openat]) dnl for lib/getcwd.c gl_FCNTL_MODULE_INDICATOR([openat]) + gl_OPENAT_SAFER + gl_MODULE_INDICATOR([openat-safer]) gl_FUNC_OPENDIR if test $HAVE_OPENDIR = 0 || test $REPLACE_OPENDIR = 1; then AC_LIBOBJ([opendir]) @@ -1067,7 +1076,7 @@ AC_DEFUN([gl_INIT], gl_UNISTD_SAFER gl_LIBUNISTRING_LIBHEADER([0.9.4], [unitypes.h]) gl_LIBUNISTRING_LIBHEADER([0.9.4], [uniwidth.h]) - gl_LIBUNISTRING_MODULE([0.9.6], [uniwidth/width]) + gl_LIBUNISTRING_MODULE([0.9.8], [uniwidth/width]) gl_FUNC_UNLINK if test $REPLACE_UNLINK = 1; then AC_LIBOBJ([unlink]) @@ -1119,6 +1128,7 @@ AC_DEFUN([gl_INIT], gl_FUNC_WCWIDTH if test $HAVE_WCWIDTH = 0 || test $REPLACE_WCWIDTH = 1; then AC_LIBOBJ([wcwidth]) + gl_PREREQ_WCWIDTH fi gl_WCHAR_MODULE_INDICATOR([wcwidth]) gl_FUNC_WRITE @@ -1337,6 +1347,7 @@ AC_DEFUN([gl_FILE_LIST], [ lib/canonicalize-lgpl.c lib/careadlinkat.c lib/careadlinkat.h + lib/cdefs.h lib/chdir-long.c lib/chdir-long.h lib/chmodat.c @@ -1350,7 +1361,7 @@ AC_DEFUN([gl_FILE_LIST], [ lib/closedir.c lib/closeout.c lib/closeout.h - lib/config.charset + lib/creat-safer.c lib/dirent--.h lib/dirent-private.h lib/dirent-safer.h @@ -1377,6 +1388,8 @@ AC_DEFUN([gl_FILE_LIST], [ lib/fchmodat.c lib/fchown-stub.c lib/fchownat.c + lib/fcntl--.h + lib/fcntl-safer.h lib/fcntl.c lib/fcntl.in.h lib/fd-hook.c @@ -1447,6 +1460,7 @@ AC_DEFUN([gl_FILE_LIST], [ lib/itold.c lib/langinfo.in.h lib/lchown.c + lib/libc-config.h lib/limits.in.h lib/link.c lib/linkat.c @@ -1461,7 +1475,6 @@ AC_DEFUN([gl_FILE_LIST], [ lib/malloc.c lib/malloca.c lib/malloca.h - lib/malloca.valgrind lib/mbchar.c lib/mbchar.h lib/mbrtowc.c @@ -1499,14 +1512,18 @@ AC_DEFUN([gl_FILE_LIST], [ lib/obstack.c lib/obstack.h lib/offtostr.c + lib/open-safer.c lib/open.c lib/openat-die.c lib/openat-priv.h lib/openat-proc.c + lib/openat-safer.c lib/openat.c lib/openat.h lib/opendir-safer.c lib/opendir.c + lib/opendirat.c + lib/opendirat.h lib/parse-datetime.h lib/parse-datetime.y lib/pathmax.h @@ -1530,8 +1547,6 @@ AC_DEFUN([gl_FILE_LIST], [ lib/readlink.c lib/readlinkat.c lib/realloc.c - lib/ref-add.sin - lib/ref-del.sin lib/regcomp.c lib/regex.c lib/regex.h @@ -1540,8 +1555,8 @@ AC_DEFUN([gl_FILE_LIST], [ lib/regexec.c lib/rename.c lib/renameat.c - lib/renameat2.c - lib/renameat2.h + lib/renameatu.c + lib/renameatu.h lib/rewinddir.c lib/rmdir.c lib/root-uid.h @@ -1608,6 +1623,7 @@ AC_DEFUN([gl_FILE_LIST], [ lib/strtoumax.c lib/symlink.c lib/symlinkat.c + lib/sys-limits.h lib/sys_stat.in.h lib/sys_time.in.h lib/sys_types.in.h @@ -1679,11 +1695,11 @@ AC_DEFUN([gl_FILE_LIST], [ lib/xvasprintf.c lib/xvasprintf.h m4/00gnulib.m4 + m4/__inline.m4 m4/absolute-header.m4 m4/acl.m4 m4/alloca.m4 m4/argp.m4 - m4/asm-underscore.m4 m4/backupfile.m4 m4/bison.m4 m4/btowc.m4 @@ -1719,6 +1735,7 @@ AC_DEFUN([gl_FILE_LIST], [ m4/fchmodat.m4 m4/fchownat.m4 m4/fcntl-o.m4 + m4/fcntl-safer.m4 m4/fcntl.m4 m4/fcntl_h.m4 m4/fdopendir.m4 @@ -1727,6 +1744,7 @@ AC_DEFUN([gl_FILE_LIST], [ m4/flexmember.m4 m4/float_h.m4 m4/fnmatch.m4 + m4/fnmatch_h.m4 m4/fpending.m4 m4/fseek.m4 m4/fseeko.m4 @@ -1750,12 +1768,12 @@ AC_DEFUN([gl_FILE_LIST], [ m4/glibc21.m4 m4/gnulib-common.m4 m4/group-member.m4 - m4/hard-locale.m4 m4/host-cpu-c-abi.m4 m4/human.m4 m4/iconv.m4 m4/include_next.m4 m4/intdiv0.m4 + m4/intl-thread-locale.m4 m4/intl.m4 m4/intldir.m4 m4/intlmacosx.m4 diff --git a/m4/group-member.m4 b/m4/group-member.m4 index a68538d2..77d389de 100644 --- a/m4/group-member.m4 +++ b/m4/group-member.m4 @@ -1,6 +1,6 @@ # serial 14 -# Copyright (C) 1999-2001, 2003-2007, 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 1999-2001, 2003-2007, 2009-2019 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff --git a/m4/hard-locale.m4 b/m4/hard-locale.m4 deleted file mode 100644 index d79acd65..00000000 --- a/m4/hard-locale.m4 +++ /dev/null @@ -1,11 +0,0 @@ -# hard-locale.m4 serial 8 -dnl Copyright (C) 2002-2006, 2009-2017 Free Software Foundation, Inc. -dnl This file is free software; the Free 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 No prerequisites of lib/hard-locale.c. -AC_DEFUN([gl_HARD_LOCALE], -[ - : -]) diff --git a/m4/host-cpu-c-abi.m4 b/m4/host-cpu-c-abi.m4 index 9370c318..4407296d 100644 --- a/m4/host-cpu-c-abi.m4 +++ b/m4/host-cpu-c-abi.m4 @@ -1,5 +1,5 @@ -# host-cpu-c-abi.m4 serial 8 -dnl Copyright (C) 2002-2017 Free Software Foundation, Inc. +# host-cpu-c-abi.m4 serial 11 +dnl Copyright (C) 2002-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -135,7 +135,7 @@ changequote([,])dnl echo 'double ddd; void func (double dd) { ddd = dd; }' > conftest.c # Look for a reference to the register d0 in the .s file. AC_TRY_COMMAND(${CC-cc} $CFLAGS $CPPFLAGS $gl_c_asm_opt conftest.c) >/dev/null 2>&1 - if LC_ALL=C grep -E 'd0,' conftest.$gl_asmext >/dev/null; then + if LC_ALL=C grep 'd0,' conftest.$gl_asmext >/dev/null; then gl_cv_host_cpu_c_abi=armhf else gl_cv_host_cpu_c_abi=arm @@ -237,6 +237,60 @@ changequote([,])dnl gl_cv_host_cpu_c_abi=powerpc ;; + riscv32 | riscv64 ) + # There are 2 architectures (with variants): rv32* and rv64*. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if __riscv_xlen == 64 + int ok; + #else + error fail + #endif + ]])], + [cpu=riscv64], + [cpu=riscv32]) + # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. + # Size of 'long' and 'void *': + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __LP64__ + int ok; + #else + error fail + #endif + ]])], + [main_abi=lp64], + [main_abi=ilp32]) + # Float ABIs: + # __riscv_float_abi_double: + # 'float' and 'double' are passed in floating-point registers. + # __riscv_float_abi_single: + # 'float' are passed in floating-point registers. + # __riscv_float_abi_soft: + # No values are passed in floating-point registers. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __riscv_float_abi_double + int ok; + #else + error fail + #endif + ]])], + [float_abi=d], + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __riscv_float_abi_single + int ok; + #else + error fail + #endif + ]])], + [float_abi=f], + [float_abi='']) + ]) + gl_cv_host_cpu_c_abi="${cpu}-${main_abi}${float_abi}" + ;; + s390* ) # On s390x, the C compiler may be generating 64-bit (= s390x) code # or 31-bit (= s390) code. @@ -349,6 +403,39 @@ EOF #ifndef __powerpc64_elfv2__ #undef __powerpc64_elfv2__ #endif +#ifndef __riscv32__ +#undef __riscv32__ +#endif +#ifndef __riscv64__ +#undef __riscv64__ +#endif +#ifndef __riscv32_ilp32__ +#undef __riscv32_ilp32__ +#endif +#ifndef __riscv32_ilp32f__ +#undef __riscv32_ilp32f__ +#endif +#ifndef __riscv32_ilp32d__ +#undef __riscv32_ilp32d__ +#endif +#ifndef __riscv64_ilp32__ +#undef __riscv64_ilp32__ +#endif +#ifndef __riscv64_ilp32f__ +#undef __riscv64_ilp32f__ +#endif +#ifndef __riscv64_ilp32d__ +#undef __riscv64_ilp32d__ +#endif +#ifndef __riscv64_lp64__ +#undef __riscv64_lp64__ +#endif +#ifndef __riscv64_lp64f__ +#undef __riscv64_lp64f__ +#endif +#ifndef __riscv64_lp64d__ +#undef __riscv64_lp64d__ +#endif #ifndef __s390__ #undef __s390__ #endif @@ -367,3 +454,191 @@ EOF ]) ]) + + +dnl Sets the HOST_CPU_C_ABI_32BIT variable to 'yes' if the C language ABI +dnl (application binary interface) is a 32-bit one, or to 'no' otherwise. +dnl This is a simplified variant of gl_HOST_CPU_C_ABI. +AC_DEFUN([gl_HOST_CPU_C_ABI_32BIT], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + AC_CACHE_CHECK([32-bit host C ABI], [gl_cv_host_cpu_c_abi_32bit], + [if test -n "$gl_cv_host_cpu_c_abi"; then + case "$gl_cv_host_cpu_c_abi" in + i386 | x86_64-x32 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | riscv*-ilp32* | s390 | sparc) + gl_cv_host_cpu_c_abi_32bit=yes ;; + *) + gl_cv_host_cpu_c_abi_32bit=no ;; + esac + else + case "$host_cpu" in + +changequote(,)dnl + i[4567]86 ) +changequote([,])dnl + gl_cv_host_cpu_c_abi_32bit=yes + ;; + + x86_64 ) + # On x86_64 systems, the C compiler may be generating code in one of + # these ABIs: + # - 64-bit instruction set, 64-bit pointers, 64-bit 'long': x86_64. + # - 64-bit instruction set, 64-bit pointers, 32-bit 'long': x86_64 + # with native Windows (mingw, MSVC). + # - 64-bit instruction set, 32-bit pointers, 32-bit 'long': x86_64-x32. + # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': i386. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if (defined __x86_64__ || defined __amd64__ \ + || defined _M_X64 || defined _M_AMD64) \ + && !(defined __ILP32__ || defined _ILP32) + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi_32bit=no], + [gl_cv_host_cpu_c_abi_32bit=yes]) + ;; + + arm* | aarch64 ) + # Assume arm with EABI. + # On arm64 systems, the C compiler may be generating code in one of + # these ABIs: + # - aarch64 instruction set, 64-bit pointers, 64-bit 'long': arm64. + # - aarch64 instruction set, 32-bit pointers, 32-bit 'long': arm64-ilp32. + # - 32-bit instruction set, 32-bit pointers, 32-bit 'long': arm or armhf. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __aarch64__ && !(defined __ILP32__ || defined _ILP32) + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi_32bit=no], + [gl_cv_host_cpu_c_abi_32bit=yes]) + ;; + + hppa1.0 | hppa1.1 | hppa2.0* | hppa64 ) + # On hppa, the C compiler may be generating 32-bit code or 64-bit + # code. In the latter case, it defines _LP64 and __LP64__. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#ifdef __LP64__ + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi_32bit=no], + [gl_cv_host_cpu_c_abi_32bit=yes]) + ;; + + ia64* ) + # On ia64 on HP-UX, the C compiler may be generating 64-bit code or + # 32-bit code. In the latter case, it defines _ILP32. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#ifdef _ILP32 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi_32bit=yes], + [gl_cv_host_cpu_c_abi_32bit=no]) + ;; + + mips* ) + # We should also check for (_MIPS_SZPTR == 64), but gcc keeps this + # at 32. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined _MIPS_SZLONG && (_MIPS_SZLONG == 64) + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi_32bit=no], + [gl_cv_host_cpu_c_abi_32bit=yes]) + ;; + + powerpc* ) + # Different ABIs are in use on AIX vs. Mac OS X vs. Linux,*BSD. + # No need to distinguish them here; the caller may distinguish + # them based on the OS. + # On powerpc64 systems, the C compiler may still be generating + # 32-bit code. And on powerpc-ibm-aix systems, the C compiler may + # be generating 64-bit code. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __powerpc64__ || defined _ARCH_PPC64 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi_32bit=no], + [gl_cv_host_cpu_c_abi_32bit=yes]) + ;; + + rs6000 ) + gl_cv_host_cpu_c_abi_32bit=yes + ;; + + riscv32 | riscv64 ) + # There are 6 ABIs: ilp32, ilp32f, ilp32d, lp64, lp64f, lp64d. + # Size of 'long' and 'void *': + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __LP64__ + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi_32bit=no], + [gl_cv_host_cpu_c_abi_32bit=yes]) + ;; + + s390* ) + # On s390x, the C compiler may be generating 64-bit (= s390x) code + # or 31-bit (= s390) code. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __LP64__ || defined __s390x__ + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi_32bit=no], + [gl_cv_host_cpu_c_abi_32bit=yes]) + ;; + + sparc | sparc64 ) + # UltraSPARCs running Linux have `uname -m` = "sparc64", but the + # C compiler still generates 32-bit code. + AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#if defined __sparcv9 || defined __arch64__ + int ok; + #else + error fail + #endif + ]])], + [gl_cv_host_cpu_c_abi_32bit=no], + [gl_cv_host_cpu_c_abi_32bit=yes]) + ;; + + *) + gl_cv_host_cpu_c_abi_32bit=no + ;; + esac + fi + ]) + + HOST_CPU_C_ABI_32BIT="$gl_cv_host_cpu_c_abi_32bit" +]) diff --git a/m4/human.m4 b/m4/human.m4 index 550c9bfd..6f02956a 100644 --- a/m4/human.m4 +++ b/m4/human.m4 @@ -1,5 +1,5 @@ #serial 11 -dnl Copyright (C) 2002-2006, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/iconv.m4 b/m4/iconv.m4 index b33ecd04..a285e9da 100644 --- a/m4/iconv.m4 +++ b/m4/iconv.m4 @@ -1,5 +1,6 @@ # iconv.m4 serial 21 -dnl Copyright (C) 2000-2002, 2007-2014, 2016-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2000-2002, 2007-2014, 2016-2019 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. diff --git a/m4/include_next.m4 b/m4/include_next.m4 index 068f6f60..86eb2c97 100644 --- a/m4/include_next.m4 +++ b/m4/include_next.m4 @@ -1,5 +1,5 @@ # include_next.m4 serial 24 -dnl Copyright (C) 2006-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2006-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/intlmacosx.m4 b/m4/intlmacosx.m4 index aca924c6..7a474270 100644 --- a/m4/intlmacosx.m4 +++ b/m4/intlmacosx.m4 @@ -1,5 +1,5 @@ -# intlmacosx.m4 serial 5 (gettext-0.18.2) -dnl Copyright (C) 2004-2014, 2016 Free Software Foundation, Inc. +# intlmacosx.m4 serial 6 (gettext-0.19.9) +dnl Copyright (C) 2004-2014, 2016, 2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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 @@ 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 Mac OS X 10.2. + dnl Check for API introduced in Mac OS X 10.4. AC_CACHE_CHECK([for CFPreferencesCopyAppValue], [gt_cv_func_CFPreferencesCopyAppValue], [gt_save_LIBS="$LIBS" @@ -33,7 +33,7 @@ AC_DEFUN([gt_INTL_MACOSX], AC_DEFINE([HAVE_CFPREFERENCESCOPYAPPVALUE], [1], [Define to 1 if you have the Mac OS X function CFPreferencesCopyAppValue in the CoreFoundation framework.]) fi - dnl Check for API introduced in Mac OS X 10.3. + dnl Check for API introduced in Mac OS X 10.5. AC_CACHE_CHECK([for CFLocaleCopyCurrent], [gt_cv_func_CFLocaleCopyCurrent], [gt_save_LIBS="$LIBS" LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" @@ -48,8 +48,24 @@ AC_DEFUN([gt_INTL_MACOSX], AC_DEFINE([HAVE_CFLOCALECOPYCURRENT], [1], [Define to 1 if you have the Mac OS X function CFLocaleCopyCurrent in the CoreFoundation framework.]) fi + AC_CACHE_CHECK([for CFLocaleCopyPreferredLanguages], [gt_cv_func_CFLocaleCopyPreferredLanguages], + [gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include <CoreFoundation/CFLocale.h>]], + [[CFLocaleCopyPreferredLanguages();]])], + [gt_cv_func_CFLocaleCopyPreferredLanguages=yes], + [gt_cv_func_CFLocaleCopyPreferredLanguages=no]) + LIBS="$gt_save_LIBS"]) + if test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then + AC_DEFINE([HAVE_CFLOCALECOPYPREFERREDLANGUAGES], [1], + [Define to 1 if you have the Mac OS X function CFLocaleCopyPreferredLanguages in the CoreFoundation framework.]) + fi INTL_MACOSX_LIBS= - if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + if test $gt_cv_func_CFPreferencesCopyAppValue = yes \ + || test $gt_cv_func_CFLocaleCopyCurrent = yes \ + || test $gt_cv_func_CFLocaleCopyPreferredLanguages = yes; then INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" fi AC_SUBST([INTL_MACOSX_LIBS]) diff --git a/m4/intmax_t.m4 b/m4/intmax_t.m4 index ff143e9d..5ded16e3 100644 --- a/m4/intmax_t.m4 +++ b/m4/intmax_t.m4 @@ -1,5 +1,5 @@ # intmax_t.m4 serial 8 -dnl Copyright (C) 1997-2004, 2006-2007, 2009-2017 Free Software Foundation, +dnl Copyright (C) 1997-2004, 2006-2007, 2009-2019 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/inttostr.m4 b/m4/inttostr.m4 index 3120f959..e0ea533e 100644 --- a/m4/inttostr.m4 +++ b/m4/inttostr.m4 @@ -1,5 +1,5 @@ #serial 8 -dnl Copyright (C) 2004-2006, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2004-2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/inttypes-pri.m4 b/m4/inttypes-pri.m4 index 20557878..38fe118a 100644 --- a/m4/inttypes-pri.m4 +++ b/m4/inttypes-pri.m4 @@ -1,5 +1,5 @@ # inttypes-pri.m4 serial 7 (gettext-0.18.2) -dnl Copyright (C) 1997-2002, 2006, 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 1997-2002, 2006, 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/inttypes.m4 b/m4/inttypes.m4 index 434a7ee2..c58a1bec 100644 --- a/m4/inttypes.m4 +++ b/m4/inttypes.m4 @@ -1,5 +1,5 @@ -# inttypes.m4 serial 26 -dnl Copyright (C) 2006-2017 Free Software Foundation, Inc. +# inttypes.m4 serial 27 +dnl Copyright (C) 2006-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -147,6 +147,7 @@ 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]) + HAVE_IMAXDIV_T=1; AC_SUBST([HAVE_IMAXDIV_T]) REPLACE_STRTOIMAX=0; AC_SUBST([REPLACE_STRTOIMAX]) REPLACE_STRTOUMAX=0; AC_SUBST([REPLACE_STRTOUMAX]) INT32_MAX_LT_INTMAX_MAX=1; AC_SUBST([INT32_MAX_LT_INTMAX_MAX]) diff --git a/m4/inttypes_h.m4 b/m4/inttypes_h.m4 index 92403050..d20422a4 100644 --- a/m4/inttypes_h.m4 +++ b/m4/inttypes_h.m4 @@ -1,5 +1,5 @@ # inttypes_h.m4 serial 10 -dnl Copyright (C) 1997-2004, 2006, 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 1997-2004, 2006, 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/iswblank.m4 b/m4/iswblank.m4 index e9d6975e..ad216cc9 100644 --- a/m4/iswblank.m4 +++ b/m4/iswblank.m4 @@ -1,5 +1,5 @@ # iswblank.m4 serial 4 -dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2011-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/langinfo_h.m4 b/m4/langinfo_h.m4 index ea94b4ed..76385d81 100644 --- a/m4/langinfo_h.m4 +++ b/m4/langinfo_h.m4 @@ -1,5 +1,5 @@ -# langinfo_h.m4 serial 7 -dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. +# langinfo_h.m4 serial 8 +dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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,6 +17,7 @@ AC_DEFUN([gl_LANGINFO_H], dnl Determine whether <langinfo.h> exists. It is missing on mingw and BeOS. HAVE_LANGINFO_CODESET=0 HAVE_LANGINFO_T_FMT_AMPM=0 + HAVE_LANGINFO_ALTMON=0 HAVE_LANGINFO_ERA=0 HAVE_LANGINFO_YESEXPR=0 AC_CHECK_HEADERS_ONCE([langinfo.h]) @@ -24,6 +25,7 @@ AC_DEFUN([gl_LANGINFO_H], HAVE_LANGINFO_H=1 dnl Determine what <langinfo.h> defines. CODESET and ERA etc. are missing dnl on OpenBSD 3.8. T_FMT_AMPM and YESEXPR, NOEXPR are missing on IRIX 5.3. + dnl ALTMON_* are missing on glibc 2.26 and many other systems. AC_CACHE_CHECK([whether langinfo.h defines CODESET], [gl_cv_header_langinfo_codeset], [AC_COMPILE_IFELSE( @@ -48,6 +50,18 @@ int a = T_FMT_AMPM; if test $gl_cv_header_langinfo_t_fmt_ampm = yes; then HAVE_LANGINFO_T_FMT_AMPM=1 fi + AC_CACHE_CHECK([whether langinfo.h defines ALTMON_1], + [gl_cv_header_langinfo_altmon], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM([[#include <langinfo.h> +int a = ALTMON_1; +]])], + [gl_cv_header_langinfo_altmon=yes], + [gl_cv_header_langinfo_altmon=no]) + ]) + if test $gl_cv_header_langinfo_altmon = yes; then + HAVE_LANGINFO_ALTMON=1 + fi AC_CACHE_CHECK([whether langinfo.h defines ERA], [gl_cv_header_langinfo_era], [AC_COMPILE_IFELSE( @@ -78,6 +92,7 @@ int a = YESEXPR; AC_SUBST([HAVE_LANGINFO_H]) AC_SUBST([HAVE_LANGINFO_CODESET]) AC_SUBST([HAVE_LANGINFO_T_FMT_AMPM]) + AC_SUBST([HAVE_LANGINFO_ALTMON]) AC_SUBST([HAVE_LANGINFO_ERA]) AC_SUBST([HAVE_LANGINFO_YESEXPR]) diff --git a/m4/largefile.m4 b/m4/largefile.m4 index edc1a9b4..1938188c 100644 --- a/m4/largefile.m4 +++ b/m4/largefile.m4 @@ -1,6 +1,6 @@ # Enable large files on systems where this is not the default. -# Copyright 1992-1996, 1998-2017 Free Software Foundation, Inc. +# Copyright 1992-1996, 1998-2019 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. diff --git a/m4/lchown.m4 b/m4/lchown.m4 index 0a5d871f..3d524199 100644 --- a/m4/lchown.m4 +++ b/m4/lchown.m4 @@ -1,7 +1,7 @@ # serial 17 # Determine whether we need the lchown wrapper. -dnl Copyright (C) 1998, 2001, 2003-2007, 2009-2017 Free Software Foundation, +dnl Copyright (C) 1998, 2001, 2003-2007, 2009-2019 Free Software Foundation, dnl Inc. dnl This file is free software; the Free Software Foundation diff --git a/m4/lib-ld.m4 b/m4/lib-ld.m4 index 0f0c599f..a1871963 100644 --- a/m4/lib-ld.m4 +++ b/m4/lib-ld.m4 @@ -1,5 +1,5 @@ # lib-ld.m4 serial 9 -dnl Copyright (C) 1996-2003, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 1996-2003, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/lib-link.m4 b/m4/lib-link.m4 index 1ce9a5ab..0ff10731 100644 --- a/m4/lib-link.m4 +++ b/m4/lib-link.m4 @@ -1,12 +1,12 @@ -# lib-link.m4 serial 26 (gettext-0.18.2) -dnl Copyright (C) 2001-2017 Free Software Foundation, Inc. +# lib-link.m4 serial 28 +dnl Copyright (C) 2001-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. -AC_PREREQ([2.54]) +AC_PREREQ([2.61]) dnl AC_LIB_LINKFLAGS(name [, dependencies]) searches for libname and dnl the libraries corresponding to explicit and implicit dependencies. @@ -124,8 +124,8 @@ dnl acl_hardcode_direct, dnl acl_hardcode_minus_L. AC_DEFUN([AC_LIB_RPATH], [ - dnl Tell automake >= 1.10 to complain if config.rpath is missing. - m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([config.rpath])]) + dnl Complain if config.rpath is missing. + AC_REQUIRE_AUX_FILE([config.rpath]) AC_REQUIRE([AC_PROG_CC]) dnl we use $CC, $GCC, $LDFLAGS AC_REQUIRE([AC_LIB_PROG_LD]) dnl we use $LD, $with_gnu_ld AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use $host @@ -187,17 +187,15 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], pushdef([PACKUP],[m4_translit(PACK,[abcdefghijklmnopqrstuvwxyz./+-], [ABCDEFGHIJKLMNOPQRSTUVWXYZ____])]) pushdef([PACKLIBS],[m4_ifdef([acl_frompackage_]NAME, [acl_libsinpackage_]PACKUP, lib[$1])]) - dnl Autoconf >= 2.61 supports dots in --with options. - pushdef([P_A_C_K],[m4_if(m4_version_compare(m4_defn([m4_PACKAGE_VERSION]),[2.61]),[-1],[m4_translit(PACK,[.],[_])],PACK)]) dnl By default, look in $includedir and $libdir. use_additional=yes AC_LIB_WITH_FINAL_PREFIX([ eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) - AC_ARG_WITH(P_A_C_K[-prefix], -[[ --with-]]P_A_C_K[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib - --without-]]P_A_C_K[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], + AC_ARG_WITH(PACK[-prefix], +[[ --with-]]PACK[[-prefix[=DIR] search for ]PACKLIBS[ in DIR/include and DIR/lib + --without-]]PACK[[-prefix don't search for ]PACKLIBS[ in includedir and libdir]], [ if test "X$withval" = "Xno"; then use_additional=no @@ -211,7 +209,7 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], additional_includedir="$withval/include" additional_libdir="$withval/$acl_libdirstem" if test "$acl_libdirstem2" != "$acl_libdirstem" \ - && ! test -d "$withval/$acl_libdirstem"; then + && test ! -d "$withval/$acl_libdirstem"; then additional_libdir="$withval/$acl_libdirstem2" fi fi @@ -670,7 +668,6 @@ AC_DEFUN([AC_LIB_LINKFLAGS_BODY], LTLIB[]NAME="${LTLIB[]NAME}${LTLIB[]NAME:+ }-R$found_dir" done fi - popdef([P_A_C_K]) popdef([PACKLIBS]) popdef([PACKUP]) popdef([PACK]) diff --git a/m4/lib-prefix.m4 b/m4/lib-prefix.m4 index 9fc47a16..8adb17bb 100644 --- a/m4/lib-prefix.m4 +++ b/m4/lib-prefix.m4 @@ -1,18 +1,11 @@ -# lib-prefix.m4 serial 11 -dnl Copyright (C) 2001-2005, 2008-2017 Free Software Foundation, Inc. +# lib-prefix.m4 serial 14 +dnl Copyright (C) 2001-2005, 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. -dnl AC_LIB_ARG_WITH is synonymous to AC_ARG_WITH in autoconf-2.13, and -dnl similar to AC_ARG_WITH in autoconf 2.52...2.57 except that is doesn't -dnl require excessive bracketing. -ifdef([AC_HELP_STRING], -[AC_DEFUN([AC_LIB_ARG_WITH], [AC_ARG_WITH([$1],[[$2]],[$3],[$4])])], -[AC_DEFUN([AC_][LIB_ARG_WITH], [AC_ARG_WITH([$1],[$2],[$3],[$4])])]) - dnl AC_LIB_PREFIX adds to the CPPFLAGS and LDFLAGS the flags that are needed dnl to access previously installed libraries. The basic assumption is that dnl a user will want packages to use other packages he previously installed @@ -32,9 +25,9 @@ AC_DEFUN([AC_LIB_PREFIX], eval additional_includedir=\"$includedir\" eval additional_libdir=\"$libdir\" ]) - AC_LIB_ARG_WITH([lib-prefix], -[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib - --without-lib-prefix don't search for libraries in includedir and libdir], + AC_ARG_WITH([lib-prefix], +[[ --with-lib-prefix[=DIR] search for libraries in DIR/include and DIR/lib + --without-lib-prefix don't search for libraries in includedir and libdir]], [ if test "X$withval" = "Xno"; then use_additional=no @@ -174,7 +167,24 @@ AC_DEFUN([AC_LIB_PREPARE_MULTILIB], dnl $prefix/lib/64 (which is a symlink to either $prefix/lib/sparcv9 or dnl $prefix/lib/amd64) and 32-bit libraries go under $prefix/lib. AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([gl_HOST_CPU_C_ABI]) + AC_REQUIRE([gl_HOST_CPU_C_ABI_32BIT]) + + case "$host_os" in + solaris*) + AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], + [AC_COMPILE_IFELSE( + [AC_LANG_SOURCE( + [[#ifdef _LP64 + int ok; + #else + error fail + #endif + ]])], + [gl_cv_solaris_64bit=yes], + [gl_cv_solaris_64bit=no]) + ]);; + esac + dnl Allow the user to override the result by setting acl_cv_libdirstems. AC_CACHE_CHECK([for the common suffixes of directories in the library search path], [acl_cv_libdirstems], @@ -187,18 +197,6 @@ AC_DEFUN([AC_LIB_PREPARE_MULTILIB], dnl "Portable Makefiles should refer to any library directories using the 64 symbolic link." dnl But we want to recognize the sparcv9 or amd64 subdirectory also if the dnl symlink is missing, so we set acl_libdirstem2 too. - AC_CACHE_CHECK([for 64-bit host], [gl_cv_solaris_64bit], - [AC_COMPILE_IFELSE( - [AC_LANG_SOURCE( - [[#ifdef _LP64 - int ok; - #else - error fail - #endif - ]])], - [gl_cv_solaris_64bit=yes], - [gl_cv_solaris_64bit=no]) - ]) if test $gl_cv_solaris_64bit = yes; then acl_libdirstem=lib/64 case "$host_cpu" in @@ -210,40 +208,36 @@ AC_DEFUN([AC_LIB_PREPARE_MULTILIB], *) dnl If $CC generates code for a 32-bit ABI, the libraries are dnl surely under $prefix/lib, not $prefix/lib64. - case "$gl_cv_host_cpu_c_abi" in - i386 | arm | armhf | arm64-ilp32 | hppa | ia64-ilp32 | mips | mipsn32 | powerpc | s390 | sparc) - ;; - *) # x86_64 | arm64 | hppa64 | ia64 | mips64 | powerpc64* | s390x | sparc64 | ... - dnl The result is a property of the system. However, non-system - dnl compilers sometimes have odd library search paths. Therefore - dnl prefer asking /usr/bin/gcc, if available, rather than $CC. - searchpath=`(if test -f /usr/bin/gcc \ - && LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \ - LC_ALL=C /usr/bin/gcc -print-search-dirs; \ - else \ - LC_ALL=C $CC -print-search-dirs; \ - fi) 2>/dev/null \ - | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` - if test -n "$searchpath"; then - acl_save_IFS="${IFS= }"; IFS=":" - for searchdir in $searchpath; do - if test -d "$searchdir"; then - case "$searchdir" in - */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; - */../ | */.. ) - # Better ignore directories of this form. They are misleading. - ;; - *) searchdir=`cd "$searchdir" && pwd` - case "$searchdir" in - */lib64 ) acl_libdirstem=lib64 ;; - esac ;; - esac - fi - done - IFS="$acl_save_IFS" - fi - ;; - esac + if test "$HOST_CPU_C_ABI_32BIT" != yes; then + dnl The result is a property of the system. However, non-system + dnl compilers sometimes have odd library search paths. Therefore + dnl prefer asking /usr/bin/gcc, if available, rather than $CC. + searchpath=`(if test -f /usr/bin/gcc \ + && LC_ALL=C /usr/bin/gcc -print-search-dirs >/dev/null 2>/dev/null; then \ + LC_ALL=C /usr/bin/gcc -print-search-dirs; \ + else \ + LC_ALL=C $CC -print-search-dirs; \ + fi) 2>/dev/null \ + | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + */../ | */.. ) + # Better ignore directories of this form. They are misleading. + ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi + fi ;; esac test -n "$acl_libdirstem2" || acl_libdirstem2="$acl_libdirstem" diff --git a/m4/libunistring-base.m4 b/m4/libunistring-base.m4 index ee648f27..829e71cf 100644 --- a/m4/libunistring-base.m4 +++ b/m4/libunistring-base.m4 @@ -1,5 +1,5 @@ # libunistring-base.m4 serial 5 -dnl Copyright (C) 2010-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2010-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/limits-h.m4 b/m4/limits-h.m4 index 443f91b4..68f724c7 100644 --- a/m4/limits-h.m4 +++ b/m4/limits-h.m4 @@ -1,6 +1,6 @@ dnl Check whether limits.h has needed features. -dnl Copyright 2016-2017 Free Software Foundation, Inc. +dnl Copyright 2016-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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,18 @@ AC_DEFUN_ONCE([gl_LIMITS_H], [ gl_CHECK_NEXT_HEADERS([limits.h]) - AC_CACHE_CHECK([whether limits.h has ULLONG_WIDTH etc.], + AC_CACHE_CHECK([whether limits.h has LLONG_MAX, WORD_BIT, ULLONG_WIDTH etc.], [gl_cv_header_limits_width], [AC_COMPILE_IFELSE( - [AC_LANG_PROGRAM([[#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ - #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 - #endif - #include <limits.h> - int ullw = ULLONG_WIDTH;]])], + [AC_LANG_PROGRAM( + [[#ifndef __STDC_WANT_IEC_60559_BFP_EXT__ + #define __STDC_WANT_IEC_60559_BFP_EXT__ 1 + #endif + #include <limits.h> + long long llm = LLONG_MAX; + int wb = WORD_BIT; + int ullw = ULLONG_WIDTH; + ]])], [gl_cv_header_limits_width=yes], [gl_cv_header_limits_width=no])]) if test "$gl_cv_header_limits_width" = yes; then @@ -29,3 +33,11 @@ AC_DEFUN_ONCE([gl_LIMITS_H], AC_SUBST([LIMITS_H]) AM_CONDITIONAL([GL_GENERATE_LIMITS_H], [test -n "$LIMITS_H"]) ]) + +dnl Unconditionally enables the replacement of <limits.h>. +AC_DEFUN([gl_REPLACE_LIMITS_H], +[ + AC_REQUIRE([gl_LIMITS_H]) + LIMITS_H='limits.h' + AM_CONDITIONAL([GL_GENERATE_LIMITS_H], [test -n "$LIMITS_H"]) +]) diff --git a/m4/link-follow.m4 b/m4/link-follow.m4 index 587b03ff..cbd2dcad 100644 --- a/m4/link-follow.m4 +++ b/m4/link-follow.m4 @@ -1,8 +1,8 @@ -# serial 19 +# serial 20 dnl Run a program to determine whether link(2) follows symlinks. dnl Set LINK_FOLLOWS_SYMLINKS accordingly. -# Copyright (C) 1999-2001, 2004-2006, 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 1999-2001, 2004-2006, 2009-2019 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. @@ -86,10 +86,10 @@ AC_DEFUN([gl_FUNC_LINK_FOLLOWS_SYMLINK], 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 ;; + # On glibc/Linux we know the result. + linux*-gnu* | 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 diff --git a/m4/link.m4 b/m4/link.m4 index 021c3014..a6d77b8a 100644 --- a/m4/link.m4 +++ b/m4/link.m4 @@ -1,5 +1,5 @@ -# link.m4 serial 8 -dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. +# link.m4 serial 10 +dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -39,10 +39,12 @@ AC_DEFUN([gl_FUNC_LINK], ]])], [gl_cv_func_link_works=yes], [gl_cv_func_link_works=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" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_link_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | 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]) diff --git a/m4/linkat.m4 b/m4/linkat.m4 index 31d87289..860abf36 100644 --- a/m4/linkat.m4 +++ b/m4/linkat.m4 @@ -1,7 +1,7 @@ -# serial 7 +# serial 9 # See if we need to provide linkat replacement. -dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -96,10 +96,14 @@ AC_DEFUN([gl_FUNC_LINKAT], ]])], [gl_cv_func_linkat_slash=yes], [gl_cv_func_linkat_slash=no], - [# 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";; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_linkat_slash="guessing yes";; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_linkat_slash="guessing yes";; + # If we don't know, assume the worst. + *) gl_cv_func_linkat_slash="guessing no";; esac ]) rm -rf conftest.a conftest.b conftest.c conftest.d conftest.e conftest.s]) diff --git a/m4/localcharset.m4 b/m4/localcharset.m4 index 0c1ff386..2a7f82d0 100644 --- a/m4/localcharset.m4 +++ b/m4/localcharset.m4 @@ -1,5 +1,5 @@ -# localcharset.m4 serial 7 -dnl Copyright (C) 2002, 2004, 2006, 2009-2017 Free Software Foundation, Inc. +# localcharset.m4 serial 8 +dnl Copyright (C) 2002, 2004, 2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -8,10 +8,4 @@ AC_DEFUN([gl_LOCALCHARSET], [ dnl Prerequisites of lib/localcharset.c. AC_REQUIRE([AM_LANGINFO_CODESET]) - AC_REQUIRE([gl_FCNTL_O_FLAGS]) - AC_CHECK_DECLS_ONCE([getc_unlocked]) - - dnl Prerequisites of the lib/Makefile.am snippet. - AC_REQUIRE([AC_CANONICAL_HOST]) - AC_REQUIRE([gl_GLIBC21]) ]) diff --git a/m4/locale-fr.m4 b/m4/locale-fr.m4 index d974b035..cfa068d5 100644 --- a/m4/locale-fr.m4 +++ b/m4/locale-fr.m4 @@ -1,5 +1,5 @@ -# locale-fr.m4 serial 18 -dnl Copyright (C) 2003, 2005-2017 Free Software Foundation, Inc. +# locale-fr.m4 serial 19 +dnl Copyright (C) 2003, 2005-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -31,7 +31,7 @@ int main () { return 1; #else /* Check whether the given locale name is recognized by the system. */ -# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ +# if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE @@ -160,7 +160,7 @@ int main () { 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__ +# if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE diff --git a/m4/locale-ja.m4 b/m4/locale-ja.m4 index 48d18d61..487f68bd 100644 --- a/m4/locale-ja.m4 +++ b/m4/locale-ja.m4 @@ -1,5 +1,5 @@ -# locale-ja.m4 serial 13 -dnl Copyright (C) 2003, 2005-2017 Free Software Foundation, Inc. +# locale-ja.m4 serial 14 +dnl Copyright (C) 2003, 2005-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -32,7 +32,7 @@ int main () return 1; #else /* Check whether the given locale name is recognized by the system. */ -# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ +# if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE diff --git a/m4/locale-zh.m4 b/m4/locale-zh.m4 index 5fb7f538..8b813263 100644 --- a/m4/locale-zh.m4 +++ b/m4/locale-zh.m4 @@ -1,5 +1,5 @@ -# locale-zh.m4 serial 13 -dnl Copyright (C) 2003, 2005-2017 Free Software Foundation, Inc. +# locale-zh.m4 serial 14 +dnl Copyright (C) 2003, 2005-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -33,7 +33,7 @@ int main () return 1; #else /* Check whether the given locale name is recognized by the system. */ -# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__ +# if defined _WIN32 && !defined __CYGWIN__ /* On native Windows, setlocale(category, "") looks at the system settings, not at the environment variables. Also, when an encoding suffix such as ".65001" or ".54936" is specified, it succeeds but sets the LC_CTYPE diff --git a/m4/locale_h.m4 b/m4/locale_h.m4 index db005a5b..d28ba0c2 100644 --- a/m4/locale_h.m4 +++ b/m4/locale_h.m4 @@ -1,5 +1,5 @@ -# locale_h.m4 serial 20 -dnl Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. +# locale_h.m4 serial 21 +dnl Copyright (C) 2007, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -96,7 +96,7 @@ AC_DEFUN([gl_LOCALE_H], # include <xlocale.h> #endif ]], - [setlocale duplocale]) + [setlocale newlocale duplocale freelocale]) ]) AC_DEFUN([gl_LOCALE_MODULE_INDICATOR], @@ -113,10 +113,15 @@ 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]) + GNULIB_LOCALENAME=0; AC_SUBST([GNULIB_LOCALENAME]) dnl Assume proper GNU behavior unless another module says otherwise. + HAVE_NEWLOCALE=1; AC_SUBST([HAVE_NEWLOCALE]) HAVE_DUPLOCALE=1; AC_SUBST([HAVE_DUPLOCALE]) + HAVE_FREELOCALE=1; AC_SUBST([HAVE_FREELOCALE]) REPLACE_LOCALECONV=0; AC_SUBST([REPLACE_LOCALECONV]) REPLACE_SETLOCALE=0; AC_SUBST([REPLACE_SETLOCALE]) + REPLACE_NEWLOCALE=0; AC_SUBST([REPLACE_NEWLOCALE]) REPLACE_DUPLOCALE=0; AC_SUBST([REPLACE_DUPLOCALE]) + REPLACE_FREELOCALE=0; AC_SUBST([REPLACE_FREELOCALE]) REPLACE_STRUCT_LCONV=0; AC_SUBST([REPLACE_STRUCT_LCONV]) ]) diff --git a/m4/localeconv.m4 b/m4/localeconv.m4 index c287aa52..9bb78f0d 100644 --- a/m4/localeconv.m4 +++ b/m4/localeconv.m4 @@ -1,5 +1,5 @@ # localeconv.m4 serial 1 -dnl Copyright (C) 2012-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2012-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/localtime-buffer.m4 b/m4/localtime-buffer.m4 index 3965b5d9..6d998287 100644 --- a/m4/localtime-buffer.m4 +++ b/m4/localtime-buffer.m4 @@ -1,5 +1,5 @@ # localtime-buffer.m4 serial 1 -dnl Copyright (C) 2017 Free Software Foundation, Inc. +dnl Copyright (C) 2017-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/longlong.m4 b/m4/longlong.m4 index 9a3294bc..08d0e363 100644 --- a/m4/longlong.m4 +++ b/m4/longlong.m4 @@ -1,14 +1,15 @@ -# longlong.m4 serial 17 -dnl Copyright (C) 1999-2007, 2009-2017 Free Software Foundation, Inc. +# longlong.m4 serial 18 +dnl Copyright (C) 1999-2007, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Paul Eggert. +AC_PREREQ([2.62]) + # Define HAVE_LONG_LONG_INT if 'long long int' works. -# This fixes a bug in Autoconf 2.61, and can be faster -# than what's in Autoconf 2.62 through 2.68. +# This can be faster than what's in Autoconf 2.62 through 2.68. # Note: If the type 'long long int' exists but is only 32 bits large # (as on some very old compilers), HAVE_LONG_LONG_INT will not be @@ -56,8 +57,7 @@ AC_DEFUN([AC_TYPE_LONG_LONG_INT], ]) # Define HAVE_UNSIGNED_LONG_LONG_INT if 'unsigned long long int' works. -# This fixes a bug in Autoconf 2.61, and can be faster -# than what's in Autoconf 2.62 through 2.68. +# This can be faster than what's in Autoconf 2.62 through 2.68. # Note: If the type 'unsigned long long int' exists but is only 32 bits # large (as on some very old compilers), AC_TYPE_UNSIGNED_LONG_LONG_INT diff --git a/m4/lseek.m4 b/m4/lseek.m4 index 627e772e..d55ec2a3 100644 --- a/m4/lseek.m4 +++ b/m4/lseek.m4 @@ -1,5 +1,5 @@ # lseek.m4 serial 10 -dnl Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2007, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/lstat.m4 b/m4/lstat.m4 index 0b6e5d70..ace16386 100644 --- a/m4/lstat.m4 +++ b/m4/lstat.m4 @@ -1,6 +1,6 @@ -# serial 29 +# serial 32 -# Copyright (C) 1997-2001, 2003-2017 Free Software Foundation, Inc. +# Copyright (C) 1997-2001, 2003-2019 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -10,14 +10,15 @@ dnl From Jim Meyering. AC_DEFUN([gl_FUNC_LSTAT], [ + AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_SYS_STAT_H_DEFAULTS]) dnl If lstat does not exist, the replacement <sys/stat.h> does 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([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK]) - case "$gl_cv_func_lstat_dereferences_slashed_symlink" in - *no) + case $host_os,$gl_cv_func_lstat_dereferences_slashed_symlink in + solaris* | *no) REPLACE_LSTAT=1 ;; esac @@ -52,7 +53,10 @@ AC_DEFUN([gl_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK], [gl_cv_func_lstat_dereferences_slashed_symlink=yes], [gl_cv_func_lstat_dereferences_slashed_symlink=no], [case "$host_os" in - *-gnu*) + linux-* | linux) + # Guess yes on Linux systems. + gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; + *-gnu* | gnu*) # Guess yes on glibc systems. gl_cv_func_lstat_dereferences_slashed_symlink="guessing yes" ;; mingw*) diff --git a/m4/malloc.m4 b/m4/malloc.m4 index 5e6a83a6..f78a484f 100644 --- a/m4/malloc.m4 +++ b/m4/malloc.m4 @@ -1,5 +1,5 @@ -# malloc.m4 serial 15 -dnl Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. +# malloc.m4 serial 17 +dnl Copyright (C) 2007, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -32,7 +32,7 @@ AC_DEFUN([_AC_FUNC_MALLOC_IF], [ac_cv_func_malloc_0_nonnull=no], [case "$host_os" in # Guess yes on platforms where we know the result. - *-gnu* | freebsd* | netbsd* | openbsd* \ + *-gnu* | gnu* | freebsd* | netbsd* | openbsd* \ | hpux* | solaris* | cygwin* | mingw*) ac_cv_func_malloc_0_nonnull=yes ;; # If we don't know, assume the worst. @@ -91,7 +91,7 @@ AC_DEFUN([gl_CHECK_MALLOC_POSIX], AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[]], - [[#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ + [[#if defined _WIN32 && ! defined __CYGWIN__ choke me #endif ]])], diff --git a/m4/malloca.m4 b/m4/malloca.m4 index 6956baf2..820f40a8 100644 --- a/m4/malloca.m4 +++ b/m4/malloca.m4 @@ -1,5 +1,5 @@ # malloca.m4 serial 1 -dnl Copyright (C) 2003-2004, 2006-2007, 2009-2017 Free Software Foundation, +dnl Copyright (C) 2003-2004, 2006-2007, 2009-2019 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 index d10bcd08..e0488a5c 100644 --- a/m4/manywarnings.m4 +++ b/m4/manywarnings.m4 @@ -1,5 +1,5 @@ -# manywarnings.m4 serial 13 -dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. +# manywarnings.m4 serial 17 +dnl Copyright (C) 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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,54 +51,53 @@ m4_defun([gl_MANYWARN_ALL_GCC(C)], 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]) + AC_CACHE_CHECK([whether -Wno-missing-field-initializers is supported], + [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" + ]) 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( - [[int f (void) - { - typedef struct { int a; int b; } s_t; - s_t s1 = { 0, }; - return s1.b; - } - ]], - [[]])], - [gl_cv_cc_nomfi_needed=no], - [gl_cv_cc_nomfi_needed=yes]) - CFLAGS="$gl_save_CFLAGS" - ]) - AC_MSG_RESULT([$gl_cv_cc_nomfi_needed]) + AC_CACHE_CHECK([whether -Wno-missing-field-initializers is needed], + [gl_cv_cc_nomfi_needed], + [gl_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -W -Werror" + AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[int f (void) + { + typedef struct { int a; int b; } s_t; + s_t s1 = { 0, }; + return s1.b; + } + ]], + [[]])], + [gl_cv_cc_nomfi_needed=no], + [gl_cv_cc_nomfi_needed=yes]) + CFLAGS="$gl_save_CFLAGS" + ]) fi dnl Next, check if -Werror -Wuninitialized is useful with the dnl user's choice of $CFLAGS; some versions of gcc warn that it 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]) + AC_CACHE_CHECK([whether -Wuninitialized is supported], + [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" + ]) fi @@ -106,18 +105,17 @@ m4_defun([gl_MANYWARN_ALL_GCC(C)], # To compare this list to your installed GCC's, run this Bash command: # # comm -3 \ - # <(sed -n 's/^ *\(-[^ ]*\) .*/\1/p' manywarnings.m4 | sort) \ - # <(gcc --help=warnings | sed -n 's/^ \(-[^ ]*\) .*/\1/p' | sort | - # grep -v -x -F -f <( - # awk '/^[^#]/ {print $1}' ../build-aux/gcc-warning.spec)) + # <((sed -n 's/^ *\(-[^ 0-9][^ ]*\) .*/\1/p' manywarnings.m4; \ + # awk '/^[^#]/ {print $1}' ../build-aux/gcc-warning.spec) | sort) \ + # <(LC_ALL=C gcc --help=warnings | sed -n 's/^ \(-[^ ]*\) .*/\1/p' | sort) gl_manywarn_set= for gl_manywarn_item in -fno-common \ -W \ - -Wabi \ -Waddress \ -Waggressive-loop-optimizations \ -Wall \ + -Wattribute-alias \ -Wattributes \ -Wbad-function-cast \ -Wbool-compare \ @@ -125,8 +123,9 @@ m4_defun([gl_MANYWARN_ALL_GCC(C)], -Wbuiltin-declaration-mismatch \ -Wbuiltin-macro-redefined \ -Wcast-align \ + -Wcast-align=strict \ + -Wcast-function-type \ -Wchar-subscripts \ - -Wchkp \ -Wclobbered \ -Wcomment \ -Wcomments \ @@ -160,6 +159,7 @@ m4_defun([gl_MANYWARN_ALL_GCC(C)], -Wframe-address \ -Wfree-nonheap-object \ -Whsa \ + -Wif-not-aligned \ -Wignored-attributes \ -Wignored-qualifiers \ -Wimplicit \ @@ -173,7 +173,6 @@ m4_defun([gl_MANYWARN_ALL_GCC(C)], -Wint-to-pointer-cast \ -Winvalid-memory-model \ -Winvalid-pch \ - -Wjump-misses-init \ -Wlogical-not-parentheses \ -Wlogical-op \ -Wmain \ @@ -181,6 +180,7 @@ m4_defun([gl_MANYWARN_ALL_GCC(C)], -Wmemset-elt-size \ -Wmemset-transposed-args \ -Wmisleading-indentation \ + -Wmissing-attributes \ -Wmissing-braces \ -Wmissing-declarations \ -Wmissing-field-initializers \ @@ -188,6 +188,7 @@ m4_defun([gl_MANYWARN_ALL_GCC(C)], -Wmissing-parameter-type \ -Wmissing-prototypes \ -Wmultichar \ + -Wmultistatement-macros \ -Wnarrowing \ -Wnested-externs \ -Wnonnull \ @@ -202,6 +203,7 @@ m4_defun([gl_MANYWARN_ALL_GCC(C)], -Woverride-init \ -Wpacked \ -Wpacked-bitfield-compat \ + -Wpacked-not-aligned \ -Wparentheses \ -Wpointer-arith \ -Wpointer-compare \ @@ -219,20 +221,23 @@ m4_defun([gl_MANYWARN_ALL_GCC(C)], -Wshift-count-overflow \ -Wshift-negative-value \ -Wsizeof-array-argument \ + -Wsizeof-pointer-div \ -Wsizeof-pointer-memaccess \ -Wstack-protector \ -Wstrict-aliasing \ -Wstrict-overflow \ -Wstrict-prototypes \ + -Wstringop-truncation \ + -Wsuggest-attribute=cold \ -Wsuggest-attribute=const \ -Wsuggest-attribute=format \ + -Wsuggest-attribute=malloc \ -Wsuggest-attribute=noreturn \ -Wsuggest-attribute=pure \ -Wsuggest-final-methods \ -Wsuggest-final-types \ -Wswitch \ -Wswitch-bool \ - -Wswitch-default \ -Wswitch-unreachable \ -Wsync-nand \ -Wsystem-headers \ diff --git a/m4/mbchar.m4 b/m4/mbchar.m4 index 60ea1244..3d163422 100644 --- a/m4/mbchar.m4 +++ b/m4/mbchar.m4 @@ -1,5 +1,5 @@ # mbchar.m4 serial 9 -dnl Copyright (C) 2005-2007, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2005-2007, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/mbiter.m4 b/m4/mbiter.m4 index add40344..58889fef 100644 --- a/m4/mbiter.m4 +++ b/m4/mbiter.m4 @@ -1,5 +1,5 @@ # mbiter.m4 serial 7 -dnl Copyright (C) 2005, 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2005, 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/mbrtowc.m4 b/m4/mbrtowc.m4 index 216594eb..4811af5d 100644 --- a/m4/mbrtowc.m4 +++ b/m4/mbrtowc.m4 @@ -1,5 +1,5 @@ -# mbrtowc.m4 serial 29 -*- coding: utf-8 -*- -dnl Copyright (C) 2001-2002, 2004-2005, 2008-2017 Free Software Foundation, +# mbrtowc.m4 serial 31 -*- coding: utf-8 -*- +dnl Copyright (C) 2001-2002, 2004-2005, 2008-2019 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, @@ -563,12 +563,11 @@ AC_DEFUN([gl_MBRTOWC_EMPTY_INPUT], dnl is present. changequote(,)dnl case "$host_os" in - # Guess no on AIX and glibc systems. - aix* | *-gnu*) - gl_cv_func_mbrtowc_empty_input="guessing no" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; - *) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; + # Guess no on AIX and glibc systems. + aix* | *-gnu* | gnu*) gl_cv_func_mbrtowc_empty_input="guessing no" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; + *) gl_cv_func_mbrtowc_empty_input="guessing yes" ;; esac changequote([,])dnl AC_RUN_IFELSE( @@ -635,6 +634,7 @@ AC_DEFUN([gl_MBRTOWC_C_LOCALE], # Prerequisites of lib/mbrtowc.c. AC_DEFUN([gl_PREREQ_MBRTOWC], [ + AC_REQUIRE([AC_C_INLINE]) : ]) diff --git a/m4/mbsinit.m4 b/m4/mbsinit.m4 index 5904a510..e2f45e75 100644 --- a/m4/mbsinit.m4 +++ b/m4/mbsinit.m4 @@ -1,5 +1,5 @@ # mbsinit.m4 serial 8 -dnl Copyright (C) 2008, 2010-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2008, 2010-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/mbsrtowcs.m4 b/m4/mbsrtowcs.m4 index 79b8d767..cbdde2c5 100644 --- a/m4/mbsrtowcs.m4 +++ b/m4/mbsrtowcs.m4 @@ -1,5 +1,5 @@ # mbsrtowcs.m4 serial 13 -dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/mbstate_t.m4 b/m4/mbstate_t.m4 index 6325cf3a..f669753c 100644 --- a/m4/mbstate_t.m4 +++ b/m4/mbstate_t.m4 @@ -1,5 +1,5 @@ # mbstate_t.m4 serial 13 -dnl Copyright (C) 2000-2002, 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2000-2002, 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/mbtowc.m4 b/m4/mbtowc.m4 index 378a4e25..202c3fbd 100644 --- a/m4/mbtowc.m4 +++ b/m4/mbtowc.m4 @@ -1,5 +1,5 @@ # mbtowc.m4 serial 2 -dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2011-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/memchr.m4 b/m4/memchr.m4 index 0cca69d6..db227e7d 100644 --- a/m4/memchr.m4 +++ b/m4/memchr.m4 @@ -1,5 +1,5 @@ # memchr.m4 serial 13 -dnl Copyright (C) 2002-2004, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2004, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/mempcpy.m4 b/m4/mempcpy.m4 index 3faec3c8..b6090eed 100644 --- a/m4/mempcpy.m4 +++ b/m4/mempcpy.m4 @@ -1,5 +1,5 @@ # mempcpy.m4 serial 11 -dnl Copyright (C) 2003-2004, 2006-2007, 2009-2017 Free Software Foundation, +dnl Copyright (C) 2003-2004, 2006-2007, 2009-2019 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/memrchr.m4 b/m4/memrchr.m4 index e180f610..e907590e 100644 --- a/m4/memrchr.m4 +++ b/m4/memrchr.m4 @@ -1,5 +1,5 @@ # memrchr.m4 serial 10 -dnl Copyright (C) 2002-2003, 2005-2007, 2009-2017 Free Software Foundation, +dnl Copyright (C) 2002-2003, 2005-2007, 2009-2019 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/minmax.m4 b/m4/minmax.m4 index 6845fce8..1e0d30b9 100644 --- a/m4/minmax.m4 +++ b/m4/minmax.m4 @@ -1,5 +1,5 @@ # minmax.m4 serial 4 -dnl Copyright (C) 2005, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2005, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/mkdir.m4 b/m4/mkdir.m4 index fa15b157..4cd95903 100644 --- a/m4/mkdir.m4 +++ b/m4/mkdir.m4 @@ -1,6 +1,6 @@ -# serial 12 +# serial 14 -# Copyright (C) 2001, 2003-2004, 2006, 2008-2017 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003-2004, 2006, 2008-2019 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. @@ -23,19 +23,21 @@ AC_DEFUN([gl_FUNC_MKDIR], [gl_cv_func_mkdir_trailing_slash_works=yes], [gl_cv_func_mkdir_trailing_slash_works=no], [case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_mkdir_trailing_slash_works="guessing yes" ;; - # Guess yes on MSVC, no on mingw. - mingw*) AC_EGREP_CPP([Known], [ + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_mkdir_trailing_slash_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_mkdir_trailing_slash_works="guessing yes" ;; + # Guess yes on MSVC, no on mingw. + mingw*) AC_EGREP_CPP([Known], [ #ifdef _MSC_VER Known #endif - ], - [gl_cv_func_mkdir_trailing_slash_works="guessing yes"], - [gl_cv_func_mkdir_trailing_slash_works="guessing no"]) - ;; - # If we don't know, assume the worst. - *) gl_cv_func_mkdir_trailing_slash_works="guessing no" ;; + ], + [gl_cv_func_mkdir_trailing_slash_works="guessing yes"], + [gl_cv_func_mkdir_trailing_slash_works="guessing no"]) + ;; + # If we don't know, assume the worst. + *) gl_cv_func_mkdir_trailing_slash_works="guessing no" ;; esac ]) rm -rf conftest.dir @@ -58,12 +60,12 @@ AC_DEFUN([gl_FUNC_MKDIR], [gl_cv_func_mkdir_trailing_dot_works=yes], [gl_cv_func_mkdir_trailing_dot_works=no], [case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_mkdir_trailing_dot_works="guessing yes" ;; - # Guess no on native Windows. - mingw*) gl_cv_func_mkdir_trailing_dot_works="guessing no" ;; - # If we don't know, assume the worst. - *) gl_cv_func_mkdir_trailing_dot_works="guessing no" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_mkdir_trailing_dot_works="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_mkdir_trailing_dot_works="guessing no" ;; + # If we don't know, assume the worst. + *) gl_cv_func_mkdir_trailing_dot_works="guessing no" ;; esac ]) rm -rf conftest.dir diff --git a/m4/mkdirat.m4 b/m4/mkdirat.m4 index b54cf2a5..76719938 100644 --- a/m4/mkdirat.m4 +++ b/m4/mkdirat.m4 @@ -1,5 +1,5 @@ # mkdirat.m4 serial 1 -dnl Copyright (C) 2004-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2004-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/mkdtemp.m4 b/m4/mkdtemp.m4 index e66c195f..412bb39b 100644 --- a/m4/mkdtemp.m4 +++ b/m4/mkdtemp.m4 @@ -1,5 +1,5 @@ # mkdtemp.m4 serial 8 -dnl Copyright (C) 2001-2003, 2006-2007, 2009-2017 Free Software Foundation, +dnl Copyright (C) 2001-2003, 2006-2007, 2009-2019 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/mkfifo.m4 b/m4/mkfifo.m4 index f2516a9d..37a6fc70 100644 --- a/m4/mkfifo.m4 +++ b/m4/mkfifo.m4 @@ -1,7 +1,7 @@ -# serial 4 +# serial 8 # See if we need to provide mkfifo replacement. -dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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,10 +12,23 @@ 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 + + dnl We can't use AC_CHECK_FUNC here, because mkfifo() is defined as a + dnl static inline function when compiling for Android 4.4 or older. + AC_CACHE_CHECK([for mkfifo], [gl_cv_func_mkfifo], + [AC_LINK_IFELSE( + [AC_LANG_PROGRAM( + [[#include <sys/stat.h>]], + [[return mkfifo("/",0);]]) + ], + [gl_cv_func_mkfifo=yes], + [gl_cv_func_mkfifo=no]) + ]) + if test $gl_cv_func_mkfifo = no; then HAVE_MKFIFO=0 else + AC_DEFINE([HAVE_MKFIFO], [1], + [Define to 1 if you have a 'mkfifo' function.]) dnl Check for Solaris 9 and FreeBSD bug with trailing slash. AC_CHECK_FUNCS_ONCE([lstat]) AC_CACHE_CHECK([whether mkfifo rejects trailing slashes], @@ -39,10 +52,12 @@ AC_DEFUN([gl_FUNC_MKFIFO], ]])], [gl_cv_func_mkfifo_works=yes], [gl_cv_func_mkfifo_works=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" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_mkfifo_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | 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]) diff --git a/m4/mkfifoat.m4 b/m4/mkfifoat.m4 index e8bc027f..c48cbc2b 100644 --- a/m4/mkfifoat.m4 +++ b/m4/mkfifoat.m4 @@ -1,7 +1,7 @@ # serial 3 # See if we need to provide mkfifoat/mknodat replacement. -dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/mknod.m4 b/m4/mknod.m4 index 98ecea29..710784d0 100644 --- a/m4/mknod.m4 +++ b/m4/mknod.m4 @@ -1,7 +1,7 @@ -# serial 5 +# serial 7 # See if we need to provide mknod replacement. -dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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,12 @@ AC_DEFUN([gl_FUNC_MKNOD], fi gl_cv_func_mknod_works=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" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_mknod_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | 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]) diff --git a/m4/mktime.m4 b/m4/mktime.m4 index 1461905f..a86e1eeb 100644 --- a/m4/mktime.m4 +++ b/m4/mktime.m4 @@ -1,5 +1,5 @@ # serial 30 -dnl Copyright (C) 2002-2003, 2005-2007, 2009-2017 Free Software Foundation, +dnl Copyright (C) 2002-2003, 2005-2007, 2009-2019 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/mmap-anon.m4 b/m4/mmap-anon.m4 index 263687d1..50c38082 100644 --- a/m4/mmap-anon.m4 +++ b/m4/mmap-anon.m4 @@ -1,5 +1,5 @@ # mmap-anon.m4 serial 10 -dnl Copyright (C) 2005, 2007, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2005, 2007, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/mode_t.m4 b/m4/mode_t.m4 index 75d372a4..ba840dca 100644 --- a/m4/mode_t.m4 +++ b/m4/mode_t.m4 @@ -1,5 +1,5 @@ # mode_t.m4 serial 2 -dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/modechange.m4 b/m4/modechange.m4 index 025c3814..65705a8b 100644 --- a/m4/modechange.m4 +++ b/m4/modechange.m4 @@ -1,5 +1,5 @@ # modechange.m4 serial 7 -dnl Copyright (C) 2002-2003, 2005-2006, 2009-2017 Free Software Foundation, +dnl Copyright (C) 2002-2003, 2005-2006, 2009-2019 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/msvc-inval.m4 b/m4/msvc-inval.m4 index 33243751..4b958762 100644 --- a/m4/msvc-inval.m4 +++ b/m4/msvc-inval.m4 @@ -1,5 +1,5 @@ # msvc-inval.m4 serial 1 -dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2011-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/msvc-nothrow.m4 b/m4/msvc-nothrow.m4 index 3014661f..7e73b40b 100644 --- a/m4/msvc-nothrow.m4 +++ b/m4/msvc-nothrow.m4 @@ -1,5 +1,5 @@ # msvc-nothrow.m4 serial 1 -dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2011-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/multiarch.m4 b/m4/multiarch.m4 index 30006cb3..d48316e0 100644 --- a/m4/multiarch.m4 +++ b/m4/multiarch.m4 @@ -1,5 +1,5 @@ # multiarch.m4 serial 7 -dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/nl_langinfo.m4 b/m4/nl_langinfo.m4 index 16de8de3..66eee41d 100644 --- a/m4/nl_langinfo.m4 +++ b/m4/nl_langinfo.m4 @@ -1,5 +1,5 @@ -# nl_langinfo.m4 serial 5 -dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. +# nl_langinfo.m4 serial 6 +dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -36,8 +36,11 @@ AC_DEFUN([gl_FUNC_NL_LANGINFO], AC_DEFINE_UNQUOTED([FUNC_NL_LANGINFO_YESEXPR_WORKS], [$FUNC_NL_LANGINFO_YESEXPR_WORKS], [Define to 1 if nl_langinfo (YESEXPR) returns a non-empty string.]) - if test $HAVE_LANGINFO_CODESET = 1 && test $HAVE_LANGINFO_ERA = 1 \ - && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1; then + if test $HAVE_LANGINFO_CODESET = 1 \ + && test $HAVE_LANGINFO_T_FMT_AMPM = 1 \ + && test $HAVE_LANGINFO_ALTMON = 1 \ + && test $HAVE_LANGINFO_ERA = 1 \ + && test $FUNC_NL_LANGINFO_YESEXPR_WORKS = 1; then : else REPLACE_NL_LANGINFO=1 diff --git a/m4/nls.m4 b/m4/nls.m4 index afdb9cac..b62f6148 100644 --- 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-2014, 2016 Free Software +dnl Copyright (C) 1995-2003, 2005-2006, 2008-2014, 2016, 2019 Free Software dnl Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, diff --git a/m4/nocrash.m4 b/m4/nocrash.m4 index 2c2c5fb4..4d9f0226 100644 --- a/m4/nocrash.m4 +++ b/m4/nocrash.m4 @@ -1,5 +1,5 @@ -# nocrash.m4 serial 4 -dnl Copyright (C) 2005, 2009-2017 Free Software Foundation, Inc. +# nocrash.m4 serial 5 +dnl Copyright (C) 2005, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -79,7 +79,7 @@ nocrash_init (void) } } } -#elif (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#elif defined _WIN32 && ! defined __CYGWIN__ /* Avoid a crash on native Windows. */ #define WIN32_LEAN_AND_MEAN #include <windows.h> diff --git a/m4/nstrftime.m4 b/m4/nstrftime.m4 index d2dac9e2..546c2408 100644 --- a/m4/nstrftime.m4 +++ b/m4/nstrftime.m4 @@ -1,6 +1,6 @@ # serial 34 -# Copyright (C) 1996-1997, 1999-2007, 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 1996-1997, 1999-2007, 2009-2019 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff --git a/m4/obstack.m4 b/m4/obstack.m4 index 61237620..b56fca4c 100644 --- a/m4/obstack.m4 +++ b/m4/obstack.m4 @@ -1,6 +1,6 @@ # See if we need to provide obstacks. -dnl Copyright 1996-2017 Free Software Foundation, Inc. +dnl Copyright 1996-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/off_t.m4 b/m4/off_t.m4 index 92c45ef7..711a2d44 100644 --- a/m4/off_t.m4 +++ b/m4/off_t.m4 @@ -1,5 +1,5 @@ # off_t.m4 serial 1 -dnl Copyright (C) 2012-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2012-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/open-cloexec.m4 b/m4/open-cloexec.m4 index 897af669..52498d95 100644 --- a/m4/open-cloexec.m4 +++ b/m4/open-cloexec.m4 @@ -1,6 +1,6 @@ # Test whether O_CLOEXEC is defined. -dnl Copyright 2017 Free Software Foundation, Inc. +dnl Copyright 2017-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/open.m4 b/m4/open.m4 index 68253e15..5d73f4de 100644 --- a/m4/open.m4 +++ b/m4/open.m4 @@ -1,5 +1,5 @@ # open.m4 serial 15 -dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2007-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/openat.m4 b/m4/openat.m4 index d0d244a0..005a2b43 100644 --- a/m4/openat.m4 +++ b/m4/openat.m4 @@ -1,7 +1,7 @@ # serial 46 # See if we need to use our replacement for Solaris' openat et al functions. -dnl Copyright (C) 2004-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2004-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/opendir.m4 b/m4/opendir.m4 index 0047d349..8f0d8042 100644 --- a/m4/opendir.m4 +++ b/m4/opendir.m4 @@ -1,5 +1,5 @@ # opendir.m4 serial 5 -dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2011-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/parse-datetime.m4 b/m4/parse-datetime.m4 index c01d237c..597a44c5 100644 --- a/m4/parse-datetime.m4 +++ b/m4/parse-datetime.m4 @@ -1,5 +1,5 @@ # parse-datetime.m4 serial 22 -dnl Copyright (C) 2002-2006, 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2006, 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/pathmax.m4 b/m4/pathmax.m4 index c6c9f24d..0770aca3 100644 --- a/m4/pathmax.m4 +++ b/m4/pathmax.m4 @@ -1,5 +1,5 @@ -# pathmax.m4 serial 10 -dnl Copyright (C) 2002-2003, 2005-2006, 2009-2017 Free Software Foundation, +# pathmax.m4 serial 11 +dnl Copyright (C) 2002-2003, 2005-2006, 2009-2019 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, @@ -29,7 +29,7 @@ AC_DEFUN([gl_PATHMAX_SNIPPET], [[ # undef PATH_MAX # define PATH_MAX 1024 #endif -#if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +#if defined _WIN32 && ! defined __CYGWIN__ # undef PATH_MAX # define PATH_MAX 260 #endif diff --git a/m4/po.m4 b/m4/po.m4 index c5a2f6bf..ce72d017 100644 --- a/m4/po.m4 +++ b/m4/po.m4 @@ -1,5 +1,5 @@ -# po.m4 serial 24 (gettext-0.19) -dnl Copyright (C) 1995-2014, 2016 Free Software Foundation, Inc. +# po.m4 serial 24a +dnl Copyright (C) 1995-2014, 2016, 2018-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -83,12 +83,6 @@ changequote([,])dnl AM_PATH_PROG_WITH_TEST(MSGMERGE, msgmerge, [$ac_dir/$ac_word --update -q /dev/null /dev/null >&]AS_MESSAGE_LOG_FD[ 2>&1], :) - dnl Installation directories. - dnl Autoconf >= 2.60 defines localedir. For older versions of autoconf, we - dnl have to define it here, so that it can be used in po/Makefile. - test -n "$localedir" || localedir='${datadir}/locale' - AC_SUBST([localedir]) - dnl Support for AM_XGETTEXT_OPTION. test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= AC_SUBST([XGETTEXT_EXTRA_OPTIONS]) @@ -130,14 +124,11 @@ changequote([,])dnl if test -n "$OBSOLETE_ALL_LINGUAS"; then 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 assignment from automake < 1.5. - eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # The set of available languages was given in configure.in. - # Hide the ALL_LINGUAS assignment from automake < 1.5. - eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' + ALL_LINGUAS=$OBSOLETE_ALL_LINGUAS fi # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) @@ -208,9 +199,8 @@ changequote([,])dnl esac done]], [# Capture the value of obsolete ALL_LINGUAS because we need it to compute - # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it - # from automake < 1.5. - eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. + OBSOLETE_ALL_LINGUAS="$ALL_LINGUAS" # Capture the value of LINGUAS because we need it to compute CATALOGS. LINGUAS="${LINGUAS-%UNSET%}" ]) @@ -311,15 +301,13 @@ changequote([,])dnl fi if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then # The LINGUAS file contains the set of available languages. - ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + ALL_LINGUAS=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" else # Set ALL_LINGUAS to the value of the Makefile variable LINGUAS. 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"` + ALL_LINGUAS=`sed -n -e "$sed_x_LINGUAS" < "$ac_file"` fi - # Hide the ALL_LINGUAS assignment from automake < 1.5. - eval 'ALL_LINGUAS''=$ALL_LINGUAS_' # Compute POFILES # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) # Compute UPDATEPOFILES diff --git a/m4/printf.m4 b/m4/printf.m4 index 3b167ecb..1db13bf8 100644 --- a/m4/printf.m4 +++ b/m4/printf.m4 @@ -1,5 +1,5 @@ -# printf.m4 serial 57 -dnl Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. +# printf.m4 serial 59 +dnl Copyright (C) 2003, 2007-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -61,7 +61,7 @@ int main () case "$host_os" in changequote(,)dnl # Guess yes on glibc systems. - *-gnu*) gl_cv_func_printf_sizes_c99="guessing yes";; + *-gnu* | gnu*) gl_cv_func_printf_sizes_c99="guessing yes";; # Guess yes on FreeBSD >= 5. freebsd[1-4].*) gl_cv_func_printf_sizes_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_printf_sizes_c99="guessing yes";; @@ -234,7 +234,7 @@ int main () case "$host_os" in changequote(,)dnl # Guess yes on glibc systems. - *-gnu*) gl_cv_func_printf_infinite="guessing yes";; + *-gnu* | gnu*) gl_cv_func_printf_infinite="guessing yes";; # Guess yes on FreeBSD >= 6. freebsd[1-5].*) gl_cv_func_printf_infinite="guessing no";; freebsd* | kfreebsd*) gl_cv_func_printf_infinite="guessing yes";; @@ -449,7 +449,7 @@ int main () case "$host_os" in changequote(,)dnl # Guess yes on glibc systems. - *-gnu*) gl_cv_func_printf_infinite_long_double="guessing yes";; + *-gnu* | gnu*) gl_cv_func_printf_infinite_long_double="guessing yes";; # Guess yes on FreeBSD >= 6. freebsd[1-5].*) gl_cv_func_printf_infinite_long_double="guessing no";; freebsd* | kfreebsd*) gl_cv_func_printf_infinite_long_double="guessing yes";; @@ -554,7 +554,7 @@ int main () [ case "$host_os" in # Guess yes on glibc >= 2.5 systems. - *-gnu*) + *-gnu* | gnu*) AC_EGREP_CPP([BZ2908], [ #include <features.h> #ifdef __GNU_LIBRARY__ @@ -613,7 +613,7 @@ int main () case "$host_os" in changequote(,)dnl # Guess yes on glibc systems. - *-gnu*) gl_cv_func_printf_directive_f="guessing yes";; + *-gnu* | gnu*) gl_cv_func_printf_directive_f="guessing yes";; # Guess yes on FreeBSD >= 6. freebsd[1-5].*) gl_cv_func_printf_directive_f="guessing no";; freebsd* | kfreebsd*) gl_cv_func_printf_directive_f="guessing yes";; @@ -935,14 +935,14 @@ int main () [ changequote(,)dnl case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_printf_flag_zero="guessing yes";; - # Guess yes on BeOS. - beos*) gl_cv_func_printf_flag_zero="guessing yes";; - # Guess no on native Windows. - mingw*) gl_cv_func_printf_flag_zero="guessing no";; - # If we don't know, assume the worst. - *) gl_cv_func_printf_flag_zero="guessing no";; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_printf_flag_zero="guessing yes";; + # Guess yes on BeOS. + beos*) gl_cv_func_printf_flag_zero="guessing yes";; + # Guess no on native Windows. + mingw*) gl_cv_func_printf_flag_zero="guessing no";; + # If we don't know, assume the worst. + *) gl_cv_func_printf_flag_zero="guessing no";; esac changequote([,])dnl ]) @@ -1095,28 +1095,28 @@ changequote([,])dnl if test "$gl_cv_func_printf_enomem" = "guessing no"; then changequote(,)dnl case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_printf_enomem="guessing yes";; - # Guess yes on Solaris. - solaris*) gl_cv_func_printf_enomem="guessing yes";; - # Guess yes on AIX. - aix*) gl_cv_func_printf_enomem="guessing yes";; - # Guess yes on HP-UX/hppa. - hpux*) case "$host_cpu" in - hppa*) gl_cv_func_printf_enomem="guessing yes";; - *) gl_cv_func_printf_enomem="guessing no";; - esac - ;; - # Guess yes on IRIX. - irix*) gl_cv_func_printf_enomem="guessing yes";; - # Guess yes on OSF/1. - osf*) gl_cv_func_printf_enomem="guessing yes";; - # Guess yes on BeOS. - beos*) gl_cv_func_printf_enomem="guessing yes";; - # Guess yes on Haiku. - haiku*) gl_cv_func_printf_enomem="guessing yes";; - # If we don't know, assume the worst. - *) gl_cv_func_printf_enomem="guessing no";; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_printf_enomem="guessing yes";; + # Guess yes on Solaris. + solaris*) gl_cv_func_printf_enomem="guessing yes";; + # Guess yes on AIX. + aix*) gl_cv_func_printf_enomem="guessing yes";; + # Guess yes on HP-UX/hppa. + hpux*) case "$host_cpu" in + hppa*) gl_cv_func_printf_enomem="guessing yes";; + *) gl_cv_func_printf_enomem="guessing no";; + esac + ;; + # Guess yes on IRIX. + irix*) gl_cv_func_printf_enomem="guessing yes";; + # Guess yes on OSF/1. + osf*) gl_cv_func_printf_enomem="guessing yes";; + # Guess yes on BeOS. + beos*) gl_cv_func_printf_enomem="guessing yes";; + # Guess yes on Haiku. + haiku*) gl_cv_func_printf_enomem="guessing yes";; + # If we don't know, assume the worst. + *) gl_cv_func_printf_enomem="guessing no";; esac changequote([,])dnl fi @@ -1176,7 +1176,7 @@ int main () changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. - *-gnu*) gl_cv_func_snprintf_truncation_c99="guessing yes";; + *-gnu* | gnu*) gl_cv_func_snprintf_truncation_c99="guessing yes";; # Guess yes on FreeBSD >= 5. freebsd[1-4].*) gl_cv_func_snprintf_truncation_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_snprintf_truncation_c99="guessing yes";; @@ -1276,7 +1276,7 @@ int main () [case "$host_os" in changequote(,)dnl # Guess yes on glibc systems. - *-gnu*) gl_cv_func_snprintf_retval_c99="guessing yes";; + *-gnu* | 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";; @@ -1366,7 +1366,7 @@ int main () changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. - *-gnu*) gl_cv_func_snprintf_directive_n="guessing yes";; + *-gnu* | gnu*) gl_cv_func_snprintf_directive_n="guessing yes";; # Guess yes on FreeBSD >= 5. freebsd[1-4].*) gl_cv_func_snprintf_directive_n="guessing no";; freebsd* | kfreebsd*) gl_cv_func_snprintf_directive_n="guessing yes";; @@ -1516,7 +1516,7 @@ int main() changequote(,)dnl case "$host_os" in # Guess yes on glibc systems. - *-gnu*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; + *-gnu* | gnu*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; # Guess yes on FreeBSD >= 5. freebsd[1-4].*) gl_cv_func_vsnprintf_zerosize_c99="guessing no";; freebsd* | kfreebsd*) gl_cv_func_vsnprintf_zerosize_c99="guessing yes";; @@ -1606,6 +1606,7 @@ dnl OpenBSD 3.9, 4.0 . . # # # # . # . # . # . # . dnl Cygwin 1.7.0 (2009) . . . # . . . ? . . . . . ? . . . . . . dnl Cygwin 1.5.25 (2008) . . . # # . . # . . . . . # . . . . . . dnl Cygwin 1.5.19 (2006) # . . # # # . # . # . # # # . . . . . . +dnl Solaris 11.4 . . # # # . . # . . . # . . . . . . . . dnl Solaris 11.3 . . . . # . . # . . . . . . . . . . . . dnl Solaris 11.0 . . # # # . . # . . . # . . . . . . . . dnl Solaris 10 . . # # # . . # . . . # # . . . . . . . diff --git a/m4/priv-set.m4 b/m4/priv-set.m4 index 48e35b7c..258dc431 100644 --- a/m4/priv-set.m4 +++ b/m4/priv-set.m4 @@ -1,6 +1,6 @@ # serial 8 -# Copyright (C) 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff --git a/m4/progtest.m4 b/m4/progtest.m4 index 303bc318..5f186b14 100644 --- a/m4/progtest.m4 +++ b/m4/progtest.m4 @@ -1,5 +1,5 @@ # progtest.m4 serial 7 (gettext-0.18.2) -dnl Copyright (C) 1996-2003, 2005, 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 1996-2003, 2005, 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/quote.m4 b/m4/quote.m4 index 92be1e72..feaa7351 100644 --- a/m4/quote.m4 +++ b/m4/quote.m4 @@ -1,5 +1,5 @@ # quote.m4 serial 6 -dnl Copyright (C) 2002-2003, 2005-2006, 2009-2017 Free Software Foundation, +dnl Copyright (C) 2002-2003, 2005-2006, 2009-2019 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/quotearg.m4 b/m4/quotearg.m4 index 5fae4f3e..c478f505 100644 --- a/m4/quotearg.m4 +++ b/m4/quotearg.m4 @@ -1,5 +1,5 @@ # quotearg.m4 serial 9 -dnl Copyright (C) 2002, 2004-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2004-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/raise.m4 b/m4/raise.m4 index fe6e0685..f7661e65 100644 --- a/m4/raise.m4 +++ b/m4/raise.m4 @@ -1,5 +1,5 @@ # raise.m4 serial 4 -dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2011-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/rawmemchr.m4 b/m4/rawmemchr.m4 index f800ed4d..03a88049 100644 --- a/m4/rawmemchr.m4 +++ b/m4/rawmemchr.m4 @@ -1,5 +1,5 @@ # rawmemchr.m4 serial 2 -dnl Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2003, 2007-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/read.m4 b/m4/read.m4 index 24668028..b1e77d2e 100644 --- a/m4/read.m4 +++ b/m4/read.m4 @@ -1,5 +1,5 @@ # read.m4 serial 5 -dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2011-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/readdir.m4 b/m4/readdir.m4 index cb7f2ea4..d09cb9fe 100644 --- a/m4/readdir.m4 +++ b/m4/readdir.m4 @@ -1,5 +1,5 @@ # readdir.m4 serial 1 -dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2011-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/readlink.m4 b/m4/readlink.m4 index d3ba0ad4..2d768157 100644 --- a/m4/readlink.m4 +++ b/m4/readlink.m4 @@ -1,5 +1,5 @@ -# readlink.m4 serial 12 -dnl Copyright (C) 2003, 2007, 2009-2017 Free Software Foundation, Inc. +# readlink.m4 serial 14 +dnl Copyright (C) 2003, 2007, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -34,10 +34,12 @@ AC_DEFUN([gl_FUNC_READLINK], return readlink ("conftest.lnk2/", buf, sizeof buf) != -1;]])], [gl_cv_func_readlink_works=yes], [gl_cv_func_readlink_works=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" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_readlink_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | 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]) diff --git a/m4/readlinkat.m4 b/m4/readlinkat.m4 index e173e413..b63f213d 100644 --- a/m4/readlinkat.m4 +++ b/m4/readlinkat.m4 @@ -1,7 +1,7 @@ # serial 5 # See if we need to provide readlinkat replacement. -dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/realloc.m4 b/m4/realloc.m4 index dbac45f1..1281a353 100644 --- a/m4/realloc.m4 +++ b/m4/realloc.m4 @@ -1,5 +1,5 @@ -# realloc.m4 serial 14 -dnl Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. +# realloc.m4 serial 15 +dnl Copyright (C) 2007, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -32,7 +32,7 @@ AC_DEFUN([_AC_FUNC_REALLOC_IF], [ac_cv_func_realloc_0_nonnull=no], [case "$host_os" in # Guess yes on platforms where we know the result. - *-gnu* | freebsd* | netbsd* | openbsd* \ + *-gnu* | gnu* | freebsd* | netbsd* | openbsd* \ | hpux* | solaris* | cygwin* | mingw*) ac_cv_func_realloc_0_nonnull=yes ;; # If we don't know, assume the worst. diff --git a/m4/regex.m4 b/m4/regex.m4 index 55524033..35119c5c 100644 --- a/m4/regex.m4 +++ b/m4/regex.m4 @@ -1,6 +1,6 @@ -# serial 67 +# serial 68 -# Copyright (C) 1996-2001, 2003-2017 Free Software Foundation, Inc. +# Copyright (C) 1996-2001, 2003-2019 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -213,6 +213,17 @@ AC_DEFUN([gl_REGEX], if (! REG_STARTEND) result |= 64; + /* Matching with the compiled form of this regexp would provoke + an assertion failure prior to glibc-2.28: + regexec.c:1375: pop_fail_stack: Assertion 'num >= 0' failed + With glibc-2.28, compilation fails and reports the invalid + back reference. */ + re_set_syntax (RE_SYNTAX_POSIX_EGREP); + memset (®ex, 0, sizeof regex); + s = re_compile_pattern ("0|()0|\\1|0", 10, ®ex); + if (!s || strcmp (s, "Invalid back reference")) + 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 diff --git a/m4/rename.m4 b/m4/rename.m4 index 33cd00a0..7318e757 100644 --- a/m4/rename.m4 +++ b/m4/rename.m4 @@ -1,6 +1,6 @@ -# serial 29 +# serial 31 -# Copyright (C) 2001, 2003, 2005-2006, 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2001, 2003, 2005-2006, 2009-2019 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. @@ -19,7 +19,7 @@ AC_DEFUN([gl_FUNC_RENAME], AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_CHECK_FUNCS_ONCE([lstat]) - dnl Solaris 11, AIX 7.1 mistakenly allow rename("file","name/"). + dnl Solaris 11.3, AIX 7.1 mistakenly allow rename("file","name/"). dnl NetBSD 1.6 mistakenly forbids rename("dir","name/"). dnl FreeBSD 7.2 mistakenly allows rename("file","link-to-file/"). dnl The Solaris bug can be worked around without stripping @@ -55,12 +55,14 @@ AC_DEFUN([gl_FUNC_RENAME], [gl_cv_func_rename_slash_dst_works=no], dnl When crosscompiling, assume rename is broken. [case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_rename_slash_dst_works="guessing yes" ;; - # Guess no on native Windows. - mingw*) gl_cv_func_rename_slash_dst_works="guessing no" ;; - # If we don't know, assume the worst. - *) gl_cv_func_rename_slash_dst_works="guessing no" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_rename_slash_dst_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_rename_slash_dst_works="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_rename_slash_dst_works="guessing no" ;; + # 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 @@ -109,12 +111,14 @@ AC_DEFUN([gl_FUNC_RENAME], [gl_cv_func_rename_slash_src_works=no], dnl When crosscompiling, assume rename is broken. [case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_rename_slash_src_works="guessing yes" ;; - # Guess yes on native Windows. - mingw*) 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" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_rename_slash_src_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_rename_slash_src_works="guessing yes" ;; + # Guess yes on native Windows. + mingw*) 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 @@ -169,12 +173,14 @@ AC_DEFUN([gl_FUNC_RENAME], [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" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_rename_link_works="guessing yes" ;; - # If we don't know, assume the worst. - *) gl_cv_func_rename_link_works="guessing no" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_rename_link_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_rename_link_works="guessing yes" ;; + # Guess yes on native Windows. + mingw*) 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 @@ -220,12 +226,14 @@ AC_DEFUN([gl_FUNC_RENAME], [gl_cv_func_rename_dest_works=no], dnl When crosscompiling, assume rename is broken. [case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_rename_dest_works="guessing yes" ;; - # Guess no on native Windows. - mingw*) gl_cv_func_rename_dest_works="guessing no" ;; - # If we don't know, assume the worst. - *) gl_cv_func_rename_dest_works="guessing no" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_rename_dest_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_rename_dest_works="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_rename_dest_works="guessing no" ;; + # 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 diff --git a/m4/renameat.m4 b/m4/renameat.m4 index 1b977744..fdbaeafc 100644 --- a/m4/renameat.m4 +++ b/m4/renameat.m4 @@ -1,7 +1,7 @@ # serial 3 # See if we need to provide renameat replacement. -dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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,7 @@ AC_DEFUN([gl_FUNC_RENAMEAT], AC_REQUIRE([gl_STDIO_H_DEFAULTS]) AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) AC_CHECK_HEADERS([linux/fs.h]) - AC_CHECK_FUNCS_ONCE([renameat]) + AC_CHECK_FUNCS_ONCE([renameat renameat2]) if test $ac_cv_func_renameat = no; then HAVE_RENAMEAT=0 elif test $REPLACE_RENAME = 1; then diff --git a/m4/rewinddir.m4 b/m4/rewinddir.m4 index a73c886f..c14224c3 100644 --- a/m4/rewinddir.m4 +++ b/m4/rewinddir.m4 @@ -1,5 +1,5 @@ # rewinddir.m4 serial 1 -dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2011-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/rmdir.m4 b/m4/rmdir.m4 index 37237d2a..5d32caaa 100644 --- a/m4/rmdir.m4 +++ b/m4/rmdir.m4 @@ -1,5 +1,5 @@ -# rmdir.m4 serial 14 -dnl Copyright (C) 2002, 2005, 2009-2017 Free Software Foundation, Inc. +# rmdir.m4 serial 16 +dnl Copyright (C) 2002, 2005, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -33,12 +33,14 @@ AC_DEFUN([gl_FUNC_RMDIR], ]])], [gl_cv_func_rmdir_works=yes], [gl_cv_func_rmdir_works=no], [case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_rmdir_works="guessing yes" ;; - # Guess no on native Windows. - mingw*) gl_cv_func_rmdir_works="guessing no" ;; - # If we don't know, assume the worst. - *) gl_cv_func_rmdir_works="guessing no" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_rmdir_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_rmdir_works="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_rmdir_works="guessing no" ;; + # If we don't know, assume the worst. + *) gl_cv_func_rmdir_works="guessing no" ;; esac ]) rm -rf conftest.dir conftest.file]) diff --git a/m4/rpmatch.m4 b/m4/rpmatch.m4 index dfa3315a..d10a005b 100644 --- a/m4/rpmatch.m4 +++ b/m4/rpmatch.m4 @@ -1,5 +1,5 @@ # rpmatch.m4 serial 10 -dnl Copyright (C) 2002-2003, 2007-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2003, 2007-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/safe-read.m4 b/m4/safe-read.m4 index 022bb654..d133e056 100644 --- a/m4/safe-read.m4 +++ b/m4/safe-read.m4 @@ -1,5 +1,5 @@ # safe-read.m4 serial 6 -dnl Copyright (C) 2002-2003, 2005-2006, 2009-2017 Free Software Foundation, +dnl Copyright (C) 2002-2003, 2005-2006, 2009-2019 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/safe-write.m4 b/m4/safe-write.m4 index 09a2226e..907a5c62 100644 --- a/m4/safe-write.m4 +++ b/m4/safe-write.m4 @@ -1,5 +1,5 @@ # safe-write.m4 serial 4 -dnl Copyright (C) 2002, 2005-2006, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2005-2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/save-cwd.m4 b/m4/save-cwd.m4 index 4b00f9b4..816fd703 100644 --- a/m4/save-cwd.m4 +++ b/m4/save-cwd.m4 @@ -1,5 +1,5 @@ # serial 10 -dnl Copyright (C) 2002-2006, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/savedir.m4 b/m4/savedir.m4 index 1ec1063a..55d2d9d2 100644 --- a/m4/savedir.m4 +++ b/m4/savedir.m4 @@ -1,5 +1,5 @@ # savedir.m4 serial 10 -dnl Copyright (C) 2002-2003, 2005-2006, 2009-2017 Free Software Foundation, +dnl Copyright (C) 2002-2003, 2005-2006, 2009-2019 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/selinux-context-h.m4 b/m4/selinux-context-h.m4 index 761113dd..c45026f2 100644 --- a/m4/selinux-context-h.m4 +++ b/m4/selinux-context-h.m4 @@ -1,5 +1,5 @@ # serial 3 -*- Autoconf -*- -# Copyright (C) 2006-2007, 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2006-2007, 2009-2019 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. diff --git a/m4/selinux-selinux-h.m4 b/m4/selinux-selinux-h.m4 index f25cd43b..8bbbf053 100644 --- a/m4/selinux-selinux-h.m4 +++ b/m4/selinux-selinux-h.m4 @@ -1,5 +1,5 @@ # serial 5 -*- Autoconf -*- -# Copyright (C) 2006-2007, 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2006-2007, 2009-2019 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. diff --git a/m4/setenv.m4 b/m4/setenv.m4 index 005aa8cf..6101274e 100644 --- a/m4/setenv.m4 +++ b/m4/setenv.m4 @@ -1,5 +1,5 @@ -# setenv.m4 serial 26 -dnl Copyright (C) 2001-2004, 2006-2017 Free Software Foundation, Inc. +# setenv.m4 serial 27 +dnl Copyright (C) 2001-2004, 2006-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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,10 +35,10 @@ AC_DEFUN([gl_FUNC_SETENV], ]])], [gl_cv_func_setenv_works=yes], [gl_cv_func_setenv_works=no], [case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_setenv_works="guessing yes" ;; - # If we don't know, assume the worst. - *) gl_cv_func_setenv_works="guessing no" ;; + # Guess yes on glibc systems. + *-gnu* | 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 diff --git a/m4/signal_h.m4 b/m4/signal_h.m4 index eaf5ce98..3acec64f 100644 --- a/m4/signal_h.m4 +++ b/m4/signal_h.m4 @@ -1,5 +1,5 @@ # signal_h.m4 serial 18 -dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2007-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/size_max.m4 b/m4/size_max.m4 index 05ad1b60..ab79052d 100644 --- a/m4/size_max.m4 +++ b/m4/size_max.m4 @@ -1,11 +1,13 @@ -# size_max.m4 serial 10 -dnl Copyright (C) 2003, 2005-2006, 2008-2017 Free Software Foundation, Inc. +# size_max.m4 serial 11 +dnl Copyright (C) 2003, 2005-2006, 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. dnl From Bruno Haible. +AC_PREREQ([2.61]) + AC_DEFUN([gl_SIZE_MAX], [ AC_CHECK_HEADERS([stdint.h]) @@ -71,9 +73,3 @@ Found it # undef SIZE_MAX #endif]) ]) - -dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. -dnl Remove this when we can assume autoconf >= 2.61. -m4_ifdef([AC_COMPUTE_INT], [], [ - AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) -]) diff --git a/m4/sleep.m4 b/m4/sleep.m4 index e2d27be2..5f71cc78 100644 --- a/m4/sleep.m4 +++ b/m4/sleep.m4 @@ -1,5 +1,5 @@ -# sleep.m4 serial 8 -dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. +# sleep.m4 serial 9 +dnl Copyright (C) 2007-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -46,12 +46,12 @@ handle_alarm (int sig) ]])], [gl_cv_func_sleep_works=yes], [gl_cv_func_sleep_works=no], [case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_sleep_works="guessing yes" ;; - # Guess no on native Windows. - mingw*) gl_cv_func_sleep_works="guessing no" ;; - # If we don't know, assume the worst. - *) gl_cv_func_sleep_works="guessing no" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_sleep_works="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_sleep_works="guessing no" ;; + # If we don't know, assume the worst. + *) gl_cv_func_sleep_works="guessing no" ;; esac ])]) case "$gl_cv_func_sleep_works" in diff --git a/m4/snprintf.m4 b/m4/snprintf.m4 index e5155f79..6fd566de 100644 --- a/m4/snprintf.m4 +++ b/m4/snprintf.m4 @@ -1,5 +1,5 @@ # snprintf.m4 serial 7 -dnl Copyright (C) 2002-2004, 2007-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2004, 2007-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/ssize_t.m4 b/m4/ssize_t.m4 index 66ba9d4e..38bcee1c 100644 --- a/m4/ssize_t.m4 +++ b/m4/ssize_t.m4 @@ -1,5 +1,5 @@ # ssize_t.m4 serial 5 (gettext-0.18.2) -dnl Copyright (C) 2001-2003, 2006, 2010-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2001-2003, 2006, 2010-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/stat-time.m4 b/m4/stat-time.m4 index 4017fc9d..1685788e 100644 --- a/m4/stat-time.m4 +++ b/m4/stat-time.m4 @@ -1,6 +1,6 @@ # Checks for stat-related time functions. -# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2017 Free Software +# Copyright (C) 1998-1999, 2001, 2003, 2005-2007, 2009-2019 Free Software # Foundation, Inc. # This file is free software; the Free Software Foundation diff --git a/m4/stat.m4 b/m4/stat.m4 index 286fcba8..60040d13 100644 --- a/m4/stat.m4 +++ b/m4/stat.m4 @@ -1,6 +1,6 @@ -# serial 12 +# serial 15 -# Copyright (C) 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -43,10 +43,12 @@ AC_DEFUN([gl_FUNC_STAT], ]])], [gl_cv_func_stat_file_slash=yes], [gl_cv_func_stat_file_slash=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" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_stat_file_slash="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_stat_file_slash="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_stat_file_slash="guessing no" ;; esac ]) rm -f conftest.tmp conftest.lnk]) @@ -56,6 +58,11 @@ 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 + case $host_os in + dnl Solaris stat can return a negative tv_nsec. + solaris*) + REPLACE_FSTAT=1 ;; + esac ;; esac ]) diff --git a/m4/stdalign.m4 b/m4/stdalign.m4 index f091aa58..601fd21f 100644 --- a/m4/stdalign.m4 +++ b/m4/stdalign.m4 @@ -1,6 +1,6 @@ # Check for stdalign.h that conforms to C11. -dnl Copyright 2011-2017 Free Software Foundation, Inc. +dnl Copyright 2011-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/stdarg.m4 b/m4/stdarg.m4 index 40db5e43..f43fe20b 100644 --- a/m4/stdarg.m4 +++ b/m4/stdarg.m4 @@ -1,5 +1,5 @@ -# stdarg.m4 serial 6 -dnl Copyright (C) 2006, 2008-2017 Free Software Foundation, Inc. +# stdarg.m4 serial 7 +dnl Copyright (C) 2006, 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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,19 +11,19 @@ AC_DEFUN([gl_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( - [AC_LANG_PROGRAM( - [[#include <stdarg.h>]], - [[ + AC_CACHE_CHECK([for va_copy], + [gl_cv_func_va_copy], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include <stdarg.h>]], + [[ #ifndef va_copy void (*func) (va_list, va_list) = va_copy; #endif - ]])], - [gl_cv_func_va_copy=yes], - [gl_cv_func_va_copy=no])]) - AC_MSG_RESULT([$gl_cv_func_va_copy]) + ]])], + [gl_cv_func_va_copy=yes], + [gl_cv_func_va_copy=no]) + ]) if test $gl_cv_func_va_copy = no; then dnl Provide a substitute. dnl Usually a simple definition in <config.h> is enough. Not so on AIX 5 diff --git a/m4/stdbool.m4 b/m4/stdbool.m4 index 9e714d47..acb85224 100644 --- a/m4/stdbool.m4 +++ b/m4/stdbool.m4 @@ -1,6 +1,6 @@ # Check for stdbool.h that conforms to C99. -dnl Copyright (C) 2002-2006, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/stddef_h.m4 b/m4/stddef_h.m4 index f45def10..979e3cf7 100644 --- a/m4/stddef_h.m4 +++ b/m4/stddef_h.m4 @@ -1,6 +1,6 @@ dnl A placeholder for <stddef.h>, for platforms that have issues. -# stddef_h.m4 serial 5 -dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. +# stddef_h.m4 serial 6 +dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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,13 +10,33 @@ AC_DEFUN([gl_STDDEF_H], AC_REQUIRE([gl_STDDEF_H_DEFAULTS]) AC_REQUIRE([gt_TYPE_WCHAR_T]) STDDEF_H= - AC_CHECK_TYPE([max_align_t], [], [HAVE_MAX_ALIGN_T=0; STDDEF_H=stddef.h], - [[#include <stddef.h> - ]]) + + dnl Test whether the type max_align_t exists and whether its alignment + dnl "is as great as is supported by the implementation in all contexts". + AC_CACHE_CHECK([for good max_align_t], + [gl_cv_type_max_align_t], + [AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#include <stddef.h> + unsigned int s = sizeof (max_align_t); + #if defined __GNUC__ || defined __IBM__ALIGNOF__ + int check1[2 * (__alignof__ (double) <= __alignof__ (max_align_t)) - 1]; + int check2[2 * (__alignof__ (long double) <= __alignof__ (max_align_t)) - 1]; + #endif + ]])], + [gl_cv_type_max_align_t=yes], + [gl_cv_type_max_align_t=no]) + ]) + if test $gl_cv_type_max_align_t = no; then + HAVE_MAX_ALIGN_T=0 + STDDEF_H=stddef.h + fi + if test $gt_cv_c_wchar_t = no; then HAVE_WCHAR_T=0 STDDEF_H=stddef.h fi + AC_CACHE_CHECK([whether NULL can be used in arbitrary expressions], [gl_cv_decl_null_works], [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stddef.h> @@ -28,6 +48,7 @@ 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 diff --git a/m4/stdint.m4 b/m4/stdint.m4 index 4bf3e474..11d8e8e5 100644 --- a/m4/stdint.m4 +++ b/m4/stdint.m4 @@ -1,5 +1,5 @@ -# stdint.m4 serial 51 -dnl Copyright (C) 2001-2017 Free Software Foundation, Inc. +# stdint.m4 serial 53 +dnl Copyright (C) 2001-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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,8 @@ 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_PREREQ([2.61]) + AC_DEFUN_ONCE([gl_STDINT_H], [ AC_PREREQ([2.59])dnl @@ -364,8 +366,7 @@ int32_t i32 = INT32_C (0x7fffffff); esac dnl The substitute stdint.h needs the substitute limit.h's _GL_INTEGER_WIDTH. - LIMITS_H=limits.h - AM_CONDITIONAL([GL_GENERATE_LIMITS_H], [test -n "$LIMITS_H"]) + gl_REPLACE_LIMITS_H AC_SUBST([HAVE_C99_STDINT_H]) AC_SUBST([HAVE_SYS_BITYPES_H]) @@ -541,9 +542,3 @@ AC_DEFUN([gl_STDINT_TYPE_PROPERTIES], BITSIZEOF_WINT_T=32 fi ]) - -dnl Autoconf >= 2.61 has AC_COMPUTE_INT built-in. -dnl Remove this when we can assume autoconf >= 2.61. -m4_ifdef([AC_COMPUTE_INT], [], [ - AC_DEFUN([AC_COMPUTE_INT], [_AC_COMPUTE_INT([$2],[$1],[$3],[$4])]) -]) diff --git a/m4/stdint_h.m4 b/m4/stdint_h.m4 index 786eaa3c..6d5f1af0 100644 --- a/m4/stdint_h.m4 +++ b/m4/stdint_h.m4 @@ -1,5 +1,5 @@ # stdint_h.m4 serial 9 -dnl Copyright (C) 1997-2004, 2006, 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 1997-2004, 2006, 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/stdio_h.m4 b/m4/stdio_h.m4 index 9ffbb852..6c9c1040 100644 --- a/m4/stdio_h.m4 +++ b/m4/stdio_h.m4 @@ -1,5 +1,5 @@ -# stdio_h.m4 serial 48 -dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. +# stdio_h.m4 serial 49 +dnl Copyright (C) 2007-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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,7 +28,7 @@ AC_DEFUN([gl_STDIO_H], /* For non-mingw systems, compilation will trivially succeed. For mingw, compilation will succeed for older mingw (system printf, "I64d") and fail for newer mingw (gnu printf, "lld"). */ - #if ((defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__) && \ + #if (defined _WIN32 && ! defined __CYGWIN__) && \ (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)) extern char PRIdMAX_probe[sizeof PRIdMAX == sizeof "I64d" ? 1 : -1]; #endif diff --git a/m4/stdlib_h.m4 b/m4/stdlib_h.m4 index 35373463..cf064284 100644 --- a/m4/stdlib_h.m4 +++ b/m4/stdlib_h.m4 @@ -1,5 +1,5 @@ -# stdlib_h.m4 serial 44 -dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. +# stdlib_h.m4 serial 45 +dnl Copyright (C) 2007-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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,9 @@ AC_DEFUN([gl_STDLIB_H], dnl guaranteed by C89. gl_WARN_ON_USE_PREPARE([[#include <stdlib.h> #if HAVE_SYS_LOADAVG_H +/* OpenIndiana has a bug: <sys/time.h> must be included before + <sys/loadavg.h>. */ +# include <sys/time.h> # include <sys/loadavg.h> #endif #if HAVE_RANDOM_H diff --git a/m4/stpcpy.m4 b/m4/stpcpy.m4 index 36865672..7af2e818 100644 --- a/m4/stpcpy.m4 +++ b/m4/stpcpy.m4 @@ -1,5 +1,5 @@ # stpcpy.m4 serial 8 -dnl Copyright (C) 2002, 2007, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2007, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/strcase.m4 b/m4/strcase.m4 index de20eb61..9baef789 100644 --- a/m4/strcase.m4 +++ b/m4/strcase.m4 @@ -1,5 +1,5 @@ # strcase.m4 serial 11 -dnl Copyright (C) 2002, 2005-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2005-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/strchrnul.m4 b/m4/strchrnul.m4 index 320d5fb6..93cf112e 100644 --- a/m4/strchrnul.m4 +++ b/m4/strchrnul.m4 @@ -1,5 +1,5 @@ # strchrnul.m4 serial 9 -dnl Copyright (C) 2003, 2007, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2003, 2007, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/strdup.m4 b/m4/strdup.m4 index a92dbd63..82d74202 100644 --- a/m4/strdup.m4 +++ b/m4/strdup.m4 @@ -1,6 +1,6 @@ # strdup.m4 serial 13 -dnl Copyright (C) 2002-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, diff --git a/m4/strerror.m4 b/m4/strerror.m4 index 279efd60..b452f7f8 100644 --- a/m4/strerror.m4 +++ b/m4/strerror.m4 @@ -1,5 +1,5 @@ -# strerror.m4 serial 18 -dnl Copyright (C) 2002, 2007-2017 Free Software Foundation, Inc. +# strerror.m4 serial 19 +dnl Copyright (C) 2002, 2007-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -24,10 +24,10 @@ AC_DEFUN([gl_FUNC_STRERROR], [gl_cv_func_working_strerror=yes], [gl_cv_func_working_strerror=no], [case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_working_strerror="guessing yes" ;; - # If we don't know, assume the worst. - *) gl_cv_func_working_strerror="guessing no" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_working_strerror="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_working_strerror="guessing no" ;; esac ]) ]) @@ -78,12 +78,12 @@ AC_DEFUN([gl_FUNC_STRERROR_0], [gl_cv_func_strerror_0_works=yes], [gl_cv_func_strerror_0_works=no], [case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_strerror_0_works="guessing yes" ;; - # Guess yes on native Windows. - mingw*) gl_cv_func_strerror_0_works="guessing yes" ;; - # If we don't know, assume the worst. - *) gl_cv_func_strerror_0_works="guessing no" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_strerror_0_works="guessing yes" ;; + # Guess yes on native Windows. + mingw*) gl_cv_func_strerror_0_works="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_strerror_0_works="guessing no" ;; esac ]) ]) diff --git a/m4/string_h.m4 b/m4/string_h.m4 index 8c42cf1b..0c0e3a71 100644 --- a/m4/string_h.m4 +++ b/m4/string_h.m4 @@ -1,6 +1,6 @@ # Configure a GNU-like replacement for <string.h>. -# Copyright (C) 2007-2017 Free Software Foundation, Inc. +# Copyright (C) 2007-2019 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. diff --git a/m4/strings_h.m4 b/m4/strings_h.m4 index 1163a632..76128cfb 100644 --- a/m4/strings_h.m4 +++ b/m4/strings_h.m4 @@ -1,7 +1,7 @@ # Configure a replacement for <strings.h>. # serial 6 -# Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2007, 2009-2019 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. diff --git a/m4/strndup.m4 b/m4/strndup.m4 index 7a28f21c..325af5d1 100644 --- a/m4/strndup.m4 +++ b/m4/strndup.m4 @@ -1,5 +1,5 @@ # strndup.m4 serial 22 -dnl Copyright (C) 2002-2003, 2005-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2003, 2005-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/strnlen.m4 b/m4/strnlen.m4 index bf050271..c283c3ec 100644 --- a/m4/strnlen.m4 +++ b/m4/strnlen.m4 @@ -1,5 +1,5 @@ # strnlen.m4 serial 13 -dnl Copyright (C) 2002-2003, 2005-2007, 2009-2017 Free Software Foundation, +dnl Copyright (C) 2002-2003, 2005-2007, 2009-2019 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/strtoimax.m4 b/m4/strtoimax.m4 index 61809c8b..9632279a 100644 --- a/m4/strtoimax.m4 +++ b/m4/strtoimax.m4 @@ -1,5 +1,5 @@ # strtoimax.m4 serial 15 -dnl Copyright (C) 2002-2004, 2006, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2004, 2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/strtol.m4 b/m4/strtol.m4 index a45e128c..3ba3b552 100644 --- a/m4/strtol.m4 +++ b/m4/strtol.m4 @@ -1,5 +1,5 @@ # strtol.m4 serial 6 -dnl Copyright (C) 2002-2003, 2006, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2003, 2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/strtoll.m4 b/m4/strtoll.m4 index 9c2a9034..3ba7e223 100644 --- a/m4/strtoll.m4 +++ b/m4/strtoll.m4 @@ -1,5 +1,5 @@ # strtoll.m4 serial 7 -dnl Copyright (C) 2002, 2004, 2006, 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2004, 2006, 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/strtoul.m4 b/m4/strtoul.m4 index b0eea6a2..46d11081 100644 --- a/m4/strtoul.m4 +++ b/m4/strtoul.m4 @@ -1,5 +1,5 @@ # strtoul.m4 serial 5 -dnl Copyright (C) 2002, 2006, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/strtoull.m4 b/m4/strtoull.m4 index c6b21507..532139c5 100644 --- a/m4/strtoull.m4 +++ b/m4/strtoull.m4 @@ -1,5 +1,5 @@ # strtoull.m4 serial 7 -dnl Copyright (C) 2002, 2004, 2006, 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2004, 2006, 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/strtoumax.m4 b/m4/strtoumax.m4 index 43ef5b5a..89b503f2 100644 --- a/m4/strtoumax.m4 +++ b/m4/strtoumax.m4 @@ -1,5 +1,5 @@ # strtoumax.m4 serial 12 -dnl Copyright (C) 2002-2004, 2006, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2004, 2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/symlink.m4 b/m4/symlink.m4 index 220ea192..508e94dd 100644 --- a/m4/symlink.m4 +++ b/m4/symlink.m4 @@ -1,7 +1,7 @@ -# serial 6 +# serial 8 # See if we need to provide symlink replacement. -dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -36,10 +36,12 @@ AC_DEFUN([gl_FUNC_SYMLINK], ]])], [gl_cv_func_symlink_works=yes], [gl_cv_func_symlink_works=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" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_symlink_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_symlink_works="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_symlink_works="guessing no" ;; esac ]) rm -f conftest.f conftest.link conftest.lnk2]) diff --git a/m4/symlinkat.m4 b/m4/symlinkat.m4 index b1a8a993..99ff2580 100644 --- a/m4/symlinkat.m4 +++ b/m4/symlinkat.m4 @@ -1,7 +1,7 @@ -# serial 7 +# serial 9 # See if we need to provide symlinkat replacement. -dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -37,10 +37,12 @@ AC_DEFUN([gl_FUNC_SYMLINKAT], [gl_cv_func_symlinkat_works=yes], [gl_cv_func_symlinkat_works=no], [case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_symlinkat_works="guessing yes" ;; - # If we don't know, assume the worst. - *) gl_cv_func_symlinkat_works="guessing no" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_symlinkat_works="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu* | gnu*) gl_cv_func_symlinkat_works="guessing yes" ;; + # If we don't know, assume the worst. + *) gl_cv_func_symlinkat_works="guessing no" ;; esac ]) rm -f conftest.f conftest.link conftest.lnk2]) diff --git a/m4/sys_socket_h.m4 b/m4/sys_socket_h.m4 index 3ecbe7c0..1ea7b0b3 100644 --- a/m4/sys_socket_h.m4 +++ b/m4/sys_socket_h.m4 @@ -1,5 +1,5 @@ # sys_socket_h.m4 serial 23 -dnl Copyright (C) 2005-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2005-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/sys_stat_h.m4 b/m4/sys_stat_h.m4 index 89342789..361ac3fc 100644 --- a/m4/sys_stat_h.m4 +++ b/m4/sys_stat_h.m4 @@ -1,5 +1,5 @@ # sys_stat_h.m4 serial 31 -*- Autoconf -*- -dnl Copyright (C) 2006-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2006-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/sys_time_h.m4 b/m4/sys_time_h.m4 index 1c8c3cfc..3d9233aa 100644 --- a/m4/sys_time_h.m4 +++ b/m4/sys_time_h.m4 @@ -1,7 +1,7 @@ # Configure a replacement for <sys/time.h>. # serial 9 -# Copyright (C) 2007, 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2007, 2009-2019 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. diff --git a/m4/sys_types_h.m4 b/m4/sys_types_h.m4 index 75097713..be065590 100644 --- a/m4/sys_types_h.m4 +++ b/m4/sys_types_h.m4 @@ -1,5 +1,5 @@ # sys_types_h.m4 serial 9 -dnl Copyright (C) 2011-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2011-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/sysexits.m4 b/m4/sysexits.m4 index 64deb70e..1e9f171b 100644 --- a/m4/sysexits.m4 +++ b/m4/sysexits.m4 @@ -1,5 +1,5 @@ # sysexits.m4 serial 6 -dnl Copyright (C) 2003, 2005, 2007, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2003, 2005, 2007, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/tempname.m4 b/m4/tempname.m4 index a59f4c08..664a6322 100644 --- a/m4/tempname.m4 +++ b/m4/tempname.m4 @@ -1,6 +1,6 @@ #serial 5 -# Copyright (C) 2006-2007, 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2006-2007, 2009-2019 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. diff --git a/m4/time_h.m4 b/m4/time_h.m4 index 28e22092..f08f29b3 100644 --- a/m4/time_h.m4 +++ b/m4/time_h.m4 @@ -1,6 +1,6 @@ # Configure a more-standard replacement for <time.h>. -# Copyright (C) 2000-2001, 2003-2007, 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2000-2001, 2003-2007, 2009-2019 Free Software Foundation, Inc. # serial 11 diff --git a/m4/time_r.m4 b/m4/time_r.m4 index 3e24ccb2..5caeca75 100644 --- a/m4/time_r.m4 +++ b/m4/time_r.m4 @@ -1,6 +1,6 @@ dnl Reentrant time functions: localtime_r, gmtime_r. -dnl Copyright (C) 2003, 2006-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2003, 2006-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/time_rz.m4 b/m4/time_rz.m4 index 3991118b..5564559c 100644 --- a/m4/time_rz.m4 +++ b/m4/time_rz.m4 @@ -1,6 +1,6 @@ dnl Time zone functions: tzalloc, localtime_rz, etc. -dnl Copyright (C) 2015-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2015-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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,39 @@ AC_DEFUN([gl_TIME_RZ], AC_REQUIRE([gl_HEADER_TIME_H_DEFAULTS]) AC_REQUIRE([AC_STRUCT_TIMEZONE]) + # Mac OS X 10.6 loops forever with some time_t values. + # See Bug#27706, Bug#27736, and + # https://lists.gnu.org/r/bug-gnulib/2017-07/msg00142.html + AC_CACHE_CHECK([whether localtime loops forever near extrema], + [gl_cv_func_localtime_infloop_bug], + [gl_cv_func_localtime_infloop_bug=no + AC_RUN_IFELSE( + [AC_LANG_PROGRAM( + [[#include <stdlib.h> + #include <string.h> + #include <unistd.h> + #include <time.h> + ]], [[ + time_t t = -67768038400666600; + struct tm *tm; + char *tz = getenv ("TZ"); + if (! (tz && strcmp (tz, "QQQ0") == 0)) + return 0; + alarm (2); + tm = localtime (&t); + /* Use TM and *TM to suppress over-optimization. */ + return tm && tm->tm_isdst; + ]])], + [(TZ=QQQ0 ./conftest$EXEEXT) >/dev/null 2>&1 || + gl_cv_func_localtime_infloop_bug=yes], + [], + [gl_cv_func_localtime_infloop_bug="guessing no"])]) + if test "$gl_cv_func_localtime_infloop_bug" = yes; then + AC_DEFINE([HAVE_LOCALTIME_INFLOOP_BUG], 1, + [Define if localtime-like functions can loop forever on + extreme arguments.]) + fi + AC_CHECK_TYPES([timezone_t], [], [], [[#include <time.h>]]) if test "$ac_cv_type_timezone_t" = yes; then HAVE_TIMEZONE_T=1 diff --git a/m4/timegm.m4 b/m4/timegm.m4 index 1f18552e..d9d40de6 100644 --- a/m4/timegm.m4 +++ b/m4/timegm.m4 @@ -1,5 +1,5 @@ # timegm.m4 serial 12 -dnl Copyright (C) 2003, 2007, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2003, 2007, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/timespec.m4 b/m4/timespec.m4 index c901468e..3db9943a 100644 --- a/m4/timespec.m4 +++ b/m4/timespec.m4 @@ -1,6 +1,6 @@ #serial 15 -# Copyright (C) 2000-2001, 2003-2007, 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2000-2001, 2003-2007, 2009-2019 Free Software Foundation, Inc. # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff --git a/m4/tm_gmtoff.m4 b/m4/tm_gmtoff.m4 index 32db008d..31b841fe 100644 --- a/m4/tm_gmtoff.m4 +++ b/m4/tm_gmtoff.m4 @@ -1,5 +1,5 @@ # tm_gmtoff.m4 serial 3 -dnl Copyright (C) 2002, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/tzset.m4 b/m4/tzset.m4 index 11ceeabe..12788015 100644 --- a/m4/tzset.m4 +++ b/m4/tzset.m4 @@ -1,6 +1,6 @@ -# serial 10 +# serial 11 -# Copyright (C) 2003, 2007, 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2003, 2007, 2009-2019 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. @@ -68,12 +68,12 @@ main () [gl_cv_func_tzset_clobber=no], [gl_cv_func_tzset_clobber=yes], [case "$host_os" in - # Guess all is fine on glibc systems. - *-gnu*) gl_cv_func_tzset_clobber="guessing no" ;; - # Guess no on native Windows. - mingw*) gl_cv_func_tzset_clobber="guessing no" ;; - # If we don't know, assume the worst. - *) gl_cv_func_tzset_clobber="guessing yes" ;; + # Guess all is fine on glibc systems. + *-gnu* | gnu*) gl_cv_func_tzset_clobber="guessing no" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_tzset_clobber="guessing no" ;; + # If we don't know, assume the worst. + *) gl_cv_func_tzset_clobber="guessing yes" ;; esac ]) ]) diff --git a/m4/unistd-safer.m4 b/m4/unistd-safer.m4 index 7a3e4c52..5e2a1bed 100644 --- a/m4/unistd-safer.m4 +++ b/m4/unistd-safer.m4 @@ -1,5 +1,5 @@ #serial 9 -dnl Copyright (C) 2002, 2005-2006, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002, 2005-2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/unistd_h.m4 b/m4/unistd_h.m4 index 60e7ea4d..a04055d2 100644 --- a/m4/unistd_h.m4 +++ b/m4/unistd_h.m4 @@ -1,5 +1,5 @@ -# unistd_h.m4 serial 71 -dnl Copyright (C) 2006-2017 Free Software Foundation, Inc. +# unistd_h.m4 serial 74 +dnl Copyright (C) 2006-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -37,13 +37,13 @@ AC_DEFUN([gl_UNISTD_H], # include <fcntl.h> # include <stdio.h> # include <stdlib.h> -# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ +# if defined _WIN32 && ! defined __CYGWIN__ # include <io.h> # endif #endif ]], [chdir chown dup dup2 dup3 environ euidaccess faccessat fchdir fchownat fdatasync fsync ftruncate getcwd getdomainname getdtablesize getgroups - gethostname getlogin getlogin_r getpagesize + gethostname getlogin getlogin_r getpagesize getpass getusershell setusershell endusershell group_member isatty lchown link linkat lseek pipe pipe2 pread pwrite readlink readlinkat rmdir sethostname sleep symlink symlinkat @@ -83,6 +83,7 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS], GNULIB_GETLOGIN=0; AC_SUBST([GNULIB_GETLOGIN]) GNULIB_GETLOGIN_R=0; AC_SUBST([GNULIB_GETLOGIN_R]) GNULIB_GETPAGESIZE=0; AC_SUBST([GNULIB_GETPAGESIZE]) + GNULIB_GETPASS=0; AC_SUBST([GNULIB_GETPASS]) GNULIB_GETUSERSHELL=0; AC_SUBST([GNULIB_GETUSERSHELL]) GNULIB_GROUP_MEMBER=0; AC_SUBST([GNULIB_GROUP_MEMBER]) GNULIB_ISATTY=0; AC_SUBST([GNULIB_ISATTY]) @@ -126,6 +127,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_GETPASS=1; AC_SUBST([HAVE_GETPASS]) HAVE_GROUP_MEMBER=1; AC_SUBST([HAVE_GROUP_MEMBER]) HAVE_LCHOWN=1; AC_SUBST([HAVE_LCHOWN]) HAVE_LINK=1; AC_SUBST([HAVE_LINK]) @@ -140,7 +142,6 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS], HAVE_SLEEP=1; AC_SUBST([HAVE_SLEEP]) HAVE_SYMLINK=1; AC_SUBST([HAVE_SYMLINK]) HAVE_SYMLINKAT=1; AC_SUBST([HAVE_SYMLINKAT]) - HAVE_TRUNCATE=1; AC_SUBST([HAVE_TRUNCATE]) HAVE_UNLINKAT=1; AC_SUBST([HAVE_UNLINKAT]) HAVE_USLEEP=1; AC_SUBST([HAVE_USLEEP]) HAVE_DECL_ENVIRON=1; AC_SUBST([HAVE_DECL_ENVIRON]) @@ -152,6 +153,7 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS], HAVE_DECL_GETPAGESIZE=1; AC_SUBST([HAVE_DECL_GETPAGESIZE]) HAVE_DECL_GETUSERSHELL=1; AC_SUBST([HAVE_DECL_GETUSERSHELL]) HAVE_DECL_SETHOSTNAME=1; AC_SUBST([HAVE_DECL_SETHOSTNAME]) + HAVE_DECL_TRUNCATE=1; AC_SUBST([HAVE_DECL_TRUNCATE]) HAVE_DECL_TTYNAME_R=1; AC_SUBST([HAVE_DECL_TTYNAME_R]) HAVE_OS_H=0; AC_SUBST([HAVE_OS_H]) HAVE_SYS_PARAM_H=0; AC_SUBST([HAVE_SYS_PARAM_H]) @@ -168,6 +170,7 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS], REPLACE_GETLOGIN_R=0; AC_SUBST([REPLACE_GETLOGIN_R]) REPLACE_GETGROUPS=0; AC_SUBST([REPLACE_GETGROUPS]) REPLACE_GETPAGESIZE=0; AC_SUBST([REPLACE_GETPAGESIZE]) + REPLACE_GETPASS=0; AC_SUBST([REPLACE_GETPASS]) REPLACE_ISATTY=0; AC_SUBST([REPLACE_ISATTY]) REPLACE_LCHOWN=0; AC_SUBST([REPLACE_LCHOWN]) REPLACE_LINK=0; AC_SUBST([REPLACE_LINK]) diff --git a/m4/unlink.m4 b/m4/unlink.m4 index ac86e7fe..69fd1af7 100644 --- a/m4/unlink.m4 +++ b/m4/unlink.m4 @@ -1,5 +1,5 @@ -# unlink.m4 serial 12 -dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. +# unlink.m4 serial 13 +dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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,12 +43,14 @@ AC_DEFUN([gl_FUNC_UNLINK], [gl_cv_func_unlink_honors_slashes=yes], [gl_cv_func_unlink_honors_slashes=no], [case "$host_os" in - # Guess yes on glibc systems. - *-gnu*) gl_cv_func_unlink_honors_slashes="guessing yes" ;; - # Guess no on native Windows. - mingw*) gl_cv_func_unlink_honors_slashes="guessing no" ;; - # If we don't know, assume the worst. - *) gl_cv_func_unlink_honors_slashes="guessing no" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_unlink_honors_slashes="guessing yes" ;; + # Guess yes on glibc systems. + *-gnu*) gl_cv_func_unlink_honors_slashes="guessing yes" ;; + # Guess no on native Windows. + mingw*) gl_cv_func_unlink_honors_slashes="guessing no" ;; + # If we don't know, assume the worst. + *) gl_cv_func_unlink_honors_slashes="guessing no" ;; esac ]) rm -f conftest.file conftest.lnk]) diff --git a/m4/unlinkat.m4 b/m4/unlinkat.m4 index ca46c21d..8a1e2758 100644 --- a/m4/unlinkat.m4 +++ b/m4/unlinkat.m4 @@ -1,5 +1,5 @@ # unlinkat.m4 serial 2 -dnl Copyright (C) 2004-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2004-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/unlinkdir.m4 b/m4/unlinkdir.m4 index abee7ccd..7a9c0273 100644 --- a/m4/unlinkdir.m4 +++ b/m4/unlinkdir.m4 @@ -1,6 +1,6 @@ # serial 7 -# Copyright (C) 2005-2007, 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2005-2007, 2009-2019 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff --git a/m4/unlocked-io.m4 b/m4/unlocked-io.m4 index 448ccac2..ea55a1a2 100644 --- a/m4/unlocked-io.m4 +++ b/m4/unlocked-io.m4 @@ -1,6 +1,6 @@ # unlocked-io.m4 serial 15 -# Copyright (C) 1998-2006, 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 1998-2006, 2009-2019 Free Software Foundation, Inc. # # This file is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, diff --git a/m4/utime.m4 b/m4/utime.m4 index 7d4a6032..ddd4ee15 100644 --- a/m4/utime.m4 +++ b/m4/utime.m4 @@ -1,5 +1,5 @@ # utime.m4 serial 1 -dnl Copyright (C) 2017 Free Software Foundation, Inc. +dnl Copyright (C) 2017-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/utime_h.m4 b/m4/utime_h.m4 index 550f7642..b0950d01 100644 --- a/m4/utime_h.m4 +++ b/m4/utime_h.m4 @@ -1,5 +1,5 @@ -# utime_h.m4 serial 1 -dnl Copyright (C) 2017 Free Software Foundation, Inc. +# utime_h.m4 serial 3 +dnl Copyright (C) 2017-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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,7 @@ AC_DEFUN([gl_UTIME_H], [ AC_REQUIRE([AC_CANONICAL_HOST]) AC_REQUIRE([gl_UTIME_H_DEFAULTS]) + m4_ifdef([gl_ANSI_CXX], [AC_REQUIRE([gl_ANSI_CXX])]) AC_CHECK_HEADERS_ONCE([utime.h]) gl_CHECK_NEXT_HEADERS([utime.h]) @@ -20,17 +21,25 @@ AC_DEFUN([gl_UTIME_H], fi AC_SUBST([HAVE_UTIME_H]) - UTIME_H='' - if test $ac_cv_header_utime_h != yes; then - dnl Provide a substitute <utime.h> file. - UTIME_H=utime.h - else - case "$host_os" in - mingw*) dnl Need special handling of 'struct utimbuf'. - UTIME_H=utime.h - ;; - esac - fi + m4_ifdef([gl_POSIXCHECK], + [UTIME_H=utime.h], + [UTIME_H='' + if m4_ifdef([gl_ANSI_CXX], [test "$CXX" != no], [false]); then + dnl Override <utime.h> always, to support the C++ GNULIB_NAMESPACE. + UTIME_H=utime.h + else + if test $ac_cv_header_utime_h != yes; then + dnl Provide a substitute <utime.h> file. + UTIME_H=utime.h + else + case "$host_os" in + mingw*) dnl Need special handling of 'struct utimbuf'. + UTIME_H=utime.h + ;; + esac + fi + fi + ]) AC_SUBST([UTIME_H]) AM_CONDITIONAL([GL_GENERATE_UTIME_H], [test -n "$UTIME_H"]) diff --git a/m4/utimens.m4 b/m4/utimens.m4 index f3feab38..dda86b09 100644 --- a/m4/utimens.m4 +++ b/m4/utimens.m4 @@ -1,9 +1,9 @@ -dnl Copyright (C) 2003-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2003-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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 8 +dnl serial 9 AC_DEFUN([gl_UTIMENS], [ @@ -31,10 +31,12 @@ AC_DEFUN([gl_UTIMENS], [gl_cv_func_futimesat_works=yes], [gl_cv_func_futimesat_works=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" ;; + # Guess yes on Linux systems. + linux-* | linux) gl_cv_func_futimesat_works="guessing yes" ;; + # 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]) diff --git a/m4/utimensat.m4 b/m4/utimensat.m4 index 78da3cc9..5628f8ef 100644 --- a/m4/utimensat.m4 +++ b/m4/utimensat.m4 @@ -1,7 +1,7 @@ # serial 6 # See if we need to provide utimensat replacement. -dnl Copyright (C) 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/utimes.m4 b/m4/utimes.m4 index 847b2eba..7209b6dd 100644 --- a/m4/utimes.m4 +++ b/m4/utimes.m4 @@ -1,7 +1,7 @@ # Detect some bugs in glibc's implementation of utimes. # serial 5 -dnl Copyright (C) 2003-2005, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2003-2005, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/vasnprintf.m4 b/m4/vasnprintf.m4 index 47c5951c..b763a3da 100644 --- a/m4/vasnprintf.m4 +++ b/m4/vasnprintf.m4 @@ -1,5 +1,5 @@ # vasnprintf.m4 serial 36 -dnl Copyright (C) 2002-2004, 2006-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2004, 2006-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/vasprintf.m4 b/m4/vasprintf.m4 index a75c6f18..cd96229c 100644 --- a/m4/vasprintf.m4 +++ b/m4/vasprintf.m4 @@ -1,5 +1,5 @@ # vasprintf.m4 serial 6 -dnl Copyright (C) 2002-2003, 2006-2007, 2009-2017 Free Software Foundation, +dnl Copyright (C) 2002-2003, 2006-2007, 2009-2019 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/version-etc.m4 b/m4/version-etc.m4 index c099101f..4b2c4ffa 100644 --- a/m4/version-etc.m4 +++ b/m4/version-etc.m4 @@ -1,5 +1,5 @@ # version-etc.m4 serial 1 -# Copyright (C) 2009-2017 Free Software Foundation, Inc. +# Copyright (C) 2009-2019 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. diff --git a/m4/vsnprintf.m4 b/m4/vsnprintf.m4 index 9c37bca9..739c9048 100644 --- a/m4/vsnprintf.m4 +++ b/m4/vsnprintf.m4 @@ -1,5 +1,5 @@ # vsnprintf.m4 serial 7 -dnl Copyright (C) 2002-2004, 2007-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2004, 2007-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/warn-on-use.m4 b/m4/warn-on-use.m4 index 25ce7378..7ebe2d31 100644 --- a/m4/warn-on-use.m4 +++ b/m4/warn-on-use.m4 @@ -1,11 +1,13 @@ -# warn-on-use.m4 serial 5 -dnl Copyright (C) 2010-2017 Free Software Foundation, Inc. +# warn-on-use.m4 serial 6 +dnl Copyright (C) 2010-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. # gl_WARN_ON_USE_PREPARE(INCLUDES, NAMES) # --------------------------------------- +# If the module 'posixcheck' is in use: +# # For each whitespace-separated element in the list of NAMES, define # HAVE_RAW_DECL_name if the function has a declaration among INCLUDES # even after being undefined as a macro. @@ -23,25 +25,27 @@ dnl with or without modifications, as long as this notice is preserved. # needing gl_WARN_ON_USE_PREPARE. AC_DEFUN([gl_WARN_ON_USE_PREPARE], [ - m4_foreach_w([gl_decl], [$2], - [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 + m4_ifdef([gl_POSIXCHECK], + [m4_foreach_w([gl_decl], [$2], + [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], - gl_Symbol, - [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$1], + 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], + gl_Symbol, + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([$1], [@%:@undef $gl_func (void) $gl_func;])], - [AS_VAR_SET(gl_Symbol, [yes])], [AS_VAR_SET(gl_Symbol, [no])])]) - 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]) - AS_VAR_POPDEF([gl_Symbol])dnl - done + [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]) + 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]) + AS_VAR_POPDEF([gl_Symbol])dnl + done + ]) ]) diff --git a/m4/warnings.m4 b/m4/warnings.m4 index 870472b6..235cac61 100644 --- a/m4/warnings.m4 +++ b/m4/warnings.m4 @@ -1,5 +1,5 @@ -# warnings.m4 serial 13 -dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. +# warnings.m4 serial 14 +dnl Copyright (C) 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -76,6 +76,15 @@ m4_defun([gl_UNKNOWN_WARNINGS_ARE_ERRORS(C++)], AC_LANG_POP([C++]) ]) +# Specialization for _AC_LANG = Objective C. This macro can be AC_REQUIREd. +# Use of m4_defun rather than AC_DEFUN works around a bug in autoconf < 2.63b. +m4_defun([gl_UNKNOWN_WARNINGS_ARE_ERRORS(Objective C)], +[ + AC_LANG_PUSH([Objective C]) + gl_UNKNOWN_WARNINGS_ARE_ERRORS_IMPL + AC_LANG_POP([Objective C]) +]) + AC_DEFUN([gl_UNKNOWN_WARNINGS_ARE_ERRORS_IMPL], [gl_COMPILER_OPTION_IF([-Werror -Wunknown-warning-option], [gl_unknown_warnings_are_errors='-Wunknown-warning-option -Werror'], diff --git a/m4/wchar_h.m4 b/m4/wchar_h.m4 index d09ea08c..cd20e7a0 100644 --- a/m4/wchar_h.m4 +++ b/m4/wchar_h.m4 @@ -1,13 +1,13 @@ dnl A placeholder for ISO C99 <wchar.h>, for platforms that have issues. -dnl Copyright (C) 2007-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2007-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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 42 +# wchar_h.m4 serial 43 AC_DEFUN([gl_WCHAR_H], [ @@ -90,7 +90,8 @@ int main () { return zero(); } dnl that the object file has the latter name from the start. save_ac_compile="$ac_compile" ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest1/` - if AC_TRY_EVAL([ac_compile]); then + if echo '#include "conftest.c"' >conftest1.c && + AC_TRY_EVAL([ac_compile]); then AC_LANG_CONFTEST([ AC_LANG_SOURCE([[#define wcstod renamed_wcstod /* Tru64 with Desktop Toolkit C has a bug: <stdio.h> must be included before @@ -105,7 +106,8 @@ int zero (void) { return 0; } ]])]) dnl See note above about renaming object files. ac_compile=`echo "$save_ac_compile" | sed s/conftest/conftest2/` - if AC_TRY_EVAL([ac_compile]); then + if echo '#include "conftest.c"' >conftest2.c && + AC_TRY_EVAL([ac_compile]); then if $CC -o conftest$ac_exeext $CFLAGS $LDFLAGS conftest1.$ac_objext conftest2.$ac_objext $LIBS >&AS_MESSAGE_LOG_FD 2>&1; then : else @@ -114,7 +116,7 @@ int zero (void) { return 0; } fi fi ac_compile="$save_ac_compile" - rm -f conftest1.$ac_objext conftest2.$ac_objext conftest$ac_exeext + rm -f conftest[12].c conftest[12].$ac_objext conftest$ac_exeext ]) if test $gl_cv_header_wchar_h_correct_inline = no; then AC_MSG_ERROR([<wchar.h> cannot be used with this compiler ($CC $CFLAGS $CPPFLAGS). diff --git a/m4/wchar_t.m4 b/m4/wchar_t.m4 index 11783d29..5db58152 100644 --- a/m4/wchar_t.m4 +++ b/m4/wchar_t.m4 @@ -1,5 +1,5 @@ # wchar_t.m4 serial 4 (gettext-0.18.2) -dnl Copyright (C) 2002-2003, 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2003, 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/wcrtomb.m4 b/m4/wcrtomb.m4 index fcc3f8c8..f4f37f56 100644 --- a/m4/wcrtomb.m4 +++ b/m4/wcrtomb.m4 @@ -1,5 +1,5 @@ -# wcrtomb.m4 serial 12 -dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. +# wcrtomb.m4 serial 13 +dnl Copyright (C) 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -34,8 +34,8 @@ AC_DEFUN([gl_FUNC_WCRTOMB], if test $REPLACE_MBSTATE_T = 1; then REPLACE_WCRTOMB=1 else - dnl On AIX 4.3, OSF/1 5.1 and Solaris 10, wcrtomb (NULL, 0, NULL) sometimes - dnl returns 0 instead of 1. + dnl On AIX 4.3, OSF/1 5.1 and Solaris <= 11.3, wcrtomb (NULL, 0, NULL) + dnl sometimes returns 0 instead of 1. AC_REQUIRE([AC_PROG_CC]) AC_REQUIRE([gt_LOCALE_FR]) AC_REQUIRE([gt_LOCALE_FR_UTF8]) diff --git a/m4/wctype_h.m4 b/m4/wctype_h.m4 index 596f26b5..6903d758 100644 --- a/m4/wctype_h.m4 +++ b/m4/wctype_h.m4 @@ -2,7 +2,7 @@ dnl A placeholder for ISO C99 <wctype.h>, for platforms that lack it. -dnl Copyright (C) 2006-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2006-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/wcwidth.m4 b/m4/wcwidth.m4 index 12436063..baa20029 100644 --- a/m4/wcwidth.m4 +++ b/m4/wcwidth.m4 @@ -1,5 +1,5 @@ -# wcwidth.m4 serial 25 -dnl Copyright (C) 2006-2017 Free Software Foundation, Inc. +# wcwidth.m4 serial 27 +dnl Copyright (C) 2006-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. @@ -98,9 +98,9 @@ int main () [ changequote(,)dnl case "$host_os" in - # Guess yes on glibc and AIX 7 systems. - *-gnu* | aix[7-9]*) gl_cv_func_wcwidth_works="guessing yes";; - *) gl_cv_func_wcwidth_works="guessing no";; + # Guess yes on glibc and AIX 7 systems. + *-gnu* | gnu* | aix[7-9]*) gl_cv_func_wcwidth_works="guessing yes";; + *) gl_cv_func_wcwidth_works="guessing no";; esac changequote([,])dnl ]) @@ -115,3 +115,9 @@ changequote([,])dnl 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. ]) + +# Prerequisites of lib/wcwidth.c. +AC_DEFUN([gl_PREREQ_WCWIDTH], [ + AC_REQUIRE([AC_C_INLINE]) + : +]) diff --git a/m4/wint_t.m4 b/m4/wint_t.m4 index d30b8bcf..61e8a23d 100644 --- a/m4/wint_t.m4 +++ b/m4/wint_t.m4 @@ -1,5 +1,5 @@ # wint_t.m4 serial 7 -dnl Copyright (C) 2003, 2007-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2003, 2007-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/write.m4 b/m4/write.m4 index 2f4a2353..34cb42ea 100644 --- a/m4/write.m4 +++ b/m4/write.m4 @@ -1,5 +1,5 @@ # write.m4 serial 6 -dnl Copyright (C) 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/xalloc.m4 b/m4/xalloc.m4 index 53aba149..dfff9431 100644 --- a/m4/xalloc.m4 +++ b/m4/xalloc.m4 @@ -1,5 +1,5 @@ # xalloc.m4 serial 18 -dnl Copyright (C) 2002-2006, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/xgetcwd.m4 b/m4/xgetcwd.m4 index e261a628..c7e5e014 100644 --- a/m4/xgetcwd.m4 +++ b/m4/xgetcwd.m4 @@ -1,5 +1,5 @@ #serial 8 -dnl Copyright (C) 2002-2006, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/xsize.m4 b/m4/xsize.m4 index 5f850577..f2898ba1 100644 --- a/m4/xsize.m4 +++ b/m4/xsize.m4 @@ -1,5 +1,5 @@ # xsize.m4 serial 5 -dnl Copyright (C) 2003-2004, 2008-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2003-2004, 2008-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/xstrndup.m4 b/m4/xstrndup.m4 index efb94a1a..32dc51be 100644 --- a/m4/xstrndup.m4 +++ b/m4/xstrndup.m4 @@ -1,5 +1,5 @@ # xstrndup.m4 serial 2 -dnl Copyright (C) 2003, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2003, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/xstrtol.m4 b/m4/xstrtol.m4 index 035588ea..ee86a563 100644 --- a/m4/xstrtol.m4 +++ b/m4/xstrtol.m4 @@ -1,5 +1,5 @@ #serial 11 -dnl Copyright (C) 2002-2007, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2002-2007, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, dnl with or without modifications, as long as this notice is preserved. diff --git a/m4/xvasprintf.m4 b/m4/xvasprintf.m4 index b7ce7b52..c6a7f7c8 100644 --- a/m4/xvasprintf.m4 +++ b/m4/xvasprintf.m4 @@ -1,5 +1,5 @@ # xvasprintf.m4 serial 2 -dnl Copyright (C) 2006, 2009-2017 Free Software Foundation, Inc. +dnl Copyright (C) 2006, 2009-2019 Free Software Foundation, Inc. dnl This file is free software; the Free 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/po/Makefile.in.in b/po/Makefile.in.in index 38c293d2..69155a75 100644 --- a/po/Makefile.in.in +++ b/po/Makefile.in.in @@ -1,5 +1,6 @@ # Makefile for PO directory in any package using GNU gettext. -# Copyright (C) 1995-1997, 2000-2007, 2009-2010 by Ulrich Drepper <drepper@gnu.ai.mit.edu> +# Copyright (C) 1995-2000 Ulrich Drepper <drepper@gnu.ai.mit.edu> +# Copyright (C) 2000-2019 Free Software Foundation, Inc. # # Copying and distribution of this file, with or without modification, # are permitted in any medium without royalty provided the copyright @@ -232,13 +233,15 @@ $(POFILES): $(POFILESDEPS) if test -f "$(srcdir)/$${lang}.po"; then \ test -f $(srcdir)/$(DOMAIN).pot || $(MAKE) $(srcdir)/$(DOMAIN).pot; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ - echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot"; \ + echo "$${cdcmd}$(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot"; \ cd $(srcdir) \ && { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].*) \ $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) $${lang}.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --previous $${lang}.po $(DOMAIN).pot;; \ *) \ - $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} $${lang}.po $(DOMAIN).pot;; \ + $(MSGMERGE_UPDATE) $(MSGMERGE_OPTIONS) --lang=$${lang} --previous $${lang}.po $(DOMAIN).pot;; \ esac; \ }; \ else \ @@ -373,6 +376,8 @@ check: all info dvi ps pdf html tags TAGS ctags CTAGS ID: +install-dvi install-ps install-pdf install-html: + mostlyclean: rm -f remove-potcdate.sed rm -f stamp-poT @@ -439,13 +444,15 @@ update-po: Makefile tmpdir=`pwd`; \ echo "$$lang:"; \ test "$(srcdir)" = . && cdcmd="" || cdcmd="cd $(srcdir) && "; \ - echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ + echo "$${cdcmd}$(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang --previous $$lang.po $(DOMAIN).pot -o $$lang.new.po"; \ cd $(srcdir); \ if { case `$(MSGMERGE) --version | sed 1q | sed -e 's,^[^0-9]*,,'` in \ - '' | 0.[0-9] | 0.[0-9].* | 0.1[0-7] | 0.1[0-7].*) \ + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-5] | 0.1[0-5].*) \ $(MSGMERGE) $(MSGMERGE_OPTIONS) -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + 0.1[6-7] | 0.1[6-7].*) \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ *) \ - $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ + $(MSGMERGE) $(MSGMERGE_OPTIONS) --lang=$$lang --previous -o $$tmpdir/$$lang.new.po $$lang.po $(DOMAIN).pot;; \ esac; \ }; then \ if cmp $$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \ diff --git a/po/POTFILES.in b/po/POTFILES.in index 21bc9a67..8fac9f34 100644 --- a/po/POTFILES.in +++ b/po/POTFILES.in @@ -1,7 +1,6 @@ # List of files which contain translatable strings. -# Copyright 1996, 1999-2000, 2003-2005, 2007, 2013-2014, 2016-2017 Free -# Software Foundation, Inc. +# Copyright 1996-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/po/bg.gmo b/po/bg.gmo index 4aa0f25860eb37e90dfe006a24882e60d5e50adc..4bdf73e2a0c1440075519993af993fae00874d89 100644 GIT binary patch literal 87513 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 delta 19165 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 diff --git a/po/bg.po b/po/bg.po index 34cc57a0..04ebe59a 100644 --- a/po/bg.po +++ b/po/bg.po @@ -1,23 +1,19 @@ -# Bulgarian translation of GNU tar -# Message catalog for coreutils -# Copyright (C) 2006 Free Software Foundation, Inc. -# This file is distributed under the same license as GNU tar. -# Anton Zinoviev <zinoviev@debian.org>, 2000,2006. +# Bulgarian translation of GNU tar po-file. +# Copyright (C) 2006, 2018 Free Software Foundation, Inc. +# This file is distributed under the same license as the tar package. +# Anton Zinoviev <zinoviev@debian.org>, 2000, 2006. +# Alexander Shopov <ash@kambanaria.org>, 2018. # # WARNING: Everywhere NUMBER is translated as N rather than as БРОЙ or ЧИСЛО -# -# 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:1599 +#: src/create.c:1598 msgid "" msgstr "" -"Project-Id-Version: tar 1.16\n" +"Project-Id-Version: tar 1.30\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\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" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" +"PO-Revision-Date: 2018-10-23 22:00+0200\n" +"Last-Translator: Alexander Shopov <ash@kambanaria.org>\n" +"Language-Team: Bulgarian <dict@ludost.net>\n" "Language: bg\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -28,36 +24,36 @@ msgstr "" #: gnu/argmatch.c:134 #, c-format msgid "invalid argument %s for %s" -msgstr "неправилен аргумент %s за %s" +msgstr "аргументът „%s“ на опцията „%s“ е неправилен" #: gnu/argmatch.c:135 #, c-format msgid "ambiguous argument %s for %s" -msgstr "двусмислен аргумент %s за %s" +msgstr "аргументът „%s“ на опцията „%s“ не е еднозначен" #: gnu/argmatch.c:154 msgid "Valid arguments are:" -msgstr "Допустими аргументи са:" +msgstr "Възможните аргументи са:" #: gnu/argp-help.c:148 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" -msgstr "ARGP_HELP_FMT: стойността %s е по-малка или равна на %s" +msgstr "„ARGP_HELP_FMT“: стойността %s е по-малка или равна на %s" #: gnu/argp-help.c:224 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" -msgstr "%.*s: параметърът ARGP_HELP_FMT изисква стойност" +msgstr "%.*s: параметърът „ARGP_HELP_FMT“ изисква стойност" #: gnu/argp-help.c:234 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" -msgstr "%.*s: непознат параметър ARGP_HELP_FMT" +msgstr "%.*s: непознат параметър „ARGP_HELP_FMT“" #: gnu/argp-help.c:247 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" -msgstr "Боклук в ARGP_HELP_FMT: %s" +msgstr "Грешки в „ARGP_HELP_FMT“: %s" #: gnu/argp-help.c:1228 msgid "" @@ -77,12 +73,12 @@ msgstr " или: " #: gnu/argp-help.c:1631 msgid " [OPTION...]" -msgstr " [ОПЦИЯ...]" +msgstr " [ОПЦИЯ…]" #: gnu/argp-help.c:1658 -#, fuzzy, c-format +#, c-format msgid "Try '%s --help' or '%s --usage' for more information.\n" -msgstr "Използвайте „%s --help“ or „%s --usage“ за повече информация.\n" +msgstr "За повече информация използвайте „%s --help“ или „%s --usage“.\n" #: gnu/argp-help.c:1686 #, c-format @@ -93,32 +89,32 @@ msgstr "" #: gnu/argp-help.c:1887 gnu/error.c:195 msgid "Unknown system error" -msgstr "Непозната системна грешка" +msgstr "Неизвестна системна грешка" #: gnu/argp-parse.c:81 msgid "give this help list" -msgstr "показва тази справка" +msgstr "извеждане на тази справка" #: gnu/argp-parse.c:82 msgid "give a short usage message" -msgstr "показва кратко съобщение за използването" +msgstr "извеждане на кратко съобщение за използването" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "ИМЕ" #: gnu/argp-parse.c:84 msgid "set the program name" -msgstr "посочва името на програмата" +msgstr "задаване на името на програмата" #: gnu/argp-parse.c:85 msgid "SECS" -msgstr "СЕК" +msgstr "СЕКУНДИ" #: gnu/argp-parse.c:86 msgid "hang for SECS seconds (default 3600)" -msgstr "спира за СЕК секунди (подразбира се 3600)" +msgstr "спиране за толкова СЕКУНДИ (стандартно е 3600)" #: gnu/argp-parse.c:143 msgid "print program version" @@ -126,7 +122,7 @@ msgstr "показва версията на програмата" #: gnu/argp-parse.c:160 msgid "(PROGRAM ERROR) No version known!?" -msgstr "(ДЕФЕКТ В ПРОГРАМАТА) Не е известна версията!?" +msgstr "(ДЕФЕКТ В ПРОГРАМАТА) Неизвестна версия!" #: gnu/argp-parse.c:613 #, c-format @@ -135,60 +131,60 @@ msgstr "%s: Твърде много аргументи\n" #: gnu/argp-parse.c:759 msgid "(PROGRAM ERROR) Option should have been recognized!?" -msgstr "(ДЕФЕКТ В ПРОГРАМАТА) Опцията би трябвало да е била разпозната!?" +msgstr "(ДЕФЕКТ В ПРОГРАМАТА) Опцията би трябвало да е била разпозната!" #: gnu/closeout.c:122 msgid "write error" -msgstr "" +msgstr "грешка при запис" #: gnu/getopt.c:278 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous\n" -msgstr "%s: опцията „%s“ е двусмислена\n" +msgstr "%s: опцията „%s%s“ не е еднозначна\n" #: gnu/getopt.c:284 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" -msgstr "%s: опцията „%s“ е двусмислена\n" +msgstr "%s: опцията „%s%s“ не е еднозначна. Възможности:" #: gnu/getopt.c:319 -#, fuzzy, c-format +#, c-format msgid "%s: unrecognized option '%s%s'\n" -msgstr "%s: непозната опция „%c%s“\n" +msgstr "%s: непозната опция „%s%s“\n" #: gnu/getopt.c:345 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" -msgstr "%s: опцията „%c%s“ не допуска аргумент\n" +msgstr "%s: опцията „%s%s“ се използва без аргументи\n" #: gnu/getopt.c:360 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' requires an argument\n" -msgstr "%s: опцията „%s“ изисква аргумент\n" +msgstr "%s: опцията „%s%s“ изисква аргумент\n" #: gnu/getopt.c:621 -#, fuzzy, c-format +#, c-format msgid "%s: invalid option -- '%c'\n" -msgstr "%s: неправилна опция -- %c\n" +msgstr "%s: неправилна опция — „%c“\n" #: gnu/getopt.c:636 gnu/getopt.c:682 -#, fuzzy, c-format +#, c-format msgid "%s: option requires an argument -- '%c'\n" -msgstr "%s: опцията изисква аргумент -- %c\n" +msgstr "%s: опцията изисква аргумент — „%c“\n" #: gnu/obstack.c:338 gnu/obstack.c:340 gnu/xalloc-die.c:34 msgid "memory exhausted" msgstr "паметта е изчерпана" #: gnu/openat-die.c:38 -#, fuzzy, c-format +#, c-format msgid "unable to record current working directory" -msgstr "Не може да се смени работният каталог" +msgstr "не може да се запише коя е текущата работна директория" #: gnu/openat-die.c:57 -#, fuzzy, c-format +#, c-format msgid "failed to return to initial working directory" -msgstr "Не може да се запази работният каталог" +msgstr "не може да се върне към първоначалната работна директория" #. TRANSLATORS: #. Get translations for open and closing quotation marks. @@ -227,7 +223,7 @@ msgstr "“" #. locale -k LC_MESSAGES | grep '^yesexpr=' #: gnu/rpmatch.c:150 msgid "^[yY]" -msgstr "^[дДoOyY]" +msgstr "^[yYдДщЩ]" #. TRANSLATORS: A regular expression testing for a negative answer #. (english: "no"). Testing the first character may be sufficient. @@ -237,26 +233,26 @@ msgstr "^[дДoOyY]" #. locale -k LC_MESSAGES | grep '^noexpr=' #: gnu/rpmatch.c:163 msgid "^[nN]" -msgstr "^[нНkKnN]" +msgstr "^[nNнНхХ]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" -msgstr "" +msgstr "Пакетирано от %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" -msgstr "" +msgstr "Пакетирано от %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: gnu/version-etc.c:84 +#: gnu/version-etc.c:83 msgid "(C)" -msgstr "" +msgstr "©" -#: gnu/version-etc.c:86 +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -265,24 +261,33 @@ msgid "" "There is NO WARRANTY, to the extent permitted by law.\n" "\n" msgstr "" +"\n" +"Лиценз — Общ публичен лиценз на GNU (GNU GPL), както е публикуван от " +"Фондацията\n" +"за свободен софтуер — версия 3 на лиценза или (по ваше решение) по-късна " +"версия.\n" +"<https://gnu.org/licenses/gpl.html>\n" +"Тази програма е свободен софтуер. Можете да я разпространявате и/или " +"променяте.\n" +"Тя се разпространява БЕЗ НИКАКВИ ГАРАНЦИИ доколкото е позволено от закона.\n" #. TRANSLATORS: %s denotes an author name. #: gnu/version-etc.c:102 #, c-format msgid "Written by %s.\n" -msgstr "" +msgstr "Създадено от %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: gnu/version-etc.c:106 #, c-format msgid "Written by %s and %s.\n" -msgstr "" +msgstr "Създадено от %s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: gnu/version-etc.c:110 #, c-format msgid "Written by %s, %s, and %s.\n" -msgstr "" +msgstr "Създадено от %s, %s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies @@ -293,6 +298,8 @@ msgid "" "Written by %s, %s, %s,\n" "and %s.\n" msgstr "" +"Създадено от %s, %s, %s\n" +"и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies @@ -303,6 +310,8 @@ msgid "" "Written by %s, %s, %s,\n" "%s, and %s.\n" msgstr "" +"Създадено от %s, %s, %s,\n" +"%s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies @@ -313,6 +322,8 @@ msgid "" "Written by %s, %s, %s,\n" "%s, %s, and %s.\n" msgstr "" +"Създадено от %s, %s, %s,\n" +"%s, %s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies @@ -323,6 +334,8 @@ msgid "" "Written by %s, %s, %s,\n" "%s, %s, %s, and %s.\n" msgstr "" +"Създадено от %s, %s, %s,\n" +"%s, %s, %s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies @@ -334,6 +347,9 @@ msgid "" "%s, %s, %s, %s,\n" "and %s.\n" msgstr "" +"Създадено от %s, %s, %s,\n" +"%s, %s, %s, %s\n" +"и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies @@ -345,6 +361,9 @@ msgid "" "%s, %s, %s, %s,\n" "%s, and %s.\n" msgstr "" +"Създадено от %s, %s, %s,\n" +"%s, %s, %s, %s,\n" +"%s и %s.\n" #. TRANSLATORS: Each %s denotes an author name. #. You can use line breaks, estimating that each author name occupies @@ -356,40 +375,42 @@ msgid "" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" +"Създадено от %s, %s, %s,\n" +"%s, %s, %s, %s,\n" +"%s, %s и др.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying #. "Report translation bugs to <...>\n" with the address for translation #. bugs (typically your translation team's web or email address). #: gnu/version-etc.c:245 -#, fuzzy, c-format +#, c-format msgid "" "\n" "Report bugs to: %s\n" msgstr "" -"Съобщавайте за програмни грешки на %s.\n" -"За грешки в българския превод на <dict@fsa-bg.org>.\n" +"\n" +"Докладвайте грешки в програмата на адрес: %s\n" +"Докладвайте грешки в превода на адрес: <dict@ludost.net>\n" #: gnu/version-etc.c:247 -#, fuzzy, c-format +#, c-format msgid "Report %s bugs to: %s\n" -msgstr "" -"Съобщавайте за програмни грешки на %s.\n" -"За грешки в българския превод на <dict@fsa-bg.org>.\n" +msgstr "Докладвайте грешки в „%s“ на адрес: %s\n" #: gnu/version-etc.c:251 #, c-format msgid "%s home page: <%s>\n" -msgstr "" +msgstr "Уеб страница на „%s“: <%s>\n" #: gnu/version-etc.c:253 #, c-format msgid "%s home page: <https://www.gnu.org/software/%s/>\n" -msgstr "" +msgstr "Уеб страница на „%s“: <https://www.gnu.org/software/%s/>\n" #: gnu/version-etc.c:256 msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n" -msgstr "" +msgstr "Обща помощ за програмите на GNU: <https://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 @@ -398,7 +419,7 @@ msgstr "" #: lib/paxerror.c:60 lib/paxerror.c:73 #, c-format msgid "%s: Cannot %s" -msgstr "%s: Функцията %s не успя" +msgstr "%s: неуспешно изпълнение на функцията „%s“" #. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. #. Directly translating this to another language will not work, first because @@ -407,83 +428,83 @@ msgstr "%s: Функцията %s не успя" #: lib/paxerror.c:86 #, c-format msgid "%s: Warning: Cannot %s" -msgstr "%s: Внимание: Функцията %s не успя" +msgstr "%s: ВНИМАНИЕ: неуспешно изпълнение на функцията „%s“" #: lib/paxerror.c:95 #, c-format msgid "%s: Cannot change mode to %s" -msgstr "%s: Режимът за достъп не може да се смени на %s" +msgstr "%s: неуспешна смяна на режима за достъп на %s" #: lib/paxerror.c:103 #, c-format msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Собствеността не може да се смени на потребител %lu, група %lu" +msgstr "%s: неуспешна смяна на собствеността на потребител %lu, група %lu" #: lib/paxerror.c:129 #, c-format msgid "%s: Cannot hard link to %s" -msgstr "%s: Не може да се направи твърда връзка с %s" +msgstr "%s: неуспешно създаване на твърда връзка към „%s“" #: lib/paxerror.c:181 lib/paxerror.c:213 #, 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: Грешка при четене при байт %s, при четенето на %lu байт" -msgstr[1] "%s: Грешка при четене при байт %s, при четенето на %lu байта" +msgstr[0] "%s: грешка при четене при байт %s, при четенето на %lu байт" +msgstr[1] "%s: грешка при четене при байт %s, при четенето на %lu байта" #: lib/paxerror.c:194 #, 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: Внимание: Грешка при четене при байт %s, при четенето на %lu байт" +"%s: ВНИМАНИЕ: грешка при четене при байт %s, при четенето на %lu байт" msgstr[1] "" -"%s: Внимание: Грешка при четене при байт %s, при четенето на %lu байта" +"%s: ВНИМАНИЕ: грешка при четене при байт %s, при четенето на %lu байта" #: lib/paxerror.c:261 #, c-format msgid "%s: Cannot seek to %s" -msgstr "%s: Не може да се отиде на отместване %s във файла" +msgstr "%s: неуспешно позициониране към отместване %s във файла" #: lib/paxerror.c:277 #, c-format msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Внимание: Не може да се отиде на отместване %s във файла" +msgstr "%s: ВНИМАНИЕ: неуспешно позициониране към отместване %s във файла" #: lib/paxerror.c:286 #, c-format msgid "%s: Cannot create symlink to %s" -msgstr "%s: Не може да се направи символна връзка към %s" +msgstr "%s: неуспешно създаване на символна връзка към %s" #: lib/paxerror.c:351 #, c-format msgid "%s: Wrote only %lu of %lu byte" msgid_plural "%s: Wrote only %lu of %lu bytes" -msgstr[0] "%s: Записани са само %lu от %lu байт" -msgstr[1] "%s: Записани са само %lu от %lu байта" +msgstr[0] "%s: записани са само %lu от %lu байт" +msgstr[1] "%s: записани са само %lu от %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 msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Услугата не е достъпна" +msgstr "exec/tcp: услугата не е достъпна" #: lib/rtapelib.c:303 #, c-format @@ -498,578 +519,573 @@ msgstr "стандартен изход" #: lib/rtapelib.c:429 #, c-format msgid "Cannot connect to %s: resolve failed" -msgstr "" +msgstr "Неуспешно свързване към „%s“: адресът не може да се открие" #: lib/rtapelib.c:502 -#, fuzzy, c-format +#, c-format msgid "Cannot redirect files for remote shell" -msgstr "Не може да се стартира отдалечена командна обвивка" +msgstr "Неуспешно пренасочване на файлове за отдалечена командна обвивка" #: lib/rtapelib.c:516 #, c-format msgid "Cannot execute remote shell" -msgstr "Не може да се стартира отдалечена командна обвивка" +msgstr "Неуспешно стартиране на отдалечена командна обвивка" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" -msgstr "Посоката за отместване е недопустима" +msgstr "Посоката за отместване е извън допустимия диапазон" -#: rmt/rmt.c:438 -#, fuzzy +#: rmt/rmt.c:442 msgid "Invalid seek direction" -msgstr "На опция е подаден неправилен режим" +msgstr "Неправилна посока за търсене" -#: rmt/rmt.c:446 -#, fuzzy +#: rmt/rmt.c:450 msgid "Invalid seek offset" -msgstr "Неправилен размер: %s" +msgstr "Неправилно отместване при търсене" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Мястото за позициониране е извън допустимия диапазон" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 -#, fuzzy +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" -msgstr "Неправилна дължина на лента" +msgstr "Неправилен брой байтове" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 -#, fuzzy +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" -msgstr "Мястото за позициониране е извън допустимия диапазон" +msgstr "Броят байтове е извън допустимия диапазон" -#: rmt/rmt.c:558 -#, fuzzy +#: rmt/rmt.c:562 msgid "Premature eof" -msgstr "rmtd: Преждевременен край (eof)\n" +msgstr "Преждевременен край (EOF)" -#: rmt/rmt.c:601 -#, fuzzy +#: rmt/rmt.c:605 msgid "Invalid operation code" -msgstr "Вид основно действие:" +msgstr "Неправилен код на действие" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" -msgstr "" +msgstr "Действието не се поддържа" -#: rmt/rmt.c:664 -#, fuzzy +#: rmt/rmt.c:668 msgid "Unexpected arguments" -msgstr "Неочакван EOF" +msgstr "Неочаквани аргументи" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 msgid "Manipulate a tape drive, accepting commands from a remote process" msgstr "" +"Управление на устройство за магнитна лента, като се приемат команди от " +"отдалечен процес" -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "N" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" -msgstr "" +msgstr "ниво за изчистване на грешки" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "ФАЙЛ" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" -msgstr "" +msgstr "задаване на файл за изхода за изчистване на грешки" -#: rmt/rmt.c:715 rmt/rmt.c:783 -#, fuzzy, c-format +#: rmt/rmt.c:719 rmt/rmt.c:787 +#, c-format msgid "cannot open %s" -msgstr "Не може да се отвори „%s“" +msgstr "„%s“ не може да се отвори" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" -msgstr "твърде много аргументи" +msgstr "прекалено много аргументи" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Непозната команда" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" -msgstr "Това не прилича на tar-архив" +msgstr "Това не прилича на архив на „tar“" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Общо прочетени байтове" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Общо записани байтове" -#: src/buffer.c:593 -#, fuzzy +#: src/buffer.c:595 msgid "Total bytes deleted" -msgstr "Общо изтрити байтове: %s\n" +msgstr "Общо изтрити байтове" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(канал)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "" +"Отказ за изчитане на съдържанието на архива от терминала (дали не сте " +"пропуснали опцията „-f“?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "" +"Отказ за записването на съдържанието на архива от терминала (дали не сте " +"пропуснали опцията „-f“?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" -msgstr "Неправилна стойност на record_size" +msgstr "Неправилна стойност на „record_size“" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Не е посочено име на архив" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Не може да се проверяват архиви на стандартните вход/изход" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Архивът е компресиран. Използвайте опцията %s" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Не може да се актуализират компресирани архиви" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" -msgstr "В началото на лентата, край на изпълнението" +msgstr "В началото на лентата. Край на изпълнението" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" -msgstr "Твърде много грешки, край на изпълнението" +msgstr "Твърде много грешки. Край на изпълнението" -#: src/buffer.c:967 +#: src/buffer.c:969 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Размер на записа = %lu блок" msgstr[1] "Размер на записа = %lu блока" -#: src/buffer.c:988 +#: src/buffer.c:990 #, 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:1075 +#: src/buffer.c:1077 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "" -"Невъзможно е връщане назад в архивния файл; той може да е нечитаем без опция " -"-i" +"Невъзможно е връщане назад в архивния файл — той може и да не се чете без " +"опция „-i“" -#: src/buffer.c:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" -msgstr "rmtlseek не завърши при граница на запис" +msgstr "„rmtlseek“ не завърши при граница на запис" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: съдържа неправилен номер на том" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Препълване на номера на том" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " -msgstr "Подгответе том №%d за %s и натиснете return: " +msgstr "Подгответе том №%d за %s и натиснете „Return“: " -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" -msgstr "EOF, когато се очакваше отговор от потребителя" +msgstr "EOF, а се очакваше отговор от потребителя" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "ВНИМАНИЕ: Архивът е незавършен" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, 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 име Посочва ново файлово име за следващия том и томовете след " -"него\n" -" q Прекратява tar\n" -" y или return Продължава изпълнението\n" +" n ИМЕ Задаване на ново име на файл име за следващите томове\n" +" q Прекратяване на изпълнението на „tar“\n" +" y/Return Продължаване на изпълнението\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" -msgstr " ! Поражда вторична командна обвивка\n" +msgstr " ! Стартиране на вторична командна обвивка\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" -msgstr " ? Извежда този списък\n" +msgstr " ? Извеждане на този списък\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" -msgstr "Няма повече томове; изход.\n" +msgstr "Няма повече томове — изход.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "Не е посочено име на файл. Опитайте отново.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" -msgstr "Неправилна команда. Използвайте ? за справка.\n" +msgstr "Неправилна команда. Използвайте „?“ за справка.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" -msgstr "командата %s не успя" +msgstr "неуспешно изпълнение на командата „%s“" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" -msgstr "%s не продължава с този том" +msgstr "„%s“ не продължава с този том" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "" -"%s вероятно продължава в този том: заглавният запис съдържа отрязано име" +"„%s“ вероятно продължава в този том: заглавният запис съдържа отрязано име" -#: src/buffer.c:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s е грешен размер (%s != %s + %s)" -#: src/buffer.c:1574 -#, fuzzy, c-format +#: src/buffer.c:1576 +#, c-format msgid "This volume is out of sequence (%s - %s != %s)" -msgstr "Този том е извън поредицата" +msgstr "Този том е извън поредицата (%s - %s != %s)" -#: src/buffer.c:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" -msgstr "Архивът не е етикетиран да отговаря на %s" +msgstr "Архивът не е етикетиран да отговаря на „%s“" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" -msgstr "Томът %s не съответства на %s" +msgstr "Томът „%s“ не съответства на „%s“" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "" "%s: името на файла е твърде дълго, за да се побере в заглавен запис на " -"многотомен ГНУ-архив и бе съкратено" +"многотомен архив на ГНУ и бе съкратено" -#: src/buffer.c:1965 -#, fuzzy +#: src/buffer.c:1962 msgid "write did not end on a block boundary" -msgstr "EOF на архив %s не е на границата на блок" +msgstr "записът не завърши на границата на блок" -#: src/compare.c:98 +#: src/compare.c:97 #, 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 байта можаха да се прочетат" +msgstr[0] "Само %lu от %lu байт би прочетен" +msgstr[1] "Само %lu от %lu байта бяха прочетени" -#: src/compare.c:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" -msgstr "Съдържанието се различава" +msgstr "Различно съдържание" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Неочакван знак за край (EOF) в архива" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" -msgstr "Файловите типове се различават" +msgstr "Различни видове файлове" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" -msgstr "Режимите за достъп се различават" +msgstr "Различни режими на достъп" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" -msgstr "Собствениците се различават" +msgstr "Различни идентификатори на собственици" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" -msgstr "Групите се различават" +msgstr "Различни идентификатори на групи" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" -msgstr "Времената на промяна се различават" +msgstr "Различни времена на промяна" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" -msgstr "Размерите се различават" +msgstr "Различни размери" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" -msgstr "Не е свързан с %s" +msgstr "Не е свързан с „%s“" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" -msgstr "Символните връзки се различават" +msgstr "Различни символни връзки" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" -msgstr "Номерата на устройство се различават" +msgstr "Различни номера на устройства" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Проверка" -#: src/compare.c:480 -#, fuzzy, c-format +#: src/compare.c:479 +#, c-format msgid "%s: Unknown file type '%c', diffed as normal file" -msgstr "%s: Непознат файлов тип „%c“, сравнява се като обикновен файл" +msgstr "%s: Непознат вид файл „%c“, сравнява се като обикновен файл" -#: src/compare.c:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." -msgstr "Архивът съдържа файлови имена, с отстранени префикси." +msgstr "Архивът съдържа файлови имена с отстранени префикси." -#: src/compare.c:541 -#, fuzzy +#: src/compare.c:540 msgid "Archive contains transformed file names." -msgstr "Архивът съдържа архаични заглавни записи по модул 64 (6 битови)" +msgstr "Архивът съдържа преобразувани имена на файлове." -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "Проверката може и да не открие оригиналните файлове." -#: src/compare.c:620 +#: src/compare.c:619 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" -msgstr[0] "НЕУСПЕШНА ПРОВЕРКА: открита е %d неправилен заглавен запис" +msgstr[0] "НЕУСПЕШНА ПРОВЕРКА: открит е %d неправилен заглавен запис" msgstr[1] "НЕУСПЕШНА ПРОВЕРКА: открити са %d неправилни заглавни записа" -#: src/compare.c:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "Изолиран блок от нули при %s" -#: src/create.c:74 -#, fuzzy, c-format +#: src/create.c:73 +#, c-format msgid "%s: contains a cache directory tag %s; %s" -msgstr "%s: каталогът е обозначен като кеш; не се архивира" +msgstr "%s: директорията съдържа етикет, че е кешираща — „%s“: %s" -#: src/create.c:263 +#: src/create.c:262 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" -msgstr "" -"стойността на %s е извън границите %s на диапазона %s..%s; замества се с %s" +msgstr "стойността %s е извън диапазона на „%s“: [%s; %s], замества се с „%s“" -#: src/create.c:269 +#: src/create.c:268 #, c-format msgid "value %s out of %s range %s..%s" -msgstr "стойността %s е извън границите %s на диапазона %s..%s" +msgstr "стойността %s е извън диапазона на „%s“: [%s; %s]" -#: src/create.c:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Генерират се отрицателни осмични заглавни записи" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, c-format msgid "%s: file name is too long (max %d); not dumped" -msgstr "%s: файловото име е твърде дълго (максимум %d); не е архивирано" +msgstr "" +"%s: името на файл е твърде дълго (максимум %d), затова той не се архивира" -#: src/create.c:616 +#: src/create.c:615 #, c-format msgid "%s: file name is too long (cannot be split); not dumped" msgstr "" -"%s: файловото име е твърде дълго (не може да се раздели); не е архивирано" +"%s: името на файл е твърде дълго (не може да се раздели), затова той не се " +"архивира" -#: src/create.c:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" -msgstr "%s: името на символната връзка е твърде дълго; не е архивирано" +msgstr "%s: името на символна връзка е твърде дълго, затова тя не се архивира" -#: src/create.c:1106 +#: src/create.c:1105 #, 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 байта; допълва се с нули" +msgstr[0] "%s: файлът намаля̀ с %s байт, допълва се с нула" +msgstr[1] "%s: файлът намаля̀ с %s байта, допълва се с нули" -#: src/create.c:1204 +#: src/create.c:1203 #, c-format msgid "%s: file is on a different filesystem; not dumped" -msgstr "%s: файлът е в друга файлова система; не се архивира" +msgstr "%s: файлът е в друга файлова система, затова той не се архивира" -#: src/create.c:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" -msgstr "" +msgstr "съдържанието не се архивира" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" -msgstr "%s: Непознат файлов тип; файлът се пренебрегва" +msgstr "%s: непознат вид файл, файлът се прескача" -#: src/create.c:1576 -#, fuzzy, c-format +#: src/create.c:1575 +#, c-format msgid "Missing links to %s." -msgstr "Неархивирани връзки с %s.\n" +msgstr "Липсват връзки към „%s“." -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" -msgstr "%s: файлът не е променен; не се архивира" +msgstr "%s: файлът не е променен, затова той не се архивира" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" -msgstr "%s: файлът е архив; не се архивира" +msgstr "%s: файлът е архив, затова той не се архивира" -#: src/create.c:1774 src/incremen.c:603 -#, fuzzy +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" -msgstr "%s: каталогът е обозначен като кеш; не се архивира" +msgstr "директорията не се архивира" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: файлът бе изменен по време на четене" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" -msgstr "%s: гнездото се пренебрегва" +msgstr "%s: гнездото се прескача" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" -msgstr "%s: пренебрегва се специалният файл тип door" +msgstr "%s: специалният файл тип „door“ се прескача" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" -msgstr "Пропуска се до следващия заглавен запис" +msgstr "Прескачане до следващия заглавен запис" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" -msgstr "Изтрива се незаглавен запис от архива" +msgstr "Изтриване на незаглавен запис от архива" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: записано е невероятно старо време %s" -#: src/extract.c:320 +#: src/extract.c:319 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: записано е време %s, което е %s сек. в бъдещето" -#: src/extract.c:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" -msgstr "%s: Неочаквана несъгласуваност при създаване на каталог" +msgstr "%s: неочаквана несъгласуваност при създаване на директория" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" -msgstr "" +msgstr "„%s“: пропускане на съществуващ файл" #: src/extract.c:901 #, c-format msgid "%s: Directory renamed before its status could be extracted" msgstr "" -"%s: каталогът бе преименуван преди да може да се извлече състоянието му" +"%s: директорията бе преименувана, преди да може да се извлече състоянието ѝ" #: src/extract.c:1086 msgid "Extracting contiguous files as regular files" -msgstr "Продължаващи файлове се извличат като обикновени файлове" +msgstr "" +"Последователно непрекъснатите файлове се извличат като обикновени файлове" #: src/extract.c:1433 msgid "Attempting extraction of symbolic links as hard links" -msgstr "Опитва се извличането на символни връзки като твърди" +msgstr "Опит за извличането на символни връзки като твърди" #: src/extract.c:1596 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" -msgstr "%s: Не може да се извлича -- файлът продължава с друг том" +msgstr "%s: невъзможно извличане — файлът продължава с друг том" -#: src/extract.c:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Неочаквано дълъг заглавен запис" #: src/extract.c:1610 -#, fuzzy, c-format +#, c-format msgid "%s: Unknown file type '%c', extracted as normal file" -msgstr "%s: Непознат файлов тип „%c“, извлича се като обикновен файл" +msgstr "%s: непознат вид файл „%c“, извлича се като обикновен файл" #: src/extract.c:1636 #, c-format msgid "Current %s is newer or same age" -msgstr "Текущият %s е по-нов или със същата възраст" +msgstr "Текущият файл „%s“ е по-нов или със същата възраст" #: src/extract.c:1664 #, c-format msgid "%s: Member name contains '..'" -msgstr "" +msgstr "„%s“: името на някой от елементите съдържа „..“" #: src/extract.c:1696 #, c-format msgid "%s: Was unable to backup this file" -msgstr "%s: Не можа да се направи резервно копие на този файл" +msgstr "%s: неуспешно създаване на резервно копие на този файл" #: src/extract.c:1845 #, c-format msgid "Cannot rename %s to %s" -msgstr "Бе невъзможно %s да се преименува на %s" +msgstr "Неуспешно преименуване на „%s“ към „%s“" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" -msgstr "%s: Каталогът бе преименуват от %s" +msgstr "%s: директорията бе преименувана от „%s“" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" -msgstr "%s: Каталогът е нов" +msgstr "%s: директорията е нова" -#: src/incremen.c:566 -#, fuzzy, c-format +#: src/incremen.c:565 +#, c-format msgid "%s: directory is on a different filesystem; not dumped" -msgstr "%s: файлът е в друга файлова система; не се архивира" +msgstr "%s: директорията е в друга файлова система и не се архивира" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" -msgstr "%s: Каталогът бе преименуван" +msgstr "%s: директорията бе преименувана" #: src/incremen.c:1003 src/incremen.c:1018 msgid "Invalid time stamp" msgstr "Записано е неправилно време" #: src/incremen.c:1047 -#, fuzzy msgid "Invalid modification time" -msgstr "Неправилно време на промяна (секунди)" +msgstr "Неправилно време на промяна" #: src/incremen.c:1057 msgid "Invalid modification time (nanoseconds)" @@ -1086,16 +1102,16 @@ msgstr "Неправилен номер на i-възел" #: src/incremen.c:1137 #, c-format msgid "%s: byte %s: %s %.*s... too long" -msgstr "" +msgstr "%s: байт %s: %s %.*s… твърде голяма дължина" #: src/incremen.c:1153 src/incremen.c:1211 src/incremen.c:1273 msgid "Unexpected EOF in snapshot file" -msgstr "Неочакван край на snapshot-файл" +msgstr "Неочакван край на файла за състоянието (snapshot)" #: src/incremen.c:1161 #, c-format msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x" -msgstr "" +msgstr "%s: байт %s: %s %s следван от неправилен байт 0x%02x" #: src/incremen.c:1174 #, c-format @@ -1103,16 +1119,18 @@ msgid "" "%s: byte %s: (valid range %s..%s)\n" "\t%s %s" msgstr "" +"%s: байт %s: (допустим диапазон: [%s; %s]\n" +" %s %s" #: src/incremen.c:1181 #, c-format msgid "%s: byte %s: %s %s" -msgstr "" +msgstr "%s: байт %s: %s %s" #: src/incremen.c:1262 #, c-format msgid "%s: byte %s: %s" -msgstr "" +msgstr "%s: байт %s: %s" #: src/incremen.c:1265 msgid "Missing record terminator" @@ -1130,455 +1148,468 @@ msgstr "Неподдържана версия на инкрементален ф #: src/incremen.c:1549 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" -msgstr "Лошо формиран dumpdir: очаква се „%c“, а вместо това има %#3o" +msgstr "" +"Неправилна секция за директориите (dumpdir): очаква се „%c“, а вместо това " +"бе получен %#3o" #: src/incremen.c:1559 msgid "Malformed dumpdir: 'X' duplicated" -msgstr "Лошо формиран dumpdir: „X“ е дублиран" +msgstr "Неправилна секция за директориите (dumpdir): „X“ се повтаря" #: src/incremen.c:1572 msgid "Malformed dumpdir: empty name in 'R'" -msgstr "Лошо формиран dumpdir: празно име в „R“" +msgstr "Неправилна секция за директориите (dumpdir): празно име в „R“" #: src/incremen.c:1585 -#, fuzzy msgid "Malformed dumpdir: 'T' not preceded by 'R'" -msgstr "Лошо формиран dumpdir: „T“ не се предхожда от „R“" +msgstr "" +"Неправилна секция за директориите (dumpdir): „T“ не се предхожда от „R“" #: src/incremen.c:1591 msgid "Malformed dumpdir: empty name in 'T'" -msgstr "Лошо формиран dumpdir: празно име в „T“" +msgstr "Неправилна секция за директориите (dumpdir): празно име в „T“" #: src/incremen.c:1611 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" -msgstr "Лошо формиран dumpdir: очаква се „%c“, вместо това данните свършват" +msgstr "" +"Неправилна секция за директориите (dumpdir): очаква се „%c“, вместо това " +"данните свършват" #: src/incremen.c:1618 msgid "Malformed dumpdir: 'X' never used" -msgstr "Лошо формиран dumpdir: „X“ никога не се използва" +msgstr "Неправилна секция за директориите (dumpdir): „X“ никога не се използва" #: src/incremen.c:1662 #, c-format msgid "Cannot create temporary directory using template %s" -msgstr "Не може да се създаде временен каталог, използвайки шаблона %s" +msgstr "Не може да се създаде временна директория по шаблона %s" #: src/incremen.c:1723 #, c-format msgid "%s: Not purging directory: unable to stat" -msgstr "%s: Каталогът не се изчиства: не може да се достъпи" +msgstr "%s: директорията няма да бъде изчистена, защото няма достъп до нея" #: src/incremen.c:1736 #, c-format msgid "%s: directory is on a different device: not purging" -msgstr "%s: каталогът е на друго устройство: не се изчиства" +msgstr "%s: директорията няма да бъде изчистена, защото е на друго устройство" #: src/incremen.c:1744 #, c-format msgid "%s: Deleting %s\n" -msgstr "%s: Изтрива се %s\n" +msgstr "%s: изтрива се %s\n" #: src/incremen.c:1749 #, c-format msgid "%s: Cannot remove" -msgstr "%s: Не може да се изтрие" +msgstr "%s: не може да се изтрие" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" -msgstr "%s: Пропуска се" +msgstr "%s: пропуска се" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" -msgstr "блок %s: ** Блок от знаци NUL **\n" +msgstr "блок %s: •• Блок от знаци NUL ••\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" -msgstr "блок %s: ** Край на файла **\n" +msgstr "блок %s: •• Край на файла ••\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "блок %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, c-format msgid "Blanks in header where numeric %s value expected" -msgstr "Интервали в заглавен запис вместо числова стойност на %s" +msgstr "Интервали в заглавен запис вместо числова стойност за %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" -"Осмичната стойност %.*s в архива е извън диапазона за %s; предполага се, че " -"е допълнение до две" +"Осмичната стойност %.*s в архива е извън диапазона за %s. Приема се, че е " +"допълнение до две" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Осмичната стойност %.*s в архива е извън диапазона за %s" -#: src/list.c:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" -msgstr "Архивът съдържа архаични заглавни записи по модул 64 (6 битови)" +msgstr "Архивът съдържа архаични заглавни записи по модул 64 (base-64)" -#: src/list.c:852 +#: src/list.c:853 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "" -"Архивът е подписан с низ по модул 64 %s, който е е извън диапазона за %s" +"Архивът е подписан с низ по модул 64 %s (base-64), който е е извън диапазона " +"за %s" -#: src/list.c:883 +#: src/list.c:884 #, c-format msgid "Archive base-256 value is out of %s range" -msgstr "Стойността по модул 256 в архива е извън диапазона %s" +msgstr "Стойността по модул 256 (base-256) в архива е извън диапазона %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, 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:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" -msgstr " връзка към %s\n" +msgstr " връзка към „%s“\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" -msgstr " непознат файлов тип %s\n" +msgstr " непознат вид файл %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" -msgstr "--Дълга връзка--\n" +msgstr "——Дълга връзка——\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" -msgstr "--Дълго име--\n" +msgstr "——Дълго име——\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" -msgstr "--Заглавен запис на тома--\n" +msgstr "——Заглавен запис на тома——\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" -msgstr "--Продължава при байт %s--\n" +msgstr "——Продължава при байт %s——\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" -msgstr "Създава се каталог:" +msgstr "Създава се директория:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" -msgstr "Преименува се %s на %s\n" +msgstr "„%s“ се преименува на „%s“\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" -msgstr "%s: Не може да се преименува на %s" +msgstr "%s: не може да се преименува на „%s“" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" -msgstr "Преименува се %s обратно на %s\n" +msgstr "„%s“ се преименува обратно на „%s“\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" -msgstr "%s: Файлът бе изтрит преди да бъде прочетен" +msgstr "%s: Файлът бе изтрит, преди да бъде прочетен" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "породен процес" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "междупроцесен канал" -#: src/names.c:69 -#, fuzzy +#: src/names.c:68 msgid "Local file name selection:" msgstr "Избор на локален файл:" -#: src/names.c:72 +#: src/names.c:71 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" -"добавя посочения ФАЙЛ към архива (полезно е, ако името му започва с минус)" +"добавяне на посочения ФАЙЛ към архива (полезно е, ако името му започва с „-“)" -#: src/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" -msgstr "КАТ" +msgstr "ДИРЕКТОРИЯ" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" -msgstr "работи в каталога КАТ" +msgstr "преминаване към ДИРЕКТОРИЯта" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" -msgstr "взема имената за извличане или създаване от ФАЙЛ" +msgstr "вземане на имената за извличане или създаване от ФАЙЛ" -#: src/names.c:78 -#, fuzzy +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" -msgstr "-T чете имена, завършващи с нулев байт" +msgstr "" +"„-T“ изчита имена на файлове, завършващи с нулев байт. Това задейства " +"опцията „--verbatim-files-from“" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" -msgstr "" +msgstr "изключване на ефекта от предходна опция „--null“" -#: src/names.c:83 -#, fuzzy +#: src/names.c:82 msgid "unquote input file or member names (default)" -msgstr "декодира „\\“ във файловите имена на -T (подразб.)" +msgstr "" +"декодиране на „\\“ на входния файл или имената на членовете (стандартно)" -#: src/names.c:85 -#, fuzzy +#: src/names.c:84 msgid "do not unquote input file or member names" -msgstr "не декодира „\\“ във файловите имена на -T" +msgstr "без декодиране на „\\“ на входния файл или имената на членовете" -#: src/names.c:87 +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" msgstr "" +"„-T“ изчита имената на файловете дословно, без екраниране или други обработки" -#: src/names.c:89 -#, fuzzy +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" -msgstr "декодира „\\“ във файловите имена на -T (подразб.)" +msgstr "" +"„-T“ зачита имена на файлове, започващи с тирета, като опции (стандартно)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" -msgstr "ОБРАЗЕЦ" +msgstr "ШАБЛОН" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" -msgstr "без файловете, отговарящи на ОБРАЗЕЦ" +msgstr "без файловете, отговарящи на ШАБЛОНа" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" -msgstr "пропуска файловете, отговарящи на образци в ФАЙЛ" +msgstr "пропускане на файловете, отговарящи на шаблоните във ФАЙЛа" -#: src/names.c:96 -#, fuzzy +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" -msgstr "без каталози, обозначени като кеширащи" +msgstr "" +"без директории, които съдържат етикет за кешираща директория („CACHEDIR." +"TAG“), с изключение на самия него" -#: src/names.c:99 -#, fuzzy +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" -msgstr "без каталози, обозначени като кеширащи" +msgstr "" +"без всичко под директориите, които съдържат етикет за кешираща директория " +"(„CACHEDIR.TAG“)" -#: src/names.c:102 -#, fuzzy +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" -msgstr "без каталози, обозначени като кеширащи" +msgstr "" +"без директории, които съдържат етикет за кешираща директория („CACHEDIR.TAG“)" -#: src/names.c:104 -#, fuzzy +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" -msgstr "без каталози, обозначени като кеширащи" +msgstr "без директории, които съдържат такъв ФАЙЛ, с изключение на самия ФАЙЛ" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "" +"изчитане на шаблоните за прескачане за всяка директория от зададения ФАЙЛ, " +"ако той съществува" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" msgstr "" +"изчитане на шаблоните за прескачане за всяка директория и поддиректориите ѝ " +"от зададения ФАЙЛ, ако той съществува" -#: src/names.c:113 -#, fuzzy +#: src/names.c:112 msgid "exclude everything under directories containing FILE" -msgstr "без каталози, обозначени като кеширащи" +msgstr "без всичко под директориите, които съдържат такъв ФАЙЛ" -#: src/names.c:115 -#, fuzzy +#: src/names.c:114 msgid "exclude directories containing FILE" -msgstr "без каталози, обозначени като кеширащи" +msgstr "без директории, които съдържат такъв ФАЙЛ" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" -msgstr "" +msgstr "прескачане на служебните директории за следене на версиите" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "" +"изчитане на шаблоните за прескачане от файла с пренебрегваните файлове от " +"системата за следене на версиите" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" -msgstr "" +msgstr "без заключващи файлове и резервни копия" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" -msgstr "влиза рекурсивно в подкаталозите (подразбира се)" +msgstr "рекурсивно обхождане на поддиректориите (стандартно)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" -msgstr "без автоматично влизане в подкаталозите" +msgstr "без рекурсивно обхождане на поддиректориите" -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -"Съпоставяне с файлови имена (влияе и на включващи, и на изключващи образци):" +"Съпоставяне с файлови имена (влияе и на включващи, и на изключващи шаблони):" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" -msgstr "съпоставянето с образците започва от началото на файловото име" +msgstr "съпоставянето с шаблоните започва от началото на файловото име" -#: src/names.c:135 -#, fuzzy +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" -msgstr "съпоставянето започва след кой да е „/“ (подразбира се при изключване)" +msgstr "" +"напасването се зачита след произволен знак „/“ (стандартно при изключване)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" -msgstr "пренебрегва разликата между големи/малки букви" +msgstr "без разлика между главни и малки букви" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" -msgstr "отчита се разликата между малки и големи букви (подразбира се)" +msgstr "с разлика между главни и малки букви (стандартно)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" -msgstr "ползва „*“ и „?“ (подразбира се за изключване)" +msgstr "използване на „*“ и „?“ (стандартно при прескачане)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" -msgstr "дословно низово сравнение" +msgstr "дословно сравнение на низове" -#: src/names.c:145 -#, fuzzy +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" -msgstr "„/“ пасва с „*“ и „?“ (подразб. за изключване)" +msgstr "„*“ и „?“ не напасват „/“ (стандартно при прескачане)" -#: src/names.c:147 -#, fuzzy +#: src/names.c:146 msgid "wildcards do not match '/'" -msgstr "„/“ не пасва с „*“ и „?“" +msgstr "„*“ и „?“ не напасват „/“" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" +"Използвали сте следните опции след задължителен аргумент в режим на " +"създаване или промяна на архив, но те са позиционни и се отнасят само за " +"аргументите, които ги следват. Преподредете ги." -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" -msgstr "" +msgstr "„-C %s“ няма ефект" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" -msgstr "" +msgstr "„--%s %s“ няма ефект" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" -msgstr "" +msgstr "„--%s“ няма ефект" -#: src/names.c:879 -#, fuzzy +#: src/names.c:878 msgid "command line" -msgstr "командата %s не успя" +msgstr "команден ред" -#: src/names.c:897 -#, fuzzy, c-format +#: src/names.c:896 +#, c-format msgid "%s: file list requested from %s already read from %s" -msgstr "%s: файловият списък вече е прочетен" +msgstr "%s: файловият списък заявен от „%s“ вече е прочетен от „%s“" -#: src/names.c:978 src/checkpoint.c:274 -#, fuzzy, c-format +#: src/names.c:977 src/checkpoint.c:308 +#, c-format msgid "cannot split string '%s': %s" -msgstr "не може да се смени времето на „%s“" +msgstr "низът „%s“ не може да се раздели: %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" -msgstr "%s: файловото име съдържа нулев байт" +msgstr "%s: името на файла съдържа нулев байт" -#: src/names.c:1358 -#, fuzzy +#: src/names.c:1388 msgid "Pattern matching characters used in file names" -msgstr "Във файловите имена са използвани „*“ и „?“. Моля," +msgstr "В имената на файловете са използвани шаблонни знаци („*“ или „?“)" -#: src/names.c:1360 -#, fuzzy +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" -msgstr "използвайте --wildcards, за да позволите съпоставяне с образци," +msgstr "" +"За напасване по шаблони използвайте „--wildcards“, а за подтискането на това " +"предупреждение — „--no--wildcards“" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" -msgstr "%s: Не е открит в архива" +msgstr "%s: не е открит в архива" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" -msgstr "%s: Необходимо срещане не е открито в архива" +msgstr "%s: необходимо срещане не е открито в архива" -#: src/names.c:1413 -#, fuzzy, c-format +#: src/names.c:1443 +#, c-format msgid "Archive label mismatch" -msgstr "Архивът не е етикетиран да отговаря на %s" +msgstr "Разлика в етикет на архива" -#: src/names.c:1717 +#: src/names.c:1747 msgid "" "Using -C option inside file list is not allowed with --listed-incremental" msgstr "" +"Опцията „-C“ в списък с файлове е несъвместима с опцията „--listed-" +"incremental“" -#: src/names.c:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" -msgstr "" +msgstr "Опцията „--listed-incremental“ позволява само една опция „-C“" -#: src/tar.c:88 -#, fuzzy, c-format +#: src/tar.c:87 +#, c-format msgid "Options '%s' and '%s' both want standard input" -msgstr "И двете опции „-%s“ и „-%s“ изискват стандартен вход" +msgstr "И двете опции — „%s“ и „%s“, изискват стандартен вход" -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" -msgstr "%s: Неправилен архивен формат" +msgstr "%s: Неправилен формат на архива" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" -msgstr "Поискани са ГНУ-възможности при несъвместим архивен формат" +msgstr "" +"Поискани са възможности поддържани от проекта ГНУ при несъвместим архивен " +"формат" -#: src/tar.c:265 -#, fuzzy, c-format +#: src/tar.c:264 +#, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." msgstr "" -"Непознат начин за извеждане на спец. знаци „%s“. Използвайте „%s --quoting-" -"style=help“, за да получите списък." +"Непознат начин на екраниране: „%s“. Използвайте „%s --quoting-style=help“, " +"за да получите списък." #: src/tar.c:354 -#, fuzzy msgid "" "GNU 'tar' saves many files together into a single tape or disk archive, and " "can restore individual files from the archive.\n" @@ -1588,17 +1619,16 @@ 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 "" -"„Tar“ на ГНУ запазва последователно много файлове в един лентов или дисков " -"архив и може да възстановява в последствие отделни файлове от архива.\n" +"Командата „tar“ на ГНУ запазва последователно много файлове в един лентов " +"или дисков\n" +"архив и може да възстановява впоследствие отделни файлове от архива.\n" "\n" "Примери:\n" -" tar -cf архив.tar дрън брън # Създава архив.tar от файловете дрън и брън\n" -" tar -tvf архив.tar # Изрежда подробно всички файлове в архив." -"tar\n" -" tar -xf архив.tar # Извлича от архив.tar всички файлове\n" +" tar -cf архив.tar дрън мрън # Създаване на архив.tar от „дрън“ и „мрън“\n" +" tar -tvf архив.tar # Подробно извеждане на всичко в архив.tar\n" +" tar -xf архив.tar # Извличане на всички файлове от архив.tar\n" #: src/tar.c:363 -#, 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 " @@ -1609,72 +1639,72 @@ msgid "" " nil, existing numbered if numbered backups exist, simple otherwise\n" " never, simple always make simple backups\n" msgstr "" -"Суфиксът за резервни копия е „~“, освен при промяна с --suffix или с\n" -"променлива от обкръжението SIMPLE_BACKUP_SUFFIX. Методът за управление на\n" -"версиите може да се посочва с --backup или с променливата VERSION_CONTROL.\n" +"Суфиксът за резервни копия е „~“, освен при промяна със „--suffix“ или с\n" +"променлива на средата „SIMPLE_BACKUP_SUFFIX“. Методът за управление на\n" +"версиите може да се посочва с „--backup“ или с променливата " +"„VERSION_CONTROL“.\n" "Допустими стойности са:\n" "\n" " none, off никога да не се правят резервни копия\n" " t, numbered да се правят номерирани резервни копия\n" -" nil, existing номерирани, ако вече са правени номерирани, а прости " -"иначе\n" +" nil, existing номерирани, ако вече има номерирани, иначе — прости\n" " never, simple винаги да се правят прости резервни копия\n" #: src/tar.c:393 msgid "Main operation mode:" -msgstr "Вид основно действие:" +msgstr "Основно действие:" #: src/tar.c:396 msgid "list the contents of an archive" -msgstr "изрежда съдържанието на архив" +msgstr "извеждане на съдържанието на архив" #: src/tar.c:398 msgid "extract files from an archive" -msgstr "извлича файлове от архива" +msgstr "извличане на файлове от архива" #: src/tar.c:401 msgid "create a new archive" -msgstr "създава нов архив" +msgstr "създаване на нов архив" #: src/tar.c:403 msgid "find differences between archive and file system" -msgstr "намира разликите между архива и файловата система" +msgstr "откриване на разликите между архива и файловата система" #: src/tar.c:406 msgid "append files to the end of an archive" -msgstr "добавя файлове в края на архив" +msgstr "добавяне на файлове в края на архив" #: src/tar.c:408 msgid "only append files newer than copy in archive" -msgstr "добавя само файлове, по-нови от копието в архива" +msgstr "добавяне само на файлове, по-нови от копието в архива" #: src/tar.c:410 msgid "append tar files to an archive" -msgstr "прибавя tar-файлове към архива" +msgstr "прибавяне на файлове във формат „tar“ към архива" #: src/tar.c:413 msgid "delete from the archive (not on mag tapes!)" -msgstr "трие файлове от архива (не при магнитни ленти!)" +msgstr "триене на файлове от архива (невъзможно при магнитни ленти!)" #: src/tar.c:415 msgid "test the archive volume label and exit" -msgstr "проверява етикета на тома и завършва" +msgstr "проверка на етикета на тома и изход" #: src/tar.c:420 msgid "Operation modifiers:" -msgstr "Модификатори на действието:" +msgstr "Модификатори:" #: src/tar.c:423 msgid "handle sparse files efficiently" -msgstr "работи ефективно с разредени файлове" +msgstr "ефективна работа с рехави файлове" #: src/tar.c:424 msgid "TYPE" -msgstr "" +msgstr "ВИД" #: src/tar.c:425 msgid "technique to detect holes" -msgstr "" +msgstr "начин за откриване на дупки" #: src/tar.c:426 msgid "MAJOR[.MINOR]" @@ -1682,23 +1712,23 @@ msgstr "ГОЛЯМ[.МАЛЪК]" #: src/tar.c:427 msgid "set version of the sparse format to use (implies --sparse)" -msgstr "определя версията на формата разредени файлове (влече --sparse)" +msgstr "задаване на версията на форма̀та рехавите файлове (влече „--sparse“)" #: src/tar.c:429 msgid "handle old GNU-format incremental backup" -msgstr "със стар формат ГНУ за инкрементално архивиране" +msgstr "със стария формат ГНУ за инкрементално архивиране" #: src/tar.c:431 msgid "handle new GNU-format incremental backup" -msgstr "с новия формат на ГНУ за инкрем. архивиране" +msgstr "с новия формат на ГНУ за инкрементално архивиране" #: src/tar.c:433 msgid "dump level for created listed-incremental archive" -msgstr "" +msgstr "ниво на архива за създадения с опцията „--listed-incremental“ архив" #: src/tar.c:435 msgid "do not exit with nonzero on unreadable files" -msgstr "при нечитаеми файлове не завършва с грешка" +msgstr "без изход с грешка при нечетими файлове" #: src/tar.c:437 msgid "" @@ -1707,84 +1737,92 @@ msgid "" "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 "" -"обработва само N-тото срещане на всеки файл в архива; тази опция е правилна " -"само в съчетание с една от подкомандите --delete, --diff, --extract или --" -"list и когато списъкът от файлове е зададен или на командния ред, или с " -"опция -T. Ако не е посочен N, се подразбира 1." +"обработка само на N-тото срещане на всеки файл в архива. Тази опция важи " +"само в съчетание с една от подкомандите „--delete“, „--diff“, „--extract“ " +"или „--list“ и когато списъкът от файлове е зададен или на командния ред, " +"или с опция „-T“. Ако N не е посочен, се подразбира 1." #: src/tar.c:443 msgid "archive is seekable" msgstr "архивът е с произволен достъп" #: src/tar.c:445 -#, fuzzy msgid "archive is not seekable" -msgstr "архивът е с произволен достъп" +msgstr "архивът не е с произволен достъп" #: src/tar.c:447 msgid "do not check device numbers when creating incremental archives" msgstr "" +"без проверка на номерата на устройствата при създаване на инкрементални " +"архиви" #: src/tar.c:450 msgid "check device numbers when creating incremental archives (default)" msgstr "" +"проверка на номерата на устройствата при създаване на инкрементални архиви " +"(стандартно)" #: src/tar.c:456 msgid "Overwrite control:" -msgstr "Регулиране заместването на файлове:" +msgstr "Управление на заместването на файлове:" #: src/tar.c:459 msgid "attempt to verify the archive after writing it" -msgstr "след записа опитва да провери архива" +msgstr "проверка на архива след записа" #: src/tar.c:461 msgid "remove files after adding them to the archive" -msgstr "изтрива файловете след като ги добави в архива" +msgstr "изтриване файловете след добавянето им в архива" #: src/tar.c:463 -#, fuzzy msgid "don't replace existing files when extracting, treat them as errors" -msgstr "при извличане не замества съществуващи файлове" +msgstr "" +"без заместване на съществуващи файлове при извличането, това да се счита за " +"грешка" #: src/tar.c:466 -#, fuzzy msgid "don't replace existing files when extracting, silently skip over them" -msgstr "при извличане не замества съществуващи файлове" +msgstr "" +"без заместване на съществуващи файлове при извличането, те да се прескачат " +"без съобщаване" #: src/tar.c:469 msgid "don't replace existing files that are newer than their archive copies" -msgstr "" -"не замества съществуващи файлове, ако са по-нови от копията им в архива" +msgstr "без заместване на съществуващи файлове при извличането, ако са по-нови" #: src/tar.c:471 msgid "overwrite existing files when extracting" -msgstr "при извличане замества съществуващи файлове" +msgstr "заместване на съществуващи файлове при извличане" #: src/tar.c:473 msgid "remove each file prior to extracting over it" -msgstr "изтрива всеки файл преди да извлича върху него" +msgstr "изтриване на всеки файл преди презаписване върху него" #: src/tar.c:475 msgid "empty hierarchies prior to extracting directory" -msgstr "изпразва йерархията преди извличане на каталог" +msgstr "изчистване на йерархията преди извличане на директорията" #: src/tar.c:477 msgid "preserve metadata of existing directories" -msgstr "запазва метаданните на съществуващи каталози" +msgstr "запазване на метаданните на съществуващите директории" #: src/tar.c:479 msgid "overwrite metadata of existing directories when extracting (default)" msgstr "" -"при извличане замества метаданните на съществуващи каталози (подразбира се)" +"заместване на метаданните на съществуващите директории при извличане " +"(стандартно)" #: src/tar.c:482 -#, fuzzy msgid "preserve existing symlinks to directories when extracting" -msgstr "при извличане замества съществуващи файлове" +msgstr "" +"запазване на съществуващите символни връзки към директории при извличането " +"на файлове" #: src/tar.c:485 msgid "create a subdirectory to avoid having loose files extracted" msgstr "" +"създаване на поддиректория, за да се избегне извличането на файлове в " +"началната" #: src/tar.c:491 msgid "Select output stream:" @@ -1792,23 +1830,23 @@ msgstr "Избор на изходен поток:" #: src/tar.c:494 msgid "extract files to standard output" -msgstr "извлича файловете на стандартния изход" +msgstr "извличане на файловете на стандартния изход" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "КОМАНДА" #: src/tar.c:496 msgid "pipe extracted files to another program" -msgstr "подава с канал всеки извлечен файл към КОМАНДА" +msgstr "подаване на всеки извлечен файл към КОМАНДА през канал" #: src/tar.c:498 msgid "ignore exit codes of children" -msgstr "игнорира кода на завършване на породени процеси" +msgstr "игнориране на изходния код на породени процеси" #: src/tar.c:500 msgid "treat non-zero exit codes of children as error" -msgstr "счита за грешка всеки ненулев код на завършване на породен процес" +msgstr "всеки ненулев код на завършване на породен процес се счита за грешка" #: src/tar.c:505 msgid "Handling of file attributes:" @@ -1816,32 +1854,38 @@ msgstr "Подход спрямо файловите атрибути:" #: src/tar.c:508 msgid "force NAME as owner for added files" -msgstr "прави ИМЕ да е собственик на добавените файлове" +msgstr "ИМЕ да е собственик на добавените файлове" #: src/tar.c:510 msgid "force NAME as group for added files" -msgstr "прави ИМЕ да бъде групата на добавените файлове" +msgstr "ИМЕ да е групата на добавените файлове" #: src/tar.c:512 msgid "use FILE to map file owner UIDs and names" msgstr "" +"използване на посочения ФАЙЛ за съответствието между идентификатор (UID) и " +"име на потребител" #: src/tar.c:514 msgid "use FILE to map file owner GIDs and names" msgstr "" +"използване на посочения ФАЙЛ за съответствието между идентификатор (GID) и " +"име на група" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" -msgstr "ДАТА-ИЛИ-ФАЙЛ" +msgstr "ДАТА_ИЛИ_ФАЙЛ" #: src/tar.c:516 msgid "set mtime for added files from DATE-OR-FILE" -msgstr "прави времето на промяна на добавяни файлове като ДАТА-ИЛИ-ФАЙЛ" +msgstr "времето на промяна на добавените файлове да е като ДАТА_ИЛИ_ФАЙЛ" #: src/tar.c:518 msgid "" "only set time when the file is more recent than what was given with --mtime" msgstr "" +"задаване на време, само когато файлът е по-нов от времето посочено с опцията " +"„--mtime“" #: src/tar.c:519 msgid "CHANGES" @@ -1849,7 +1893,7 @@ msgstr "ПРОМЕНИ" #: src/tar.c:520 msgid "force (symbolic) mode CHANGES for added files" -msgstr "модифицира режима за достъп на добавени файлове" +msgstr "прилага ПРОМЕНИте към режима за достъп на добавените файлове" #: src/tar.c:522 msgid "METHOD" @@ -1861,113 +1905,114 @@ msgid "" "reading (METHOD='replace'; default) or by not setting the times in the first " "place (METHOD='system')" msgstr "" -"запазва времената на достъп на архивираните файлове като или възстановява " -"времената след четене (при МЕТОД=„replace“, подразбира се), или не променя " -"имената изобщо (МЕТОД=„system“)" +"запазване на времената на достъп на архивираните файлове или чрез " +"възстановяване на времената след четене (при МЕТОД=„replace“ — стандартно), " +"или без изобщо да се променят (МЕТОД=„system“)" #: src/tar.c:527 msgid "don't extract file modified time" -msgstr "не извлича времето на промяна на файловете" +msgstr "без извличане на времето на промяна на файловете" #: src/tar.c:529 -#, fuzzy msgid "" "try extracting files with the same ownership as exists in the archive " "(default for superuser)" -msgstr "опитва да възстановява собствеността на файловете" +msgstr "" +"опит за възстановяване на файловете със собственик както е в архива " +"(стандартно за суперпотребителите)" #: src/tar.c:531 -#, fuzzy msgid "extract files as yourself (default for ordinary users)" -msgstr "извлича файловете от ваше име" +msgstr "" +"възстановяване на файловете, като собственик сте вие (стандартно за " +"обикновените потребители)" #: src/tar.c:533 msgid "always use numbers for user/group names" -msgstr "използва числа вместо имена за потребител и група" +msgstr "използване на числа вместо имена за потребител и група" #: src/tar.c:535 msgid "extract information about file permissions (default for superuser)" msgstr "" -"възстановява точно (без umask) режима на достъп (подразбира се при " -"привилегирован потребител)" +"точно възстановяване на режима на достъп, без прилагане на " +"„umask“ (стандартно при привилегирован потребител)" #: src/tar.c:539 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" msgstr "" -"прилага umask на потребителя при извличане на файлове (подразбира се при " +"прилагане на „umask“ на потребителя при извличане на файлове (стандартно при " "обикновен потребител)" #: src/tar.c:541 msgid "" "member arguments are listed in the same order as the files in the archive" -msgstr "" +msgstr "аргументите-членове са изведени в същия ред както файловете в архива" #: src/tar.c:545 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" msgstr "" -"забавя настройката на времето на промяна и режима за достъп на извличаните " -"каталози докато извличането завърши" +"задаването на времето на промяна и режима за достъп на извлечените " +"директории да се извърши след завършването на извличането" #: src/tar.c:548 msgid "cancel the effect of --delay-directory-restore option" -msgstr "отменя ефекта на --delay-directory-restore" +msgstr "отмяна на ефекта на „--delay-directory-restore“" #: src/tar.c:549 msgid "ORDER" -msgstr "" +msgstr "ПОДРЕДБА" #: src/tar.c:551 msgid "directory sorting order: none (default), name or inode" -msgstr "" +msgstr "подредба на директориите: без (стандартно), по име или по i-възел" #: src/tar.c:553 msgid "directory sorting order: none (default) or name" -msgstr "" +msgstr "подредба на директориите: без (стандартно) или по име" #: src/tar.c:560 -#, fuzzy msgid "Handling of extended file attributes:" -msgstr "Подход спрямо файловите атрибути:" +msgstr "Подход спрямо разширените файлови атрибути:" #: src/tar.c:563 msgid "Enable extended attributes support" -msgstr "" +msgstr "С поддръжка на разширените файлови атрибути" #: src/tar.c:565 msgid "Disable extended attributes support" -msgstr "" +msgstr "Без поддръжка на разширените файлови атрибути" #: src/tar.c:566 src/tar.c:568 msgid "MASK" -msgstr "" +msgstr "МАСКА" #: src/tar.c:567 msgid "specify the include pattern for xattr keys" -msgstr "" +msgstr "указване на шаблона за включените разширени файлови атрибути" #: src/tar.c:569 msgid "specify the exclude pattern for xattr keys" -msgstr "" +msgstr "указване на шаблона за изключените разширени файлови атрибути" #: src/tar.c:571 msgid "Enable the SELinux context support" -msgstr "" +msgstr "С поддръжка на контекстите на SELinux" #: src/tar.c:573 msgid "Disable the SELinux context support" -msgstr "" +msgstr "Без поддръжка на контекстите на SELinux" #: src/tar.c:575 msgid "Enable the POSIX ACLs support" -msgstr "" +msgstr "С поддръжка на списъците за контрол на достъпа (ACL) на POSIX" #: src/tar.c:577 msgid "Disable the POSIX ACLs support" -msgstr "" +msgstr "Без поддръжка на списъците за контрол на достъпа (ACL) на POSIX" #: src/tar.c:582 msgid "Device selection and switching:" @@ -1979,43 +2024,43 @@ msgstr "АРХИВ" #: src/tar.c:585 msgid "use archive file or device ARCHIVE" -msgstr "използва архивния файл или устройство АРХИВ" +msgstr "използване на този АРХИВен файл или устройство" #: src/tar.c:587 msgid "archive file is local even if it has a colon" -msgstr "архивният файл е локален дори при двуеточие" +msgstr "архивният файл е локален дори името да съдържа „:“" #: src/tar.c:589 msgid "use given rmt COMMAND instead of rmt" -msgstr "използва посочената КОМАНДА вместо rmt" +msgstr "ползване на посочената КОМАНДА вместо „rmt“" #: src/tar.c:591 msgid "use remote COMMAND instead of rsh" -msgstr "използва посочената КОМАНДА вместо rsh" +msgstr "ползване на посочената КОМАНДА вместо „rsh“" #: src/tar.c:595 msgid "specify drive and density" -msgstr "посочва устройство и гъстота" +msgstr "указване на устройство и гъстота" #: src/tar.c:609 msgid "create/list/extract multi-volume archive" -msgstr "създава/извежда/извлича многотомен архив" +msgstr "работа с многотомен архив" #: src/tar.c:611 msgid "change tape after writing NUMBER x 1024 bytes" -msgstr "смяна на лентата след запис на 1024 x N байта" +msgstr "смяна на лентата след запис на 1024 × N байта" #: src/tar.c:613 msgid "run script at end of each tape (implies -M)" -msgstr "изпълнява скрипт в края на всяка лента (влече -M)" +msgstr "изпълнение на скрипт в края на всяка лента (включва и опцията „-M“)" #: src/tar.c:616 msgid "use/update the volume number in FILE" -msgstr "ползва от и обновява във ФАЙЛ номера на тома" +msgstr "ползване и обновяване на номер на тома от ФАЙЛ" #: src/tar.c:621 msgid "Device blocking:" -msgstr "Блокуване на устройството:" +msgstr "Блокове на устройството:" #: src/tar.c:623 msgid "BLOCKS" @@ -2023,31 +2068,31 @@ msgstr "БЛОКОВЕ" #: src/tar.c:624 msgid "BLOCKS x 512 bytes per record" -msgstr "БЛОКОВЕ x 512 байта в секунда" +msgstr "БЛОКОВЕ × 512 байта в секунда" #: src/tar.c:626 msgid "NUMBER of bytes per record, multiple of 512" -msgstr "прави N-байтови записи, кратно на 512" +msgstr "N-байтови записи, трябва да е кратно на 512" #: src/tar.c:628 msgid "ignore zeroed blocks in archive (means EOF)" -msgstr "пренебрегва блоковете от нули и продължава" +msgstr "прескачане на блоковете от нули (означава EOF)" #: src/tar.c:630 msgid "reblock as we read (for 4.2BSD pipes)" -msgstr "преформира при четене блоковете (канали 4.2BSD)" +msgstr "преразделяне по блокове при четене (при канали в 4.2BSD)" #: src/tar.c:635 msgid "Archive format selection:" -msgstr "Избор на архивен формат:" +msgstr "Формат на архива:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "ФОРМАТ" #: src/tar.c:638 msgid "create archive of the given format" -msgstr "създава архив с посочения формат" +msgstr "създаване на архив с посочения ФОРМАТ" #: src/tar.c:640 msgid "FORMAT is one of the following:" @@ -2055,652 +2100,646 @@ msgstr "ФОРМАТ е някой от следните:" #: src/tar.c:641 msgid "old V7 tar format" -msgstr "стар формат tar, V7" +msgstr "стар формат „tar“, V7" #: src/tar.c:644 msgid "GNU format as per tar <= 1.12" -msgstr "формат на ГНУ при tar <= 1.12" +msgstr "формат на ГНУ при „tar“ ≤ 1.12" #: src/tar.c:646 msgid "GNU tar 1.13.x format" -msgstr "формат на версия 1.13.x на tar на ГНУ" +msgstr "формат на версия 1.13.x на „tar“ на ГНУ" #: src/tar.c:648 msgid "POSIX 1003.1-1988 (ustar) format" -msgstr "формат POSIX 1003.1-1988 (ustar)" +msgstr "формат POSIX 1003.1-1988 („ustar“)" #: src/tar.c:650 msgid "POSIX 1003.1-2001 (pax) format" -msgstr "формат POSIX 1003.1-2001 (pax)" +msgstr "формат POSIX 1003.1-2001 („pax“)" #: src/tar.c:651 msgid "same as pax" -msgstr "същото като pax" +msgstr "същото като „pax“" #: src/tar.c:654 msgid "same as --format=v7" -msgstr "същото като --format=v7" +msgstr "същото като „--format=v7“" #: src/tar.c:657 msgid "same as --format=posix" -msgstr "същото като --format=posix" +msgstr "същото като „--format=posix“" #: src/tar.c:658 msgid "keyword[[:]=value][,keyword[[:]=value]]..." -msgstr "ключдума[[:]=стойност][,ключдума[[:]=стойност]]..." +msgstr "КЛЮЧ[[:]=СТОЙНОСТ][,КЛЮЧ[[:]=СТОЙНОСТ]]…" #: src/tar.c:659 msgid "control pax keywords" -msgstr "управляващи ключови думи за pax" +msgstr "управляващи КЛЮЧове за „pax“" #: src/tar.c:660 msgid "TEXT" -msgstr "ТЕКСТ" +msgstr "ИМЕ_ИЛИ_ШАБЛОН" #: src/tar.c:661 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" msgstr "" -"създава архив с име на том ТЕКСТ; при извеждане или извличане сравнява името " -"на тома с ТЕКСТ" +"създаване на архив с такова ИМЕ, а при извеждане или извличане името на тома " +"се сравнява с този ШАБЛОН" #: src/tar.c:666 -#, fuzzy msgid "Compression options:" -msgstr "Противоречащи си опции за компресиране" +msgstr "Опции за компресиране:" #: src/tar.c:668 -#, fuzzy msgid "use archive suffix to determine the compression program" -msgstr "Не може да се пише към компресиращата програма" +msgstr "определяне на компресиращата програма според суфикса на архива" #: src/tar.c:670 -#, fuzzy msgid "do not use archive suffix to determine the compression program" -msgstr "Не може да се пише към компресиращата програма" +msgstr "без определяне на компресиращата програма според суфикса на архива" #: src/tar.c:672 msgid "PROG" -msgstr "ПРОГ" +msgstr "ПРОГРАМА" #: src/tar.c:673 msgid "filter through PROG (must accept -d)" -msgstr "прекарва архива през ПРОГ (трябва да приема -d)" +msgstr "прекарва архива през ПРОГРАМАта (тя трябва да приема опция „-d“)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Избор на локален файл:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" -msgstr "работи в рамките на локалната файлова система" +msgstr "работа в рамките на локалната файлова система" -#: src/tar.c:693 -#, fuzzy +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" -msgstr "не маха „/“ в началото на файлови имена" +msgstr "оставяне на „/“ в началото на имена на файлове" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" -msgstr "следва симв. връзки; архивира сочените файлове" +msgstr "следване на символните връзки и архивиране на сочените файлове" -#: src/tar.c:697 -#, fuzzy +#: src/tar.c:698 msgid "follow hard links; archive and dump the files they refer to" -msgstr "следва симв. връзки; архивира сочените файлове" +msgstr "следване на твърдите връзки и архивиране на сочените файлове" -#: src/tar.c:698 +#: src/tar.c:699 msgid "MEMBER-NAME" -msgstr "ЧЛЕН-ИМЕ" +msgstr "ИМЕ_НА_ЧЛЕН" -#: src/tar.c:699 -#, fuzzy +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" -msgstr "започва от файл с име ЧЛЕН-ИМЕ в архива" +msgstr "започване от обекта с това ИМЕ_НА_ЧЛЕН при четене на архива" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" -msgstr "съхранява само файлове, по-нови от ДАТА-ИЛИ-ФАЙЛ" +msgstr "съхраняване само на файлове по-нови от ДАТА_ИЛИ_ФАЙЛ" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "ДАТА" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" -msgstr "сравнява времето само ако данните са променени" +msgstr "сравняване на времето, само ако данните са променени" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" -msgstr "МЕТОД" +msgstr "НОМЕРИРАНЕ" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" -msgstr "резервно копира съществуващи файлове с МЕТОД" +msgstr "резервно копие с това НОМЕРИРАНЕ преди изтриване" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "НИЗ" -#: src/tar.c:708 +#: src/tar.c:709 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:713 +#: src/tar.c:714 msgid "File name transformations:" -msgstr "Промени на файловите имена:" +msgstr "Промѐни на файловите имена:" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" -msgstr "при извличане маха N начални каталози от файловите пътеки" +msgstr "махане на N на брой директории от началото на пътищата при извличане" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "ИЗРАЗ" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" -msgstr "" -"преобразува файловите имена, използвайки посочения ИЗРАЗ за замяна на sed" +msgstr "преобразуване на имената на файловете с този ИЗРАЗ за замяна на „sed“" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Извеждане на информация:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" -msgstr "подробно изрежда обработените файлове" +msgstr "подробно изреждане на обработените файлове" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" -msgstr "" +msgstr "КЛЮЧ" -#: src/tar.c:729 -#, fuzzy +#: src/tar.c:730 msgid "warning control" -msgstr "Регулиране заместването на файлове:" +msgstr "управление на предупрежденията" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" -msgstr "извежда напредъка след всеки N-ти запис (подразбира се 10)" +msgstr "извеждане на напредъка след всеки N-ти запис (стандартно е 10)" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" -msgstr "" +msgstr "ДЕЙСТВИЕ" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" -msgstr "" +msgstr "изпълнение на ДЕЙСТВИЕ при всяка контролна точка" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" -msgstr "съобщава, ако не всички твърди връзки са включени" +msgstr "предупреждение, ако не всички твърди връзки са включени в архива" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "СИГНАЛ" -#: src/tar.c:739 +#: src/tar.c:740 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:744 -#, fuzzy +#: src/tar.c:745 msgid "print file modification times in UTC" -msgstr "извежда времената по Гринуич" +msgstr "извеждане на времената в UTC" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" -msgstr "" +msgstr "извеждане на времената с пълна точност" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" -msgstr "изпраща подробния изход във ФАЙЛ" +msgstr "изпращане на подробния изход във ФАЙЛ" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" -msgstr "показва номера на блок в архива с всяко съобщение" +msgstr "показване на номера на блок в архива с всяко съобщение" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" -msgstr "изисква потвърждение за всяко действие" +msgstr "изискване на потвърждение за всяко действие" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" -msgstr "показва подразбираното от tar" +msgstr "извеждане на стандартните стойности на „tar“" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "" +"извеждане на диапазоните за полетата на файла за състоянието (snapshot)" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "" -"при извеждане или извличане изрежда всеки каталог, който се пропуска по " -"някаква причина" +"отпечатване на всяка директория, която се пропуска по някаква причина при " +"извеждане или извличане" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" -msgstr "показва преобразуваните файлови имена в архива" +msgstr "извеждане на преобразуваните файлови имена в архива" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "НАЧИН" -#: src/tar.c:765 +#: src/tar.c:766 msgid "set name quoting style; see below for valid STYLE values" -msgstr "" -"начин за цитиране на специални знаци; вж. по-долу за стойностите на НАЧИН" +msgstr "НАЧИН за цитиране на специални знаци, различните видове са по-долу" -#: src/tar.c:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" -msgstr "работи и със знаците от НИЗ като със специални" +msgstr "работа със знаците и от НИЗа като специални" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" -msgstr "не работи със знаците от НИЗ като със специални" +msgstr "работа със знаците от НИЗа като обикновени" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Опции за съвместимост:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "" -"при създаване е същото като --old-archive; при извличане е същото като --no-" -"same-owner" +"при създаване е същото като „--old-archive“, а при извличане е същото като " +"„--no-same-owner“" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Други опции:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" -msgstr "забранява някои потенциално опасни опции" +msgstr "изключване на някои потенциално опасни опции" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 -#, fuzzy, c-format +#: src/tar.c:846 +#, c-format msgid "'%s' cannot be used with '%s'" -msgstr "%s: Не може да се отиде на отместване %s във файла" +msgstr "опциите „%s“ и „%s“ са несъвместими" -#: src/tar.c:933 -#, fuzzy +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" -msgstr "Не може да се използва повече от една опция „-Acdtrux“" +msgstr "" +"Не може да се използва повече от една опция „-Acdtrux“, „--delete“ или „--" +"test-label“" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Противоречащи си опции за компресиране" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" -msgstr "Непознато име на сигнал: %s" +msgstr "Непознато име на сигнал: „%s“" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" -msgstr "Не е открит еталлонният файл за дата" +msgstr "Не е открит еталонният файл за дата" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" -msgstr "Използва се %s вместо непознатия файлов формат за дата %s" +msgstr "Използва се „%s“ вместо непознатия файлов формат за дата „%s„“" -#: src/tar.c:1065 -#, fuzzy, c-format +#: src/tar.c:1067 +#, c-format msgid "Option %s: Treating date '%s' as %s" -msgstr "Опция %s: Датата „%s“ се разглежда като %s" +msgstr "Опция „%s“: датата „%s“ се тълкува като „%s“" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 -#, fuzzy, c-format +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 +#, c-format msgid "filter the archive through %s" -msgstr "прекарва архива през gzip" +msgstr "прекарване на архива през „%s“" -#: src/tar.c:1137 -#, fuzzy +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" -msgstr "Правилни аргументи за опциите --quoting-style са:" +msgstr "Допустими аргументи за опцията „--quoting-style“ са:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" msgstr "" "\n" -"*Този* tar подразбира следното:\n" +"•Този• tar подразбира следното:\n" -#: src/tar.c:1253 -#, fuzzy +#: src/tar.c:1259 msgid "Invalid owner or group ID" -msgstr "Неправилен собственик" +msgstr "Неправилен идентификатор на собственик или група" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" -msgstr "Неправилен фактор за блокуване" +msgstr "Неправилен коефициент за блоковете (от 512 байта) в запис" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Неправилна дължина на лента" -#: src/tar.c:1481 -#, fuzzy +#: src/tar.c:1486 msgid "Invalid incremental level value" -msgstr "Грешен инкрементален файлов формат" +msgstr "Неправилно ниво на инкрементален архив" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Повече от една ограничителна дата" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" -msgstr "Неправилна версия на формат разредени файлове" +msgstr "Неправилна версия на форма̀та на рехавите файлове" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" -msgstr "--atime-preserve='system' не се поддържа на тази платформа" +msgstr "„--atime-preserve='system'“ не се поддържа на тази платформа" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" -msgstr "стойността на --checkpoint не е цяло число" +msgstr "стойността на „--checkpoint“ не е цяло число" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "На опция е подаден неправилен режим" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Неправилно число" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Неправилен размер на запис" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "Размерът на запис трябва да е кратен на %d." -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Неправилен брой елементи" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" -msgstr "Позволява се само една опция --to-command" +msgstr "Позволена е само една опция „--to-command“" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" -msgstr "Лошо образуван аргумент за гъстота: %s" +msgstr "Неправилен аргумент за гъстота: %s" -#: src/tar.c:2049 -#, fuzzy, c-format +#: src/tar.c:2058 +#, c-format msgid "Unknown density: '%c'" msgstr "Непозната гъстота: „%c“" -#: src/tar.c:2066 -#, fuzzy, c-format +#: src/tar.c:2075 +#, c-format msgid "Options '-[0-7][lmh]' not supported by *this* tar" -msgstr "Опциите „-[0-7][lmh]“ не се поддържат от *този* tar" +msgstr "Опциите „-[0-7][lmh]“ не се поддържат от •този• tar" -#: src/tar.c:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" -msgstr "" +msgstr "%s:%lu: местоположение на грешката" -#: src/tar.c:2076 -#, fuzzy, c-format +#: src/tar.c:2085 +#, c-format msgid "error parsing %s" -msgstr "Грешка при анализа на число до „%s“" +msgstr "грешка при анализа на „%s“" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." -msgstr "[ФАЙЛ]..." +msgstr "[ФАЙЛ]…" -#: src/tar.c:2181 -#, fuzzy, c-format +#: src/tar.c:2190 +#, c-format msgid "non-option arguments in %s" -msgstr "неправилен аргумент %s за %s" +msgstr "аргументи, които не са опции, в „%s“" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" -msgstr "" +msgstr "ОПЦИИТЕ_НА_TAR не може да се раздѐлят: %s" -#: src/tar.c:2291 -#, fuzzy, c-format +#: src/tar.c:2300 +#, c-format msgid "Old option '%c' requires an argument." msgstr "Старата опция „%c“ изисква аргумент." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" -msgstr "без списък файлове опцията --occurrence е безсмислена" +msgstr "опцията „--occurrence“ е безсмислена без списък с файлове" -#: src/tar.c:2390 -#, fuzzy +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "Използването на много архивни файлове изисква опция „-M“" -#: src/tar.c:2407 -#, fuzzy +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" -msgstr "без списък файлове опцията --occurrence е безсмислена" +msgstr "опцията „--level“ е е безсмислена без опцията „--listed-incremental“" -#: src/tar.c:2424 +#: 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 байта)" +msgstr[0] "%s: етикетът на тома е твърде дълъг (не повече от %lu байт)" +msgstr[1] "%s: етикетът на тома е твърде дълъг (не повече от %lu байта)" -#: src/tar.c:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Не може да се проверяват многотомни архиви" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Не може да се проверяват компресирани архиви" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Не може да се използват многотомни компресирани архиви" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Не може да се съединяват компресирани архиви" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" -msgstr "" +msgstr "опцията „--clamp-mtime“ изисква задаване на дата с „--mtime“" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "" -"опцията --pax-option може да се използва само при архиви във формат POSIX" +"опцията „--pax-option“ може да се използва само при архиви във формат POSIX" -#: src/tar.c:2481 -#, fuzzy +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" -msgstr "" -"опцията --pax-option може да се използва само при архиви във формат POSIX" +msgstr "опцията „--acls“ може да се използва само при архиви във формат POSIX" -#: src/tar.c:2486 -#, fuzzy +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "" -"опцията --pax-option може да се използва само при архиви във формат POSIX" +"опцията „--selinux“ може да се използва само при архиви във формат POSIX" -#: src/tar.c:2491 -#, fuzzy +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "" -"опцията --pax-option може да се използва само при архиви във формат POSIX" +"опцията „--xattrs“ може да се използва само при архиви във формат POSIX" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" msgstr "" +"Името на най-горната директория не може да бъде определено. Задайте го " +"изрично с опцията „--one-top-level=ДИРЕКТОРИЯ“" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" -msgstr "" +msgstr "Размерът на тома не може да по-малък от размера на записа" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" -msgstr "Страхлив отказ да се създава празен архив" +msgstr "Отказ да се създаде празен архив" -#: src/tar.c:2623 -#, fuzzy +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Опциите „-Aru“ са несъвместими с „-f -“" -#: src/tar.c:2711 -#, fuzzy +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" -msgstr "Трябва да посочите поне една от опциите „-Acdtrux“" +msgstr "" +"Трябва да посочите поне една от опциите „-Acdtrux“, „--delete“ или „--test-" +"label“" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" -msgstr "" +msgstr "Изход със статус за грешка поради предходни проблеми" -#: src/update.c:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" -msgstr[0] "%s: Файлът намаля с %s байт" -msgstr[1] "%s: Файлът намаля с %s байта" +msgstr[0] "%s: файлът намаля с %s байт" +msgstr[1] "%s: файлът намаля с %s байта" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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 "Записано е време извън допустимия диапазон" -#: src/xheader.c:205 +#: src/xheader.c:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" -msgstr "Образецът %s не може да се използва" +msgstr "Шаблонът „%s“ не може да се използва" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Ключовата дума %s не може да се отмени" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" -msgstr "Лошо формиран разширен заглавен запис: не е посочена дължина" +msgstr "Неправилен разширен заглавен запис: не е посочена дължина" -#: src/xheader.c:677 +#: src/xheader.c:695 #, c-format msgid "Extended header length %*s is out of range" msgstr "Дължината %*s на разширен заглавен запис е извън допустимия диапазон" -#: src/xheader.c:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" -msgstr "Лошо формиран разширен заглавен запис: липсва интервал след дължината" +msgstr "Неправилен разширен заглавен запис: липсва интервал след дължината" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" -msgstr "Лошо формиран разширен заглавен запис: липсва знак за равенство" +msgstr "Неправилен разширен заглавен запис: липсва знак за равенство" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" -msgstr "Лошо формиран разширен заглавен запис: липсва знак за нов ред" +msgstr "Неправилен разширен заглавен запис: липсва знак за нов ред" -#: src/xheader.c:741 -#, fuzzy, c-format +#: src/xheader.c:759 +#, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "" -"Пренебрегва се непознатата ключова дума „%s“ за разширен заглавен запис" +"Непознатата ключова дума „%s“ за разширен заглавен запис се пренебрегва" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" -"Генерираната двойка <ключова дума, стойност> е твърде дълга (ключова дума=" -"%s, дължина=%s)" +"Генерираната двойка <ключ, стойност> е твърде дълга (ключ=%s, дължина=%s)" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:1053 +#: src/xheader.c:1071 #, c-format msgid "Extended header %s=%s is out of range %s..%s" -msgstr "Разширеният заглавен запис %s=%s е извън диапазона %s..%s" +msgstr "Разширеният заглавен запис „%s=%s“ е извън диапазона [%s; %s]" -#: src/xheader.c:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" -msgstr "Неправилно формиран разширен заглавен запис: неправилен %s=%s" +msgstr "Неправилен разширен заглавен запис: неправилен „%s=%s“" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" -msgstr "Неправилно формиран разширен заглавен запис: прекомерен %s=%s" +msgstr "Неправилен разширен заглавен запис: прекомерен „%s=%s“" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" -"Лошо формиран разширен заглавен запис: неправилен %s; очаква се разделител %c" +"Неправилен разширен заглавен запис: грешка при „%s“ — неочакван разделител " +"„%c“" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "" -"Лошо формиран разширен заглавен запис: неправилен %s; нечетен брой стойности" +"Неправилен разширен заглавен запис: грешка при „%s“ — нечетен брой стойности" -#: src/checkpoint.c:114 -#, fuzzy, c-format +#: src/checkpoint.c:133 +#, c-format msgid "%s: not a valid timeout" -msgstr "%s: Неправилна група" +msgstr "%s: неправилен краен срок" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" -msgstr "" +msgstr "%s: непознато действие при контролна точка" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" -msgstr "" +msgstr "запис" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" -msgstr "" +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:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Контролна точка при запис %u" @@ -2709,252 +2748,255 @@ msgstr "Контролна точка при запис %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Контролна точка при четене %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "" -"genfile борави с файловете с данни за тестовия пакет GNU paxutils.\n" -"ОПЦИИТЕ са:\n" +"„genfile“ борави с файловете с данни за тестовия пакет GNU paxutils.\n" +"ОПЦИите са:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Опции за създаването на файл:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "РАЗМЕР" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" -msgstr "Създава файл с посочения РАЗМЕР" +msgstr "Създаване на файл с посочения РАЗМЕР" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" -msgstr "Запис във файл ИМЕ вместо на стандартния изход" +msgstr "Запис във файл с това ИМЕ вместо на стандартния изход" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" -msgstr "Чете файловите имена от ФАЙЛ" +msgstr "Четене на файловите имена от ФАЙЛ" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" -msgstr "-T чете имена, завършващи с нулев байт" +msgstr "„-T“ — четене на имена, завършващи с нулев байт" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" -"Попълва файла с посочения ОБРАЗЕЦ. ОБРАЗЕЦ може да бъде „default“ или „zeros“" +"Попълва файла с посочения ОБРАЗЕЦ, който е или „default“ (стандартно) или " +"„zeros“ (нули)" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" -msgstr "Размер на блок за разреден файл" +msgstr "Размер на блок за рехав файл" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" -"Генерира разреден файл. Останалата част от командния ред дава карта на файла." +"Генериране на рехав файл. Останалата част от командния ред дава карта на " +"файла." -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" -msgstr "" +msgstr "ОТМЕСТВАНЕ" -#: tests/genfile.c:149 -#, fuzzy +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" -msgstr "след записа опитва да провери архива" +msgstr "Позициониране при зададеното ОТМЕСТВАНЕ преди запис на данни" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" -msgstr "" +msgstr "Без извеждане на диагностичните съобщения" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Опции за файлови статистики:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" -"Извежда съдържанието на структурата stat за всеки файл. По подразбиране " -"ФОРМАТ е: " +"Извеждане съдържанието на структурата „stat“ за всеки файл. По подразбиране " +"ФОРМАТът е: " -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" -msgstr "Опции за синхронизирано изпълнение:" +msgstr "Опции за синхронно изпълнение:" -#: tests/genfile.c:168 -#, fuzzy -msgid "OPTION" -msgstr " [ОПЦИЯ...]" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 #, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" -"Изпълнява посочената КОМАНДА. Полезно с --checkpoint и някоя от --cut, --" -"append, --touch" +"Изпълняване на посочените АРГУМЕНТИ. Полезно с опцията „--checkpoint“ и " +"някоя от „--cut“, „--append“, „--touch“" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -"Изпълнява посоченото действие (вж. по-долу) до достигането на контролна " +"Изпълняване на посоченото действие (вж. по-долу) до достигането на контролна " "точка N" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" -msgstr "Посочва дата за следващата опция --touch" +msgstr "Посочване на дата за следващата опция „--touch“" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" -msgstr "Извежда изпълнените контролни точки и кода на завършване на КОМАНДА" +msgstr "" +"Извеждане на изпълнените контролни точки и кода на завършване на КОМАНДА" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" -"Синхронизирано изпълнение на действията. Те се изпълняват когато се достигне " -"контролната точка с номер, посочен с --checkpoint." +"Синхронно изпълнение на действията. Те се изпълняват когато се достигне " +"контролната точка с номер, посочен с „--checkpoint“." -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -"Отсича ФАЙЛ до размера, определен с предхождаща опция --length (подразбира " -"се 0)" +"Отсичане на ФАЙЛа до размера, определен с предходна опция „--" +"length“ (стандартно е 0)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -"Добавя РАЗМЕР байтове към ФАЙЛ. РАЗМЕРът се определя от предхождаща опция --" -"length." +"Добавяне на този РАЗМЕР байтове към ФАЙЛ. РАЗМЕРът се определя от предходна " +"опция „--length“." -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" -msgstr "Обновява времето на достъп и промяна на FILE" +msgstr "Обновяване на времето на достъп и промяна на ФАЙЛа" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" -msgstr "Изпълнява КОМАНДА" +msgstr "Изпълняване на КОМАНДА" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" -msgstr "" +msgstr "Изтриване на ФАЙЛ" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Неправилен размер: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Номер извън допустимия диапазон: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Отрицателен размер: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" -msgstr "не успя stat(%s)" +msgstr "неуспешно изпълнение на stat(%s)" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" -msgstr "" +msgstr "заявената дължина на файл е %lu, а действителната е %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" -msgstr "" +msgstr "създаденият файл не е рехав" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "Грешка при анализа на число до „%s“" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Непознат формат за дата" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" -msgstr "[АРГУМ...]" +msgstr "[АРГУМЕНТ…]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" -msgstr "Не може да се отвори „%s“" +msgstr "„%s“ не може да се отвори" -#: tests/genfile.c:448 -#, fuzzy +#: tests/genfile.c:439 msgid "cannot seek" -msgstr "Не може да се изпълни %s" +msgstr "не може да се търси" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "името на файла съдържа нулев байт" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" -"не може да се създават разредени файлове на стандартния изход, използвайте " -"опцията --file" +"рехави файлове не може да се създават на стандартния изход, използвайте " +"опцията „--file“" -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "неправилна маска (до „%s“)" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "Непознато поле „%s“" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" -msgstr "не може да се смени времето на „%s“" +msgstr "времето не може да се смени на „%s“" -#: tests/genfile.c:765 -#, fuzzy, c-format +#: tests/genfile.c:756 +#, c-format msgid "cannot truncate `%s'" -msgstr "Не може да се отвори „%s“" +msgstr "„%s“ не може да се отсече с „truncate“" -#: tests/genfile.c:774 -#, fuzzy, c-format +#: tests/genfile.c:765 +#, c-format msgid "command failed: %s" -msgstr "командата %s не успя" +msgstr "командата „%s“ не успя" -#: tests/genfile.c:781 -#, fuzzy, c-format +#: tests/genfile.c:772 +#, c-format msgid "cannot stat `%s'" -msgstr "не може да се смени времето на „%s“" +msgstr "не може да се получи информация със „stat“ за „%s“" -#: tests/genfile.c:785 -#, fuzzy, c-format +#: tests/genfile.c:776 +#, c-format msgid "cannot remove directory `%s'" -msgstr "не може да се смени времето на „%s“" +msgstr "директорията „%s“ не може да се изтрие" -#: tests/genfile.c:788 -#, fuzzy, c-format +#: tests/genfile.c:779 +#, c-format msgid "cannot unlink `%s'" -msgstr "Не може да се отвори „%s“" +msgstr "„%s“ не може да се изтрие" #: tests/genfile.c:918 #, c-format @@ -2964,7 +3006,7 @@ msgstr "Командата завърши успешно\n" #: tests/genfile.c:920 #, c-format msgid "Command failed with status %d\n" -msgstr "Командата завърши с код %d\n" +msgstr "Командата завърши неуспешно с код %d\n" #: tests/genfile.c:924 #, c-format @@ -2979,7 +3021,7 @@ msgstr "Командата бе спряна със сигнал %d\n" #: tests/genfile.c:929 #, c-format msgid "Command dumped core\n" -msgstr "Командата генерира core\n" +msgstr "Командата генерира „core“\n" #: tests/genfile.c:932 #, c-format @@ -2989,235 +3031,7 @@ msgstr "Командата бе прекратена\n" #: tests/genfile.c:964 #, c-format msgid "--stat requires file names" -msgstr "--stat изисква файлови имена" - -#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" -#~ msgstr "%.*s: параметърът ARGP_HELP_FMT трябва да бъде положителен" - -#~ msgid "%s: option `--%s' doesn't allow an argument\n" -#~ msgstr "%s: опцията „--%s“ не допуска аргумент\n" - -#~ msgid "%s: unrecognized option `--%s'\n" -#~ msgstr "%s: непозната опция „--%s“\n" - -#~ msgid "%s: illegal option -- %c\n" -#~ msgstr "%s: неправилна опция -- %c\n" - -#~ msgid "%s: option `-W %s' is ambiguous\n" -#~ msgstr "%s: опцията „-W %s“ е двусмислена\n" - -#~ msgid "%s: option `-W %s' doesn't allow an argument\n" -#~ msgstr "%s: опцията „-W %s“ не допуска аргумент\n" - -#~ msgid "block size" -#~ msgstr "блоковият размер" - -#~ msgid "%s: Read error at byte %s, reading %lu byte" -#~ msgid_plural "%s: Read error at byte %s, reading %lu bytes" -#~ msgstr[0] "%s: Грешка при четене при байт %s, чете се %lu байт" -#~ msgstr[1] "%s: Грешка при четене при байт %s, четат се %lu байта" - -#~ msgid "Input string too long" -#~ msgstr "Входният низ е твърде дълъг" - -#~ msgid "Number syntax error" -#~ msgstr "Синтактична грешка в число" - -#~ msgid "rmtd: Cannot allocate buffer space\n" -#~ msgstr "rmtd: Не може да се задели място за буфер\n" - -#~ msgid "Cannot allocate buffer space" -#~ msgstr "Не може да се задели място за буфер" - -#~ msgid "Try `%s --help' for more information.\n" -#~ msgstr "Използвайте „%s --help“ за повече информация.\n" - -#~ 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 "" -#~ "\n" -#~ "Report bugs to <%s>.\n" -#~ msgstr "" -#~ "\n" -#~ "Съобщавайте за програмни грешки на <%s>.\n" - -#~ msgid "Seek offset error" -#~ msgstr "Грешка при позициониране" - -#~ msgid "Premature end of file" -#~ msgstr "Преждевременен край на файла" - -#~ msgid "Reading %s\n" -#~ msgstr "Чете се %s\n" - -#~ msgid "Error is not recoverable: exiting now" -#~ 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 "--Mangled file names--\n" -#~ msgstr "--Съкратени имена на файлове--\n" - -#~ msgid "Unexpected EOF in mangled names" -#~ msgstr "Неочакван край EOF в съкратени имена" - -#~ msgid "Renamed %s to %s" -#~ msgstr "Преиманувано %s на %s" - -#~ msgid "%s: Cannot symlink to %s" -#~ msgstr "%s: Невъзможна символна връзка към %s" - -#~ msgid "Symlinked %s to %s" -#~ msgstr "Символна връзка %s към %s" - -#~ msgid "Unknown demangling command %s" -#~ msgstr "Непозната команда за оправяне на съкратени имена %s" - -#~ msgid "suppress this warning." -#~ msgstr "или --no-wildcards, за да не се извежда това предупреждение." - -#~ msgid "sort names to extract to match archive" -#~ msgstr "файловете за извличане са сортирани според архива" - -#~ msgid "same as both -p and -s" -#~ msgstr "същото като едновременно -p и -s" - -#~ msgid "filter the archive through bzip2" -#~ msgstr "прекарва архива през bzip2" - -#~ msgid "filter the archive through compress" -#~ msgstr "прекарва архива през compress" - -#~ msgid "[.]NUMBER" -#~ msgstr "[.]N" - -#~ msgid "Warning: the -I option is not supported; perhaps you meant -j or -T?" -#~ msgstr "" -#~ "Внимание: опцията -I не се поддържа. Може би имате предвид -j или -T?" - -#~ msgid "--occurrence cannot be used in the requested operation mode" -#~ msgstr "не може да се използва --occurrence при пожелания начин на работа" - -#~ msgid "Cannot combine --listed-incremental with --newer" -#~ msgstr "Не може да се съчетават --listed-incremental с --newer" - -#~ msgid "Error exit delayed from previous errors" -#~ msgstr "Изходът с грешка бе забавен поради предхождащи грешки" - -#~ msgid "Extended header length is out of allowed range" -#~ msgstr "Дължината на разширен заглавен запис е извън допустимия диапазон" - -#~ msgid "Modification time (seconds) out of range" -#~ msgstr "Времето на промяна (секунди) е извън допустимия диапазон" - -#~ msgid "Modification time (nanoseconds) out of range" -#~ msgstr "Времето на промяна (наносекунди) е извън допустимия диапазон" - -#~ msgid "Device number out of range" -#~ msgstr "Номерът на устройство е извън допустимия диапазон" - -#~ msgid "Error reading time stamp" -#~ msgstr "Грешка при четене на записаното време" - -#~ msgid "same as -N" -#~ msgstr "същото като -N" - -#~ msgid "" -#~ "creating multi-volume archives in posix format requires using --tape-" -#~ "length (-L) option" -#~ msgstr "" -#~ "създаването на многотомен архив във формат POSIX изисква опция --tape-" -#~ "length (-L)" - -#~ msgid "Cannot close file #%d" -#~ msgstr "Не може да се затвори файл #%d" - -#~ msgid "Cannot close descriptor %d" -#~ msgstr "Не може да се затвори дескриптор %d" - -#~ msgid "Cannot properly duplicate %s" -#~ msgstr "Не може да се клонира правилно %s" - -#~ msgid "Cannot use compressed or remote archives" -#~ msgstr "Не може да се използват компресирани или отдалечени архиви" - -#~ msgid "Cannot open pipe" -#~ msgstr "Не може да се отвори именован канал" - -#~ msgid "Cannot fork" -#~ msgstr "Не може да се породи процес" - -#~ msgid "tar (child)" -#~ msgstr "tar (потомък)" - -#~ msgid "(child) Pipe to stdin" -#~ msgstr "(потомък) Именован канал към стандартен изход" - -#~ msgid "Cannot open archive %s" -#~ msgstr "Не може да се отвори архив %s" - -#~ msgid "Archive to stdout" -#~ msgstr "Архив на стандартния изход" - -#~ msgid "Child cannot fork" -#~ msgstr "Потомъкът не може да породи процес" - -#~ msgid "((child)) Pipe to stdout" -#~ msgstr "((потомък)) Именован канал към стандартния изход" - -#~ msgid "tar (grandchild)" -#~ msgstr "tar (подпотомък)" - -#~ msgid "(grandchild) Pipe to stdin" -#~ msgstr "(подпотомък) Именован канал към стандартния изход" - -#~ msgid "Cannot read from compression program" -#~ msgstr "Не може да се чете от компресиращата програма" - -#~ msgid "(child) Pipe to stdout" -#~ msgstr "(потомък) Именован канал към стандартния изход" - -#~ msgid "((child)) Pipe to stdin" -#~ msgstr "((потомък)) Именован канал към стандартния изход" - -#~ msgid "(grandchild) Pipe to stdout" -#~ msgstr "(подпотомък) Именован канал към стандартния изход" - -#~ msgid "Write to compression program short %d bytes" -#~ msgstr "Записът към компресиращата програма е по-къс с %d байта" - -#~ msgid "WARNING: No volume header" -#~ msgstr "ВНИМАНИЕ: Томът е без заглавна част" - -#~ msgid "Only read %d bytes from archive %s" -#~ msgstr "Прочетени са само %d байта от архив %s" - -#~ msgid "WARNING: Cannot close %s (%d, %d)" -#~ msgstr "ВНИМАНИЕ: Не може да се затвори %s (%d, %d)" - -#~ msgid "Child died with signal %d%s" -#~ msgstr "Потомъкът е прекратен чрез сигнал %d%s" - -#~ msgid "Cannot fork!" -#~ msgstr "Не може да се породи процес!" +msgstr "„--stat“ изисква файлови имена" -#~ msgid "Cannot exec a shell %s" -#~ msgstr "Не може да се изпълни командната обвивка %s" +#~ msgid "OPTION" +#~ msgstr "ОПЦИЯ" diff --git a/po/ca.gmo b/po/ca.gmo index 7614f19eb94c3f312d71400a15da29da027a7d98..82ad155657aef4c23149eace43990d31bbec1b41 100644 GIT binary patch delta 14840 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 LyEi|-psxY|i?Q)> delta 12835 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 diff --git a/po/ca.po b/po/ca.po index be1d7fcc..e3a3133b 100644 --- a/po/ca.po +++ b/po/ca.po @@ -3,13 +3,13 @@ # This file is distributed under the same license as the tar package. # Àngel Mompó <mecatxis@gmail.com>, 2010, 2011. # -#: src/create.c:1599 +#: src/create.c:1598 msgid "" msgstr "" -"Project-Id-Version: tar-1.29\n" +"Project-Id-Version: tar-1.30\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" -"PO-Revision-Date: 2016-10-23 18:26+0200\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" +"PO-Revision-Date: 2017-12-22 11:37+0100\n" "Last-Translator: Angel Mompo <mecatxis@mecatxis.cat>\n" "Language-Team: Catalan <ca@dodds.net>\n" "Language: ca\n" @@ -18,7 +18,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=n !=1;\n" -"X-Generator: Poedit 1.8.4\n" +"X-Generator: Poedit 2.0.4\n" #: gnu/argmatch.c:134 #, c-format @@ -97,7 +97,7 @@ msgid "give a short usage message" msgstr "dóna un missatge curt sobre utilització" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "NOM" @@ -135,29 +135,29 @@ msgid "write error" msgstr "error d'escriptura" #: gnu/getopt.c:278 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous\n" -msgstr "%s: l'opció «%s» és ambigua\n" +msgstr "%s: l'opció «%s%s» és ambigua\n" #: gnu/getopt.c:284 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" -msgstr "%s: l'opció «%s» és ambigua. Possibilitats:" +msgstr "%s: l'opció «%s%s» és ambigua. Possibilitats:" #: gnu/getopt.c:319 -#, fuzzy, c-format +#, c-format msgid "%s: unrecognized option '%s%s'\n" -msgstr "%s: opció no reconeguda «%c%s»\n" +msgstr "%s: opció no reconeguda «%s%s»\n" #: gnu/getopt.c:345 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" -msgstr "%s: l'opció «%c%s» no permet cap paràmetre\n" +msgstr "%s: l'opció «%s%s» no permet cap paràmetre\n" #: gnu/getopt.c:360 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' requires an argument\n" -msgstr "%s: l'opció «--%s» necessita un paràmetre\n" +msgstr "%s: l'opció «%s%s» necessita un paràmetre\n" #: gnu/getopt.c:621 #, c-format @@ -232,12 +232,12 @@ msgstr "^[sS]" msgid "^[nN]" msgstr "^[nN]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Empaquetat per %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Empaquetat per %s\n" @@ -245,12 +245,11 @@ msgstr "Empaquetat per %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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "(C)" -#: gnu/version-etc.c:86 -#, fuzzy +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -260,7 +259,7 @@ msgid "" "\n" msgstr "" "\n" -"Llicència GPLV3+: GNU GPL versió 3 o posterior <http://gnu.org/licenses/gpl." +"Llicència GPLV3+: GNU GPL versió 3 o posterior <https://gnu.org/licenses/gpl." "html>\n" "Això és programari lliure: podeu modificar-lo i redistribuir-lo si voleu.\n" "No hi ha CAP GARANTIA, en la mesura que ho permeti la llei.\n" @@ -397,15 +396,14 @@ msgid "%s home page: <%s>\n" msgstr "%s pàgina inicial <%s>\n" #: gnu/version-etc.c:253 -#, fuzzy, c-format +#, c-format msgid "%s home page: <https://www.gnu.org/software/%s/>\n" -msgstr "%s pàgina inicial: <http://www.gnu.org/software/%s/>\n" +msgstr "%s pàgina d'inici: <https://www.gnu.org/software/%s/>\n" #: gnu/version-etc.c:256 -#, fuzzy msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n" msgstr "" -"Ajuda general per quan es fa servir programari de GNU: <http://www.gnu.org/" +"Ajuda general per quan es fa servir programari de GNU: <https://www.gnu.org/" "gethelp/>\n" #. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. @@ -526,192 +524,192 @@ msgstr "No es poden redirigir els fitxers a un interpret d'ordres remot" msgid "Cannot execute remote shell" msgstr "No es pot executar un interpret d'ordres remot" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "La direcció de cerca està fora de rang" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "La direcció de cerca no és vàlida" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "L'òfset de cerca no és vàlid" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "L'òfset de cerca està fora de rang" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "La mida en bytes no és vàlida" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "La mida en bytes està fora de rang" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "Final del fitxer prematur" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "El codi de l'operació no és vàlid" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "L'operació no és compatible" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Arguments inesperats" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 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:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "NÚMERO" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "estableix el nivell de depuració" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "FITXER" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "estableix el nom del fitxer de sortida de la depuració" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "no es pot obrir %s" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "massa arguments" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Ordre escombraria" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "No sembla un arxiu tar" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Bytes totals llegits" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Bytes totals escrits" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "Bytes totals esborrats" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(conducte)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "" "No es poden llegir continguts de l'arxiu des del terminal (falta l'opció -f?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "" "No es poden escriure continguts de l'arxiu al terminal (falta l'opció -f?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "El valor de record_size no és vàlid" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "No s'ha donat el nom de l'arxiu" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "No es pot verificar l'arxiu stdin/stdout" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "L'arxiu està comprimit. Feu servir l'opció %s" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "No es poden actualitzar els arxius comprimits" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "Al principi de la cinta, se surt" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Massa errors, se surt" -#: src/buffer.c:967 +#: src/buffer.c:969 #, 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:988 +#: src/buffer.c:990 #, 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:1075 +#: src/buffer.c:1077 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:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek no s'ha aturat als límits d'un registre " -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: conté un número de volum invàlid" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Desbordament del número de volum" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Prepareu el volum #%d per %s i premeu retorn: " -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "Final del fitxer on s'esperava una resposta de l'usuari" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "AVÍS: L'arxiu és incomplet" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -723,66 +721,66 @@ msgstr "" " q Interromp tar\n" " y Continua l'operació\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Engendra un interpret d'ordres\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? Mostra aquesta ajuda\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "No hi ha cap volum nou; se surt.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 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:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Entrada invàlida. Tecleja ? per mostrar l'ajuda.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "L'ordre %s ha fallat" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s no continua a aquest volum" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, 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:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s té una mida equivocada (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, 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:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "L'arxiu no està etiquetat per coincidir amb %s" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "El Volum %s no coincideix amb %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -790,212 +788,212 @@ msgstr "" "%s: El nom del fitxer és massa llarg per ser desat en una capçalera " "multivolum GNU. S'ha truncat" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "l'escriptura no ha acabat al límit d'un bloc" -#: src/compare.c:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "El contingut no coincideix" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Final de l'arxiu inesperat" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "El tipus de fitxer no coincideix" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "El mode no coincideix" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "L'identificador d'usuari no coincideix" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "L'identificador de grup d'usuaris no coincideix" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "La data de modificació no coincideix" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "La mida no coincideix" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "No s'ha enllaçat amb %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "L'enllaç tou no coincideix" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "El número de dispositiu no coincideix" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Verifiqueu " -#: src/compare.c:480 +#: src/compare.c:479 #, c-format msgid "%s: Unknown file type '%c', diffed as normal file" msgstr "" "%s: Tipus de fitxer «%c» desconegut. S'hi fa servir el diff com si es " "tractés d'un fitxer normal" -#: src/compare.c:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "L'arxiu conté noms de fitxers amb els prefixes inicials esborrats." -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "L'arxiu conté noms de fitxers transformats." -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "Pot ser que la verificació no pugui trobar els fitxers originals." -#: src/compare.c:620 +#: src/compare.c:619 #, 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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "Un sol bloc zero a %s" -#: src/create.c:74 +#: 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:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "S'estan generant les capçaleres octals negatives" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, 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:616 +#: src/create.c:615 #, 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:643 +#: src/create.c:642 #, 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:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, 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:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "els continguts no s'aboquen" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Tipus de fitxer desconegut; el fitxer s'ignora" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "Falten els enllaços a %s." -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: el fitxer no ha canviat; no s'aboca" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: el fitxer és l'arxiu; no s'aboca" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "el directori no s'aboca" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: el fitxer ha canviat mentre es llegia" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: sòcol ignorat" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: porta ignorada" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Se salta fins a la propera capçalera" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "S'esborra la no-capçalera de l'arxiu" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: marca horària inversemblantment antiga %s" -#: src/extract.c:320 +#: src/extract.c:319 #, 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:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Inconsistència inesperada en crear el directori" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: se salta el fitxer existent" @@ -1019,7 +1017,7 @@ msgstr "Es prova d'extreure els enllaços simbòlics com enllaços durs" 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:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Nom de la capçalera inesperadament llarg" @@ -1036,7 +1034,7 @@ msgstr "L'actual %s és igual d'antic o més nou" #: src/extract.c:1664 #, c-format msgid "%s: Member name contains '..'" -msgstr "" +msgstr "%s: el nom del membre conté «..»" #: src/extract.c:1696 #, c-format @@ -1048,23 +1046,23 @@ msgstr "%s: No es pot fer la còpia de seguretat d'aquest fitxer" msgid "Cannot rename %s to %s" msgstr "No es pot canviar el nom de %s a %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, 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:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: El directori és nou" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "" "%s: el directori es troba en un sistema de fitxers diferent. No s'aboca" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: El directori ha canviat de nom" @@ -1192,35 +1190,35 @@ msgstr "%s: S'elimina %s\n" msgid "%s: Cannot remove" msgstr "%s: No es pot esborrar" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: S'ometen" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "bloc %s: ** Bloc de NULs **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "bloc %s: ** Final del Fitxer **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "bloc %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1228,163 +1226,162 @@ msgstr "" "complement a dos" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, 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:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "L'arxiu conté capçaleres amb base 64 que estan esdevenint obsoletes" -#: src/list.c:852 +#: src/list.c:853 #, 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:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, 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:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " enllaç cap a %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " tipus de fitxer desconegut %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Enllaç llarg--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Nom Llarg--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Capçalera del volum--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Continua al byte %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Es crea el directori:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "Es canvia el nom %s per %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: No es pot canviar el nom a %s" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "Es torna a canviar el nom %s a %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, 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:1148 +#: src/misc.c:1161 msgid "child process" msgstr "procés descendent" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "canal d'intercomunicació" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "Selecció de fitxer local:" -#: src/names.c:72 +#: src/names.c:71 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/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "DIRECTORI" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "Canvia al directori DIRECTORI" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "obté els noms que cal extreure u crear del FITXER" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "-T llegeix els noms acabats en nul; inclou -verbatim-files-from" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "deshabilita l'efecte de l'opció --null prèvia" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "" "treu les cometes dels noms dels membres o dels fitxers d'entrada (per " "defecte)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "" "no treguis les cometes dels noms dels dels membres o dels fitxers d'entrada " "(per defecte)" -#: src/names.c:87 -#, fuzzy +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" -msgstr "-T llegeix noms de fitxer verbatim (no permet opcions)" +msgstr "-T llegeix noms de fitxer verbatim (no permet opcions ni escapada)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "" "-T tracta els noms de fitxer que comencen per guió com a opcions (per " "defecte)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "PATRÓ" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "exclou els fitxers que es donen com un PATRÓ" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "exclou els patrons que es llisten al FITXER" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1392,25 +1389,25 @@ msgstr "" "exclou el contingut dels directoris que continguin CACHEDIR.TAG, excepte el " "propi fitxer d'etiquetes" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "exclou tot el que estigui als directoris que continguin CACHEDIR.TAG" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "exclou els directoris que continguin CACHEDIR.TAG " -#: src/names.c:104 +#: src/names.c:103 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/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "si existeix, llegeix els patrons exclosos de cada directori del FITXER" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" @@ -1418,120 +1415,124 @@ msgstr "" "si existeix, llegeix els patrons exclosos de cada directori i subdirectoris " "del FITXER" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "exclou tot el que hi hagi al directori que contingui el FITXER" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "exclou els directoris que continguin el FITXER" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "exclou els directoris del sistema de control de versions" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "llegeix els patrons exclosos dels fitxers d'ignorat VCS" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "exclou els fitxers de còpia de seguretat i de blocat" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "incloure els subdirectoris (per defecte)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "no baixa automàticament als directoris" -#: src/names.c:130 +#: src/names.c:129 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/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "comprova els patrons del començament del nom del fitxer" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "" "comprova els patrons després de qualsevol «/» (per defecte a les exclusions) " -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "ignora diferències majúscules/minúscules" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "comprova diferències majúscules/minúscules (per defecte)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "fa servir comodins (per defecte a les exclusions)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "concordància exacte a les cadenes" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "els comodins han de concordar amb «/» (per defecte a les exclusions)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "els comodins no concorden amb «/»" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" +"S'han fet servir les següents opcions després dels paràmetres no opcionals " +"en la creació d'arxius o el mode d'actualització. Aquestes opcions són " +"posicionals i només afecten als paràmetres que els segueixen. Ajusteu-les " +"correctament." -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" -msgstr "" +msgstr "-C %s no té cap efecte" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" -msgstr "" +msgstr "--%s %s no té cap efecte" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" -msgstr "" +msgstr "--%s no té cap efecte" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "línia de comandes" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: la llista de fitxers demanada des de %s ja s'ha llegit des de %s" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "no es pot dividir la cadena «%s»:%s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: la lectura del nom del fitxer conté un caràcter nul" -#: src/names.c:1358 +#: src/names.c:1388 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:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1539,48 +1540,48 @@ msgstr "" "Feu servir --wildcards per habilitar els patrons de coincidència, o --no-" "wildcars per eliminar aquest avís." -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: No s'ha trobat a l'arxiu" -#: src/names.c:1379 +#: src/names.c:1409 #, 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:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "L'etiqueta de l'arxiu no coincideix" -#: src/names.c:1717 +#: src/names.c:1747 msgid "" "Using -C option inside file list is not allowed with --listed-incremental" msgstr "" "No podeu fer servir l'opció -C als llistats de fitxer amb --listed-" "incremental" -#: src/names.c:1723 +#: src/names.c:1753 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:88 +#: src/tar.c:87 #, c-format msgid "Options '%s' and '%s' both want standard input" msgstr "Ambdues opcions «-%s» i «-%s» volen l'entrada estàndard" -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Format de fitxer invàlid" -#: src/tar.c:197 +#: src/tar.c:196 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:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1809,7 +1810,7 @@ msgstr "Selecciona la sortida del flux de dades:" msgid "extract files to standard output" msgstr "extreu els fitxers a la sortida estàndard" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "COMANDA" @@ -1849,7 +1850,7 @@ msgid "use FILE to map file owner GIDs and names" msgstr "" "fa servir FITXER per mapar els noms i GIDs dels propietaris dels fitxers" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "DATA-O-FITXER" @@ -2065,7 +2066,7 @@ msgstr "refés els blocs mentre els llegeixes (per conductes de 4.2BSD)" msgid "Archive format selection:" msgstr "Selecció del format de l'arxiu: " -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "FORMAT" @@ -2150,62 +2151,62 @@ msgstr "PROGRAMA" msgid "filter through PROG (must accept -d)" msgstr "filtra mitjançant PROGRAMA (ha d'acceptar -d)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Selecció de fitxer local:" -#: src/tar.c:691 +#: src/tar.c:692 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:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "no treguis les «/» del començament dels noms dels fitxers" -#: src/tar.c:695 +#: src/tar.c:696 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:697 +#: src/tar.c:698 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:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "NOM-DEL-MEMBRE" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "comença al membre NOM-DEL MEMBRE quan llegeixis l'arxiu" -#: src/tar.c:701 +#: src/tar.c:702 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:703 +#: src/tar.c:704 msgid "DATE" msgstr "DATA" -#: src/tar.c:704 +#: src/tar.c:705 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:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "CONTROL" -#: src/tar.c:706 +#: src/tar.c:707 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:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "CADENA" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2213,62 +2214,62 @@ 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:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Transformacions del nom del fitxer:" -#: src/tar.c:715 +#: src/tar.c:716 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:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "EXPRESSIÓ" -#: src/tar.c:718 +#: src/tar.c:719 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:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Sortida informativa:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "llista els fitxers processats detalladament" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "PARAULA CLAU" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "control d'avisos" -#: src/tar.c:731 +#: src/tar.c:732 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:733 +#: src/tar.c:734 msgid "ACTION" msgstr "ACCIÓ" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "executa ACCIÓ a cada punt de comprovació" -#: src/tar.c:737 +#: src/tar.c:738 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:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "SENYAL" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2280,35 +2281,35 @@ msgstr "" "SIGHUP, SIGQUIT, SIGINT, SIGUSR1 i SIGUSR2. També s'accepta els noms sense " "el prefix SIG" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "mostra l'hora de modificació del fitxer en UTC" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "Mostra l'hora del fitxer amb alta precisió" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "envia la sortida detallada al FITXER" -#: src/tar.c:750 +#: src/tar.c:751 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:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "demana la confirmació per cada acció" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "mostra els valors per defecte de tar" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "mostra els intervals vàlids pels camps del fitxer instantània" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2316,33 +2317,33 @@ msgstr "" "quan es llisti o s'extregui, llista tots els directoris que no es " "corresponguin amb el criteri de cerca" -#: src/tar.c:761 +#: src/tar.c:762 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:764 +#: src/tar.c:765 msgid "STYLE" msgstr "ESTIL" -#: src/tar.c:765 +#: src/tar.c:766 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:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "més caràcters de cometes des de CADENA" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "deshabilita els caràcters de cometa de la CADENA" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Opcions de compatibilitat:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2350,62 +2351,62 @@ msgstr "" "quan es crea, el mateix que --old-archive; quan s'extreu, el mateix que --no-" "same-owner" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Altres opcions:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "desactiva l'ús de certes opcions potencialment perjudicials" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "«%s» no es pot fer servir amb «%s»" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" msgstr "" "No podeu especificar més d'una opció «-Acdtrux», «--delete» o «--test-label»" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Opcions de compressió conflictives" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Nom del senyal desconegut: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "No s'ha trobat el fitxer de mostra de la data" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "S'està substituint %s pel format de data desconegut %s" -#: src/tar.c:1065 +#: src/tar.c:1067 #, 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:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "filtra l'arxiu a mitjançant %s" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "Les opcions vàlides per l'opció --quoting-style són:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2413,163 +2414,163 @@ msgstr "" "\n" "*Aquest* tar va per defecte en:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "L'ID del grup o del propietari no és vàlid" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Factor de blocs invàlid" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Longitud de la cinta invàlida" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "valor invàlid del nivell d'increment" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Més d'una data del llindar" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "valor de la versió de l'opció de dispersió invalid" -#: src/tar.c:1661 +#: src/tar.c:1670 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:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "El valor --checkpoint no és un enter" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Mode invàlid donat a les opcions" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Número invàlid" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Mida del registre invàlida" -#: src/tar.c:1864 +#: src/tar.c:1873 #, 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:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Nombre d'elements invàlid" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "Només es permet una opció --to-command" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Argument de densitat mal format: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Densitat desconeguda: «%c»" -#: src/tar.c:2066 +#: src/tar.c:2075 #, c-format msgid "Options '-[0-7][lmh]' not supported by *this* tar" msgstr "Les opcions «-[0-7][lmh]» no són compatibles amb *aquest* tar" -#: src/tar.c:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: ubicació de l'error" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "error en analitzar %s" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[FITXER]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "arguments sense opcions a %s" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "no es pot dividir TAR_OPCIONS:%s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "L'opció antiga «%c» necessita un argument." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence no té sentit sense una llista de fitxers" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "Per a múltiples arxius de fitxers es necessita l'opció «-M»" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "--level no té sentit sense --listed-incremental" -#: src/tar.c:2424 +#: 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "No es poden verificar els arxius multi-volum" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "No es poden verificar els arxius comprimits" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "No es poden utilitzar arxius comprimits multi-volum" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "No es poden concatenar arxius comprimits" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "--clamp-mtime necessita una data que s'especifica emprant --mtime" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option només es pot utilitzar en arxius POSIX" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "--acls només es pot fer servir en arxius POSIX" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "--selinux només es pot utilitzar en arxius POSIX" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "--xattrs només es pot utilitzar en arxius POSIX" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2577,81 +2578,90 @@ msgstr "" "No es pot deduir el nom del directori de dalt de tot. Establiu-lo " "explícitament amb l'opció --one-top-level=DIR" -#: src/tar.c:2573 +#: src/tar.c:2582 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:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "S'està refusant covardament crear un arxiu buit" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Les opcions «-Aru» no són compatibles amb «-f -»" -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "Heu d'especificar una opció «-Acdtrux», «--delete» o «--test-label»" -#: src/tar.c:2768 +#: src/tar.c:2800 #, 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:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: El fitxer s'encongeix %s byte" msgstr[1] "%s: El fitxer s'encongeix %s bytes" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "No s'ha pogut utilitzar el patró %s " -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "No s'ha pogut sobreescriure la paraula clau %s" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "Capçalera estesa mal formada: falta la longitud" -#: src/xheader.c:677 +#: src/xheader.c:695 #, 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:689 +#: src/xheader.c:707 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:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "Capçalera estesa mal formada: falta el signe igual" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "Capçalera estesa mal formada: falta el salt de línia" -#: src/xheader.c:741 +#: src/xheader.c:759 #, 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:1023 +#: src/xheader.c:1041 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" @@ -2660,46 +2670,46 @@ msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:1053 +#: src/xheader.c:1071 #, 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:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Capçalera estesa mal formada: %s=%s invàlid" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Capçalera estesa mal formada: excedeix %s=%s" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, 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:1543 +#: src/xheader.c:1561 #, 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:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s: no és un temps d'espera vàlid" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: acció del punt de comprovació desconegut" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "escriu" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "llegeix" @@ -2707,7 +2717,7 @@ msgstr "llegeix" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Punt de comprovació d'escriptura %u" @@ -2716,12 +2726,12 @@ msgstr "Punt de comprovació d'escriptura %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Punt de comprovació de lectura %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2730,99 +2740,103 @@ msgstr "" "paxutils.\n" "Les OPCIONS són:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Opcions de creació de fitxers:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "MIDA" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Crea un fitxer de la MIDA indicada" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Escriu al fitxer amb NOM, en comptes de la sortida estàndard" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "Llegeix els noms dels fitxers del FITXER" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T llegeix els noms acabats en nul" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "Omple el fitxer amb el PATRÓ indicat. El PATRÓ és «per defecte» o «zeros»" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "Mida d'un bloc per fitxer dispers" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "Genera un fitxer dispers. La resta de la línia de comandes indica el mapa " "del fitxer" -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "ÒFSET" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "Cerca l'òfset donat abans d'escriure les dades" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "S'han eliminat els missatges de diagnosi que no eren fatals" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Opcions de les estadístiques dels fitxers:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Mostra el contingut de l'estructura stat per cadascun dels fitxers indicats. " "El FORMAT per defecte és:" -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Opcions d'execució sincrónica:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "OPCIÓ" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "Executa ARGS. Útil amb --checkpoint i i una entre --cut, --append, --touch, " "--unlink" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" "Realitzar les accions donades (mirar avall) quan s'arrivi al punt de " "comprovació NÚMERO" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "Defineix la data per a la següent opció --touch" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" "Mostra els punts de comprovació executats i l'estat de sortida de la COMANDA" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2830,7 +2844,7 @@ msgstr "" "Accions d'execució sincrónica. Aquestes son executades quan s'arriba al " "númerode punts de comprovació donat per --checkpoint" -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2838,126 +2852,126 @@ msgstr "" "Talla el FITXER a la mida especificada amb l'opció --length prèvia (o 0, si " "no s'ha especificat)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Afegeix MIDA bytes al FITXER. MIDA s'ha especificat amb l'opció --length " "prèvia." -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "Actualitza les hores d'accés i modificació del FITXER" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "Executa COMANDA" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" -msgstr "" +msgstr "Esborra FITXER" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Mida invàlida: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Número fora de l'abast permés: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Mida negativa: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "Ha fallat la petició d'stat(%s)" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "mida del fitxer sol·licitada %lu, actual %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "el fitxer creat no és dispers" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "Error en analitzar el número prop de «%s»" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Format de data desconegut" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ARGS...]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "no es pot obrir «%s»" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "no es pot cercar" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "el nom del fitxer conté un caràcter nul" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" "no es poden generar fitxers dispersos a la sortida estàndard, empreu l'opció " "--file" -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "màscara incorrecta (prop de «%s»)" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "Camp desconegut «%s»" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "no es pot definir el temps de «%s»" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "no es pot truncar «%s»" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "ha fallat la comanda: %s" -#: tests/genfile.c:781 -#, fuzzy, c-format +#: tests/genfile.c:772 +#, c-format msgid "cannot stat `%s'" -msgstr "no es pot truncar «%s»" +msgstr "no es pot fer estadístiques de «%s»" -#: tests/genfile.c:785 -#, fuzzy, c-format +#: tests/genfile.c:776 +#, c-format msgid "cannot remove directory `%s'" -msgstr "no es pot definir el temps de «%s»" +msgstr "no es pot esborrar el directori «%s»" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "no es pot desfer l'enllaç «%s»" @@ -2997,6 +3011,9 @@ msgstr "Comanda finalitzada\n" msgid "--stat requires file names" msgstr "--stat requereix noms de fitxers" +#~ msgid "OPTION" +#~ msgstr "OPCIÓ" + #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: El paràmetre ARGP_HELP_FMT ha de ser positiu" diff --git a/po/cs.gmo b/po/cs.gmo index 61ab3410458b403e9fb7b20b00bf8de00db3a3c0..125828d3f2676af18dfeec83e169f7771d39a65b 100644 GIT binary patch delta 14915 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 E0MTn!p8x;= delta 12848 zcmZ4WkNM9V=K6a=EK?a77#QrB7#Iu~7#I|U7#J9t85jgq7#Kj}A_fpz#(;rA0i=L| zfx*XsfkBdifx*{+fkA|Ufg#<1fq{*IfuRPZhJk^h*?@sTo`Hd3i2(xx4+8_k5h#7p zfPtZ%fq~(k0Rw{=0|P^vAwxZb9s>hItsw)0Dgy(<8bbyKK?VkfONI;#!VC-yPYf9t zlo%Koei$+^xHB*?NE<OQs4y@vBpWd>@G>wkbQm!($S^Q4OfzC&&}U#^*lYx`_^}ZK zgEa#K1G6y$gA@Y;gS|1t+$duP25|-kh8$xC22lnEh8E*`1_l8J28LP23=DD%3=FG{ z85q<U7#L0&Lwxqpn1R8Hfq{X|1mX}!69xt|1_p){69$Gj1_p-NCJ+mLnJ_R&FfcHP znldnGGB7acnL>OXVamXe!oa|gYRbT%12WeX;(+g_3=BpL3=I7BW(*953=9lTW(*7_ z3=9k<W(*9<3=9k_%@`Px7#JANnn8lfz#QU0cXI}YGEmT&Gk`<pt~mpP9RmXcg9QTv zKgg#R3=9ek3=IAj3=BdH3=9Pp5Q~~E7#K7d7#Ox$Kpc4A0;0d3(~^O~n1O*o#}eYR z1WQPWOt*wsxWW?Rz~hz>hyAo<U{GXWV34(fIN08bfx#T)a4QCIRIagtSa92lfx(M` zfq~T;qCUWyfkB#qfuYD664iay;E<?i*kTQF*%@m{P=2+BxLm-7fkB;tfkD}ZfkBpm zfx#O}XWBp#WIL4KX~V$4%)r2~+y>&K)iw}^owI=?N@iO~V&$@BVBlk5U{Hb5#<n1P z>KPcEY#}ZVwS^>_dRs^$+ieR8x(Bw95E8b7Br<m>U2X@7)8%#$hhMQ{V9;h@V0do_ z2{~zd1_oOO1_mp81_m1j28IfIu#XwG+Cv<6)}DcZy`F)A;fg)Pf;;vM46Y0e3<3@i z2ZcE>FqkqhFf=$o65%!nh=m^=AR#8_2=SS_BgDapj*zs{<_O6Ja~&ZL+Uv-`;Ksnf z@X`@tkAV{dgBB<eJ25cSgR)n@6U3rTP7s&9aDoK+dnZVo@j64w22E#(52BnI7}!B^ z38kx`bdxhAF?Kmaa?wd=h{HZOLo60`VPJ@4U|{fcftb74g`pmt-S)dcT>i`jl34z_ zKwK{G3gLUZLK0uDD<qC5x<az&7FS6AKj{hy@@K9PhqJmt$`55XNNzB9gP0%T2GN)A z1__}Sw|YpnS>ndP;K0DZu*D4$#9!SY1}V8i403RXXb5p<U|<2Ic6Uhru5^bazBYGA z8t8I|Sh&<3l8cVHLkgPfQ2lS+As*rNfH>H&-UA{K-~r7>9uOa|@nB%!Vqjo6=K=BY zO%I5J{y_Oso)80UJsB867#J90JRu(0=m|-*2R$Jk`QizQYeg>z-^UB$fl4n(RM*#e zL44Ng1qq_1UXaAH#|sj7%-#^6X?R0QIA?E2Q5xe7NvwI^3=D~k3=CVmAr_1ILLBPp z3-NinFT`QBzL2Qu^<`jiVqjoc<qHn+dWN^Y4B!Gq&yRtDn}LBLzz<SD#P~rpH2E<w z=rS-c%=d#t#aTZ{B7Eov%D)T@Km8yU@%TeLqT~;WV<&$|RD}CO%&G8)<d&)akaA_c zKd3yYXJEMQ5AoqMe@F;020#=_1VAh_3V?{aLHV%(khm=jfEe5a6`vmfanR-fNC+GY zfaH=V0T74134lZaPawoT%RmMOQBeL5353*US%HwasR)FGL~S4>jyeM&KAI2+iSwm_ zkT^XO2no6OP+Bku5@p6vIwA;CVATdeiuScZ5T8E@f)sQ-!3+%bpvuD|7*e3L2Sdt% z4Z)Bge-;cWh(tml7TSd{FcdQ|Fl2@>FgP+WFx(A+I7~hi5@IHykdW~Uh2)O-P)G>n zghKRphC)2JB^2VZouLf%;3D%tC?rw635CSvzfeeG6A6PDs2c_eLc1`C#yBXQ8pgoD z3aZb;AZey33=#q}!XUY6Zy3aZU&A12hASMB+myl~m6cm~J*1#14Tscn3&TN)f`Q?3 zI3z9~g+t=-Yd9n^{SAjifm{T{C$<rg)a?`ju_!145)$bV5DOY3z^R;JLj)v>KSn@8 z;(r7rmub~ULM$qbglKGugcP;&A|XCHAIZSr!oa}rHIjkB8C01>K@w426eKQJM?rjc zISOLV>nKQK{TBsEyrR(%hiXPcLQW6LH-+-+t)d}8=ok$tlii~sL7yBAv8W~*5+y66 zAtA6o8WOh;q9IZ8HX7mp-WZ6_RAV3^8W01i18Si3;uuIsor+;#C}dz@xD^8q$$AE# zScnU=p>#nk14A?;14C&nBm^$TL4xvo9Hb;vi-&}iXFSA*$?=dhQV!*J#4|8NF)%R9 ziHD^6@9~h_q?f?J-~$T51c?6j1ds>n85kBOK;rIT0we^kB|r@RlmPKLTOuTAWfB<} zJQx@l^b;XIu1JLFn~(^JvZaZTAikE!zz_z?9f=GKo(v2OCP@%}T@pn7)g(x5_$rBk zK_8U=<&q(Z%r6<@fUsmp_A5$;#N~oya8NO9Plh<`S~4U=UP0w0Qy}@-AO&J@P6{O7 zFGztz#f20|TKSU#N&PCRAfGcZc%(8g)Pve&8L5!CX-Q>Z2x4Ghn34(!s^_T;44fbz zq(NxAG)P+UfYN?xkfvBj8l)}=OM{dbbJ8Fd9!rDd|95GSsN_zEc*HQBfgu4@)TcAl zgPX-0(;-26FCF5;Z|M*XTp19b8e~91BpyolW<V0r?hHs<Pd5`%TP9^fEXd7-Slp8d zDbQACLMom6nUL(Qlm$sMhFSHH#Nm_$ae!YIL}MD1Zq9<l*@7%c8rYfzDRNI_K^*i7 zs!t*tQX(2;L-Ki1Hbi|xHYB%9&W7Zs1=$b}p3R1s`>-C$_?8WcL+%_%DtFIeV8~)% zV93gW6wOz2AeF|y90rC|1_lPnTu9v3=RyoxoePQc1G$h?{~;HW9o6$7i8Ck<BHx?` zX^d{pgEZCZKjcANrk@XqyO?~4L|Z;2zaPzq#O*UEty2IA%Ax{@!?qScO3r%)5DNqf zAwla<2&n}F3mF)~85kJy3n5*&<Ao51^A~{=V?Bd)5yVCDMUc3hQv?a(i$#!B`nd?= z6X9YA->w)UA6E?VX+tr@qV2^H2VX6QIPhCBB#JCcAnMagAnH0xAa%s@5>Uw0GccSf zfdu{E5(WlK1_lPpQi#UlQm_jd7DDNxrI7smvJ~QT<1$E;#FRnew7d)=-VLR<ltCPP zw+v$8-!e#AQ!0lzM6aBIK^v6+eaayQRg^>Gax#>^q8#G$!{rcz-jzcfz*hkY;)n`} zzRU_p?b%WRiOOje3=G~33=D@WAP(ZMgwPh1kh&zX5)#tODj68+LA~DFm5}`UtCE3X zJp%)SQWYd5E>%I&1Wz?2&djPIK1r&El<n=+kP>oTH3P#_P(Qz#fkA|kfnik*q)6Xi z3yJ$9wUAm+rVf%uV(TE;ySI*^9^8xFTnBOawK_=9GuJ~D7}i4^0IQ}O>meoL+ImQk zAAx4y8}*Qq^9i&$&(Ht~8G#0f!?hd09b|^^21p1`Xn^#nmNwKwTCEQnATASbgaoB? zBP8fU8yUbO9Su<aEGT`n5mI7)XoTovXo8fC22GGUz^n<<_p@z+=&x>qgxJ(3NV%}5 z2~x0~uWw>th-F}4_}2unFs2z2679_ppKpQE_nIN)0!Is^Wux5!iHhVFNb2rrfp}z9 z3nb+3LgkrTA!$dW6_nZ;7(7}b)q7<tq@=8$)C%#*##ROfKL!SdgRKk<!JtlP8zcx* z+8{w#-v;sF>Nbc48`~hM`Fa}z!#73-hR1CX2jA*oVCZ9DU|{Klgv8`dNaCB-3GvwB zPDluU=meLP^$bj13=C^Q7Is0h#l9{`(A?>Q1Q~ZXB*=`qAw{!mH^fIt-H=q?)D3aa zxo${e{L&5a8CMS^L^OLK1yoEABoX%YK+HYg1Ik793=H3TAO^GdLR_lS3w9ZUZ!g56 z=w65g)xD6!x3CvdJMQR(RJW{s3=Hw0a-)xdVIBhm!^}R2M=bgwbxK%2B+ByoK^8JF zEbC`r*vi1bu)Uvw0hGWQawkA6nm++j^zNSkDJuU>fVBDCCPIR)Ya#=~Hju`NkT}nq z1WCmcCNVJFWME)8JqePAmQH41$Yo$)xG)(KwRTe=`u(OrLb7@aq`>Q&!oW}u9+iSB z_&x>VQ<bR@gT1Cg9Mn1$;`1X@AwhS0D#QS$X^;}qZW_emq-l_Hqjwr4YK~81V6bOk zU=W@TiHhLq3=HWE3=D14AtC*4I<)^UJ_AxB+0B4NMez(sVwx}mV&SeCkbL`a1|++E zn*mAvYBM3(%X=oI8=g87BA+>vfq@AW6*D0onllrU1`f@Hw6wm=grt!_GwUHiB0URI zpy<tlBqFC-kV+|H7Q_crXF*(ibrvKp|ILCJXf_*CU}emPR65gUL)71#4XKPI=RiWx zY7QiXD(66=cF7zDhCl`ehBx(dpg}knQe-C0g=CxbxsV{sn+vJ$7tVzg(d_e}jnH|J zvb<s*ByRW4gXHg5^B^H2Js-k1oe%M8+I&a}*g78)Li^@J98mvmJ|urTEP(hhX8|Pj zPF(=euz3L_-@jP^Nu-|^K%z!yAp?Ui0|SH2LP(T#Erd9H`9cN;4h9B>bqgVF#_bCs zY3blXNL2n=2+^;+2;4NQXYgIbz)%1hG+qQz@MRIi=hBNIWxC&Dh|jYYL$ceX#gGs? zwix2`SBoJfqxcd?5L+#Q_&9Y5#3L<BAh~7H5=c}ZSpxCMb+Ed628QoTAgNnyDa0b( zrI36Yx)f59r7eYo(AT99ixihZ)VnN$G(e)4K|*NKGDyibV;RKftCm61(3WKo{U4V> z93Z<K;xL2d3=Aru`rmIk#Ny)R5SPtf4zXzWa!4HCTMkKd$}1p29K8afK4}F+eb)+z z`c*3+A$N8KWN?~cCB!4~D<PFp!AgiZ>sCS%@3WN*4E3OqNr_bugF{zAvPaA+NcKuu z1&Q0vRSXPy3=9m*RzZqp(bbS3c3BNc<;kldxu#_`WPESdY6gZrMh1p2t04tg^IAxy zb9^nNM0~Io5)wbwGSq`dtGU-f5|hq428J{S28OD2ki__K9i%AcS`Trt#Ck|vdaZ|K zqn!1SsMxX|5(1~!Lo9f=9umZC8zA{#Wdp<kUK=3#k~cu~t=>=%@#&!rkf3|M0TPE& z8zBbiY=kIu*$7b=y%CbV8a6@-q*+jP>!Iq7Z-m74J*YU>CWwBeO%R7zZh}V1CWwOz z>Ni2+crsMr#wJLr|Gf!ff%s-f;?mg+>A4tfhD4R)W=Qqyu^AE-$(tehy=gNfdu`qf z@z7nUxWE>OyyF%~S}58AiJJNiTOir$3sgX3E2MVI*$OF=cW#B0Xz#W{QoG(ZNE%4p z21!g)wlOeFU|?W4vklTXjol7$`10+LAm6hcl3lNEhxq*Gc1TEY?EvSFdIp0X5Fh34 zfF!<>9gx&rvjY-zOLjm)WcLn;Pp|KQ6xH8$K%#_eCq%#gPDq2qY$v1ua@q+g>AZJB zis<T{5Ra_f35mj&J3%2>&%nUE3+xgGxm}PTiQWZCB=dJc`gG5CK~lHoZiqwdcSDNm z=-rUSn6Mj?4V!jDJg{gtBz3Ra4M{_LcSAgKbvGoW-|U7Yc7;6*3{s%{pSK56)OPM+ zU<hSkU^uh~;zEhN5QB~OGBCt2Ffat|g~aXpy^!klCX`m)2Pt9;_d()(%|1xByuT0R zLk0$h{S2V?DTDNW28Lb+28Mb2Ar93!z`#%s8pk&|00}ai1CWx-^#H_&{s$mF4mkjE zNWlR}BARdjQZ5`k04~EB?j3;mSmYoiuGJ4h9N>Krl2&pKLL4^xAf$*scMy_Reja3~ z2Tuw)A7WtWW?*25KLqjN>q8I+h#rR2>r#gq7?hY87~~E^5|86ih{fqgA!%jqQApZ2 zdK41WPmV$o-)|^i<QQZcPWu>SQfk66NV#(RSUm$nEof@w7{o{E$03QT<v7HEmB%3t zI&>Uj@SEe15Me$6q2*6NS~S)tAO+51sQAGXklb_k1Y}@B=p-ZxWKTlciVIFMFw6x_ z+tr_fB$9cjAlYf#DM-`m-6@Dht<#X8G(8PzT7{j4gusN;kOE}eX-HbRc^Z;EKc9va zU|MG&A!Ks~QcD({fp}#88HoOqXCR5U{{0z<%LUIu4AMUfN$s9zAq7tSS;#;{-dP5Q zXa)v`n`a?GXL=5j-JH)s5|jTqNZJWM2Z^%8bC6N5)N>FI>^TQX19#6ss(FF)U=P$Y zn4gCvnyB-TII24j$qkRsLxNc50))1>08tlm0pin&3y}Q1{sLrx;{F9lkg8sUB+|nd zArAU-5fYXEE<!viehCuNrk6mut)77)_Yy?GVJLm)5=7zGOOUi6d>NAZEiOY`9&s5G zW%ZXKK{)*~q;lGM8REm&mm!H!?h2%9XL|(_LbI<x3a-UhASLAXD+~<kp!|R43MBh{ zxdO3>{VF7}sb7UO9__9|EULZAz|aVq3AqZfQ1Kc>Jop+Uib}6R9Pr>8M8EKLNKvkJ z9TIir*CDy(@^y&1-`5!!>OmuvdN&}A%8DD1M&ZF5ki;f@6JmhxO-RW#>n0@eoVy8` zboz1=lASznLGtsITaci?cMB3F{I?+mQ|N6-6i&DeaqybkkdQfdo1q>&Nvv}R;-m6A z5Erhz11XX(-hsH3?=GZTb-W9a&xP`*-i4%zgLfgR`{`YXgZb}4O1_wT5cTEvAP$^= z50Z9X-h)J~!u@(kkh|W8Sde-jV&TO53=9FF5smwxM8d!z`T$a9XFq^Abms#|{(k)c z60`~rA=P-zLr5Aq_z;q&UOa?kL&irCi_ITFO2E8FkdT^L{|J)pPCWu=2Zkq)AO^EP zh6J_EV@P&PdJJ)B#bZb>cE)2!9N&Bl@!5yRki=#61d`qSo<QXDpFkYm_Jn~U0yNkB z1mY0grx1_Ur#xj~@MmCPnEn*fgL(cGQeA32gSar_83V&11_p-CXON)vc@D{TGokd! z=a7*5`5Y1jsxKh9!~X>X!xzxnkQWRLii`{lF)tyxpzal9?6>U|189({p5gf`NMbR5 z4T<y0*ASO&dkt~G%h!<nD)j~u^g(YRLD=#J613~zKoZx}H;^D_d<$u4NWF!`z4lv3 zS_pm%DGBr5LPBizTTnG$&%p5XEkvX4JBUSYP`d6NBr3MOgCw%oP;vhE5DVSkL$YV` zdx*mqy@yzQA1eOgJ*4TT{{hlKG5rAcF@wzqNcqz70XqJ_>;uGw*FHev=Hmwjh8zY4 z291x9>T~KxNZcLy2&o%nKSAioPY@qX{R9b_L!Th6<}aTh1(57#NLsP^4Dnd)XNY-Q zKSR_#`OLsj4;u00{Q_~3`xi(eOZ@^VkXpYmFk~_?FwFSEz>v?tz`*nsk|>M5LJXeq z72>m-Um*rQ_zI~TIKM&W1waE^ph^ye?HCyt9)jkH86fGxijjfAgOQ=0!H9{0;U^;l z!!rg3hNTP)456S^N1zoh3=9m{K`T}m85lN$OkiMOh-GA8m=BfL19k8j7#P+wGBDhQ z%7ZA-dY?&*3=H~=3=9s83=GOpbs#wqE?|Tda^U4VjG*$Dfq@|bYA9$84``BzgOPz@ zCsYhHVgb?^#0ZIJKB$4Rj0_BHP&I!+3Xm{pL5ew4&VZ4D;TI#Mfpd|8fuWU=fngs5 z1H&dp28Ji~jF9{Z(woW1z@W>>z%UEsOVIiZr~yYAA%zM^%{2xFhN~b35>8@dV0g<2 zsT;l_iI*}mFkEMZ4D0bg9jyd4^ERmK&cwh_e;z6TT5bhe=>(ci1(^Yw(^p_*V8~}= zVAus!^BGEm<Y9OtXt@?6149;64zyqeBxeTYb1^Y6bTcwAa4|A4Tmg-eF)}b@FfuTh zFfuR*GcnXNXo2F0fq_Ask%3_vBLhPOBLhP=BLl-pkP8_Z7?v?GFvKx3F#H28&tPO= zc*VfLpw7g=FpYtM;X5M(gDDdO!&e5#Gz-Y$7)Az$PSE@xD1m{-6&M*9_Cp=h!oa|w z#RO?zfYdTDK;s|6VPFtqVqkd0$iQ#_CV)h{GeWYFCL;qwB4{3vfq@}}k%3`4BLl-} z21wtbpAoWb3#4r}0|UcEM#%8ZdyoJF1H%DE28IWW3=E(pcNUBc44U;!3=9<@g$xV~ zYD^3aKcFt1%mC?fOGD#Lo{51$iiv^Y5@@v?sBB<_bhV`!85oQi85p#o>Ol6)g_@B8 zG6TwHLXuw!6=Md)zX?=g9wP(89*}M*KE}wvu!I3piC8l-Fi1i*y@S$Q85tN}GcYhb zXJlZw2yy^apB^IvLoFx~GeCMze?Vyi)Tv>B%ng8)Ee8<{;KB|y{AV&SFsL#zFie6f z04+9<Wr7T=CNnZH?1qZND3ERis0Tom7)bm90|Ub`5Cb%(%*4Qu3UzP;BLhP@0|UcR z(5f1chnN@`mVxp=XxZHf1_lN{Mh1pA43K&pRQ&z~#VI2L!wN=7XT*n*fq{_;(tQS* z|Amo(p$NoaU|{&fz`)?j$iPqswQMhxzQe%4@B)-Q85kHIf@Zxz*&3<`)bkPr<$qAm zrWmRLG+eqJGzAOFc2I?&p_Ic=HZt`Ws^=w?hRK~`U|<kpWMFs!T2aZsz#svNN~juL zCI$w3Mh1pI3=9nS85tPrKQS^e$S^W6tYc(gD1n;rjFExi2m=E{BO?Pt4Fja|xdkf4 zpz?JL3=D!yklGKlEE6=EeHd!N1}H7T1nE(oVPIg01Qo|j3=9E`kPawld{C5$fngym z|K%_;FbFa-FiZgz5Kv1jm>3vTm>3w?p$3BH2visu7@`;%7;b<D7#SECRzuaYK+^z- z3z~Y@VT5$IKztD9W`uORK<rnb2`UB#25YdMdIkn|CI*ITMg|4}P@%)fz!1jBz%YXW z(*0V_$iOfYRL(OoFqlFe0y1O;XzeC+#Vlxc6SQ^=Bo4yDP<5bHl5UI)4DT5k7;G6C z7&d?ww1UcgP-}~UfngCyF(?ItXwaHY5Di-K2%<Te7#Mh&7#LKU7#PkmFffEOGBC(7 zF)(y8GBB)Ugfvcff|hMEL0U6XP)n;A85q(TAq^DJswt3J2N@yNIEW2eej5)}3*v+A zF9oqc2?A6TLfP9HA&m<VcL%71V`N}xWnf_7WMp7SgBq|1RP}<2YX$~}%b+rV5z@11 zVPs(7XJlYF&j4wNfXskle^6VHfq`KGM4+C*2^6Og4tOkZB?Dwa3AAFd3~CWb8nkW~ zL^m-)hGpL{GB9X>;}9|{0+Iu*Y6Q{GK?DN>!)-<eh6_+LK<kVbFfuSyLFGiidg~b& z{xdQ#yadfqgBBDsFfcr3fV6_R!3rR%1EGe<FflNkg|3zc$uxr&l!9hVL5q?Z7#NO2 z)lCNFCPoH^LPp49mQ{?9M(tiux?x~o=m$;DfD8bIKWLpUi2V;#MM4b#O~HZ0#F!Wu zCV+AW0|UcHsGJ!S1H%a@8>9xb%+{QVf#Exd!@$6Bjgf)jIB1%Mk%6I-k%8eVBcx{x zk_Juh-eY87_{hM(U<fMz85tQE3_v-6fq~%$BLjma69dCN&;kQc?FQ1pz`#(+z`*bt zYN0%oUc(5PbONm%7H48$*a1~*%*4RJ3~J#pGBAiSGBEHmGB7*>Rc@eW94IG&(hvg! zLl*-B!*5XguLqP!poSJfY0ye#ka@n03=CdSvBiv#0f#e;kO4;*Mh1reAVr|W2g=W& zwLMG>4CRar467L#7&w?17`i|O8K`0dWp7Zsfe|uM4b{f*8C3s+78kz*i7<gj${5x% zGB9{TEj5JFtc;Le3}^%dq!hGRU73-AVGaWWLoR6claT>5=M0hpW6<;)hyhw;4w~Fx zVq{=&WMp7C3pMX4DD)T^7*2u8|6ou;VPIhR0IDV#85r(B6@d%@&Ewlb6Cxi}9JE9S zBnMh645C38w6eJu)UW_e;ez6xfq`KoR6Q$He>;fJ$iUFS2<g<$0G0nNj0_CFL6$Qz zF#KR(U|0-F7$6ftO)5r6pAf2_p$Ak2gA8F{U;sHBqztqSUlCN6GcquIWn^IR2Gtp$ z)XvDjPyuS;fE1x&Q28(Zje$YMfI*tU!hnH6{u`w82vP?!|NsC0|2@A=E;7{HoMSYZ zakHU`9P{Q}^L=cS&)ZF%++x3Av#)~y)8@5KeH@$Jy>~JCI0m@~>nVg5r>2$WD3oWG zWGLwBCTFB3XBXsW=9MTU=A|g)=cOv-r-8&vOLP=;brTB;Qu9(ktdjiF<O~p_G%qJJ zFMIJ1AC}FQf!jD(142Cg{Wiai%;4Cpl3d0;d3#>mX0`k<873pk$#vbf7UsH!M!JUP z3Wi2j#)jGkMg|640sgu{sb!hPnfZCTE{P?nRtiQ2hGx13rn-h^3Pwg&#unNJMw>r( zPh{Mj-xtfYSzzK1=FPfO-8d(E&R;iKalwYoYzu3cCMzsa+AO{#lxuU<I)0|OfTH}e z)Ra^O#~}AmUsu17NIiwnqx&*TQjhfJ9bTzWd}slxZxymqQ}Pb4%~hxZ%MkGI=8g^L qST--+%FWGnbcSod;a)$-BRz}P9pKr#`s^0o$xXMrHtXK`s{{Z&_CLG; diff --git a/po/cs.po b/po/cs.po index 3d5cd4d0..5bf9df41 100644 --- 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, 2011, 2013, 2014, 2016. +# Petr Pisar <petr.pisar@atlas.cz>, 2009, 2010, 2011, 2013, 2014, 2016, 2017. # # 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ěž @@ -13,13 +13,13 @@ # tape → páska (rod ženský, vzor žena; ne pásek) # seek offset → pozice posunu (pásky) # -#: src/create.c:1599 +#: src/create.c:1598 msgid "" msgstr "" -"Project-Id-Version: tar 1.29\n" +"Project-Id-Version: tar 1.30\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" -"PO-Revision-Date: 2016-05-16 22:38+02:00\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" +"PO-Revision-Date: 2017-12-18 21:48+01:00\n" "Last-Translator: Petr Pisar <petr.pisar@atlas.cz>\n" "Language-Team: Czech <translation-team-cs@lists.sourceforge.net>\n" "Language: cs\n" @@ -109,7 +109,7 @@ 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:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "JMÉNO" @@ -147,29 +147,29 @@ msgid "write error" msgstr "chyba zápisu" #: gnu/getopt.c:278 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous\n" -msgstr "%s: přepínač „%s“ není jednoznačný\n" +msgstr "%s: přepínač „%s%s“ není jednoznačný\n" #: gnu/getopt.c:284 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" -msgstr "%s: přepínač „%s“ není jednoznačný; možnosti:" +msgstr "%s: přepínač „%s%s“ není jednoznačný; možnosti:" #: gnu/getopt.c:319 -#, fuzzy, c-format +#, c-format msgid "%s: unrecognized option '%s%s'\n" -msgstr "%s: nerozpoznaný přepínač „%c%s“\n" +msgstr "%s: nerozpoznaný přepínač „%s%s“\n" #: gnu/getopt.c:345 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" -msgstr "%s: přepínač „%c%s“ musí být zadán bez argumentu\n" +msgstr "%s: přepínač „%s%s“ musí být zadán bez argumentu\n" #: gnu/getopt.c:360 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' requires an argument\n" -msgstr "%s: přepínač „--%s“ vyžaduje argument\n" +msgstr "%s: přepínač „%s%s“ vyžaduje argument\n" #: gnu/getopt.c:621 #, c-format @@ -244,12 +244,12 @@ msgstr "^[aAyY].*" msgid "^[nN]" msgstr "^[nN].*" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Zabaleno kým: %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Zabaleno kým: %s\n" @@ -257,12 +257,11 @@ msgstr "Zabaleno kým: %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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "©" -#: gnu/version-etc.c:86 -#, fuzzy +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -272,10 +271,11 @@ msgid "" "\n" msgstr "" "\n" -"Licence GPLv3+: GNU GPL verze 3 nebo novější <http://gnu.org/licenses/gpl." -"html>.\n" -"Toto je svobodné programové vybavení: máte právo měnit jej a dále šířit.\n" -"Není poskytována ŽÁDNÁ ZÁRUKA, jak jen zákon dovoluje.\n" +"Licence GPLv3+: GNU GPL verze 3 nebo novější\n" +"<https://gnu.org/licenses/gpl.html>. Toto je svobodné programové vybavení:\n" +"máte právo jej měnit a dále šířit. Není poskytována ŽÁDNÁ ZÁRUKA, jak jen\n" +"zákon dovoluje.\n" +"\n" #. TRANSLATORS: %s denotes an author name. #: gnu/version-etc.c:102 @@ -416,15 +416,14 @@ msgid "%s home page: <%s>\n" msgstr "Domovská stránka %s: <%s>\n" #: gnu/version-etc.c:253 -#, fuzzy, c-format +#, c-format msgid "%s home page: <https://www.gnu.org/software/%s/>\n" -msgstr "Domovská stránka programu %s: <http://www.gnu.org/software/%s/>\n" +msgstr "Domovská stránka programu %s: <https://www.gnu.org/software/%s/>\n" #: gnu/version-etc.c:256 -#, fuzzy msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n" msgstr "" -"Obecná pomoc při používání softwaru GNU: <http://www.gnu.org/gethelp/>\n" +"Obecná pomoc při používání softwaru GNU: <https://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 @@ -548,145 +547,145 @@ msgstr "Soubory nelze přesměrovat ke vzdálenému shellu" msgid "Cannot execute remote shell" msgstr "Vzdálený shell není možné spustit" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Směr posunu je mimo rozsah" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "Chybný směr posunu" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "Neplatná pozice posunu" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Pozice posunu je je mimo rozsah" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "Neplatný počet bajtů" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "Počet bajtů je mimo rozsah" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "Předčasný konec souboru" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "Neplatní kód operace" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "Operace není podporována" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Neočekávané argumenty" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 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:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "ČÍSLO" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "nastaví úroveň ladění" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "SOUBOR" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "nastaví název souboru pro výstup ladění" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "„%s“ nelze otevřít" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "příliš mnoho argumentů" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Neznámý příkaz" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Toto pravděpodobně není tar archiv" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Celkem přečteno bajtů" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Celkem zapsáno bajtů" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "Celkem smazáno bajtů" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(roura)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "Čtení obsahu archivu z terminálu se zamítá (nechybí přepínač -f?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "Zápis obsahu archivu do terminálu se zamítá (nechybí přepínač -f?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Chybná hodnota pro velikost záznamu" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Název archivu nebyl zadán" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Stdin/Stdout archiv nelze ověřit" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Archiv je komprimován. Použijte přepínač %s" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Komprimovaný archiv nelze aktualizovat" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "Páska na začátku, končím" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Příliš mnoho chyb, končím" -#: src/buffer.c:967 +#: src/buffer.c:969 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" @@ -694,7 +693,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:988 +#: src/buffer.c:990 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" @@ -702,37 +701,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:1075 +#: src/buffer.c:1077 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:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek se nezastavil na hranici záznamu" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: obsahuje neplatné číslo svazku" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "U čísla svazku nastalo přetečení" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, 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:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "Místo uživatelské odpovědi byl zadán konec souboru" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "VAROVÁNÍ: Archiv je nekompletní" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -743,65 +742,65 @@ msgstr "" " q Ukončit program tar\n" " y nebo odřádkování Pokračovat v operaci\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Vytvořit podshell\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? Vypsat tuto nápovědu\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Není nový svazek; končím.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "Název souboru nebyl zadán. Zkuste to znovu.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, 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:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "příkaz %s selhal" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s nepokračuje na tomto svazku" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, 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:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s je špatné délky (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, 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:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "Pro vyhodnocení vzorku %s musí být archiv pojmenován" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "Svazek %s neodpovídá vzorku %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -809,11 +808,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:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "zápis neskončil na konci hranice bloku" -#: src/compare.c:98 +#: src/compare.c:97 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" @@ -821,75 +820,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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Obsahy se liší" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Neočekávaný konec archivu" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Typ souboru se liší" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Práva se liší" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "UID se liší" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "GID se liší" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Čas poslední modifikace se liší" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Velikost se liší" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Není odkazem na %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Symbolický odkaz se liší" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Číslo zařízení se liší" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Ověřuji " -#: src/compare.c:480 +#: src/compare.c:479 #, 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:535 +#: src/compare.c:534 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:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "Archiv obsahuje transformované názvy souborů." -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "Při kontrole může selhat nalezení původních souborů." -#: src/compare.c:620 +#: src/compare.c:619 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" @@ -897,46 +896,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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "Osiřelý nulový blok na pozici %s" -#: src/create.c:74 +#: 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:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Generuji záporné osmičkové hlavičky" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, 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:616 +#: src/create.c:615 #, 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:643 +#: src/create.c:642 #, 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:1106 +#: src/create.c:1105 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" @@ -944,78 +943,78 @@ 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:1204 +#: src/create.c:1203 #, 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:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "obsah nezpracován" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Neznámý typ souboru; soubor ignorován" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "Chybí odkazy na %s." -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: soubor není změněn; neaktualizován" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: soubor je archiv; nearchivován" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "adresář nezpracován" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: soubor byl během čtení změněn" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: soket ignorován" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: dveře ignorovány" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Přeskakuji na další hlavičku" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Z archivu je mazáno to, co není hlavička" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: nemožně stará časová značka %s" -#: src/extract.c:320 +#: src/extract.c:319 #, 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:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Neočekávaná inkonzistence, při vytváření adresáře" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: existující soubor se přeskakuje" @@ -1038,7 +1037,7 @@ msgstr "Zkouším rozbalit symbolické odkazy jako pevné odkazy" 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:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Neočekávaná hlavička dlouhého názvu" @@ -1053,7 +1052,7 @@ msgid "Current %s is newer or same age" msgstr "Současný soubor %s je novější nebo stejně starý" #: src/extract.c:1664 -#, fuzzy, c-format +#, c-format msgid "%s: Member name contains '..'" msgstr "%s: Název souboru obsahuje „..“" @@ -1067,22 +1066,22 @@ msgstr "%s: Tento soubor nebylo možné zálohovat" msgid "Cannot rename %s to %s" msgstr "%s nelze přejmenovat na %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Adresář byl přejmenován z %s" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: Adresář je nový" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "%s: adresář je na jiném souborovém systému; nearchivován" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Adresář byl přejmenován" @@ -1208,194 +1207,195 @@ msgstr "%s: Mažu %s\n" msgid "%s: Cannot remove" msgstr "%s: Nelze smazat" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: Vynechávám" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blok %s: ** Blok NUL **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "blok %s: ** Konec souboru **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "blok %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, 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:817 +#: src/list.c:818 #, 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:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "Archiv obsahuje zastaralé base-64 hlavičky" -#: src/list.c:852 +#: src/list.c:853 #, 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:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, 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:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " odkaz na %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " neznámý souborový typ %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Dlouhý odkaz--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Dlouhý název--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Hlavička svazku--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Pokračováno od %s bajtu--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Vytvářím adresář:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "Přejmenovávám %s na %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: nelze přejmenovat na %s" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "Přejmenovávám %s zpět na %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, 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:1148 +#: src/misc.c:1161 msgid "child process" msgstr "potomek" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "meziprocesový kanál" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "Výběr názvu místního souboru:" -#: src/names.c:72 +#: src/names.c:71 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/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "ADRESÁŘ" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "změní adresář na ADRESÁŘ" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "seznam jmen souborů na rozbalení nebo zabalení získá ze SOUBORU" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "-T čte názvy zakončené nulovým znakem, zapne --verbatim-files-from" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "zruší účinek předchozího přepínače --null" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "" "odčiní citování (escapování) názvů vstupních souborů nebo prvků (implicitní)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "neodčiní citování (escapování) názvů vstupních souborů nebo prvků" -#: src/names.c:87 -#, fuzzy +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" -msgstr "-T čte názvy souborů doslovně (přepínače se nezpracovávají)" +msgstr "" +"-T čte názvy souborů doslovně (přepínače ani escape sekvence se " +"nezpracovávají)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "-T považuje názvy souborů začínající pomlčkou za přepínače (výchozí)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "VZOR" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "vynechá soubory, které odpovídají VZORU" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "vynechá vzorky vyjmenované v SOUBORU" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1403,23 +1403,23 @@ msgstr "" "vynechá obsah adresářů obsahujících CACHEADR.ZNAČKA, kromě souboru značky " "samotného" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "vynechá vše pod adresáři obsahujícími CACHEADR.ZNAČKA" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "vynechá adresáře obsahující CACHEADR.ZNAČKA" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "vynechá obsah adresářů obsahujících SOUBOR, vyjma SOUBORU samotného" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "čte vzorky na vynechání pro každý adresář ze SOUBORU, pokud existuje" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" @@ -1427,118 +1427,122 @@ msgstr "" "čte vzorky na vynechání pro každý adresář a jeho podadresáře ze SOUBORU, " "pokud existuje" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "vynechá vše pod adresáři obsahujícími SOUBOR" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "vynechá adresáře obsahující SOUBOR" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "vynechá adresáře systému správy verzí" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "čte vzorky na vynechání ze souboru ignorací verzovacího systému" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "vynechá soubory záloh a zámků" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "sestupuje rekurzivně do adresářů (implicitní)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "zabrání automatickému sestupu do adresářů" -#: src/names.c:130 +#: src/names.c:129 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/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "vzory se testují název souboru od začátku" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "vzory se testují po každém „/“ (implicitní u vyloučení)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "ignoruje velikost písmen" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "testování je citlivé na velikost (implicitní)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "použije žolíkové znaky (implicitní u vyloučení)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "testuje se přesný řetězec" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "žolíkové znaky zahrnují „/“ (implicitní u vyloučení)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "žolíkové znaky nezahrnují „/“" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" +"Následující přepínače byly použity po nepřepínačových argumentech při " +"vytváření archivu nebo jeho aktualizaci. Tyto přepínače jsou poziční a " +"ovlivňují pouze argumenty, které je následují. Prosím, řádně je " +"přeuspořádejte." -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" -msgstr "" +msgstr "-C %s nemá žádný vliv" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" -msgstr "" +msgstr "--%s %s nemá žádný vliv" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" -msgstr "" +msgstr "--%s nemá žádný vliv" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "příkazový řádek" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: seznam souborů požadovaný z %s již načten z %s" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "řetězec „%s“ nelze rozdělit: %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: načtený název souboru obsahuje nulový znak" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "V názvech souborů se nachází žolíkové znaky" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1546,47 +1550,47 @@ 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:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: V archivu nenalezen" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Požadovaný výskyt nebyl v archivu nalezen" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "Název archivu se neodpovídá" -#: src/names.c:1717 +#: src/names.c:1747 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:1723 +#: src/names.c:1753 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:88 +#: src/tar.c:87 #, c-format msgid "Options '%s' and '%s' both want standard input" msgstr "Oba dva přepínače „%s“ a „%s“ chtějí standardní vstup" -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Neplatný formát archivu" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "GNU rozšíření požadovány na nekompatibilním formátu archivu" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1805,7 +1809,7 @@ msgstr "Výběr výstupního proudu:" msgid "extract files to standard output" msgstr "soubory vybaluje na standardní výstup" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "PŘÍKAZ" @@ -1841,7 +1845,7 @@ msgstr "použije SOUBOR k převodu UID a jmen vlastníků souborů" msgid "use FILE to map file owner GIDs and names" msgstr "použije SOUBOR k převodu GID a jmen vlastníků souborů" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "DATUM_NEBO_SOUBOR" @@ -2053,7 +2057,7 @@ msgstr "předělat bloky v průběhu čtení (pro roury na BSD 4.2)" msgid "Archive format selection:" msgstr "Výběr formátu archivu:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "FORMÁT" @@ -2137,63 +2141,63 @@ msgstr "PROGRAM" msgid "filter through PROG (must accept -d)" msgstr "archiv protáhne PROGRAMEM (musí znát -d)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Výběr místního souboru:" -#: src/tar.c:691 +#: src/tar.c:692 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:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "neodstraní z názvů souborů úvodní „/“" -#: src/tar.c:695 +#: src/tar.c:696 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:697 +#: src/tar.c:698 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:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "SLOŽKA_NÁZVU" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "čtení archivu začne na složce SLOŽKA_NÁZVU" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "ukládá jen soubory novější než DATUM_NEBO_SOUBOR" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "DATUM" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "při změně dat porovná datum i čas" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "STRATEGIE" -#: src/tar.c:706 +#: src/tar.c:707 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:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "ŘETĚZEC" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2201,59 +2205,59 @@ 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:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Transformace názvů souborů:" -#: src/tar.c:715 +#: src/tar.c:716 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:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "VÝRAZ" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "názvy souborů transformuje pomocí nahrazovacího VÝRAZU sedu" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Informativní výstup:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "vypisuje zpracovávané soubory" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "KLÍČOVÉ_SLOVO" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "řídí varování" -#: src/tar.c:731 +#: src/tar.c:732 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:733 +#: src/tar.c:734 msgid "ACTION" msgstr "AKCE" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "v každém kontrolním bodu vykoná AKCI" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "hlásí, že nebyly zpracovány všechny odkazy" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "SIGNÁL" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2264,35 +2268,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:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "časy změn obsahu souborů vypisuje v UTC" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "časy souborů vypisuje v plném znění" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "informativní výstup pošle do SOUBORU" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "každou zprávu opatří číslem bloku uvnitř archivu" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "na každou akcí žádá potvrzení" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "zobrazí implicitní argumenty taru" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "zobrazí platné rozsahy pro položky souborů snímků" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2300,31 +2304,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:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "zobrazuje názvy souborů a archivů po transformaci" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "STYL" -#: src/tar.c:765 +#: src/tar.c:766 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:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "cituje navíc znaky z ŘETĚZCE" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "zakáže citování znaků z ŘETĚZCE" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Přepínače pro kompatibilitu" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2332,22 +2336,22 @@ msgstr "" "při vytváření archivu má stejný význam jako --old-archive, při rozbalování " "jako --no-same-owner" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Další přepínače:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "zakáže použití některých potenciálně nebezpečných přepínačů" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "Přepínač „%s“ nelze použít s „%s“" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" @@ -2355,40 +2359,40 @@ msgstr "" "Nemůže být zadán více jak jeden přepínač z „-Acdtrux“, „--delete“ nebo „--" "test-label“" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Odporující si kompresní přepínače" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Neznámý název signálu: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "Soubor, ze kterého se má vzít datum a čas, nebyl nalezen" -#: src/tar.c:1036 +#: src/tar.c:1038 #, 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:1065 +#: src/tar.c:1067 #, 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:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "archiv protáhne skrze filtr %s" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "Pro přepínač --quoting-style jsou platné argumenty:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2396,120 +2400,120 @@ msgstr "" "\n" "Implicitní přepínače *tohoto* taru:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "Neplatné ID vlastníka nebo skupiny" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Neplatný počet bajtů na záznam" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Neplatná délka pásky" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "Chybná hodnota úrovně přírůstku" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Více než jedeno počáteční datum" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "Neplatná hodnota verze řídkého formátu" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve='system' není na této platformě podporován" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "hodnota --checkpoint není celé číslo" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Zadána chybná práva" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Neplatné číslo" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Chybná velikost záznamu" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "Velikost záznamu musí být násobek %d." -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Neplatný počet prvků" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "Povolen je jen jeden přepínač --to-command" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Neplatný argument hustoty: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Neznámá hustota: „%c“" -#: src/tar.c:2066 +#: src/tar.c:2075 #, 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:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: umístění chyby" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "Chyba při rozebírání %s" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[SOUBOR]…" -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "nepřepínačový argument v %s" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "TAR_OPTIONS nelze rozdělit: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "Starý přepínač „%c“ vyžaduje argument." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "bez seznamu souborů nemá --occurrence smysl" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "Více archivačních souborů vyžaduje přepínač „-M“" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "--level bez --listed-incremental postrádá smysl" -#: src/tar.c:2424 +#: 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)" @@ -2517,43 +2521,43 @@ 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Vícesvazkový archiv není možné ověřit" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Komprimovaný archiv nelze ověřit" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Vícesvazkový komprimovaný archiv nelze vytvořit" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Komprimované archivy nelze zřetězit" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "--clamp-mtime potřebuje datum určené pomocí --mtime" -#: src/tar.c:2474 +#: src/tar.c:2483 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:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "Přepínač --acls lze použít jen na posixových archivech" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "Přepínač --selinux lze použít jen na posixových archivech" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "Přepínač --xattrs lze použít jen na posixových archivech" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2561,30 +2565,30 @@ msgstr "" "Název vrcholového adresáře nelze odvodit; prosím, zadejte jej explicitně " "pomocí --one-top-level=ADRESÁŘ" -#: src/tar.c:2573 +#: src/tar.c:2582 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:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Vytvoření prázdného archivu odmítnuto." -#: src/tar.c:2623 +#: src/tar.c:2632 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:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "" "Musíte zadat jeden z přepínačů „-Acdtrux“, „--delete“ nebo „--test-label“" -#: src/tar.c:2768 +#: src/tar.c:2800 #, 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:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" @@ -2592,52 +2596,61 @@ msgstr[0] "%s: Soubor zkrácen o %s bajt" msgstr[1] "%s: Soubor zkrácen o %s bajty" msgstr[2] "%s: Soubor zkrácen o %s bajtů" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "Vzor %s nelze použít" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Klíčové slovo %s nelze přebít" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "Chybná rozšířená hlavička: chybí délka" -#: src/xheader.c:677 +#: src/xheader.c:695 #, 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:689 +#: src/xheader.c:707 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:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "Chybná rozšířená hlavička: chybí znak rovná se" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "Chybná rozšířená hlavička: chybí odřádkování" -#: src/xheader.c:741 +#: src/xheader.c:759 #, 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:1023 +#: src/xheader.c:1041 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" @@ -2646,46 +2659,46 @@ msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:1053 +#: src/xheader.c:1071 #, 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:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Chybná rozšířená hlavička: %s=%s není platné" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Chybná rozšířená hlavička: nadbytečná %s=%s" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, 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:1543 +#: src/xheader.c:1561 #, 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:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s: neplatný časový limit" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: neznámá akce kontrolního bodu" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "zápis" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "čtení" @@ -2693,7 +2706,7 @@ msgstr "čtení" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Kontrolní bod zápisu %u" @@ -2702,12 +2715,12 @@ msgstr "Kontrolní bod zápisu %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Kontrolní bod čtení %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2715,93 +2728,97 @@ msgstr "" "genfile pracuje s datovými soubory testovacího balíku GNU paxutils.\n" "PŘEPÍNAČE jsou:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Přepínače tvorby souboru:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "VELIKOST" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Vytvoří soubor zadané VELIKOSTI" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Místo na standardní výstup píše do souboru JMÉNO" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "Názvy souborů čte ze SOUBORU" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T čte názvy zakončené nulovými znaky" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "Vyplní soubor zadaným VZOREM. VZOR je „default“ (výchozí) nebo „zeros“ (nuly)" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "Velikost bloku pro řídké soubory" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "Vytvoří řídký soubor. Zbytek příkazové řádku definuje mapu souboru." -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "POZICE" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "Před zápisem dat se přesune na zadanou POZICI" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "Potlačí diagnostické hlášky, které nevedou k přerušení programu" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Přepínače statistiky souboru:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "U každého zadaného souboru vypíše obsah struktury stat. Implicitní FORMÁT je:" -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Přepínače synchronního vykonávání:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "PŘEPÍNAČ" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "Provede ARGUMENTY. Užitečné s --checkpoint a jedním z --cut, --append, --" "touch, --unlink" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "Provede zadanou akci (vizte níže) při dosažení kontrolního bodu ČÍSLO" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "Nastaví datum pro následující přepínač --touch" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "Zobrazuje prováděné kontrolní body a návratové kódy PŘÍKAZU" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2809,7 +2826,7 @@ msgstr "" "Synchronní vykonávání akcí. Tyto budou provedeny, když bude dosaženo číslo " "kontrolního bodu zadaného přepínačem --checkpoint." -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2817,125 +2834,125 @@ msgstr "" "Zkrátí SOUBOR na velikost zadanou předchozím přepínačem --length (nebo na 0, " "není-li uveden)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "K SOUBORU připojí VELIKOST bajtů. VELIKOST se zadává předcházejícím " "přepínačem --length." -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "Aktualizuje časy přístupu a změny obsahu SOUBORU" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "Vykoná PŘÍKAZ" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" -msgstr "" +msgstr "Smaže SOUBOR" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Neplatná velikost: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Číslo je mimo povolený rozsah: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Záporná velikost: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) selhalo" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "požadovaná délka souboru %'lu, aktuální %'lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "vytvořený soubor není řídký" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "Chyba při rozebírání čísla poblíž „%s“" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Neznámý formát data" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ARGUMENT…]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "„%s“ nelze otevřít" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "v souboru se nelze pohybovat" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "název souboru obsahuje nulový znak" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, 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:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "nesprávná maska (poblíž „%s“)" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "Neznámá položka „%s“" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "Souboru „%s“ nelze nastavit čas" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "„%s“ nelze zkrátit" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "příkaz selhal: %s" -#: tests/genfile.c:781 -#, fuzzy, c-format +#: tests/genfile.c:772 +#, c-format msgid "cannot stat `%s'" -msgstr "„%s“ nelze zkrátit" +msgstr "nelze získat údaje o „%s“" -#: tests/genfile.c:785 -#, fuzzy, c-format +#: tests/genfile.c:776 +#, c-format msgid "cannot remove directory `%s'" -msgstr "Souboru „%s“ nelze nastavit čas" +msgstr "adresář „%s“ nelze odstranit" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "„%s“ nelze odstranit (unlink)" @@ -2975,6 +2992,9 @@ msgstr "Příkaz ukončen\n" msgid "--stat requires file names" msgstr "--stat potřebuje název souboru" +#~ msgid "OPTION" +#~ msgstr "PŘEPÍNAČ" + #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: parametr ARGP_HELP_FMT musí být kladný" diff --git a/po/da.gmo b/po/da.gmo index 054ec688ab1f012274b91c22647630d90658a507..38c15de5fa4954488624b73a06eab02579911bc0 100644 GIT binary patch delta 15939 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 delta 12604 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 F0|1p26C(fs diff --git a/po/da.po b/po/da.po index 0b6d3189..390e70a0 100644 --- a/po/da.po +++ b/po/da.po @@ -4,14 +4,14 @@ # # 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, 2015. -#: src/create.c:1599 +# Keld Simonsen <keld@keldix.com>, 2010-2011, 2015, 2017. +#: src/create.c:1598 msgid "" msgstr "" -"Project-Id-Version: GNU tar 1.28\n" +"Project-Id-Version: GNU tar 1.30\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" -"PO-Revision-Date: 2015-04-26 10:18+0200\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" +"PO-Revision-Date: 2017-12-20 17:18+0100\n" "Last-Translator: Keld Simonsen <keld@keldix.com>\n" "Language-Team: Danish <dansk@dansk-gruppen.dk>\n" "Language: da\n" @@ -99,7 +99,7 @@ msgid "give a short usage message" msgstr "vis en kort hj�lpemeddelelse" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "NAVN" @@ -137,29 +137,29 @@ msgid "write error" msgstr "skrivefejl" #: gnu/getopt.c:278 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous\n" -msgstr "%s: flag '-W %s' er flertydigt\n" +msgstr "%s: flag '%s%s' er flertydigt\n" #: gnu/getopt.c:284 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" -msgstr "%s: flag '%s' er flertydigt; muligheder:" +msgstr "%s: flag '%s%s' er flertydigt; muligheder:" #: gnu/getopt.c:319 -#, fuzzy, c-format +#, c-format msgid "%s: unrecognized option '%s%s'\n" -msgstr "%s: ukendt flag '%c%s'\n" +msgstr "%s: ukendt flag '%s%s'\n" #: gnu/getopt.c:345 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" -msgstr "%s: flag '%c%s' tillader ikke et argument\n" +msgstr "%s: flag '%s%s' tillader ikke et argument\n" #: gnu/getopt.c:360 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' requires an argument\n" -msgstr "%s: flag '--%s' kr�ver et argument\n" +msgstr "%s: flag '%s%s' kr�ver et argument\n" #: gnu/getopt.c:621 #, c-format @@ -234,12 +234,12 @@ msgstr "^[jJyY]" msgid "^[nN]" msgstr "^[nN]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Pakket af %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Pakket af %s\n" @@ -247,12 +247,11 @@ msgstr "Pakket af %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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "�" -#: gnu/version-etc.c:86 -#, fuzzy +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -264,7 +263,7 @@ msgstr "" "\n" "Licens GPLv3+: GNU GPL version 3 eller senere <http://gnu.org/licenses/gpl." "html>.\n" -"Dette program er frit programmel. Du kan �ndre og distribuere det.\n" +"Dette program er frit programmel. Du m� �ndre og distribuere det.\n" "Der er ikke NOGEN SOM HELST GARANTI, i det omfang som lov tillader.\n" #. TRANSLATORS: %s denotes an author name. @@ -399,15 +398,14 @@ msgid "%s home page: <%s>\n" msgstr "%s hjemmeside: <%s>\n" #: gnu/version-etc.c:253 -#, fuzzy, c-format +#, c-format msgid "%s home page: <https://www.gnu.org/software/%s/>\n" -msgstr "%s hjemmeside: <http://www.gnu.org/software/%s/>.\n" +msgstr "%s hjemmeside: <http://www.gnu.org/software/%s/>\n" #: gnu/version-etc.c:256 -#, fuzzy msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n" msgstr "" -"Generel brugerhj�lp for GNU-programmel: <http://www.gnu.org/gethelp/>.\n" +"Generel brugerhj�lp for GNU-programmel: <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 @@ -526,189 +524,189 @@ msgstr "Kan ikke omdirigere filer for fjern sk msgid "Cannot execute remote shell" msgstr "Kan ikke eksekvere fjern sk�l" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "S�geretning udenfor interval" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "Ugyldig s�geretning" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "Ugyldig positioneringsv�rdi" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "S�geposition udenfor interval" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "Ugyldigt byteantal" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "Byteantal udenfor interval" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "For tidlig filafslutning" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "Ugyldig operationskode" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "Operation underst�ttes ikke" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Uventede argumenter" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 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:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "NUMMER" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "s�t fejls�gningsniveau" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "FIL" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "s�t fejls�gningsfilnavn" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "kan ikke �bne %s" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "for mange argumenter" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Ugyldig kommando" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Dette ligner ikke et tar-arkiv" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Totalt antal byte l�st" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Totalt antal byte skrevet" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "Totalt antal byte slettet" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(datakanal)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "N�gter at l�se arkivindhold fra terminal (manglende -f-flag?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "N�gter at skrive arkivindhold til terminal (manglende -f-flag?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Ugyldig v�rdi for record_size" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Arkivnavn er ikke opgivet" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Kan ikke verificere standard-ind/standard-ud arkiver" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Arkivet er komprimeret. Brug flaget %s" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Kan ikke opdatere komprimerede arkiver" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "Ved begyndelsen af b�ndet, afslutter nu" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "For mange fejl, afslutter" -#: src/buffer.c:967 +#: src/buffer.c:969 #, 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:988 +#: src/buffer.c:990 #, 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:1075 +#: src/buffer.c:1077 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:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek stoppede ikke p� en postgr�nse" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: indeholder ugyldigt delarkivs-nummer" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Overl�b p� delarkiv-nummer" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, 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:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "Filafslutning hvor svar fra bruger var forventet" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "ADVARSEL: Arkivet er ufuldst�ndigt" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -720,66 +718,66 @@ msgstr "" " q Afbryd tar\n" " y eller ny linje Forts�t handling\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Start en ny sk�l\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? Udskriv denne liste\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Intet nyt delarkiv; afslutter.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "Filnavn ikke angivet, pr�v igen.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Ugyldigt inddata. Skriv ? for at f� hj�lp.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "'%s'-kommando mislykkedes" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s forts�tter ikke i dette delarkiv" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, 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:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s har forkert st�rrelse (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, 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:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "Arkivet er ikke navngivet til at passe med %s" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "Delarkivet '%s' stemmer ikke overens med %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -787,210 +785,210 @@ msgstr "" "%s: filnavnet er for langt til at gemmes i hovedet p� et GNU-flerdelarkiv, " "afkortes" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "skrivning stoppede ikke p� en blokgr�nse" -#: src/compare.c:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Indhold er forskelligt" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Uventet filslutning i arkivet" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Filtype er forskellig" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Modus er forskellig" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Bruger-ID er forskellig" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "Gruppe-ID er forskellig" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Modificeringstid er forskellig" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "St�rrelse er forskellig" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Ikke l�nket til %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Symbolsk l�nke er forskellig" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Enhedsnummer er forskellig" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Verific�r " -#: src/compare.c:480 +#: src/compare.c:479 #, 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:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "Arkivet indeholder filnavne med indledende prefixer borttaget." -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "Arkiv indeholder transformerede filnavne." -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "Verificering kan mislykkes med at finde originalfiler." -#: src/compare.c:620 +#: src/compare.c:619 #, 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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "En enkeltst�ende nulblok ved %s" -#: src/create.c:74 +#: 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:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Genererer negative oktale hoveder" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, 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:616 +#: src/create.c:615 #, 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:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: l�nkenavn er for langt; ikke arkiveret" -#: src/create.c:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, 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:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "indholdet ikke arkiveret" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Ukendt filtype; filen blev ignoreret" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "Mangler l�nke til %s." -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: fil er u�ndret; ikke arkiveret" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: fil er det samme som arkivet; ikke arkiveret" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "katalog ikke arkiveret" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: Fil �ndredes mens vi l�ste den" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: sokkel ignoreret" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: d�r ignoreret" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Hopper til n�ste hoved" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Sletter ikke-hoved fra arkivet" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: usandsynligt gammelt tidsstempel %s" -#: src/extract.c:320 +#: src/extract.c:319 #, 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:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Uventet uoverensstemmelse ved oprettelse af katalog" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: skipper eksisterende fil" @@ -1013,7 +1011,7 @@ msgstr "Fors 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:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Uventet langt filnavnshoved" @@ -1030,7 +1028,7 @@ msgstr "Nuv #: src/extract.c:1664 #, c-format msgid "%s: Member name contains '..'" -msgstr "" +msgstr "%s: Medlemsnavn indeholder '..'" #: src/extract.c:1696 #, c-format @@ -1042,22 +1040,22 @@ msgstr "%s: Kunne ikke sikkerhedskopiere denne fil" msgid "Cannot rename %s to %s" msgstr "Kan ikke omd�be %s til %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Kataloget er blevet omd�bt fra %s" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: Kataloget er nyt" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "%s: katalog er p� et andet filesystem; ikke arkiveret" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Kataloget er blevet omd�bt" @@ -1144,9 +1142,8 @@ msgid "Malformed dumpdir: empty name in 'R'" msgstr "Fejlagtigt dumpkatalog: tomt navn i \"R\"" #: src/incremen.c:1585 -#, fuzzy msgid "Malformed dumpdir: 'T' not preceded by 'R'" -msgstr "Fejlagtigt dumpkatalog: \"T\" foreg�s ikke af \"R\"" +msgstr "Fejlagtigt dumpkatalog: 'T' foreg�s ikke af 'R'" #: src/incremen.c:1591 msgid "Malformed dumpdir: empty name in 'T'" @@ -1186,192 +1183,191 @@ msgstr "%s: Sletter %s\n" msgid "%s: Cannot remove" msgstr "Kan ikke slette %s" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: Udelader" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blok %s: ** Blok med NULler **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "blok %s: ** Slut p� fil **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "blok %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, 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:817 +#: src/list.c:818 #, 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:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "Arkiv indeholder for�ldede base-64 hoveder" -#: src/list.c:852 +#: src/list.c:853 #, 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:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, 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:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " l�nke til %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " ukendt filtype %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Lang l�nke--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Langt navn--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Delarkivhoved--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Fortsat ved byte %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Opretter katalog:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "Omd�ber %s til %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Kan ikke omd�be til %s" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "Omd�ber %s tilbage til %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: Fil fjernet f�r vi l�ste den" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "underproces" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "mellemproces-kanal" -#: src/names.c:69 -#, fuzzy +#: src/names.c:68 msgid "Local file name selection:" -msgstr "Lokalt filvalg:" +msgstr "Lokalt valg af filnavn:" -#: src/names.c:72 +#: src/names.c:71 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/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "KATALOG" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "g� til arbejdskatalog KATALOG" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "hent navne at udpakke eller oprette fra FIL" -#: src/names.c:78 -#, fuzzy +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" -msgstr "-T l�ser navne adskilt med nultegn, deaktiv�r -C" +msgstr "-T l�ser navne adskilt med nultegn; indeb�rer --verbatim-files-from" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "fjern effekten af foreg�ende --null-flag" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "afcit�r inddata fil eller medlemsnavne (standardv�rdi)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "afcit�r ikke inddata fil eller medlemsnavne" -#: src/names.c:87 +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" msgstr "" +"-T l�ser filnavne bogstaveligt (ingen beskyttelsestegn eller flagbehandling)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" -msgstr "" +msgstr "-T behandler filnavne der begynder med '-' som flag (standard)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "M�NSTER" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "udelad filer som matcher M�NSTER" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "udelad filer som matcher m�nster listet i FIL" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1379,24 +1375,24 @@ msgstr "" "udelad indholdet i kataloger som indeholder CACHEDIR.TAG, undtagen " "m�rkefilen CACHEDIR.TAG selv" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "udelad alt i kataloger som indeholder CACHEDIR.TAG" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "udelad kataloger som indeholder CACHEDIR.TAG" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "udelad indholdet i kataloger som indeholder FIL, undtagen FIL selv" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "" "indl�s ekskluderingsm�nstre for hvert katalog fra FIL, hvis den eksisterer" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" @@ -1404,118 +1400,121 @@ msgstr "" "indl�s ekskluderingsm�nstre for hvert katalog og dets underkataloger fra " "FIL, hvis den eksisterer" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "udelad alting i kataloger som indeholder FIL" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "udelad kataloger som indeholder FIL" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "udelad kataloger fra versionsh�ndteringssystemer" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "indl�s ekskluderingsm�nstre fra VCS ignoreingsfiler" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "udelad sikkerhedskopier og l�sefiler" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "g� rekursivt ned i kataloger (standardv�rdi)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "g� ikke ned i kataloger automatisk" -#: src/names.c:130 +#: src/names.c:129 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/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "m�nstre skal matche med begyndelsen p� filnavne" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "m�nstre matches efter alle '/'-er (standardv�rdi ved ekskludering)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "ingen forskel p� store og sm� bogstaver" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "match store og sm� bogstaver forskelligt (standardv�rdi)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "brug jokertegn (standardv�rdi for ekskludering)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "ordret strengsammenligning" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "jokertegn matcher '/' (standardv�rdi for ekskludering)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "jokertegn matcher ikke '/'" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" +"De f�lgende flag blev brugt efter nogen valgfri argumenter i oprettelses- " +"eller opdaterings-tilstand for arkiv. Disse flag er positionelle og p�virker " +"kun argumenter som f�lger efter dem. Omarrang�r dem venligst korrekt." -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" -msgstr "" +msgstr "-C %s har ingen virkning" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" -msgstr "" +msgstr "--%s %s har ingen virkning" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" -msgstr "" +msgstr "--%s har ingen virkning" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "kommandolinje" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: filliste forespurgt fra %s allerede l�st fra %s" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "kan ikke opsplitte streng '%s': %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: filnavnet som l�stes indeholder nultegn" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "M�nstermatchningstegn bruges i filnavne" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1523,46 +1522,46 @@ msgstr "" "Brug --wildcards for at aktivere m�nstermatchning, eller --no-wildcards for " "at undertrykke denne advarsel" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: Ikke fundet i arkivet" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Kr�vet forekomst blev ikke fundet i arkivet" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "Arkivetiket stemmer ikke overrens" -#: src/names.c:1717 +#: src/names.c:1747 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:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "Kun �t -C-flag er tilladt med --listed-incremental" -#: src/tar.c:88 +#: src/tar.c:87 #, c-format msgid "Options '%s' and '%s' both want standard input" msgstr "Flagene '%s' and '%s' vil begge have standard inddata" -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: ugyldigt arkivformat" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "GNU-funktioner fors�gt p� inkompatibelt arkiv-format" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1661,11 +1660,11 @@ msgstr "h #: src/tar.c:424 msgid "TYPE" -msgstr "" +msgstr "TYPE" #: src/tar.c:425 msgid "technique to detect holes" -msgstr "" +msgstr "teknik til at finde huller" #: src/tar.c:426 msgid "MAJOR[.MINOR]" @@ -1785,7 +1784,7 @@ msgstr "V msgid "extract files to standard output" msgstr "udpak filer til standard-ud" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "KOMMANDO" @@ -1815,13 +1814,13 @@ msgstr "s #: src/tar.c:512 msgid "use FILE to map file owner UIDs and names" -msgstr "" +msgstr "brug FIL til at associere filejer UID'er og navne" #: src/tar.c:514 msgid "use FILE to map file owner GIDs and names" -msgstr "" +msgstr "brug FIL til at associere filejer GID'er og navne" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "DATO-ELLER-FIL" @@ -1832,7 +1831,7 @@ msgstr "s #: src/tar.c:518 msgid "" "only set time when the file is more recent than what was given with --mtime" -msgstr "" +msgstr "s�t kun tid n�r filen er nyere end hvad der er givet med --mtime" #: src/tar.c:519 msgid "CHANGES" @@ -2030,7 +2029,7 @@ msgstr "lav nye blokke ved l msgid "Archive format selection:" msgstr "Valg af arkivformat:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "FORMAT" @@ -2114,59 +2113,59 @@ msgstr "PROG" msgid "filter through PROG (must accept -d)" msgstr "filtr�r med PROG (skal acceptere -d)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Lokalt filvalg:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "skift ikke filsystem n�r arkivet oprettes" -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "fjern ikke indledende '/'-er fra filnavne" -#: src/tar.c:695 +#: src/tar.c:696 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:697 +#: src/tar.c:698 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:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "MEDLEMSNAVN" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "begynd med medlem MEDLEMSNAVN ved l�sning af arkivet" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "arkiv�r kun filer nyere end DATO-ELLER-FIL" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "DATO" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "sammenlign kun dato og tid for data�ndringer" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "KONTROL" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "lav sikkerhedskopier f�r fjernelse, v�lg type af versionsh�ndtering" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "STRENG" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2174,60 +2173,60 @@ msgstr "" "lav sikkerhedskopier f�r fjernelse, erstat den normale sikkerhedskopiendelse " "(\"~\" hvis ikke �ndret med milj�variablen SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Filnavnstransformationer:" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "fjern ANTAL indledende komponenter fra filnavne ved udpakning" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "UDTRYK" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "brug sed's erstatnings-UDTRYK for at transformere filnavne" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Informativ udskrift:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "v�s navne p� alle filer som bliver behandlet" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "N�GLEORD" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "advarselskontrol" -#: src/tar.c:731 +#: src/tar.c:732 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:733 +#: src/tar.c:734 msgid "ACTION" msgstr "HANDLING" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "udf�r HANDLING ved hvert kontrolpunkt" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "vis en meddelelse hvis ikke alle l�nker bliver arkiveret" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "SIGNAL" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2239,35 +2238,35 @@ msgstr "" "SIGHUP, SIGQUIT, SIGINT, SIGUSR1 coh SIGUSR2. Navne uden SIG-pr�fix " "accepteres ogs�." -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "vis filers modificeringstid i UTC" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "vis fuld opl�sning p� filtider" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "send informative meddelelser til FIL" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "vis bloknummer i arkivet for hver meddelelse" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "bed om bekr�ftelse for hver handling" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "vis standardv�rdier for \"tar\"" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "vis gyldige omr�der for felter i snapshot-filer" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2275,31 +2274,31 @@ msgstr "" "ved visning eller udpakning vises hvert katalog som ikke matcher " "s�gekriterium" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "vis fil- eller arkivnavne efter transformering" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "ST�L" -#: src/tar.c:765 +#: src/tar.c:766 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:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "cit�r ogs� tegn i STRENG" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "cit�r ikke tegn fra STRENG" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Kompatibilitetsflag:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2307,22 +2306,22 @@ msgstr "" "ved oprettelse det samme som --old-archive; ved udpakning det samme som --no-" "same-owner" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Andre flag:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "begr�ns brugen af potentielt farlige flag" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "%s: kan ikke bruges med '%s'" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" @@ -2330,40 +2329,40 @@ msgstr "" "Du kan ikke angive mere end �t af '-Acdtrux', --delete eller `--test-label' " "flagene" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Konflikt i komprimeringsflag" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Ukendt signalnavn: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "Tidsfil blev ikke fundet" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Erstatter %s for ukendt dato-format %s" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "Flag %s: Behandler tidsangivelse '%s' som %s" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "filtr�r arkivet igennem %s" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "Gyldige argumenter til flaget --quoting-style er:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2371,164 +2370,164 @@ msgstr "" "\n" "*Denne* tar har standardv�rdierne:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "Ugyldig ejer eller gruppe-ID" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Ugyldig blokfaktor" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Ugyldig b�ndl�ngde" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "Fejlagtig v�rdi for inkrementelt niveau" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Mere end �n gr�nse-dato" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "Ugyldig version for filer med huller" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve=\"system\" underst�ttes ikke p� denne platform" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "--checkpoint-v�rdien er ikke et heltal" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Ugyldig modus angivet i flag" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Ugyldigt nummer" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Ugyldig postst�rrelse" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "Postst�rrelse skal v�re deleligt med %d." -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Ugyldigt antal elementer" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "Kun �t --to-command flag tilladt" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Ugyldig densitetsangivelse: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Ukendt densitet: '%c'" -#: src/tar.c:2066 +#: src/tar.c:2075 #, 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:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" -msgstr "" +msgstr "%s:%lu: sted for fejlen" -#: src/tar.c:2076 -#, fuzzy, c-format +#: src/tar.c:2085 +#, c-format msgid "error parsing %s" -msgstr "Fejl ved fortolkning af tal n�r \"%s\"" +msgstr "Fejl ved fortolkning af %s" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[FIL]..." -#: src/tar.c:2181 -#, fuzzy, c-format +#: src/tar.c:2190 +#, c-format msgid "non-option arguments in %s" -msgstr "ugyldigt argument %s for %s" +msgstr "argumenter uden flag i %s" -#: src/tar.c:2196 -#, fuzzy, c-format +#: src/tar.c:2205 +#, c-format msgid "cannot split TAR_OPTIONS: %s" -msgstr "kan ikke opsplitte streng '%s': %s" +msgstr "kan ikke opsplitte TAR_OPTIONS: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "Gammelt flag '%c' beh�ver et argument." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence er meningsl�s uden en filliste" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "Ved flere arkivfiler kr�ves '-M'-flaget" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "--level er meningsl�s uden --listed-incremental" -#: src/tar.c:2424 +#: 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Kan ikke verificere arkiv som g�r over flere delarkiver" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Kan ikke verificere komprimerede arkiver" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Kan ikke bruge komprimerede arkiver som g�r over flere delarkiver" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Kan ikke sammenl�gge (konkatenere) komprimerede arkiver" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" -msgstr "" +msgstr "--clamp-mtime beh�ver en dato angivet med --mtime" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option kan kun bruges p� POSIX-arkiver" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "--acls kan kun bruges p� POSIX-arkiver" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "--selinux kan kun bruges p� POSIX-arkiver" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "--xattrs kan kun bruges p� POSIX-arkiver" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2536,128 +2535,137 @@ msgstr "" "Kan ikke udlede topniveau-katalognav; s�t det eksplicit med --one-top-" "level=KAT" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "Delarkivl�ngden kan ikke v�re mindre end postst�rrelsen" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "N�gter st�digt at oprette et tomt arkiv" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Flagene '-Aru' er inkompatible med '-f -'" -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "" "Du skal angive et af '-Acdtrux', '--delete' eller '--test-label' flagene" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "Afslutter med fejlstatus p� grund af tidligere fejl" -#: src/update.c:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Filen formindskedes med %s byte" msgstr[1] "%s: Filen formindskedes med %s byte" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "M�nster %s kan ikke bruges" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "N�gleord %s kan ikke erstattes" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "Fejlagtigt udvidet hoved: l�ngden mangles" -#: src/xheader.c:677 +#: src/xheader.c:695 #, 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:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "Fejlagtigt udvidet hoved: blanktegn efter l�ngdangivelse mangles" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "Fejlagtigt udvidet hoved: ligmedtegn mangles" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "Fejlagtigt udvidet hoved: nylinje mangles" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "Ignorerer n�gleord '%s' i udvidet hoved" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, 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:1053 +#: src/xheader.c:1071 #, 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:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Fejlagtigt udvidet hoved: ugyldig %s=%s" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Fejlagtigt udvidet hoved: for mange %s=%s" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "Fejlagtigt udvidet hoved: ugyldigt %s: uventet skilletegn %c" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, 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:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s: ugyldig tidsudl�b" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: ukendt kontrolpunktshandling" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "skrive" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "l�se" @@ -2665,7 +2673,7 @@ msgstr "l #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Skrivekontrolpunkt %u" @@ -2674,12 +2682,12 @@ msgstr "Skrivekontrolpunkt %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "L�sekontrolpunkt %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2687,93 +2695,97 @@ msgstr "" "genfile bearbejder datafiler i testsuiten for GNU paxutils.\n" "FLAG er:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Flag for filoprettelse:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "ST�RRELSE" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Opret en fil med angivet ST�RRELSE" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Skriv til filen NAVN i stedet for til standard-ud" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "L�s filnavne fra FIL" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T l�ser navne adskilte med nultegn" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "Fyld filen med det angivne M�NSTER. M�NSTER er 'default' eller 'zeros'" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "St�rrelse af en blok for filer med huller" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "Gener�r fil med huller. Resten af kommandolinjen giver filmapningen." -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "POSITION" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "Flyt til given position inden data skrives" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" -msgstr "" +msgstr "Undertryk ikke-fataler diagnosebeskeder" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Flag for filstatistik:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "V�s indholdet i \"struct stat\" for hver given fil. Standardv�rdi p� FORMAT " "er:" -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Flag for synkron udf�relse:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "FLAG" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "Udf�r ARGUMENTER. Nyttigt ved --checkpoint og en af --cut, --append, --" "touch, --unlink" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "Udf�r angivet handling (se nedenfor) n�r kontrolpunkt NUMMER n�s" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "S�t dato for n�ste --touch flag" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "V�s udf�rte kontrolpunkter og slutstatus p� KOMMANDO" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2781,7 +2793,7 @@ msgstr "" "Synkront udf�rte handlinger. Disse udf�res n�r kontrolpunktnummeret givet " "med flaget --checkpoint n�s." -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2789,127 +2801,127 @@ msgstr "" "Afkort FIL til st�rrelsen givet med det foreg�ende --length flag (eller 0 " "hvis det ikke er angivet)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Tilf�j ST�RRELSE antal byte til FIL. ST�RRELSE er givet med foreg�ende --" "length flag." -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "Opdat�r acces- og modifikationstider for FIL" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "Udf�r KOMMANDO" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" -msgstr "" +msgstr "Slet FIL" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Ugyldig st�rrelse %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Nummer udenfor tilladt interval: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Negativ st�rrelse: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "status (stat) kunne ikke tages p� %s" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "�nsket fill�ngde %lu, virkelig %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "oprettet fil har ikke huller" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "Fejl ved fortolkning af tal n�r \"%s\"" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Ukendt datoformat" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ARGUMENTER...]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "kan ikke �bne '%s'" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "Kan ikke s�ge" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "filnavnet indeholder nultegn" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, 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:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "fejlagtig maske (n�r \"%s\")" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "Ukendt felt '%s'" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "kan ikke s�tte tid p� \"%s\"" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "kan ikke trunkere '%s'" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "kommando mislykkedes: %s" -#: tests/genfile.c:781 -#, fuzzy, c-format +#: tests/genfile.c:772 +#, c-format msgid "cannot stat `%s'" -msgstr "kan ikke trunkere '%s'" +msgstr "kan ikke tage status via stat() p� '%s'" -#: tests/genfile.c:785 -#, fuzzy, c-format +#: tests/genfile.c:776 +#, c-format msgid "cannot remove directory `%s'" -msgstr "kan ikke s�tte tid p� \"%s\"" +msgstr "kan ikke fjerne katalog '%s'" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" -msgstr "kan ikke fjerne (unlink) \"%s\"" +msgstr "kan ikke fjerne (unlink) '%s'" #: tests/genfile.c:918 #, c-format @@ -2946,6 +2958,9 @@ msgstr "Kommandoen afsluttedes\n" msgid "--stat requires file names" msgstr "--stat kr�ver filnavne" +#~ msgid "OPTION" +#~ msgstr "FLAG" + #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: Parameter fra ARGP_HELP_FMT skal v�re positiv." diff --git a/po/de.gmo b/po/de.gmo index 84214d9cb815f0521da939e53d30b7d8706e299f..86f3b0fd3467b01623bc0ac9d7dbf7d160b2be8d 100644 GIT binary patch delta 14926 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 YMyo1KFG|f!OU;{n@S^DEd6(*x0bN=Z9smFU delta 12935 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 diff --git a/po/de.po b/po/de.po index be2430a7..60e50fa1 100644 --- 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, 2011, 2013, 2014, 2016 +# Michael Piefel <piefel@informatik.hu-berlin.de>, 2003, 2006, 2007, 2008, 2009, 2010, 2011, 2013, 2014, 2016, 2018 # -#: src/create.c:1599 +#: src/create.c:1598 msgid "" msgstr "" -"Project-Id-Version: tar 1.29\n" +"Project-Id-Version: tar 1.30\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" -"PO-Revision-Date: 2016-05-17 20:20+0200\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" +"PO-Revision-Date: 2018-02-11 14:45+0200\n" "Last-Translator: Michael Piefel <piefel@informatik.hu-berlin.de>\n" "Language-Team: German <translation-team-de@lists.sourceforge.net>\n" "Language: de\n" @@ -99,7 +99,7 @@ msgid "give a short usage message" msgstr "eine kurze Benutzungsübersicht ausgeben" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "NAME" @@ -137,29 +137,29 @@ msgid "write error" msgstr "Schreibfehler" #: gnu/getopt.c:278 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous\n" -msgstr "%s: Option „%s“ ist mehrdeutig\n" +msgstr "%s: Option „%s%s“ ist mehrdeutig\n" #: gnu/getopt.c:284 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" -msgstr "%s: Option „%s“ ist mehrdeutig; Möglichkeiten:" +msgstr "%s: Option „%s%s“ ist mehrdeutig; Möglichkeiten:" #: gnu/getopt.c:319 -#, fuzzy, c-format +#, c-format msgid "%s: unrecognized option '%s%s'\n" -msgstr "%s: Unbekannte Option „%c%s“\n" +msgstr "%s: Unbekannte Option „%s%s“\n" #: gnu/getopt.c:345 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" -msgstr "%s: Option „%c%s“ erlaubt keinen Parameter\n" +msgstr "%s: Option „%s%s“ erlaubt kein Argument\n" #: gnu/getopt.c:360 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' requires an argument\n" -msgstr "%s: Option „--%s“ benötigt einen Parameter\n" +msgstr "%s: Option „%s%s“ benötigt ein Argument\n" #: gnu/getopt.c:621 #, c-format @@ -169,7 +169,7 @@ msgstr "%s: Ungültige Option -- „%c“\n" #: gnu/getopt.c:636 gnu/getopt.c:682 #, c-format msgid "%s: option requires an argument -- '%c'\n" -msgstr "%s: Option benötigt einen Parameter -- „%c“.\n" +msgstr "%s: Option benötigt ein Argument -- „%c“.\n" #: gnu/obstack.c:338 gnu/obstack.c:340 gnu/xalloc-die.c:34 msgid "memory exhausted" @@ -234,12 +234,12 @@ msgstr "^[yYjJ]" msgid "^[nN]" msgstr "^[nN]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Paketiert von %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Paketiert von %s\n" @@ -247,12 +247,11 @@ msgstr "Paketiert von %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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "©" -#: gnu/version-etc.c:86 -#, fuzzy +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -262,7 +261,7 @@ msgid "" "\n" msgstr "" "\n" -"License GPLv3+: GNU GPL Version 3 oder später <http://gnu.org/licenses/gpl." +"License GPLv3+: GNU GPL Version 3 oder später <https://gnu.org/licenses/gpl." "html>\n" "Dies ist freie Software: Sie dürfen sie ändern und weiter verbreiten.\n" "Es gibt KEINERLEI GARANTIE, so weit das Gesetz es erlaubt.\n" @@ -400,14 +399,13 @@ msgid "%s home page: <%s>\n" msgstr "Homepage von %s: <%s>\n" #: gnu/version-etc.c:253 -#, fuzzy, c-format +#, c-format msgid "%s home page: <https://www.gnu.org/software/%s/>\n" -msgstr "Homepage von %s: <http://www.gnu.org/software/%s/>\n" +msgstr "Homepage von %s: <https://www.gnu.org/software/%s/>\n" #: gnu/version-etc.c:256 -#, fuzzy msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n" -msgstr "Allgemeine Hilfe zu GNU-Software: <http://www.gnu.org/gethelp/>\n" +msgstr "Allgemeine Hilfe zu GNU-Software: <https://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 @@ -526,190 +524,190 @@ msgstr "Kann Dateien für Remote-Shell nicht umleiten." msgid "Cannot execute remote shell" msgstr "Kann Remote-Shell nicht ausführen." -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Richtung für Positionierung nicht zulässig." -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "Ungültige Richtung für Positionierung" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "Ungültiger Betrag für Positionierung" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Positionierungsangabe außerhalb des zulässigen Bereichs." -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "Ungültige Bytezahl" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "Bytezahl außerhalb des zulässigen Bereichs" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "Vorzeitiges Dateiende" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "Ungültiger Arbeitsmodus" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "Operation nicht gestattet" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Unerwartete Argumente" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 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:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "ZAHL" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "Debug-Level setzen" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "DATEI" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "Dateinamen für Debug-Ausschriften setzen" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "kann „%s“ nicht öffnen" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "zu viele Argumente" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Ungültiger Befehl" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Das sieht nicht wie ein „tar“-Archiv aus." -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Gesamtzahl gelesener Bytes" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Gesamtzahl geschriebener Bytes" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "Gesamtzahl gelöschter Bytes" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(pipe)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "Verweigere, Archivinhalt vom Terminal zu lesen (fehlt Option -f?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "Verweigere, Archivinhalt aufs Terminal zu schreiben (fehlt Option -f?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Ungültiger Wert für „record_size“." -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Kein Archivname angegeben" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Kann Archive auf Standard-Ein-/Ausgabe nicht prüfen." -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Archiv ist komprimiert. Benutzen Sie die Option %s." -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Kann komprimierte Archive nicht aktualisieren" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "Am Anfang des Mediums, beende jetzt." -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Zu viele Fehler, beende." -#: src/buffer.c:967 +#: src/buffer.c:969 #, 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:988 +#: src/buffer.c:990 #, 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:1075 +#: src/buffer.c:1077 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:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "„rmtlseek“ nicht an Recordgrenze angehalten" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: enthält ungültige Teil-Nummer." -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Teil-Nummer zu groß." -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, 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:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "Dateiende gefunden, Benutzereingabe erwartet" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "WARNUNG: Archiv unvollständig" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -721,67 +719,67 @@ msgstr "" " q „tar“ abbrechen\n" " j oder Enter fortfahren\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Shell in einem Unterprozess starten\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? diese Liste ausgeben\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Kein neues Medium; halte an.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "Dateiname nicht angegeben. Versuchen Sie es noch einmal.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Ungültige Eingabe. Geben Sie „?“ für Hilfe ein.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "„%s“-Befehl gescheitert." -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "Dieser Teil ist keine Fortsetzung von %s." -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, 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:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s hat die falsche Größe (%s != %s + %s)." -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, 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:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "Kennzeichnung des Archivs passt nicht zu „%s“." -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "Teil „%s“ passt nicht zu „%s“." -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -789,211 +787,211 @@ msgstr "" "%s: Dateiname zu lang, um in einem GNU-Mehrteil-Kopf abgelegt werden zu " "können, abgeschnitten" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "Schreiben endete nicht an Blockgrenze" -#: src/compare.c:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Unterschiedliche Inhalte" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Unerwartetes Dateiende im Archiv." -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Unterschiedliche Dateitypen " -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Modus ist unterschiedlich" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Benutzerkennung ist unterschiedlich" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "Gruppenkennung ist unterschiedlich" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Änderungszeit ist unterschiedlich" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Größe ist unterschiedlich" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Nicht mit „%s“ verknüpft" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Symbolische Verknüpfung ist unterschiedlich" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Unterschiedliche Gerätenummern" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Prüfe " -#: src/compare.c:480 +#: src/compare.c:479 #, 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:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "Archiv enthält Dateinamen, deren Präfixe entfernt wurden." -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "Archiv enthält transformierte Dateinamen." -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "Die Überprüfung findet möglicherweise die Originaldateien nicht." -#: src/compare.c:620 +#: src/compare.c:619 #, 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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "Ein einzelner Nullblock bei %s" -#: src/create.c:74 +#: 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:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Erzeuge negative oktale Kopfteile" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, 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:616 +#: src/create.c:615 #, 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:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: Verknüpfungsname ist zu lang; nicht gesichert." -#: src/create.c:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, 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:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "Inhalt nicht gesichert" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Unbekannter Dateityp; Datei ignoriert." -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "Fehlende Verknüpfungen zu %s." -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "Datei %s ist unverändert; nicht gesichert." -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s ist das Archiv; nicht gesichert." -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "Verzeichnis nicht gesichert" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: Datei hat sich beim Lesen geändert." -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: Socket ignoriert" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: Klappe ignoriert" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Springe zum nächsten Kopfteil." -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Lösche nicht-Kopfteil aus dem Archiv" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: unplausibel alter Zeitstempel %s" -#: src/extract.c:320 +#: src/extract.c:319 #, 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:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Unerwarteter Inkonsitenz beim Erstellen des Verzeichnisses." -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: überspringe existierende Datei" @@ -1018,7 +1016,7 @@ msgid "%s: Cannot extract -- file is continued from another volume" msgstr "" "Kann „%s“ nicht herausholen – Datei ist Fortsetzung eines anderen Teils." -#: src/extract.c:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Unerwarteter Kopfteil mit langem Namen" @@ -1035,7 +1033,7 @@ msgstr "Aktuelles %s ist neuer oder hat dasselbe Alter." #: src/extract.c:1664 #, c-format msgid "%s: Member name contains '..'" -msgstr "" +msgstr "%s: Elementname enthält „..“" #: src/extract.c:1696 #, c-format @@ -1047,22 +1045,22 @@ msgstr "%s: Konnte keine Sicherheitskopie von dieser Datei erstellen" msgid "Cannot rename %s to %s" msgstr "Kann %s nicht in %s umbenennen." -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Verzeichnis wurde von „%s“ umbenannt." -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "Verzeichnis „%s“ ist neu." -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "Verzeichnis %s liegt auf einem anderen Dateisystem; nicht gesichert." -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Verzeichnis wurde umbenannt." @@ -1190,87 +1188,87 @@ msgstr "%s: Lösche %s.\n" msgid "%s: Cannot remove" msgstr "%s: Kann nicht entfernen." -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: Ausgelassen" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "Block %s: ** Block aus NULlen **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "Block %s: ** Ende der Datei **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "Block %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, 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?" +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:817 +#: src/list.c:818 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Oktalzahl %.*s außerhalb des %s-Bereichs" -#: src/list.c:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "Archiv enthält veraltete Base64-Kopfteile" -#: src/list.c:852 +#: src/list.c:853 #, c-format msgid "Archive signed base-64 string %s is out of %s range" -msgstr "Base64-Text %s außerhalb des %s-Bereichs." +msgstr "Base64-Text %s außerhalb des %s-Bereichs" -#: src/list.c:883 +#: src/list.c:884 #, c-format msgid "Archive base-256 value is out of %s range" -msgstr "Base-256-Wert ist außerhalb des %s-Bereichs." +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:912 +#: src/list.c:913 #, c-format msgid "Archive contains %.*s where numeric %s value expected" -msgstr "Archiv enthält „%.*s“ wo numerische %s-Werte stehen sollten." +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:934 +#: src/list.c:935 #, c-format msgid "Archive value %s is out of %s range %s..%s" -msgstr "Wert %s außerhalb des %s-Bereichs %s..%s." +msgstr "Wert %s außerhalb des %s-Bereichs %s..%s" -#: src/list.c:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " Verknüpfung zu %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " unbekannter Dateityp %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "––Lange Verknüpfung––\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "––Langer Name––\n" @@ -1278,112 +1276,112 @@ 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:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "––Vorspann des Teils––\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "––Fortgesetzt bei Byte %s––\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Erzeuge Verzeichnis:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" -msgstr "Benenne „%s“ in „%s“ um.\n" +msgstr "Benenne „%s“ in „%s“ um\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Kann nicht in %s umbenennen" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" -msgstr "Benenne „%s“ zurück in „%s“.\n" +msgstr "Benenne „%s“ zurück in „%s“\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" -msgstr "%s: Datei gelöscht, bevor sie gelesen wurde." +msgstr "%s: Datei gelöscht, bevor sie gelesen wurde" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "Kindprozess" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "Interprocess-Kanal" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "Auswahl der lokalen Dateinamen:" -#: src/names.c:72 +#: src/names.c:71 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/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "VERZEICHNIS" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "zu VERZEICHNIS wechseln" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "Namen der zu bearbeitenden Dateien aus DATEI lesen" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "-T liest null-terminierte Namen; impliziert --verbatim-files-from" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "die Wirkung der vorangehenden Option --null aufheben" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "" "Namen von Eingabedateien oder Bestandteilen von Zitat befreien " "(Voreinstellung)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "Namen von Eingabedateien oder Bestandteilen nicht von Zitat befreien" -#: src/names.c:87 -#, fuzzy +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" -msgstr "-T liest Dateinamen wortwörtlich (keine Erkennung von Optionen)" +msgstr "" +"-T liest Dateinamen wortwörtlich (keine Behandlung von Escapes oder Optionen)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "" "-T behandelt Dateinamen, die mit Strich beginnen, als Optionen " "(Voreinstellung)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "MUSTER" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "Dateien auslassen, auf die MUSTER passt" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "Dateien auslassen, auf die in DATEI angegebene Muster passen" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1391,26 +1389,26 @@ msgstr "" "Inhalt von Verzeichnissen auslassen, die CACHEDIR.TAG enthalten, außer der " "Markierungsdatei selbst" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "" "alles unterhalb von Verzeichnissen auslassen, die CACHEDIR.TAG enthalten" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "Verzeichnisse auslassen, die CACHEDIR.TAG enthalten" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" "Inhalt von Verzeichnissen auslassen, die DATEI enthalten, außer DATEI selbst" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "" "Ausschlussmuster für jedes Verzeichnis aus DATEI lesen, wenn sie existiert" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" @@ -1418,118 +1416,122 @@ msgstr "" "Ausschlussmuster für jedes Verzeichnis und seine Unterverzeichnisse aus " "DATEI lesen, wenn sie existiert" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "alles unterhalb von Verzeichnissen auslassen, die DATEI enthalten" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "Verzeichnisse auslassen, die DATEI enthalten" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "Verzeichnisse von Versionskontrollsystemen auslassen" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "Ausschlussmuster aus der VCS-Ignorierdatei lesen" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "Backup- und Lock-Dateien ausschließen" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "in Verzeichnisse absteigen (Voreinstellung)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "automatischen Abstieg in Vezeichnisse vermeiden" -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" "Dateinamenauswahloptionen (sowohl für ein- als auch ausschließende Muster):" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "Muster am Dateinamensanfang ausrichten" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "Muster passen nach jedem „/“ (Voreinstellung beim Ausschluss)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "Groß-/Kleinschreibung ignorieren" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "Groß-/Kleinschreibung beachten (Voreinstellung)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "Muster benutzen (Voreinstellung für Ausschluss)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "Zeichenketten sind buchstabengetreu" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "Jokerzeichen passen auf „/“ (Voreinstellung für Ausschluss)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "Jokerzeichen passen nicht auf „/“" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" +"Die folgenden Optionen wurden im Modus zum Erzeugen oder Aktualisieren von " +"Archiven hinter nicht optionalen Argumenten angegeben. Diese Optionen sind " +"positionsabhängig und haben nur auf Argumente Einfluss, die hinter ihnen " +"stehen. Bitte ordnen Sie sie entsprechend an." -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" -msgstr "" +msgstr "-C %s hat keinen Einfluss" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" -msgstr "" +msgstr "--%s %s hat keinen Einfluss" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" -msgstr "" +msgstr "--%s hat keinen Einfluss" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "Kommandozeile" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "" "%s: Dateiliste, die von %s angefordert wurde, wurde schon von %s gelesen" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "kann Zeichenkette „%s“ nicht zerteilen: %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: gelesener Dateiname enthält ein NULL-Zeichen" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "Zeichen für Musterüberdeckung im Dateinamen benutzt" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1537,45 +1539,45 @@ msgstr "" "Benutzen Sie --wildcards, um Musterüberdeckung zu ermöglichen oder\n" "--no-wildcards, um diese Warnung zu unterdrücken." -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: Nicht im Archiv gefunden." -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Erforderliches Auftreten nicht im Archiv gefunden." -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "Kennzeichnung des Archivs passt nicht" -#: src/names.c:1717 +#: src/names.c:1747 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:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "In --listed-incremental ist nur eine Option -C erlaubt" -#: src/tar.c:88 +#: src/tar.c:87 #, c-format msgid "Options '%s' and '%s' both want standard input" msgstr "Sowohl Option „%s“ als auch „%s“ verlangen Standard-Eingabe." -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Ungültiges Archivformat" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "GNU-Erweiterungen bei einem inkompatiblen Archiv-Format verlangt." -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1806,7 +1808,7 @@ msgstr "Wahl des Ausgabestroms:" msgid "extract files to standard output" msgstr "Dateien auf die Standardausgabe extrahieren" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "BEFEHL" @@ -1842,7 +1844,7 @@ msgstr "DATEI benutzen, um UIDs und Namen der Besitzer abzubilden" msgid "use FILE to map file owner GIDs and names" msgstr "DATEI benutzen, um GIDs und Namen der Besitzer abzubilden" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "DATUM-ODER-DATEI" @@ -2062,7 +2064,7 @@ msgstr "erneut Blocken beim Lesen (für 4.2BSD‐Pipes)" msgid "Archive format selection:" msgstr "Auswahl des Archiv-Formats:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "FORMAT" @@ -2146,63 +2148,63 @@ msgstr "PROG" msgid "filter through PROG (must accept -d)" msgstr "durch PROG filten (muss -d akzeptieren)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Auswahl der lokalen Dateien:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "beim Anlegen eines Archivs im lokalen Dateisystem bleiben" -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "führende „/“-Zeichen in den Dateinamen erhalten" -#: src/tar.c:695 +#: src/tar.c:696 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:697 +#: src/tar.c:698 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:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "ELEMENT-NAME" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "beim Lesen der Archivs mit ELEMENT-NAME beginnen" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "nur Dateien ablegen, die neuer als DATUM-ODER-DATEI sind" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "DATUM" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "Datum und Zeit nur überprüfen, wenn Daten geändert wurden" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "KONTROLLE" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "Sicherung vor dem Entfernen, wähle Versions-KONTROLLE" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "ZEICHENKETTE" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2210,61 +2212,61 @@ msgstr "" "Sicherung vor dem Entfernen, übliches Suffix ersetzen („~“, wenn nicht durch " "Umgebungsvariable SIMPLE_BACKUP_SUFFIX anders gesetzt)" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Dateinamentransformationen:" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "ZAHL führende Komponenten beim Extrahieren von Dateinamen entfernen" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "AUSDRUCK" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "den sed-AUSDRUCK zur Dateinamentransformation benutzen" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Informationen:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "bearbeitete Dateien ausführlich listen" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "SCHLÜSSELWORT" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "Warnungssteuerung" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" "Fortschrittsnachrichten bei jedem ZAHLten Record (Voreinstellung 10) anzeigen" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "AKTION" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "AKTION bei jedem Kontrollpunkt ausführen" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "" "eine Nachricht ausgeben, wenn nicht alle Verknüpfungen abgespeichert werden" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "SIGNAL" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2276,35 +2278,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:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "Dateiänderungszeiten in UTC anzeigen" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "Dateizeit in voller Auflösung anzeigen" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "ausführliche Ausgabe in DATEI schreiben" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "bei jeder Nachricht die Blocknummer innerhalb des Archivs mit anzeigen" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "für jede Aktion um Bestätigung bitten" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "Voreinstellungen von tar anzeigen" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "gültige Bereiche für die Felder von Snapshot-Dateien anzeigen" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2312,52 +2314,52 @@ msgstr "" "beim Listen oder Extrahieren jedes Verzeichnis auflisten, dass nicht den " "Suchkriterien entspricht" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "Datei- oder Archivnamen nach der Transformation anzeigen" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "STIL" -#: src/tar.c:765 +#: src/tar.c:766 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:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "zusätzliche Zeichen aus ZEICHENKETTE zitieren" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "Zeichen aus ZEICHENKETTE nicht zitieren" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Kompatibilitätsoptionen:" -#: src/tar.c:777 +#: src/tar.c:778 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:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Weitere Optionen:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "möglicherweise schädliche Optionen deaktivieren" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "„%s“ kann nicht mit %s benutzt werden" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" @@ -2365,40 +2367,40 @@ msgstr "" "Von den Optionen „-Acdtrux“, „--delete“ oder „--test-label“ ist jeweils nur " "eine erlaubt" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Kompressionsoptionen schließen sich gegenseitig aus." -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Unbekannter Signalname: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "Datumsdatei nicht gefunden" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Ersetze %s für unbekanntes Datumsformat %s" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "Option %s: Behandle Datum „%s“ als %s" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "Archiv durch %s filtern" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "Gültige Argumente für die Option --quoting-style sind:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2406,163 +2408,163 @@ msgstr "" "\n" "*Dieses* „tar“ hat als Voreinstellung:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "Ungültige Benutzer- oder Gruppen-ID" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Ungültige Blockgröße" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Ungültige Bandlänge" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "unzulässiger Wert für inkrementelles Niveau" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Mehr als ein Datum angegeben." -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "Ungültiger Wert für Sparse-Version (für löchrige Dateien)" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve='system' wird auf dieser Plattform nicht unterstützt" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "Wert für --checkpoint ist keine ganze Zahl" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Ungültige Zugriffsrechte angegeben." -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Ungültige Zahl" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Ungültiger Wert für Recordgröße." -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "Die Recordgröße muss ein Vielfaches von %d sein." -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Ungültige Elementanzahl" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "Nur eine Option --to-command erlaubt" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Fehlgeformtes Dichteargument: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Unbekannte Dichte: „%c“" -#: src/tar.c:2066 +#: src/tar.c:2075 #, 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:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: Stelle des Fehlers" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "Fehler beim Parser von %s" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[DATEI]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "Argumente, die keine Optionen sind, in %s" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "kann TAR_OPTIONS nicht zerteilen: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." -msgstr "Die alte Option „%c“ benötigt einen Parameter." +msgstr "Die alte Option „%c“ benötigt ein Argument." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence ist ohne Dateiliste bedeutungslos" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "Mehrere Archivdateien verlangen die Option „-M“." -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "--level ist ohne --listed-incremental bedeutungslos" -#: src/tar.c:2424 +#: 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Kann mehrteilige Archive nicht prüfen." -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Kann komprimierte Archive nicht prüfen" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Kann keine mehrteiligen komprimierten Archive verwenden." -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Kann komprimierte Archive nicht aneinanderhängen" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "--clamp-mtime benötigt ein mit --mtime gesetztes Datum" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option kann nur mit POSIX-Archiven benutzt werden" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "--acls kann nur mit POSIX-Archiven benutzt werden" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "--selinux kann nur mit POSIX-Archiven benutzt werden" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "--xattrs kann nur mit POSIX-Archiven benutzt werden" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2570,82 +2572,91 @@ msgstr "" "Kann Namen des obersten Verzeichnisses nicht ableiten; bitte explizit mit --" "one-top-level=VERZ setzen" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "Teillänge kann nicht unter der Recordgröße liegen" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Anlegen eines leeren Archivs wird feige verweigert." -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Die Optionen „-Aru“ sind nicht kompatibel mit „-f -“." -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "" "Eine der Optionen „-Acdtrux“, „--delete“ oder „--test-label“ ist notwendig." -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "Beende mit Fehlerstatus aufgrund vorheriger Fehler" -#: src/update.c:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Datei ist um ein Byte geschrumpft." msgstr[1] "%s: Datei ist um %s Bytes geschrumpft." -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "Muster %s kann nicht benutzt werden" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Schlüsselwort %s kann nicht überschrieben werden" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "Fehlgeformter erweiterter Kopfteil: fehlende Länge" -#: src/xheader.c:677 +#: src/xheader.c:695 #, 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:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "Fehlgeformter erweiterter Kopfteil: fehlender Leerraum nach der Länge" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "Fehlgeformter erweiterter Kopfteil: fehlendes Gleichheitszeichen" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "Fehlgeformter erweiterter Kopfteil: fehlender Zeilenvorschub" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "Ignoriere unbekanntes Schlüsselwort „%s“ für erweiterten Kopfteil" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" @@ -2653,50 +2664,50 @@ msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:1053 +#: src/xheader.c:1071 #, 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:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Fehlgeformter erweiterter Kopfteil: ungültiges %s=%s" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Fehlgeformter erweiterter Kopfteil: überzähliges %s=%s" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, 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:1543 +#: src/xheader.c:1561 #, 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:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s: kein gültiger Zeitüberschreitungswert" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: unbekannte Kontrollpunkt-Aktion" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "lesen" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "schreiben" @@ -2704,7 +2715,7 @@ msgstr "schreiben" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Schreib-Kontrollpunkt %u" @@ -2713,12 +2724,12 @@ msgstr "Schreib-Kontrollpunkt %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Lese-Kontrollpunkt %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2726,99 +2737,103 @@ msgstr "" "genfile manipuliert Datendateien für die Testsuite der GNU paxutils.\n" "OPTIONEN sind:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Optionen beim Anlegen von Dateien:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "GRÖßE" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Datei der gegebenen GRÖßE anlegen" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "in Datei NAME anstelle der Standardausgabe schreiben" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "Dateinamenlist aus DATEI lesen" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T liest null-terminierte Namen" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "Die Datei mit dem gegebenen MUSTER füllen. MUSTER ist „default“ oder „zeros“." -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "Größe eines Blocks für löchrige Dateien" # „map“: Karte, Abbildung? -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" -"Löchrige („sparse“) Datei erzeugen. Der Rest der Kommandozeile gibt die die " +"Löchrige („sparse“) Datei erzeugen. Der Rest der Kommandozeile gibt die " "Dateibildungsvorschrift an." -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "POSITION" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "vor dem Schreiben zur gegebenen Position springen" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "Diagnosemeldungen, die nicht schwerwiegend sind, unterdrücken" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Dateistatistikoptionen:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Inhalt des „struct stat“ für jede gegebene Datei ausgeben. Standard-FORMAT " "ist:" -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Optionen für synchrone Ausführung:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "OPTION" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "ARGUMENTE ausführen. Nützlich mit --checkpoint und einem aus --cut, --" "append, --touch, --unlink" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" "gegebene Aktion (siehe unten) beim Erreichen des Kontrollpunkts ZAHL " "ausführen" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "Datum für nächste „--touch“-Operation setzen" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "ausgeführte Kontrollpunkte und Beendigungsstatus von BEFEHL anzeigen" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2826,7 +2841,7 @@ msgstr "" "Aktionen für synchrone Ausführung. Diese werden beim Erreichen des " "Kontrollpunkts, der mit der Option --checkpoint gesetzt wurde, ausgeführt." -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2834,126 +2849,126 @@ msgstr "" "DATEI kürzen auf die Länge, die mit einer vorhergehenden Option --length " "(oder 0 bei Abwesenheit) gesetzt wurde" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "GRÖßE Bytes an DATEI anfügen. GRÖßE wird mit einer vorhergehenden Option --" "length gesetzt." -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "Zugriffs- und Änderungszeiten der DATEI neu setzen" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "BEFEHL ausführen" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" -msgstr "" +msgstr "DATEI löschen" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Ungültige Größe: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Zahl außerhalb des zulässigen Bereichs: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Negative Größe: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) fehlgeschlagen" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "Dateilänge %lu verlangt, tatsächlich %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "erzeugte Datei ist nicht löchrig" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "Fehler beim Parser der Zahl in der Nähe von „%s“" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Unbekanntes Datumsformat" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ARGUMENTE...]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "kann „%s“ nicht öffnen" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "kann nicht positionieren" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "Dateiname enthält Null-Zeichen" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, 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:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "inkorrekte Maske (nahe „%s“)" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "unbekannte Feld „%s“" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "kann an „%s“ keine Zeit setzen" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "kann „%s“ nicht abschneiden" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "Befehl fehlgeschlagen: %s" -#: tests/genfile.c:781 -#, fuzzy, c-format +#: tests/genfile.c:772 +#, c-format msgid "cannot stat `%s'" -msgstr "kann „%s“ nicht abschneiden" +msgstr "kann nicht auf „%s“ zugreifen" -#: tests/genfile.c:785 -#, fuzzy, c-format +#: tests/genfile.c:776 +#, c-format msgid "cannot remove directory `%s'" -msgstr "kann an „%s“ keine Zeit setzen" +msgstr "kann Verzeichnis „%s“ nicht entfernen" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "kann „%s“ nicht entfernen (unlink)" @@ -2993,11 +3008,11 @@ msgstr "Befehl beendet\n" msgid "--stat requires file names" msgstr "--stat erfordert Dateinamen" -#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" -#~ msgstr "%.*s: ARGP_HELP_FMT-Parameter muss positiv sein" +#~ msgid "OPTION" +#~ msgstr "OPTION" #~ msgid "%s: option '--%s' doesn't allow an argument\n" -#~ msgstr "%s: Option „--%s“ erlaubt keinen Parameter\n" +#~ msgstr "%s: Option „--%s“ erlaubt kein Argument\n" #~ msgid "%s: unrecognized option '--%s'\n" #~ msgstr "%s: Unbekannte Option „--%s“\n" @@ -3006,10 +3021,10 @@ msgstr "--stat erfordert Dateinamen" #~ msgstr "%s: Option „-W %s“ ist mehrdeutig\n" #~ msgid "%s: option '-W %s' doesn't allow an argument\n" -#~ msgstr "%s: Option „-W %s“ erlaubt keinen Parameter\n" +#~ msgstr "%s: Option „-W %s“ erlaubt kein Argument\n" #~ msgid "%s: option '-W %s' requires an argument\n" -#~ msgstr "%s: Option „-W %s“ benötigt einen Parameter\n" +#~ msgstr "%s: Option „-W %s“ benötigt ein Argument\n" #~ msgid "Unlink FILE" #~ msgstr "FILE entfernen (unlink)" @@ -3017,13 +3032,6 @@ msgstr "--stat erfordert Dateinamen" #~ msgid "same as both -p and -s" #~ msgstr "wie -p und -s zusammen" -#~ msgid "" -#~ "The --preserve option is deprecated, use --preserve-permissions --" -#~ "preserve-order instead" -#~ msgstr "" -#~ "Die Option --preserve ist veraltet, benutzen Sie stattdessen --preserve-" -#~ "permissions --preserve-order" - #~ msgid "--occurrence cannot be used with %s" #~ msgstr "--occurrence kann mit %s nicht benutzt werden" @@ -3067,13 +3075,6 @@ msgstr "--stat erfordert Dateinamen" #~ msgid "%s: illegal option -- %c\n" #~ msgstr "%s: Unzulässige Option -- %c\n" -#~ msgid "" -#~ "\n" -#~ "Report bugs to <%s>.\n" -#~ msgstr "" -#~ "\n" -#~ "Melden Sie Fehler (auf Englisch, mit LC_ALL=C) an <%s>.\n" - #~ msgid "Input string too long" #~ msgstr "Eingabezeichenkette zu lang" @@ -3089,20 +3090,6 @@ msgstr "--stat erfordert Dateinamen" #~ msgid "Try `%s --help' for more information.\n" #~ msgstr "„%s --help“ zeigt weitere Informationen.\n" -#~ 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 "" -#~ "Aufruf: %s [OPTION]\n" -#~ "Arbeiten mit einem Bandlaufwerk, Befehle können von einem anderen Prozess " -#~ "stammen.\n" -#~ "\n" -#~ " --version Versionsinformation ausgeben\n" -#~ " --help diesen Hilfetext ausgeben\n" - #~ msgid "Seek offset error" #~ msgstr "Fehler bei der Positionierungsangabe." diff --git a/po/el.gmo b/po/el.gmo index b36b784b6fca5ed07093796fd729c547cc2696a5..a3e4a0430dbe2ed55674cfc0b15c295061ff542e 100644 GIT binary patch delta 26 hcmZoJY%bi8A<k>5Yha{nWUOFlVr6Q+xm27_5ddu*2N(bV delta 26 hcmZoJY%bi8A<k>AYiOivXs%#rWMyo)xm27_5dduG2M_=N diff --git a/po/el.po b/po/el.po index e30a4ac5..b5d998b1 100644 --- 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:1599 +#: src/create.c:1598 msgid "" msgstr "" "Project-Id-Version: tar 1.13.25 \n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" "PO-Revision-Date: 2004-03-08 14:44+0200\n" "Last-Translator: Μπαλάσκας Ευάγγελος (Balaskas Euaggelos) <ebalaskas@cs." "teiath.gr>\n" @@ -100,7 +100,7 @@ msgid "give a short usage message" msgstr "" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "" @@ -235,12 +235,12 @@ msgstr "" msgid "^[nN]" msgstr "" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "" @@ -248,11 +248,11 @@ msgstr "" #. 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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "" -#: gnu/version-etc.c:86 +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -511,54 +511,54 @@ msgstr "Δεν είναι δυνατή η εκτέλεση απομακρυσμ msgid "Cannot execute remote shell" msgstr "Δεν είναι δυνατή η εκτέλεση απομακρυσμένου κελύφους (φλοιού)" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Η κατεύθυνση αναζήτησης είναι εκτός εύρους" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 #, fuzzy msgid "Invalid seek direction" msgstr "Άκυρη κατάσταση δόθηκε σε επιλογή" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 #, fuzzy msgid "Invalid seek offset" msgstr "Άκυρη ένδειξη χρόνου" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Η μετατόπιση αναζήτησης είναι εκτός εύρους" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 #, fuzzy msgid "Invalid byte count" msgstr "Άκυρο μέγεθος ταινίας" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 #, fuzzy msgid "Byte count out of range" msgstr "Η μετατόπιση αναζήτησης είναι εκτός εύρους" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 #, fuzzy msgid "Premature eof" msgstr "rmtd: Πρόωρο eof (τέλος αρχείου)\n" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 #, fuzzy msgid "Invalid operation code" msgstr "%s: άκυρη επιλογή -- %c\n" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 #, fuzzy msgid "Unexpected arguments" msgstr "Μη αναμενόμενο EOF (Τέλος Αρχείου) στα κατακερματισμένα ονόματα" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 #, fuzzy msgid "Manipulate a tape drive, accepting commands from a remote process" msgstr "" @@ -569,147 +569,147 @@ msgstr "" " --version Εμφάνιση πληροφοριών έκδοσης.\n" " --help Εμφάνιση αυτής της βοήθειας.\n" -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, fuzzy, c-format msgid "cannot open %s" msgstr "Δεν είναι δυνατό το κλείσιμο" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Εντολή απορριμμάτων" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Αυτό δεν φαίνεται ως αρχειοθήκη tar" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "" -#: src/buffer.c:592 +#: src/buffer.c:594 #, fuzzy msgid "Total bytes written" msgstr "Συνολικά byte που γράφτηκαν: %s (%sB, %sB/s)\n" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(σωλήνωση)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Άκυρη τιμή για record_size" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Δεν δόθηκε όνομα αρχειοθήκης" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "" "Δεν είναι δυνατή η επαλήθευση των κανονικών εισόδων/εξόδων της αρχειοθήκης" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Δεν είναι δυνατή η ανανέωση των συμπιεσμένων αρχειοθηκών" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "Στην αρχή της ταινίας, τερματισμός τώρα" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Πάρα πολλά σφάλματα, τερματισμός" -#: src/buffer.c:967 +#: src/buffer.c:969 #, 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:988 +#: src/buffer.c:990 #, 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:1075 +#: src/buffer.c:1077 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "" -#: src/buffer.c:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: περιέχει άκυρο αριθμό τόμου" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Υπερχήλιση αριθμού τόμου" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Προετοίμασε τον τόμο #%d για %s και πάτα το πλήκτρο επιστροφής γραμμής" -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "EOF (Τέλος Αρχείου) ενώ η απάντηση του χρήστη αναμενότανε" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "ΠΡΟΕΙΔΟΠΟΊΗΣΗ: Η αρχειοθήκη είναι ημιτελής" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, fuzzy, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -721,275 +721,275 @@ msgstr "" " ! Παραγωγή νέου υπό-φλοιού\n" " ? Εκτύπωση αυτής της λίστας\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr "" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr "" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Κανένας νέος τόμος; έξοδος\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, fuzzy, c-format msgid "%s command failed" msgstr "`%s' η εντολή απέτυχε" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s δεν συνεχίζεται σε αυτόν τον τόμο" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, fuzzy, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s δεν συνεχίζεται σε αυτόν τον τόμο" -#: src/buffer.c:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s είναι το εσφαλμένο μέγεθος (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, fuzzy, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Αυτός ο τόμος είναι εκτός συνέχειας" -#: src/buffer.c:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "Η αρχειοθήκη δεν έχει ετικέτα για ταίριασμα %s" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "Ο τόμος %s δεν ταιριάζει %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "" -#: src/compare.c:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Τα περιεχόμενα διαφέρουν" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Μη αναμενόμενο EOF (Τέλος Αρχείου) στην αρχειοθήκη" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Οι τύποι αρχείων διαφέρουν" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Οι καταστάσεις διαφέρουν" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Ταυτότητες χρήστη διαφέρουν" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "Ταυτότητες ομάδας διαφέρουν" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Ώρες τροποποίησης διαφέρουν" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Τα μεγέθη διαφέρουν" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Δεν είναι συνδεδεμένο με %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Οι σύνδεσμοι διαφέρουν" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Οι αριθμοί των συσκευών διαφέρουν" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Επαλήθευση " -#: src/compare.c:480 +#: src/compare.c:479 #, c-format msgid "%s: Unknown file type '%c', diffed as normal file" msgstr "%s: Άγνωστος τύπος αρχείου '%c', εκτέλεση της diff ως κανονικό αρχείο" -#: src/compare.c:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "" -#: src/compare.c:541 +#: src/compare.c:540 #, fuzzy msgid "Archive contains transformed file names." msgstr "Η αρχειοθήκη περιέχει απαρχαιωμένες επικεφαλίδες κωδικοποίησης base64" -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "" -#: src/compare.c:620 +#: src/compare.c:619 #, 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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "" -#: src/create.c:74 +#: src/create.c:73 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "" -#: src/create.c:263 +#: 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:269 +#: src/create.c:268 #, c-format msgid "value %s out of %s range %s..%s" msgstr "η τιμή %s είναι εκτός του %s εύρους %s..%s" -#: src/create.c:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Παράχθηκαν αρνητικές οκταδικές επικεφαλίδες" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, fuzzy, c-format msgid "%s: file name is too long (max %d); not dumped" msgstr "%s: δεν μπορεί να τροποποιηθεί το αρχείο; δεν αποθηκεύτηκε" -#: src/create.c:616 +#: src/create.c:615 #, fuzzy, c-format msgid "%s: file name is too long (cannot be split); not dumped" msgstr "%s: δεν μπορεί να τροποποιηθεί το αρχείο; δεν αποθηκεύτηκε" -#: src/create.c:643 +#: src/create.c:642 #, fuzzy, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: δεν μπορεί να τροποποιηθεί το αρχείο; δεν αποθηκεύτηκε" -#: src/create.c:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: το αρχείο είναι σε διαφορετικό σύστημα αρχείων; δεν αποθηκεύτηκε" -#: src/create.c:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Άγνωστος τύπος αρχείου; το αρχείο αγνοήθηκε" -#: src/create.c:1576 +#: src/create.c:1575 #, fuzzy, c-format msgid "Missing links to %s." msgstr " σύνδεσμος σε %s\n" -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: δεν μπορεί να τροποποιηθεί το αρχείο; δεν αποθηκεύτηκε" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: το αρχείο είναι η αρχειοθήκη; δεν αποθηκεύτηκε" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: αρχείο τροποποιήθηκε κατά την ανάγνωση" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: η υποδοχή αγνοήθηκε" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: η πόρτα αγνοήθηκε" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Παραλείποντας στην επόμενη επικεφαλίδα" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Διαγραφή μη-επικεφαλίδων από την αρχειοθήκη" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "" -#: src/extract.c:320 +#: src/extract.c:319 #, fuzzy, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: η ένδειξη χρόνου %s είναι %lu s στο μέλλον" -#: src/extract.c:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Μη αναμενόμενη ανακολουθία κατά την δημιουργία του καταλόγου" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "" @@ -1012,7 +1012,7 @@ msgstr "Προσπάθεια εξαγωγής των συμβολικών συν msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Δεν είναι δυνατή η εξαγωγή -- το αρχείο συνεχίζεται σε άλλο τόμο" -#: src/extract.c:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 #, fuzzy msgid "Unexpected long name header" msgstr "Μη αναμενόμενο EOF (Τέλος Αρχείου) στα κατακερματισμένα ονόματα" @@ -1042,22 +1042,22 @@ msgstr "%s: Δεν είναι δυνατή η αποθήκευση αυτού τ msgid "Cannot rename %s to %s" msgstr "%s: Δεν είναι δυνατή η μετονομασία σε %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, fuzzy, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Ο κατάλογος έχει μετονομαστεί" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: Ο κατάλογος είναι καινούριος" -#: src/incremen.c:566 +#: src/incremen.c:565 #, fuzzy, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "%s: το αρχείο είναι σε διαφορετικό σύστημα αρχείων; δεν αποθηκεύτηκε" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Ο κατάλογος έχει μετονομαστεί" @@ -1183,35 +1183,35 @@ msgstr "%s: Διαγραφή %s\n" msgid "%s: Cannot remove" msgstr "%s: Δεν είναι δυνατή η απομάκρυνση" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: Παράλειψη" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "μπλοκ %s: ** Μπλοκ με χαρακτήρες NUL **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "μπλοκ %s: ** Τέλος Αρχείου **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "μπλοκ %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1219,342 +1219,342 @@ msgstr "" "συμπληρώματα" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Αρχειοθήκη οκταδικής τιμής %.*s είναι εκτός του %s εύρους" -#: src/list.c:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "Η αρχειοθήκη περιέχει απαρχαιωμένες επικεφαλίδες κωδικοποίησης base64" -#: src/list.c:852 +#: src/list.c:853 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "" "Η αρχειοθήκη είναι υπογεγραμμένη με αλφαριθμητικά base-64 %s είναι εκτός του " "%s εύρους" -#: src/list.c:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Η τιμή της αρχειοθήκης %s είναι εκτός του %s εύρους %s..%s" -#: src/list.c:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " σύνδεσμος σε %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " άγνωστος τύπος αρχείου %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Επικεφαλίδα Τόμου--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Συνέχιση στο byte %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Δημιουργία καταλόγου:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "Μετονομασία %s σε %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Δεν είναι δυνατή η μετονομασία σε %s" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "Μετονομασία %s πίσω στο %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: Το αρχείο απομακρύνθηκε πριν το διαβάσουμε" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "θυγατρική διεργασία" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "κανάλι μεταξύ διεργασιών" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "" -#: src/names.c:72 +#: src/names.c:71 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" -#: src/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "" -#: src/names.c:74 +#: src/names.c:73 #, fuzzy msgid "change to directory DIR" msgstr "Δεν είναι δυνατή η τροποποίηση του τρέχοντος καταλόγου" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "" -#: src/names.c:87 +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" msgstr "" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" msgstr "" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "" -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "" -#: src/names.c:147 +#: src/names.c:146 #, fuzzy msgid "wildcards do not match '/'" msgstr "Ο τόμος %s δεν ταιριάζει %s" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" msgstr "" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" msgstr "" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" msgstr "" -#: src/names.c:879 +#: src/names.c:878 #, fuzzy msgid "command line" msgstr "`%s' η εντολή απέτυχε" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" msgstr "" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: Δεν βρέθηκε στην αρχειοθήκη" -#: src/names.c:1379 +#: src/names.c:1409 #, fuzzy, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Δεν βρέθηκε στην αρχειοθήκη" -#: src/names.c:1413 +#: src/names.c:1443 #, fuzzy, c-format msgid "Archive label mismatch" msgstr "Η αρχειοθήκη δεν έχει ετικέτα για ταίριασμα %s" -#: src/names.c:1717 +#: src/names.c:1747 msgid "" "Using -C option inside file list is not allowed with --listed-incremental" msgstr "" -#: src/names.c:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "" -#: src/tar.c:88 +#: src/tar.c:87 #, fuzzy, c-format msgid "Options '%s' and '%s' both want standard input" msgstr "Οι επιλογές `-%s' και `-%s' απαιτούν κανονική είσοδο" -#: src/tar.c:165 +#: src/tar.c:164 #, fuzzy, c-format msgid "%s: Invalid archive format" msgstr "%s: Άκυρη ομάδα" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "Τα χαρακτηριστικά GNU απαιτούν μη συμβατή διαμόρφωση αρχειοθήκης" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1770,7 +1770,7 @@ msgstr "" msgid "extract files to standard output" msgstr "Σφάλμα κατά την εγγραφή στην κανονική έξοδο" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "" @@ -1806,7 +1806,7 @@ msgstr "" msgid "use FILE to map file owner GIDs and names" msgstr "" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "" @@ -2007,7 +2007,7 @@ msgstr "" msgid "Archive format selection:" msgstr "Συγκρουόμενες επιλογές διαμόρφωσης αρχειοθήκης" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "" @@ -2090,118 +2090,118 @@ msgstr "" msgid "filter through PROG (must accept -d)" msgstr "" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "" -#: src/tar.c:693 +#: src/tar.c:694 #, fuzzy msgid "don't strip leading '/'s from file names" msgstr "Απομακρύνονται τα αρχικά `%.*s' από τα ονόματα των μελών" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" msgstr "" -#: src/tar.c:697 +#: src/tar.c:698 msgid "follow hard links; archive and dump the files they refer to" msgstr "" -#: src/tar.c:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" msgstr "" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2209,426 +2209,435 @@ msgid "" "accepted" msgstr "" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "" -#: src/tar.c:765 +#: src/tar.c:766 msgid "set name quoting style; see below for valid STYLE values" msgstr "" -#: src/tar.c:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, fuzzy, c-format msgid "'%s' cannot be used with '%s'" msgstr "%s: Δεν είναι δυνατή η αναζήτηση σε %s" -#: src/tar.c:933 +#: src/tar.c:934 #, fuzzy msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" msgstr "Ίσως δεν καθορίσατε παραπάνω από μία επιλογή `-Acdtrux'" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Συγκρουόμενες επιλογές συμπίεσης" -#: src/tar.c:1004 +#: src/tar.c:1000 #, fuzzy, c-format msgid "Unknown signal name: %s" msgstr " άγνωστος τύπος αρχείου %s\n" -#: src/tar.c:1028 +#: src/tar.c:1030 #, fuzzy msgid "Date sample file not found" msgstr "Το αρχείο ημερομηνίας δεν βρέθηκε" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Αντικατάσταση %s για άγνωστη διαμόρφωση ημερομηνίας %s" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" msgstr "" -#: src/tar.c:1253 +#: src/tar.c:1259 #, fuzzy msgid "Invalid owner or group ID" msgstr "Άκυρος ιδιοκτήτης" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Άκυρος συντελεστής ομαδοποίησης" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Άκυρο μέγεθος ταινίας" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Παραπάνω από ένα όριο ημερομηνίας" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Άκυρη κατάσταση δόθηκε σε επιλογή" -#: src/tar.c:1797 +#: src/tar.c:1806 #, fuzzy msgid "Invalid number" msgstr "Άκυρος αριθμός i-κόμβου" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Άκυρο μέγεθος εγγραφής" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "Το μέγεθος της εγγραφής πρέπει να είναι πολλαπλάσιο του %d." -#: src/tar.c:1910 +#: src/tar.c:1919 #, fuzzy msgid "Invalid number of elements" msgstr "Άκυρο μέγεθος ταινίας" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "" -#: src/tar.c:2066 +#: src/tar.c:2075 #, fuzzy, c-format msgid "Options '-[0-7][lmh]' not supported by *this* tar" msgstr "" "Οι επιλογές `-[0-7][lmh]' δεν υποστηρίζονται από *αυτήν* την εντολή tar" -#: src/tar.c:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "" -#: src/tar.c:2181 +#: src/tar.c:2190 #, fuzzy, c-format msgid "non-option arguments in %s" msgstr "άκυρο όρισμα %s για %s" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "" -#: src/tar.c:2291 +#: src/tar.c:2300 #, fuzzy, c-format msgid "Old option '%c' requires an argument." msgstr "Παλιά επιλογή `%c' απαιτεί όρισμα." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "" -#: src/tar.c:2390 +#: src/tar.c:2399 #, fuzzy msgid "Multiple archive files require '-M' option" msgstr "Πολλαπλά αρχεία αρχειοθηκών απαιτούν την επιλογή `-M'" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "" -#: src/tar.c:2424 +#: 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Δεν είναι δυνατή η επαλήθευση πολλαπλών αρχειοθηκών" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Δεν είναι δυνατή η επαλήθευση των συμπιεσμένων αρχειοθηκών" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Δεν είναι δυνατή η χρήση πολλαπλών συμπιεσμένων αρχειοθηκών" -#: src/tar.c:2457 +#: src/tar.c:2466 #, fuzzy msgid "Cannot concatenate compressed archives" msgstr "Δεν είναι δυνατή η ανανέωση των συμπιεσμένων αρχειοθηκών" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" msgstr "" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Αρνούμαι δειλά στη δημιουργία μίας κενής αρχειοθήκης" -#: src/tar.c:2623 +#: src/tar.c:2632 #, fuzzy msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Οι επιλογές `-Aru' δεν είναι συμβατές με `-f -'" -#: src/tar.c:2711 +#: src/tar.c:2743 #, fuzzy msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "Πρέπει να καθορίσεις μία από τις επιλογές `-Acdtrux'" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" -#: src/update.c:87 +#: src/update.c:86 #, fuzzy, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Το αρχείο συρρικνώθηκε κάτα %s byte" msgstr[1] "%s: Το αρχείο συρρικνώθηκε κάτα %s byte" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "" -#: src/xheader.c:677 +#: src/xheader.c:695 #, fuzzy, c-format msgid "Extended header length %*s is out of range" msgstr "" "Η αρχειοθήκη είναι υπογεγραμμένη με αλφαριθμητικά base-64 %s είναι εκτός του " "%s εύρους" -#: src/xheader.c:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, 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:1053 +#: src/xheader.c:1071 #, fuzzy, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Η τιμή της αρχειοθήκης %s είναι εκτός του %s εύρους %s..%s" -#: src/xheader.c:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "" -#: src/checkpoint.c:114 +#: src/checkpoint.c:133 #, fuzzy, c-format msgid "%s: not a valid timeout" msgstr "%s: Άκυρη ομάδα" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "" @@ -2636,7 +2645,7 @@ msgstr "" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, fuzzy, c-format msgid "Write checkpoint %u" msgstr "Εγγραφή σημείου ελέγχου %d" @@ -2645,231 +2654,231 @@ msgstr "Εγγραφή σημείου ελέγχου %d" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, fuzzy, c-format msgid "Read checkpoint %u" msgstr "Ανάγνωση σημείου ελέγχου %d" -#: tests/genfile.c:115 +#: tests/genfile.c:110 #, fuzzy msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "Παράγει αρχεία δεδομένων για δοκιμαστική πλατφόρμα GNU tar.\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 #, fuzzy msgid "File creation options:" msgstr "Συγκρουόμενες επιλογές συμπίεσης" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "" -#: tests/genfile.c:135 +#: tests/genfile.c:130 #, fuzzy msgid "Write to file NAME, instead of standard output" msgstr "Σφάλμα κατά την εγγραφή στην κανονική έξοδο" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "" -#: tests/genfile.c:168 -msgid "OPTION" +#: tests/genfile.c:163 +msgid "N" msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" msgstr "" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, fuzzy, c-format msgid "Invalid size: %s" msgstr "Άκυρη ένδειξη χρόνου" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, fuzzy, c-format msgid "Number out of allowed range: %s" msgstr "Ο αριθμός του i-κόμβου είναι εκτός εύρους" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, fuzzy, c-format msgid "Unknown date format" msgstr "Άγνωστο σφάλμα συστήματος" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "" -#: tests/genfile.c:448 +#: tests/genfile.c:439 #, fuzzy msgid "cannot seek" msgstr "Δεν είναι δυνατό το κλείσιμο" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, fuzzy, c-format msgid "Unknown field `%s'" msgstr " άγνωστος τύπος αρχείου %s\n" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, fuzzy, c-format msgid "cannot set time on `%s'" msgstr "%s: Δεν είναι δυνατή η αναζήτηση σε %s" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, fuzzy, c-format msgid "cannot truncate `%s'" msgstr "%s: Δεν είναι δυνατή η μετονομασία σε %s" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, fuzzy, c-format msgid "command failed: %s" msgstr "`%s' η εντολή απέτυχε" -#: tests/genfile.c:781 +#: tests/genfile.c:772 #, c-format msgid "cannot stat `%s'" msgstr "" -#: tests/genfile.c:785 +#: tests/genfile.c:776 #, fuzzy, c-format msgid "cannot remove directory `%s'" msgstr "Δεν είναι δυνατή η αποθήκευση του τρέχοντος καταλόγου" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, fuzzy, c-format msgid "cannot unlink `%s'" msgstr "%s: Δεν είναι δυνατή η συμβολική σύνδεση στο %s" diff --git a/po/eo.gmo b/po/eo.gmo index 2f9e433cc09dc22b69879814a08b330a4fd7bbe3..06cda0c6dd74f20b1886d24da23a34ef7688ace1 100644 GIT binary patch delta 14744 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 Af&c&j delta 12831 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 diff --git a/po/eo.po b/po/eo.po index 06c47b75..d3690a47 100644 --- a/po/eo.po +++ b/po/eo.po @@ -1,15 +1,15 @@ # Esperanto translation. -# Copyright (C) 2013, 2014, 2016 Free Software Foundation, Inc. +# Copyright (C) 2013, 2014, 2016, 2018 Free Software Foundation, Inc. # This file is distributed under the same license as the tar package. -# Felipe Castro <fefcas@gmail.com>, 2013, 2014, 2016. +# Felipe Castro <fefcas@gmail.com>, 2013, 2014, 2016, 2018. # -#: src/create.c:1599 +#: src/create.c:1598 msgid "" msgstr "" -"Project-Id-Version: tar 1.29\n" +"Project-Id-Version: tar 1.30\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" -"PO-Revision-Date: 2016-10-15 21:16-0300\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" +"PO-Revision-Date: 2018-06-05 23:06-0300\n" "Last-Translator: Felipe Castro <fefcas@gmail.com>\n" "Language-Team: Esperanto <translation-team-eo@lists.sourceforge.net>\n" "Language: eo\n" @@ -97,7 +97,7 @@ msgid "give a short usage message" msgstr "montri mallongan mesaĝon pri la uzmaniero" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "NOMO" @@ -135,29 +135,29 @@ msgid "write error" msgstr "skrib-eraro" #: gnu/getopt.c:278 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous\n" -msgstr "%s: modifilo '%s' estas plursenca\n" +msgstr "%s: modifilo '%s%s' estas plursenca\n" #: gnu/getopt.c:284 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" -msgstr "%s: modifilo '%s' estas plursenca; ebloj:" +msgstr "%s: modifilo '%s%s' estas plursenca; ebloj:" #: gnu/getopt.c:319 -#, fuzzy, c-format +#, c-format msgid "%s: unrecognized option '%s%s'\n" -msgstr "%s: nerekonata modifilo '%c%s'\n" +msgstr "%s: nerekonata modifilo '%s%s'\n" #: gnu/getopt.c:345 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" -msgstr "%s: modifilo '%c%s' ne permesas argumenton\n" +msgstr "%s: modifilo '%s%s' ne permesas argumenton\n" #: gnu/getopt.c:360 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' requires an argument\n" -msgstr "%s: modifilo '--%s' postulas argumenton\n" +msgstr "%s: modifilo '%s%s' postulas argumenton\n" #: gnu/getopt.c:621 #, c-format @@ -232,12 +232,12 @@ msgstr "^[jJyY]" msgid "^[nN]" msgstr "^[nN]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Pakigita de %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Pakigita de %s\n" @@ -245,12 +245,11 @@ 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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "(C)" -#: gnu/version-etc.c:86 -#, fuzzy +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -260,7 +259,7 @@ msgid "" "\n" msgstr "" "\n" -"Permeso GPLv3+: GNU GPL versio 3 aŭ posta <http://gnu.org/licenses/gpl." +"Permeso GPLv3+: GNU GPL versio 3 aŭ posta <https://gnu.org/licenses/gpl." "html>.\n" "Tio ĉi estas libera programaro: vi estas libera por ŝanĝi kaj redisdoni " "ĝin.\n" @@ -400,15 +399,15 @@ msgid "%s home page: <%s>\n" msgstr "%s hejm-paĝo: <%s>\n" #: gnu/version-etc.c:253 -#, fuzzy, c-format +#, c-format msgid "%s home page: <https://www.gnu.org/software/%s/>\n" -msgstr "%s hejm-paĝo: <http://www.gnu.org/software/%s/>\n" +msgstr "%s hejm-paĝo: <https://www.gnu.org/software/%s/>\n" +# #: gnu/version-etc.c:256 -#, fuzzy msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n" msgstr "" -"Ĝenerala helpo por uzi programaron GNU: <http://www.gnu.org/gethelp/>\n" +"Ĝenerala helpo por uzi programaron GNU: <https://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 @@ -527,189 +526,189 @@ msgstr "Ne eblas redirektigi dosierojn por fora ŝelo" msgid "Cannot execute remote shell" msgstr "Ne eblas lanĉi foran ŝelon" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Serĉ-direkto estas for de intervalo" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "Malvalida serĉ-direkto" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "Malvalida serĉ-deŝovo" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 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 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "Malvalida bajt-nombro" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "Bajt-nombro estas for de intervalo" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "Trofrua EOF" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "Malvalida operacia kodo" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "Operacio ne estas subtenata" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Neatenditaj argumentoj" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 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:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "NUMERO" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "difini rafinigan nivelon" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "DOSIERO" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "difini rafinigan eliran dosiernomon" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "ne eblas malfermi %s" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "tro da argumentoj" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Ruba komando" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Tio ĉi ne ŝajnas esti arĥivo tar" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Bajtoj entute legitaj" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Bajtoj entute skribitaj" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "Tuto da bajtoj forigitaj" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(dukto)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "Ni rifuzas legi arĥiv-enhavon el terminalo (ĉu mankas modifilon -f?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "Ni rifuzas skribi arĥiv-enhavon al terminalo (ĉu mankas modifilon -f?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Malvalida valoro por 'record_size'" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Neniu arĥiv-nomo estas indikita" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Ne eblas kontroli arĥivon de ĉefa en/eligujo" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Arĥivo estas densigita. Uzu modifilon %s" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Ne eblas ĝisdatigi densigitajn arĥivojn" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "Ĉe komenco de bendo, ni ĉesas nun" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Tro multaj eraroj, ni ĉesas" -#: src/buffer.c:967 +#: src/buffer.c:969 #, 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:988 +#: src/buffer.c:990 #, 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:1075 +#: src/buffer.c:1077 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:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "'rmtlseek' ne haltis ĉe rikord-limo" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: enhavas malvalidan volum-numeron" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Datumvolum-numero troigas" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Preparu datumvolumon #%d por %s kaj premu enig-klavon: " -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "EOF kie respondo de uzanto estis atendata" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "AVERTO: arĥivo estas malkompleta" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -720,67 +719,67 @@ msgstr "" " q Ĉesigi tar\n" " y aŭ novlinio Daŭrigi operacion\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Generi subŝelon\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? Montri tiun ĉi liston\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Neniu nova datumvolumo: ni eliras.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "Dosiernomo ne estis indikata. Reprovu.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Malvalida enigo. Tajpu ? por helpo.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "La komando %s fiaskis" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s ne estas daŭrigata en tiu ĉi datumvolumo" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, 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:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s estas malkorekta grando (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, 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:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "La arĥivo ne estas markita por kongrui al %s" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "La datumvolumo %s ne kongruas al %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -788,210 +787,210 @@ msgstr "" "%s: dosiernomo tro longas por esti konservata en GNU-plurvoluma kapo, ni " "tranĉis" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "skribo ne finiĝis ĉe bloko-limo" -#: src/compare.c:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Enhavo malsamas" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Neatendita EOF en arĥivo" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Dosiertipo malsamas" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Reĝimo malsamas" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "UID malsamas" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "GID malsamas" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Modif-tempo malsamas" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Grando malsamas" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Ne ligita al %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Simbol-ligo malsamas" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Aparatnumero malsamas" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Kontroli " -#: src/compare.c:480 +#: src/compare.c:479 #, c-format msgid "%s: Unknown file type '%c', diffed as normal file" msgstr "%s: nekonata dosiertipo '%c', ni komparas kiel normalan dosieron" -#: src/compare.c:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "Arĥivo enhavas dosiernomojn kun forigitaj antaŭiraj prefiksoj." -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "Arĥivo enhavas transformitajn dosiernomojn." -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "Kontrolo povas malsukcesi lokigi originalajn dosierojn." -#: src/compare.c:620 +#: src/compare.c:619 #, 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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "Izolita nul-bloko ĉe %s" -#: src/create.c:74 +#: 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:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Generado de negativaj okumaj kapoj" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, 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:616 +#: src/create.c:615 #, 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:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: lignomo tro longas; ne ŝutita" -#: src/create.c:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: dosiero estas en malsama dosiersistemo; ne ŝutita" -#: src/create.c:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "enhavo ne estas ŝutita" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: nekonata dosiertipo; dosiero estas preteratentita" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "Mankas ligoj al %s." -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: dosiero estas nemodifita; ne ŝutita" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: dosiero estas la arĥivo; ne ŝutita" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "dosierujo ne estas ŝutita" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: dosiero ŝanĝis dum ni legas ĝin" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: konektilo estis preteratentata" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: pordo estis preteratentata" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Ni saltas al sekva kapo" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Ni forigas ne-kapon el arĥivo" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: malprobable malnova temp-indiko %s" -#: src/extract.c:320 +#: src/extract.c:319 #, 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:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: neatendita malkohero dum kreo de dosierujo" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: ni preterpasas ekzistantan dosieron" @@ -1014,7 +1013,7 @@ msgstr "Ni provas elpreni simbolajn ligojn kiel rektajn ligojn" 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:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Neatendita long-noma kapo" @@ -1031,7 +1030,7 @@ msgstr "Nuna %s estas pli nova aŭ sam-aĝa" #: src/extract.c:1664 #, c-format msgid "%s: Member name contains '..'" -msgstr "" +msgstr "%s: nomo de ano enhavas '..'" #: src/extract.c:1696 #, c-format @@ -1043,22 +1042,22 @@ msgstr "%s: ne eblis savkopii tiun ĉi dosieron" msgid "Cannot rename %s to %s" msgstr "Ne eblas renomigi %s al %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: dosierujo estas renomigita el %s" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: dosierujo estas nova" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "%s: dosierujo estas en malsama dosiersistemo; ne ŝutita" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: dosierujo estas renomigita" @@ -1184,35 +1183,35 @@ msgstr "%s: forigo de %s\n" msgid "%s: Cannot remove" msgstr "%s: ne eblas forigi" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: ni malinkluzivigas" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "bloko %s: ** Bloko de NULOj **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "bloko %s: ** Fino de dosiero **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "bloko %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1220,160 +1219,159 @@ msgstr "" "komplementon de du" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, 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:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "Arĥivo enhavas malaktualajn kapojn 'base-64'" -#: src/list.c:852 +#: src/list.c:853 #, 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:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, 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:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " kunligo al %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " nekonata dosiertipo %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Longa ligo--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Longa nomo--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Voluma kapo--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Daŭrigita ĉe bajto %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Kreado de dosierujo:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "Alinomigo de %s al %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: ne eblas renomigi al %s" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "Renomigo de %s reen al %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: dosiero estis forigata antaŭ ol ni legis ĝin" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "ida procezo" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "interproceza kanalo" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "Loka dosiernoma elekto:" -#: src/names.c:72 +#: src/names.c:71 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/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "UJO" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "ŝanĝi al la dosierujo UJO" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "havigi nomojn por eltiri aŭ krei el DOSIERO" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "-T legas nul-finigitajn nomojn; implicas --verbatim-files-from" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "malebligi la efikon de la antaŭa modifilo --null" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "malcitigi enigdosierojn aŭ membro-nomojn (aprioras)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "ne malcitigi enigdosierojn aŭ membro-nomojn" -#: src/names.c:87 -#, fuzzy +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" -msgstr "-T legas dosier-nomojn senpere (neniu subteno al modifiloj)" +msgstr "-T legas dosier-nomojn senpere (neniu subteno al modifiloj aŭ eskapoj)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "" "-T traktas dosier-nomojn komencantajn per streketo kiel modifiloj (apriore)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "ŜABLONO" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "malinkluzivi dosierojn, indikitaj kiel ŜABLONO" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "malinkkluzivi ŝablonojn listigitajn en DOSIERO" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1381,24 +1379,24 @@ msgstr "" "malinkluzivi enhavojn de dosierujoj enhavantaj CACHEDIR.TAG, krom por la " "markdosiero mem" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "malinkluzivi ĉion sub dosierujoj enhavantaj CACHEDIR.TAG" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "malinkluzivi dosierujojn enhavantajn CACHEDIR.TAG" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" "malinkluzivi enhavojn de dosierujoj enhavantaj DOSIEROn, krom por DOSIERO mem" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "legi forig-ŝablonojn por ĉiu dosierujo el DOSIERO, se ĝi ekzistas" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" @@ -1406,118 +1404,121 @@ msgstr "" "legi forig-ŝablonojn por ĉiu dosierujo kaj ĝiaj subdosierujoj el DOSIERO, se " "ĝi ekzistas" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "malinkluzivi ĉion sub dosierujoj enhavantaj DOSIERO" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "malinkluzivi dosierujojn enhavantajn DOSIEROn" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "malinkluzivi versikontrol-sistemajn dosierujojn" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "legi forig-ŝablonojn el la dosieroj por preteratenti VCS" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "malinkluzivi savkopiajn kaj ŝlosajn dosierojn" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "rekursigi en dosierujojn (aprioras)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "eviti malsupreniri aŭtomate en dosierujoj" -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" "Dosiernom-kongruaj modifiloj (influas kaj ekskluzivajn kaj inkluzivajn " "ŝablonojn):" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "ŝablonoj kongruas al komenco de dosiernomo" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "ŝablonoj kongruas post iu ajn '/' (aprioras por malinkluzivo)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "preteratenti usklecon" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "uskleca kongruo (aprioras)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "uzi ĵokerojn (aprioras por malinkluzivo)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "laŭvorta ĉena kongruo" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "ĵokeroj kongruas kun '/' (aprioras por malinkluzivo)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "ĵokeroj ne kongruas kun '/'" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" +"La jenaj modifiloj estis uzataj post iu malnepra argumento en reĝimo de " +"kreado aŭ ĝisdatigo de arĥivo. Tiuj modifiloj estas poziciaj kaj nur efikas " +"en argumentoj, kiuj sekvas ilin. Bonvole rearanĝu ilin taŭge." -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" -msgstr "" +msgstr "-C %s efikas neniel" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" -msgstr "" +msgstr "--%s %s efikas neniel" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" -msgstr "" +msgstr "--%s efikas neniel" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "komandlinio" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: dosierlisto petita el %s jam estas legita el %s" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "ne eblas apartigi ĉenon '%s': %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: lego de dosiernomo enhavas nul-signon" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "Ŝablon-kongruaj signoj uzataj en dosiernomoj" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1525,47 +1526,47 @@ msgstr "" "Uzu --wildcards por ebligi ŝablon-kongruon, aŭ --no-wildcards por eviti tiun " "ĉi averton" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: ne trovita en arĥivo" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: postulata apero ne estis trovata en arĥivo" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "Miskongruo de arĥiva etikedo" -#: src/names.c:1717 +#: src/names.c:1747 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:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "Nur unu modifilo -C estas permesata kun --listed-incremental" -#: src/tar.c:88 +#: src/tar.c:87 #, c-format msgid "Options '%s' and '%s' both want standard input" msgstr "Ambaŭ modifiloj '%s' kaj '%s' postulas ĉefenigujon" -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: malvalida arĥiv-formo" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "GNU-trajtoj estas dezirataj en neakordigebla arĥiv-formo" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1785,7 +1786,7 @@ msgstr "Elekti eligfluon:" msgid "extract files to standard output" msgstr "eltiri dosierojn al ĉefeligujo" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "KOMANDO" @@ -1821,7 +1822,7 @@ msgstr "uzi DOSIERO por mapigi dosier-posedantajn nomojn kaj UID-ojn" msgid "use FILE to map file owner GIDs and names" msgstr "uzi DOSIERO por mapigi dosier-posedantajn nomojn kaj GID-ojn" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "DATO-AŬ-DOSIERO" @@ -2030,7 +2031,7 @@ msgstr "reblokigi dum ni legas (por duktoj 4.2BSD)" msgid "Archive format selection:" msgstr "Elekto de arĥiv-formo:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "FORMO" @@ -2114,60 +2115,60 @@ msgstr "PROG" msgid "filter through PROG (must accept -d)" msgstr "filtri tra PROG (devas akcepti -d)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Loka dosier-elekto:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "resti en loka dosiersistemo dum kreo de arĥivo" -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "ne demeti antaŭirajn '/'-ojn el dosiernomoj" -#: src/tar.c:695 +#: src/tar.c:696 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:697 +#: src/tar.c:698 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:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "MEMBRO-NOMO" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "komenci per la membro MEMBRO-NOMO dum lego de la arĥivo" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "nur konservi dosierojn pli novajn ol DATO-AŬ-DOSIERO" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "DATO" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "kompari daton kaj horon nur kiam datumaro ŝanĝis" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "KONTROLO" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "savkopii antaŭ ol forigi, elekti versi-KONTROLOn" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "ĈENO" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2175,59 +2176,59 @@ msgstr "" "savkopii antaŭ ol forigi, anstataŭigi ordinaran sufikson ('~' krom se " "anstataŭigita de medi-variablo SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Dosiernomaj transformigoj:" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "demeti NUMERO antaŭirajn komponantojn el dosiernomoj dum eltiro" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "ESPRIMO" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "uzi sed-anstataŭigan ESPRIMOn por transformigi dosiernomojn" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Informa eligo:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "detale listigi procezitajn dosierojn" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "ŜLOSILVORTO" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "avert-kontrolo" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "montri progres-mesaĝojn je ĉiu NUMERa rikordo (aprioras 10)" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "AGO" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "plenumigi AGOn je ĉiu kontrolpunkto" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "montri mesaĝon se ne ĉiuj ligoj estos ŝutitaj" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "SIGNALO" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2239,35 +2240,35 @@ msgstr "" "estas: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 kaj SIGUSR2; la nomoj sen prefikso " "SIG ankaŭ akcepteblas" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "montri dosierajn modif-horojn laŭ UTC" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "montri dosieran horon per ĝia tuta distingivo" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "sendi detalan eligon al DOSIERO" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "montri bloknumeron ene de arĥivo je ĉiu mesaĝo" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "peti konfirmon por ĉiu ago" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "montri apriorojn de tar" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "montri validajn intervalojn por kampoj de statkopi-dosiero" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2275,52 +2276,52 @@ msgstr "" "dum listigo aŭ eltiro, listigi ĉiun dosierujon kiu ne kongruas al serĉ-" "kriterio" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "montri dosieron aŭ arĥivajn nomojn post transformigo" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "STILO" -#: src/tar.c:765 +#: src/tar.c:766 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:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "krome citigi signojn el ĈENO" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "malebligi citigon por signoj el ĈENO" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Akordigeblaj modifiloj:" -#: src/tar.c:777 +#: src/tar.c:778 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:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Aliaj modifiloj:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "malebligi uzon de kelkaj eble damaĝaj modifiloj" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "'%s' ne uzeblas kun '%s'" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" @@ -2328,40 +2329,40 @@ msgstr "" "Vi ne devas indiki pli ol unu el la modifiloj '-Acdtrux', '--delete' aŭ '--" "test-label'" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Konfliktantaj densigaj modifiloj" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Nekonata signal-nomo: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "Data specimen-dosiero ne estis trovata" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Ni anstataŭigas %s por la nekonata dato-formo %s" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "Modifilo %s: ni traktas daton '%s' kiel %s" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "filtri la arĥivon tra %s" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "Validaj argumentoj por la modifilo --quoting-style estas:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2369,163 +2370,163 @@ msgstr "" "\n" "*Tiu ĉi* tar apriorigas tion:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "Malvalida posedanto aŭ grupo-ID" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Malvalida blok-faktoro" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Malvalida benda longo" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "Malvalida aldon-nivela valoro" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Pli ol unu lim-dato" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "Malvalida disa versi-valoro" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve='system' ne estas subtenata en tiu ĉi platformo" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "valoro de --checkpoint ne estas entjero" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Malvalida reĝimo indikita en modifilo" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Malvalida numero" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Malvalida rikord-grando" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "Rikord-grando devas esti oblo de %d." -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Malvalida nombro da elementoj" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "Nur unu modifilo --to-command estas permesata" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Fuŝa densiga argumento: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Nekonata densigo: '%c'" -#: src/tar.c:2066 +#: src/tar.c:2075 #, 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:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: loko de la eraro" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "Eraro dum analizo de %s" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[DOSIERO]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "ne-modifilaj argumentoj en %s" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "ne eblas apartigi TAR_OPTIONS: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "La malnova modifilo '%c' postulas argumenton." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "Sen dosierlisto, --occurrence estas sensignifa" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "Multoblaj arĥiv-dosieroj postulas modifilon '-M'" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "Sen --listed-incremental, --level estas sensignifa" -#: src/tar.c:2424 +#: 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Ne eblas kontroli plur-volumajn arĥivojn" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Ne eblas kontroli densigitajn arĥivojn" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Ne eblas uzi plur-volumajn densigitajn arĥivojn" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Ne eblas kunmeti densigitajn arĥivojn" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "--clamp-mtime bezonas daton indikitan per --mtime" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option nur uzeblas en arĥivoj POSIX" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "--acls nur uzeblas en arĥivoj POSIX" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "--selinux nur uzeblas en arĥivoj POSIX" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "--xattrs nur uzeblas en arĥivoj POSIX" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2533,128 +2534,137 @@ msgstr "" "Ne eblas konjekti supro-nivela dosieruja nomo; bonvolu indiki ĝin klare per " "--one-top-level=UJO" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "Datum-voluma longo ne povas esti malpli ol rikord-grando" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Malkuraĝe ni rifuzas krei malplenan arĥivon" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Modifiloj '-Aru' ne akordigeblas kun '-f -'" -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "" "Vi devas indiki unu el la modifiloj '-Acdtrux', --delete' aŭ '--test-label'" -#: src/tar.c:2768 +#: src/tar.c:2800 #, 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 +#: src/update.c:86 #, 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:165 +#: 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:174 +#: src/xheader.c:173 msgid "Time stamp is out of allowed range" msgstr "Temp-indiko estas for de permesata intervalo" -#: src/xheader.c:205 +#: src/xheader.c:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "Ŝablono %s ne povas esti uzata" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Ŝablono %s ne povas esti anstataŭigata" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "Fuŝa etendita kapo: mankas longo" -#: src/xheader.c:677 +#: src/xheader.c:695 #, c-format msgid "Extended header length %*s is out of range" msgstr "Longo de etendita kapo %*s estas for de intervalo" -#: src/xheader.c:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "Fuŝa etendita kapo: mankas blankspaco post longo" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "Fuŝa etendita kapo: mankas egal-signo" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "Fuŝa etendita kapo: mankas nov-linio" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "Ni preteratentas nekonatan etenditan kapan ŝlosilon '%s'" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, 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:1053 +#: src/xheader.c:1071 #, 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:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Fuŝa etendita kapo: malvalida %s=%s" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Fuŝa etendita kapo: troiga %s=%s" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "Fuŝa etendita kapo: malvalida %s: neatendita apartigilo %c" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, 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:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s: ne estas valida templimo" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: nekonata kontrolpunkta ago" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "skribi" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "legi" @@ -2662,7 +2672,7 @@ msgstr "legi" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Skriba kontrol-punkto %u" @@ -2671,12 +2681,12 @@ msgstr "Skriba kontrol-punkto %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Lega kontrol-punkto %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2685,96 +2695,100 @@ msgstr "" "de GNU.\n" "MODIFILOJ estas:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Dosier-kreaj modifiloj:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "GRANDO" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Krei dosieron el indikita GRANDO" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Skribi al dosiero NOMO, anstataŭ al ĉefeligujo" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "Legi dosiernomojn el DOSIERO" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T legas nul-finigitajn nomojn" -#: tests/genfile.c:141 +#: tests/genfile.c:136 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:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "Grando de bloko por disa dosiero" -#: tests/genfile.c:146 +#: tests/genfile.c:141 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:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "DEŜOVO" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "Moviĝi al la indikita deŝovo antaŭ ol skribi datumaron" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "Forĵeti ne-fatalajn diagnozajn mesaĝojn" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Dosier-statistikaj modifiloj:" -#: tests/genfile.c:159 +#: 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:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Sinkronaj plenumaj modifiloj:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "MODIFILO" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). 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:172 +#: 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:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "Difini daton por la modifilo --touch kiu sekvas" -#: tests/genfile.c:178 +#: 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:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2782,7 +2796,7 @@ msgstr "" "Sinkronaj plenumaj agoj. Tiuj ĉi estas plenumataj kiam oni atingas " "kontrolpunktan numeron indikitan de modifilo --checkpoint." -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2790,125 +2804,125 @@ msgstr "" "Tranĉi DOSIEROn al la grando indikita de antaŭa modifilo --length (aŭ 0, se " "ne indikita)" -#: tests/genfile.c:190 +#: 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:193 +#: 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:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "Lanĉi KOMANDOn" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" -msgstr "" +msgstr "Forviŝi DOSIEROn" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Malvalida grando: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Numero estas for de permesata intervalo: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Negativa grando: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) fiaskis" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "petita dosier-longo: %lu, fakta: %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "kreita dosiero ne estas disa" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "Eraro dum analizo de numero proksime de '%s'" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Nekonata dat-formo" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ARGj...]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "ne eblas malfermi '%s'" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "ne eblas apliki 'seek'" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "dosiernomo enhavas nul-signon" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, 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:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "malĝusta masko (proksime de '%s')" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "Nekonata kampo '%s'" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "ne eblas difini horon por '%s'" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "ne eblas tranĉi '%s'" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "komando fiaskis: %s" -#: tests/genfile.c:781 -#, fuzzy, c-format +#: tests/genfile.c:772 +#, c-format msgid "cannot stat `%s'" -msgstr "ne eblas tranĉi '%s'" +msgstr "ne eblas apliki 'stat' al '%s'" -#: tests/genfile.c:785 -#, fuzzy, c-format +#: tests/genfile.c:776 +#, c-format msgid "cannot remove directory `%s'" -msgstr "ne eblas difini horon por '%s'" +msgstr "ne eblas forviŝi dosierujon '%s'" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "ne eblas apliki 'unlink' al '%s'" @@ -2948,6 +2962,9 @@ msgstr "Komando estas ĉesigita\n" msgid "--stat requires file names" msgstr "--stat postulas dosiernomojn" +#~ msgid "OPTION" +#~ msgstr "MODIFILO" + #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: parametro en ARGP_HELP_FMT devas esti pozitiva" diff --git a/po/es.gmo b/po/es.gmo index 889f80c1ca5f35deabce16de17b4a0ffb8780300..098ada786201f93227bf8ce3250d06b369789178 100644 GIT binary patch delta 14800 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 TwzwoSIT0KR-~z|ylA0<2YG~3C delta 12811 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 T<<6|(o&4eE#LcU2NvQ$=e_b`D diff --git a/po/es.po b/po/es.po index 7779cd56..f08215cd 100644 --- a/po/es.po +++ b/po/es.po @@ -1,18 +1,18 @@ # Mensajes en español para GNU tar. -# Copyright (C) 1997, 1998, 1999, 2000 Free Software Foundation, Inc. +# Copyright (C) 1997, 1998, 1999, 2000, 2017 Free Software Foundation, Inc. # This file is distributed under the same license as the tar package. # Federico Rivas <frivas@arrakis.es>, 1997. # Enrique Melero <melero@iprolink.ch>, 1997. # Santiago Vila Doncel <sanvila@unex.es>, 1998, 1999, 2000, 2001, 2002, 2004, 2014. -# Antonio Ceballos <aceballos@gmail.com>, 2015, 2016 +# Antonio Ceballos <aceballos@gmail.com>, 2015, 2016, 2017 # -#: src/create.c:1599 +#: src/create.c:1598 msgid "" msgstr "" -"Project-Id-Version: GNU tar 1.29\n" +"Project-Id-Version: GNU tar 1.30\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" -"PO-Revision-Date: 2016-06-26 13:57+0200\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" +"PO-Revision-Date: 2017-12-30 10:29+0100\n" "Last-Translator: Antonio Ceballos <aceballos@gmail.com>\n" "Language-Team: Spanish <es@tp.org.es>\n" "Language: es\n" @@ -106,7 +106,7 @@ msgid "give a short usage message" msgstr "da un mensaje de uso corto" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "NOMBRE" @@ -144,29 +144,29 @@ msgid "write error" msgstr "error de escritura" #: gnu/getopt.c:278 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous\n" -msgstr "%s: la opción '%s' es ambigua\n" +msgstr "%s: la opción '%s%s' es ambigua\n" #: gnu/getopt.c:284 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" -msgstr "%s: la opción '%s' es ambigua; posibilidades:" +msgstr "%s: la opción '%s%s' es ambigua; posibilidades:" #: gnu/getopt.c:319 -#, fuzzy, c-format +#, c-format msgid "%s: unrecognized option '%s%s'\n" -msgstr "%s: opción no reconocida '%c%s'\n" +msgstr "%s: opción no reconocida '%s%s'\n" #: gnu/getopt.c:345 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" -msgstr "%s: la opción '%c%s' no admite ningún argumento\n" +msgstr "%s: la opción '%s%s' no admite ningún argumento\n" #: gnu/getopt.c:360 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' requires an argument\n" -msgstr "%s: la opción '--%s' requiere un argumento\n" +msgstr "%s: la opción '%s%s' requiere un argumento\n" #: gnu/getopt.c:621 #, c-format @@ -241,12 +241,12 @@ msgstr "^[sSyY]" msgid "^[nN]" msgstr "^[nN]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Empaquetado por %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Empaquetado por %s\n" @@ -254,12 +254,11 @@ msgstr "Empaquetado 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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "©" -#: gnu/version-etc.c:86 -#, fuzzy +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -269,7 +268,7 @@ msgid "" "\n" msgstr "" "\n" -"License GPLv3+: GPL de GNU versión 3 o posterior <http://gnu.org/licenses/" +"License GPLv3+: GPL de GNU versión 3 o posterior <https://gnu.org/licenses/" "gpl.html>\n" "Esto es software libre: usted es libre de cambiarlo y redistribuirlo.\n" "No hay NINGUNA GARANTÍA, hasta donde permite la ley.\n" @@ -407,15 +406,14 @@ msgid "%s home page: <%s>\n" msgstr "Página de %s: <%s>\n" #: gnu/version-etc.c:253 -#, fuzzy, c-format +#, c-format msgid "%s home page: <https://www.gnu.org/software/%s/>\n" -msgstr "Página de %s: <http://www.gnu.org/software/%s/>\n" +msgstr "Página de %s: <https://www.gnu.org/software/%s/>\n" #: gnu/version-etc.c:256 -#, fuzzy msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n" msgstr "" -"Ayuda general sobre el uso de software de GNU: <http://www.gnu.org/gethelp/" +"Ayuda general sobre el uso de software de GNU: <https://www.gnu.org/gethelp/" ">\n" # FIXME: Intraducible. @@ -541,95 +539,95 @@ msgstr "No se pueden redireccionar los ficheros para un shell remoto" msgid "Cannot execute remote shell" msgstr "No se puede ejecutar un shell remoto" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Dirección de desplazamiento fuera de rango" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "Orden de desplazamiento inválida" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "Desplazamiento inválido" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Desplazamiento fuera de rango" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "Número de bytes inválido" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "Número de bytes fuera de rango" # FIXME. Este es el único eof en minúsculas. -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "Fin de fichero prematuro" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "Código de operación inválido" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "Operación no soportada" # ¿No se referirá al autor a "mangled filenames"?... jmg # FIXME. Preguntárselo. -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Argumentos inesperados" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 msgid "Manipulate a tape drive, accepting commands from a remote process" msgstr "Maneja una unidad de cinta, aceptando órdenes de un proceso remoto" -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "NÚMERO" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "establece el nivel de depuración" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "FICHERO" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "establece el nombre del fichero para la salida de depuración" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "No se puede abrir %s" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "demasiados argumentos" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Orden ininteligible" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Esto no parece un archivo tar" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Bytes leídos en total" @@ -638,7 +636,7 @@ msgstr "Bytes leídos en total" # "bytes escritos en total" suena demasiado complejo... Nicolás Lichtmaier. # Suena algo extraño eso de "total de bytes". "en total" me suena # mucho más natural. sv -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Bytes escritos en total" @@ -647,7 +645,7 @@ msgstr "Bytes escritos en total" # "bytes escritos en total" suena demasiado complejo... Nicolás Lichtmaier. # Suena algo extraño eso de "total de bytes". "en total" me suena # mucho más natural. sv -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "Bytes borrados en total" @@ -665,27 +663,27 @@ msgstr "Bytes borrados en total" # aparecer *varias* veces, y entonces sí que es una paliza. # Ejemplo de paliza: "tubería rota" en libc. Sale muchísimo y no es # cuestión de ver (pipe) cuarenta veces al día... -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(tubería)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "" "Declinando leer contenido de archivo desde terminal (¿falta la opción -f)?" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "" "Declinando escribir contenido de archivo a terminal (¿falta la opción -f)?" # ¿No queda más bonita la 1ª comilla abierta así: `record_size'? # Sí. FIXME. Comunicar al autor. sv -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "El valor de `record_size' no es válido" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "No se ha especificado ningún nombre de archivo" @@ -704,69 +702,69 @@ msgstr "No se ha especificado ningún nombre de archivo" # o algo así. Quizá "No se puede verificar un archivo tomado de la entrada # estándar o escrito hacia la salida estándar", pero es un poco largo.. =) # -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "No se puede verificar la entrada/salida estándar" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "El archivo está comprimido. Utilice la opción %s" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "No se pueden actualizar archivos comprimidos" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "Al principio de la cinta, se terminará ahora" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Demasiados errores, abandono" -#: src/buffer.c:967 +#: src/buffer.c:969 #, 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:988 +#: src/buffer.c:990 #, 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:1075 +#: src/buffer.c:1077 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:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek no paró en los límites de un registro" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: contiene un número de volumen inválido" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Desbordamiento en el número de volumen" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Prepare el volumen #%d para %s y pulse intro: " -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "" "Se encontró un final de fichero mientras se esperaba respuesta del usuario" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "ATENCIÓN: El archivo está incompleto" @@ -798,7 +796,7 @@ msgstr "ATENCIÓN: El archivo está incompleto" # 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:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -810,12 +808,12 @@ msgstr "" " q Aborta tar\n" " y o Intro Sigue\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Lanza un subshell\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? Muestra esta lista\n" @@ -826,37 +824,37 @@ msgstr " ? Muestra esta lista\n" # 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:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "No hay volumen nuevo; finalizando.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "No se ha especificado el nombre del fichero. Inténtelo de nuevo.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Entrada inválida. Teclee ? para obtener ayuda.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "La orden %s falló" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s no continúa en este volumen" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "" "%s posiblemente continúa en este volumen: la cabecera contiene un nombre " "truncado" -#: src/buffer.c:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s tiene un tamaño erróneo (%s != %s + %s)" @@ -876,7 +874,7 @@ msgstr "%s tiene un tamaño erróneo (%s != %s + %s)" # él solito. # Todavía espero una solución mágica que sea mejor que las dos # que tenemos hasta ahora. -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Este volumen está fuera de secuencia (%s - %s != %s)" @@ -887,17 +885,17 @@ msgstr "Este volumen está fuera de secuencia (%s - %s != %s)" # 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:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "El archivo no está etiquetado para que coincida con %s" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "El volumen %s no coincide con %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -909,27 +907,27 @@ 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:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "la escritura no terminó en un límite de bloque" -#: src/compare.c:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "El contenido es distinto" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Fin de fichero inesperado en el archivo" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "El tipo de fichero es distinto" @@ -939,46 +937,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:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "El modo es distinto" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "El uid es distinto" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "El gid es distinto" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "La fecha de modificación es distinta" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 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:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "No se enlaza a %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "El enlace simbólico es distinto" -#: src/compare.c:325 +#: src/compare.c:324 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:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Verificar " @@ -989,70 +987,70 @@ msgstr "Verificar " # # cambiaría "se toma" por "se ha tomado". gag # Es norma habitual convertir un pasado en un presente en estos casos. # Realmente, dice lo que hace y no lo que ha hecho. sv -#: src/compare.c:480 +#: src/compare.c:479 #, c-format 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:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "" "El archivo contiene nombres de fichero con los prefijos iniciales eliminados." -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "El archivo contiene nombres de fichero transformados." -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "Puede que la verificación no encuentre los ficheros originales." -#: src/compare.c:620 +#: src/compare.c:619 #, 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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "Un bloque de ceros aislado en %s" -#: src/create.c:74 +#: src/create.c:73 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: contiene una marca de directorio caché %s; %s" -#: src/create.c:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Generando cabeceras octales negativas" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, 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:616 +#: src/create.c:615 #, 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:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: el nombre del enlace es demasiado largo; no se vuelca" @@ -1065,7 +1063,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:1106 +#: src/create.c:1105 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" @@ -1074,13 +1072,13 @@ msgstr[0] "" msgstr[1] "" "%s: El tamaño del fichero ha disminuido en %s bytes, se rellena con ceros" -#: src/create.c:1204 +#: src/create.c:1203 #, 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:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "no se vuelca el contenido" @@ -1100,70 +1098,70 @@ msgstr "no se vuelca el contenido" # 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:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Tipo de fichero desconocido; no se tendrá en cuenta" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "Faltan enlaces a %s." -#: src/create.c:1737 +#: src/create.c:1736 #, 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:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: el fichero es el propio archivo; no se vuelca" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "no se vuelca el directorio" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: el fichero cambió mientras se estaba leyendo" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: el `socket' no se tendrá en cuenta" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: no se tendrá en cuenta la puerta" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Saltando a la siguiente cabecera" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Borrando no-cabecera del archivo" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: marca de fecha sospechosamente antigua %s" -#: src/extract.c:320 +#: src/extract.c:319 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: la marca de tiempo %s está %s s en el futuro" -#: src/extract.c:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Inconsistencia inesperada al crear el directorio" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: se salta un fichero que existe" @@ -1198,7 +1196,7 @@ 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:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Cabecera de nombres largos inesperada" @@ -1215,7 +1213,7 @@ msgstr "El %s actual es más reciente o de la misma fecha" #: src/extract.c:1664 #, c-format msgid "%s: Member name contains '..'" -msgstr "" +msgstr "%s: El nombre del miembro contiene '..'" #: src/extract.c:1696 #, c-format @@ -1227,23 +1225,23 @@ msgstr "%s: No se pudo hacer copia de seguridad de este fichero" msgid "Cannot rename %s to %s" msgstr "No se puede renombrar %s a %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: El directorio ha sido renombrado desde %s" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: El directorio es nuevo" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "" "%s: el directorio está en un sistema de ficheros distinto; no se vuelca" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: El directorio ha sido renombrado" @@ -1370,35 +1368,35 @@ msgstr "%s: Borrando %s\n" msgid "%s: Cannot remove" msgstr "%s: No se puede borrar" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: Se omite" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "bloque %s: ** Bloque de NULos **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "bloque %s: ** Fin de Fichero **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "bloque %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1406,145 +1404,145 @@ msgstr "" "se supone complemento a dos" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, 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:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "El archivo contiene cabeceras base 64 obsoletas" -#: src/list.c:852 +#: src/list.c:853 #, 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:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "El valor del archivo %s está fuera del rango de %s %s..%s" -#: src/list.c:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " enlace a %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " tipo de fichero desconocido %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Enlace largo--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Nombre largo--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Cabecera de Volumen--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Continúa en el byte %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Creando el directorio:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "Se renombra %s como %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: No se puede renombrar a %s" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "Se vuelve a renombrar %s como %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: El fichero fue borrado antes de leerlo" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "proceso hijo" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "canal de interproceso" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "Selección del fichero local:" -#: src/names.c:72 +#: src/names.c:71 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" "añade el FICHERO dado al archivo (útil si su nombre comienza con un guion)" -#: src/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "DIR" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "cambia al directorio DIR" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "obtiene los nombres que se van a extraer o crear de FICHERO" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "-T lee nombres terminados en nulo; implica --verbatim-files-from" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "desactiva el efecto de la opción --null anterior" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "" "quita las comillas de los nombres de ficheros de entrada o de miembros " "(predeterminado)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "" "no quita las comillas de los nombres de ficheros de entrada o de miembros" -#: src/names.c:87 -#, fuzzy +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" -msgstr "-T lee nombres de fichero literalmente (sin manejo de opciones)" +msgstr "" +"-T lee nombres de fichero literalmente (sin manejo de escape ni de opciones)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "" "-T trata los nombres de fichero que comienzan con guión como opciones " @@ -1555,19 +1553,19 @@ 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/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "PATRÓN" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "excluye ficheros, dados como un PATRÓN" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "excluye los patrones listados en FICHERO" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1575,26 +1573,26 @@ msgstr "" "excluye el contenido de los directorios que contienen CACHEDIR.TAG, excepto " "por el propio fichero CACHEDIR.TAG" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "excluye todo bajo los directorios que contienen CACHEDIR.TAG" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "excluye los directorios que contienen CACHEDIR.TAG" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" "excluye el contenido de los directorios que contengan FICHERO, excepto el " "propio FICHERO" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "" "leer en FICHERO, si existe, los patrones de exclusión oara cada directorio" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" @@ -1602,121 +1600,125 @@ msgstr "" "leer en FICHERO, si existe, los patrones de exclusión oara cada directorio " "sus subdirectorios" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "exclute todo bajo los directorios que contengan FICHERO" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "excluye los directorios que contengan FICHERO" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "excluye los directorios de sistemas de control de versiones" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "lee los patrones de exclusión de los ficheros de descarte de VCS" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "excluye los ficheros de respaldo y de bloqueo" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "opera recursivamente sobre los directorios (por omisión)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "evita descender automáticamente en los directorios" -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" "opciones de coincidencia para nombres de fichero (afectan a los patrones de " "exclusión y de inclusión):" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "los patrones encajan con el comienzo del nombre del fichero" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "" "los patrones encajan después de cualquier `/' (por omisión para exclusión)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "no distingue mayúsculas de minúsculas" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "distingue mayúsculas de minúsculas (por omisión)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "utiliza comodines (predeterminado para exclusión)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "coincidencia de cadenas verbatim" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "los comodines encajan con `/' (por omisión para exclusión)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "los comodines no encajan con `/'" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" +"Las siguientes opciones se han utilizado después de cualesquier argumentos " +"no opcionales en modo de crear o actualizar fichero. Estas opciones son " +"posicionales y afectan solamente a los argumentos que vayan tras ellas. Hay " +"que recolocarlas adecuadamente." -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" -msgstr "" +msgstr "-C %s carece de efecto" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" -msgstr "" +msgstr "--%s %s carece de efecto" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" -msgstr "" +msgstr "--%s carece de efecto" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "línea de órdenes" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: la lista de ficheros solicitada en %s ya se ha leído de %s" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "no se puede dividir la cadena '%s': %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: el nombre de fichero leído contiene el carácter nul" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "" "Se han utilizado caracteres de expresiones regulares en los nombres de los " "ficheros" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1724,12 +1726,12 @@ msgstr "" "Utilice --wildcards para activar el encaje de patrones, o --no-wildcards " "para suprimir este aviso" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: No se encuentra en el archivo" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: El elemento solicitado no se encuentra en el archivo" @@ -1740,37 +1742,37 @@ 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:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "Discordancia en la etiqueta del archivo" -#: src/names.c:1717 +#: src/names.c:1747 msgid "" "Using -C option inside file list is not allowed with --listed-incremental" msgstr "" "Usar la opción -C dentro de una lista de ficheros no está permitido con --" "listed-incremental" -#: src/names.c:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "Solamente se permite una opción -C con --listed-incremental" -#: src/tar.c:88 +#: src/tar.c:87 #, c-format msgid "Options '%s' and '%s' both want standard input" msgstr "Las opciones '%s' y '%s' requieren entrada estándar" -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Formato de archivo inválido" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "Se requieren características de GNU en formato de archivo incompatible" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -2038,7 +2040,7 @@ msgstr "Selección del flujo de salida:" msgid "extract files to standard output" msgstr "extrae los ficheros a la salida estándar" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "ORDEN" @@ -2077,7 +2079,7 @@ msgid "use FILE to map file owner GIDs and names" msgstr "" "utiliza FICHERO para asociar GIDs de propietarios y nombres de ficheros" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "FECHA-O-FICHERO" @@ -2321,7 +2323,7 @@ msgstr "rehace los bloques conforme se lee (para tuberías de 4.2BSD)" msgid "Archive format selection:" msgstr "Selección del formato de archivo:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "FORMATO" @@ -2407,61 +2409,61 @@ msgstr "PROG" msgid "filter through PROG (must accept -d)" msgstr "filtra a través de PROG (debe aceptar -d)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Selección del fichero local:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "permanece en el sistema de ficheros locales al crear el archivo" -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "no elimina las '/'s iniciales de los nombres de ficheros" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" msgstr "" "sigue los enlaces simbólicos; archiva y vuelca los ficheros a los que apuntan" -#: src/tar.c:697 +#: src/tar.c:698 msgid "follow hard links; archive and dump the files they refer to" msgstr "" "sigue los enlaces duros; archiva y vuelca los ficheros a los que se refieren" -#: src/tar.c:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "NOMBRE-DE-MIEMBRO" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "comienza por el miembro NOMBRE-DE-MIEMBRO al leer el archivo" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "almacena solamente ficheros más recientes que FECHA-O-FICHERO" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "FECHA" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "compara la fecha y hora solamente cuando cambian los datos" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "CONTROL" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "se hace un respaldo antes de borrar, escoja el CONTROL de versión" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "CADENA" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2470,63 +2472,63 @@ msgstr "" "que se\n" "cambie con la variable de entorno SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Transformaciones de los nombres de ficheros:" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "" "elimina NÚMERO componentes iniciales de los nombres de ficheros al extraer" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "EXPRESIÓN" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "" "utiliza la EXPRESIÓN de reemplazo sed para transformar los nombres de " "ficheros" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Salida informativa:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "lista los ficheros procesados detalladamente" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "PALABRACLAVE" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "control de advertencia" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" "muestra mensajes de progreso cada NÚMERO-ésimo registro (por omisión 10)" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "ACCIÓN" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "ejecuta ACCIÓN en cada punto de comprobación" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "muestra un mensaje si no se vuelcan todos los enlaces" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "SEÑAL" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2538,35 +2540,35 @@ msgstr "" "SIGHUP, SIGQUIT, SIGINT, SIGUSR1 y SIGUSR2; también se aceptan los nombres " "sin el prefijo SIG" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "muestra las fechas/horas de modificación de los ficheros en UTC" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "muestra la fecha del fichero con la máxima resolución" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "envía la salida detallada a FICHERO" -#: src/tar.c:750 +#: src/tar.c:751 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:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "pide confirmación para cada acción" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "muestra los valores predeterminados de tar" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "muestra los rangos válidos para los campos de fichero de instantánea" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2574,35 +2576,35 @@ msgstr "" "cuando se lista o extrae, lista cada directorio que no coincida con el " "criterio de búsqueda" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "" "muestra los nombres de los ficheros o los archivos después de la " "transformación" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "ESTILO" -#: src/tar.c:765 +#: src/tar.c:766 msgid "set name quoting style; see below for valid STYLE values" msgstr "" "establece el estilo de cita de los nombres; véanse más abajo los valores " "ESTILO válidos" -#: src/tar.c:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "también entrecomilla los caracteres de CADENA" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "no entrecomilla los caracteres de CADENA" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Opciones de compatibilidad:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2610,22 +2612,22 @@ msgstr "" "al crear, lo mismo que --old-archive; al extraer, lo mismo que --no-same-" "owner" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Otras opciones:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "desactivo el uso de algunas opciones potencialmente peligrosas" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "la opción '%s' no se puede usar con '%s'" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" @@ -2633,40 +2635,40 @@ msgstr "" "No se puede especificar más de una opción `-Acdtrux', '--delete' o '--test-" "label'" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Opciones de compresión en conflicto" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Nombre de señal desconocido: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "No se encontró el fichero de fechas de muestra" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Sustituyendo %s por el formato de fecha desconocido %s" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "Opción %s: Se trata la fecha '%s' como %s" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "filtra el archivo a través de %s" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "Los argumentos válidos para la opción --quoting-style son:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2674,19 +2676,19 @@ msgstr "" "\n" "Las opciones predeterminadas de *esta* versión de tar son:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "ID de propietario o de grupo inválido" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Factor de bloqueo inválido" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Longitud de cinta inválida" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "Valor de nivel incremental inválido" @@ -2696,105 +2698,105 @@ msgstr "Valor de nivel incremental inválido" # 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:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Se ha especificado más de una fecha tope" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "Valor de versión dispersa inválido" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve='system' no se admite en esta plataforma" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "El valor de --checkpoint no es un número entero" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Se ha especificado un modo no válido en la opción" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Número inválido" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "El tamaño del registro es inválido" -#: src/tar.c:1864 +#: src/tar.c:1873 #, 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:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Número inválido de elementos" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "Solamente se permite una opción --to-command" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Argumento de densidad mal formado: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Densidad desconocida: '%c'" -#: src/tar.c:2066 +#: src/tar.c:2075 #, 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:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: localización del error" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "error al analizar %s" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[FICHERO]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "argumentos que no son opciones en %s" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "no se puede dividir TAR_OPTIONS: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "La opción antigua '%c' requiere un argumento" -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence no tiene sentido sin una lista de ficheros" # requieren -> necesitan. gerardo -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "Los archivos múltiples requieren la opción '-M'" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "--level no tiene sentido sin --listed-incremental" -#: src/tar.c:2424 +#: 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)" @@ -2803,43 +2805,43 @@ msgstr[0] "" msgstr[1] "" "%s: La etiqueta de volumen es demasiado larga (el límite es %lu bytes)" -#: src/tar.c:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "No se pueden verificar archivos multivolumen" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "No se pueden verificar archivos comprimidos" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "No se pueden utilizar archivos multivolumen comprimidos" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "No se pueden concatenar archivos comprimidos" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "--clamp-mtime necesita una fecha especificada mediante --mtime" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option solamente se puede usar en archivos POSIX" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "--acls solamente se puede usar en archivos POSIX" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "--selinux solamente se puede usar en archivos POSIX" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "--xattrs solamente se puede usar en archivos POSIX" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2847,26 +2849,26 @@ msgstr "" "No se puede deducir el nombre del directorio del nivel superior; indíquelo " "explícitamente con --one-top-level=DIR" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "La longitud del volumen no puede ser menor que el tamaño de registro" # Me gusta más al verrés: cobarde rechazo [de la pradera] a... gerardo -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Rechazo cobarde a crear un archivo vacío" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Las opciones '-Aru' son incompatibles con '-f -'" -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "" "Debe especificar una de las opciones `-Acdtrux', '--delete' o '--test-label'" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "Se sale con estado de fallo debido a errores anteriores" @@ -2885,60 +2887,69 @@ msgstr "Se sale con estado de fallo debido a errores anteriores" # 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:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: El tamaño del fichero ha disminuido en %s byte" msgstr[1] "%s: El tamaño del fichero ha disminuido en %s bytes" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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 msgid "Time stamp is out of allowed range" msgstr "La marca de tiempo está fuera del rango permitido" -#: src/xheader.c:205 +#: src/xheader.c:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "No se puede usar el patrón %s" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "La palabra clave %s no se puede sustituir" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "Cabecera extendida errónea: falta la longitud" -#: src/xheader.c:677 +#: src/xheader.c:695 #, c-format msgid "Extended header length %*s is out of range" msgstr "La longitud de cabecera extendida %*s está fuera de rango" -#: src/xheader.c:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "Cabecera extendida errónea: falta espacio después de la longitud" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "Cabecera extendida errónea: falta un signo igual" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "Cabecera extendida errónea: falta una nueva línea" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "" "Se desestima la palabra clave de la cabecera extendida desconocida '%s'" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" @@ -2947,46 +2958,46 @@ msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:1053 +#: src/xheader.c:1071 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "La cabecera extendida %s=%s está fuera del rango %s..%s" -#: src/xheader.c:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Cabecera extendida errónea: %s=%s inválido" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Cabecera extendida errónea: sobra %s=%s" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "Cabecera extendida errónea: %s inválido: delimitador %c inesperado" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "Cabecera extendida errónea: %s inválido: número impar de valores" -#: src/checkpoint.c:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s: no es un tiempo de expiración válido" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: acción de punto de comprobación desconocida" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "escritura" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "lectura" @@ -2994,7 +3005,7 @@ msgstr "lectura" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Punto de comprobación de escritura %u" @@ -3003,7 +3014,7 @@ msgstr "Punto de comprobación de escritura %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Punto de comprobación de lectura %u" @@ -3011,7 +3022,7 @@ msgstr "Punto de comprobación de lectura %u" # Acepto sugerencias para el `test suite'. sv # "test suite"="paquete/conjunto de pruebas/análisis", en cualquier # combinación. jmg -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -3019,99 +3030,103 @@ msgstr "" "genfile manipula ficheros de datos para la «suite» de pruebas GNU paxutils.\n" "OPCIONES:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Opciones de creación de ficheros:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "TAMAÑO" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Crea un fichero del TAMAÑO dado" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Escribe al fichero NOMBRE; en lugar de a la salida estándar" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "Lee los nombres de los ficheros de FICHERO" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T lee nombres terminados en nulo" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "Rellena el fichero con el PATRÓN dado, PATRÓN es 'default' o 'zeros'" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "Tamaño de un bloque para un fichero disperso" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "Genera un fichero disperso. El resto de la línea de órdenes da el mapa del " "fichero." -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "DESPLAZAMIENTO" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "Busca en el desplazamiento indicado antes de escribir los datos" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "Suprime mensajes de diagnóstico no fatales" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Opciones de estadísticas de ficheros:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Imprime los contenidos de la estructura de estadísticas para cada fichero " "indicado. FORMATO predeterminado: " -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Opciones de ejecución síncrona:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "OPCIÓN" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "Ejecuta ARGS. Es útil con --checkpoint y una de entre --cut, --append, --" "touch y --unlink" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" "Realiza la acción indicada (véase más abajo) al llegar al punto de " "comprobación NÚMERO" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "Establece la fecha para la siguiente opción --touch" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" "Muestra los puntos de comprobación ejecutados y el estado de la salida de " "ORDEN" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -3119,7 +3134,7 @@ msgstr "" "Acciones de ejecución síncrona. Se ejecutan cuando se llega al punto de " "comprobación indicado por la opción --checkpoint" -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -3127,96 +3142,96 @@ msgstr "" "Trunca FICHERO al tamaño especificado previamente en una opción --length (o " "0, si no se ha indicado esta)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Añade TAMAÑO btyes a FICHERO. TAMAÑO es el indicado previamente en una " "opción --length" -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "Actualiza las fechas de acceso y modificación de FICHERO" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "Ejecuta ORDEN" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" -msgstr "" +msgstr "Borra FICHERO" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Tamaño inválido: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Número fuera del rango permitido: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Tamaño negativo: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) ha fallado" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "longitud de fichero solicitada %lu, efectiva %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "el fichero creado no es disperso" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "Error al analizar número cerca de `%s'" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Formato de fecha desconocido" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ARGUMENTOS...]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "No se puede abrir `%s'" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "no se puede efectuar `seek'" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "el nombre del fichero contiene el carácter nulo" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" "no se pueden generar ficheros dispersos en la salida estándar; utilice la " "opción --file" -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "máscara incorrecta (cerca de `%s')" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "Campo desconocido `%s'" @@ -3227,25 +3242,25 @@ msgstr "Campo desconocido `%s'" # 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:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "no se puede establecer la fecha sobre `%s'" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "no se puede truncar `%s'" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "la orden falló: %s" -#: tests/genfile.c:781 -#, fuzzy, c-format +#: tests/genfile.c:772 +#, c-format msgid "cannot stat `%s'" -msgstr "no se puede truncar `%s'" +msgstr "no se pueden sacar estadísticas de `%s'" # Uff, a lo mejor se asusta el usuario si ponemos 'no se pudo leer con stat() # el estado del fichero em+ @@ -3253,12 +3268,12 @@ msgstr "no se puede truncar `%s'" # 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:785 -#, fuzzy, c-format +#: tests/genfile.c:776 +#, c-format msgid "cannot remove directory `%s'" -msgstr "no se puede establecer la fecha sobre `%s'" +msgstr "no se puede borrar el directorio `%s'" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "no se puede desenlazar `%s'" @@ -3298,6 +3313,9 @@ msgstr "La orden terminó\n" msgid "--stat requires file names" msgstr "--stat necesita nombres de ficheros" +#~ msgid "OPTION" +#~ msgstr "OPCIÓN" + #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: El parámetro ARGP_HELP_FMT debe ser positivo" diff --git a/po/et.gmo b/po/et.gmo index 10b0a17c0b4b5529ff671fee5a75fd94f38673bc..d44c134ae43e3f8404b272259407c9ce9d4f40aa 100644 GIT binary patch delta 12232 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 delta 12446 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 diff --git a/po/et.po b/po/et.po index 73f00922..7f541d70 100644 --- a/po/et.po +++ b/po/et.po @@ -3,12 +3,12 @@ # Copyright (C) 2001 Free Software Foundation, Inc. # Toomas Soome <tsoome@me.com>, 2016. # -#: src/create.c:1599 +#: src/create.c:1598 msgid "" msgstr "" "Project-Id-Version: GNU tar 1.29\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" "PO-Revision-Date: 2016-05-16 22:43+0300\n" "Last-Translator: Toomas Soome <tsoome@me.com>\n" "Language-Team: Estonian <linux-ee@lists.eenet.ee>\n" @@ -96,7 +96,7 @@ msgid "give a short usage message" msgstr "näita lühikest kasutamise õpetust" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "NIMI" @@ -231,12 +231,12 @@ msgstr "^[jJ]" msgid "^[nN]" msgstr "^[eE]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Paketi looja %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Paketi looja %s\n" @@ -244,11 +244,11 @@ msgstr "Paketi looja %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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "©" -#: gnu/version-etc.c:86 +#: gnu/version-etc.c:85 #, fuzzy msgid "" "\n" @@ -524,191 +524,191 @@ msgstr "Teise serveri käsuinterpretaatorile ei saa faile ümber suunata" msgid "Cannot execute remote shell" msgstr "Ei saa käivitada kaug käsuinterpretaatorit" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Otsimise suund on piiridest väljas" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "Vigane seek suund" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "Vigane seek indeks" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Otsimise indeks on piiridest väljas" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "Vigane baitide arv" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "Baitide arv on piiridest väljas" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "Ootamatu faili lõpp" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "Vigane operatsiooni kood" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "Operatsioon ei ole toetatud" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Ootamatud argumendid" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 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:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "N" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "määra silumise tase" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "FAIL" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "sea silumisteadete faili nimi" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "%s ei saa avada" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "liiga palju argumente" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Rämpskäsk" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Hmm.... see ei tundu olema tar arhiiv" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Baite loetud kokku" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Baite kirjutatud kokku" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "Kustutatud baite kokku" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(toru)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "Ei loe arhiivi sisu terminalist (puudub -f võti?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "Ei kirjuta arhiivi sisu terminali (puudub -f võti?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Kirje suuruse väärtus on vigane" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Arhiivi nime pole" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Ei saa kontrollida sisend/väljund arhiive" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Arhiiv on tihendatud. Kasutage võtit %s" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Ei saa uuendada pakitud arhiive" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "Lindi alguses, lõpetan töö" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Liig palju vigu, jätan töö pooleli" -#: src/buffer.c:967 +#: src/buffer.c:969 #, 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:988 +#: src/buffer.c:990 #, 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:1075 +#: src/buffer.c:1077 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:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek ei peatunud kirje piiril" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: sisaldab vigast volüümi numbrit" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Volüümi number on liiga suur" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, 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:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "EOF kasutaja vastuse asemel" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "HOIATUS: Arhiiv pole täielik" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -719,65 +719,65 @@ msgstr "" " q Katkesta tar\n" " y või reavahetus Jätka\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Loo alamshell\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? Väljasta see info\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Pole uus volüüm; lõpetan töö.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "Puudub faili nimi. Proovige uuesti.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Vigane sisend. ? annab abiinfot.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "%s käsklus sai vea" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s ei jätku sellel volüümil" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, 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:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s on vale suurusega (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, 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:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "Arhiivi märgend ei sobi %s" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "Volüüm %s ei sobi volüümiga %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -785,210 +785,210 @@ msgstr "" "%s: faili nimi on GNU mitmevolüümi päisesse salvestamiseks liiga pikk, " "lühendan" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "kirjutamine ei peatunud bloki piiril" -#: src/compare.c:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Sisu on erinev" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Ootamatu arhiivi lõpp" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Failitüübid on erinevad" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Moodid erinevad" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "UID on erinevad" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "GID on erinevad" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Muutmise ajad erinevad" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Suurused erinevad" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "ei viita %s-le" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Nimeviited erinevad" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Seadme numbrid on erinevad" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Kontroll " -#: src/compare.c:480 +#: src/compare.c:479 #, 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:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "Arhiiv sisaldab eemaldatud prefiksitega failinimesid." -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "Arhiiv sisaldab teisendatud faili nimesid." -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "Kontrollimine ei pruugi leida algseid faile." -#: src/compare.c:620 +#: src/compare.c:619 #, 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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "Üksik null blokk kohal %s" -#: src/create.c:74 +#: 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:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Genereerin negatiivsed kaheksand päised" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, 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:616 +#: src/create.c:615 #, 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:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: viite nimi on liiga pikk; ei salvesta" -#: src/create.c:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: fail on teises failisüsteemis; ei salvesta" -#: src/create.c:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "sisu ei salestata" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Tundmatu failitüüp; ignoreerin seda faili" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "%s-le puudub viiteid." -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: pole muutunud; ei salvesta" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s on arhiiv; ei salvesta" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "kataloogi ei salvestatud" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: fail muutus lugemisel" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: ignoreerin pesa" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: ignoreerin ust" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Hüppan järgmise päiseni" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Kustutan arhiivist mitte-päise" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: ebatõenäoliselt vana ajatempel %s" -#: src/extract.c:320 +#: src/extract.c:319 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: ajatempel %s on %s sekundit tulevikus" -#: src/extract.c:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Ootamatu kooskõlalisuse probleem kataloogi loomisel" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: jätan olemasoleva faili vahele" @@ -1011,7 +1011,7 @@ msgstr "Üritan taastada nimeviiteid viidetena" msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Ei saa taastada -- fail jätkub teisel volüümil" -#: src/extract.c:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Ootamatu pika nime päis" @@ -1040,22 +1040,22 @@ msgstr "%s: Selle faili varundamine ebaõnnestus" msgid "Cannot rename %s to %s" msgstr "%s ei õnnestu ümber nimetada %s-ks" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Kataloog %s on ümber nimetatud" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: Kataloog on uus" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "%s: kataloog on teises failisüsteemis; ei salvesta" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Kataloog on ümber nimetatud" @@ -1181,193 +1181,193 @@ msgstr "%s: Kustutan %s\n" msgid "%s: Cannot remove" msgstr "%s: Ei saa eemaldada" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: Jätan vahele" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blokk %s: ** NULlide blokk **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "blokk %s: ** Faili lõpp **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "blokk %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, 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:817 +#: src/list.c:818 #, 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:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "Arhiiv sisaldab aegunuid base-64 päiseid" -#: src/list.c:852 +#: src/list.c:853 #, 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:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, 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:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " viide %s-le\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " tundmatu failitüüp %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Pikk viide--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Pikk nimi--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Volüümi päis--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Jätkub baidilt %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Loon kataloogi:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "Annan %s uueks nimeks %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: ei õnnestu ümber nimetada %s-ks" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "Nimetan `%s' tagasi `%s'\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: Fail kustutati enne lugemist" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "alamprotsess" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "protsessidevaheline kanal" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "Lokaalse faili nime valik:" -#: src/names.c:72 +#: src/names.c:71 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/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "KAT" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "mine kataloogi KAT" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "loe taastatavate või varundatavate failide nimed failist NIMI" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "-T loeb nullidega lõpetatud nimesid; eeldab --verbatim-files-from" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "blokeeri eelmise --null võtme mõju" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "" "eemalda sisendfaili või liikmete nimedest kvootimissümbolid (vaikimisi)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "ära eemalda nimedest kvootimissümboleid" -#: src/names.c:87 +#: src/names.c:86 #, fuzzy msgid "-T reads file names verbatim (no escape or option handling)" msgstr "-T loeb faili nimesid otse (ei käsitle võtmeid)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "-T käsitleb kriipsuga algavaid failide nimesid võtmetena (vaikimisi)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "MUSTER" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "MUSTRI järgi välistatud failid" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "välistavad mustrid on FAILIS" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1375,24 +1375,24 @@ msgstr "" "välista kataloogide, mis sisaldavad CACHEDIR.TAG, sisu, välja arvatud " "märgendi fail ise" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "välista kõik kataloogis, mis sisaldab CACHEDIR.TAG" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "välista kataloogid, mis sisaldavad CACHEDIR.TAG" -#: src/names.c:104 +#: src/names.c:103 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/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "loe kataloogide välistamise mustrid failist, kui see on olemas" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" @@ -1400,116 +1400,116 @@ msgstr "" "loe kataloogide ja alamkataloogide välistamise mustrid failist, kui see on " "olemas" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "välista kataloogid, mis sisaldavad faili FAIL" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "välista kataloogid, mis sisaldavad faili FAIL" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "välista versiooni kontrolli süsteemi kataloogid" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "loe välistamise mustrid VCS ignoreerimise failidest" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "välista varukoopiad ja lukufailid" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "sisene kataloogidesse (vaikimisi)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "ära sisene kataloogidesse" -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "Failinimede otsimine (mõjutab nii kaasamist, kui välistamist):" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "mustrid alustavad faili nime algusest" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "mustrid toimivad iga '/' järel (välistamise korral vaikimisi)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "tõstutundetu" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "tõstutundlik otsimine (vaikimisi)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "kasuta jokkersümboleid (välistamise korral vaikimisi)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "täht-täheline sõne otsimine" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "jokkersümbolid leiavad '/' (välistamise korral vaikimisi)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "jokkerid ei leia '/'" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" msgstr "" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" msgstr "" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" msgstr "" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "käsurida" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: %s loetud failide nimekiri on juba loetud failist %s" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "sõne '%s' ei saa tükeldada: %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: loetud faili nimi sisaldab sümbolit nul" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "Failide nimedes on jokkersümbolid" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1517,45 +1517,45 @@ msgstr "" "Jokkerite lubamiseks kasutage --wildcars või --no-wildcards selle teate " "blokeerimiseks" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: Puudub arhiivis" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Nõutud eksemplar puudub arhiivis" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "Arhiivi märgend ei sobi" -#: src/names.c:1717 +#: src/names.c:1747 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:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "Võti --listed-incremental lubab ainult ühte -C kasutamist" -#: src/tar.c:88 +#: src/tar.c:87 #, 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:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Vigane arhiivi vorming" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "Arhiivi formaat ei toeta GNU laiendusi" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1771,7 +1771,7 @@ msgstr "Vali väljundvoog:" msgid "extract files to standard output" msgstr "taasta failid standardväljundisse" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "KÄSK" @@ -1807,7 +1807,7 @@ msgstr "kasuta FAILi omaniku UID ja nime seadmisel" msgid "use FILE to map file owner GIDs and names" msgstr "kasuta FAILi omaniku GID ja nime seadmisel" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "KUUP-VÕI-FAIL" @@ -2013,7 +2013,7 @@ msgstr "bloki lugemisel uuesti (4.2BSD torude jaoks)" msgid "Archive format selection:" msgstr "Arhiivi vormingu valikud:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "VORMING" @@ -2097,59 +2097,59 @@ msgstr "PROG" msgid "filter through PROG (must accept -d)" msgstr "filtreeri läbi programmi (peab lubama võtit -d)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Lokaalse faili valik:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "püsi arhiivi loomise ajal kohalikus failisüsteemis" -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "ära eemalda faili nimedelt prefiksit '/'" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" msgstr "järgi nimeviiteid; arhiveeri ja taasta viidatavad failid" -#: src/tar.c:697 +#: src/tar.c:698 msgid "follow hard links; archive and dump the files they refer to" msgstr "järgi viiteid; arhiveeri ja taasta viidatavad failid" -#: src/tar.c:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "KOMPONENT" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "alusta arhiivi lugemisel liikmest KOMPONENT" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "salvesta ainult failid mis on uuemad kui KUUP-VÕI-FAIL" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "KUUPÄEV" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "võrdle kuupäevi ainult kui andmed on muutunud" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "KONTROLL" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "loo enne eemaldamist varukoopia, vali versioonikontroll" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "SÕNE" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2157,59 +2157,59 @@ msgstr "" "varunda enne kustutamist, kasuta uut lõppu (vaikimisi '~', kui pole üle " "määratud keskkonnamuutujaga SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Failide nimede muutmine:" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "eemalda taastamisel failide nimede algusest NUMBER komponenti" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "AVALDIS" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "kasuta failide nimede muutmiseks sed asendus avaldist" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Informatsioon:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "väljasta töödeldavate failide kohta infot" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "VÕTMESÕNA" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "hoiatuste juhtimine" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "anna töö kohta infot iga NUMBER kirje järel (vaikimisi 10)" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "TEGEVUS" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "käivita tegevus igas kontrollpunktis" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "väljasta teade, kui kõike viiteid pole salvestatud" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "SIGNAAL" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2220,35 +2220,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:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "väljasta failide muutmise ajad UTC esituses" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "väljasta faili aeg täielikult" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "salvesta täiendav info FAILi" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "näita iga teatega ka arhiivi bloki numbrit" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "küsi iga tegevuse kohta kinnitust" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "näita tar vaikeseadeid" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "näita snapshot-faili väljade lubatud vahemikud" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2256,92 +2256,92 @@ msgstr "" "listingu või taastamise ajal, näita igat kataloogi mis ei vasta " "otsingutingimustele" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "peale teisendamist näita faili või arhiivi nime" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "STIIL" -#: src/tar.c:765 +#: src/tar.c:766 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:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "lisaks kvoodi sõnes näidatud sümbolid" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "keela sõnes toodud sümbolite kvootimine" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Ühilduvuse võtmed:" -#: src/tar.c:777 +#: src/tar.c:778 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:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Muud võtmed:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "blokeeri potentsiaalselt ohtlikud võtmed" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "võtit '%s' ei saa võtmega '%s' kasutada" -#: src/tar.c:933 +#: src/tar.c:934 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:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Konfliktsed pakkimisvõtmed" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Tundmatu signaali nimi: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "Kuupäeva fail puudub" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Kasutan %s tundmatu ajaformaadi %s asemel" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "Võti %s: Käsitlen aega '%s' kui %s" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "filtreeri arhiiv läbi %s" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "Võtmega --quoting-style on lubatud järgnevad argumendid:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2349,290 +2349,299 @@ msgstr "" "\n" "*See* tar kasutab vaikimisi:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "Vigane omanik või grupi ID" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Vigane blokkimisfaktor" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Vigane lindi pikkus" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "Inkrementaalse varunduse taseme väärtus on vigane" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Rohkem kui üks etteantud aeg" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "Vigane aukudega faili versiooni väärtus" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve='system' ei ole sellel platvormil toetatud" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "--checkpoint väärtus ei ole täisarv" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Võtmega anti vigane mood" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Vigane number" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Vigane kirje suurus" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "Kirje suurus peab olema %d kordne." -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Vigane elementide arv" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "Lubatud on ainult üks --to-command võti" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Vigane tiheduse argument: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Tundmatu tihedus: '%c'" -#: src/tar.c:2066 +#: src/tar.c:2075 #, 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:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: vea asukoht" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "viga %s parsimisel" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[FAIL]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "%s sisaldab vigast argumenti" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "TAR_OPTIONS ei saa tükeldada: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "Vana võti '%c' nõuab argumenti." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence ei oma failide nimekirjata mõtet" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "Mitme arhiivifaili kasutamine nõuab võtit '-M'" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "--level ei oma võtmeta --listed-incremental mõtet" -#: src/tar.c:2424 +#: 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Ei suuda kontrollida mitme volüümilisi arhiive" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Ei saa kontrollida pakitud arhiive" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Ei saa kasutada mitme volüümilisi pakitud arhiive" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Tihendatud arhiive ei saa ühendada" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "--clamp-mtime vajab võtmega --mtime märgitud aega" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option saab kasutada ainult POSIX arhiividega" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "--acls saab kasutada ainult POSIX arhiividega" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "--selinux saab kasutada ainult POSIX arhiividega" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "--xattrs saab kasutada ainult POSIX arhiividega" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" msgstr "" "Ülemise kataloogi nime ei saa tuletada; palun kasutage --one-top-level=KAT" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "Volüümi suurus ei saa olla väiksem kirje suurusest" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Ega ikka ei tee küll tühja arhiivi" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Võtmeid '-Aru' ei saa kasutada võtmega '-f -'" -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "Peab kasutama üht võtmetest '-Acdtrux', '--delete' või '--test-label'" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "Kuna eelnevalt oli vigu, siis lõpetan veakoodiga" -#: src/update.c:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Fail on %s baiti lühem" msgstr[1] "%s: Fail on %s baiti lühem" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "Mustrit %s ei saa kasutada" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Võtmesõna %s ei saa ümber määrata" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "Vigane laiendatud päis: puudub pikkus" -#: src/xheader.c:677 +#: src/xheader.c:695 #, c-format msgid "Extended header length %*s is out of range" msgstr "Laiendatud päise pikkus %*s on piiridest väljas" -#: src/xheader.c:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "Vigane laiendatud päis: pikkuse järel puudub tühik" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "Vigane laiendatud päis: puudub võrdusmärk" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "Vigane laiendatud päis: puudub reavahetus" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "Ignoreerin tundmatut laiendatud päise võtmesõna '%s'" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, 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:1053 +#: src/xheader.c:1071 #, 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:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Vigane laiendatud päis: %s=%s" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Vigane laiendatud päis: liigne %s=%s" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "Vigane laiendatud päis: vigane %s: ootamatu eraldaja %c" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, 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:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s: ei ole korrektne taimout" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: tundmatu kontrollpunkti tegevus" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "kirjutamine" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "lugemine" @@ -2640,7 +2649,7 @@ msgstr "lugemine" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Kirjutamise kontrollpunkt %u" @@ -2649,12 +2658,12 @@ msgstr "Kirjutamise kontrollpunkt %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Lugemise kontrollpunkt %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2662,91 +2671,95 @@ msgstr "" "genfile manipuleerib GNU paxutils testipaketi andmefailidega.\n" "VÕTMED on:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Faili loomise võtmed:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "SUURUS" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Loo määratud suurusega fail" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Kirjuta standardväljundi asemel faili NIMI" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "Loe failide nimed failist FAIL" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T loeb nullidega lõpetatud nimesid" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "Täida fail antud mustriga. Muster on 'default' või 'zeros'" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "Bloki suurus aukudega faili korral" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "Loo aukudega fail. Järgnev käsurida kirjeldab faili." -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "INDEKS" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "Enne kirjutamist liigu antud indeksile" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "Blokeeri mitte-fataalsed diagnostika teated" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Statistika faili kohta:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "Väljasta iga faili kohta stat struktuuri sisu. Vaikimisi VORMING on: " -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Sünkroonse täitmise võtmed:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "VÕTI" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "Täida antud KÄSKLUS. Kasulik võtmetega --checkpoint ja --cut, --append, --" "touch, --unlink" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "Jõudes kontrollpunkti NUMBER, täida antud tegevus (vt. allpool)" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "Määra järgmise --touch võtme ajatempel" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "Esita täidetud kontrollpunktid ja käsu lõpetamise olek" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2754,129 +2767,129 @@ msgstr "" "Sünkroonse täitmise tegevused. Neid täidetakse, kui saabub --checkpoint " "võtmega määratud kontrollpunkt." -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" "Sea faili suuruseks --length võtmega näidatu (või 0, kui suurust ei antud)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "Lisa faili lõppu --length parameetriga näidatud arv baite." -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "Uuenda faili kasutamise ja muutmise ajatempleid" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "Käivita KÄSK" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" msgstr "" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Vigane suurus: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Number on piiridest väljas: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Negatiivne suurus: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) ebaõnnestus" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "küsitud faili pikkus %lu, tegelik %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "loodud fail pole aukudega" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "Viga `%s' juures numbri parsimisel" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Tundmatu kuupäeva vorming" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ARGUMENDID...]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "`%s' ei saa avada" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "seek ebaõnnestus" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "faili nimi sisaldab null sümbolit" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, 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:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "vigane mask (`%s' lähedal)" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "Tundmatu väli `%s'" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "ei õnnestu seada `%s' aega" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "'%s' ei saa lühendada" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "käsklus sai vea: %s" -#: tests/genfile.c:781 +#: tests/genfile.c:772 #, fuzzy, c-format msgid "cannot stat `%s'" msgstr "'%s' ei saa lühendada" -#: tests/genfile.c:785 +#: tests/genfile.c:776 #, fuzzy, c-format msgid "cannot remove directory `%s'" msgstr "ei õnnestu seada `%s' aega" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "`%s' ei saa kustutada" @@ -2916,6 +2929,9 @@ msgstr "Käsk katkestas\n" msgid "--stat requires file names" msgstr "--stat nõuab failinimesid" +#~ msgid "OPTION" +#~ msgstr "VÕTI" + #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: ARGP_HELP_FMT parameeter peab olema positiivne" diff --git a/po/eu.gmo b/po/eu.gmo index 70043581ac0e0c8b26065add2f3bd8e80c3eece1..f1c03a88946b7e48b093ae881573fb192da2141d 100644 GIT binary patch delta 28 kcmezHhw;N7#tpAMcrA4ejC75R6%0+ROwBj{@Tf2a0JMh+@Bjb+ delta 28 kcmezHhw;N7#tpAMc+GVUjdTso6%386j14#c@Tf2a0JKsH=l}o! diff --git a/po/eu.po b/po/eu.po index cdf627dc..80860e20 100644 --- 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:1599 +#: src/create.c:1598 msgid "" msgstr "" "Project-Id-Version: tar-1.15.91-eu\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\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" @@ -98,7 +98,7 @@ msgid "give a short usage message" msgstr "erabilera mezu labur bat eman" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "IZENA" @@ -233,12 +233,12 @@ msgstr "^[bB]" msgid "^[nN]" msgstr "^[eE]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "" @@ -246,11 +246,11 @@ msgstr "" #. 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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "" -#: gnu/version-etc.c:86 +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -498,197 +498,197 @@ msgstr "Ezin da urruneko shell-a abiarazi" msgid "Cannot execute remote shell" msgstr "Ezin da urruneko shell-a abiarazi" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Seek norabidea eremuz kanpo" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 #, fuzzy msgid "Invalid seek direction" msgstr "Modu baliogabea eman da aukeran" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 #, fuzzy msgid "Invalid seek offset" msgstr "Tamaina baliogabea: %s" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Seek offset-a eremuz kanpo" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 #, fuzzy msgid "Invalid byte count" msgstr "Zinta luzera baliogabea" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 #, fuzzy msgid "Byte count out of range" msgstr "Seek offset-a eremuz kanpo" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 #, fuzzy msgid "Premature eof" msgstr "rmtd: Fitxategi amaiera azkarregia\n" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 #, fuzzy msgid "Invalid operation code" msgstr "Ekintza nagusi modua:" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 #, fuzzy msgid "Unexpected arguments" msgstr "Fitxategi Amaiera Esperogabea" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 msgid "Manipulate a tape drive, accepting commands from a remote process" msgstr "" -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "ZENBAKIA" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "FITXATEGIA" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, fuzzy, c-format msgid "cannot open %s" msgstr "Ezin da `%s' ireki" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "argumentu gehiegi" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Zabor komandoa" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Honek ez dirudi tar pakete bat" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Irakurritako byte-ak guztira" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Idatziriko byte-ak guztira" -#: src/buffer.c:593 +#: src/buffer.c:595 #, fuzzy msgid "Total bytes deleted" msgstr "Ezabaturiko byte-ak guztira: %s\n" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(tutua)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "balio baliogabea record_size-rentzat" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Ez da fitxategi izenik eman" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Ezin da sarrera/irteera estandar fitxategia egiaztatu" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Fitxategia konprimiturik dago. %s aukera erabili" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Ezin dira konprimituriko fitxategiak eguneratu" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "Zintaren hasieran, uzten" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Errore gehiegi, uzten" -#: src/buffer.c:967 +#: src/buffer.c:969 #, 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:988 +#: src/buffer.c:990 #, 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:1075 +#: src/buffer.c:1077 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "" -#: src/buffer.c:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: bolumen zenbaki baliogabea du" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Bolumen zenbaki gainezkatzea" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "#%d bolumena %s -rako prestatu eta enter sakatu: " -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "Fitxategi amaiera erabiltzaile erantzuna espero zenean" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "Oharra: Paketea ez dago osaturik" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -699,277 +699,277 @@ msgstr "" " q tar utzi\n" " y edo intro Ekintza jarraitu\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Azpishell bat sortu\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? Zerrenda hau inprimatu\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Ez dago bolumen berririk; uzten.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "Ez da fitxategi izenik ezarri. Berriz saiatu.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "SArrera baliogabea. ? idatzi laguntzarako.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "%s komandoak huts egin du" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s ez da bolumen honen jarraipena" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, 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:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s okerreko tamaina da (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, fuzzy, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Bolumen hau sekuentziatik kanpo dago" -#: src/buffer.c:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "%s bolumena ez da %s-ren pareko" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, 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:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "" -#: src/compare.c:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Eduki ezberdintasunak" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Esperogabeko Fitxategi amaiaera paketean" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Fixtategi mota ezberdinak" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Modu ezberdinak" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Uid ezberdinak" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "Gid ezberdinak" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Eraldaketa data ezberdinak" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Tamaina ezberdinak" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Ez dago %s-ra loturik" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Lotura sinboliko ezberdinak" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Gailu zenbaki ezberdinak" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Egiaztatu " -#: src/compare.c:480 +#: src/compare.c:479 #, 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:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "" -#: src/compare.c:541 +#: src/compare.c:540 #, fuzzy msgid "Archive contains transformed file names." msgstr "Paketeak zaharkituriko base-64 buruak ditu" -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "Egiaztapenak huts egin dezake jatorrizko fitxategiak kokatzerakoan." -#: src/compare.c:620 +#: src/compare.c:619 #, 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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "" -#: src/create.c:74 +#: 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:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Zortzitar buru negatiboak sortzen" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, 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:616 +#: src/create.c:615 #, 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:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: lotura izena luzeegia da; ez da irauliko" -#: src/create.c:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, 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:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Fitxategi mota ezezaguna; fitxategia alde batetara utziko da" -#: src/create.c:1576 +#: src/create.c:1575 #, fuzzy, c-format msgid "Missing links to %s." msgstr "%s-ra lotura falta da.\n" -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: fitxategia ez da aldatu, ez da irauliko" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: fitxategia paketea da, ez da irauliko" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 #, fuzzy msgid "directory not dumped" msgstr "%s: katxe direktorioa marka bat du; ez da irauliko" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: fitxategia aldatu egin da irakurtzen ari zenean" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: socket-a alde batetara utzi da" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: atea alde batetara utzia" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Hurrengoa burura salto egiten" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "paketetik burugabea ezabatzen" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: Sinesgarri izateko zaharregia den denbora marka %s" -#: src/extract.c:320 +#: src/extract.c:319 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: %s denbora marka %s etorkizunean da" -#: src/extract.c:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Esperogabeko inkonsistentziak direktorioa sortzerakoan" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "" @@ -992,7 +992,7 @@ msgstr "Lotura sinbolikoak lotura gogor bezala ateratzen saiatzen" msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Ezin da atera -- paketea beste bolumen baten jarraipena da" -#: src/extract.c:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Buru izen luzera esperogabea" @@ -1022,22 +1022,22 @@ msgstr "%s: Ez da gai fitxategi honen babeskopia egiteko" msgid "Cannot rename %s to %s" msgstr "Ezin da %s %s-ra berrizendatu" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Direktorioa %s-tik berrizendatua izan da" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: Direktorioa berria da" -#: src/incremen.c:566 +#: src/incremen.c:565 #, 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 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Direktorioa berrizendatua izan da" @@ -1167,35 +1167,35 @@ msgstr "%s: %s ezabatzen\n" msgid "%s: Cannot remove" msgstr "%s: Ezin da ezabatu" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: Alde batetara uzten" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "%s blokea: ** Fitxategi Amaiera **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "%s blokea: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1203,348 +1203,348 @@ msgstr "" "direla pentsatuko da" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Paketearen zortzitar %.*s balioa %s eremutik kanpo dago" -#: src/list.c:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "Paketeak zaharkituriko base-64 buruak ditu" -#: src/list.c:852 +#: src/list.c:853 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "" -#: src/list.c:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, 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:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " %s-ra lotu\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " %s fitxategi mota ezezaguna\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Lotura Luzea--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Izen Luzea--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Bolumen Burua--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--%s byte-an jarraitzen du--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Direktorioa sortzen:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "%s %s-ra berrizendatzen\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Ezin da %s-ra berrizendatu" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "%s %s-ra atzera berrizendatzen\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: Fitxategia irakurri baino lehen ezabaturik" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "ume prozesua" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "prozesu arteko kanala" -#: src/names.c:69 +#: src/names.c:68 #, fuzzy msgid "Local file name selection:" msgstr "Fixtategi lokal hautapena:" -#: src/names.c:72 +#: src/names.c:71 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/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "DIR" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "DIR direktoriora aldatu" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "ateratzeko edo sortzeko izenak FITXATEGIA-tik eskuratu" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "" -#: src/names.c:87 +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" msgstr "" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "PATROIA" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "fixtategiak utzi, PATROIA bezala emandakoak" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "FITXATEGIAN zerrendaturiko patroiak alde batetara utzi" -#: src/names.c:96 +#: src/names.c:95 #, fuzzy msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "katxe marka duten direktorioak alde batetara utzi" -#: src/names.c:99 +#: src/names.c:98 #, fuzzy msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "katxe marka duten direktorioak alde batetara utzi" -#: src/names.c:102 +#: src/names.c:101 #, fuzzy msgid "exclude directories containing CACHEDIR.TAG" msgstr "katxe marka duten direktorioak alde batetara utzi" -#: src/names.c:104 +#: src/names.c:103 #, fuzzy msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "katxe marka duten direktorioak alde batetara utzi" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" msgstr "" -#: src/names.c:113 +#: src/names.c:112 #, fuzzy msgid "exclude everything under directories containing FILE" msgstr "katxe marka duten direktorioak alde batetara utzi" -#: src/names.c:115 +#: src/names.c:114 #, fuzzy msgid "exclude directories containing FILE" msgstr "katxe marka duten direktorioak alde batetara utzi" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "direktorioetan barrena (lehenetsia)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "sahiestu automatikoki direktorioetan zehar jeistea" -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "kasua alde batetara utzi" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "verbatim kate parekatzea" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "" -#: src/names.c:147 +#: src/names.c:146 #, fuzzy msgid "wildcards do not match '/'" msgstr "%s bolumena ez da %s-ren pareko" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" msgstr "" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" msgstr "" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" msgstr "" -#: src/names.c:879 +#: src/names.c:878 #, fuzzy msgid "command line" msgstr "%s komandoak huts egin du" -#: src/names.c:897 +#: src/names.c:896 #, fuzzy, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: fitxategi zerrenda irakurria dagoeneko" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, fuzzy, c-format msgid "cannot split string '%s': %s" msgstr "ezin da `%s'-ren denbora ezarri" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" msgstr "" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: Ez da paketean aurkitu" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "" -#: src/names.c:1717 +#: src/names.c:1747 msgid "" "Using -C option inside file list is not allowed with --listed-incremental" msgstr "" -#: src/names.c:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "" -#: src/tar.c:88 +#: src/tar.c:87 #, fuzzy, c-format msgid "Options '%s' and '%s' both want standard input" msgstr "`-%s' eta `-%s' aukerek sarrera estandarra behar dute" -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Pakete formatu baliogabea" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "GNU ezaugarriak behar dira pakete formatu bateraezinean" -#: src/tar.c:265 +#: src/tar.c:264 #, fuzzy, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1787,7 +1787,7 @@ msgstr "Irteera korrontea hautatu:" msgid "extract files to standard output" msgstr "fitxategiak irteera estandarrera atera" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "KOMANDOA" @@ -1823,7 +1823,7 @@ msgstr "" msgid "use FILE to map file owner GIDs and names" msgstr "" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "DATA-EDO-FITXATEGIA" @@ -2030,7 +2030,7 @@ msgstr "irakurri ahala berriz bloke egin (4.2BSD tutuentzat)" msgid "Archive format selection:" msgstr "Pakete formatu hautapena:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "FORMATUA" @@ -2113,127 +2113,127 @@ msgstr "PROG" msgid "filter through PROG (must accept -d)" msgstr "PROG bidez iragazi (-d onartu behar du)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Fixtategi lokal hautapena:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "fitxategi sistema lokalean egon paketea sortzerakoan" -#: src/tar.c:693 +#: src/tar.c:694 #, fuzzy msgid "don't strip leading '/'s from file names" msgstr "Ez kendu hasierako `/' fitxategi izenetatik" -#: src/tar.c:695 +#: src/tar.c:696 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:697 +#: src/tar.c:698 #, 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:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "PARTAIDE IZEN" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "DATA" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "data eta ordua parekatu data bakarrik aldatzen denean" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "KONTROL" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "babeskopia egin ezabatu aurretik, KONTROL bertsioa hautatu" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "KATEA" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" msgstr "" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Fitxategi izen eraldaketak:" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "ESPRESIOA" -#: src/tar.c:718 +#: src/tar.c:719 #, fuzzy msgid "use sed replace EXPRESSION to transform file names" msgstr "Sed-en ordezko EXPRESIOA erabili fitxategi izenak eraldatzeko" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "irteera informatiboa:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "" -#: src/tar.c:729 +#: src/tar.c:730 #, fuzzy msgid "warning control" msgstr "Gainidazketa kontrola:\n" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" "Aurrerapen mezuak bistarazi grabaketa ZENBAKI bakiotzagatik (lehenetsia 10 " "da)" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "mezu bat inprimatu lotura guztiak ez badira iraultzen" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "SEINALEA" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2241,426 +2241,435 @@ msgid "" "accepted" msgstr "" -#: src/tar.c:744 +#: src/tar.c:745 #, fuzzy msgid "print file modification times in UTC" msgstr "eraldaketa datak UTC orduan bistarazi" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "irteera luzea FITXATEGIRA bidali" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "Bloke zenbakia bistarazu pakete bakoitzeko mezu bakoitzagatik" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "berrespena eskatu ekintza bakoitzean" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "tar lehenespenak bistarazi" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "fixtategi edo pakete izenak bistarazi eraldaketaren aurretik" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "ESTILOA" -#: src/tar.c:765 +#: src/tar.c:766 msgid "set name quoting style; see below for valid STYLE values" msgstr "" -#: src/tar.c:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "Gako karaktere gehigarriak KATE-tik" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "gakoak kendu karaktereentzat KATE-tik" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Bateragarritasun aukerak:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Beste aukerak:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "ezgaitu arriskutsu izan daitezken zenbait aukera" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, fuzzy, c-format msgid "'%s' cannot be used with '%s'" msgstr "%s: Ezin da %s-ra seek egin" -#: src/tar.c:933 +#: src/tar.c:934 #, fuzzy 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:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Elkarjotzen duten konpresio aukerak" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Seinale izen ezezaguna: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "Data adibide fitxategia ez da aurkitu" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "%s %s data formatu ezezagunagatik aldatzen" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, fuzzy, c-format msgid "filter the archive through %s" msgstr "fitxategia gzip bidez iragazi" -#: src/tar.c:1137 +#: src/tar.c:1143 #, fuzzy msgid "Valid arguments for the --quoting-style option are:" msgstr "--quoting-style-entzat balio erabilgarriak:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" msgstr "" -#: src/tar.c:1253 +#: src/tar.c:1259 #, fuzzy msgid "Invalid owner or group ID" msgstr "Jabe baliogabea" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Blokeo faktore baliogabea" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Zinta luzera baliogabea" -#: src/tar.c:1481 +#: src/tar.c:1486 #, fuzzy msgid "Invalid incremental level value" msgstr "Fitxategi inkremental formatu okerra" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Atari data bat baino gehiago" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve='system' ez da onartzen plataforma honetan" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "--checkpoint balioa ez da zenbaki oso bat" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Modu baliogabea eman da aukeran" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Zenbaki baliogabea" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Grabazio tamaina baliogabea" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "Grabaszio tamaina %d-ren multiplo bat izan behar da." -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Elementu kopuru baliogabea" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "--to-command aukera bat bakarrik onartzen da" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Gaizki eratutako dentsitate argumentua: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, fuzzy, c-format msgid "Unknown density: '%c'" msgstr "Dentsitate Ezezaguna: `%c'" -#: src/tar.c:2066 +#: src/tar.c:2075 #, 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:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "" -#: src/tar.c:2076 +#: src/tar.c:2085 #, fuzzy, c-format msgid "error parsing %s" msgstr "Errorea zenbakia analizatzean hemendi gertu: `%s'" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[FITXATEGIA]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, fuzzy, c-format msgid "non-option arguments in %s" msgstr "%s argumentu baliogabea %s-rentzat" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "" -#: src/tar.c:2291 +#: src/tar.c:2300 #, fuzzy, c-format msgid "Old option '%c' requires an argument." msgstr "`%c' zaharkituriko aukerak argumentu bat behar du" -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "" -#: src/tar.c:2390 +#: src/tar.c:2399 #, fuzzy msgid "Multiple archive files require '-M' option" msgstr "Pakete fitxategi anitzentzat `-M' aukera erabili behar da" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "" -#: src/tar.c:2424 +#: 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Ezin dira bolumen-anitzeko paketeak egiaztatu" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Ezin dira konprimituriko fitxategiak egiaztatu" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Ezin dira bolumen anitzeko konprimituriko paketeak erabaili" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Ezin dira konprimituriko paketeak kateatu" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option POSIX paketeekin bakarrik erabili daiteke" -#: src/tar.c:2481 +#: src/tar.c:2490 #, fuzzy msgid "--acls can be used only on POSIX archives" msgstr "--pax-option POSIX paketeekin bakarrik erabili daiteke" -#: src/tar.c:2486 +#: src/tar.c:2495 #, fuzzy msgid "--selinux can be used only on POSIX archives" msgstr "--pax-option POSIX paketeekin bakarrik erabili daiteke" -#: src/tar.c:2491 +#: src/tar.c:2500 #, fuzzy msgid "--xattrs can be used only on POSIX archives" msgstr "--pax-option POSIX paketeekin bakarrik erabili daiteke" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" msgstr "" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "" -#: src/tar.c:2623 +#: src/tar.c:2632 #, fuzzy msgid "Options '-Aru' are incompatible with '-f -'" msgstr " `-Aru' aukerak bateraezinak dira `-f -' rekin" -#: src/tar.c:2711 +#: src/tar.c:2743 #, fuzzy msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "Behintzat `-Acdtrux' aukeretako bat ezarri behar duzu" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" -#: src/update.c:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "" msgstr[1] "" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "%s patroia ezin da erabili" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "%s gakoa ezin da gainidatzi" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "Gaizki eratutako buru luzapena: luzera falta da" -#: src/xheader.c:677 +#: src/xheader.c:695 #, c-format msgid "Extended header length %*s is out of range" msgstr " %*s buru luzapen luzera eremuz kanpo dago" -#: src/xheader.c:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "Gaizki eratutako buru luzapena: luzera ondoren hutsunea falta da" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "Gaizki eratutako buru luzapena: berdin ikurra falta da" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "Gaizki eratutako buru luzapena: lerro berria falta da" -#: src/xheader.c:741 +#: src/xheader.c:759 #, fuzzy, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "alde batetara utzi gako buru luzapen ezezaguna `%s'" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, 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:1053 +#: src/xheader.c:1071 #, 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:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Gaizki eratutako buru luzapena: baliogabea %s=%s" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Gaizki eratutako buru luzapena: gehiegizkoa %s=%s" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" "Gaizki eratutako buru luzapena: %s baliogabea: %c mugatzaile esperodageba" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, 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:114 +#: src/checkpoint.c:133 #, fuzzy, c-format msgid "%s: not a valid timeout" msgstr "%s: Talde baliogabea" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "" @@ -2668,7 +2677,7 @@ msgstr "" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Idazketa %u egiaztapen puntua" @@ -2677,238 +2686,237 @@ msgstr "Idazketa %u egiaztapen puntua" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Irakurketa %u egiaztapen puntua" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Pakete sortze aukerak:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "TAMAINA" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Emandako TAMAINAko paketea sortu" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Fitxategi IZENEAN idatzi irteera estandarren ordez" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "Fitxategi izenak PAKETEtik irakurri" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "Bloke tamaina fitxategi sakabanatuentzat" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "Fitxategi sakabanatuak sortu. Komanod lerroaren besteak fitxategi mapa dakar." -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "" -#: tests/genfile.c:149 +#: tests/genfile.c:144 #, fuzzy msgid "Seek to the given offset before writing data" msgstr "fitxategia egiaztatzen saiatu idatzi aurretik" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Fixtategi estatistika aukerak:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Eduki eta egitura estatusa inprimatu emandako fitxategi bakoiztarentzat. " "Lehenetsiriko FORMATUA: " -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Sinkronizatutako exekuzio aukerak:" -#: tests/genfile.c:168 -#, fuzzy -msgid "OPTION" -msgstr " [AUKERA...]" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 #, fuzzy msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "Emandako KOMANDOA exekutatu. Erabilgarri --checkpoint eta hauetako batekin; " "--cut, --append, --touch" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "Ezarri data hurrengo --touch aukerarentzat" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "FITXATEGIAREN irakurketa eta eraldaketa denborak aldatu" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "KOMANDOA exekutatu" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" msgstr "" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Tamaina baliogabea: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, fuzzy, c-format msgid "Number out of allowed range: %s" msgstr "Inodo zenbakia eremuz kanpo dago" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, fuzzy, c-format msgid "Negative size: %s" msgstr "Tamaina baliogabea: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) -ek huts egin du" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "Errorea zenbakia analizatzean hemendi gertu: `%s'" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Data formatu ezezaguna" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ARG...]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "Ezin da `%s' ireki" -#: tests/genfile.c:448 +#: tests/genfile.c:439 #, fuzzy msgid "cannot seek" msgstr "%s: Ezin da %s-ra seek egin" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "fitxategia izenak karaktere baliogabea du" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, 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:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "maskara baliogabea (`%s'-etik gertu)" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "`%s' eremu ezezaguna" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "ezin da `%s'-ren denbora ezarri" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, fuzzy, c-format msgid "cannot truncate `%s'" msgstr "Ezin da `%s' ireki" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, fuzzy, c-format msgid "command failed: %s" msgstr "%s komandoak huts egin du" -#: tests/genfile.c:781 +#: tests/genfile.c:772 #, fuzzy, c-format msgid "cannot stat `%s'" msgstr "ezin da `%s'-ren denbora ezarri" -#: tests/genfile.c:785 +#: tests/genfile.c:776 #, fuzzy, c-format msgid "cannot remove directory `%s'" msgstr "ezin da `%s'-ren denbora ezarri" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, fuzzy, c-format msgid "cannot unlink `%s'" msgstr "Ezin da `%s' ireki" @@ -2948,6 +2956,10 @@ msgstr "Komandoa amaitua\n" msgid "--stat requires file names" msgstr "--stat -ek fitxategi izenak behar ditu" +#, fuzzy +#~ msgid "OPTION" +#~ msgstr " [AUKERA...]" + #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: ARGP_HELP_FMT parametroa positibo izan behar da" diff --git a/po/fi.gmo b/po/fi.gmo index 1e20845f01293cc059f8302a79a91c443ff84b88..778f74cb04cef22ef973cf3f50c68b231da9b33a 100644 GIT binary patch delta 10854 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 delta 10885 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 A<^TWy diff --git a/po/fi.po b/po/fi.po index 6ca826c4..6697bc3e 100644 --- a/po/fi.po +++ b/po/fi.po @@ -3,12 +3,12 @@ # This file is distributed under the same license as the tar package. # Lauri Nurmi <lanurmi@iki.fi>, 2002-2006, 2014. # -#: src/create.c:1599 +#: src/create.c:1598 msgid "" msgstr "" "Project-Id-Version: tar 1.29\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" "PO-Revision-Date: 2016-05-26 20:48+0300\n" "Last-Translator: Lauri Nurmi <lanurmi@iki.fi>\n" "Language-Team: Finnish <translation-team-fi@lists.sourceforge.net>\n" @@ -97,7 +97,7 @@ msgid "give a short usage message" msgstr "näytä lyhyt käyttöohje" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "NIMI" @@ -232,12 +232,12 @@ msgstr "^[kKyY]" msgid "^[nN]" msgstr "^[eEnN]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Paketoinut %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Paketoinut %s\n" @@ -245,11 +245,11 @@ msgstr "Paketoinut %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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "©" -#: gnu/version-etc.c:86 +#: gnu/version-etc.c:85 #, fuzzy msgid "" "\n" @@ -525,191 +525,191 @@ msgstr "Tiedostoja ei voida uudelleenohjata etäkuorelle" msgid "Cannot execute remote shell" msgstr "Etäkuorta ei voi käynnistää" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Siirtymän suunta sallitun välin ulkopuolella" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "Virheellinen siirtymän suunta" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "Virheellinen siirtymän arvo" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Siirtymä sallitun välin ulkopuolella" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "Virheellinen tavumäärä" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "Tavumäärä sallitun välin ulkopuolella" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "Ennenaikainen tiedoston loppu" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "Virheellinen operaatiokoodi" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "Toiminto ei ole tuettu" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Odottamattomat argumentit" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 msgid "Manipulate a tape drive, accepting commands from a remote process" msgstr "Ohjaa nauha-asemaa, hyväksyen komentoja etäprosessilta" -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "MÄÄRÄ" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "aseta vianjäljityksen taso" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "TIED" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "aseta vianjäljityksen tulostetiedoston nimi" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "tiedostoa %s ei voi avata" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "liian monta argumenttia" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Roskakomento" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Tämä ei näytä tar-arkistolta" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Luettuja tavuja yhteensä" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Kirjoitettuja tavuja yhteensä" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "Poistettuja tavuja yhteensä" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(putki)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Virheellinen arvo kentälle record_size" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Arkiston nimeä ei ole annettu" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Vakiosyötteessä/tulosteessa olevaa arkistoa ei voi varmistaa" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Arkisto on tiivistetty. Käytä valitsinta %s" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Pakattuja arkistoja ei voi päivittää" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "Nauhan alussa, lopetetaan" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Liian monta virhettä, lopetetaan" -#: src/buffer.c:967 +#: src/buffer.c:969 #, 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:988 +#: src/buffer.c:990 #, 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:1075 +#: src/buffer.c:1077 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:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek ei pysähtynyt tietueen rajalle" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: sisältää virheellisen arkiston osan järjestysnumeron" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Arkisto-osan järjestysnumeron ylivuoto" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Valmistele osa #%d arkistolle %s ja paina return: " -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "Tiedoston loppu odotetun käyttäjän syötteen sijaan" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "VAROITUS: Arkisto on epätäydellinen" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -721,67 +721,67 @@ msgstr "" " q Keskeytä tar\n" " y tai rivinv. Jatka suoritusta\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Käynnistä alikuori\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? Näytä tämä lista\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Ei uutta arkiston osaa, poistutaan.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "Tiedostonimeä ei annettu. Yritä uudelleen.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Virheellinen syöte. Kirjoita ? ohjeen näyttämiseksi.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "Komento %s epäonnistui" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s ei jatku tällä arkiston osalla" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, 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:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s on väärän kokoinen (%s ≠ %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Tämä arkiston osa epäjärjestyksessä (%s - %s ≠ %s)" -#: src/buffer.c:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "Arkistoa ei ole nimetty täsmää nimiöön %s" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "Arkiston osa %s ei täsmää nimiöön %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -789,211 +789,211 @@ msgstr "" "%s: tiedostonimi on liian pitkä tallennettavaksi moniosaisen GNU-arkiston " "otsakkeeseen; nimi typistetty" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "kirjoitus ei päättynyt lohkon rajalle" -#: src/compare.c:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Sisällöt eroavat" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Odottamaton tiedoston loppu arkistossa" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Tiedoston tyyppi eroaa" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Tila eroaa" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "UID eroaa" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "GID eroaa" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Muutosaika eroaa" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Koko eroaa" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Ei ole linkitetty tiedostoon %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Symlinkki eroaa" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Laitenumero eroaa" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Tarkasta " -#: src/compare.c:480 +#: src/compare.c:479 #, 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:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "Arkisto sisältää tiedostonimiä, joiden etuliitteet on poistettu." -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "Arkisto sisältää muunnettuja tiedostonimiä." -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "Tarkastus ei ehkä löydä alkuperäisiä tiedostoja." -#: src/compare.c:620 +#: src/compare.c:619 #, 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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "Yksinäinen nollalohko kohdassa %s" -#: src/create.c:74 +#: src/create.c:73 #, fuzzy, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "Välimuistihakemistoa %s ei voi avata\n" -#: src/create.c:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Luodaan otsakkeet negatiivisilla oktaaleilla" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, 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:616 +#: src/create.c:615 #, 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:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: linkin nimi on liian pitkä, ei lisätä" -#: src/create.c:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, 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:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "sisältöä ei lisätty" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Tuntematon tiedostotyyppi, tiedostoa ei huomioida" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "Puuttuvia linkkejä tiedostoon %s." -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: tiedosto on muuttumaton, ei lisätä" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: tiedosto on arkistossa, ei lisätä" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "hakemistoa ei lisätty" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: tiedosto muuttui lukemisen aikana" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: pistoketta ei huomioida" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: ovea ei huomioida" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Siirrytään seuraavaan otsakkeeseen" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Poistetaan epäotsake arkistosta" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: epätodennäköisen vanha aikaleima %s" -#: src/extract.c:320 +#: src/extract.c:319 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: aikaleima %s on %s sekuntia tulevaisuudessa" -#: src/extract.c:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Odottamaton ristiriita luotaessa hakemistoa" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: ohitetaan olemassa oleva tiedosto" @@ -1016,7 +1016,7 @@ msgstr "Yritetään purkaa symboliset linkit koviksi linkeiksi" msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Ei voi purkaa -- tiedosto on jatkoa toisesta arkiston osasta" -#: src/extract.c:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Odottamaton pitkä nimiotsake" @@ -1045,22 +1045,22 @@ msgstr "%s: Tätä tiedostoa ei voitu varmuuskopioida" msgid "Cannot rename %s to %s" msgstr "%s: Uudelleennimeäminen nimelle %s ei onnistu" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Hakemisto %s on nimetty uudelleen" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: Hakemisto on uusi" -#: src/incremen.c:566 +#: src/incremen.c:565 #, 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 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Hakemisto on nimetty uudelleen" @@ -1187,35 +1187,35 @@ msgstr "%s: Poistetaan %s\n" msgid "%s: Cannot remove" msgstr "%s: Ei voi poistaa" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: Jätetään pois" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "lohko %s: ** NUL-lohko **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "lohko %s: ** Tiedoston loppu **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "lohko %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1223,160 +1223,160 @@ msgstr "" "kahden komplementiksi" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, 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:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "Arkisto sisältää käytöstä poistuvia base-64-otsakkeita" -#: src/list.c:852 +#: src/list.c:853 #, 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:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, 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:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " linkki tiedostoon %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " tuntematon tiedostotyyppi %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Pitkä linkki--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Pitkä nimi--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Arkiston osan otsake--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Jatkuu tavusta %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Luodaan hakemisto:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "Nimetään uudelleen %s -> %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Uudelleennimeäminen nimelle %s ei onnistu" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "Nimetään %s takaisin nimelle %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: Tiedosto oli poistettu ennen sen lukemista" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "lapsiprosessi" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "prosessienvälinen kanava" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "Paikallisten tiedostonimien valinta:" -#: src/names.c:72 +#: src/names.c:71 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/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "HAK" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "siirry hakemistoon HAK" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "hae purettavat/luotavat nimet TIEDOSTOsta" -#: src/names.c:78 +#: src/names.c:77 #, fuzzy msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "-T lukee nollaan päättyviä nimiä, poistaa käytöstä -C:n" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "kumoa edellisen --null-valitsimen vaikutus" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "" -#: src/names.c:87 +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" msgstr "" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "HAHMO" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "jätä pois HAHMOn mukaiset tiedostot" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "jätä pois TIEDOSTOssa listatut hahmot" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1384,142 +1384,142 @@ msgstr "" "jätä pois CACHEDIR.TAGin sisältävät hakemistot, lukuunottamatta tag-" "tiedostoa itseään" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "jätä pois kaikki hakemistojen alta, jotka sisältävät CACHEDIR.TAGin" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "jätä pois CACHEDIR.TAGin sisältävät hakemistot" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" "jätä pois TIEDOSTOn sisältävien hakemistojen sisältö, lukuun ottamatta " "TIEDOSTOa itseään" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" msgstr "" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "jätä pois kaikki hakemistojen alta, jotka sisältävät TIEDOSTOn" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "jätä pois TIEDOSTOn sisältävät hakemistot" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "jätä pois versionhallintajärjestelmän hakemistot" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "lue poisjättöhahmot versionhallinnan ignore-tiedostoista" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "jätä pois varmuuskopio- ja lukkotiedostot" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "etene alihakemistoihin (oletus)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "estä automaattinen eteneminen alihakemistoihin" -#: src/names.c:130 +#: src/names.c:129 #, fuzzy msgid "File name matching options (affect both exclude and include patterns):" msgstr "Tiedostonimien täsmäysvalinnat (vaikuttava sekä " -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "hahmot täsmäävät tiedostonimen alkuun" -#: src/names.c:135 +#: src/names.c:134 #, fuzzy msgid "patterns match after any '/' (default for exclusion)" msgstr "poisjättöhahmoja verrataan jokaisen ”/”:n jälkeen" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "älä huomioi kirjainkokoa" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "kirjainkoon huomioiva täsmäys (oletus)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "käytä jokerimerkkejä (oletus poisjätölle)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "sanatarkka merkkijonojen täsmäys" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "jokerimerkit täsmäävät merkkiin ”/” (oletus poisjätölle)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "jokerimerkit eivät täsmää merkkiin ”/”" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" msgstr "" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" msgstr "" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" msgstr "" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "komentorivi" -#: src/names.c:897 +#: src/names.c:896 #, 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:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "merkkijonoa ”%s” ei voi jakaa osiin: %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: tiedostonimi sisältää nul-merkin" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "Tiedostonimissä on käytetty jokerimerkkejä" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1527,47 +1527,47 @@ msgstr "" "Käytä valitsinta --wildcards täsmäyksen käyttöön ottamiseksi, tai --no-" "wildcards tämän varoituksen hiljentämiseksi" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: Ei löytynyt arkistosta" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Vaadittua esiintymää ei löytynyt arkistosta" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "Arkiston nimiö ei täsmää" -#: src/names.c:1717 +#: src/names.c:1747 msgid "" "Using -C option inside file list is not allowed with --listed-incremental" msgstr "" -#: src/names.c:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "" "Vain yksi -C-valitsin on sallittu valitsimen --listed-incremental kanssa" -#: src/tar.c:88 +#: src/tar.c:87 #, c-format msgid "Options '%s' and '%s' both want standard input" msgstr "Kumpikin valitsimista ”%s” ja ”%s” käyttää vakiosyötettä" -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Virheellinen arkistomuoto" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "" "Haluttiin käyttää GNU-ominaisuuksia yhteensopimattoman arkistomuodon kanssa" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1789,7 +1789,7 @@ msgstr "Tulostevirran valinta:" msgid "extract files to standard output" msgstr "pura tiedostot vakiotulosteeseen" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "KOMENTO" @@ -1825,7 +1825,7 @@ msgstr "yhdistä tiedostojen UID:t ja nimet TIEDOSTOn avulla" msgid "use FILE to map file owner GIDs and names" msgstr "yhdistä tiedostojen GID:t ja nimet TIEDOSTOn avulla" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "PÄIVÄYS-TAI-TIED" @@ -2028,7 +2028,7 @@ msgstr "suorita lohkominen uudelleen luettaessa (4.2BSD-putkia varten)" msgid "Archive format selection:" msgstr "Arkistomuodon valinta:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "MUOTO" @@ -2113,60 +2113,60 @@ msgstr "OHJ" msgid "filter through PROG (must accept -d)" msgstr "ohjaa OHJelman läpi (on hyväksyttävä -d)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Paikallisten tiedostojen valinta:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "pysy nykyisessä tiedostojärjestelmässä arkistoa luotaessa" -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "älä poista ”/”-merkkiä tiedostonimien alusta" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" msgstr "seuraa symlinkkejä; arkistoi ja lisää niiden osoittamat tiedostot" -#: src/tar.c:697 +#: src/tar.c:698 msgid "follow hard links; archive and dump the files they refer to" msgstr "seuraa kovia linkkejä; arkistoi ja lisää niiden osoittamat tiedostot" -#: src/tar.c:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "TIED-NIMI" -#: src/tar.c:699 +#: src/tar.c:700 #, fuzzy msgid "begin at member MEMBER-NAME when reading the archive" msgstr "aloita arkiston tiedostosta TIED-NIMI" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "tallenna vain PÄIVÄYS-TAI-TIEDostoa uudemmat tiedostot" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "PÄIVÄYS" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "vertaa vain tiedoston muutosaikaa" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "HALLINTA" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "varmuuskopiointi ennen poistoa, valitse versionHALLINTA" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "MERKKIJONO" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2174,59 +2174,59 @@ msgstr "" "varmuuskopiointi ennen poistoa, älä käytä tavanomaista jälkiliitettä (joka " "on ”~”, ellei muuttujaa SIMPLE_BACKUP_SUFFIX ole asetettu)" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Tiedostonimien muunnokset:" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "poista MÄÄRÄn verran osia tiedostonimien alusta purettaessa" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "LAUSEKE" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "käytä sedin korvausLAUSEKEtta tiedostonimien muuntamiseen" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Tietoja antava tuloste:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "listaa käsiteltävät tiedostot" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "AVAINSANA" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "varoitusten hallinta" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "näytä edistymisviesti MÄÄRÄn tietueen välein (oletus 10)" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "TOIMINTO" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "suorita TOIMINTO jokaisen tarkistuspisteen kohdalla" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "näytä viesti, ellei kaikkia linkkejä lisätty" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "SIGNAALI" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2238,88 +2238,88 @@ msgstr "" "signaalit ovat: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 ja SIGUSR2; myös nimet " "ilman SIG-etuliitettä kelpaavat" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "näytä tiedostojen muutosajat UTC-aikoina" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "näytä tiedoston aikaleima täydellä tarkkuudella" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "ohjaa monisanainen tuloste TIEDostoon" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "näytä lohkonumero arkistossa viestien yhteydessä" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "kysy varmistusta jokaiselle toiminnolle" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "näytä tarin oletukset" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "" -#: src/tar.c:759 +#: src/tar.c:760 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:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "näytä tiedosto- tai arkistonimet muunnoksen jälkeen" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "TYYLI" -#: src/tar.c:765 +#: src/tar.c:766 msgid "set name quoting style; see below for valid STYLE values" msgstr "" -#: src/tar.c:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Yhteensopivuusvalitsimet:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "" "luotaessa sama kuin --old-archive; purettaessa sama kuin --no-same-owner" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Muut valitsimet:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "poista käytöstä joitakin potentiaalisesti vahingollisia valitsimia" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, fuzzy, c-format msgid "'%s' cannot be used with '%s'" msgstr "Valitsinta --occurrence ei voi käyttää yhdessä valitsimen %s kanssa" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" @@ -2327,40 +2327,40 @@ msgstr "" "Vain yhtä valitsimista ”-Acdtrux”, ”--delete” tai ”--test-label” voi käyttää " "kerrallaan" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Ristiriitaiset pakkausvalitsimet" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Tuntematon signaalin nimi: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "Päiväysnäytetiedostoa ei löytynyt" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Korvataan tuntematon päiväysmuoto %2$s arvolla %1$s" -#: src/tar.c:1065 +#: src/tar.c:1067 #, 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:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "ohjaa arkisto %s-ohjelman läpi" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "Kelvolliset argumentit --quoting-style-valitsimelle ovat:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2368,164 +2368,164 @@ msgstr "" "\n" "*Tämä* tar käyttää oletuksena:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "Virheellinen omistaja- tai ryhmä-ID" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Virheellinen lohkomiskerroin" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Virheellinen nauhan pituus" -#: src/tar.c:1481 +#: src/tar.c:1486 #, fuzzy msgid "Invalid incremental level value" msgstr "--level on merkityksetön ilman valitsinta --listed-incremental" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Annettu useampi kuin yksi kynnyspäiväys" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "Virheellinen hajanaisversion arvo" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve='system' ei ole tuettu tällä alustalla" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "--checkpoint-arvo ei ole kokonaisluku" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Valitsimelle annettiin virheellinen tila" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Virheellinen määrä" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Virheellinen tietueen koko" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "Tietueen koon on oltava %d:n monikerta." -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Virheellinen osien määrä" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "Vain yksi --to-command-valitsin on sallittu" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Kelvoton tiheysargumentti: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Tuntematon tiheys: ”%c”" -#: src/tar.c:2066 +#: src/tar.c:2075 #, 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:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: virheen sijainti" -#: src/tar.c:2076 +#: src/tar.c:2085 #, fuzzy, c-format msgid "error parsing %s" msgstr "Virhe lukuarvon jäsentämisessä lähellä kohtaa ”%s”" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[TIEDOSTO]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, fuzzy, c-format msgid "non-option arguments in %s" msgstr "argumentti %s on virheellinen %s:lle" -#: src/tar.c:2196 +#: src/tar.c:2205 #, fuzzy, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "merkkijonoa ”%s” ei voi jakaa osiin: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "Vanha valitsin ”%c” vaatii argumentin." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "valitsin --occurence on merkityksetön ilman tiedostoluetteloa" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "Usean arkistotiedoston käyttäminen vaatii valitsimen ”-M”" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "--level on merkityksetön ilman valitsinta --listed-incremental" -#: src/tar.c:2424 +#: 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Moniosaisia arkistoja ei voi tarkastaa" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Pakattuja arkistoja ei voi varmistaa" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Pakattuja moniosaisia arkistoja ei voi käyttää" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Pakattuja arkistoja ei voi liittää toisiinsa" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "Valitsinta --pax-option voi käyttää vain POSIX-arkistoille" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "Valitsinta --acls voi käyttää vain POSIX-arkistoille" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "Valitsinta --selinux voi käyttää vain POSIX-arkistoille" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "Valitsinta --xattrs voi käyttää vain POSIX-arkistoille" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2533,83 +2533,92 @@ msgstr "" "Ylätason hakemiston nimeä ei voi päätellä; aseta se valitsimella --one-top-" "level=HAK" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "Arkiston osan pituus ei voi olla pienempi kuin tietueen koko" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Kieltäydytään pelkurimaisesti luomasta tyhjää arkistoa" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Valitsimet ”-Aru” eivät ole yhteensopivia valitsimen ”-f -” kanssa" -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "" "Vähintään yhtä valitsimista ”-Acdtrux”, ”--delete” tai ”--test-label” on " "käytettävä" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "Poistutaan virhepaluuarvolla aiempien virheiden vuoksi" -#: src/update.c:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Tiedosto kutistui %s tavun verran" msgstr[1] "%s: Tiedosto kutistui %s tavun verran" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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 msgid "Time stamp is out of allowed range" msgstr "Aikaleima on sallitun välin ulkopuolella" -#: src/xheader.c:205 +#: src/xheader.c:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "Hahmoa %s ei voi käyttää" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Avainsanaa %s ei voi ohittaa" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "Väärän muotoinen lisäotsake: pituus puuttuu" -#: src/xheader.c:677 +#: src/xheader.c:695 #, c-format msgid "Extended header length %*s is out of range" msgstr "Laajennettu otsake %*s on sallitun välin ulkopuolella" -#: src/xheader.c:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "Väärän muotoinen lisäotsake: tyhje puuttuu pituuden jälkeen" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "Väärän muotoinen lisäotsake: yhtäsuuruusmerkki puuttuu" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "Väärän muotoinen lisäotsake: rivinvaihto puuttuu" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "Jätetään huomiotta tuntematon laajennetun otsakkeen avainsana ”%s”" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" @@ -2617,46 +2626,46 @@ msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:1053 +#: src/xheader.c:1071 #, 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:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Väärän muotoinen lisäotsake: virheellinen %s=%s" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Väärän muotoinen lisäotsake: ylimääräinen %s=%s" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "Väärän muotoinen lisäotsake: virheellinen %s: odottamaton rajoitin %c" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "Väärän muotoinen lisäotsake: virheellinen %s: pariton määrä arvoja" -#: src/checkpoint.c:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s ei ole kelvollinen aikakatkaisuarvo" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: tuntematon tarkistuspistetoiminto" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "kirjoitus" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "luku" @@ -2664,7 +2673,7 @@ msgstr "luku" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Kirjoituksen tarkistuspiste %u" @@ -2673,104 +2682,104 @@ msgstr "Kirjoituksen tarkistuspiste %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Lukemisen tarkistuspiste %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 #, fuzzy msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "Luo datatiedostot GNU tar:in testausta varten.\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Tiedoston luontivalinnat:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "KOKO" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Luo annetun KOKOinen tiedosto" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Kirjoita tuloste tiedostoon NIMI, ei vakiotulosteeseen" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "Lue tiedostonimet TIEDOSTOsta" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T lukee nollatavuun päättyviä nimiä" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "Täytä tiedosto annetulla HAHMOlla. HAHMO on ”default” tai ”zeros”" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "Hajanaisen tiedoston lohkokoko" -#: tests/genfile.c:146 +#: tests/genfile.c:141 #, fuzzy msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "Luo hajanaisia tiedostoja. " -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "SIIRTYMÄ" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "Siirry annettuun kohtaan ennen datan kirjoittamista" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "Vaienna ei-vakavat diagnostiikkaviestit" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Tiedostojen tilastoinnin valinnat:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Tulosta struct statin sisältö jokaisesta annetusta tiedostosta. " "OletusMUOTOILU on: " -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Synkronisen suorituksen valinnat:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "VALITSIN" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "Aseta päiväys seuraavalle --touch-valitsimelle" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "Näytä suoritetut tarkistuspisteet sekä KOMENNOn paluuarvo" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2778,7 +2787,7 @@ msgstr "" "Synkronisen suorituksen toiminnot. Nämä suoritetaan, kun saavutetaan --" "checkpoint-valitsimella annettua numeroa vastaava tarkistuspiste." -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2786,127 +2795,127 @@ msgstr "" "Typistä TIEDOSTO aiemmalla --length-valitsimella määrättyyn kokoon (tai " "nollaan, ellei annettu)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 #, fuzzy msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Typistä TIEDOSTO aiemmalla --length-valitsimella määrättyyn kokoon (tai " "nollaan, ellei annettu)" -#: tests/genfile.c:193 +#: tests/genfile.c:188 #, fuzzy msgid "Update the access and modification times of FILE" msgstr "näytä tiedostojen muutosajat UTC-aikoina" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "Suorita KOMENTO" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" msgstr "" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Virheellinen koko: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Lukuarvo sallitun välin ulkopuolella: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Negatiivinen koko: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) epäonnistui" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "pyydetty tiedoston pituus %lu, todellinen %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "luotu tiedosto ei ole hajanainen" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "Virhe lukuarvon jäsentämisessä lähellä kohtaa ”%s”" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Tuntematon päiväyksen muoto" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ARG...]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "tiedostoa ”%s” ei voi avata" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "ei voi siirtyä" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "tiedostonimi sisältää nollatavun" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" "hajanaisia tiedostoja ei voi luoda vakiotulosteeseen, käytä valitsinta --file" -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "virheellinen peite (lähellä kohtaa ”%s”)" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "Tuntematon kenttä ”%s”" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "tiedoston ”%s” aikaa ei voi asettaa" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "tiedostoa ”%s” ei voi typistää" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "komento epäonnistui: %s" -#: tests/genfile.c:781 +#: tests/genfile.c:772 #, fuzzy, c-format msgid "cannot stat `%s'" msgstr "tiedostoa ”%s” ei voi typistää" -#: tests/genfile.c:785 +#: tests/genfile.c:776 #, fuzzy, c-format msgid "cannot remove directory `%s'" msgstr "Työhakemistoa ei voi tallentaa" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "tiedoston ”%s” linkitystä ei voi poistaa" @@ -2946,6 +2955,9 @@ msgstr "Komento keskeytyi\n" msgid "--stat requires file names" msgstr "--stat vaatii tiedostonimiä" +#~ msgid "OPTION" +#~ msgstr "VALITSIN" + #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: ARGP_HELP_FMT-parametrin on oltava positiivinen" diff --git a/po/fr.gmo b/po/fr.gmo index e3024c697f77750a4a70e8144c0f8cee12ede01d..c64b9c09aefbb67ad7d9fc135c6b1e4ec5ba9b4f 100644 GIT binary patch delta 12232 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 F3;?4&(>nkF delta 12481 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 E02#6~yZ`_I diff --git a/po/fr.po b/po/fr.po index 1a70f7b5..51b9debf 100644 --- a/po/fr.po +++ b/po/fr.po @@ -6,12 +6,12 @@ # Christophe Combelles <ccomb@free.fr>, 2007, 2008, 2009, 2010, 2011. # Stéphane Aulery <lkppo@free.fr>, 2015, 2016. # -#: src/create.c:1599 +#: src/create.c:1598 msgid "" msgstr "" "Project-Id-Version: tar-1.29\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" "PO-Revision-Date: 2016-05-17 00:52+0200\n" "Last-Translator: Stéphane Aulery <lkppo@free.fr>\n" "Language-Team: French <traduc@traduc.org>\n" @@ -99,7 +99,7 @@ msgid "give a short usage message" msgstr "Afficher un court mode d'emploi" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "NOM" @@ -234,12 +234,12 @@ msgstr "^[oO]" msgid "^[nN]" msgstr "^[nN]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Packagé par %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Packagé par %s\n" @@ -247,11 +247,11 @@ msgstr "Packagé par %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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "©" -#: gnu/version-etc.c:86 +#: gnu/version-etc.c:85 #, fuzzy msgid "" "\n" @@ -535,200 +535,200 @@ msgstr "" msgid "Cannot execute remote shell" msgstr "Impossible de lancer un interpréteur de commandes distant" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Direction de positionnement hors plage" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "Direction de recherche non valable" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "Décalage de recherche non valable" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Positionnement relatif hors plage" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "Nombre d'octets non valable" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "Nombre d'octets hors plage" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "Fin de fichier prématurée" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "Code d'opération non valable" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "Opération non prise en charge" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Arguments inattendus" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 msgid "Manipulate a tape drive, accepting commands from a remote process" msgstr "" "Manipule un lecteur de cartouches en acceptant des commandes d'un processus " "distant" -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "NOMBRE" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "définit le niveau de débogage" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "FICHIER" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "définit le nom de fichier de sortie de débogage" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "impossible d'ouvrir %s" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "trop d'arguments" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Commande rejetée" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Ceci ne ressemble pas à une archive de type « tar »" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Nombre total d'octets lus" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Nombre total d'octets écrits" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "Nombre total d'octets effacés" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(tube)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "" "Refus de lecture du contenu de l'archive depuis le terminal (option -f " "manquante ?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "" "Refus d'écriture du contenu de l'archive depuis le terminal (option -f " "manquante ?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Valeur incorrecte pour « record_size »" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Aucun nom d'archive donné" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "" "Une archive utilisant l'entrée/sortie standard ne peut pas être vérifiée" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "L'archive est compressée. Utilisez l'option %s" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Une archive compressée ne peut pas être mise à jour" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "Début de la cartouche atteinte ; arrêt du programme." -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Trop d'erreurs, arrêt du programme." -#: src/buffer.c:967 +#: src/buffer.c:969 #, 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:988 +#: src/buffer.c:990 #, 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:1075 +#: src/buffer.c:1077 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:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek ne s'est pas arrêté à une limite d'enregistrement" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s : contient un numéro de volume non valable" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Débordement du numéro de volume" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, 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:1224 +#: src/buffer.c:1226 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:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "AVERTISSEMENT : l'archive est incomplète" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -739,67 +739,67 @@ msgstr "" " q Arrêter tar\n" " y ou newline Continuer le traitement\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Générer un sous-shell\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? Afficher cette liste\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Pas de nouveau volume ; fin du traitement.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "Nom de fichier non spécifié. Essaye encore :).\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, 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:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "Échec de la commande %s" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "La suite de %s n'est pas sur ce volume." -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, 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:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s a une taille incorrecte (%s != %s + %s)." -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, 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:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "Archive non étiquetée pour correspondre à %s." -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "Le volume %s ne correspond pas à %s." -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -807,217 +807,217 @@ msgstr "" "%s : nom de fichier tronqué, car trop long pour être stocké dans un en-tête " "GNU multi-volumes" -#: src/buffer.c:1965 +#: src/buffer.c:1962 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:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Les contenus sont différents." -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Fin prématurée rencontrée dans l'archive." -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Le type de fichier est différent." -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Le mode est différent." -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "L'UID est différent." -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "Le GID est différent." -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "La date de modification est différente." -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "La taille est différente." -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "N'est pas lié à %s." -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Le lien symbolique est différent." -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Le numéro de périphérique est différent." -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Vérification " -#: src/compare.c:480 +#: src/compare.c:479 #, c-format msgid "%s: Unknown file type '%c', diffed as normal file" msgstr "" "%s : type de fichier « %c » inconnu, recherche de différence comme pour un " "fichier normal" -#: src/compare.c:535 +#: src/compare.c:534 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:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "L'archive contient des noms de fichiers transformés" -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "" "La vérification peut échouer lors de la localisation des fichier originaux." -#: src/compare.c:620 +#: src/compare.c:619 #, 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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "Bloc zéro solitaire repéré à %s" -#: src/create.c:74 +#: 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:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Génération d'en-têtes octaux négatifs" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, 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:616 +#: src/create.c:615 #, 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:643 +#: src/create.c:642 #, 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:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, 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:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "contenu non archivé" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s : type de fichier inconnu ; fichier ignoré" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "Liens manquants vers %s." -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s : le fichier n'est pas modifié ; fichier non archivé" -#: src/create.c:1746 +#: src/create.c:1745 #, 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:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "répertoire non archivé" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s : fichier modifié pendant sa lecture" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s : socket ignorée" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s : porte ignorée" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "On saute à l'en-tête suivant" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Suppression d'un « non en-tête » de l'archive" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s : l'horodatage %s est trop vieux pour être plausible" -#: src/extract.c:320 +#: src/extract.c:319 #, 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:553 +#: src/extract.c:552 #, 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:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s : fichier existant ignoré" @@ -1040,7 +1040,7 @@ msgstr "Tentative d'extraction des liens symboliques comme des liens physiques" 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:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "En-tête à nom long inattendu" @@ -1069,24 +1069,24 @@ msgstr "%s : impossible d'archiver ce fichier." msgid "Cannot rename %s to %s" msgstr "Impossible de renommer %s en %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s : le répertoire a été renommé depuis %s" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s : le répertoire est nouveau." -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "" "%s : le répertoire est sur un système de fichiers différent ; fichier non " "archivé" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s : le répertoire a été renommé." @@ -1213,36 +1213,36 @@ msgstr "%s : suppression de %s\n" msgid "%s: Cannot remove" msgstr "%s : suppression impossible" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s : omis" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "bloc %s : ** Bloc de NULs **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "bloc %s : ** Fin de fichier **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "bloc %s : " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1250,27 +1250,27 @@ msgstr "" "complément à 2 supposé" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, 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:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "L'archive contient des en-têtes obsolètes en base 64." -#: src/list.c:852 +#: src/list.c:853 #, 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:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "" @@ -1278,140 +1278,140 @@ msgstr "" "attendue." #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:934 +#: src/list.c:935 #, 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:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " lien vers %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " type de fichier inconnu %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Lien long--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Nom long--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--En-tête de volume--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Suite à l'octet %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Création du répertoire :" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "%s renommé en %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s : impossible de renommer en %s" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "%s finalement renommé en %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s : fichier supprimé avant d'avoir été lu" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "processus enfant" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "canal inter-processus" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "Sélection des noms de fichiers locaux :" -#: src/names.c:72 +#: src/names.c:71 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/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "RÉP" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "Utiliser RÉP comme répertoire de travail" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "Lire depuis le FICHIER la liste des noms à extraire ou à créer" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "" "« -T » permet de lire les noms terminés par un NULL ; implique --verbatim-" "files-from" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "désactive l'effet de l'option --null précédente" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "" "Enlever la protection de caractères du fichier d'entrée ou des noms de " "membres (par défaut)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "" "Ne pas enlever la protection de caractères du fichier d'entrée ou des noms " "de membres" -#: src/names.c:87 +#: src/names.c:86 #, fuzzy msgid "-T reads file names verbatim (no escape or option handling)" msgstr "-T lit les noms de fichiers verbatim (sans les options)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "" "-T traite les noms de fichiers commençants par un tiret comme des options " "(par défaut)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "MOTIF" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "Exclure les fichiers correspondant au MOTIF" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "Exclure les motifs listés dans le FICHIER" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1419,26 +1419,26 @@ msgstr "" "Exclure le contenu des répertoires contenant CACHEDIR.TAG, sauf le fichier " "de tag lui-même" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "Tout exclure dans les répertoires contenant CACHEDIR.TAG" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "Exclure les répertoires contenant CACHEDIR.TAG" -#: src/names.c:104 +#: src/names.c:103 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/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "" "lire le motif d'exclusion de chaque répertoire depuis FICHIER, s'il existe" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" @@ -1446,126 +1446,126 @@ msgstr "" "lire le motif d'exclusion de chaque répertoire et de ses sous-répertoire " "depuis FICHIER, s'il existe" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "Tout exclure dans les répertoires contenant le FICHIER" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "Exclure les répertoires contenant le FICHIER" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "Exclure les répertoires des gestionnaires de version" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "" "lire les motifs d'exclusion depuis les fichiers d'exclusion des " "gestionnaires de version" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "exclure les fichiers de sauvegarde et de verrou" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "Parcourir les sous-répertoires de manière récursive (par défaut)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "Empêcher la descente automatique dans les sous-répertoires" -#: src/names.c:130 +#: src/names.c:129 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/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "Les motifs doivent correspondre au début des noms de fichiers" -#: src/names.c:135 +#: src/names.c:134 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/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "Ignorer la casse (majuscules/minuscules)" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "Correspondance sensible à la casse (comportement par défaut)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "" "Utiliser des caractères de correspondance (par défaut pour l'exclusion)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "Correspondance exacte de chaîne" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "" "« / » peut correspondre à un caractère de correspondance (par défaut pour " "l'exclusion)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "« / » ne correspond à aucun caractère de correspondance" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" msgstr "" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" msgstr "" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" msgstr "" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "commande échouée" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s : la liste demandée depuis %s a déjà été lue depuis %s" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "Impossible de couper la chaîne de caractères « %s » : %s" -#: src/names.c:1025 +#: src/names.c:1024 #, 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:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "" "Caractères de correspondance de motif utilisé dans les noms de fichiers." -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1573,49 +1573,49 @@ msgstr "" "Utilisez « --wildcards » pour activer la correspondance de motif ou « --no-" "wildcards » pour supprimer cet avertissement" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s : non trouvé dans l'archive" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s : occurence requise non trouvée dans l'archive" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "Mauvaise correspondance d'étiquette d'archive" -#: src/names.c:1717 +#: src/names.c:1747 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:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "Une seule option -C est autorisée avec --listed-incremental" -#: src/tar.c:88 +#: src/tar.c:87 #, 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:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s : format d'archive non valable" -#: src/tar.c:197 +#: src/tar.c:196 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:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1853,7 +1853,7 @@ msgstr "Choix du flux de sortie :" msgid "extract files to standard output" msgstr "Extraire les fichiers vers la sortie standard" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "COMMANDE" @@ -1892,7 +1892,7 @@ msgid "use FILE to map file owner GIDs and names" msgstr "" "utilise FICHIER pour la correspondance des noms et GIDs du propriétaire" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "DATE-OU-FICHIER" @@ -2110,7 +2110,7 @@ msgstr "Refaire les blocs pendant la lecture (pour les tubes BSD 4.2)" msgid "Archive format selection:" msgstr "Sélection du format d'archive :" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "FORMAT" @@ -2198,65 +2198,65 @@ msgstr "PROG" msgid "filter through PROG (must accept -d)" msgstr "Filtrer à travers le PROG (doit accepter l'option « -d »)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Sélection des fichiers locaux :" -#: src/tar.c:691 +#: src/tar.c:692 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:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "Ne pas enlever le « / » au début des noms de fichiers" -#: src/tar.c:695 +#: src/tar.c:696 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:697 +#: src/tar.c:698 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:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "NOM-DE-MEMBRE" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "Débuter au NOM-DE-MEMBRE durant la lecture de l'archive" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "Stocker seulement les fichiers plus récents que DATE-OU-FICHIER" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "DATE" -#: src/tar.c:704 +#: src/tar.c:705 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:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "CONTRÔLE" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "" "Faire une copie de sauvegarde avant suppression, choisir le CONTRÔLE de " "version" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "CHAÎNE" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2265,65 +2265,65 @@ msgstr "" "habituel (« ~ » sauf s'il est définit par la variable d'environnement " "SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Transformation des noms de fichiers :" -#: src/tar.c:715 +#: src/tar.c:716 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:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "EXPRESSION" -#: src/tar.c:718 +#: src/tar.c:719 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:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Options d'affichage :" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "Afficher de manière détaillée les fichiers traités" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "MOTCLÉ" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "Contrôle d'avertissement" -#: src/tar.c:731 +#: src/tar.c:732 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:733 +#: src/tar.c:734 msgid "ACTION" msgstr "ACTION" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "exécuter l'ACTION à chaque point de contrôle" -#: src/tar.c:737 +#: src/tar.c:738 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:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "SIGNAL" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2335,35 +2335,35 @@ msgstr "" "sont : SIGHUP, SIGQUIT, SIGINT, SIGUSR1 et SIGUSR2. Les noms sans préfixe « " "SIG » sont aussi acceptés" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "Afficher les dates de modification de fichier en UTC" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "afficher l'heure du fichier en pleine résolution" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "Envoyer la sortie détaillée vers le FICHIER" -#: src/tar.c:750 +#: src/tar.c:751 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:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "Demander confirmation pour chaque action" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "Afficher les paramètres par défaut de tar" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "afficher les intervalles valides des champs des fichiers d'instantané" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2371,33 +2371,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:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "Afficher les noms des fichiers ou des archives après transformation" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "STYLE" -#: src/tar.c:765 +#: src/tar.c:766 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:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "Protéger aussi les caractères faisant partie de la CHAÎNE" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "Enlever la protection des caractères faisant partie de la CHAÎNE" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Options de compatibilité :" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2405,22 +2405,22 @@ msgstr "" "Lors de la création, identique à « --old-archive ». Lors de l'extraction, " "identique à « --no-same-owner »" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Autres options :" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "Désactiver certaines options potentiellement néfastes" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "« %s » ne peut pas être utilisé avec « %s »" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" @@ -2428,40 +2428,40 @@ msgstr "" "Vous ne pouvez pas sélectionner plus d'une option parmi « -Acdtrux », « --" "delete » ou « --test-label »" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Options de compression non compatibles entre elles" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Type de signal inconnu : %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "Fichier d'échantillon de date non trouvé" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Remplacement par %s du format de date inconnu %s" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "Option %s : date « %s » traitée comme %s" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "Filtrer l'archive à travers %s" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "Les arguments valables pour l'option « --quoting-style » sont :" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2469,121 +2469,121 @@ msgstr "" "\n" "Les valeurs par défaut de *ce* tar sont :\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "Identifiant du propriétaire ou du groupe non valable" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Facteur de bloc non valable" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Longueur de cartouche non valable" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "Mauvaise valeur pour le niveau incrémental" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Plus d'une date seuil" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "Version de la dispersion non valable" -#: src/tar.c:1661 +#: src/tar.c:1670 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:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "la valeur de « --checkpoint » n'est pas un entier" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Mode non valable donné en option" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Nombre non valable" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Taille d'enregistrement non valable" -#: src/tar.c:1864 +#: src/tar.c:1873 #, 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:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Nombre d'éléments incorrect" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "Une seule option « --to-command » est permise" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Argument de densité incorrect : %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Densité inconnue : « %c »" -#: src/tar.c:2066 +#: src/tar.c:2075 #, 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:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: emplacement de l’erreur" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "erreur à la lecture de « %s »" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[FICHIER]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "Arguments non-option dans %s" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "Impossible de couper TAR_OPTIONS : %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "L'ancienne option « %c » a besoin d'un argument." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence n'a pas de sens sans une liste de fichiers" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "Les fichiers d'archives multiples ont besoin de l'option « -M »" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "--level n'a aucun sens sans --listed-incremental" -#: src/tar.c:2424 +#: 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)" @@ -2592,43 +2592,43 @@ msgstr[0] "" msgstr[1] "" "%s: l'étiquette du volume est trop longue (la limite est %lu octets)" -#: src/tar.c:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Impossible de vérifier des archives multi-volumes" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Impossible de vérifier des archives compressées" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Impossible d'utiliser des archives multi-volumes compressées" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Impossible de concaténer des archives compressées" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "--clamp-mtime nécessite une date spécifiée avec --mtime" -#: src/tar.c:2474 +#: src/tar.c:2483 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:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "--acls peut être utilisée uniquement avec des archives POSIX" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "--selinux peut être utilisée uniquement avec des archives POSIX" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "--xattrs peut être utilisée uniquement avec des archives POSIX" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2636,85 +2636,94 @@ msgstr "" "Impossible de déduire le nom du répertoire de plus haut niveau ; veuillez le " "sélectionner explicitement avec --one-top-level=RÉP" -#: src/tar.c:2573 +#: src/tar.c:2582 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:2597 +#: src/tar.c:2606 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:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Les options « -Aru » sont incompatibles avec « -f - »" -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "" "Vous devez choisir une option parmi « -Acdtrux », « --delete » ou « --test-" "label »" -#: src/tar.c:2768 +#: src/tar.c:2800 #, 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:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s : fichier réduit de %s octet" msgstr[1] "%s: fichier réduit de %s octets" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "Le motif %s ne peut être utilisé" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Le mot clé %s ne peut pas être surdéfini" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "En-tête étendu incorrect : longueur manquante" -#: src/xheader.c:677 +#: src/xheader.c:695 #, 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:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "En-tête étendu incorrect : espace blanche manquante après la longueur" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "En-tête étendu incorrect : signe d'égalité manquant" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "En-tête étendu incorrect : retour à la ligne manquant" -#: src/xheader.c:741 +#: src/xheader.c:759 #, 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:1023 +#: src/xheader.c:1041 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" @@ -2722,46 +2731,46 @@ msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:1053 +#: src/xheader.c:1071 #, 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:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "En-tête étendu incorrect : %s=%s non valable" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "En-tête étendu incorrect : %s=%s en trop" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, 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:1543 +#: src/xheader.c:1561 #, 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:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s : délai d'expiration non valable" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s : action de point de contrôle inconnue" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "écriture" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "lecture" @@ -2769,7 +2778,7 @@ msgstr "lecture" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Point de contrôle d'écriture %u" @@ -2778,12 +2787,12 @@ msgstr "Point de contrôle d'écriture %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Point de contrôle de lecture %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2792,100 +2801,104 @@ msgstr "" "GNU paxutils.\n" "Les options sont :\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Options de création de fichier :" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "TAILLE" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Créer le fichier à la TAILLE donnée" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Écrire dans le fichier NOM, plutôt que sur la sortie standard" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "Lire les noms de fichier depuis le FICHIER" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T permet de lire les noms terminés par un NULL" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "Remplir le fichier avec le MOTIF donné. MOTIF est « default » ou « zeros »" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "Taille d'un bloc pour le fichier dispersé" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "Générer un fichier dispersé (avec des trous). Le reste de la ligne de " "commande définit la carte du fichier." -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "DÉCALAGE" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "Se déplacer du DÉCALAGE donné avant d'écrire des données" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "Supprimer les messages de diagnostique non fatals" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Options des statistiques de fichiers :" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Afficher le contenu des structures « stat » pour chaque fichier donné. Le " "FORMAT par défaut est :" -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Options d'exécution synchrone :" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "OPTION" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "Exécuter les ARGS. Utile avec « --checkpoint » et l'une des options « --cut " "», « --append », « --touch » ou « --unlink »" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" "Exécuter l'action donnée (voir plus bas) dès qu'un point de contrôle NOMBRE " "est atteint" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "Définir la date pour la prochaine option « --touch »" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" "Afficher les points de contrôle exécutés et les codes de sortie de la " "COMMANDE" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2893,7 +2906,7 @@ msgstr "" "Actions d'exécution synchrone. Celles-ci sont exécutées lorsque le numéro du " "point de contrôle donné par « --checkpoint » est atteint." -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2901,126 +2914,126 @@ msgstr "" "Tronquer le FICHIER à la taille donnée par la précédente option « --length " "» (ou 0 si elle n'est pas fournie)." -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Ajouter TAILLE octets au FICHIER. La TAILLE est fournie par la précédente " "option « --length »" -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "Mettre à jour les dates d'accès et de modification du FICHIER" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "Exécuter la COMMANDE" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" msgstr "" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Taille non valable : %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Nombre en dehors de la plage permise : %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Taille négative : %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "La fonction stat(%s) a échoué" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "taille de fichier demandée : %lu, taille réelle : %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "le fichier créé n'est pas dispersé" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "Erreur à la lecture du nombre près de « %s »" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Format de date inconnu" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ARGS...]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "Impossible d'ouvrir « %s »" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "Impossible à parcourir" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "Le nom de fichier contient un caractère nul" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, 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:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "Masque incorrect (près de « %s »)" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "Champ inconnu « %s »" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "Impossible de définir la date de « %s »" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "Impossible de tronquer « %s »" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "commande « %s » échouée" -#: tests/genfile.c:781 +#: tests/genfile.c:772 #, fuzzy, c-format msgid "cannot stat `%s'" msgstr "Impossible de tronquer « %s »" -#: tests/genfile.c:785 +#: tests/genfile.c:776 #, fuzzy, c-format msgid "cannot remove directory `%s'" msgstr "Impossible de définir la date de « %s »" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "Impossible de supprimer « %s »" @@ -3060,6 +3073,9 @@ msgstr "La commande s'est terminée\n" msgid "--stat requires file names" msgstr "--stat nécessite un nom de fichier" +#~ msgid "OPTION" +#~ msgstr "OPTION" + #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s : le paramètre ARGP_HELP_FMT doit être positif" diff --git a/po/ga.gmo b/po/ga.gmo index 4ee81c43efb72b72155d61435fddf67615c7f54b..5a76d7ed8e44f93b3ff8ec64854952e28dfc3974 100644 GIT binary patch delta 14799 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 XZ?fzZ*~!bUx3hrCoXwIqwkiVv9?IwS delta 12851 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 LXKtSJV4*Sqg&kDz diff --git a/po/ga.po b/po/ga.po index 044cd5e6..06c44327 100644 --- a/po/ga.po +++ b/po/ga.po @@ -2,13 +2,13 @@ # 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, 2017. -#: src/create.c:1599 +#: src/create.c:1598 msgid "" msgstr "" -"Project-Id-Version: tar 1.29\n" +"Project-Id-Version: tar 1.30\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" -"PO-Revision-Date: 2017-01-16 20:27-0600\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" +"PO-Revision-Date: 2017-12-17 09:10-0600\n" "Last-Translator: Kevin Scannell <kscanne@gmail.com>\n" "Language-Team: Irish <gaeilge-gnulinux@lists.sourceforge.net>\n" "Language: ga\n" @@ -97,7 +97,7 @@ msgid "give a short usage message" msgstr "taispeáin beagán eolais faoin úsáid" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "AINM" @@ -135,29 +135,29 @@ msgid "write error" msgstr "earráid sa scríobh" #: gnu/getopt.c:278 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous\n" -msgstr "%s: Tá an rogha '%s' débhríoch\n" +msgstr "%s: Tá an rogha '%s%s' débhríoch\n" #: gnu/getopt.c:284 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" -msgstr "%s: Tá an rogha '%s' débhríoch; féidearthachtaí:" +msgstr "%s: Tá an rogha '%s%s' débhríoch; féidearthachtaí:" #: gnu/getopt.c:319 -#, fuzzy, c-format +#, c-format msgid "%s: unrecognized option '%s%s'\n" -msgstr "%s: rogha anaithnid '%c%s'\n" +msgstr "%s: rogha anaithnid '%s%s'\n" #: gnu/getopt.c:345 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" -msgstr "%s: ní cheadaítear argóint i ndiaidh na rogha '%c%s'\n" +msgstr "%s: ní cheadaítear argóint i ndiaidh na rogha '%s%s'\n" #: gnu/getopt.c:360 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' requires an argument\n" -msgstr "%s: tá argóint de dhíth i ndiaidh na rogha '--%s'\n" +msgstr "%s: tá argóint de dhíth i ndiaidh na rogha '%s%s'\n" #: gnu/getopt.c:621 #, c-format @@ -232,12 +232,12 @@ msgstr "^[yYiIsS]" msgid "^[nN]" msgstr "^[nN]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Pacáistithe ag %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Pacáistithe ag %s\n" @@ -245,12 +245,11 @@ msgstr "Pacáistithe ag %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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "©" -#: gnu/version-etc.c:86 -#, fuzzy +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -260,7 +259,7 @@ msgid "" "\n" msgstr "" "\n" -"Ceadúnas GPLv3+: GNU GPL leagan 3 nó níos nuaí <http://gnu.org/licenses/gpl." +"Ceadúnas GPLv3+: GNU GPL leagan 3 nó níos nuaí <https://gnu.org/licenses/gpl." "html>.\n" "Is saorbhogearra é seo: ceadaítear duit é a athrú agus a athdháileadh.\n" "Níl baránta AR BITH ann, an oiread atá ceadaithe de réir dlí.\n" @@ -398,14 +397,13 @@ msgid "%s home page: <%s>\n" msgstr "Leathanach baile %s: <%s>\n" #: gnu/version-etc.c:253 -#, fuzzy, c-format +#, c-format msgid "%s home page: <https://www.gnu.org/software/%s/>\n" -msgstr "Leathanach baile %s: <http://www.gnu.org/software/%s/>\n" +msgstr "Leathanach baile %s: <https://www.gnu.org/software/%s/>\n" #: gnu/version-etc.c:256 -#, fuzzy msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n" -msgstr "Cabhair ghinearálta le bogearraí GNU: <http://www.gnu.org/gethelp/>\n" +msgstr "Cabhair ghinearálta le bogearraí GNU: <https://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 @@ -535,148 +533,148 @@ msgstr "Ní féidir comhad a atreorú le haghaidh na cianbhlaoisce" msgid "Cannot execute remote shell" msgstr "Ní féidir cianbhlaosc a rith" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Treo 'seek' as raon" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "Treo 'seek' neamhbhailí" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "Fritháireamh 'seek' neamhbhailí" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Fritháireamh 'seek' as raon" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "Líon beart neamhbhailí" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "Líon beart as raon" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "Comhadchríoch gan choinne" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "Cód oibríochta neamhbhailí" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "Oibríocht gan tacaíocht" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Argóintí gan súil leo" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 msgid "Manipulate a tape drive, accepting commands from a remote process" msgstr "" "Tiomántán téipe a láimhseáil, ag glacadh le horduithe ó phróiseas i gcéin " -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "UIMHIR" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "socraigh an leibhéal dífhabhtaithe" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "COMHAD" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "socraigh ainm an logchomhaid dífhabhtaithe" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "ní féidir %s a oscailt" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "an iomarca argóintí" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Ordú dramhaíola" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Ní cosúil le cartlann `tar' é seo" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Líon iomlán beart léite" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Líon iomlán beart scríofa" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "Líon iomlán beart scriosta" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(píopa)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "" "Ag diúltú inneachar na cartlainne a léamh ón teirminéal (-f ar iarraidh?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "" "Ag diúltú inneachar na cartlainne a scríobh sa teirminéal (-f ar iarraidh?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Luach neamhbhailí record_size" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Níor tugadh ainm cartlainne" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Ní féidir cartlann stdin/stdout a fhíorú" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Tá an chartlann seo comhbhrúite. Úsáid an rogha %s" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Ní féidir cartlanna comhbhrúite a nuashonrú" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "Tosach na téipe, ag scor anois" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "An iomarca earráidí, ag scor" -#: src/buffer.c:967 +#: src/buffer.c:969 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" @@ -686,7 +684,7 @@ msgstr[2] "Méid an taifid = %lu bhloc" msgstr[3] "Méid an taifid = %lu mbloc" msgstr[4] "Méid an taifid = %lu bloc" -#: src/buffer.c:988 +#: src/buffer.c:990 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" @@ -696,38 +694,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:1075 +#: src/buffer.c:1077 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "Ní féidir an chartlann a chúlú; is dócha go bhfuil sé doléite gan -i" -#: src/buffer.c:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "Níor stopadh rmtlseek ag teorainn taifid" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: tá uimhir imleabhair neamhbhailí ann" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Uimhir imleabhair thar maoil" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "" "Ullmhaigh imleabhar #%d le haghaidh %s agus brúigh an eochair iontrála: " -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "Fuarthas comhadchríoch in áit freagra ón úsáideoir" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "RABHADH: Tá an chartlann neamhiomlán" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -739,67 +737,67 @@ msgstr "" " q Tobscoir tar\n" " y nó líne nua Lean ar aghaidh\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Sceith fobhlaosc\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? Priontáil an liosta seo\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Níl aon imleabhar nua ann; ag scor.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "Ainm an chomhaid gan sonrú. Bain triail eile as.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Ionchur neamhbhailí. Clóscríobh ? chun cabhair a fháil.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "Theip ar ordú %s" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "Ní leanann %s ar an imleabhar seo" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, 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:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "Tá méid %s mícheart (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, 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:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "Lipéad ar chartlann nach bhfuil comhoiriúnaithe le %s" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "Níl an t-imleabhar %s comhoiriúnaithe le %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -807,11 +805,11 @@ msgstr "" "%s: Tá an comhadainm seo rófhada le bheith stóráilte i gceanntásc il-" "imleabhar GNU; teasctha" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "níor stop an scríobh ag teorainn bhloic" -#: src/compare.c:98 +#: src/compare.c:97 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" @@ -821,75 +819,75 @@ 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Ní ionann na hábhair" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Comhadchríoch gan choinne sa chartlann" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Ní ionann na cineálacha comhaid" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Ní ionann na móid" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Ní ionann na UIDanna" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "Ní ionann na GIDanna" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Ní ionann na hamanna modhnaithe" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Ní ionann na méideanna" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Níl sé ceangailte le %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Ní ionann na naisc shiombalacha" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Ní ionann na huimhreacha gléis" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Fíoraigh " -#: src/compare.c:480 +#: src/compare.c:479 #, c-format msgid "%s: Unknown file type '%c', diffed as normal file" msgstr "%s: Cineál anaithnid comhaid '%c', diff déanta mar ghnáthchomhad" -#: src/compare.c:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "Tá comhaid sa chartlann agus a réimíreanna scriosta." -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "Tá comhaid sa chartlann agus a n-ainmneacha aistrithe." -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "Ní féidir le fíorú na bunchomhaid a aimsiú i gcónaí." -#: src/compare.c:620 +#: src/compare.c:619 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" @@ -899,46 +897,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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "Bloc nialasach amháin ag %s" -#: src/create.c:74 +#: 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:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Ceanntásca ochtnártha diúltacha á gcruthú" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, c-format msgid "%s: file name is too long (max %d); not dumped" msgstr "%s: ainm comhaid rófhada (uasfhada %d); gan dumpáil" -#: src/create.c:616 +#: src/create.c:615 #, 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:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: ainm naisc rófhada; gan dumpáil" -#: src/create.c:1106 +#: src/create.c:1105 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" @@ -948,78 +946,78 @@ msgstr[2] "%s: %s bheart níos lú sa chomhad; á stuáil le náideanna" msgstr[3] "%s: %s mbeart níos lú sa chomhad; á stuáil le náideanna" msgstr[4] "%s: %s beart níos lú sa chomhad; á stuáil le náideanna" -#: src/create.c:1204 +#: src/create.c:1203 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: is ar chóras comhad eile ar fad é an comhad; gan dumpáil" -#: src/create.c:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "ábhar gan dumpáil" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Cineál anaithnid comhaid; rinneadh neamhshuim air" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "Naisc le %s ar iarraidh." -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: comhad gan athrú; gan dumpáil" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: is ionann an comhad agus an chartlann féin; gan dumpáil" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "níor dumpáladh an chomhadlann" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: athraíodh an comhad agus é á léamh" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: rinneadh neamhshuim ar an soicéad" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: rinneadh neamhshuim ar an doras" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Ag bogadh go dtí an chéad cheanntásc eile" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Comhad nach ceanntásc é á scriosadh ón chartlann" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: stampa ama dochreidte sean %s" -#: src/extract.c:320 +#: src/extract.c:319 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: tá an stampa ama %s %s soicind sa todhchaí" -#: src/extract.c:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Neamhfhreagracht gan súil leis agus comhadlann á cruthú" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: ag dul thar comhad atá ann" @@ -1043,7 +1041,7 @@ msgstr "Ag déanamh iarracht naisc shiombalacha a bhaint amach mar naisc chrua" 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:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Ceanntásc ainm fada gan choinne" @@ -1060,7 +1058,7 @@ msgstr "Tá an %s reatha níos nuaí nó ar comhaois" #: src/extract.c:1664 #, c-format msgid "%s: Member name contains '..'" -msgstr "" +msgstr "%s: Tá '..' in ainm an bhaill" #: src/extract.c:1696 #, c-format @@ -1072,22 +1070,22 @@ msgstr "%s: Níorbh fhéidir cúltaca a dhéanamh" msgid "Cannot rename %s to %s" msgstr "Ní féidir an t-ainm a athrú ó %s go %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Athainmníodh an chomhadlann ó %s" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: Comhadlann nua" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "%s: ar chóras comhad eile ar fad é an chomhadlann; níor dumpáladh é" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Athainmníodh an chomhadlann" @@ -1215,35 +1213,35 @@ msgstr "%s: %s á scriosadh\n" msgid "%s: Cannot remove" msgstr "%s: Ní féidir é a bhaint" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: Á fhágáil ar lár" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "bloc %s: ** bloc de NULanna **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "bloc %s: ** Deireadh an chomhaid **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "bloc %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1251,163 +1249,164 @@ msgstr "" "ag glacadh le comhlánú dénártha" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, 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:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "Tá ceanntásca le bunuimhir 64 i léig sa chartlann" -#: src/list.c:852 +#: src/list.c:853 #, 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:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, 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:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " nasc le %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " cineál anaithnid comhaid %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Nasc Fada--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Ainm Fada--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Ceanntásc Imleabhair--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Ar lean ag beart %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Comhadlann á cruthú:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "Ainm á athrú ó %s go %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Ní féidir athainmniú go %s" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "%s á athainmniú go %s arís\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: Scriosadh an comhad sular léadh é" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "macphróiseas" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "bealach idir próisis" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "Roghnú comhaid logánta:" -#: src/names.c:72 +#: src/names.c:71 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" "cuir an COMHAD sainithe leis an gcartlann (úsáideach má tá dais ag tús ainm " "an chomhaid)" -#: src/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "COMHADLANN" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "athraigh go dtí COMHADLANN" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "tóg na hainmneacha le baint/cruthú as COMHAD" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "" "Léann -T ainmneacha a bhfuil NULL ag a ndeireadh; --verbatim-files-from " "intuigthe freisin" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "díchumasaigh an rogha --null roimhe seo" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "bain comharthaí athfhriotail ó chomhadainmneacha (réamhshocrú)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "ná bain comharthaí athfhriotail ó chomhadainmneacha" -#: src/names.c:87 -#, fuzzy +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" -msgstr "léann -T ainmneacha comhaid go litriúil (gan roghanna a láimhseáil)" +msgstr "" +"léann -T ainmneacha comhaid go litriúil (gan éalúcháin nó roghanna a " +"láimhseáil)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "" "déileálann -T le hainmneacha comhaid a thosaíonn le dais mar roghanna " "(réamhshocrú)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "PATRÚN" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "fág comhaid as an áireamh, tugtha mar PHATRÚN" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "fág as an áireamh aon phatrún atá i gCOMHAD" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1415,24 +1414,24 @@ msgstr "" "fág ábhar na gcomhadlann ina bhfuil CACHEDIR.TAG ar lár, seachas an comhad " "clibe féin" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "fág gach rud faoi chomhadlanna ina bhfuil CACHEDIR.TAG ar lár" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "fág comhadlanna ina bhfuil CACHEDIR.TAG ar lár" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "fág ábhar na gcomhadlann ina bhfuil COMHAD ar lár, seachas COMHAD féin" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "" "léigh patrúin eisiata i gcomhair gach comhadlann ó COMHAD, má tá sé ann" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" @@ -1440,120 +1439,124 @@ msgstr "" "léigh patrúin eisiata i gcomhair gach comhadlann agus a cuid fochomhadlann ó " "COMHAD, má tá sé ann" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "fág gach rud faoi chomhadlanna ina bhfuil COMHAD ar lár" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "fág comhadlanna a bhfuil COMHAD iontu ar lár" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "fág comhadlanna a bhaineann le córas rialaithe foinsí ar lár" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "léigh patrúin eisiata ó na comhaid neamhaird VCS" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "fág comhaid chúltaca agus comhaid ghlasála ar lár" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "téigh isteach i gcomhadlanna go hathchúrsach (réamhshocrú)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "ná téigh isteach i bhfochomhadlanna go huathoibríoch" -#: src/names.c:130 +#: src/names.c:129 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):" # subject is "exclude patterns" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "meaitseálann patrúin le tús ainm an chomhaid" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "" "meaitseálann patrúin tar éis aon '/' (réamhshocrú i gcás patrúin eisiata)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "ná bí cásíogair" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "dealaigh idir litreacha beaga/móra (réamhshocrú)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "úsáid saoróga (réamhshocrú do phatrúin eisiata)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "comhoiriúnú teaghráin carachtar ar charachtar" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "meaitseálann saoróga le '/' (réamhshocrú i gcás patrúin eisiata)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "ní ghlacann saoróga le '/'" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" +"Baineadh úsáid as na roghanna seo a leanas tar éis argóintí neamhroghnacha " +"sa mód cartlannaithe nó sa mód nuashonraithe. Braitheann na roghanna seo ar " +"a ionad, agus ní imríonn siad tionchar ach ar na hargóintí ina ndiaidh. Cuir " +"san ord ceart iad, le do thoil." -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" -msgstr "" +msgstr "-C %s - gan éifeacht" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" -msgstr "" +msgstr "--%s %s - gan éifeacht" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" -msgstr "" +msgstr "--%s - gan éifeacht" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "líne na n-orduithe" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: bhí an liosta comhad iarrtha ó %s léite ó %s cheana" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "ní féidir teaghrán '%s' a scoilt: %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: tá carachtar nialasach sa chomhadainm a léadh" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "Aimsíodh saoróga in ainmneacha comhaid" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1561,47 +1564,47 @@ msgstr "" "Úsáid --wildcards chun meaitseáil patrún a chumasú, nó --no-wildcards chun " "an rabhadh seo a mhúchadh" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: Níor aimsíodh sa chartlann é" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Níl rud riachtanach sa chartlann" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "Lipéad mícheart ar an gcartlann" -#: src/names.c:1717 +#: src/names.c:1747 msgid "" "Using -C option inside file list is not allowed with --listed-incremental" msgstr "" "Ní cheadaítear an rogha -C laistigh de liosta comhad in éineacht le --listed-" "incremental" -#: src/names.c:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "Ní cheadaítear ach rogha amháin -C in éineacht le --listed-incremental" -#: src/tar.c:88 +#: src/tar.c:87 #, c-format msgid "Options '%s' and '%s' both want standard input" msgstr "Teastaíonn an gnáth-ionchur ó na roghanna '%s' agus '%s'" -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Formáid neamhbhailí chartlainne" -#: src/tar.c:197 +#: src/tar.c:196 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:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1828,7 +1831,7 @@ msgstr "Roghnaigh sruth aschurtha:" msgid "extract files to standard output" msgstr "bain comhaid amach agus scríobh ar an ngnáth-aschur" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "ORDÚ" @@ -1864,7 +1867,7 @@ msgstr "úsáid COMHAD mar mhapa idir UIDanna agus ainmneacha" msgid "use FILE to map file owner GIDs and names" msgstr "úsáid COMHAD mar mhapa idir GIDanna agus ainmneacha" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "DÁTA-NÓ-COMHAD" @@ -2076,7 +2079,7 @@ msgstr "athbhlocáil le linn léimh (le píopaí 4.2BSD)" msgid "Archive format selection:" msgstr "Roghnú formáide:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "FORMÁID" @@ -2161,62 +2164,62 @@ msgstr "CLÁR" msgid "filter through PROG (must accept -d)" msgstr "scag le CLÁR (ní foláir -d)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Roghnú comhaid logánta:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "ná fág an córas comhaid seo agus cartlann á cruthú" -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "ná bain '/' tosaigh ó ainmneacha comhaid" -#: src/tar.c:695 +#: src/tar.c:696 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:697 +#: src/tar.c:698 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:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "AINM-BAILL" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "tosaigh ag ball AINM-BAILL agus an chartlann á léamh" -#: src/tar.c:701 +#: src/tar.c:702 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:703 +#: src/tar.c:704 msgid "DATE" msgstr "DÁTA" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "déan comparáid le dáta/am modhnaithe" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "MODH" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "déan cúltaca sula scriostar, roghnaigh modh oibre maidir le leaganacha" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "TEAGHRÁN" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2224,61 +2227,61 @@ 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:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Trasfhoirmiú ainmneacha comhaid:" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "struipeáil UIMHIR comhpháirt tosaigh ó ainmneacha comhaid" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "SLONN" -#: src/tar.c:718 +#: src/tar.c:719 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:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Aschur faisnéiseach:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "taispeáin gach comhad atá próiseáilte, go foclach" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "LORGFHOCAL" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "rialú rabhadh" -#: src/tar.c:731 +#: src/tar.c:732 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:733 +#: src/tar.c:734 msgid "ACTION" msgstr "GNÍOMH" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "déan GNÍOMH ag gach seicphointe" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "taispeáin eolas mura bhfuil gach nasc dumpáilte" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "COMHARTHA" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2290,35 +2293,35 @@ 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:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "taispeáin amanna mionathraithe mar UTC" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "taispeáin an t-am athraithe leis an taifeach is mine" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "scríobh aschur foclach i gCOMHAD" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "taispeáin bloc sa chartlann le gach teachtaireacht" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "iarr deimhniú ar gach gníomh" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "taispeáin réamhshocruithe tar" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "taispeáin raonta bailí le haghaidh réimsí sa chomhad roghbhlúire" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2326,33 +2329,33 @@ msgstr "" "agus á liostú nó á bhaint amach, taispeáin gach comhadlann nach bhfuil " "comhoiriúnaithe don chuardach" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "taispeáin ainmneacha comhaid/cartlainne i ndiaidh trasfhoirmithe" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "STÍL" -#: src/tar.c:765 +#: src/tar.c:766 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:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "cuir carachtair athfhriotail timpeall na carachtair ó TEAGHRÁN" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "ná húsáid comharthaí athfhriotail timpeall carachtair ó TEAGHRÁN" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Roghanna Comhoiriúnachta:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2360,22 +2363,22 @@ msgstr "" "is ionann le --old-archive le linn cruthaithe; is ionann le --no-same-owner " "le linn baint" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Roghanna eile:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "cuir bac ar úsáid de roghanna gurbh fhéidir leo a bheith urchóideach" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "'%s': ní féidir é seo a úsáid in éineacht le '%s'" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" @@ -2383,40 +2386,40 @@ msgstr "" "Ní féidir níos mó ná ceann amháin de na roghanna '-Acdtrux', '--delete' nó " "'--test-label' a shonrú" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Roghanna contrártha comhbhrúite" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Comhartha anaithnid: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "Comhad samplach dáta gan aimsiú" -#: src/tar.c:1036 +#: src/tar.c:1038 #, 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:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "Rogha %s: Ag déileáil le dáta '%s' mar %s" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "scag an chartlann trí %s" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "Glacann an rogha --quoting-style leis na hargóintí seo a leanas:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2424,120 +2427,120 @@ msgstr "" "\n" "Luachanna réamhshocraithe don tar *seo*:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "Úinéir nó aitheantas grúpa neamhbhailí" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Fachtóir bacainneach neamhbhailí" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Fad téipe neamhbhailí" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "Leibhéal incriminteach neamhbhailí" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Níos mó ná spriocdháta amháin" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "Leagan neamhbhailí ar fhormáid na ngannchomhad" -#: src/tar.c:1661 +#: src/tar.c:1670 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:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "ní mór do luach --checkpoint a bheith ina slánuimhir" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Mód neamhbhailí ar rogha" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Uimhir neamhbhailí" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Méid taifid neamhbhailí" -#: src/tar.c:1864 +#: src/tar.c:1873 #, 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:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Tá líon na mball neamhbhailí" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "Ní cheadaítear ach aon rogha --to-command amháin" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Tá an argóint dlúis míchumtha: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Dlús anaithnid: '%c'" -#: src/tar.c:2066 +#: src/tar.c:2075 #, c-format msgid "Options '-[0-7][lmh]' not supported by *this* tar" msgstr "Ní thacaíonn an leagan seo de tar le '-[0-7][lmh]'" -#: src/tar.c:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: suíomh na hearráide" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "earráid agus %s á parsáil" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[COMHAD]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "argóintí nach roghanna iad i %s" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "ní féidir TAR_OPTIONS a scoilt: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "Tá gá le hargóint tar éis seanrogha '%c'." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "tá an rogha --occurrence gan bhrí in éagmais liosta comhad" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "Ní mór an rogha '-M' a shonrú le níos mó ná cartlann amháin" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "--level gan bhrí in éagmais --listed-incremental" -#: src/tar.c:2424 +#: 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)" @@ -2547,43 +2550,43 @@ 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Ní féidir cartlanna le hiliomad imleabhair a fhíorú" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Ní féidir cartlanna comhbhrúite a fhíorú" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Ní féidir úsáid a bhaint as cartlanna il-ranna comhbhrúite" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Ní féidir cartlanna comhbhrúite a iarcheangal" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "Teastaíonn dáta --mtime ó --clamp-mtime" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "is féidir --pax-option a úsáid ar chartlanna POSIX amháin" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "is féidir --acls a úsáid ar chartlanna POSIX amháin" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "is féidir --selinux a úsáid ar chartlanna POSIX amháin" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "is féidir --xattrs a úsáid ar chartlanna POSIX amháin" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2591,31 +2594,31 @@ msgstr "" "Ní féidir ainm na comhadlainne barrleibhéil a dhéanamh amach; ba chóir duit " "é a thabhairt le --one-top-level=X" -#: src/tar.c:2573 +#: src/tar.c:2582 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:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Ní chruthófar cartlann fholamh (go cladhartha)" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Ní féidir na roghanna '-Aru' a úsáid in éineacht le '-f -'" -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "" "Ní foláir ceann amháin de na roghanna '-Acdtrux', '--delete', nó '--test-" "label' a shonrú" -#: src/tar.c:2768 +#: src/tar.c:2800 #, 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:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" @@ -2625,53 +2628,62 @@ msgstr[2] "%s: Chrap an comhad %s bheart" msgstr[3] "%s: Chrap an comhad %s mbeart" msgstr[4] "%s: Chrap an comhad %s beart" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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 msgid "Time stamp is out of allowed range" msgstr "Tá an stampa ama lasmuigh den raon ceadaithe" -#: src/xheader.c:205 +#: src/xheader.c:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, 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:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Ní féidir an lorgfhocal %s a shárú" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "Ceanntásc míchumtha breisithe: fad ar iarraidh" -#: src/xheader.c:677 +#: src/xheader.c:695 #, c-format msgid "Extended header length %*s is out of range" msgstr "Fad %*s as raon sa cheanntásc breisithe" -#: src/xheader.c:689 +#: src/xheader.c:707 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:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "Ceanntásc míchumtha breisithe: sín chothroime ar iarraidh" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "Ceanntásc míchumtha breisithe: líne nua ar iarraidh" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "" "Lorgfhocal anaithnid '%s' sa cheanntásc breisithe; déanfar neamhshuim air" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" @@ -2679,48 +2691,48 @@ msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:1053 +#: src/xheader.c:1071 #, 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:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Ceanntásc míchumtha breisithe: %s=%s neamhbhailí" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Ceanntásc míchumtha breisithe: %s=%s sa bhreis" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, 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:1543 +#: src/xheader.c:1561 #, 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:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s: teorainn ama neamhbhailí" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: gníomh anaithnid seicphointe" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "scríobh" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "léamh" @@ -2728,7 +2740,7 @@ msgstr "léamh" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Seicphointe scríofa %u" @@ -2737,12 +2749,12 @@ msgstr "Seicphointe scríofa %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Seicphointe léimh %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2751,97 +2763,101 @@ msgstr "" "paxutils.\n" "Is iad na ROGHANNA:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Roghanna - cruthú comhad:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "MÉID" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Cruthaigh comhad leis an MÉID seo" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Scríobh i gcomhad AINM, in ionad an ghnáth-aschuir" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "Léigh ainmneacha comhaid ó COMHAD" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "Léann -T ainmneacha, foirceanta le NULanna" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "Líon an comhad leis an PATRÚN sonraithe. Is é PATRÚN 'default' nó 'zeros'" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "Méid bhloic sa gannchomhad" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "Cruthaigh gannchomhad. Tugtar an mapa comhaid ar an chuid eile de líne na n-" "orduithe." -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "FRITHÁIREAMH" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "Léim go dtí an FRITHÁIREAMH roimh scríobh na sonraí" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "Ná taispeáin teachtaireachtaí diagnóiseacha neamh-mharfacha" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Roghanna - staitisticí comhaid" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Taispeáin inneachar an struct stat le haghaidh gach comhad sonraithe. " "FORMÁID réamhshocraithe: " -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Roghanna - feidhmiú sioncronach:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "ROGHA" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "Rith ARGÓINTÍ. Úsáideach in éineacht le --checkpoint agus ceann amháin de --" "cut, --append, --touch, --unlink" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" "Déan an gníomh sonraithe (féach thíos) nuair a shroichtear seicphointe UIMHIR" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "Socraigh an dáta le haghaidh an chéad rogha --touch eile" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "Taispeáin na seicphointí a ritheadh agus stádas scortha den ORDÚ" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2849,7 +2865,7 @@ msgstr "" "Gníomhartha rite shioncronaigh. Ritear iad seo nuair a shroichtear an uimhir " "sheicphointe a sonraíodh leis an rogha --checkpoint" -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2857,124 +2873,124 @@ msgstr "" "Teasc COMHAD go dtí an mhéid a sonraíodh leis an rogha --length roimhe seo " "(nó teasc go dtí 0, mura sonraítear an rogha seo)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Iarcheangail MÉID beart le COMHAD. Tógtar MÉID ón rogha --length roimhe seo." -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "Nuashonraigh na hamanna rochtana/mionathraithe de CHOMHAD" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "Rith ORDÚ" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" -msgstr "" +msgstr "Scrios COMHAD" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Méid neamhbhailí: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Uimhir as raon: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Méid diúltach: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "theip ar stat(%s)" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "fad iarrtha %lu, fíorfhad %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "ní gannchomhad é an comhad cruthaithe" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "Earráid agus uimhir á parsáil i ngar do `%s'" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Formáid anaithnid ar an dáta" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ARGÓINTÍ...]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "ní féidir `%s' a oscailt" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "ní féidir 'seek' a dhéanamh" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "tá carachtar nialasach sa chomhadainm" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, 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:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "masc mícheart (i ngar do `%s')" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "Réimse anaithnid `%s'" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "ní féidir an t-am a shocrú ar `%s'" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "ní féidir `%s' a theascadh" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "theip ar an ordú: %s" -#: tests/genfile.c:781 -#, fuzzy, c-format +#: tests/genfile.c:772 +#, c-format msgid "cannot stat `%s'" -msgstr "ní féidir `%s' a theascadh" +msgstr "ní féidir `%s' a stat" -#: tests/genfile.c:785 -#, fuzzy, c-format +#: tests/genfile.c:776 +#, c-format msgid "cannot remove directory `%s'" -msgstr "ní féidir an t-am a shocrú ar `%s'" +msgstr "ní féidir comhadlann `%s' a bhaint" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "ní féidir `%s' a dhínascadh" @@ -3014,6 +3030,9 @@ msgstr "Ordú críochnaithe\n" msgid "--stat requires file names" msgstr "Tá ainmneacha comhaid de dhíth ar --stat" +#~ msgid "OPTION" +#~ msgstr "ROGHA" + #~ 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" diff --git a/po/gl.gmo b/po/gl.gmo index c7edfa1af65a72086dcc1c8eb09f1dffa762e842..e59e26db002921c01bac1184414aa3df69b27c67 100644 GIT binary patch delta 26 hcmX>ad^C8&HgR4{T>~RsBVz?a6Dw2m&4<OAgaCWj2jKt! delta 26 hcmX>ad^C8&HgR5aT|*;XLvsZ~BP(OW&4<OAgaCV@2iX7s diff --git a/po/gl.po b/po/gl.po index dc555b45..9df5bfae 100644 --- 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:1599 +#: src/create.c:1598 msgid "" msgstr "" "Project-Id-Version: tar 1.13.25\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\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" @@ -98,7 +98,7 @@ msgid "give a short usage message" msgstr "" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "" @@ -233,12 +233,12 @@ msgstr "" msgid "^[nN]" msgstr "" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "" @@ -246,11 +246,11 @@ msgstr "" #. 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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "" -#: gnu/version-etc.c:86 +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -502,54 +502,54 @@ msgstr "Non se pode executar un int msgid "Cannot execute remote shell" msgstr "Non se pode executar un int�rprete de comandos remoto" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Direcci�n de desprazamento f�ra de rango" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 #, fuzzy msgid "Invalid seek direction" msgstr "Proporcionouse na opci�n un modo non v�lido" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 #, fuzzy msgid "Invalid seek offset" msgstr "Marca de tempo non v�lida" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Desprazamento f�ra de rango" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 #, fuzzy msgid "Invalid byte count" msgstr "Lonxitude da fita non v�lida" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 #, fuzzy msgid "Byte count out of range" msgstr "Desprazamento f�ra de rango" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 #, fuzzy msgid "Premature eof" msgstr "rmtd: Fin de ficheiro prematura\n" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 #, fuzzy msgid "Invalid operation code" msgstr "%s: opci�n non v�lida -- %c\n" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 #, fuzzy msgid "Unexpected arguments" msgstr "Fin de ficheiro inesperado nos nomes alterados" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 #, fuzzy msgid "Manipulate a tape drive, accepting commands from a remote process" msgstr "" @@ -559,146 +559,146 @@ msgstr "" " --version Amosar informaci�n da versi�n.\n" " --help Amosar esta axuda.\n" -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, fuzzy, c-format msgid "cannot open %s" msgstr "Non se puido abrir %s" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Comando lixo" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Isto non semella un arquivo tar" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "" -#: src/buffer.c:592 +#: src/buffer.c:594 #, fuzzy msgid "Total bytes written" msgstr "Bytes totais escritos: %s (%sB, %sB/s)\n" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(canalizaci�n)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Valor non v�lido para record_size" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Non se proporcionou o nome do arquivo" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Non se poden verifica-los arquivos da entrada/sa�da est�ndar" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Non se poden actualiza-los arquivos comprimidos" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "No comezo da cinta, sa�ndo agora" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Demasiados erros, sa�ndo" -#: src/buffer.c:967 +#: src/buffer.c:969 #, 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:988 +#: src/buffer.c:990 #, 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:1075 +#: src/buffer.c:1077 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:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: cont�n un n�mero de volume non v�lido" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Desbordamento no n�mero de volume" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Prepare o volume #%d para %s e prema enter: " -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "Chegouse � fin de ficheiro onde se esperaba unha resposta do usuario" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "AVISO: O arquivo est� incompleto" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, fuzzy, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -710,278 +710,278 @@ msgstr "" " ! Executar outro int�rprete de comandos\n" " ? Amosar esta lista\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr "" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr "" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Non hai novos volumes; sa�ndo.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, fuzzy, c-format msgid "%s command failed" msgstr "O comando \"%s\" fallou" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s non contin�a neste volume" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, 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:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s ten un tama�o incorrecto (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, fuzzy, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Este volume est� fora da secuencia" -#: src/buffer.c:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "O arquivo non est� etiquetado para coincidir con %s" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "O volume %s non coincide con %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "" -#: src/buffer.c:1965 +#: src/buffer.c:1962 #, 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:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "O contido � diferente" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Fin de ficheiro inesperado no arquivo" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "O tipo de ficheiro � diferente" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "O modo � diferente" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Os uid son diferentes" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "Os gid son diferentes" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "A data de modificaci�n � diferente" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "O tama�o � diferente" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Non ligado a %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "A ligaz�n simb�lica � diferente" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "O n�mero de dispositivo � diferente" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Verificar " -#: src/compare.c:480 +#: src/compare.c:479 #, c-format 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:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "" -#: src/compare.c:541 +#: src/compare.c:540 #, fuzzy msgid "Archive contains transformed file names." msgstr "O arquivo cont�n cabeceiras base-64 obsoletas" -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "" -#: src/compare.c:620 +#: src/compare.c:619 #, 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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "" -#: src/create.c:74 +#: src/create.c:73 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "" -#: src/create.c:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Xerando cabeceiras octais negativas" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, 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:616 +#: src/create.c:615 #, 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:643 +#: src/create.c:642 #, fuzzy, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: ficheiro sen cambios; non se envorca" -#: src/create.c:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, 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:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 #, fuzzy msgid "contents not dumped" msgstr " (memoria volcada)" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Tipo de ficheiro desco�ecido; ign�rase este ficheiro" -#: src/create.c:1576 +#: src/create.c:1575 #, fuzzy, c-format msgid "Missing links to %s." msgstr " ligaz�n a %s\n" -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: ficheiro sen cambios; non se envorca" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: o ficheiro � o arquivo; non se envorca" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: o ficheiro cambiou mentres se l�a" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: ign�rase o socket" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: ign�rase a porta" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Pasando � seguinte cabeceira" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Borrando o que non sexan cabeceiras do arquivo" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "" -#: src/extract.c:320 +#: src/extract.c:319 #, 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:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Inconsistencia inesperada ao crea-lo directorio" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "" @@ -1004,7 +1004,7 @@ msgstr "Tentando extrae-las ligaz 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:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 #, fuzzy msgid "Unexpected long name header" msgstr "Fin de ficheiro (EOF) inesperado no arquivo" @@ -1035,22 +1035,22 @@ msgstr "%s: Non se puido copiar este ficheiro" msgid "Cannot rename %s to %s" msgstr "%s: Non se pode renomear a %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, fuzzy, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Renomeouse o directorio" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: O directorio � novo" -#: src/incremen.c:566 +#: src/incremen.c:565 #, 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 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Renomeouse o directorio" @@ -1176,36 +1176,36 @@ msgstr "%s: Borrando %s\n" msgid "%s: Cannot remove" msgstr "%s: Non se pode eliminar" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: Omit�ndoo" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "bloque %s: ** Bloque de nulos **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "bloque %s: ** Fin de Ficheiro **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "bloque %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1213,340 +1213,340 @@ msgstr "" "a 2" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, 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:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "O arquivo cont�n cabeceiras base-64 obsoletas" -#: src/list.c:852 +#: src/list.c:853 #, 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:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, 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:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " ligaz�n a %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " Tipo de ficheiro %s desco�ecido\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Cabeceira de Volume--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Contin�a no byte %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Creando o directorio:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "Renomeando %s a %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Non se pode renomear a %s" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "Renomeando %s a %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: Ficheiro eliminado antes da s�a lectura" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "proceso fillo" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "canle interproceso" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "" -#: src/names.c:72 +#: src/names.c:71 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" -#: src/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "" -#: src/names.c:74 +#: src/names.c:73 #, fuzzy msgid "change to directory DIR" msgstr "Non se pode cambia-lo directorio de traballo" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "" -#: src/names.c:87 +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" msgstr "" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" msgstr "" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "" -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "" -#: src/names.c:147 +#: src/names.c:146 #, fuzzy msgid "wildcards do not match '/'" msgstr "O volume %s non coincide con %s" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" msgstr "" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" msgstr "" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" msgstr "" -#: src/names.c:879 +#: src/names.c:878 #, fuzzy msgid "command line" msgstr "O comando \"%s\" fallou" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" msgstr "" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: Non atopado no arquivo" -#: src/names.c:1379 +#: src/names.c:1409 #, fuzzy, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Non atopado no arquivo" -#: src/names.c:1413 +#: src/names.c:1443 #, fuzzy, c-format msgid "Archive label mismatch" msgstr "O arquivo non est� etiquetado para coincidir con %s" -#: src/names.c:1717 +#: src/names.c:1747 msgid "" "Using -C option inside file list is not allowed with --listed-incremental" msgstr "" -#: src/names.c:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "" -#: src/tar.c:88 +#: src/tar.c:87 #, 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:165 +#: src/tar.c:164 #, fuzzy, c-format msgid "%s: Invalid archive format" msgstr "%s: Grupo non v�lido" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "Qu�rense as caracter�sticas de GNU no formato de arquivo incompatible" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1762,7 +1762,7 @@ msgstr "" msgid "extract files to standard output" msgstr "Erro ao gravar na sa�da est�ndar" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "" @@ -1798,7 +1798,7 @@ msgstr "" msgid "use FILE to map file owner GIDs and names" msgstr "" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "" @@ -1999,7 +1999,7 @@ msgstr "" msgid "Archive format selection:" msgstr "Arquivar da entrada est�ndar" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "" @@ -2084,118 +2084,118 @@ msgstr "" msgid "filter through PROG (must accept -d)" msgstr "" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "" -#: src/tar.c:693 +#: src/tar.c:694 #, fuzzy msgid "don't strip leading '/'s from file names" msgstr "Eliminadndo o \"%.*s\" inicial dos nomes dos membros" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" msgstr "" -#: src/tar.c:697 +#: src/tar.c:698 msgid "follow hard links; archive and dump the files they refer to" msgstr "" -#: src/tar.c:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" msgstr "" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2203,424 +2203,433 @@ msgid "" "accepted" msgstr "" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "" -#: src/tar.c:752 +#: src/tar.c:753 #, fuzzy msgid "ask for confirmation for every action" msgstr "Non se puido le-la confirmaci�n do usuario" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "" -#: src/tar.c:765 +#: src/tar.c:766 msgid "set name quoting style; see below for valid STYLE values" msgstr "" -#: src/tar.c:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, fuzzy, c-format msgid "'%s' cannot be used with '%s'" msgstr "%s: Non se pode saltar a %s" -#: src/tar.c:933 +#: src/tar.c:934 #, fuzzy 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:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Opci�ns de compresi�n conflictivas" -#: src/tar.c:1004 +#: src/tar.c:1000 #, fuzzy, c-format msgid "Unknown signal name: %s" msgstr " Tipo de ficheiro %s desco�ecido\n" -#: src/tar.c:1028 +#: src/tar.c:1030 #, fuzzy msgid "Date sample file not found" msgstr "Non se atopou o ficheiro de data" -#: src/tar.c:1036 +#: src/tar.c:1038 #, 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:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" msgstr "" -#: src/tar.c:1253 +#: src/tar.c:1259 #, fuzzy msgid "Invalid owner or group ID" msgstr "Propietario non v�lido" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Factor de bloqueo non v�lido" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Lonxitude da fita non v�lida" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "M�is dunha data de umbral" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Proporcionouse na opci�n un modo non v�lido" -#: src/tar.c:1797 +#: src/tar.c:1806 #, fuzzy msgid "Invalid number" msgstr "N�mero de inode non v�lido" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Tama�o de rexistro non v�lido" -#: src/tar.c:1864 +#: src/tar.c:1873 #, 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:1910 +#: src/tar.c:1919 #, fuzzy msgid "Invalid number of elements" msgstr "Lonxitude da fita non v�lida" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "" -#: src/tar.c:2049 +#: src/tar.c:2058 #, fuzzy, c-format msgid "Unknown density: '%c'" msgstr "Patr�n desco�ecido `%s'" -#: src/tar.c:2066 +#: src/tar.c:2075 #, 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:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "" -#: src/tar.c:2076 +#: src/tar.c:2085 #, fuzzy, c-format msgid "error parsing %s" msgstr "Erro mentres se cerraba %s" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "" -#: src/tar.c:2181 +#: src/tar.c:2190 #, fuzzy, c-format msgid "non-option arguments in %s" msgstr "argumento %s non v�lido para %s" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "" -#: src/tar.c:2291 +#: src/tar.c:2300 #, fuzzy, c-format msgid "Old option '%c' requires an argument." msgstr "A antiga opci�n \"%c\" precisa dun argumento." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "" -#: src/tar.c:2390 +#: src/tar.c:2399 #, fuzzy msgid "Multiple archive files require '-M' option" msgstr "Varios ficheiros de arquivo requiren a opci�n \"-M\"" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "" -#: src/tar.c:2424 +#: 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Non se pode verifica-los arquivos multi-volume" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Non se poden verifica-los arquivos comprimidos" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Non se poden empregar arquivos comprimidos multi-volume" -#: src/tar.c:2457 +#: src/tar.c:2466 #, fuzzy msgid "Cannot concatenate compressed archives" msgstr "Non se poden actualiza-los arquivos comprimidos" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" msgstr "" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "De xeito cobarde rex�itase crear un ficheiro baleiro" -#: src/tar.c:2623 +#: src/tar.c:2632 #, fuzzy msgid "Options '-Aru' are incompatible with '-f -'" msgstr "As opci�ns \"-Aru\" son incompatibles con \"-f -\"" -#: src/tar.c:2711 +#: src/tar.c:2743 #, fuzzy msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "Debe especificar unha das opci�ns \"-Acdtrux\"" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" -#: src/update.c:87 +#: src/update.c:86 #, fuzzy, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: O ficheiro encolleu %s bytes" msgstr[1] "%s: O ficheiro encolleu %s bytes" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "" -#: src/xheader.c:677 +#: src/xheader.c:695 #, 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:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, 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:1053 +#: src/xheader.c:1071 #, 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:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "" -#: src/checkpoint.c:114 +#: src/checkpoint.c:133 #, fuzzy, c-format msgid "%s: not a valid timeout" msgstr "%s: Grupo non v�lido" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "" @@ -2628,7 +2637,7 @@ msgstr "" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, fuzzy, c-format msgid "Write checkpoint %u" msgstr "Punto de control de escritura %d" @@ -2637,232 +2646,232 @@ msgstr "Punto de control de escritura %d" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, fuzzy, c-format msgid "Read checkpoint %u" msgstr "Punto de control de lectura %d" -#: tests/genfile.c:115 +#: tests/genfile.c:110 #, fuzzy msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "Xera-los ficheiros de datos para a suite de probas de GNU tar.\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 #, fuzzy msgid "File creation options:" msgstr "Opci�ns de compresi�n conflictivas" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "" -#: tests/genfile.c:135 +#: tests/genfile.c:130 #, fuzzy msgid "Write to file NAME, instead of standard output" msgstr "Erro ao gravar na sa�da est�ndar" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "" -#: tests/genfile.c:168 -msgid "OPTION" +#: tests/genfile.c:163 +msgid "N" msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -#: tests/genfile.c:193 +#: tests/genfile.c:188 #, fuzzy msgid "Update the access and modification times of FILE" msgstr "%s: Non se puido cambia-la hora de acceso e modificaci�n" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" msgstr "" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, fuzzy, c-format msgid "Invalid size: %s" msgstr "Marca de tempo non v�lida" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, fuzzy, c-format msgid "Number out of allowed range: %s" msgstr "N�mero de inode f�ra de rango" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, fuzzy, c-format msgid "Unknown date format" msgstr "Erro do sistema desco�ecido" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, fuzzy, c-format msgid "cannot open `%s'" msgstr "Non se puido abrir %s" -#: tests/genfile.c:448 +#: tests/genfile.c:439 #, fuzzy msgid "cannot seek" msgstr "Non se pode pechar" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, fuzzy, c-format msgid "Unknown field `%s'" msgstr "Patr�n desco�ecido `%s'" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, fuzzy, c-format msgid "cannot set time on `%s'" msgstr "Non se puido evalua-lo ficheiro %s" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, fuzzy, c-format msgid "cannot truncate `%s'" msgstr "Non se puido evalua-lo ficheiro %s" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, fuzzy, c-format msgid "command failed: %s" msgstr "O comando \"%s\" fallou" -#: tests/genfile.c:781 +#: tests/genfile.c:772 #, fuzzy, c-format msgid "cannot stat `%s'" msgstr "Non se puido evalua-lo ficheiro %s" -#: tests/genfile.c:785 +#: tests/genfile.c:776 #, fuzzy, c-format msgid "cannot remove directory `%s'" msgstr "Non se puido abri-lo directorio %s" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, fuzzy, c-format msgid "cannot unlink `%s'" msgstr "Non se puido abrir %s" diff --git a/po/hr.gmo b/po/hr.gmo index 647175531ce1e3c1115ed12079b8ea70d26943a8..20e566ce96a0e5b813846bb7ca1cf7efa5e5f13f 100644 GIT binary patch delta 30833 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 delta 28198 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 HL6rdjlG<ch diff --git a/po/hr.po b/po/hr.po index 40acc391..d17edb5d 100644 --- a/po/hr.po +++ b/po/hr.po @@ -1,5 +1,5 @@ # Translation of tar to Croatian. -# Copyright (C) 2016 Free Software Foundation, Inc. +# Copyright (C) 2017 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. # @@ -8,18 +8,19 @@ # bp, travanj 2016.: to je originalni TK zadnji prijevod od 2012. godine # samo su dodani novi msgid-ovi i uređeni fuzirani msgstr-ovi. # korektura u dogovoru s lingvistima slijedi u dogledno vrijeme. +# bp: siječanj 2018.: puno izmjena.... # # # Mirsad Todorovac <mtodorov_69@yahoo.com>, 2002. # Tomislav Krznar <tomislav.krznar@gmail.com>, 2012. -# Božidar Putanec <bozidarp@yahoo.com>, 2016. -#: src/create.c:1599 +# Božidar Putanec <bozidarp@yahoo.com>, 2016, 2017, 2018. +#: src/create.c:1598 msgid "" msgstr "" -"Project-Id-Version: tar-1.29\n" +"Project-Id-Version: tar-1.30\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" -"PO-Revision-Date: 2016-05-17 10:51-0700\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" +"PO-Revision-Date: 2018-01-12 18:33-0800\n" "Last-Translator: Božidar Putanec <bozidarp@yahoo.com>\n" "Language-Team: Croatian <lokalizacija@linux.hr>\n" "Language: hr\n" @@ -30,20 +31,16 @@ msgstr "" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: Lokalize 2.0\n" -"X-Poedit-SourceCharset: UTF-8\n" -"X-Poedit-Basepath: ../../Downloads/tar-1.28.90\n" -"X-Poedit-SearchPath-0: gnu\n" -"X-Poedit-SearchPath-1: src\n" #: gnu/argmatch.c:134 #, c-format msgid "invalid argument %s for %s" -msgstr "neispravan argument %s za %s" +msgstr "neispravni argument %s za %s" #: gnu/argmatch.c:135 #, c-format msgid "ambiguous argument %s for %s" -msgstr "višeznačan argument %s za %s" +msgstr "dvosmisleni argument %s za %s" #: gnu/argmatch.c:154 msgid "Valid arguments are:" @@ -74,8 +71,8 @@ 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." +"Obvezni ili opcijski argumenti za dugačke opcije su također obvezni i za " +"kratke opcije." #: gnu/argp-help.c:1615 msgid "Usage:" @@ -83,7 +80,7 @@ msgstr "Uporaba:" #: gnu/argp-help.c:1619 msgid " or: " -msgstr " ili: " +msgstr " ili: " #: gnu/argp-help.c:1631 msgid " [OPTION...]" @@ -102,18 +99,18 @@ msgstr "Prijavite greške na %s.\n" #: gnu/argp-help.c:1887 gnu/error.c:195 msgid "Unknown system error" -msgstr "Nepoznata greška sustava" +msgstr "Nepoznata pogreška sustava" #: gnu/argp-parse.c:81 msgid "give this help list" -msgstr "prikaži ovaj popis pomoći" +msgstr "ova pomoć" #: gnu/argp-parse.c:82 msgid "give a short usage message" -msgstr "prikaži kratke upute za uporabu" +msgstr "kratke upute za uporabu" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "IME" @@ -127,15 +124,15 @@ msgstr "SEK" #: gnu/argp-parse.c:86 msgid "hang for SECS seconds (default 3600)" -msgstr "zaustavi na SEK sekundi (zadano 3600)" +msgstr "zaustavi se za SEK sekundi (zadano 3600)" #: gnu/argp-parse.c:143 msgid "print program version" -msgstr "ispiši inačicu programa" +msgstr "inačica ovog tar programa" #: gnu/argp-parse.c:160 msgid "(PROGRAM ERROR) No version known!?" -msgstr "(GREŠKA PROGRAMA) Nema poznate inačice!?" +msgstr "**Interna greška programa**: Nepoznata inačica!?" #: gnu/argp-parse.c:613 #, c-format @@ -144,36 +141,36 @@ msgstr "%s: Previše argumenata\n" #: gnu/argp-parse.c:759 msgid "(PROGRAM ERROR) Option should have been recognized!?" -msgstr "(GREŠKA PROGRAMA) Opcije su trebale biti prepoznate!?" +msgstr "**Interna greška programa**: Opcije su trebale biti prepoznate!?" #: gnu/closeout.c:122 msgid "write error" msgstr "greška pisanja" #: gnu/getopt.c:278 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous\n" -msgstr "%s: opcija „%s“ je višeznačna\n" +msgstr "%s: opcija „%s%s“ je dvosmislena\n" #: gnu/getopt.c:284 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" -msgstr "%s: opcija „%s“ je višeznačna; mogućnosti:" +msgstr "%s: opcija „%s%s“ je dvosmislena; mogućnosti:" #: gnu/getopt.c:319 -#, fuzzy, c-format +#, c-format msgid "%s: unrecognized option '%s%s'\n" -msgstr "%s: neprepoznata opcija „%c%s“\n" +msgstr "%s: neprepoznata opcija „%s%s“\n" #: gnu/getopt.c:345 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" -msgstr "%s: opcija „%c%s“ ne dozvoljava argument\n" +msgstr "%s: opcija „%s%s“ ne dopušta argument\n" #: gnu/getopt.c:360 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' requires an argument\n" -msgstr "%s: opcija „--%s“ zahtijeva argument\n" +msgstr "%s: opcija „%s%s“ zahtijeva argument\n" #: gnu/getopt.c:621 #, c-format @@ -187,17 +184,17 @@ msgstr "%s: opcija zahtijeva argument -- „%c“\n" #: gnu/obstack.c:338 gnu/obstack.c:340 gnu/xalloc-die.c:34 msgid "memory exhausted" -msgstr "memorija iscrpljena" +msgstr "memorija je iscrpljena" #: gnu/openat-die.c:38 #, c-format msgid "unable to record current working directory" -msgstr "ne mogu zapisati trenutni radni direktorij" +msgstr "nije moguće registrirati trenutačni radni direktorij" #: gnu/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" -msgstr "nisam se uspio vratiti u početni radni direktorij" +msgstr "nije uspjelo vratiti se u početni radni direktorij" # #. TRANSLATORS: @@ -237,7 +234,7 @@ msgstr "“" #. locale -k LC_MESSAGES | grep '^yesexpr=' #: gnu/rpmatch.c:150 msgid "^[yY]" -msgstr "^[dDyY]" +msgstr "^[yYdD]" #. TRANSLATORS: A regular expression testing for a negative answer #. (english: "no"). Testing the first character may be sufficient. @@ -249,12 +246,12 @@ msgstr "^[dDyY]" msgid "^[nN]" msgstr "^[nN]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Pakirao %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Pakirao %s\n" @@ -262,12 +259,11 @@ 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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "©" -#: gnu/version-etc.c:86 -#, fuzzy +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -277,10 +273,10 @@ msgid "" "\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" +"Licencija GPLv3+: GNU GPL inačica 3 ili kasnija <https://gnu.org/licenses/" +"gpl.html>.\n" +"Ovo je slobodan softver: slobodno ga mijenjajte i dijelite.\n" +"NEMA JAMSTVA do granica dopuštenih zakonom.\n" "\n" #. TRANSLATORS: %s denotes an author name. @@ -402,8 +398,8 @@ msgid "" "Report bugs to: %s\n" msgstr "" "\n" -"Prijavite greške na %s.\n" -"Prijavite greške prijevoda na <lokalizacija@linux.hr>.\n" +"Prijavite programske greške (na engleskom, LC_ALL=C) na %s.\n" +"Prijavite greške u prijevodu na <lokalizacija@linux.hr>.\n" #: gnu/version-etc.c:247 #, c-format @@ -413,18 +409,17 @@ msgstr "Prijavite %s greške na %s\n" #: gnu/version-etc.c:251 #, c-format msgid "%s home page: <%s>\n" -msgstr "%s početna stranica: <%s>\n" +msgstr "Internetska stranica od %s: <%s>\n" #: gnu/version-etc.c:253 -#, fuzzy, c-format +#, c-format msgid "%s home page: <https://www.gnu.org/software/%s/>\n" -msgstr "%s početna stranica: <http://www.gnu.org/software/%s/>\n" +msgstr "Internetska stranica od %s: <https://www.gnu.org/software/%s/>\n" #: gnu/version-etc.c:256 -#, fuzzy msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n" msgstr "" -"Općenita pomoć za korištenje GNU softvera: <http://www.gnu.org/gethelp/>\n" +"Općenita pomoć za korištenje GNU softvera: <https://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 @@ -433,7 +428,7 @@ msgstr "" #: lib/paxerror.c:60 lib/paxerror.c:73 #, c-format msgid "%s: Cannot %s" -msgstr "%s: Ne mogu izvršiti %s" +msgstr "%s: Funkcija %s je završila s greškom" #. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. #. Directly translating this to another language will not work, first because @@ -442,463 +437,467 @@ msgstr "%s: Ne mogu izvršiti %s" #: lib/paxerror.c:86 #, c-format msgid "%s: Warning: Cannot %s" -msgstr "%s: Upozorenje: Ne mogu izvršiti %s" +msgstr "%s: Upozorenje: funkcija %s je završila s greškom" #: lib/paxerror.c:95 #, c-format msgid "%s: Cannot change mode to %s" -msgstr "%s: Ne mogu promijeniti mod u %s" +msgstr "%s: Nije moguće promijeniti prava dostupa od %s" #: lib/paxerror.c:103 #, c-format msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: Ne mogu promijeniti vlasništvo u uid %lu, gid %lu" +msgstr "%s: Nije moguće promijeniti vlasništvo u uid %lu, gid %lu" #: lib/paxerror.c:129 #, c-format msgid "%s: Cannot hard link to %s" -msgstr "%s: Ne mogu napraviti čvrstu vezu na %s" +msgstr "%s: Nije moguće napraviti čvrstu vezu na %s" #: lib/paxerror.c:181 lib/paxerror.c:213 #, 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: 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" +msgstr[0] "%s: Pogreška u čitanju na bajtu %s pri čitanju %lu bajta" +msgstr[1] "%s: Pogreška u čitanju na bajtu %s pri čitanju %lu bajta" +msgstr[2] "%s: Pogreška u čitanju na bajtu %s pri čitanju %lu bajtova" #: lib/paxerror.c:194 #, 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: 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" +msgstr[0] "" +"%s: Upozorenje: Pogreška u čitanju na bajtu %s pri čitanju %lu bajta" +msgstr[1] "" +"%s: Upozorenje: Pogreška u čitanju na bajtu %s pri čitanju %lu bajta" +msgstr[2] "" +"%s: Upozorenje: Pogreška u čitanju na bajtu %s pri čitanju %lu bajtova" #: lib/paxerror.c:261 #, c-format msgid "%s: Cannot seek to %s" -msgstr "%s: Ne mogu ići na %s" +msgstr "%s: Nije moguće skiočiti/naći na %s" #: lib/paxerror.c:277 #, c-format msgid "%s: Warning: Cannot seek to %s" -msgstr "%s: Upozorenje: Ne mogu ići na %s" +msgstr "%s: Upozorenje: Nije moguće skočiti/naći na %s" #: lib/paxerror.c:286 #, c-format msgid "%s: Cannot create symlink to %s" -msgstr "%s: Ne mogu napraviti simboličku vezu na %s" +msgstr "%s: Nije moguće napraviti simboličku vezu na %s" #: lib/paxerror.c:351 #, c-format msgid "%s: Wrote only %lu of %lu byte" msgid_plural "%s: Wrote only %lu of %lu bytes" -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" +msgstr[0] "%s: Zapisano je samo %lu bajt iz %lu" +msgstr[1] "%s: Zapisano je samo %lu bajta iz %lu" +msgstr[2] "%s: Zapisano je samo %lu bajtova iz %lu" #: lib/paxnames.c:140 #, c-format msgid "Removing leading `%s' from member names" -msgstr "Uklanjam početni „%s“ iz imena elemenata" +msgstr "Uklanja se početni „%s“ iz imena člana" #: lib/paxnames.c:141 #, c-format msgid "Removing leading `%s' from hard link targets" -msgstr "Uklanjam početni „%s“ iz odredišta čvrstih veza" +msgstr "Uklanja se početni „%s“ iz meta tvrdih veza" #: lib/paxnames.c:154 msgid "Substituting `.' for empty member name" -msgstr "Mijenjam „.“ za prazno ime elementa" +msgstr "„.“ (točkom) se zamjenjuje prazno ime člana" #: lib/paxnames.c:155 msgid "Substituting `.' for empty hard link target" -msgstr "Mijenjam „.“ za prazno odredište čvrste veze" +msgstr "„.“ (točkom) se zamjenjuje prazna meta tvrde veze" #: lib/rtapelib.c:299 #, c-format msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Usluga nije dostupna" +msgstr "exec/tcp: Servis nije dostupan" # FIXME -- verify against source #: lib/rtapelib.c:303 #, c-format msgid "stdin" -msgstr "standardni ulaz" +msgstr "standardni ulaz (stdin)" #: lib/rtapelib.c:306 #, c-format msgid "stdout" -msgstr "standardni izlaz" +msgstr "standardni izlaz (stdout)" #: lib/rtapelib.c:429 #, c-format msgid "Cannot connect to %s: resolve failed" -msgstr "Ne mogu se spojiti na %s: rezolucija nije uspjela" +msgstr "Nije moguće povezivanje s %s: riješenje nije uspjelo" #: lib/rtapelib.c:502 #, c-format msgid "Cannot redirect files for remote shell" -msgstr "Ne mogu preusmjeriti datoteke za udaljenu ljusku" +msgstr "Nije moguće preusmjeriti datoteke za udaljenu ljusku (remote shell)" #: lib/rtapelib.c:516 #, c-format msgid "Cannot execute remote shell" -msgstr "Ne mogu pokrenuti udaljenu ljusku" +msgstr "Nije moguće pokrenuti udaljenu ljusku (remote shell)" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" -msgstr "Smjer traženja izvan granica" +msgstr "Smjer za skok na poziciju je izvan dosega" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" -msgstr "Neispravan smjer traženja" +msgstr "Neispravni smjer za skok na poziciju" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" -msgstr "Neispravan pomak traženja" +msgstr "Neispravna pozicija skoka" # FIXME -- find xlation for 'seek offset' -- TM -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" -msgstr "Pomak traženja izvan granica" +msgstr "Pozicija skoka je izvan dosega" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" -msgstr "Neispravan broj bajtova" +msgstr "Neispravni 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 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" -msgstr "Broj bajtova izvan granica" +msgstr "Broj bajtova je izvan raspona" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" -msgstr "Preuranjen eof" +msgstr "Preuranjen eof (kraj datoteke)" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" -msgstr "Neispravan operacijski kod" +msgstr "Neispravni kod operacije" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "Operacija nije podržana" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Neočekivani argumenti" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 msgid "Manipulate a tape drive, accepting commands from a remote process" -msgstr "Upravlja pogonom vrpce, prihvaćajući naredbe udaljenog procesa" +msgstr "Rad s pogonom vrpce, prihvaćajući naredbe udaljenog procesa" -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "BROJ" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" -msgstr "postavi razinu debugiranja" +msgstr "postavite razinu debugiranja (opširnost izvješća o greškama)" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "DATOTEKA" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" -msgstr "postavi ime datoteke izlaza za debugiranje" +msgstr "zadajte naziv izlazne datoteke s podacima za uklanjanje grešaka" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" -msgstr "ne mogu otvoriti %s" +msgstr "nije moguće otvoriti %s" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "previše argumenata" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" -msgstr "Naredba smeća" +msgstr "Neispravna naredba" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Ovo ne izgleda kao tar arhiva" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Ukupno pročitano bajtova" # FIXME -- ovo neće raditi ako je prevedeno -- Denis? -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Ukupno zapisano bajtova" # FIXME -- ovo neće raditi ako je prevedeno -- Denis? -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" -msgstr "Izbrisano ukupno bajtova" +msgstr "Ukupno izbrisano bajtova" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" -msgstr "(cjevovod)" +msgstr "(cijev)" # Hrvatski jezični portal # otkazati > odbiti izvršiti naredbu # odbijati > ne pristati -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" -msgstr "Čitanje sadržaja arhive s terminala je odbijeno (nedostaje -f opcija?)" +msgstr "" +"Uskraćuje se čitanje sadržaja arhive s terminala (nedostaje -f opcija?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" -msgstr "Ispis sadržaja arhive na terminal je odbijeno (nedostaje -f opcija?)" +msgstr "Odbija se ispisati sadržaj arhive na terminal (nedostaje -f opcija?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Neispravna vrijednost za record_size" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" -msgstr "Nije zadano ime arhive" +msgstr "Nije dano ime za arhivu" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" -msgstr "Ne mogu provjeriti stdin/stdout arhivu" +msgstr "Nije moguće provjeriti stdin/stdout arhivu" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" -msgstr "Arhiva je komprimirana. Koristite opciju %s" +msgstr "Arhiva je komprimirana. rabite opciju %s" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" -msgstr "Ne mogu ažurirati komprimirane arhive" +msgstr "Nije moguće ažurirati komprimirane arhive" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" -msgstr "Početak trake, završavam" +msgstr "Početak trake, kraj rada" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" -msgstr "Previše grešaka, završavam" +msgstr "Previše grešaka, kraj rada" -#: src/buffer.c:967 +#: src/buffer.c:969 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Veličina zapisa = %lu blok" -msgstr[1] "Veličina sloga = %lu bloka" -msgstr[2] "Veličina sloga = %lu blokova" +msgstr[1] "Veličina zapisa = %lu bloka" +msgstr[2] "Veličina zapisa = %lu blokova" -#: src/buffer.c:988 +#: src/buffer.c:990 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" -msgstr[0] "Neporavnat blok (%lu bajt) unutar arhive" -msgstr[1] "Neporavnat blok (%lu bajta) unutar arhive" -msgstr[2] "Neporavnat blok (%lu bajtova) unutar arhive" +msgstr[0] "Neporavnani blok (%lu bajt) unutar arhive" +msgstr[1] "Neporavnani blok (%lu bajta) unutar arhive" +msgstr[2] "Neporavnani blok (%lu bajtova) unutar arhive" -#: src/buffer.c:1075 +#: src/buffer.c:1077 msgid "Cannot backspace archive file; it may be unreadable without -i" -msgstr "Ne mogu se pomicati unatrag unutar arhive, može biti nečitljiva bez -i" +msgstr "" +"Nije momoguće vratiti se i ponovno pretražiti arhivu; možda je nečitljiva " +"bez -i" -#: src/buffer.c:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" -msgstr "rmtlseek nije stao na granici zapisa" +msgstr "rmtlseek se nije zaustavio na granici zapisa" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" -msgstr "%s: sadrži neispravan broj dijela arhive" +msgstr "%s: sadrži neispravni broj sveska" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" -msgstr "Preljev broja dijela arhive" +msgstr "Broj sveska je prevelik" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " -msgstr "Pripremite dio arhive #%d za %s i pritisnite [RETURN]: " +msgstr "Pripremite svezak broj #%d za %s i pritisnite [ENTER]: " -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" -msgstr "Pronađen EOF gdje sam očekivao odgovor korisnika" +msgstr "Kraj datoteke (EOF) umjesto očekivanoga odgovora korisnika" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "UPOZORENJE: Arhiva je nepotpuna" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, 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 sljedeći (i nadovezujuće) " -"dijelove\n" -" q Prekini tar\n" -" y ili novi redak Nastavi rad\n" +" n [ime] Novo ime datoteke za sljedeći (i naredne) sveske\n" +" q Izlazi iz tar-a\n" +" y ili novi redak Nastavlja operaciju\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" -msgstr " ! Pokreni podljusku\n" +msgstr " ! Pokrene podljusku\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" -msgstr " ? Ispiši ovaj popis\n" +msgstr " ? Ispiše ovaj popis\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" -msgstr "Nema novog dijela arhive, završavam.\n" +msgstr "Nema novog sveska; kraj rada, izlaz.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" -msgstr "Ime datoteke nije navedeno. Pokušajte ponovo.\n" +msgstr "Ime datoteke nije specificirano. Pokušajte ponovo.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" -msgstr "Neispravan unos. Unesite ? za pomoć.\n" +msgstr "Neispravni ulazni podaci. Unesite ? za pomoć.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" -msgstr "naredba %s nije uspjela" +msgstr "Naredba %s nije uspjela" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" -msgstr "%s nije nastavljen na ovom dijelu arhive" +msgstr "%s se ne nastavlja na ovom svesku" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" -msgstr "" -"%s je možda nastavljen na ovom dijelu arhive: zaglavlje sadrži skraćeno ime" +msgstr "%s se možda nastavlja na ovom svesku: zaglavlje sadrži skraćeno ime" -#: src/buffer.c:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" -msgstr "%s je pogrešne veličine (%s != %s + %s)" +msgstr "%s je netočna veličina (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" -msgstr "Ovaj dio arhive je izvan niza (%s - %s != %s)" +msgstr "Ovaj svezak je izvan sekvencije (%s - %s != %s)" # FIXME -- clean against source! (TM) -#: src/buffer.c:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" -msgstr "Arhiva nije označena da odgovara %s" +msgstr "Arhiva nije etiketirana, i ne može se podudarati s(a) %s" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" -msgstr "Dio arhive %s ne odgovara %s" +msgstr "Svezak %s se ne podudara s(a) %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, 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" +"%s: ime datoteke je predugo za spremanje u višesvezačno zaglavlje GNU-a; " +"skraćuje se" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "pisanje nije završilo na granici bloka" -#: src/compare.c:98 +#: src/compare.c:97 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" -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" +msgstr[0] "Pročitano je samo %lu od %lu bajta" +msgstr[1] "Pročitano je samo %lu od %lu bajta" +msgstr[2] "Pročitano je samo %lu od %lu bajtova" -#: src/compare.c:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Sadržaji se razlikuju" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" -msgstr "Neočekivani EOF u arhivi" +msgstr "Neočekivani kraj datoteke (EOF) u arhivi" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" -msgstr "Vrste datoteka se razlikuju" +msgstr "Vrsta datoteke se razlikuje" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" -msgstr "Mod se razlikuje" +msgstr "Prava dostupa se razlikuju" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" -msgstr "Uid se razlikuje" +msgstr "UID se razlikuje" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" -msgstr "Gid se razlikuje" +msgstr "GID se razlikuje" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" -msgstr "Vrijeme uređivanja se razlikuje" +msgstr "Vrijeme izmjene se razlikuje" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Veličina se razlikuje" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Nije povezan na %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Simbolička veza se razlikuje" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Broj uređaja se razlikuje" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Provjeri " -#: src/compare.c:480 +#: src/compare.c:479 #, c-format msgid "%s: Unknown file type '%c', diffed as normal file" -msgstr "%s: Nepoznata vrsta datoteke „%c“, kompariran kao normalna datoteka" +msgstr "%s: Nepoznata vrsta datoteke „%c“, uspoređuje se kao normalna datoteka" -#: src/compare.c:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." -msgstr "Arhiva sadrži imena datoteka s uklonjenim početnim prefiksima." +msgstr "Arhiva sadrži imena datoteka s uklonjenim prefiksima." -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." -msgstr "Arhiva sadrži pretvorena imena datoteka." +msgstr "Arhiva sadrži transformirana imena datoteka." -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." -msgstr "Provjera možda neće uspjeti pronaći izvorne datoteke." +msgstr "Provjera možda neće uspjeti pronaći originalne datoteke." -#: src/compare.c:620 +#: src/compare.c:619 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" @@ -906,197 +905,201 @@ 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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" -msgstr "Izolirani nulti blok na %s" +msgstr "Izolirani nulti blok pri %s" -#: src/create.c:74 +#: src/create.c:73 #, c-format msgid "%s: contains a cache directory tag %s; %s" -msgstr "%s: sadrži oznaku direktorija spremnika %s; %s" +msgstr "" +"%s: sadrži „cache directory tag“ (CACHEDIR.TAG) %s; %s v. http://www." +"brynosaurus.com/cachedir/spec.html" -#: src/create.c:263 +#: 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; mijenjam sa %s" +msgstr "vrijednost %s je izvan %s raspona %s..%s; zamijenjuje se s/sa %s" -#: src/create.c:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" -msgstr "Stvaram negativna oktalna zaglavlja" +msgstr "Generiranje negativnih oktalnih zaglavlja" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, c-format msgid "%s: file name is too long (max %d); not dumped" -msgstr "%s: ime datoteke je predugo (najviše %d); ne arhiviram" +msgstr "%s: ime datoteke je predugo (max %d); ne arhivira se" -#: src/create.c:616 +#: src/create.c:615 #, c-format msgid "%s: file name is too long (cannot be split); not dumped" -msgstr "%s: ime datoteke je predugačko (ne može se razdvojiti); ne arhiviram" +msgstr "%s: ime datoteke je predugo (ne može se rastaviti); ne arhivira se" -#: src/create.c:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" -msgstr "%s: ime veze je predugo; ne arhiviram" +msgstr "%s: ime veze je predugo; ne arhivira se" -#: src/create.c:1106 +#: src/create.c:1105 #, 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 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" +msgstr[0] "%s: Datoteka je skraćena za %s bajt; dopunjena s nulama" +msgstr[1] "%s: Datoteka je skraćena za %s bajta; dopunjena s nulama" +msgstr[2] "%s: Datoteka je skraćena za %s bajtova; dopunjena s nulama" -#: src/create.c:1204 +#: src/create.c:1203 #, c-format msgid "%s: file is on a different filesystem; not dumped" -msgstr "%s: datoteka je na drugom datotečnom sustavu; ne arhiviram" +msgstr "%s: datoteka je na drugom datotečnom sustavu; ne arhivira se" -#: src/create.c:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "sadržaj nije arhiviran" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" -msgstr "%s: Nepoznata vrsta datoteke; datoteka zanemarena" +msgstr "%s: Nepoznata vrsta datoteke; ignorira se" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "Nedostaju veze na %s." -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" -msgstr "%s: datoteka nepromijenjena; ne arhiviram" +msgstr "%s: datoteka je nepromijenjena; ne arhivira se" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" -msgstr "%s: datoteka je arhiva; ne arhiviram" +msgstr "%s: datoteka je arhiva; ne arhivira se" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "direktorij nije arhiviran" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" -msgstr "%s: datoteka se promijenila za vrijeme čitanja" +msgstr "%s: datoteka se promijenila za vrijeme učitavanja" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" -msgstr "%s: utičnica zanemarena" +msgstr "%s: utičnica je zanemarena" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" -msgstr "%s: vrata zanemarena" +msgstr "%s: zanemarena vrata" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" -msgstr "Preskačem na sljedeće zaglavlje" +msgstr "Propuštanje do sljedećeg zaglavlja" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" -msgstr "Brišem neispravno zaglavlje iz arhive" +msgstr "Brisanje ne-zaglavlja iz arhive" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: nevjerojatno stara vremenska oznaka %s" -#: src/extract.c:320 +#: src/extract.c:319 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: vremenska oznaka %s je %s sekundi u budućnosti" -#: src/extract.c:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" -msgstr "%s: Neočekivana nekonzistentnost pri izradi direktorija" +msgstr "%s: Neočekivana proturječnost pri izradi direktorija" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" -msgstr "%s: propuštanje postojeće datoteke" +msgstr "%s: propušta se postojeća datoteka" #: src/extract.c:901 #, c-format msgid "%s: Directory renamed before its status could be extracted" -msgstr "%s: Direktoriju promijenjeno ime prije ekstrakcije njegovog stanja" +msgstr "" +"%s: Direktorij je bio preimenovan prije nego se njegov status mogao odrediti" #: src/extract.c:1086 msgid "Extracting contiguous files as regular files" -msgstr "Ekstrahiram neprekinute datoteke kao obične datoteke" +msgstr "Susjedne datoteke (contiguous files) izdvajaju se kao obične datoteke" #: src/extract.c:1433 msgid "Attempting extraction of symbolic links as hard links" -msgstr "Pokušavam ekstrakciju simboličkih veza kao čvrstih veza" +msgstr "Pokušava izdvojiti simboličke veze kao tvrde veze" #: src/extract.c:1596 #, c-format msgid "%s: Cannot extract -- file is continued from another volume" msgstr "" -"%s: Ne mogu ekstrahirati -- datoteka se nastavlja iz drugog dijela arhive" +"%s: Nije moguće izdvojiti -- datoteka se nastavlja iz nekog drugog sveska" -#: src/extract.c:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" -msgstr "Neočekivano zaglavlje dugačkog imena" +msgstr "Neočekivano dugo ime zaglavlja" #: src/extract.c:1610 #, c-format msgid "%s: Unknown file type '%c', extracted as normal file" -msgstr "%s: Nepoznata vrsta datoteke „%c“, ekstrahirana kao normalna datoteka" +msgstr "%s: Nepoznata vrsta datoteke „%c“, izdvojena kao normalna datoteka" #: src/extract.c:1636 #, c-format msgid "Current %s is newer or same age" -msgstr "Trenutni %s je noviji ili jednako star" +msgstr "Trenutačni %s je noviji ili jednako star" #: src/extract.c:1664 -#, fuzzy, c-format +#, c-format msgid "%s: Member name contains '..'" -msgstr "%s: Ime člana sadrži `..'" +msgstr "%s: Ime člana sadrži „..“" #: src/extract.c:1696 #, c-format msgid "%s: Was unable to backup this file" -msgstr "%s: Nisam uspio napraviti kopiju ove datoteke" +msgstr "" +"%s: Nije bilo moguće osigurati (napraviti sigurnosnu kopiju) ovu datoteku" #: src/extract.c:1845 #, c-format msgid "Cannot rename %s to %s" -msgstr "Ne mogu preimenovati %s u %s" +msgstr "Nije moguće preimenovati %s u %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" -msgstr "%s: Direktoriju je promijenjeno ime iz %s" +msgstr "%s: Direktorij je bio preimenovan od %s" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" -msgstr "%s: Novi direktorij" +msgstr "%s: Direktorij je novi" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" -msgstr "%s: direktorij je na drugom datotečnom sustavu; ne arhiviram" +msgstr "%s: direktorij je na drugom datotečnom sustavu; ne arhivira se" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" -msgstr "%s: Direktoriju je promijenjeno ime" +msgstr "%s: Direktoriju je bio preimenovan" #: src/incremen.c:1003 src/incremen.c:1018 msgid "Invalid time stamp" @@ -1104,33 +1107,35 @@ msgstr "Neispravna vremenska oznaka" #: src/incremen.c:1047 msgid "Invalid modification time" -msgstr "Neispravno vrijeme uređivanja (sekunde)" +msgstr "Neispravno vrijeme izmjene (sekunde)" #: src/incremen.c:1057 msgid "Invalid modification time (nanoseconds)" -msgstr "Neispravno vrijeme uređivanja (nanosekunde)" +msgstr "Neispravno vrijeme izmjene (nanosekunde)" #: src/incremen.c:1073 msgid "Invalid device number" -msgstr "Neispravan broj uređaja" +msgstr "Neispravni broj uređaja" #: src/incremen.c:1081 msgid "Invalid inode number" -msgstr "Neispravan broj indeksnog čvora (inode)" +msgstr "Neispravni broj indeksa čvora (inode)" #: src/incremen.c:1137 #, c-format msgid "%s: byte %s: %s %.*s... too long" -msgstr "%s: bajt %s: %s %.*s... predug" +msgstr "%s: bajt %s: %s %.*s... predugačko" #: src/incremen.c:1153 src/incremen.c:1211 src/incremen.c:1273 msgid "Unexpected EOF in snapshot file" -msgstr "Neočekivani EOF u datoteci snimke stanja" +msgstr "" +"Neočekivani kraj datoteke u snapshot (stanje osiguranja u trenutku " +"arhiviranja) datoteci" #: src/incremen.c:1161 #, c-format msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x" -msgstr "%s: bajt %s: %s %s praćen s neispravnim bajtom 0x%02x" +msgstr "%s: bajt %s: %s %s slijedi iza neispravnog bajta 0x%02x" #: src/incremen.c:1174 #, c-format @@ -1153,481 +1158,488 @@ msgstr "%s: bajt %s: %s" #: src/incremen.c:1265 msgid "Missing record terminator" -msgstr "Nedostaje kraj zapisa" +msgstr "Nedostaje indikator kraja zapisa" #: src/incremen.c:1371 src/incremen.c:1374 msgid "Bad incremental file format" -msgstr "Neispravan inkrementalni oblik datoteke" +msgstr "Loši inkrementalni format datoteke" #: src/incremen.c:1393 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" -msgstr "Nepodržana inačica inkrementalnog oblika: %<PRIuMAX>" +msgstr "Nepodržana verzija inkrementalnog formata: %<PRIuMAX>" #: src/incremen.c:1549 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" -msgstr "Izobličen direktorij za ispis: očekujem „%c“, pronašao %#3o" +msgstr "Deformirani arhivski direktorij: očekivano „%c“, a pronađeno je %#3o" #: src/incremen.c:1559 msgid "Malformed dumpdir: 'X' duplicated" -msgstr "Izobličen direktorij za ispis: „X“ udvostručen" +msgstr "Deformirani arhivski direktorij: duplicirani 'X'" #: src/incremen.c:1572 msgid "Malformed dumpdir: empty name in 'R'" -msgstr "Izobličen direktorij za ispis: prazno ime u „R“" +msgstr "Deformirani arhivski direktorij: prazno ime u „R“" # bp: Malformed > Nepravilan # prije „T“ ne dolazi „R“ > „T“ ne prethodi „R“ #: src/incremen.c:1585 msgid "Malformed dumpdir: 'T' not preceded by 'R'" -msgstr "Nepravilan direktorij za ispis: „T“ ne prethodi „R“" +msgstr "Deformirani arhivski direktorij: ispred „T“ ne stoji „R“" #: src/incremen.c:1591 msgid "Malformed dumpdir: empty name in 'T'" -msgstr "Nepravilan direktorij za ispis: prazno ime u „T“" +msgstr "Deformirani arhivski direktorij: prazno ime u „T“" #: src/incremen.c:1611 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" -msgstr "Nepravilan direktorij za ispis: očekujem „%c“, pronašao kraj podataka" +msgstr "" +"Deformirani arhivski direktorij: očekivano „%c“, ali pronađen kraj podataka" #: src/incremen.c:1618 msgid "Malformed dumpdir: 'X' never used" -msgstr "Nepravilan direktorij za ispis: „X“ se uopće ne koristi" +msgstr "Deformirani arhivski direktorij: „X“ se nijednom ne rabi" #: src/incremen.c:1662 #, c-format msgid "Cannot create temporary directory using template %s" -msgstr "Ne mogu napraviti privremeni direktorij korištenjem predloška %s" +msgstr "Nije moguće napraviti privremeni direktorij iz predloška %s" #: src/incremen.c:1723 #, c-format msgid "%s: Not purging directory: unable to stat" -msgstr "%s: Ne uklanjam direktorij: ne mogu izvršiti stat" +msgstr "%s: Direktorij se ne čisti: nije moguće odrediti status" #: src/incremen.c:1736 #, c-format msgid "%s: directory is on a different device: not purging" -msgstr "%s: datoteka je na drugom uređaju: ne uklanjam" +msgstr "%s: direktorij je na drugom uređaju: ne čisti se" #: src/incremen.c:1744 #, c-format msgid "%s: Deleting %s\n" -msgstr "%s: Brišem %s\n" +msgstr "%s: Brisanje %s\n" #: src/incremen.c:1749 #, c-format msgid "%s: Cannot remove" -msgstr "%s: Ne mogu ukloniti" +msgstr "%s: Nije moguće ukloniti" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" -msgstr "%s: Izostavljam" +msgstr "%s: Propušta se" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blok %s: ** Blok ispunjen NUL-znakovima **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "blok %s: ** Kraj datoteke **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "blok %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, c-format msgid "Blanks in header where numeric %s value expected" -msgstr "Praznine u zaglavlju gdje se očekuje numerička %s vrijednost" +msgstr "Praznine u zaglavlju, a očekuje se numerička %s vrijednost" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:806 +#: src/list.c:807 #, 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 granica; pretpostavljam dvojni " +"Oktalna vrijednost %.*s iz arhive je izvan %s raspona; podrazumijeva se 2-" "komplement" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, c-format msgid "Archive octal value %.*s is out of %s range" -msgstr "Oktalna vrijednost iz arhive %.*s je izvan %s granica" +msgstr "Oktalna vrijednost iz arhive %.*s je izvan %s raspona" # FIXME -- obsolescent -- TM -#: src/list.c:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "Arhiva sadrži zastarjela base-64 zaglavlja" # FIXME?? -#: src/list.c:852 +#: src/list.c:853 #, 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 granica" +msgstr "Arhiva potpisana s base-64 stringom %s je izvan raspona %s" -#: src/list.c:883 +#: src/list.c:884 #, c-format msgid "Archive base-256 value is out of %s range" -msgstr "Base-256 vrijednost iz arhive je izvan %s granica" +msgstr "Base-256 vrijednost iz arhive je izvan %s raspona" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:912 +#: src/list.c:913 #, 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, a očekuje se numerička %s vrijednost" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:934 +#: src/list.c:935 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Vrijednost %s iz arhive je izvan %s raspona %s..%s" -#: src/list.c:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " veza na %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " nepoznata vrsta datoteke %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Dugačka veza--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Dugačko ime--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" -msgstr "--Zaglavlje dijela arhive--\n" +msgstr "--Zaglavlje sveska--\n" # FIXME -- clarify against source -- TM -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" -msgstr "--Nastavljeno na bajtu %s--\n" +msgstr "--Nastavlja se na bajtu %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" -msgstr "Stvaram direktorij:" +msgstr "Kreiranje direktorija:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" -msgstr "Mijenjam ime %s u %s\n" +msgstr "%s preimenovan u %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" -msgstr "%s: Ne mogu preimenovati u %s" +msgstr "%s: Nije moguće preimenovati u %s" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" -msgstr "Mijenjam ime %s natrag u %s\n" +msgstr "%s preimenovan natrag u %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" -msgstr "%s: Datoteka uklonjena prije nego što smo ju pročitali" +msgstr "%s: Datoteka je uklonjena prije nego što smo je pročitana" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" -msgstr "proces dijete" +msgstr "dijete-proces (potomački proces)" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "međuprocesni kanal" # bp: možda Izbor imena lokalne datoteke -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" -msgstr "Odabir lokalnih datoteka:" +msgstr "Selekcija datoteka za arhiviranje u lokalne arhive:" -#: src/names.c:72 +#: src/names.c:71 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)" +msgstr "doda DATOTEKU u arhivu (korisno ako DATOTECI ime počinje s crticom)" -#: src/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "DIR" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" -msgstr "promijeni u direktorij DIR" +msgstr "prijeđe u direktorij DIR" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" -msgstr "otkrij imena za otpakiranje ili napravi iz DATOTEKE" +msgstr "" +"učita iz DATOTEKE imena elemenata za izdvajanje iz arhive ili kreiranje " +"arhive" # bp: čita s NULL završena imena.... -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" -msgstr "-T čita praznim znakom završena imena, implicira --verbatim-files-from" +msgstr "-T čita s nul-znakom završena imena, implicira --verbatim-files-from" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" -msgstr "onemogući utjecaj prethodne opcije --null" +msgstr "poništava učinak prethodne --null opcije" # original TK: ukloni navode imena datoteka pročitanih s -T (zadano) -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" -msgstr "ukloni navodnike s imena datoteka ili članova (zadano)" +msgstr "ne citira imena ulazne datoteke ili člana (zadano); v. GNU tar manual" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" -msgstr "ne uklanjaj navodnike s imena datoteka ili članova" +msgstr "citira imena ulaznih datoteka ili članova; v. GNU tar manual" -#: src/names.c:87 -#, fuzzy +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" -msgstr "-T doslovno čita nazive datoteka (ne gleda na opcije)" +msgstr "-T doslovno čita imena datoteka (ne bavi se opcijama)" # bp: novi prijevod, stari fuziran. -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" -msgstr "-T tretira nazive datoteka koji počinju s „-“ kao opcije (zadano)" +msgstr "" +"-T tretira nazive datoteka koji počinju s crticom (-) kao opcije (zadano)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "UZORAK" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" -msgstr "izostavi datoteke koje odgovaraju UZORKU" +msgstr "isključi datoteke podudarene s UZORKOM" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" -msgstr "izostavi uzorke navedene u DATOTECI" +msgstr "isključi datoteke podudarene s uzorcima u DATOTECI" -#: src/names.c:96 +#: src/names.c:95 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" +"isključi sadržaj direktorija koji sadrže CACHEDIR.TAG osim same CACHEDIR.TAG " +"datoteke; v. GNU tar manual" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" -msgstr "izostavi sve unutar direktorija koji sadrže CACHEDIR.TAG" +msgstr "isključi sve ispod direktorija koji sadrže CACHEDIR.TAG" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" -msgstr "izostavi direktorije koji sadrže CACHEDIR.TAG" +msgstr "isključi direktorije koji sadrže CACHEDIR.TAG" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" -msgstr "izostavi sadržaj direktorija koji sadrži DATOTEKU osim nje same" +msgstr "isključi sadržaj direktorija koji sadrži DATOTEKU osim same DATOTEKE" # bp: novi msgid; možda treba FILE ne prevađati? # TK: FILE mijenja u DATOTEKA -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "" -"čitaj iz DATOTEKE uzorke izuzeća za svaki direktorij, ako DATOTEKA postoji" +"ako DATOTEKA postoji, čita uzorke za isključenje za svaki direktorij iz " +"DATOTEKE" # bp: novi msgid -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" msgstr "" -"čitaj iz DATOTEKE uzorke izuzeća za svaki direktorij i njegove " -"poddirektorije, ako DATOTEKA postoji" +"ako DATOTEKA postoji, čita uzorke za isključenje za svaki direktorij i " +"njegove poddirektorije iz DATOTEKE" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" -msgstr "izostavi sve iz direktorija koji sadrže DATOTEKU" +msgstr "isključi sve ispod direktorija koji sadrže DATOTEKU" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" -msgstr "izostavi direktorije koji sadrže DATOTEKU" +msgstr "isključi direktorije koji sadrže DATOTEKU" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" -msgstr "izostavi sustavske direktorije kontrole inačice" +msgstr "isključi VCS direktorije; v. GNU tar manual" # bp: novi msgid -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" -msgstr "čitaj uzorke izuzeća iz VCS „ignore“ datoteka" +msgstr "uzorke za isključenje čita iz VCS ignore datoteka" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" -msgstr "izostavi sigurnosne kopije i datoteke zaključavanja" +msgstr "isključi backup (osiguranje) i zaključane datoteke" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" -msgstr "rekurzivno uđi u direktorije (zadano)" +msgstr "rekurzivno ulazi u direktorije (zadano)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" -msgstr "izbjegavaj automatsko spuštanje u direktorije" +msgstr "onemogući rekurzivni ulaz u direktorije" -#: src/names.c:130 +#: src/names.c:129 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):" +"Opcije za kontrolu poduraranja imena datoteka s uzorcima (vrijedi za " +"isključenje i za uključenje):" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" -msgstr "uzorci podudaraju početak naziva datoteke" +msgstr "uzorak mora podudariti početak imena datoteke" # bp: novi msgid -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" -msgstr "uzorci podudaraju iza svakog „/“ (zadano za izuzeća)" +msgstr "" +"uzorak može podudarati ikoji dio imena datoteke iza svakog „/“ (zadano za " +"isključenje)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" -msgstr "zanemari veličinu slova" +msgstr "ne razlikuje mala od velikih slova" # bp: novi msgid -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" -msgstr "podudaranje razlikuje mala/velika slova (zadano)" +msgstr "razlikuje mala od velikih slova (zadano)" # bp: novi msgid -# u wget.po naišao sam da je „wildcard“ višeznačnik, pa ga ovdje koristim. -#: src/names.c:141 +# u wget.po naišao sam da je „wildcard“ načnik, pa ga ovdje koristim. +#: src/names.c:140 msgid "use wildcards (default for exclusion)" -msgstr "upotrijebi višeznačnike (zadano za izuzeća)" +msgstr "rabi višeznačnike (zadano za isključenje)" # bp: novi msgid -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" -msgstr "doslovno podudaranje znakovnog niza (string)" +msgstr "striktno podudaranje stringova" # bp: novi msgid -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" -msgstr "višeznačnici podudaraju „/“ (zadano za izuzeća)" +msgstr "višeznačnik podudara „/“ (zadano za isključenje)" # originalno TK: Dio arhive %s ne odgovara %s -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" -msgstr "višeznačnici ne podudaraju „/“" +msgstr "višeznačnik ne podudara „/“" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" +"Sljedeće opcije se koriste iza neobveznih argumenata za kreiranje ili " +"ažuriranje arhive. Te opcije su ovisne o položaju i utječu samo na argumente " +"koji ih slijede. Trebate ih ispravno poredati." -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" -msgstr "" +msgstr "-C %s nema učinka" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" -msgstr "" +msgstr "--%s %s nema učinka" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" -msgstr "" +msgstr "--%s nema učinka" # original TK naredba %s nije uspjela -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "naredbeni redak" # original TK %s: popis datoteka je već pročitan -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" -msgstr "%s: zatražen popis datoteka od %s je već pročitan %s" +msgstr "%s: zatražen popis datoteka od %s je već pročitan iz %s" # original TK ne mogu postaviti vrijeme na „%s“ -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" -msgstr "niz (string) „%s“: %s ne može se rastavit" +msgstr "nije moguće rastaviti string „%s“: %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" -msgstr "%s: pročitano ime datoteke sadrži prazan znak" +msgstr "%s: pročitano ime datoteke sadrži NULL znak" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" -msgstr "Znakovi za uspoređivanje uzoraka korišteni u imenima datoteka" +msgstr "Imena datoteka sadrže višeznačnike" -#: src/names.c:1360 +#: src/names.c:1390 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" +"Rabite --wildcards da omogućite podudaranje s uzorcima, ili --no-wildcards " +"da prigušite ovo upozorenje" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" -msgstr "%s: Nije pronađen u arhivi" +msgstr "%s: Nije pronađeno u arhivi" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" -msgstr "%s: Potrebna pojava nije pronađen u arhivi" +msgstr "%s: Zatraženi nalaz nije pronađen u arhivi" # FIXME -- clean against source! (TM) -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" -msgstr "Oznaka arhive ne odgovara" +msgstr "Neslaganje etiketa arhiva" -#: src/names.c:1717 +#: src/names.c:1747 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" +"Korištenje opcije -C u popisu datoteka nije dopušteno uz --listed-incremental" -#: src/names.c:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" -msgstr "Samo jedna opcija -C je dozvoljena uz --listed-incremental" +msgstr "Samo jedna opcija -C je dopuštena uz --listed-incremental" -#: src/tar.c:88 +#: src/tar.c:87 #, c-format msgid "Options '%s' and '%s' both want standard input" -msgstr "Opcije „-%s“ i „-%s“ obje zahtijevaju standardni ulaz" +msgstr "Obje opcije „-%s“ i „-%s“ zahtijevaju standardni ulaz" -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" -msgstr "%s: Neispravan oblik arhive" +msgstr "%s: Neispravni format arhive" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" -msgstr "GNU mogućnosti zatražene na nekompatibilnom obliku arhive" +msgstr "Zatražene su GNU značajke za nekompatibilni format arhive" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "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." +"Nepoznat stil citiranja „%s“. Pokušajte „%s --quoting-style=help“ za popis." #: src/tar.c:354 msgid "" @@ -1639,13 +1651,13 @@ 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“ sprema više datoteka u arhivu na vrpci ili disku i može vratiti " +"GNU tar sprema puno datoteka u arhivu na vrpcu ili na disk i može vratiti " "pojedinačne datoteke iz arhive.\n" "\n" "Primjeri:\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" +" tar -cf arhiva.tar foo bar # Kreira arhiva.tar od datoteka foo i bar\n" +" tar -tvf arhiva.tar # Izlista sve datoteke sadržane u arhiva.tar\n" +" tar -xf arhiva.tar # Izdvoji sve datoteke iz arhiva.tar\n" #: src/tar.c:363 msgid "" @@ -1658,99 +1670,98 @@ msgid "" " nil, existing numbered if numbered backups exist, simple otherwise\n" " never, simple always make simple backups\n" msgstr "" -"Sufiks sigurnosne kopije je `~', osim ako je postavljen drugi s --suffix " -"ili\n" -"SIMPLE_BACKUP_SUFFIX. Kontrola inačice može biti postavljena s --backup\n" -"ili s VERSION_CONTROL, vrijednosti su:\n" +"Sufiks za osiguranje (sigurnosne kopije) je „~“, ako nije promijenjen s\n" +"opcijom --suffix ili SIMPLE_BACKUP_SUFFIX.\n" +"Varijantu kontrole postavite ili s opcijom --backup, ili s VERSION_CONTROL,\n" +"a moguće vrijednosti za KONTROLU su:\n" "\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" +" none, off ne praviti osiguranje (sigurnosne kopije)\n" +" t, numbered radi numerirane kopije osiguranja\n" +" nil, existing numerirane, ako postoje numerirane kopije, inače " +"jednostavne\n" +" never, simple uvijek radi jednostavno osiguranje\n" #: src/tar.c:393 msgid "Main operation mode:" -msgstr "Glavni način rada:" +msgstr "Osnovni način rada:" #: src/tar.c:396 msgid "list the contents of an archive" -msgstr "ispiši sadržaj arhive" +msgstr "izlista sadržaj arhive" #: src/tar.c:398 msgid "extract files from an archive" -msgstr "ekstrahiraj datoteke iz arhive" +msgstr "izdvoji datoteke iz arhive" #: src/tar.c:401 msgid "create a new archive" -msgstr "napravi novu arhivu" +msgstr "kreira novu arhivu" #: src/tar.c:403 msgid "find differences between archive and file system" -msgstr "nađi razlike između arhive i datotečnog sustava" +msgstr "traži razlike između arhive i datotečnoga sustava" #: src/tar.c:406 msgid "append files to the end of an archive" -msgstr "dodaj datoteke na kraj arhive" +msgstr "pridoda datoteke na kraj arhive" #: src/tar.c:408 msgid "only append files newer than copy in archive" -msgstr "dodaj samo datoteke novije od kopije u arhivi" +msgstr "doda datoteke, ali samo ako su novije od kopija u arhivi" #: src/tar.c:410 msgid "append tar files to an archive" -msgstr "dodaj tar datoteke u arhivu" +msgstr "doda tar datoteke u arhivu" #: src/tar.c:413 msgid "delete from the archive (not on mag tapes!)" -msgstr "izbriši iz arhive (ne na magnetskim vrpcama!)" +msgstr "ukloni iz arhive (ne i za magnetske vrpce!)" #: src/tar.c:415 msgid "test the archive volume label and exit" -msgstr "provjeri oznaku dijela arhive i izađi" +msgstr "testira etiketu sveska arhive, i iziđe" #: src/tar.c:420 msgid "Operation modifiers:" -msgstr "Modifikatori operacija:" +msgstr "Opcije za dodatno podešavanje:" #: src/tar.c:423 msgid "handle sparse files efficiently" -msgstr "učinkovito upravljaj raštrkanim datotekama" +msgstr "učinkovito obradi raspršene (sparse) datoteke" # bp: novi msgid #: src/tar.c:424 msgid "TYPE" -msgstr "Metoda" +msgstr "POSTUPAK" # bp: novi msgid #: src/tar.c:425 msgid "technique to detect holes" -msgstr "metoda za otkrivanje rupa" +msgstr "postupak za otkrivanje rupa" #: src/tar.c:426 msgid "MAJOR[.MINOR]" -msgstr "GLAVNI[.SPOREDNI]" +msgstr "MAJOR[.MINOR]" #: src/tar.c:427 msgid "set version of the sparse format to use (implies --sparse)" -msgstr "" -"postavi inačicu raštrkanog oblika za korištenje (podrazumijeva --sparse)" +msgstr "inačica sparse formata za upotrebu (implicira --sparse)" #: src/tar.c:429 msgid "handle old GNU-format incremental backup" -msgstr "upravljaj inkrementalnim sigurnosnim kopijama starog GNU oblika" +msgstr "obradi inkrementalno osiguranje (backup) u starom GNU-formatu" #: src/tar.c:431 msgid "handle new GNU-format incremental backup" -msgstr "upravljaj inkrementalnim sigurnosnim kopijama novog GNU oblika" +msgstr "obradi inkrementalno osiguranje (backup) u novom GNU-formatu" #: src/tar.c:433 msgid "dump level for created listed-incremental archive" -msgstr "razina ispisa za stvorene ispisane-inkrementalne arhive" +msgstr "BROJ je dump level za arhivu kreiranu s --listed-incremental opcijom" #: src/tar.c:435 msgid "do not exit with nonzero on unreadable files" -msgstr "ne izlazi s kodom različitim od nule u slučaju nečitljivih datoteka" +msgstr "ne izlazi s neuspjehom zbog nečitljivih datoteka" #: src/tar.c:437 msgid "" @@ -1759,146 +1770,146 @@ msgid "" "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." +"procesira samo 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 na naredbenom retku, ili uz opciju -T. " +"Zadano BROJ=1" #: src/tar.c:443 msgid "archive is seekable" -msgstr "arhiva se može pretraživati" +msgstr "arhiva dopušta skok na poziciju" #: src/tar.c:445 msgid "archive is not seekable" -msgstr "arhiva se ne može pretraživati" +msgstr "arhiva ne dopušta skok na poziciju" #: src/tar.c:447 msgid "do not check device numbers when creating incremental archives" -msgstr "ne provjeravaj brojeve uređaja pri stvaranju inkrementalnih arhiva" +msgstr "ne provjerava broj uređaja pri kreiranju inkrementalnih arhiva" #: src/tar.c:450 msgid "check device numbers when creating incremental archives (default)" -msgstr "provjeri brojeve uređaja pri stvaranju inkrementalnih arhiva (zadano)" +msgstr "provjerava broj uređaja pri stvaranju inkrementalnih arhiva (zadano)" #: src/tar.c:456 msgid "Overwrite control:" -msgstr "Upravljanje prepisivanjem:" +msgstr "Kontrola prepisivanja (pisanjem preko) postojećih datoteka:" #: src/tar.c:459 msgid "attempt to verify the archive after writing it" -msgstr "pokušaj provjeriti arhivu nakon pisanja u nju" +msgstr "isproba arhivu nakon što je zapisana" #: src/tar.c:461 msgid "remove files after adding them to the archive" -msgstr "ukloni datoteke nakon dodavanja u arhivu" +msgstr "izbriše datoteke nakon što su dodane u arhivu" # bp: fuzirano #: src/tar.c:463 msgid "don't replace existing files when extracting, treat them as errors" msgstr "" -"ne zamjenjuj postojeće datoteke pri ekstrakciji, tretiraj ih kao pogreške" +"ne prepiše postojeće datoteke prilikom izdvajanja, tretira ih kao greške" # bp: fuzirano, dodano #: src/tar.c:466 msgid "don't replace existing files when extracting, silently skip over them" -msgstr "ne zamjenjuj postojeće datoteke pri ekstrakciji, tiho ih preskoči" +msgstr "" +"ne prepiše postojeće datoteke prilikom izdvajanja, jednostavno ih preskoči" #: src/tar.c:469 msgid "don't replace existing files that are newer than their archive copies" -msgstr "ne zamjenjuj postojeće datoteke novije od kopija u arhivi" +msgstr "" +"ne prepiše postojeće datoteke ako su novije od njihovih kopija u arhivi" #: src/tar.c:471 msgid "overwrite existing files when extracting" -msgstr "prepiši postojeće datoteke pri ekstrakciji" +msgstr "prepiše postojeće datoteke prilikom izdvajanja" #: src/tar.c:473 msgid "remove each file prior to extracting over it" -msgstr "ukloni svaku datoteku prije ekstrakcije preko nje" +msgstr "izbriše svaku datoteku prije izdvajanja preko nje same" #: src/tar.c:475 msgid "empty hierarchies prior to extracting directory" -msgstr "isprazni hijerarhije prije ekstrahiranja direktorija" +msgstr "rekurzivno briše direktorije prije izdvajanja direktorija iz arhive" #: src/tar.c:477 msgid "preserve metadata of existing directories" -msgstr "očuvaj metapodatke postojećih direktorija" +msgstr "sačuva metapodatke postojećih direktorija" #: src/tar.c:479 msgid "overwrite metadata of existing directories when extracting (default)" -msgstr "prepiši metapodatke postojećih direktorija pri ekstrakciji (zadano)" +msgstr "" +"prepiše metapodatke postojećih direktorija prilikom izdvajanja (zadano)" # original TK prepiši postojeće datoteke pri ekstrakciji #: src/tar.c:482 msgid "preserve existing symlinks to directories when extracting" -msgstr "očuvaj postojeće simboličke veze na direktorije prilikom ekstrahiranja" +msgstr "sačuva postojeće simboličke veze na direktorije prilikom izdvajanja" # bp: novi msgid #: src/tar.c:485 msgid "create a subdirectory to avoid having loose files extracted" msgstr "" -"napravi poddirektorij radi izbjegavanja gubitka datoteka prilikom " -"ekstrahiranja" +"napravi poddirektorij da izbjegne izdvajanje neželjenih datoteka (tarbomb)" #: src/tar.c:491 msgid "Select output stream:" -msgstr "Odaberi izlazni tok podataka:" +msgstr "Izbor izlaznog potoka (stream):" #: src/tar.c:494 msgid "extract files to standard output" -msgstr "ekstrahiraj datoteke na standardni izlaz" +msgstr "izdvoji datoteke na standardni izlaz" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "NAREDBA" #: src/tar.c:496 msgid "pipe extracted files to another program" -msgstr "proslijedi ekstrahirane datoteke drugom programu kroz cjevovod" +msgstr "proslijedi izdvojene datoteke kroz cijev u program NAREDBA" #: src/tar.c:498 msgid "ignore exit codes of children" -msgstr "zanemari izlazne kodove djece" +msgstr "ignorira izlazne kodove potomačkih procesa" #: src/tar.c:500 msgid "treat non-zero exit codes of children as error" -msgstr "postupaj s izlaznim kodovima djece različitim od nule kao s greškama" +msgstr "tretira izlazne kodove potomka različite od nule kao grešku" #: src/tar.c:505 msgid "Handling of file attributes:" -msgstr "Upravljanje svojstvima datoteka:" +msgstr "Manipuliranje s atributima datoteka:" #: src/tar.c:508 msgid "force NAME as owner for added files" -msgstr "prisilno postavi IME kao vlasnika dodanih datoteka" +msgstr "postavi IME kao vlasnika dodanih datoteka" #: src/tar.c:510 msgid "force NAME as group for added files" -msgstr "prisilno postavi IME kao grupu dodanih datoteka" +msgstr "postavi IME kao grupu dodanih datoteka" -# bp: novi msgid -# FILE u DATOTEKA, jer je TK to radio ranije -# bp: možda je bolje ne prevoditi FILE #: src/tar.c:512 msgid "use FILE to map file owner UIDs and names" -msgstr "upotrijebi DATOTEKU za usporedbu UID-ova vlasnika datoteke i imena" +msgstr "preslika korisničke UID-ove i imena iz DATOTEKE na arhivirane datoteke" # bp: novi msgid #: src/tar.c:514 msgid "use FILE to map file owner GIDs and names" -msgstr "upotrijebi DATOTEKU za usporedbu GID-ova i imena" +msgstr "preslika korisničke GID-ove i imena iz DATOTEKE na arhivirane datoteke" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "DATUM-ILI-DATOTEKA" #: src/tar.c:516 msgid "set mtime for added files from DATE-OR-FILE" -msgstr "postavi ‘mtime’ dodanih datoteka iz DATUM-ILI-DATOTEKA" +msgstr "" +"primijeni vrijeme izmjene (mtime) na dodane datoteke iz DATUM-ILI-DATOTEKA" #: src/tar.c:518 msgid "" "only set time when the file is more recent than what was given with --mtime" -msgstr "postavi vrijeme samo ako je datoteka novija od opcije „--mtime“" +msgstr "primijeni vrijeme samo ako je datoteka novija od --mtime" #: src/tar.c:519 msgid "CHANGES" @@ -1906,11 +1917,11 @@ msgstr "PROMJENE" #: src/tar.c:520 msgid "force (symbolic) mode CHANGES for added files" -msgstr "prisili (simboličke) PROMJENE moda dodanih datoteka" +msgstr "prisilno primjeni (simboličke) PROMJENE na dodane datoteke" #: src/tar.c:522 msgid "METHOD" -msgstr "METODA" +msgstr "NAČIN" #: src/tar.c:523 msgid "" @@ -1918,55 +1929,56 @@ msgid "" "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')" +"očuvati vremena pristupa arhiviranih datoteka vraćanjem vremena nakon " +"čitanja (NAČIN='replace'; zadano), ili ne postavljanjem vremena " +"(NAČIN='system')" #: src/tar.c:527 msgid "don't extract file modified time" -msgstr "ne ekstrahiraj vrijeme uređivanja datoteke" +msgstr "ne izdvaja vrijeme izmjene datoteke" #: src/tar.c:529 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)" +"pokuša izdvojiti datoteke s istim vlasništvom kakvo je u arhivi (zadano za " +"administratora)" #: src/tar.c:531 msgid "extract files as yourself (default for ordinary users)" -msgstr "otpakiraj datoteke kao trenutni korisnik (zadano za obične korisnike)" +msgstr "datoteke izdvoji kao svoje vlastite (zadano za obične korisnike)" #: src/tar.c:533 msgid "always use numbers for user/group names" -msgstr "uvijek koristi brojke za imena korisnika/grupe" +msgstr "uvijek rabi brojke umjesto imena za korisnika/grupu" #: src/tar.c:535 msgid "extract information about file permissions (default for superuser)" -msgstr "izdvoji informacije o dozvolama datoteka (zadano za administratora)" +msgstr "" +"izvadi informacije o pravima dostupa datoteci (zadano za administratora)" #: src/tar.c:539 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)" +"primijeni korisnikov umask prilikom izdvajanja prava dostupa iz arhive " +"(zadano za obične korisnike)" # bp: novi msgid #: src/tar.c:541 msgid "" "member arguments are listed in the same order as the files in the archive" -msgstr "članovi argument su navedeni u istom poretku kao datoteke u arhivi" +msgstr "argumenti članova su popisani u istom poretku kao datoteke u arhivi" #: src/tar.c:545 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" +"odgodi postavljanje vremena izmjene i prava dostupa izdvojenih direktorija " +"do svršetka izdvajanja" #: src/tar.c:548 msgid "cancel the effect of --delay-directory-restore option" @@ -1980,26 +1992,26 @@ msgstr "POREDAK" # bp: novi msid #: src/tar.c:551 msgid "directory sorting order: none (default), name or inode" -msgstr "sortiranje direktorija: none (zadano), „name“ ili „inode“" +msgstr "poreda direktorije po: none (zadano), name ili inode" # bp: novi msgid #: src/tar.c:553 msgid "directory sorting order: none (default) or name" -msgstr "sortiranje direktorija: none (zadano) ili „name“" +msgstr "poreda direktorije po: none (zadano) ili name" # bp: fuzirano; dodano #: src/tar.c:560 msgid "Handling of extended file attributes:" -msgstr "Upravljanje proširenim svojstvima datoteka:" +msgstr "Manipuliranje s proširenim atributima datoteka:" # bp: novi msgid #: src/tar.c:563 msgid "Enable extended attributes support" -msgstr "Omogući podršku za proširenje svojstava datoteka" +msgstr "Omogući podršku za proširene atribute" #: src/tar.c:565 msgid "Disable extended attributes support" -msgstr "Onemogući podršku za proširenje svojstava datoteka" +msgstr "Onemogući podršku za proširene atribute" # bp: sljedećih sedam novih mgsgid-ova #: src/tar.c:566 src/tar.c:568 @@ -2008,31 +2020,31 @@ msgstr "MASKA" #: src/tar.c:567 msgid "specify the include pattern for xattr keys" -msgstr "specificiraj uključenje uzorak za xattr ključeve" +msgstr "specificira uključi-uzorak za xattr ključeve" #: src/tar.c:569 msgid "specify the exclude pattern for xattr keys" -msgstr "specificiraj izuzeće uzorak za xattr ključeve" +msgstr "specificira isključi-uzorak za xattr ključeve" #: src/tar.c:571 msgid "Enable the SELinux context support" -msgstr "Omogući podršku za SELinux kontekst" +msgstr "Omogući SELinux kontekstnu podršku" #: src/tar.c:573 msgid "Disable the SELinux context support" -msgstr "Onemogući podršku za SELinux kontekst" +msgstr "Onemogući SELinux kontekstnu podršku" #: src/tar.c:575 msgid "Enable the POSIX ACLs support" -msgstr "Omogući podršku za POSIX ACLs" +msgstr "Omogući podršku za POSIX ACLs" #: src/tar.c:577 msgid "Disable the POSIX ACLs support" -msgstr "Onemogući podršku za POSIX ACLs" +msgstr "Onemogući podršku za POSIX ACLs" #: src/tar.c:582 msgid "Device selection and switching:" -msgstr "Odabir i zamjena uređaja:" +msgstr "Izbor i zamjena uređaja:" #: src/tar.c:584 msgid "ARCHIVE" @@ -2040,28 +2052,28 @@ msgstr "ARHIVA" #: src/tar.c:585 msgid "use archive file or device ARCHIVE" -msgstr "koristi datoteku ili uređaj ARHIVA" +msgstr "rabi arhiviranu datoteku ili uređaj ARHIVA" #: src/tar.c:587 msgid "archive file is local even if it has a colon" -msgstr "datoteka arhive je lokalna iako sadrži dvotočje" +msgstr "arhivirana datoteka je lokalna iako sadrži dvotočku „:“" #: src/tar.c:589 msgid "use given rmt COMMAND instead of rmt" -msgstr "koristi navedenu rmt NAREDBU umjesto rmt" +msgstr "rabi navedenu rmt NAREDBU umjesto rmt" #: src/tar.c:591 msgid "use remote COMMAND instead of rsh" -msgstr "koristi udaljenu NAREDBU umjesto rsh" +msgstr "rabi udaljenu NAREDBU umjesto rsh" #: src/tar.c:595 msgid "specify drive and density" -msgstr "navedi uređaj i gustoću" +msgstr "specifikacija uređaja i gustoće pisanja" # FIXME -- volume -- find more suitable (ask others) -- TM #: src/tar.c:609 msgid "create/list/extract multi-volume archive" -msgstr "napravi/ispiši/ekstrahiraj višedjelnu arhivu" +msgstr "napraviti/izlistati/izdvojiti višesvezačne arhive" #: src/tar.c:611 msgid "change tape after writing NUMBER x 1024 bytes" @@ -2069,15 +2081,15 @@ msgstr "promijeni vrpcu nakon zapisivanja BROJ x 1024 bajtova" #: src/tar.c:613 msgid "run script at end of each tape (implies -M)" -msgstr "pokreni skriptu na kraju svake vrpce (podrazumijeva -M)" +msgstr "pokrene skriptu na kraju svake vrpce (podrazumijeva -M)" #: src/tar.c:616 msgid "use/update the volume number in FILE" -msgstr "koristi/ažuriraj broj dijela arhive u DATOTECI" +msgstr "rabi/ažurira broj sveska u DATOTECI" #: src/tar.c:621 msgid "Device blocking:" -msgstr "Podjela uređaja u blokove:" +msgstr "Uređaj i blokovi:" #: src/tar.c:623 msgid "BLOCKS" @@ -2089,51 +2101,51 @@ msgstr "BLOKOVI x 512 bajtova po zapisu" #: src/tar.c:626 msgid "NUMBER of bytes per record, multiple of 512" -msgstr "BROJ bajtova po zapisu, višekratnik 512" +msgstr "BROJ bajtova po zapisu, višekratnik od 512" #: src/tar.c:628 msgid "ignore zeroed blocks in archive (means EOF)" -msgstr "zanemari blokove u arhivi pretvorene u nulu (znači EOF)" +msgstr "ignorira blokove s nulom u arhivi (to jest EOF)" #: src/tar.c:630 msgid "reblock as we read (for 4.2BSD pipes)" -msgstr "ponovo napravi blokove pri čitanju (za 4.2BSD cjevovode)" +msgstr "obnovi blokove u tijeku čitanja (za 4.2BSD cijevi)" #: src/tar.c:635 msgid "Archive format selection:" -msgstr "Odabir oblika arhive:" +msgstr "Selekcija formata arhive:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" -msgstr "OBLIK" +msgstr "FORMAT" #: src/tar.c:638 msgid "create archive of the given format" -msgstr "stvori arhivu zadanog oblika" +msgstr "kreira arhivu danog formata" #: src/tar.c:640 msgid "FORMAT is one of the following:" -msgstr "OBLIK je jedan od sljedećih:" +msgstr "FORMAT je jedan od:" #: src/tar.c:641 msgid "old V7 tar format" -msgstr "stari V7 tar oblik" +msgstr "stari format tar V7" #: src/tar.c:644 msgid "GNU format as per tar <= 1.12" -msgstr "GNU oblik za tar <= 1.12" +msgstr "GNU format za tar <= 1.12" #: src/tar.c:646 msgid "GNU tar 1.13.x format" -msgstr "GNU tar 1.13.x oblik" +msgstr "GNU tar 1.13.x format" #: src/tar.c:648 msgid "POSIX 1003.1-1988 (ustar) format" -msgstr "POSIX 1003.1-1988 (ustar) oblik" +msgstr "POSIX 1003.1-1988 (ustar) format" #: src/tar.c:650 msgid "POSIX 1003.1-2001 (pax) format" -msgstr "POSIX 1003.1-2001 (pax) oblik" +msgstr "POSIX 1003.1-2001 (pax) format" #: src/tar.c:651 msgid "same as pax" @@ -2149,11 +2161,11 @@ msgstr "isto kao --format=posix" #: src/tar.c:658 msgid "keyword[[:]=value][,keyword[[:]=value]]..." -msgstr "ključna_riječ[[:]=vrijednost][,ključna_riječ[[:]=vrijednost]]..." +msgstr "keyword[[:]=vrijednost][,keyword[[:]=vrijednost]]..." #: src/tar.c:659 msgid "control pax keywords" -msgstr "kontrolne pax ključne riječi" +msgstr "kontrolira pax ključne riječi" #: src/tar.c:660 msgid "TEXT" @@ -2164,20 +2176,20 @@ 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." +"kreira arhivu s imenom sveska TEKST; pri listanju/izdvajanju rabi TEKST kao " +"globbing uzorak za ime sveska" #: src/tar.c:666 msgid "Compression options:" -msgstr "Opcije kompresije:" +msgstr "Opcije za kompresiju:" #: src/tar.c:668 msgid "use archive suffix to determine the compression program" -msgstr "koristi sufiks arhive za određivanje programa za kompresiju" +msgstr "arhivin sufiks određuje program za kompresiju" #: src/tar.c:670 msgid "do not use archive suffix to determine the compression program" -msgstr "ne koristi sufiks arhive za određivanje programa za kompresiju" +msgstr "arhivin sufiks ne određuje program za kompresiju" #: src/tar.c:672 msgid "PROG" @@ -2185,261 +2197,264 @@ msgstr "PROGRAM" #: src/tar.c:673 msgid "filter through PROG (must accept -d)" -msgstr "filtriraj kroz PROGRAM (mora prihvaćati -d)" +msgstr "filtrira arhivu kroz PROGRAM (mora prihvatiti -d)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" -msgstr "Odabir lokalnih datoteka:" +msgstr "Selekcija lokalnih datoteka:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" -msgstr "ostani u lokalnom datotečnom sustavu pri stvaranju arhive" +msgstr "kreira arhivu u lokalnom datotečnom sustavu" -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" -msgstr "ne uklanjaj početne „/“ iz imena datoteka" +msgstr "ne skida početne „/“ iz imena datoteka" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" -msgstr "slijedi simboličke veze; arhiviraj i ispiši datoteke na koje pokazuju" +msgstr "slijedi simboličke veze; arhivira i sprema datoteke u koje veze gađaju" -#: src/tar.c:697 +#: src/tar.c:698 msgid "follow hard links; archive and dump the files they refer to" -msgstr "slijedi čvrste veze; arhiviraj i ispiši datoteke na koje se odnose" +msgstr "slijedi čvrste veze; arhivira i sprema datoteke na koje veze pokazuju" -#: src/tar.c:698 +#: src/tar.c:699 msgid "MEMBER-NAME" -msgstr "IME-ELEMENTA" +msgstr "IME-ČLANA" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" -msgstr "započni s elementom IME-ELEMENTA u arhivi" +msgstr "čitanje arhive započeti s članom IME-ČLANA" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" -msgstr "spremi samo datoteke novije od DATUM-ILI-DATOTEKA" +msgstr "sprema samo datoteke novije od DATUM-ILI-DATOTEKA" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "DATUM" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" -msgstr "usporedi datum i vrijeme samo ako su podaci promijenjeni" +msgstr "" +"usporedi datum i vrijeme, ali samo ako su podaci promijenjeni; testira samo " +"mtime" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "KONTROLA" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" -msgstr "napravi sigurnosnu kopiju prije uklanjanja, odaberi KONTROLU inačice" +msgstr "" +"osiguranje (sigurnosne kopije) napravi prije uklanjanja; odaberite varijantu " +"KONTROLE" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" -msgstr "NIZ" +msgstr "STRING" -#: src/tar.c:708 +#: src/tar.c:709 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)" +"osiguranje (sigurnosne kopije) napravi prije uklanjanja, promijeni " +"uobičajeni sufiks „~“ (ako nije promijenjen varijablom okoline " +"SIMPLE_BACKUP_SUFFIX) u STRING" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" -msgstr "Pretvaranja imena datoteka:" +msgstr "Transformacija imena datoteka:" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" -msgstr "ukloni BROJ vodećih komponenti iz imena datoteka pri otpakiranju" +msgstr "skine BROJ vodećih komponenti iz imena datoteka prilikom izdvajanja" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "IZRAZ" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" -msgstr "koristi sed zamjenu IZRAZA za promjenu imena datoteka" +msgstr "transformacija imena datoteka upotrebom sed IZRAZA" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Informativni izlaz:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" -msgstr "opširno ispiši obrađene datoteke" +msgstr "izlista procesirane datoteke" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "KLJUČNA_RIJEČ" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" -msgstr "kontrola upozorenja" +msgstr "upravljanje s upozorenjima" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" -msgstr "prikaži poruke o napretku svakih BROJ zapisa (zadano 10)" +msgstr "poruke o progresu pokaže svakih BROJ zapisa (zadano 10)" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" -msgstr "RADNJA" +msgstr "AKCIJA" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" -msgstr "izvrši RADNJU na svakoj kontrolnoj točki" +msgstr "izvrši AKCIJU na svakoj kontrolnoj točki" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" -msgstr "ispiši poruku ako nisu ispisane sve veze" +msgstr "ispiše poruku ako sve veze nisu arhivirane" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "SIGNAL" -#: src/tar.c:739 +#: src/tar.c:740 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." +"ispiše ukupan broj bajtova nakon obrade arhive; s argumentom - ispiše ukupan " +"broj bajtova nakon primanja ovog SIGNALA. Dopušteni signali su: SIGHUP, " +"SIGQUIT, SIGINT, SIGUSR1 i SIGUSR2; prihvaćaju se također i imena bez SIG " +"prefiksa" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" -msgstr "ispiši vremena uređivanja datoteka u UTC-u" +msgstr "ispiše vremena izmjene datoteka u UTC-u" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" -msgstr "ispiši potpunu rezoluciju vremena datoteke" +msgstr "ispis (u punoj rezoluciji) vremena datoteka" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" -msgstr "pošalji opširan izlaz u DATOTEKU" +msgstr "pošalje opširan izlaz u DATOTEKU" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" -msgstr "prikaži broj bloka u arhivi uz svaku poruku" +msgstr "broj bloka u arhivi u svakoj poruci" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" -msgstr "traži potvrdu svake radnje" +msgstr "pita za potvrdu za svaku akciju" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" -msgstr "prikaži zadane postavke za tar" +msgstr "zadane (defaults) tar postavke" # bp: novi msgid -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" -msgstr "prikaži valjane raspone za snapshot-datoteke polja" +msgstr "valjani rasponi za polja snapshot-datoteke" -#: src/tar.c:759 +#: src/tar.c:760 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 " +"pri listanju ili izdvajanju ispiše svaki direktorij koji se ne podurara s " "uvjetima pretraživanja" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" -msgstr "prikaži imena datoteke ili arhive nakon pretvaranja" +msgstr "imena datoteka ili arhiva nakon transformacije" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "STIL" -#: src/tar.c:765 +#: src/tar.c:766 msgid "set name quoting style; see below for valid STYLE values" -msgstr "" -"postavi stil navođenja imena; pogledajte niže ispravne vrijednosti STILA" +msgstr "stil citiranja imena; pogledajte niže valjane vrijednosti za STIL" -#: src/tar.c:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" -msgstr "dodatno navedi znakove iz NIZA" +msgstr "dodatno uvijek citira i znakove iz STRINGA" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" -msgstr "onemogući navođenje za znakove iz NIZA" +msgstr "onemogući citiranje znakova iz STRINGA" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" -msgstr "Opcije kompatibilnosti:" +msgstr "Opcije za kompatibilnost:" -#: src/tar.c:777 +#: src/tar.c:778 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" +"pri kreiranju isto kao --old-archive; pri izdvajanju isto kao --no-same-owner" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Ostale opcije:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" -msgstr "onemogući korištenje nekih potencijalno opasnih opcija" +msgstr "deaktivira nekoliko potencijalno opasnih opcija" # bp: fuziran, dotjeran #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" -msgstr "%s: ne može se koristiti s %s" +msgstr "„%s“: ne može se rabiti s „%s“" # bp: fuziran, dodana -#: src/tar.c:933 +#: src/tar.c:934 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“, „--delete“ ili „--test-" +"Smijete navesti samo jednu od opcija „-Acdtrux“, „--delete“ ili „--test-" "label“" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" -msgstr "Konfliktne opcije komprimiranja" +msgstr "Konfliktne opcije za kompresiju" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Nepoznato ime signala: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" -msgstr "Datoteka s primjerom datuma nije pronađena" +msgstr "Datoteka s uzorkom datuma nije pronađena" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" -msgstr "Mijenjam %s za nepoznat oblik datuma %s" +msgstr "S(a) %s zamijenjuje se nepoznati format datuma %s" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" -msgstr "Opcija %s: Postupam s datumom „%s“ kao %s" +msgstr "Opcija %s: Datum „%s“ tretira se kao %s" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" -msgstr "filtriraj arhivu kroz %s" +msgstr "filtrira arhivu kroz %s" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" -msgstr "Ispravni argumenti opcije --quoting-style su:" +msgstr "Valjane vrijednosti za opciju --quoting-style su:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2448,205 +2463,205 @@ msgstr "" "Uobičajeno ponašanje *ovog* programa tar je:\n" # bp: fuzirano, dodano -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" -msgstr "Neispravan vlasnik ili grupni ID" +msgstr "Neispravni vlasnik ili ID grupe" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" -msgstr "Neispravan faktor pakiranja u blokove" +msgstr "Neispravna veličina bloka" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Neispravna duljina vrpce" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" -msgstr "Neispravna vrijednost inkrementalne razine" +msgstr "Neispravna vrijednost za inkrement razine" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" -msgstr "Više od jednog datuma praga" +msgstr "Više od jednog praga datuma" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" -msgstr "Neispravna vrijednost raštrkane inačice" +msgstr "Neispravna vrijednost za sparse verziju (sparse version)" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" -msgstr "--atime-preserve='system' nije podržan na ovoj platformi" +msgstr "--atime-preserve='system' opcija nije podržana na ovoj platformi" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" -msgstr "vrijednost --checkpoint nije cjelobrojna" +msgstr "vrijednost --checkpoint nije cijeli broj" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" -msgstr "Neispravan mod naveden opcijom" +msgstr "U opciji je naveden neispravni format prava dostupa" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" -msgstr "Neispravan broj" +msgstr "Neispravni broj" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" -msgstr "Pogrešna veličina zapisa" +msgstr "Neispravna veličina zapisa" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." -msgstr "Veličina sloga mora biti višekratnik %d." +msgstr "Veličina zapisa mora biti višekratnik od %d." -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Neispravan broj elemenata" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" -msgstr "Dozvoljena je samo jedna opcija --to-command" +msgstr "Dopuštena je samo jedna opcija --to-command" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" -msgstr "Izobličen argument gustoće: %s" +msgstr "Deformirani argument gustoće: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Nepoznata gustoća: „%c“" -#: src/tar.c:2066 +#: src/tar.c:2075 #, c-format msgid "Options '-[0-7][lmh]' not supported by *this* tar" -msgstr "*Ovaj* tar ne podržava opcije „-[0-7][lmh]“" +msgstr "Opcije „-[0-7][lmh]“ *ovaj* tar ne podržava" # bp: novi msgid -#: src/tar.c:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: mjesto greške" # bp: fuzirano, dotjerano -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" -msgstr "greška u analiziranju „%s“" +msgstr "greška pri analizi %s" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[DATOTEKA]..." # bp: fuzirano, popravljeno -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" -msgstr "neispravan argument u %s" +msgstr "argumenti, koji nisu opcije u %s" # bp: novi msgid -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" -msgstr "ne mogu rastaviti TAR_OPTIONS: %s" +msgstr "nije moguće razdijeliti TAR_OPTIONS: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "Stara opcija „%c“ zahtijeva argument." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence nema smisla bez popisa datoteka" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" -msgstr "Višedjelne arhive zahtijevaju opciju „-M“" +msgstr "Više arhivskih datoteka zahtijeva opciju „-M“" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "--level nema smisla bez --listed-incremental" -#: src/tar.c:2424 +#: 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 (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)" +msgstr[0] "%s: Etiketa sveska je preduga (ograničenje je %lu bajt)" +msgstr[1] "%s: Etiketa sveska je preduga (ograničenje je %lu bajta)" +msgstr[2] "%s: Etiketa sveska je preduga (ograničenje je %lu bajtova)" -#: src/tar.c:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" -msgstr "Ne mogu provjeriti višedjelne arhive" +msgstr "Nemoguće je provjeriti svezačne arhive" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" -msgstr "Ne mogu provjeriti komprimirane arhive" +msgstr "Nije moguće provjeriti komprimirane arhive" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" -msgstr "Ne mogu koristiti višedjelne komprimirane arhive" +msgstr "Nemoguće je rabiti višesvezačne komprimirane arhive" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" -msgstr "Ne mogu spojiti komprimirane arhive" +msgstr "Nije moguće spojiti komprimirane arhive" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" -msgstr "opcija „--clamp-mtime“ zahtijeva datum specificiran s „--mtime“" +msgstr "opcija --clamp-mtime zahtijeva datum specificiran s --mtime" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" -msgstr "--pax-option se može koristiti samo na POSIX arhivama" +msgstr "--pax-option može se rabiti samo na POSIX arhivama" # bp: fuzirano, popravljeno -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" -msgstr "--acls se može koristiti samo na POSIX arhivama" +msgstr "--acls može se rabiti samo na POSIX arhivama" # bp: fuzirano, popravljeno -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" -msgstr "--selinux se može koristiti samo na POSIX arhivama" +msgstr "--selinux može se rabiti samo na POSIX arhivama" # bp: fuzirano, popravljeno -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" -msgstr "--xattrs se može koristiti samo na POSIX arhivama" +msgstr "--xattrs može se rabiti samo na POSIX arhivama" # bp: novi msgid -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" msgstr "" -"Ne mogu odrediti naziv najvišeg direktorija; zadajte ga eksplicitno s --one-" -"top-level=DIR" +"Nije moguće odrediti ime vrhovnoga direktorija; specificirajte ga " +"eksplicitno s --one-top-level=DIR" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" -msgstr "Duljina dijela arhive ne može biti manja od veličine zapisa" +msgstr "Duljina sveska ne može biti manja od veličine zapisa" # LOL -- TM -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" -msgstr "Kukavički odbijam napraviti praznu arhivu" +msgstr "Pravljenje prazne arhive se kukavički odbija" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Opcije „-Aru“ nisu kompatibilne s „-f -“" # bp: fuzirano, popravljeno -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "" "Morate navesti jednu od opcija „-Acdtrux“, „--delete“ ili „--test-label“" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" -msgstr "Izlazim sa stanjem neuspjeha zbog prethodnih grešaka" +msgstr "Izlaz sa statusom neuspjeha zbog prethodnih grešaka" -#: src/update.c:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" @@ -2654,377 +2669,387 @@ 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:165 +#: src/xheader.c:164 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "Ključna riječ %s je nepoznata ili još nije implementirana" -#: src/xheader.c:174 +#: src/xheader.c:173 msgid "Time stamp is out of allowed range" -msgstr "Vremenska oznaka je izvan dozvoljenih granica" +msgstr "Vremenska oznaka je izvan dopuštenoga raspona" + +#: src/xheader.c:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" -#: src/xheader.c:205 +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" -msgstr "Uzorak %s se ne može koristiti" +msgstr "Uzorak %s se ne može rabiti" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" -msgstr "Ključnu riječ %s se ne može zaobići" +msgstr "Ključnu riječ %s nije moguće prepisati (nadjačati)" + +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" -#: src/xheader.c:668 +#: src/xheader.c:686 msgid "Malformed extended header: missing length" -msgstr "Izobličeno prošireno zaglavlje: nedostaje duljina" +msgstr "Deformirano prošireno zaglavlje: nedostaje duljina" -#: src/xheader.c:677 +#: src/xheader.c:695 #, c-format msgid "Extended header length %*s is out of range" -msgstr "Duljina proširenog zaglavlja %*s je izvan granica" +msgstr "Duljina proširenog zaglavlja %*s je izvan raspona" -#: src/xheader.c:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" -msgstr "Izobličeno prošireno zaglavlje: nedostaje praznina nakon duljine" +msgstr "Deformirano prošireno zaglavlje: nedostaje praznina nakon duljine" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" -msgstr "Izobličeno prošireno zaglavlje: nedostaje znak jednakosti" +msgstr "Deformirano prošireno zaglavlje: nedostaje znak jednakosti" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" -msgstr "Izobličeno prošireno zaglavlje: nedostaje novi redak" +msgstr "Deformirano prošireno zaglavlje: nedostaje novi redak (newline)" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" -msgstr "Zanemarujem nepoznatu ključnu riječ proširenog zaglavlja „%s“" +msgstr "Ignorira se nepoznata ključna riječ proširenog zaglavlja „%s“" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, 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)" +"Predugi generirani par ključna_riječ/vrijednost (ključna_riječ=%s, duljina=" +"%s)" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:1053 +#: src/xheader.c:1071 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Prošireno zaglavlje %s=%s je izvan raspona %s..%s" -#: src/xheader.c:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" -msgstr "Izobličeno prošireno zaglavlje: neispravan %s=%s" +msgstr "Deformirano proširenje zaglavlja: neispravni %s=%s" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" -msgstr "Izobličeno prošireno zaglavlje: suvišan %s=%s" +msgstr "Deformirano prošireno zaglavlje: suvišan %s=%s" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" -msgstr "" -"Izobličeno prošireno zaglavlje: neispravan %s: neočekivan znak razdvajanja %c" +msgstr "Deformirano proširenje zaglavlja: neispravni %s: neočekivani međaš %c" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "" -"Izobličeno prošireno zaglavlje: neispravan %s: neparan broj vrijednosti" +"Deformirano proširenje zaglavlja: neispravni %s: neparan broj vrijednosti" -#: src/checkpoint.c:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" -msgstr "%s: nije ispravno vremensko ograničenje" +msgstr "%s: nije ispravno vremensko ograničenje (timeout)" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" -msgstr "%s: nepoznata radnja kontrolne točke" +msgstr "%s: nepoznata akcija kontrolne točke" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" -msgstr "piši" +msgstr "pisati" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" -msgstr "čitaj" +msgstr "(u/pro)čitati" #. 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:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" -msgstr "Kontrolna točka pisanja %u" +msgstr "Zapisati kontrolnu točku %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:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" -msgstr "Kontrolna točka čitanja %u" +msgstr "Učitati kontrolnu točku %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "" -"genfile rukuje podatkovnim datotekama GNU paxutils skupa testova.\n" +"genfile rukuje podatkovnim datotekama GNU paxutils testsuite.\n" "OPCIJE su:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" -msgstr "Opcije stvaranja datoteka:" +msgstr "Opcije za kreiranje datoteka:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "VELIČINA" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" -msgstr "Napravi datoteku navedene VELIČINE" +msgstr "Kreiranje datoteke dane VELIČINE" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Piši u datoteku IME umjesto na standardni izlaz" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" -msgstr "Čitaj imena datoteka iz DATOTEKE" +msgstr "Učitati imena datoteka iz DATOTEKE" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T čita imena završena praznim (null) znakom" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" -msgstr "Popuni datoteku navedenim UZORKOM. UZORAK je „default“ ili „zeros“" +msgstr "Popuni datoteku s navedenim UZORKOM. UZORAK je „default“ ili „zeros“" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" -msgstr "Veličina bloka za raštrkanu datoteku" +msgstr "Veličina bloka za raspršenu (sparse) datoteku" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" -"Stvori raštrkanu datoteku. Ostatak naredbenog retka zadaje mapu datoteke." +"Generira raspršenu (sparse) datoteku. Ostatak naredbe zada mapu datoteke." -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" -msgstr "POMAK" +msgstr "ODMAK" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" -msgstr "Idi na zadani pomak prije pisanja podataka" +msgstr "Otiđe na zadani odmak prije pisanja podataka" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" -msgstr "Izostavi sve dijagnostičke poruke koje nisu fatalne" +msgstr "Priguši sve dijagnostičke poruke koje nisu fatalne" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" -msgstr "Opcije statistike datoteka:" +msgstr "Opcije za statistiku datoteka:" -#: tests/genfile.c:159 +#: 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: " +"Ispiše sadržaj struct stat za svaku navedenu datoteku. Standardni FORMAT je: " -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Opcije sinkronog izvršavanja:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "OPCIJA" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). 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:172 +#: 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" +msgstr "Izvrši dane akcije (v. dolje) pri dostizanju kontrolne točke BROJ" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" -msgstr "Postavi datum za sljedeću opciju --touch" +msgstr "Zadaje datum za sljedeću --touch opciju" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" -msgstr "Prikaži izvršene kontrolne točke i izlazno stanje NAREDBE" +msgstr "Pokaže izvršene kontrolne točke i izlazni status NAREDBE" -#: tests/genfile.c:183 +#: 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." +"Sinkrono izvršene akcije. Izvršavaju se kad se dostigne broj kontrolne točke " +"dan opcijom --checkpoint." -#: tests/genfile.c:186 +#: 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)" +"veličina nije dana)" -#: tests/genfile.c:190 +#: 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 --" +"Dodati VELIČINU bajtova u DATOTEKU. VELIČINA je zadana prethodnom opcijom --" "length." -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" -msgstr "Ažuriraj vrijeme pristupa i uređivanja DATOTEKE" +msgstr "Ažurira vremena dostupa i izmjene DATOTEKE" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "Izvrši NAREDBU" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" -msgstr "" +msgstr "Izbriše DATOTEKU" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Neispravna veličina: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" -msgstr "Broj izvan dozvoljenih granica: %s" +msgstr "Broj je izvan dopuštenoga raspona: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Negativna veličina: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" -msgstr "stat(%s) nije uspio" +msgstr "nije uspjelo odrediti status od %s" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "tražena duljina datoteke %lu, stvarna %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" -msgstr "stvorena datoteka nije raštrkana" +msgstr "kreirana datoteka nije raspršena (sparse)" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" -msgstr "Greška analize broja kod „%s“" +msgstr "Greška analize broja u blizini „%s“" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" -msgstr "Nepoznat oblik datuma" +msgstr "Nepoznat format datuma" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ARGUMENTI...]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" -msgstr "ne mogu otvoriti „%s“" +msgstr "nije moguće otvoriti „%s“" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" -msgstr "ne mogu tražiti" +msgstr "nije moguće skočiti na poziciju" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "ime datoteke sadrži prazan (null) znak" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, 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" +"nemoguće je generirati raspršene (sparse) datoteke na standardnom izlazu, " +"rabite opciju --file" -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" -msgstr "netočna maska (kod „%s“)" +msgstr "netočna maska (blizu „%s“)" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "Nepoznato polje „%s“" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" -msgstr "ne mogu postaviti vrijeme na „%s“" +msgstr "nije moguće postaviti vrijeme na „%s“" # bp: fuzirano. # možda je „vezu“ suvišna -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" -msgstr "ne mogu ukloniti vezu „%s“" +msgstr "nije moguće skratiti „%s“" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "naredba %s nije uspjela" # bp: fuzirano. # možda je „vezu“ suvišna -#: tests/genfile.c:781 -#, fuzzy, c-format +#: tests/genfile.c:772 +#, c-format msgid "cannot stat `%s'" -msgstr "ne mogu ukloniti vezu „%s“" +msgstr "nije moguće dobiti status od „%s“" -#: tests/genfile.c:785 -#, fuzzy, c-format +#: tests/genfile.c:776 +#, c-format msgid "cannot remove directory `%s'" -msgstr "ne mogu postaviti vrijeme na „%s“" +msgstr "direktorij „%s“ nije moguće ukloniti" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" -msgstr "ne mogu ukloniti vezu „%s“" +msgstr "nije moguće ukloniti vezu (unlink) „%s“" #: tests/genfile.c:918 #, c-format msgid "Command exited successfully\n" -msgstr "Izlaz naredbe uspješan\n" +msgstr "Naredba je uspješno izvršena\n" #: tests/genfile.c:920 #, c-format msgid "Command failed with status %d\n" -msgstr "Naredba nije uspjela sa stanjem %d\n" +msgstr "Naredba nije uspjela; status %d\n" #: tests/genfile.c:924 #, c-format msgid "Command terminated on signal %d\n" -msgstr "Naredba završena signalom %d\n" +msgstr "Naredba okončana signalom %d\n" #: tests/genfile.c:926 #, c-format @@ -3034,574 +3059,17 @@ msgstr "Naredba zaustavljena signalom %d\n" #: tests/genfile.c:929 #, c-format msgid "Command dumped core\n" -msgstr "Naredba je izbacila jezgru\n" +msgstr "Naredba je proizvela core dump\n" #: tests/genfile.c:932 #, c-format msgid "Command terminated\n" -msgstr "Naredba završena\n" +msgstr "Naredba je okončana\n" #: tests/genfile.c:964 #, c-format msgid "--stat requires file names" msgstr "--stat zahtijeva imena datoteka" -#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" -#~ msgstr "%.*s: ARGP_HELP_FMT parametar mora biti pozitivan" - -#~ msgid "%s: option '--%s' doesn't allow an argument\n" -#~ msgstr "%s: opcija „--%s“ ne dozvoljava argument\n" - -#~ msgid "%s: unrecognized option '--%s'\n" -#~ msgstr "%s: neprepoznata opcija „--%s“\n" - -#~ msgid "%s: option '-W %s' is ambiguous\n" -#~ msgstr "%s: opcija „-W %s“ je višeznačna\n" - -#~ msgid "%s: option '-W %s' doesn't allow an argument\n" -#~ msgstr "%s: opcija „-W %s“ ne dozvoljava argument\n" - -#~ msgid "%s: option '-W %s' requires an argument\n" -#~ msgstr "%s: opcija „-W %s“ zahtijeva argument\n" - -#~ msgid "Unlink FILE" -#~ msgstr "Ukloni vezu DATOTEKE" - -#~ msgid "same as both -p and -s" -#~ msgstr "isto kao -p i -s zajedno" - -#~ msgid "" -#~ "The --preserve option is deprecated, use --preserve-permissions --" -#~ "preserve-order instead" -#~ msgstr "" -#~ "Opcija --preserve je zastarjela, koristite --preserve-permissions --" -#~ "preserve-order umjesto nje" - -#~ msgid "Field too long while reading snapshot file" -#~ msgstr "Polje predugačko pri čitanju datoteke snimke stanja" - -#~ msgid "Read error in snapshot file" -#~ msgstr "Greška čitanja u datoteci snimke stanja" - -#~ msgid "Unexpected field value in snapshot file" -#~ msgstr "Neočekivana vrijednost polja u datoteci snimke stanja" - -#~ msgid "Cannot get working directory" -#~ msgstr "Ne mogu saznati trenutni radni direktorij" - -#~ msgid "sort names to extract to match archive" -#~ msgstr "razvrstaj imena za ekstrakciju da odgovaraju arhivi" - -#~ msgid "Invalid group" -#~ msgstr "Neispravna grupa" - -#~ msgid "--occurrence cannot be used in the requested operation mode" -#~ msgstr "--occurrence se ne može koristiti u traženom načinu rada" - -#~ msgid "Cannot combine --listed-incremental with --newer" -#~ msgstr "Ne mogu kombinirati --listed-incremental s --newer" - -#~ msgid "--preserve-order is not compatible with --listed-incremental" -#~ msgstr "--preserve-order nije kompatibilno s --listed-incremental" - -#~ msgid "Extended header length is out of allowed range" -#~ msgstr "Duljina proširenog zaglavlja je izvan dozvoljenih granica" - -#~ msgid "%s: illegal option -- %c\n" -#~ msgstr "%s: ilegalna opcija -- %c\n" - -#~ msgid "block size" -#~ msgstr "veličina bloka" - -#~ msgid "Cannot dup" -#~ msgstr "Neuspjeli dup" - -#~ msgid "Cannot use compressed or remote archives" -#~ msgstr "Ne mogu koristiti komprimirane ili udaljene (remote) arhive" - -#~ msgid "tar (child)" -#~ msgstr "tar (podproces)" - -#~ 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" - -#~ msgid "Member names contain `..'" -#~ msgstr "Imena članova sadrže `..'" - -# FIXME -- clarify this against source -- TM -- didn't help -# Paul E. said this means: -# -# "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" - -#~ 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" - -#~ msgid "Visible longname error" -#~ msgstr "Vidljiva pogreška u dugom imenu" - -#~ msgid "Renamed %s to %s" -#~ msgstr "Preimenovao %s u %s" - -#~ msgid "Symlinked %s to %s" -#~ msgstr "Napravio simbolički link %s prema %s" - -#~ msgid "Unknown demangling command %s" -#~ msgstr "Nepoznata naredba za demangliranje %s" - -#~ 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 " -#~ "License;\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" -#~ "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" - -#~ msgid "" -#~ "GNU `tar' saves many files together into a single tape or disk archive, " -#~ "and\n" -#~ "can restore individual files from the archive.\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" - -#~ msgid "" -#~ "\n" -#~ "If a long option shows an argument as mandatory, then it is mandatory\n" -#~ "for the equivalent short option also. Similarly for optional arguments.\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 " -#~ "opcionalne\n" -#~ "argumente.\n" - -#~ msgid "" -#~ "\n" -#~ "Main operation mode:\n" -#~ " -t, --list list the contents of an archive\n" -#~ " -x, --extract, --get extract files from an archive\n" -#~ " -c, --create create a new archive\n" -#~ " -d, --diff, --compare find differences between archive and file " -#~ "system\n" -#~ " -r, --append append files to the end of an archive\n" -#~ " -u, --update only append files newer than copy in archive\n" -#~ " -A, --catenate append tar files to an archive\n" -#~ " --concatenate same as -A\n" -#~ " --delete delete from the archive (not on mag tapes!)\n" -#~ msgstr "" -#~ "\n" -#~ "Glavni mod rada:\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 " -#~ "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 " -#~ "trakama!)\n" - -#~ msgid "" -#~ "\n" -#~ "Operation modifiers:\n" -#~ " -W, --verify attempt to verify the archive after writing " -#~ "it\n" -#~ " --remove-files remove files after adding them to the " -#~ "archive\n" -#~ " -k, --keep-old-files don't replace existing files when " -#~ "extracting\n" -#~ " --overwrite overwrite existing files when extracting\n" -#~ " --overwrite-dir overwrite directory metadata when " -#~ "extracting\n" -#~ " -U, --unlink-first remove each file prior to extracting over " -#~ "it\n" -#~ " --recursive-unlink empty hierarchies prior to extracting " -#~ "directory\n" -#~ " -S, --sparse handle sparse files efficiently\n" -#~ " -O, --to-stdout extract files to standard output\n" -#~ " -G, --incremental handle old GNU-format incremental backup\n" -#~ " -g, --listed-incremental=FILE\n" -#~ " handle new GNU-format incremental backup\n" -#~ " --ignore-failed-read do not exit with nonzero on unreadable " -#~ "files\n" -#~ msgstr "" -#~ "\n" -#~ "Modifikatori operacija: -W, --verify pokušaj verificirati " -#~ "arhivu nakon pisanja\n" -#~ " --remove-files obriši datoteke nakon njihovog dodavanja " -#~ "arhivi\n" -#~ " -k, --keep-old-files ne zamjenjuj 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 " -#~ "nje\n" -#~ " --recursive-unlink isprazni hijerarhije prije ekstrahiranja u\n" -#~ " direktorij\n" -#~ " -S, --sparse tretiraj efikasno 'sparse' datoteke\n" -#~ " (slabo popunjene datoteke)\n" -#~ " -O, --to-stdout ekstrahiraj datoteke na standardni izlaz\n" -#~ " -G, --incremental obradi inkrementalni backup starog GNU-" -#~ "formata\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" - -# FIXME -- 'volume number' -- TM -#~ msgid "" -#~ "\n" -#~ "Handling of file attributes:\n" -#~ " --owner=NAME force NAME as owner for added files\n" -#~ " --group=NAME force NAME as group for added files\n" -#~ " --mode=CHANGES force (symbolic) mode CHANGES for added " -#~ "files\n" -#~ " --atime-preserve don't change access times on dumped files\n" -#~ " -m, --modification-time don't extract file modified time\n" -#~ " --same-owner try extracting files with the same " -#~ "ownership\n" -#~ " --no-same-owner extract files as yourself\n" -#~ " --numeric-owner always use numbers for user/group names\n" -#~ " -p, --same-permissions extract permissions information\n" -#~ " --no-same-permissions do not extract permissions information\n" -#~ " --preserve-permissions same as -p\n" -#~ " -s, --same-order sort names to extract to match archive\n" -#~ " --preserve-order same as -s\n" -#~ " --preserve same as both -p and -s\n" -#~ msgstr "" -#~ "\n" -#~ "Tretiranje atributa 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" -#~ " 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" -#~ " kao u arhivi\n" -#~ " --no-same-owner ekstrahiraj datoteke pod svojim " -#~ "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" -#~ " --preserve-permissions isto kao -p\n" -#~ " -s, --same-order sortiraj imena kod ekstrakcije da " -#~ "odgovaraju\n" -#~ " arhivi\n" -#~ " --preserve-order isto kao -s\n" -#~ " --preserve isto kao -p i -s zajedno\n" - -#~ msgid "" -#~ "\n" -#~ "Device selection and switching:\n" -#~ " -f, --file=ARCHIVE use archive file or device ARCHIVE\n" -#~ " --force-local archive file is local even if has a " -#~ "colon\n" -#~ " --rsh-command=COMMAND use remote COMMAND instead of rsh\n" -#~ " -[0-7][lmh] specify drive and density\n" -#~ " -M, --multi-volume create/list/extract multi-volume " -#~ "archive\n" -#~ " -L, --tape-length=NUM change tape after writing NUM x 1024 " -#~ "bytes\n" -#~ " -F, --info-script=FILE run script at end of each tape (implies -" -#~ "M)\n" -#~ " --new-volume-script=FILE same as -F FILE\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 " -#~ "arhiviranje\n" -#~ " ARCHIVE\n" -#~ " --force-local ime arhive je lokalno čak 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" -#~ " arhive\n" -#~ " -L, --tape-length=NUM promijeni traku nakon ispisivanja\n" -#~ " NUM x 1024 bajtova\n" -#~ " -F, --info-script=FILE pokreni skriptu na kraju svake trake\n" -#~ " (podrazumijeva -M)\n" -#~ " --new-volume-script=FILE isto kao -F FILE\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 -#~ msgid "" -#~ "\n" -#~ "Device blocking:\n" -#~ " -b, --blocking-factor=BLOCKS BLOCKS x 512 bytes per record\n" -#~ " --record-size=SIZE SIZE bytes per record, multiple of 512\n" -#~ " -i, --ignore-zeros ignore zeroed blocks in archive (means " -#~ "EOF)\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" -#~ " -b, --blocking-factor=BLOCKS BLOCKS x 512 bajtova po zapisu (record)\n" -#~ " --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" -#~ " (za 4.2BSD cjevovode -- pipes)\n" - -#~ msgid "" -#~ "\n" -#~ "Archive format selection:\n" -#~ " -V, --label=NAME create archive with volume name " -#~ "NAME\n" -#~ " PATTERN at list/extract time, a globbing " -#~ "PATTERN\n" -#~ " -o, --old-archive, --portability write a V7 format archive\n" -#~ " --posix write a POSIX format archive\n" -#~ " -j, --bzip2 filter the archive through bzip2\n" -#~ " -z, --gzip, --ungzip filter the archive through gzip\n" -#~ " -Z, --compress, --uncompress filter the archive through compress\n" -#~ " --use-compress-program=PROG filter through PROG (must accept -" -#~ "d)\n" -#~ msgstr "" -#~ "\n" -#~ "Selekcija formata arhive:\n" -#~ " -V, --label=NAME kreiraj arhivu s imenom dijela " -#~ "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" -#~ " -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" - -#~ msgid "" -#~ "\n" -#~ "Local file selection:\n" -#~ " -C, --directory=DIR change to directory DIR\n" -#~ " -T, --files-from=NAME get names to extract or create from file " -#~ "NAME\n" -#~ " --null -T reads null-terminated names, disable -" -#~ "C\n" -#~ " --exclude=PATTERN exclude files, given as a PATTERN\n" -#~ " -X, --exclude-from=FILE exclude patterns listed in FILE\n" -#~ " --anchored exclude patterns match file name start " -#~ "(default)\n" -#~ " --no-anchored exclude patterns match after any /\n" -#~ " --ignore-case exclusion ignores case\n" -#~ " --no-ignore-case exclusion is case sensitive (default)\n" -#~ " --wildcards exclude patterns use wildcards (default)\n" -#~ " --no-wildcards exclude patterns are plain strings\n" -#~ " --wildcards-match-slash exclude pattern wildcards match " -#~ "'/' (default)\n" -#~ " --no-wildcards-match-slash exclude pattern wildcards do not match " -#~ "'/'\n" -#~ " -P, --absolute-names don't strip leading `/'s from file names\n" -#~ " -h, --dereference dump instead the files symlinks point to\n" -#~ " --no-recursion avoid descending automatically in " -#~ "directories\n" -#~ " -l, --one-file-system stay in local file system when creating " -#~ "archive\n" -#~ " -K, --starting-file=NAME begin at file NAME in the archive\n" -#~ msgstr "" -#~ "\n" -#~ "Selekcija lokalnih 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 -" -#~ "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" -#~ " --no-anchored - koje se podudaraju s uzorkom nakon " -#~ "nekog '/'\n" -#~ " --ignore-case izostavljanje ignorira razliku\n" -#~ " između velikih i malih slova\n" -#~ " --no-ignore-case izostavljanje uzima u obzir razliku\n" -#~ " 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" -#~ " --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 " -#~ "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" -#~ " kod kreiranja datoteka\n" -#~ " -K, --starting-file=NAME počni s imenom NAME u arhivi kod " -#~ "ekstrakcije\n" - -#~ msgid "" -#~ " -N, --newer=DATE only store files newer than DATE\n" -#~ " --newer-mtime=DATE compare date and time when data changed " -#~ "only\n" -#~ " --after-date=DATE same as -N\n" -#~ msgstr "" -#~ " -N, --newer=DATE pohranjuj samo datoteke novije od DATE\n" -#~ " --newer-mtime=DATE usporedi datum i vrijeme samo\n" -#~ " ako su se promijenili podaci\n" -#~ " --after-date=DATE isto kao -N\n" - -#~ msgid "" -#~ " --backup[=CONTROL] backup before removal, choose version " -#~ "control\n" -#~ " --suffix=SUFFIX backup before removal, override usual " -#~ "suffix\n" -#~ msgstr "" -#~ " --backup[=CONTROL] backup-iraj prije brisanja, izaberi " -#~ "mehanizam\n" -#~ " kontrole verzije\n" -#~ " --suffix=SUFFIX backup-iraj prije brisanja, promijeni\n" -#~ " standardni sufiks.\n" - -#~ msgid "" -#~ "\n" -#~ "Informative output:\n" -#~ " --help print this help, then exit\n" -#~ " --version print tar program version number, then exit\n" -#~ " -v, --verbose verbosely list files processed\n" -#~ " --checkpoint print directory names while reading the archive\n" -#~ " --totals print total bytes written while creating archive\n" -#~ " -R, --block-number show block number within archive with each " -#~ "message\n" -#~ " -w, --interactive ask for confirmation for every action\n" -#~ " --confirmation same as -w\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" -#~ " --totals ispisuj ukupan broj ispisanih bajtova dok " -#~ "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" -#~ " --confirmation isto kao -w\n" - -#~ msgid "" -#~ "\n" -#~ "GNU tar cannot read nor produce `--posix' archives. If POSIXLY_CORRECT\n" -#~ "is set in the environment, GNU extensions are disallowed with `--posix'.\n" -#~ "Support for POSIX is only partially implemented, don't count on it yet.\n" -#~ "ARCHIVE may be FILE, HOST:FILE or USER@HOST:FILE; DATE may be a textual " -#~ "date\n" -#~ "or a file name starting with `/' or `.', in which case the file's date is " -#~ "used.\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" -#~ "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" -#~ "*Ovaj* `tar' podrazumijeva `-f%s -b%d'.\n" - -#~ msgid "Obsolete option, now implied by --blocking-factor" -#~ msgstr "Zastarjela opcija, sada podrazumijevana s --blocking-factor" - -#~ msgid "Obsolete option name replaced by --blocking-factor" -#~ msgstr "Zastarjelo ime opcije zamijenjeno s --blocking-factor" - -#~ msgid "Obsolete option name replaced by --read-full-records" -#~ 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?" - -#~ msgid "Obsolete option name replaced by --touch" -#~ msgstr "Zastarjelo ime opcije zamijenjeno s --touch" - -#~ msgid "Obsolete option name replaced by --absolute-names" -#~ msgstr "Zastarjelo ime opcije zamijenjeno s --absolute-names" - -#~ msgid "Obsolete option name replaced by --block-number" -#~ 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?" - -#~ msgid "Obsolete option name replaced by --backup" -#~ msgstr "Zastarjelo ime opcije zamijenjeno s --backup" - -#~ msgid "Written by John Gilmore and Jay Fenlason." -#~ msgstr "Napisali John Gilmore i Jay Fenlason." - -#~ msgid "Error exit delayed from previous errors" -#~ 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" -#~ "for the equivalent short option also.\n" -#~ "\n" -#~ " -l, --file-length=LENGTH LENGTH of generated file\n" -#~ " -p, --pattern=PATTERN PATTERN is `default' or `zeros'\n" -#~ " --help display this help and exit\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" -#~ "\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" +#~ msgid "OPTION" +#~ msgstr "OPCIJA" diff --git a/po/hu.gmo b/po/hu.gmo index d4852ca889697464e608b5847a45f4adb318e106..2265dbe134ba3f01c4731c1b3264efb9a55b1fef 100644 GIT binary patch delta 15025 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 X?0#bl_u-XA;IyxhnzQ-EjSzJJtGHBS delta 12966 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 diff --git a/po/hu.po b/po/hu.po index 92272ec8..14aefeee 100644 --- a/po/hu.po +++ b/po/hu.po @@ -1,25 +1,25 @@ # Hungarian translation of the GNU tar. -# Copyright (C) 2002, 2006, 2007, 2008, 2009, 2010, 2014, 2015, 2016 Free Software Foundation, Inc. +# Copyright (C) 2002, 2006, 2007, 2008, 2009, 2010, 2014, 2015, 2016, 2018 Free Software Foundation, Inc. # This file is distributed under the same license as the tar package. # # Gábor István <stive@mezobereny.hu>, 2002. # Gabor Kelemen <kelemeng@gnome.hu>, 2006, 2007, 2008, 2009, 2010, 2014, 2016. -# Balázs Úr <urbalazs@gmail.com>, 2015. -#: src/create.c:1599 +# Balázs Úr <urbalazs@gmail.com>, 2015, 2018. +#: src/create.c:1598 msgid "" msgstr "" -"Project-Id-Version: tar 1.29\n" +"Project-Id-Version: tar 1.30\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" -"PO-Revision-Date: 2016-05-28 11:58+0200\n" -"Last-Translator: Gabor Kelemen <kelemeng@gnome.hu>\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" +"PO-Revision-Date: 2018-01-20 14:21+0100\n" +"Last-Translator: Balázs Úr <urbalazs@gmail.com>\n" "Language-Team: Hungarian <translation-team-hu@lists.sourceforge.net>\n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" -"X-Generator: Lokalize 1.5\n" +"X-Generator: Lokalize 1.2\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: gnu/argmatch.c:134 @@ -101,7 +101,7 @@ msgid "give a short usage message" msgstr "rövid használati utasítás megjelenítése" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "NÉV" @@ -139,29 +139,29 @@ msgid "write error" msgstr "íráshiba" #: gnu/getopt.c:278 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous\n" -msgstr "%s: a(z) „%s” kapcsoló nem egyértelmű\n" +msgstr "%s: a(z) „%s%s” kapcsoló nem egyértelmű\n" #: gnu/getopt.c:284 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" -msgstr "%s: a(z) „%s” kapcsoló nem egyértelmű, lehetőségek:" +msgstr "%s: a(z) „%s%s” kapcsoló nem egyértelmű, lehetőségek:" #: gnu/getopt.c:319 -#, fuzzy, c-format +#, c-format msgid "%s: unrecognized option '%s%s'\n" -msgstr "%s: a(z) „%c%s” kapcsoló ismeretlen\n" +msgstr "%s: a(z) „%s%s” kapcsoló ismeretlen\n" #: gnu/getopt.c:345 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" -msgstr "%s: a(z) „%c%s” kapcsoló nem enged meg argumentumot\n" +msgstr "%s: a(z) „%s%s” kapcsoló nem enged meg argumentumot\n" #: gnu/getopt.c:360 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' requires an argument\n" -msgstr "%s: a(z) „--%s” kapcsolóhoz argumentum szükséges\n" +msgstr "%s: a(z) „%s%s” kapcsolóhoz argumentum szükséges\n" #: gnu/getopt.c:621 #, c-format @@ -236,12 +236,12 @@ msgstr "^[iIyY]" msgid "^[nN]" msgstr "^[nN]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Csomagolta: %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Csomagolta: %s\n" @@ -249,12 +249,11 @@ msgstr "Csomagolta: %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: gnu/version-etc.c:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "(C)" -#: gnu/version-etc.c:86 -#, fuzzy +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -264,8 +263,8 @@ msgid "" "\n" msgstr "" "\n" -"Licenc: GPLv3+: A GNU GPL 3. vagy újabb változata <http://gnu.org/licenses/" -"gpl.html>\n" +"Licenc: GPLv3+: A GNU GPL 3. vagy újabb változata <https://gnu.org/licenses/" +"gpl.html>.\n" "Ez egy szabad szoftver: terjesztheti és/vagy módosíthatja.\n" "NINCS GARANCIA, a törvény által engedélyezett mértékig.\n" "\n" @@ -402,16 +401,15 @@ msgid "%s home page: <%s>\n" msgstr "A(z) %s honlapja: <%s>\n" #: gnu/version-etc.c:253 -#, fuzzy, c-format +#, c-format msgid "%s home page: <https://www.gnu.org/software/%s/>\n" -msgstr "A(z) %s honlapja: <http://www.gnu.org/software/%s/>.\n" +msgstr "A(z) %s honlapja: <https://www.gnu.org/software/%s/>\n" #: gnu/version-etc.c:256 -#, fuzzy msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n" msgstr "" -"Általános segítség a GNU szoftverek használatához: <http://www.gnu.org/" -"gethelp/>.\n" +"Általános segítség a GNU szoftverek használatához: <https://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 @@ -534,196 +532,196 @@ msgstr "Nem irányíthatók át fájlok a távoli parancssorhoz" msgid "Cannot execute remote shell" msgstr "Nem futtatható távoli parancssor" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "A keresési irány kívül esik a tartományon" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "Érvénytelen pozicionálási irány" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "Érvénytelen pozicionálási eltolás" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "A keresési eltolás kívül esik a tartományon" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "Érvénytelen bájtszám" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "A bájtszám kívül esik a tartományon" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "Idő előtti fájlvége" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "Érvénytelen működési kód" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "A művelet nem támogatott" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Váratlan paraméterek" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 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:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "SZÁM" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "hibakeresési szint beállítása" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "FÁJL" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "hibakeresés kimeneti fájlnevének beállítása" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "a(z) %s nem nyitható meg" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "túl sok argumentum" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Értelmetlen parancs" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Ez nem úgy néz ki, mint egy tar archívum" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Olvasott bájtok teljes száma" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Kiírt bájtok teljes száma" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "Törölt bájtok teljes száma" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(cső)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "" "Az archívumtartalom olvasásának visszautasítása a terminálról (hiányzó -f " "kapcsoló?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "" "Az archívumtartalom írásának visszautasítása a terminálra (hiányzó -f " "kapcsoló?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "A record_size értéke érvénytelen" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Nem adott meg archívumnevet" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Nem ellenőrizhető az archívum, ha a szabványos be/kimenetet használja" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format 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:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Tömörített archívumok nem frissíthetők" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "A szalag eleje, most kilépek" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Túl sok hiba, kilépek" -#: src/buffer.c:967 +#: src/buffer.c:969 #, 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:988 +#: src/buffer.c:990 #, 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:1075 +#: src/buffer.c:1077 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:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "az rmtlseek nem állt meg egy rekord határán" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: érvénytelen kötetszámot tartalmaz" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Kötetszám-túlcsordulás" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, 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:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "Fájlvége a várt felhasználói válasz helyett" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "FIGYELMEZTETÉS: Az archívum befejezetlen" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -734,67 +732,67 @@ msgstr "" " q A Tar megszakítása\n" " y vagy újsor A művelet folytatása\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Új parancsértelmező hívása\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? Ezen lista kiírása\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Nincs új kötet, kilépés.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "Nincs megadva fájlnév, próbálkozzon újra.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, 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:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "A(z) „%s” parancs meghiúsult" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s nem folytatódik ezen a köteten" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, 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:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s mérete hibás (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, 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:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, 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:1682 +#: src/buffer.c:1676 #, 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:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -802,214 +800,214 @@ 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:1965 +#: src/buffer.c:1962 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:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "A tartalom eltér" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Váratlan fájlvége jel az archívumban" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "A fájltípus eltér" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "A mód eltér" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Az Uid eltér" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "A Gid eltér" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "A módosítási idő eltér" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "A méret eltér" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Nincs a következőre linkelve: %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "A szimbolikus link eltér" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Az eszközszám eltér" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Ellenőrzés " -#: src/compare.c:480 +#: src/compare.c:479 #, 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:535 +#: src/compare.c:534 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:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "Az archívum átalakított fájlneveket tartalmaz." -#: src/compare.c:546 +#: src/compare.c:545 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:620 +#: src/compare.c:619 #, 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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "Egy magányos nulla blokk %s helyen" -#: src/create.c:74 +#: 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:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Negatív oktális fejlécek előállítása" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, 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:616 +#: src/create.c:615 #, 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:643 +#: src/create.c:642 #, 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:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, 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:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "a tartalom nem került kiírásra" -#: src/create.c:1464 +#: src/create.c:1463 #, 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:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "Hiányzó linkek a következőre: „%s”." -#: src/create.c:1737 +#: src/create.c:1736 #, 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:1746 +#: src/create.c:1745 #, 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:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "a könyvtár nem került kiírásra" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: a fájl módosult olvasás közben" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: a foglalat figyelmen kívül hagyva" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: ajtó figyelmen kívül hagyva" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Ugrás a következő fejlécre" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "A nem fejlécek törlése az archívumból" -#: src/extract.c:302 +#: src/extract.c:301 #, 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:320 +#: src/extract.c:319 #, 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:553 +#: src/extract.c:552 #, 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:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: meglévő fájl kihagyása" @@ -1032,7 +1030,7 @@ msgstr "Kísérlet a szimbolikus linkek kibontására közvetlen linkként" 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:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Váratlan hosszú névfejléc" @@ -1049,7 +1047,7 @@ msgstr "A jelenlegi „%s” újabb vagy egyező korú" #: src/extract.c:1664 #, c-format msgid "%s: Member name contains '..'" -msgstr "" +msgstr "%s: A tagnév „..” szöveget tartalmaz" #: src/extract.c:1696 #, c-format @@ -1061,22 +1059,22 @@ msgstr "%s: Nem sikerült biztonsági mentést készíteni erről a fájlról" msgid "Cannot rename %s to %s" msgstr "%s: Nem nevezhető át a következőre: %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, 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:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: a könyvtár új" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "%s: a könyvtár eltérő fájlrendszeren van, nem kerül kiírásra" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: a könyvtár át lett nevezve" @@ -1207,36 +1205,36 @@ msgstr "%s: %s törlése\n" msgid "%s: Cannot remove" msgstr "%s: nem távolítható el" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: kihagyás" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blokk %s: ** A blokk üres **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "blokk %s: ** Fájlvége **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "blokk %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1244,162 +1242,162 @@ msgstr "" "feltételezi, hogy kettes komplemens" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, 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:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "Az archívum elavulófélben levő base-64-es fejléceket tartalmaz" -#: src/list.c:852 +#: src/list.c:853 #, 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:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, 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:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " link a következőre: %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " ismeretlen fájltípus: %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Hosszú link--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Hosszú név--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Kötetfejléc--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Folytatva %s bájttól--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Könyvtár létrehozása:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "%s átnevezése a következőre: %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Nem nevezhető át a következőre: %s" -#: src/misc.c:771 +#: src/misc.c:784 #, 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:1134 +#: src/misc.c:1147 #, 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:1148 +#: src/misc.c:1161 msgid "child process" msgstr "gyermekfolyamat" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "folyamatközi csatorna" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "Helyi fájlnévválasztás:" -#: src/names.c:72 +#: src/names.c:71 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/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "KÖNYVTÁR" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "váltás a KÖNYVTÁR könyvtárba" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "kibontandó nevek lekérdezése vagy létrehozás a FÁJLBÓL" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "" "a -T nullal lezárt neveket olvas, következik belőle a --verbatim-files-from" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "a korábbi --null kapcsoló hatásának letiltása" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "" "a bemeneti fájl vagy tagnevek idézettségének megszüntetése (alapértelmezett)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "ne szüntesse meg a bemeneti fájl vagy tagnevek idézettségét" -#: src/names.c:87 -#, fuzzy +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" -msgstr "a -T változatlan fájlneveket olvas (nincs kapcsolókezelés)" +msgstr "" +"a -T változatlan fájlneveket olvas (nincs elfedés vagy kapcsolókezelés)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "a -T a kötőjellel kezdődő fájlneveket kapcsolónak tekinti (alapeset)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "MINTA" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "a MINTAKÉNT megadott fájlok kihagyása" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "a FÁJLBAN megadott minták kihagyása" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1407,24 +1405,24 @@ msgstr "" "a CACHEDIR.TAG-et tartalmazó könyvtárak tartalmának kihagyása, a címkefájl " "kivételével" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "a CACHEDIR.TAG-et tartalmazó könyvtárak alatt minden kihagyása" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "a CACHEDIR.TAG-et tartalmazó könyvtárak kihagyása" -#: src/names.c:104 +#: src/names.c:103 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/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "kizáró minták olvasása minden egyes könyvtárhoz a FÁJLBÓL, ha létezik" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" @@ -1432,120 +1430,124 @@ msgstr "" "kizáró minták olvasása minden egyes könyvtárhoz és annak alkönyvtáraihoz a " "FÁJLBÓL, ha létezik" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "a FÁJLT tartalmazó könyvtárak alatt minden kihagyása" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "a FÁJLT tartalmazó könyvtárak kihagyása" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "verziókezelő rendszer könyvtárainak kihagyása" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "kizárási minták olvasása a VCS ignore fájlokból" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "mentési és zárolási fájlok kihagyása" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "belépés a könyvtárakba rekurzívan (alapértelmezett)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "ne lépjen be automatikusan a könyvtárakba" -#: src/names.c:130 +#: src/names.c:129 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/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "a minták illesztése a fájlnevek elejére" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "a minták illesztése bármely „/” után (alapértelmezett kihagyáskor)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "kis- és nagybetűk figyelmen kívül hagyása" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "kis- és nagybetűkre érzékeny illesztés (alapértelmezett)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "helyettesítő karakterek használata (alapértelmezett kihagyáskor)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "szó szerinti karakterlánc-illesztés" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "" "a helyettesítő karakterek illeszkednek a „/” jelre (alapértelmezett " "kihagyáskor)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "a helyettesítő karakterek nem illeszkednek a „/” jelre" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" +"A következő kapcsolók voltak használva minden nem elhagyható argumentum után " +"az archívumlétrehozási vagy -frissítési módban. Ezek a kapcsolók helyzetiek, " +"és csak az őket követő argumentumokat érintik. Rendezze őket újra megfelelő " +"sorrendbe." -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" -msgstr "" +msgstr "a -C %s kapcsolónak nincs hatása" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" -msgstr "" +msgstr "a --%s %s kapcsolónak nincs hatása" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" -msgstr "" +msgstr "a --%s kapcsolónak nincs hatása" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "parancssor" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: a(z) %s helyről kért fájllista már be van olvasva innen: %s" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "nem darabolható a(z) „%s” karakterlánc: %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: a beolvasott fájlnév null karaktert tartalmaz" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "Mintaillesztő karaktereket használt a fájlnevekben" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1553,47 +1555,47 @@ 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:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: Nem található az archívumban" -#: src/names.c:1379 +#: src/names.c:1409 #, 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:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "Hibás archívumcímke" -#: src/names.c:1717 +#: src/names.c:1747 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:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "Csak egy -C engedélyezett a --listed-incremental kapcsolóval" -#: src/tar.c:88 +#: src/tar.c:87 #, 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:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Érvénytelen archívumformátum" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "GNU szolgáltatásokat kértél inkompatibilis az archívumformátumokon" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1819,7 +1821,7 @@ msgstr "Kimeneti adatfolyam kiválasztása:" msgid "extract files to standard output" msgstr "fájlok kibontása a szabványos kimenetre" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "PARANCS" @@ -1855,7 +1857,7 @@ msgstr "a FÁJL használata a fájltulajdonos UID-ek és nevek leképezésére" msgid "use FILE to map file owner GIDs and names" msgstr "a FÁJL használata a fájltulajdonos GID-ek és nevek leképezésére" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "DÁTUM-VAGY-FÁJL" @@ -2069,7 +2071,7 @@ msgstr "újrablokkolás olvasáskor (4.2BSD csövekhez)" msgid "Archive format selection:" msgstr "Archívumformátum kiválasztása:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "FORMÁTUM" @@ -2154,63 +2156,63 @@ msgstr "PROG" 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:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Helyi fájlválasztás:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "az archívum létrehozásakor maradjon a helyi fájlrendszeren" -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "ne vágja le a kezdő „/” jelet a fájlnevekből" -#: src/tar.c:695 +#: src/tar.c:696 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:697 +#: src/tar.c:698 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:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "TAGNÉV" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "kezdés a TAGNÉV tagnál az archívum olvasásakor" -#: src/tar.c:701 +#: src/tar.c:702 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:703 +#: src/tar.c:704 msgid "DATE" msgstr "DÁTUM" -#: src/tar.c:704 +#: src/tar.c:705 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:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "FELÜGYELET" -#: src/tar.c:706 +#: src/tar.c:707 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:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "KARAKTERLÁNC" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2218,62 +2220,62 @@ 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:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Fájlnév-átalakítások:" -#: src/tar.c:715 +#: src/tar.c:716 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:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "KIFEJEZÉS" -#: src/tar.c:718 +#: src/tar.c:719 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:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Informatív kimenet:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "feldolgozott fájlok bőbeszédű listázása" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "KULCSSZÓ" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "figyelmeztetés felügyelete" -#: src/tar.c:731 +#: src/tar.c:732 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:733 +#: src/tar.c:734 msgid "ACTION" msgstr "MŰVELET" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "a MŰVELET végrehajtása minden ellenőrzőponton" -#: src/tar.c:737 +#: src/tar.c:738 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:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "SZIGNÁL" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2285,35 +2287,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:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "a fájlmódosítási idők kiírása UTC szerint" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "fájl módosítási idejének kiírása teljes pontossággal" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "bőbeszédű kimenet küldése a FÁJLBA" -#: src/tar.c:750 +#: src/tar.c:751 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:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "megerősítés kérése minden egyes művelethez" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "a tar alapértelmezéseinek megjelenítése" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "érvényes tartományok megjelenítése a pillanatkép-fájl mezőkhöz" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2321,31 +2323,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:761 +#: src/tar.c:762 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:764 +#: src/tar.c:765 msgid "STYLE" msgstr "STÍLUS" -#: src/tar.c:765 +#: src/tar.c:766 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:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "a KARAKTERLÁNCBÓL származó karakterek kiegészítő idézése" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "a KARAKTERLÁNCBÓL származó karakterek idézésének letiltása" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Kompatibilitási kapcsolók:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2353,22 +2355,22 @@ msgstr "" "létrehozáskor megegyezik a --old-archive kapcsolóval; kibontáskor a --no-" "same-owner kapcsolóval" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Egyéb kapcsolók:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "néhány potenciálisan káros kapcsoló használatának letiltása" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "a(z) „%s” kapcsoló nem használható a következővel: „%s”" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" @@ -2376,40 +2378,40 @@ msgstr "" "A következő kapcsolók közül egynél többet nem használhat: „-Acdtrux”, „--" "delete” vagy „--test-label”" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "A tömörítési kapcsolók ütköznek" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Ismeretlen szignálnév: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "A dátummintafájl nem található" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "%s cseréje az ismeretlen %s dátumformátumhoz" -#: src/tar.c:1065 +#: src/tar.c:1067 #, 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:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, 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:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "A --quoting-style kapcsoló érvényes paraméterei:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2417,164 +2419,164 @@ msgstr "" "\n" "*Ezen* tar alapértelmezései:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "Érvénytelen tulajdonos- vagy csoportazonosító" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Érvénytelen blokkolási tényező" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Érvénytelen szalagméret" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "Hibás növekményszintérték" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Egynél több küszöbdátum" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "Érvénytelen ritka verzió érték" -#: src/tar.c:1661 +#: src/tar.c:1670 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:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "A --checkpoint értéke nem egy egész" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Érvénytelen mód került megadásra a kapcsolóban" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Érvénytelen szám" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Érvénytelen rekordméret" -#: src/tar.c:1864 +#: src/tar.c:1873 #, 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:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Érvénytelen elemszám" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "Csak egy --to-command kapcsoló engedélyezett" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Rosszul formázott sűrűségargumentum: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Ismeretlen sűrűség: „%c”" -#: src/tar.c:2066 +#: src/tar.c:2075 #, 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:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: a hiba helye" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "hiba a(z) „%s” elemzésekor" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[FÁJL]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "nem kapcsoló argumentumok ebben: %s" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "nem darabolható a TAR_OPTIONS: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "A régi „%c” kapcsoló paramétert igényel." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "a --occurrence értelmetlen fájllista nélkül" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "Több archívumfájl esetén szükséges a „-M” kapcsoló" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "a --level értelmetlen a --listed-incremental nélkül" -#: src/tar.c:2424 +#: 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "A többkötetes archívumok nem ellenőrizhetők" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "A tömörített archívumok nem ellenőrizhetők" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Nem használhatók többkötetes tömörített archívumok" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Tömörített archívumok nem fűzhetők össze" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "a --clamp-mtime egy, a --mtime használatával megadott dátumot igényel" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "a --pax kapcsoló csak POSIX archívumokon használható" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "a --acls kapcsoló csak POSIX archívumokon használható" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "a --selinux kapcsoló csak POSIX archívumokon használható" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "a --xattrs kapcsoló csak POSIX archívumokon használható" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2582,136 +2584,145 @@ msgstr "" "Nem lehet kikövetkeztetni a felsőszintű könyvtár nevét; állítsa be világosan " "a --one-top-level=KVT kapcsolóval" -#: src/tar.c:2573 +#: src/tar.c:2582 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:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Üres archívum létrehozása visszautasítva" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Az „-Aru” kapcsolók összeférhetetlenek a „-f -” kapcsolóval" -#: src/tar.c:2711 +#: src/tar.c:2743 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”, „--delete” vagy „--" "test-label”" -#: src/tar.c:2768 +#: src/tar.c:2800 #, 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:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: A fájl zsugorítva %s bájttal" msgstr[1] "%s: A fájl zsugorítva %s bájttal" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "A(z) %s minta nem használható" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "A(z) %s minta nem bírálható felül" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "Rosszul formázott kiterjesztett fejléc: a hossz hiányzik" -#: src/xheader.c:677 +#: src/xheader.c:695 #, 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:689 +#: src/xheader.c:707 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:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "A kiterjesztett fejléc hibás: egy egyenlőségjel hiányzik" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "Rosszul formázott kiterjesztett fejléc: az újsor hiányzik" -#: src/xheader.c:741 +#: src/xheader.c:759 #, 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:1023 +#: src/xheader.c:1041 #, 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:1053 +#: src/xheader.c:1071 #, 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:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Rosszul formázott kiterjesztett fejléc: érvénytelen %s=%s" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Rosszul formázott kiterjesztett fejléc: többlet %s=%s" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, 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:1543 +#: src/xheader.c:1561 #, 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:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s: érvénytelen időtúllépés" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: ismeretlen ellenőrzőpont-művelet" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "írás" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "olvasás" @@ -2719,7 +2730,7 @@ msgstr "olvasás" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "%u. írási ellenőrzőpont" @@ -2728,12 +2739,12 @@ msgstr "%u. írási ellenőrzőpont" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "%u. olvasási ellenőrzőpont" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2741,99 +2752,103 @@ msgstr "" "a genfiles adatfájlokat kezel a GNU paxutils tesztcsomag számára.\n" "A KAPCSOLÓK:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Fájllétrehozási kapcsolók:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "MÉRET" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Az adott MÉRETŰ fájl létrehozása" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Írás a NÉV nevű fájlba a szabványos kimenet helyett" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "Fájlnevek beolvasása a FÁJLBÓL" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "a -T nullal lezárt neveket olvas" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "A fájl feltöltése az adott MINTÁVAL. A MINTA a 'default' (alapértelmezett) " "vagy 'zeros' (nullák) egyike" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "Egy blokk mérete ritka fájlhoz" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "Ritka fájl előállítása. A parancssor többi része megadja a fájlleképezést." -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "ELTOLÁS" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "Az adott eltolásra pozicionálás az adatok kiírása előtt" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "Nem végzetes diagnosztikai üzenetek elnyomása" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Fájlstatisztika kapcsolói:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "A stat struktúra tartalmának kiírása minden egyes megadott fájlhoz. Az " "alapértelmezett FORMÁTUM: " -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Szinkron végrehajtási kapcsolók:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "KAPCSOLÓ" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "Az adott ARGS végrehajtása. Hasznos a --checkpoint és a --cut, --append, --" "touch vagy --unlink egyikével" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" "Az adott művelet (lásd alább) végrehajtása a SZÁM-adik ellenőrzőpont elérése " "után" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "Dátum beállítása a következő --touch kapcsoló számára" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" "Végrehajtott ellenőrzőpontok és a PARANCS kilépési állapotának megjelenítése" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2841,7 +2856,7 @@ msgstr "" "Szinkron végrehajtási tevékenységek. Ezek a --checkpoint kapcsoló által " "megadott számú ellenőrzőpont elérésekor kerülnek végrehajtásra." -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2849,126 +2864,126 @@ msgstr "" "A FÁJL csonkolása az előző --length kapcsoló által megadott méretre (vagy " "nullára, ha nincs megadva)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "MÉRET bájt hozzáfűzése a FÁJLHOZ. A MÉRETET az előző --length kapcsoló adja " "meg." -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "A FÁJL hozzáférési és módosítási idejének frissítése" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "A PARANCS végrehajtása" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" -msgstr "" +msgstr "FÁJL törlése" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Érvénytelen méret: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "A szám kívül esik az engedélyezett tartományon: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Negatív méret: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "a stat(%s) meghiúsult" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "a kért fájlhossz %lu, a tényleges %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "a létrehozott fájl nem ritka" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "Hiba a(z) „%s” közelében található szám elemzésekor" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Ismeretlen dátumformátum" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ARGUMENTUMOK...]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "a(z) „%s” nem nyitható meg" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "Nem lehet pozicionálni" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "a fájlnév null karaktert tartalmaz" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, 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:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "helytelen maszk (a(z) „%s” közelében)" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "Ismeretlen mező: „%s”" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "nem állítható be az idő a következőn: „%s”" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "a(z) „%s” nem csonkítható" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "A(z) „%s” parancs meghiúsult" -#: tests/genfile.c:781 -#, fuzzy, c-format +#: tests/genfile.c:772 +#, c-format msgid "cannot stat `%s'" -msgstr "a(z) „%s” nem csonkítható" +msgstr "a(z) „%s” nem érhető el" -#: tests/genfile.c:785 -#, fuzzy, c-format +#: tests/genfile.c:776 +#, c-format msgid "cannot remove directory `%s'" -msgstr "nem állítható be az idő a következőn: „%s”" +msgstr "a(z) „%s” könyvtár nem távolítható el" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "a(z) „%s” nem törölhető" @@ -3008,72 +3023,5 @@ msgstr "A parancs befejeződött\n" msgid "--stat requires file names" msgstr "a --stat fájlneveket igényel" -#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" -#~ msgstr "%.*s: Az ARGP_HELP_FMT paraméternek pozitívnak kell lennie" - -#~ msgid "%s: option '--%s' doesn't allow an argument\n" -#~ msgstr "%s: a(z) „--%s” kapcsoló nem enged meg argumentumot\n" - -#~ msgid "%s: unrecognized option '--%s'\n" -#~ msgstr "%s: a(z) „--%s” kapcsoló ismeretlen\n" - -#~ msgid "%s: option '-W %s' is ambiguous\n" -#~ msgstr "%s: a „-W %s” kapcsoló nem egyértelmű\n" - -#~ msgid "%s: option '-W %s' doesn't allow an argument\n" -#~ msgstr "%s: a „-W %s” kapcsoló nem enged meg argumentumot\n" - -#~ msgid "%s: option '-W %s' requires an argument\n" -#~ msgstr "%s: a „-W %s” kapcsolóhoz argumentum szükséges\n" - -#~ msgid "Unlink FILE" -#~ msgstr "A FÁJL törlése" - -#~ msgid "same as both -p and -s" -#~ msgstr "azonos, mint a -p és -s egyszerre" - -#~ msgid "" -#~ "The --preserve option is deprecated, use --preserve-permissions --" -#~ "preserve-order instead" -#~ msgstr "" -#~ "A --preserve kapcsoló elavult, használja a --preserve-permissions --" -#~ "preserve-order kapcsolókat helyette" - -#~ msgid "--occurrence cannot be used with %s" -#~ msgstr "a --occurrence nem használható ezzel: %s" - -#~ msgid "Cannot combine --listed-incremental with --newer" -#~ msgstr "" -#~ "A --listed-incremental és a --newer kapcsolók nem használhatók egyszerre" - -#~ msgid "--verify cannot be used with %s" -#~ msgstr "A --verify nem használható ezzel: %s" - -#~ msgid "--preserve-order is not compatible with --listed-incremental" -#~ msgstr "" -#~ "a --preserve-order nem kompatibilis a --listed-incremental kapcsolóval" - -#~ 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 "Cannot get working directory" -#~ msgstr "A munkakönyvtár nem kérdezhető le" - -#~ msgid "%s: Directory removed before we read it" -#~ msgstr "%s: a könyvtár el lett távolítva a beolvasás előtt" - -#~ msgid "sort names to extract to match archive" -#~ msgstr "" -#~ "kibontandó nevek rendezése, az archívumnak való megfelelés érdekében" - -#~ msgid "Invalid group" -#~ msgstr "Érvénytelen csoport" - -#~ msgid "Extended header length is out of allowed range" -#~ msgstr "A kiterjesztett fejléc hossza kívül esik a tartományon" +#~ msgid "OPTION" +#~ msgstr "KAPCSOLÓ" diff --git a/po/id.gmo b/po/id.gmo index 65bf8c8fafaf1467f64554f4ba6995dc7388f570..c447fb010965cd7d3c121b2f7245dbd225e954d8 100644 GIT binary patch delta 12063 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 delta 12266 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 diff --git a/po/id.po b/po/id.po index 00853d31..ee9a9f3d 100644 --- 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, 2011, 2012, 2013, 2014. # -#: src/create.c:1599 +#: src/create.c:1598 msgid "" msgstr "" "Project-Id-Version: tar 1.28\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" "PO-Revision-Date: 2014-08-02 10:00+0700\n" "Last-Translator: Arif E. Nugroho <arif_endro@yahoo.com>\n" "Language-Team: Indonesian <translation-team-id@lists.sourceforge.net>\n" @@ -97,7 +97,7 @@ msgid "give a short usage message" msgstr "berikan sebuah pesan penggunaan singkat" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "NAMA" @@ -232,12 +232,12 @@ msgstr "^[yY]" msgid "^[nN]" msgstr "^[nN]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Dibungkus oleh %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Dibungkus oleh %s\n" @@ -245,11 +245,11 @@ msgstr "Dibungkus oleh %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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "(C)" -#: gnu/version-etc.c:86 +#: gnu/version-etc.c:85 #, fuzzy msgid "" "\n" @@ -526,190 +526,190 @@ msgstr "Tidak dapat menjalankan remote shell" msgid "Cannot execute remote shell" msgstr "Tidak dapat menjalankan remote shell" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Arah pencarian di luar jangkauan" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "Arah pencarian tidak valid" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "Ofset pencarian tidak valid" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Offset pencarian di luar jangkauan" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "Jumlah byte tidak valid" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "Jumlah byte di luar jangkauan" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "EOF prematur" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "Kode operasi tidak valid" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "Operasi tidak didukung" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Unexpected tidak terduga" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 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:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "NOMOR" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "tentukan tingkat penelusuran" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "BERKAS" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "tentukan keluaran nama berkas penelusuran" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "tidak dapat membuka %s" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "terlalu banyak argumen" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Perintah sampah" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Ini sepertinya bukan sebuah tar archive" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Total byte dibaca" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Total byte ditulis" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "Total byte dihapus" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(pipe)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "Refusing to read archive contents from terminal (missing -f option?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "Refusing to write archive contents to terminal (missing -f option?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Nilai record_size tidak valid" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Tidak diberikan nama archive" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Tidak dapat memverifikasi stdin/stdout archive" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Archive terkompres. Gunakan %s pilihan" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Tidak dapat update compressed archives" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "Berada pada awal tape, berhenti sekarang" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Terlalu banyak errors, berhenti" -#: src/buffer.c:967 +#: src/buffer.c:969 #, 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:988 +#: src/buffer.c:990 #, 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:1075 +#: src/buffer.c:1077 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:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek tidak dapat berhenti di sebuah batas rekaman" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: berisi nomor volum yang tidak valid" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Nomor volum overflow" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Mempersiapkan volume #%d untuk %s dan tekan return: " -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "EOF pada saat user reply diharapkan" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "PERINGATAN: Archive tidak lengkap" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -721,65 +721,65 @@ msgstr "" " q Batalkan tar\n" " y or newline Lanjutkan operasi\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Spawn sebuah subshell\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? Tampilkan daftar ini\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Tidak ada new volume; keluar.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "Nama berkas tidak dispesifikasikan. Coba lagi.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Masukan tidak valid. Ketik ? untuk bantuan.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "Perintah %s gagal" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s tidak dilanjutkan di volume ini" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, 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:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s adalah ukuran yang salah (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Volume ini di luar urutan (%s - %s != %s)" -#: src/buffer.c:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "Label archive tidak cocok dengan %s" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "Volume %s tidak sesuai dengan %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -787,211 +787,211 @@ msgstr "" "%s: nama berkas terlalu panjang untuk diurutkan dalam sebuah GNU multivolume " "header, dipotong" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "tulis tidak berhenti di batas blok" -#: src/compare.c:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Isi berbeda" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Unexpected EOF dalam archive" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Tipe berkas berbeda" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Mode berbeda" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Uid berbeda" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "Gid berbeda" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Mod time berbeda" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Ukuran berbeda" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Tidak dilink ke %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Symlink berbeda" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Nomor perangkat berbeda" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Verifikasi " -#: src/compare.c:480 +#: src/compare.c:479 #, 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:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "Archive berisi nama berkas dengan awalan dihapus." -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "Arsip berisikan header yang kadaluarsas" -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "Verifikasi mungkin gagal untuk menemukan berkas orisinil." -#: src/compare.c:620 +#: src/compare.c:619 #, 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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "Sebuah lone blok nol di %s" -#: src/create.c:74 +#: 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:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Membuat header oktal negatif" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, 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:616 +#: src/create.c:615 #, 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:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: nama link terlalu panjang; tidak di-dump" -#: src/create.c:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, 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:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "isi tidak didump" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Tipe file tidak dikenal; file diabaikan" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "Hilang hubungan ke %s." -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: berkas tidak berubah; tidak di-dump" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: berkas adalah archive; tidak di-dump" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "direktori tidak didump" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: berkas berubah saat kita membacanya" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: soket diabaikan" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: door diabaikan" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Skip ke header berikutnya" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Menghapus non-header dari archive" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: implausibly penanda waktu lama %s" -#: src/extract.c:320 +#: src/extract.c:319 #, 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:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Inkonsistensi tidak diharapkan ketika membuat direktori" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: skipping existing file" @@ -1015,7 +1015,7 @@ msgid "%s: Cannot extract -- file is continued from another volume" msgstr "" "%s: Tidak dapat mengekstrak -- berkas adalah kelanjutan dari volume lain" -#: src/extract.c:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Tidak terduga nama header panjang" @@ -1044,22 +1044,22 @@ msgstr "%s: Tidak dapat melakukan backup berkas ini" msgid "Cannot rename %s to %s" msgstr "Tidak dapat mengubah nama %s ke %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Direktori telah diubah nama dari %s" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: Direktori adalah baru" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "%s: directory berada pada filesistem yang berbeda; tidak di-dump" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Direktori telah diganti nama" @@ -1186,194 +1186,194 @@ msgstr "%s: Menghapus %s\n" msgid "%s: Cannot remove" msgstr "%s: Tidak dapat menghapus" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: Mengabaikan" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blok %s: ** Blok dari KOSONG **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "blok %s: ** Akhir dari Berkas **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "blok %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, 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:817 +#: src/list.c:818 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Nilai oktal arsip %.*s di luar batasan %s" -#: src/list.c:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "Arsip berisikan header base-64 yang kadaluarsas" -#: src/list.c:852 +#: src/list.c:853 #, 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:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, 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:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " link ke %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " tipe file tidak dikenal %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Link Panjang--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Nama Panjang--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Volume Header--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Diteruskan pada byte %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Membuat direktori:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "Mengganti nama %s ke %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s:Tidak dapat mengganti nama ke %s" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "Mengganti nama %s kembali ke %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: Berkas dihapus sebelum kita membacanya" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "proses anak" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "saluran interproses" -#: src/names.c:69 +#: src/names.c:68 #, fuzzy msgid "Local file name selection:" msgstr "Pemilihan berkas lokal:" -#: src/names.c:72 +#: src/names.c:71 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/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "DIR" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "pindah ke direktori DIR" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "dapatkan nama untuk ekstrak atau buat dari BERKAS" -#: src/names.c:78 +#: src/names.c:77 #, fuzzy msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "-T baca nama berakhiran kosong, non-aktifkan -C" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "non-aktifkan efek dari pilihan --null sebelumnya" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "unquote nama berkas baca dengan (baku)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "jangan unquote nama berkas baca dengan" -#: src/names.c:87 +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" msgstr "" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "POLA" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "jangan masukan berkas, berikan sebagai sebuah POLA" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "jangan masukan pola yang terdaftar dalam BERKAS" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1381,25 +1381,25 @@ msgstr "" "jangan masukan isi dari direktori berisi CACHEDIR.TAG, kecuali untuk berkas " "tag itu sendiri" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "jangan masukan apapun dibawah direktori berisi CACHEDIR.TAG" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "jangan masukan direktori berisi CACHEDIR.TAG" -#: src/names.c:104 +#: src/names.c:103 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/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "read exclude patterns for each directory from FILE, if it exists" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" @@ -1407,117 +1407,117 @@ msgstr "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "jangan masukan apapun dibawah direktori berisi BERKAS" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "jangan masukan direktori berisi BERKAS" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "jangan masukan direktori sistem pengontrol direktori" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "read exclude patterns from the VCS ignore files" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "abaikan berkas cadangan dan berkas kunci" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "rekursif kedalam direktori (baku)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "hindari penurunan secara otomatis dalam direktori" -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" "Pilihan nama berkas cocok (mempengaruhi baik pola exclude dan include):" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "pencocokan pola nama berkas mulai" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "pencocokan polah setelah '/' apapun (baku untuk exclusion)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "abaikan perbedaan huruf besar dan huruf kecil" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "pencocokan dengan memperhatikan huruf besar dan huruf kecil (baku)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "gunakan wildcards (baku untuk exclusion)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "pencocok verbatim string" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "wildcards cocok '/' (baku untuk exclusion)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "wildcards tidak cocok '/'" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" msgstr "" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" msgstr "" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" msgstr "" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "Perintah gagal" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: file list requested from %s daftar berkas telah dibaca %s" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "tidak dapat menset waktu di '%s': %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: nama berkas yang dibaca berisi karakter nul" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "Pola pencocokan karakter digunakan dalam nama berkas." -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1525,47 +1525,47 @@ msgstr "" "Gunakan --wildcards untuk mengaktifkan pencocokan pola, atau --no-wildcards " "untuk menekan peringatan ini" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: Tidak ditemukan dalam archive" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Kejadian yang diinginkan tidak ditemukan dalam archive" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "Label archive tidak cocok" -#: src/names.c:1717 +#: src/names.c:1747 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:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "Hanya satu pilihan -C yang diijinkan dengan --listed-incremental" -#: src/tar.c:88 +#: src/tar.c:87 #, c-format msgid "Options '%s' and '%s' both want standard input" msgstr "Pilihan '-%s' dan '-%s' membutuhkan standard masukan" -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Format archive tidak valid" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "Feature GNU dibutuhkan untuk format archive yang tidak kompatibel" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1786,7 +1786,7 @@ msgstr "Pilih stream keluaran:" msgid "extract files to standard output" msgstr "ekstrak berkas ke standar keluaran" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "PERINTAH" @@ -1822,7 +1822,7 @@ msgstr "" msgid "use FILE to map file owner GIDs and names" msgstr "" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "DATE-ATAU-BERKAS" @@ -2031,7 +2031,7 @@ msgstr "reblok saat kita baca (untuk 4.2BSD pipes)" msgid "Archive format selection:" msgstr "Pemilihan format archive:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "FORMAT" @@ -2115,59 +2115,59 @@ msgstr "PROG" msgid "filter through PROG (must accept -d)" msgstr "saring melalui PROG (harus menerima -d)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Pemilihan berkas lokal:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "tetap dalam sistem berkas lokal ketika membuat archive" -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "jangan hilangkan awalan '/' dari nama berkas" -#: src/tar.c:695 +#: src/tar.c:696 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:697 +#: src/tar.c:698 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:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "NAMA-ANGGOTA" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "berawal di anggota NAMA-ANGGOTA dalam archive" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "hanya simpan berkas lebih baru dari DATE-OR-FILE" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "TANGGAL" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "bandingkan tanggal dan waktu hanya ketika data berubah" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "KONTROL" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "backup sebelum penghapusan, pilih PENGONTROL versi" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "STRING" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2175,60 +2175,60 @@ msgstr "" "backup sebelum penghapusan, override akhiran biasa ('~' kecuali di override " "oleh variabel lingkungan SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Transformasi nama berkas:" -#: src/tar.c:715 +#: src/tar.c:716 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:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "EKSPRESI" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "gunakan sed EKSPRESI replace untuk mengubah nama berkas" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Keluaran informative:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "proses daftar berkas secara verbose" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "KATA KUNCI" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "pengendali peringatan" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "tampilkan pesan perkembangan setiap rekaman ke ANGKA (baku 10)" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "AKSI" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "jalankan AKSI disetiap titik pemeriksaan" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "tampilkan sebuah pesan jika tidak seluruh link didump" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "SINYAL" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2240,35 +2240,35 @@ msgstr "" "adalah: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 dan SIGUSR2; nama tanpa awalah SIG " "juga diterima" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "tampilkan waktu modifikasi berkas dalam UTC" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "tampilkan waktu berkas sampai ke resolusi penuh" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "kirim keluaran verbose ke BERKAS" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "tampilkan jumlah blok didalam archive dengan setiap pesan" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "minta konfirmasi untuk setiap aksi" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "tampilkan tar baku" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "show valid ranges for snapshot-file fields" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2276,31 +2276,31 @@ msgstr "" "ketika mendaftar atau mengekstrak, daftar setiap direktori yang tidak cocok " "dengan kriteria pencarian" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "tampilkan berkas atau nama berkas setelah transformasi" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "GAYA" -#: src/tar.c:765 +#: src/tar.c:766 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:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "sebagai tambahan karakter quote dari STRING" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "non-aktifkan quoting untuk karakter dari STRING" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Pilihan yang kompatibel:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2308,22 +2308,22 @@ msgstr "" "ketika membuat, sama seperti --old-archive; ketika mengekstrak, sama seperti " "--no-same-owner" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Pilihan lain:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "non-aktifkan penggunaan dari pilihan berbahaya yang berpotensial" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "'%s' Tidak dapat mencari ke '%s'" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" @@ -2331,40 +2331,40 @@ msgstr "" "Anda tidak bisa menspesifikasikan lebih dari satu pilihan '-Acdtrux' atau '--" "test-label'" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Pilihan kompresi konflik" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Nama sinyal: %s tidak dikenal" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "Tanggal contoh berkas tidak ditemukan" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Menggantikan %s untuk format tanggal tidak dikenal %s" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "Pilihan %s: memperlakukan tanggal '%s' sebagai %s" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "saring archive melalui %s" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "Argumen yang valid untuk pilihan --quoting-style adalah:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2372,163 +2372,163 @@ msgstr "" "\n" "*Ini* tar baku ke:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "Pemilik tidak valid" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Faktor bloking tidak valid" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Panjang tape tidak valid" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "Nilai tingkat peningkatan tidak valid" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Lebih dari satu treshold date" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "Nilai versi sparse tidak valid" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "pilihan --atime-preserve='system' tidak didukung di platform ini" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "nilai --checkpoint bukan sebuah integer" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Mode tidak tepat diberikan pada pilihan" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Nomor tidak valid" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Ukuran record tidak valid" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "Jumlah record harus kelipatan dari %d." -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Jumlah dari elemen tidak valid" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "Hanya satu pilihan --to-command yang diijinkan" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Salah bentuk kepadatan argumen: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Kepadatan tidak diketahui: '%c'" -#: src/tar.c:2066 +#: src/tar.c:2075 #, 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:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "" -#: src/tar.c:2076 +#: src/tar.c:2085 #, fuzzy, c-format msgid "error parsing %s" msgstr "Error parsing nomor didekat `%s'" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[BERKAS]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, fuzzy, c-format msgid "non-option arguments in %s" msgstr "argumen %s untuk %s tidak valid" -#: src/tar.c:2196 +#: src/tar.c:2205 #, fuzzy, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "tidak dapat menset waktu di '%s': %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "Pilihan 'lama' '%c' membutuhkan argument." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence tidak berarti tanpa sebuah daftar berkas" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "Berkas multiple archive membutuhkan pilihan '-M'" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "--level tidak berarti tanpa --listed-incremental" -#: src/tar.c:2424 +#: 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Tidak dapat verifikasi multi-volume archives" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Tidak dapat verify compressed archives" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Tidak dapat menggunakan multi-volume compressed archives" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Tidak dapat update compressed archives" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option hanya dapat digunakan dalam archive POSIX" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "--acls hanya dapat digunakan dalam archive POSIX" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "--selinux hanya dapat digunakan dalam archive POSIX" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "--xattrs hanya dapat digunakan dalam archive POSIX" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2536,83 +2536,92 @@ msgstr "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "Panjang volume tidak dapat lebih kecil dari ukuran rekaman" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Secara takut menolak untuk membuat sebuah archive kosong" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Pilihan '-Aru' tidak kompatibel dengan '-f -'" -#: src/tar.c:2711 +#: src/tar.c:2743 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:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "Keluar dengan status gagal karena error error sebelumnya" -#: src/update.c:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Berkas mengecil sebanyak %s byte" msgstr[1] "%s: Berkas mengecil sebanyak %s byte" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "Pola %s tidak dapat digunakan" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Kata kunci %s tidak dapat dioverride" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "Salah bentuk ekstensi header: hilang panjang" -#: src/xheader.c:677 +#: src/xheader.c:695 #, c-format msgid "Extended header length %*s is out of range" msgstr "Ekstensi panjang header %*s diluar dari jangkauan" -#: src/xheader.c:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "Salah bentuk ekstensi header: hilang blank setelah panjang" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "Salah bentuk ekstensi header: hilang tanda sama dengan" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "Salah bentuk ekstensi header: hilang baris baru" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "Mengabaikan kata kunci ekstensi '%s' yang tidak diketahui" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" @@ -2621,46 +2630,46 @@ msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:1053 +#: src/xheader.c:1071 #, 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:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Salah bentuk ekstensi header: tidak valid %s=%s" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Salah bentuk ekstensi header: kelebihan %s=%s" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, 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:1543 +#: src/xheader.c:1561 #, 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:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s: bukan sebuah kehabisan waktu yang valid" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: aksi titik pemeriksaan tidak diketahui" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "tulis" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "baca" @@ -2668,7 +2677,7 @@ msgstr "baca" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Menulis titik pemeriksaan %u" @@ -2677,12 +2686,12 @@ msgstr "Menulis titik pemeriksaan %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Membaca titik pemeriksaan %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2690,96 +2699,100 @@ msgstr "" "genfile memanipulasi berkas data untuk suite pemeriksaan GNU paxutils.\n" "PILIHAN adalah:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Pilihan pembuatan berkas:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "UKURAN" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Buat berkas dari UKURAN yang diberikan" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Tulis ke berkas NAMA, daripada ke standar keluaran" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "Baca nama berkas dari BERKAS" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T baca nama berakhiran null" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "Isi berkas dengan POLA yang diberikan. POLA adalah 'baku' atau 'nol'" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "Ukuran dari sebuah blok untuk berkas sparse" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "Buat berkas sparse. Sisa dari baris perintah memberikan peta berkas." -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "OFSET" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "Cari ke ofset yang diberikan sebelum menulis data" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Pilihan statistik berkas:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Tampilkan isi dari statistik struk untuk setiap berkas yang diberikan. " "FORMAT baku adalah: " -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "pilihan eksekusi synchronous:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "PILIHAN" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "Jalankan ARG. Berguna dengan --checkpoint dan satu dari --cut, --append, --" "touch, --unlink" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" "Lakukan aksi yang diberikan (lihat dibawah) ketika mencapai titik " "pemeriksaan NOMOR" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "Set tanggal untuk pilihan --touch selanjutnya" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" "Tampilkan titik pemeriksaan yang dijalankan dan status keluar dari PERINTAH" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2787,7 +2800,7 @@ msgstr "" "Aksi eksekusi synchronous. Ini dijalankan ketika titik pemeriksaan nomor " "yang diberikan oleh pilihan --checkpoint dicapai." -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2795,126 +2808,126 @@ msgstr "" "Potong BERKAS ke ukuran yang dispesifikasikan oleh pilihan --length " "sebelumnya (atau 0, jika ini tidak diberikan)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Tambahkan UKURAN bytes ke BERKAS. UKURAN yang diberikan oleh pilihan --" "length sebelumnya." -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "Update waktu akses dan modifikasi dari BERKAS" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "Jalankan PERINTAH" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" msgstr "" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Ukuran: %s tidak valid" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Jumlah diluar dari jangkauan yang diijinkan: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Ukuran negatif: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) gagal" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "panjang berkas yang diminta %lu, sebenernya %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "pembuatan berkas tidak sparse" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "Error parsing nomor didekat `%s'" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Format tanggal tidak diketahui" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ARG...]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "tidak dapat membuka `%s'" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "Tidak dapat mencari" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "nama berkas berisi karakter null" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, 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:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "mask tidak benar (didekat `%s')" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "Field `%s' tidak diketahui" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "tidak dapat menset waktu di `%s'" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "tidak dapat memutus '%s'" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "Perintah %s gagal" -#: tests/genfile.c:781 +#: tests/genfile.c:772 #, fuzzy, c-format msgid "cannot stat `%s'" msgstr "tidak dapat memutus '%s'" -#: tests/genfile.c:785 +#: tests/genfile.c:776 #, fuzzy, c-format msgid "cannot remove directory `%s'" msgstr "tidak dapat menset waktu di `%s'" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "tidak dapat memutus `%s'" @@ -2954,6 +2967,9 @@ msgstr "Perintah berakhir\n" msgid "--stat requires file names" msgstr "--stat membutuhkan nama berkas" +#~ msgid "OPTION" +#~ msgstr "PILIHAN" + #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: ARGP_HELP_FMT parameter harus positif" diff --git a/po/it.gmo b/po/it.gmo index cae203117c8dcac2118979fa8465b7524ad169c1..cc1e79b498d58b13959859e7f00740427edbd6e7 100644 GIT binary patch delta 14822 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 NCDmf3&DrPcl>jg-(2xKC delta 12835 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 diff --git a/po/it.po b/po/it.po index 00321101..24e3c7a4 100644 --- a/po/it.po +++ b/po/it.po @@ -1,18 +1,18 @@ # Italian translation of GNU tar. -# Copyright (C) 2008, 2009, 2010, 2011, 2013, 2014, 2016 Free Software Foundation, Inc. +# Copyright (C) 2008, 2009, 2010, 2011, 2013, 2014, 2016, 2017 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@milo.name>, 2008-2010, 2011, 2013, 2014, 2016. +# Milo Casagrande <milo@milo.name>, 2008-2010, 2011, 2013, 2014, 2016, 2017. # -#: src/create.c:1599 +#: src/create.c:1598 msgid "" msgstr "" -"Project-Id-Version: tar-1.29\n" +"Project-Id-Version: tar-1.30\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" -"PO-Revision-Date: 2016-05-17 19:00+0200\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" +"PO-Revision-Date: 2017-12-18 09:05+0100\n" "Last-Translator: Milo Casagrande <milo@milo.name>\n" "Language-Team: Italian <tp@lists.linux.it>\n" "Language: it\n" @@ -21,7 +21,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" -"X-Generator: Poedit 1.8.7\n" +"X-Generator: Poedit 2.0.4\n" #: gnu/argmatch.c:134 #, c-format @@ -100,7 +100,7 @@ msgid "give a short usage message" msgstr "Mostra un breve messaggio sull'uso" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "NOME" @@ -138,29 +138,29 @@ msgid "write error" msgstr "Errore di scrittura" #: gnu/getopt.c:278 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous\n" -msgstr "%s: l'opzione \"%s\" è ambigua\n" +msgstr "%s: l'opzione \"%s%s\" è ambigua\n" #: gnu/getopt.c:284 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" -msgstr "%s: l'opzione \"%s\" è ambigua; possibilità:" +msgstr "%s: l'opzione \"%s%s\" è ambigua; possibilità:" #: gnu/getopt.c:319 -#, fuzzy, c-format +#, c-format msgid "%s: unrecognized option '%s%s'\n" -msgstr "%s: opzione \"%c%s\" non riconosciuta\n" +msgstr "%s: opzione \"%s%s\" non riconosciuta\n" #: gnu/getopt.c:345 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" -msgstr "%s: l'opzione \"%c%s\" non accetta un argomento\n" +msgstr "%s: l'opzione \"%s%s\" non accetta un argomento\n" #: gnu/getopt.c:360 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' requires an argument\n" -msgstr "%s: l'opzione \"--%s\" richiede un argomento\n" +msgstr "%s: l'opzione \"%s%s\" richiede un argomento\n" #: gnu/getopt.c:621 #, c-format @@ -235,12 +235,12 @@ msgstr "^[sSyY].*" msgid "^[nN]" msgstr "^[nN].*" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Pacchetto creato da %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Pacchetto creato da %s\n" @@ -248,12 +248,11 @@ msgstr "Pacchetto creato da %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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "©" -#: gnu/version-etc.c:86 -#, fuzzy +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -263,8 +262,8 @@ msgid "" "\n" msgstr "" "\n" -"Licenza GPLv3+: GNU GPL versione 3 o successiva <http://gnu.org/licenses/gpl." -"html>\n" +"Licenza GPLv3+: GNU GPL versione 3 o successiva <https://gnu.org/licenses/" +"gpl.html>.\n" "Questo programma è software libero: siete liberi di modificarlo e " "ridistribuirlo.\n" "Non c'è ALCUNA GARANZIA, per quanto consentito dalle vigenti normative.\n" @@ -403,14 +402,13 @@ msgid "%s home page: <%s>\n" msgstr "Sito web di %s: <%s>\n" #: gnu/version-etc.c:253 -#, fuzzy, c-format +#, c-format msgid "%s home page: <https://www.gnu.org/software/%s/>\n" -msgstr "Sito web di %s: <http://www.gnu.org/software/%s/>\n" +msgstr "Sito web di %s: <https://www.gnu.org/software/%s/>\n" #: gnu/version-etc.c:256 -#, fuzzy msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n" -msgstr "Aiuto per l'utilizzo di software GNU: <http://www.gnu.org/gethelp/>\n" +msgstr "Aiuto per l'utilizzo di software GNU: <https://www.gnu.org/gethelp/>\n" # (ndt) metto tra virgolette visto che è # il nome di una funzione non traducibile @@ -531,197 +529,197 @@ msgstr "Impossibile reindirizzare i file dalla shell remota" msgid "Cannot execute remote shell" msgstr "Impossibile eseguire la shell remota" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Direzione di seek fuori dell'intervallo" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "Direzione di seek non valida" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "Offset di seek non valido" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Offset di seek fuori dell'intervallo" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "Conteggio byte non valido" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "Conteggio byte fuori dell'intervallo" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "EOF prematuro" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "Codice d'operazione non valido" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "Operazione non supportata" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Argomenti non attesi" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 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:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "NUMERO" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "Imposta il livello di debug" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "FILE" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "Imposta il nome del file di output per il debug" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "impossibile aprire %s" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "troppi argomenti" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Comando spazzatura" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Questo non sembra un archivio tar" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Byte totali letti" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Byte totali scritti" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "Byte totali eliminati" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(pipe)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "" "Lettura del contenuto dell'archivio dal terminale non consentita (manca " "l'opzione -f?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "" "Scrittura del contenuto dell'archivio sul terminale non consentita (manca " "l'opzione -f?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Valore di record_size non valido" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Non è stato indicato il nome di un archivio" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Impossibile verificare archivi su stdin/stdout" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "L'archivio è compresso. Usare l'opzione %s." -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Impossibile aggiornare archivi compressi" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "All'inizio del nastro, uscita immediata" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Troppi errori, uscita" -#: src/buffer.c:967 +#: src/buffer.c:969 #, 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:988 +#: src/buffer.c:990 #, 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:1075 +#: src/buffer.c:1077 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:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek non si è fermata al limite di un record" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: contiene un numero di volume non valido" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Overflow del numero di volume" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Preparare il volume #%d per %s e premere Invio: " -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "Ricevuto EOF quando era attesa la risposta dell'utente" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "Attenzione: l'archivio non è completo" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -733,67 +731,67 @@ msgstr "" " q Termina tar\n" " y o Invio Continua l'operazione\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Esegue una subshell\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? Stampa questo elenco\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Nessun nuovo volume; uscita.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "Nome file non specificato. Riprovare.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Input non valido. Premere ? per l'aiuto.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "comando \"%s\" non riuscito" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s non continua su questo volume" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, 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:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s è la dimensione sbagliata (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Questo volume è fuori sequenza (%s - %s != %s)" -#: src/buffer.c:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "L'archivio non ha un'etichetta corrispondente a %s" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "Il volume %s non corrisponde a %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -801,212 +799,212 @@ msgstr "" "%s: il nome del file è troppo lungo per essere scritto in un'intestazione " "GNU multi-volume, troncato" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "write non si è fermata al limite di un record" -#: src/compare.c:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "I contenuti sono differenti" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "EOF inatteso nell'archivio" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "I tipi dei file sono diversi" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "I modi sono diversi" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Gli UID sono diversi" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "I GID sono diversi" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Gli orari di modifica sono diversi" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Le dimensioni sono diverse" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Non è collegato a %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "I collegamenti simbolici sono diversi" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "I numeri dei device sono diversi" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Verifica " -#: src/compare.c:480 +#: src/compare.c:479 #, 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:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "L'archivio contiene nomi di file con i prefissi iniziali rimossi." -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "L'archivio contiene nomi di file trasformati." -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "La verifica potrebbe non riuscire a trovare i file originali." -#: src/compare.c:620 +#: src/compare.c:619 #, 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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "Un singolo blocco di zeri a %s" -#: src/create.c:74 +#: 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:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Generazione delle intestazioni ottali negative" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, 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:616 +#: src/create.c:615 #, 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:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: il nome del collegamento è troppo lungo; non archiviato" -#: src/create.c:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, 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:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "contenuti non archiviati" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: tipo di file sconosciuto; file ignorato" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "Collegamenti mancanti a %s." -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: il file non è modificato; non archiviato" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: il file è l'archivio; non archiviato" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "directory non archiviata" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: file modificato mentre era in lettura" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: socket ignorato" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: door ignorata" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Passaggio alla prossima intestazione" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Eliminazione non-intestazione dall'archivio" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: orario %s inverosimilmente vecchio" # (ndt) problema del plurale... -#: src/extract.c:320 +#: src/extract.c:319 #, 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:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: incoerenza inaspettata nel creare la directory" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: file esistente saltato" @@ -1030,7 +1028,7 @@ msgstr "" msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: impossibile estrarre -- il file continua da un altro volume" -#: src/extract.c:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Intestazione di nome lungo inattesa" @@ -1054,7 +1052,7 @@ msgstr "Il file %s corrente è più recente o ha la stessa data" #: src/extract.c:1664 #, c-format msgid "%s: Member name contains '..'" -msgstr "" +msgstr "%s: il nome del membro contiene \"..\"" #: src/extract.c:1696 #, c-format @@ -1066,22 +1064,22 @@ msgstr "%s: impossibile eseguire il backup di questo file" msgid "Cannot rename %s to %s" msgstr "Impossibile rinominare %s in %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: directory rinominata da %s" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: directory nuova" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "%s: la directory si trova su un altro file system; non archiviato" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: directory rinominata" @@ -1207,35 +1205,35 @@ msgstr "%s: eliminazione di %s\n" msgid "%s: Cannot remove" msgstr "%s: impossibile rimuoverlo" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: omesso" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blocco %s: ** Blocco di NUL **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "blocco %s: ** Fine del file **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "blocco %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1243,161 +1241,160 @@ msgstr "" "che sia in complemento a due" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, 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:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "L'archivio contiene intestazioni base-64 obsolete" -#: src/list.c:852 +#: src/list.c:853 #, 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:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, 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:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " collegamento a %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " tipo di file sconosciuto %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Collegamento lungo--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Nome lungo--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Intestazione del volume--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Continua al byte %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Creazione directory:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "Rinomina di %s in %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: impossibile rinominarlo in %s" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "Rinomina di %s nuovamente in %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: file rimosso prima di poterlo leggere" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "il processo figlio" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "il canale tra processi" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "Selezione dei nomi file locali:" -#: src/names.c:72 +#: src/names.c:71 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/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "DIR" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "Passa alla directory DIR" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "Prende i nomi da estrarre o creare dal file FILE" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "-T legge nomi terminati da NULL, implica --verbatim-files-from" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "Disabilita l'effetto dell'opzione --null precedente" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "" "Toglie i caratteri di citazione dai nomi dei file o dei membri (predefinito)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "Non toglie i caratteri di citazione dai nomi dei file o dei membri" -#: src/names.c:87 -#, fuzzy +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" -msgstr "-T legge i nomi file come sono (senza gestione opzioni)" +msgstr "-T legge i nomi file come sono (senza escape o gestione opzioni)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "" "-T considera i nomi file che iniziano con un trattino come opzioni " "(predefinito)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "MODELLO" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "Esclude i file i cui nomi corrispondono a MODELLO" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "Esclude i modelli elencati in FILE" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1405,24 +1402,24 @@ msgstr "" "Esclude i contenuti delle directory contenenti CACHEDIR.TAG, a parte il " "file .TAG stesso" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "Esclude tutto quanto all'interno di directory contenenti CACHEDIR.TAG" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "Esclude le directory contenenti CACHEDIR.TAG" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" "Esclude i contenuti delle directory contenenti FILE, a parte FILE stesso " -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "Legge i modelli di esclusione per ogni directory da FILE (se esiste)" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" @@ -1430,119 +1427,123 @@ msgstr "" "Legge i modelli di esclusione per ogni directory e sotto-directory da FILE " "(se esiste)" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "Esclude tutto quanto all'interno di directory contenenti FILE" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "Esclude le directory contenenti FILE" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "Esclude le directory dei sistemi di controllo della versione" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "Legge i file di esclusione dai file \"ignore\" dei CVS" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "Esclude i file di backup e di blocco" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "Entra ricorsivamente nelle directory (predefinito)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "Non entra automaticamente nelle directory" -#: src/names.c:130 +#: src/names.c:129 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/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "I modelli corrispondono all'inizio del nome del file" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "" "I modelli corrispondono dopo qualsiasi \"/\" (predefinito per le esclusioni)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "Non fa differenza tra maiuscole e minuscole" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "Considera diverse le maiuscole e le minuscole (predefinito)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "Utilizza i metacaratteri (predefinito per le esclusioni)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "Corrispondenza letterale della stringa" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "I metacaratteri corrispondono \"/\" (predefinito per le esclusioni)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "I metacaratteri non corrispondono \"/\"" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" +"Le seguenti opzioni erano utilizzate dopo un qualsiasi argomento non " +"opzionale in modalità creazione o aggiornamento. Queste opzioni sono " +"posizionali e funzionano solo sugli argomenti che le seguono: riorganizzarle " +"correttamente." -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" -msgstr "" +msgstr "-C %s non ha alcun effetto" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" -msgstr "" +msgstr "--%s %s non ha alcun effetto" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" -msgstr "" +msgstr "--%s non ha alcun effetto" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "riga di comando" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: l'elenco file richiesto da %s è già stato letto da %s" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "impossibile dividere la stringa \"%s\": %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: il nome di file letto contiene un carattere NULL" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "Usati caratteri di corrispondenza nei nomi dei file." -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1550,47 +1551,47 @@ msgstr "" "Usare --wildcards per abilitare la corrispondenza o --no-wildcards per " "disabilitare l'avviso" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: non trovato nell'archivio" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: occorrenza richiesta non trovata nell'archivio" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "Etichetta dell'archivio non corrispondente" -#: src/names.c:1717 +#: src/names.c:1747 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:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "Solo un'opzione -C è consentita con --listed-incremental" -#: src/tar.c:88 +#: src/tar.c:87 #, 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:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: formato dell'archivio non valido" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "Richieste funzionalità GNU su un formato di archivio incompatibile" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1814,7 +1815,7 @@ msgstr "Selezione stream di output:" msgid "extract files to standard output" msgstr "Estrae i file sullo standard output" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "COMANDO" @@ -1850,7 +1851,7 @@ msgstr "Usa FILE per mappare gli UID dei proprietari del file e i nomi" msgid "use FILE to map file owner GIDs and names" msgstr "Usa FILE per mappare i GID dei proprietari del file e i nomi" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "DATA-O-FILE" @@ -2063,7 +2064,7 @@ msgstr "Rifà i blocchi durante la lettura (per le pipe di 4.2BSD)" msgid "Archive format selection:" msgstr "Selezione formato di archiviazione:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "FORMATO" @@ -2150,64 +2151,64 @@ msgstr "PROG" msgid "filter through PROG (must accept -d)" msgstr "Filtra attraverso PROG (deve accettare -d)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Selezione dei file locali:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "Resta nel file system locale durante la creazione dell'archivio" -#: src/tar.c:693 +#: src/tar.c:694 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:695 +#: src/tar.c:696 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:697 +#: src/tar.c:698 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:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "NOME" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "Inizia dal membro NOME durante la lettura dell'archivio" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "Archivia solo i file più recenti di DATA-O-FILE" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "DATA" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "Confronta data e ora solo quando il contenuto è cambiato" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "CONTROLLO" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "Esegue un backup prima di rimuovere, usando il CONTROLLO di versione" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "STRINGA" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2215,63 +2216,63 @@ 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:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Trasformazioni dei nomi di file:" -#: src/tar.c:715 +#: src/tar.c:716 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:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "ESPRESSIONE" -#: src/tar.c:718 +#: src/tar.c:719 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:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Output informativo:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "Elenca prolissamente i file elaborati" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "PAROLACHIAVE" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "Controllo di avviso" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" "Visualizza un messaggio di avanzamento ogni NUMERO-esimo record (predefinito " "10)" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "AZIONE" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "Esegue l'azione a ogni punto di controllo" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "Stampa un messaggio se non tutti i collegamenti sono archiviati" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "SEGNALE" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2283,35 +2284,35 @@ msgstr "" "sono: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 e SIGUSR2; sono accettati anche i " "nomi senza il prefisso SIG" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "Stampa le date di modifica del file in formato UTC" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "Stampa la data del file in tutti i suoi dettagli" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "Invia l'output prolisso al FILE" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "Mostra il numero di blocco nell'archivio con ogni messaggio" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "Chiede conferma per ogni azione" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "Mostra le impostazioni predefinite di tar" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "Mostra gli intervalli validi per i campi snapshot-file" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2319,33 +2320,33 @@ msgstr "" "All'elencazione o all'estrazione, elenca ogni directory che non corrisponde " "al criterio di ricerca" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "Mostra il nome del file o dell'archivio dopo la trasformazione" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "STILE" -#: src/tar.c:765 +#: src/tar.c:766 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:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "Caratteri di citazione aggiuntivi da STRINGA" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "Disabilita la citazione per i caratteri dalla STRINGA" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Opzioni di compatibilità:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2353,22 +2354,22 @@ msgstr "" "Alla creazione, uguale a --old-archive; all'estrazione, uguale a --no-same-" "owner" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Altre opzioni:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "Disabilita l'uso di alcune opzioni potenzialmente dannose" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "L'opzione \"%s\" non può essere usata con \"%s\"" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" @@ -2376,40 +2377,40 @@ msgstr "" "Non è possibile indicare più di un'opzione \"-Acdtrux\", \"--delete\" o \"--" "test-label\"" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Conflitto tra le opzioni di compressione" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Nome del segnale sconosciuto: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "File campione della data non trovato" -#: src/tar.c:1036 +#: src/tar.c:1038 #, 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:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "Opzione %s: la data \"%s\" viene considerata come %s" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "Filtra l'archivio attraverso %s" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "Argomenti validi per l'opzione --quoting-style sono:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2417,163 +2418,163 @@ msgstr "" "\n" "Questa versione di tar ha le seguenti impostazioni predefinite:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "Proprietario o ID gruppo non valido" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Fattore del blocco non valido" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Lunghezza del nastro non valida" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "Valore del livello incrementale non valido" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Più di una data di soglia" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "Valore versione sparsa non valido" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve=\"system\" non è supportato su questa piattaforma" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "Il valore --checkpoint non è un intero" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Modo fornito sull'opzione non valido" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Numero non valido" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Dimensione del record non valida" -#: src/tar.c:1864 +#: src/tar.c:1873 #, 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:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Numero di elementi non valido" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "Consentita solo un'opzione --to-command" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Argomento densità non corretto: \"%s\"" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Densità sconosciuta: \"%c\"" -#: src/tar.c:2066 +#: src/tar.c:2075 #, 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:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: posizione dell'errore" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "Errore nell'analizzare %s" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[FILE]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "argomenti non opzione in %s" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "impossibile dividere TAR_OPTIONS: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "La vecchia opzione \"%c\" richiede un argomento." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence non ha senso senza un elenco di file" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "Archivi multipli richiedono l'opzione \"-M\"" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "L'opzione --level non è utilizzabile senza --listed-incremental" -#: src/tar.c:2424 +#: 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Impossibile verificare archivi multi-volume" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Impossibile verificare archivi compressi" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Impossibile usare archivi multi-volume compressi" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Impossibile concatenare archivi compressi" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "--clamp-mtime necessita di una data specificata utilizzando --mtime" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option può essere usata solo su archivi POSIX" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "--acls può essere usata solo su archivi POSIX" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "--selinux può essere usata solo su archivi POSIX" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "--xattrs può essere usata solo su archivi POSIX" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2581,84 +2582,93 @@ msgstr "" "Impossibile determinare il nome della directory principale, impostarlo con --" "one-top-level=DIR" -#: src/tar.c:2573 +#: src/tar.c:2582 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:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Rifiuto totale di creare un archivio vuoto" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Le opzioni \"-Aru\" sono incompatibili con \"-f -\"" -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "" "È necessario specificare una delle opzioni \"-Acdtrux\", \"--delete\" o \"--" "test-label\"" -#: src/tar.c:2768 +#: src/tar.c:2800 #, 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:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: il file si è ridotto di %s byte" msgstr[1] "%s: il file si è ridotto di %s byte" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "Il modello %s non può essere usato" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "La parola chiave %s non può essere sostituita" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "Intestazione estesa malformata: manca la lunghezza" -#: src/xheader.c:677 +#: src/xheader.c:695 #, c-format msgid "Extended header length %*s is out of range" msgstr "La lunghezza dell'intestazione estesa %*s è fuori dall'intervallo" -#: src/xheader.c:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "Intestazione estesa malformata: manca lo spazio dopo la lunghezza" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "Intestazione estesa malformata: manca il segno di uguale" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "Intestazione estesa malformata: manca un newline" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "Parola chiave sconosciuta \"%s\" dell'intestazione estesa ignorata" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" @@ -2667,48 +2677,48 @@ msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:1053 +#: src/xheader.c:1071 #, 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:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Intestazione estesa malformata: %s=%s non valido" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Intestazione estesa malformata: %s=%s in eccesso" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, 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:1543 +#: src/xheader.c:1561 #, 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:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s: timeout non valido" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: azione di punto di controllo sconosciuta" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "lettura" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "scrittura" @@ -2716,7 +2726,7 @@ msgstr "scrittura" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Punto di controllo di scrittura %u" @@ -2725,12 +2735,12 @@ msgstr "Punto di controllo di scrittura %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Punto di controllo di lettura %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2738,99 +2748,103 @@ msgstr "" "genfile manipola i file per la suite di test GNU paxutils.\n" "Le opzioni sono:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Opzioni di creazione file:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "DIMENSIONE" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Crea file della DIMENSIONE indicata" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Scrive sul file NOME invece dello standard output" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "Legge i nomi dei file da FILE" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T legge nomi terminati da NULL" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "Riempie il file con il MODELLO fornito. MODELLO è \"default\" o \"zeros\"" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "Dimensione del blocco per il file sparso" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "Genera file sparso. Il resto della riga di comando fornisce la mappa del " "file." -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "OFFSET" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "Si posiziona all'OFFSET indicato prima di scrivere i dati" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "Elimina i messaggi di diagnostica che non sono errori" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Opzioni per le statistiche:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Stampa i contenuti di struct stat per ogni file dato. Il FORMATO predefinito " "è:" -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Opzioni di esecuzione sincrona:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "OPZIONE" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "Esegue ARGOMENTI. Utile con --checkpoint e uno tra --cut, --append, --touch, " "--unlink" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" "Esegue l'azione indicata (consultare più sotto) al raggiungimento del punto " "di controllo NUMERO" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "Imposta la data per l'opzione --touch successiva" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" "Visualizza i punti di controllo eseguiti e lo stato di uscita del COMANDO" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2838,7 +2852,7 @@ msgstr "" "Azioni di esecuzione sincrona. Queste sono eseguite quando viene raggiunto " "il punto di controllo fornito dall'opzione --checkpoint." -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2846,85 +2860,85 @@ msgstr "" "Tronca il FILE alla dimensione specificata dall'opzione --length precedente " "(0 se non viene fornita)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Aggiunge DIMENSIONE byte al FILE. DIMENSIONE è fornita dall'opzione --length " "precedente." -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "Aggiorna l'orario di accesso e modifica del FILE" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "Esegue il COMANDO" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" -msgstr "" +msgstr "Elimina FILE" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Dimensione non valida: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Numero fuori dall'intervallo consentito: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Dimensione negativa: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) non riuscita" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "lunghezza file richiesta %lu, effettiva %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "il file creato non è sparso" # (ndt) ? -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "Errore nell'analizzare il numero vicino a \"%s\"" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Formato data non conosciuto" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ARGOMENTI...]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "impossibile aprire \"%s\"" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "impossibile eseguire seek" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "il nome del file contiene caratteri NULL" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" @@ -2932,42 +2946,42 @@ msgstr "" "file" # (ndt) ? -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "maschera non corretta (vicino a \"%s\")" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "Campo \"%s\" sconosciuto" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "impossibile impostare l'orario su \"%s\"" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "impossibile troncare \"%s\"" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "comando non riuscito: \"%s\"" -#: tests/genfile.c:781 -#, fuzzy, c-format +#: tests/genfile.c:772 +#, c-format msgid "cannot stat `%s'" -msgstr "impossibile troncare \"%s\"" +msgstr "impossibile eseguire stat su \"%s\"" -#: tests/genfile.c:785 -#, fuzzy, c-format +#: tests/genfile.c:776 +#, c-format msgid "cannot remove directory `%s'" -msgstr "impossibile impostare l'orario su \"%s\"" +msgstr "impossibile rimuovere la directory \"%s\"" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "impossibile eseguire l'unlink di %s" @@ -3007,33 +3021,5 @@ msgstr "Comando terminato\n" msgid "--stat requires file names" msgstr "--stat richiede i nomi dei file" -#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" -#~ msgstr "%.*s: il parametro ARGP_HELP_FMT deve essere positivo" - -#~ msgid "%s: option '--%s' doesn't allow an argument\n" -#~ msgstr "%s: l'opzione \"--%s\" non accetta un argomento\n" - -#~ msgid "%s: unrecognized option '--%s'\n" -#~ msgstr "%s: opzione \"--%s\" non riconosciuta\n" - -#~ msgid "%s: option '-W %s' is ambiguous\n" -#~ msgstr "%s: l'opzione \"-W %s\" è ambigua\n" - -#~ msgid "%s: option '-W %s' doesn't allow an argument\n" -#~ msgstr "%s: l'opzione \"-W %s\" non accetta un argomento\n" - -#~ msgid "%s: option '-W %s' requires an argument\n" -#~ msgstr "%s: l'opzione \"-W %s\" richiede un argomento\n" - -#~ msgid "Unlink FILE" -#~ msgstr "Esegue l'unlink di FILE" - -#~ msgid "same as both -p and -s" -#~ msgstr "Come -p e -s assieme" - -#~ msgid "" -#~ "The --preserve option is deprecated, use --preserve-permissions --" -#~ "preserve-order instead" -#~ msgstr "" -#~ "L'opzione --preserve è deprecata, usare --preserve-permissions --preserve-" -#~ "order" +#~ msgid "OPTION" +#~ msgstr "OPZIONE" diff --git a/po/ja.gmo b/po/ja.gmo index 4ff1096fb4b249a43bd698c1d26573d9f5bcb69d..ba6493886ab965ddb77c0040fb7e756d14f87675 100644 GIT binary patch delta 14775 zcmbPwka_Jz=K6a=EK?a77#Mt+7#Iu~7#L;<F)#=-GcYiyGBAL|eGDOVh#><*gdqbM zv=}llNHQ=mv>GxnoMvEPm~Y6yAi}`FkZr`kz{bG9&|t*CpuoVu&~C)QAkV<Su)>Ie zfro*C;RKYvYQ(_M&cML%$cUkyL5zWcA<LM7L63ofq0ty@FT)071_nU}28L_K3=F~y z3=A)f85lrz|1oA@P-0+U&@*9RaA#m(2sB|}P+?$Tm}$bmz{|kEu+M~nL56{W;fx6b zgFXWT!%Gv010+ou7_1o>7%WX07^D~&7)nhc=1(xKXJ8O#U|?8e%D^DXz`(G}lz~Bj zfq~(IDFcHX0|UcDQw9b#ke|&UK2$ejV6b9fV6ZWRIHcT+fx(P{fnk;z14A4G1H(l# zhy@1b3=Fai3=H1p3=9$s3=Em(3=EnK3=B=?kdRno&cKkuz`(Gx-kgC!hk=1X&H~~P zZwm$nBL)VBWDAIor&%yCn1F)Lf`LJqfq~(#1p`A80|SGiB?CC*S}Y+Boo&g$PzLgV zCB$KdRtyYw3=9k*RtyaM3=9mDtsqgd*ouKch=GCOh!w=1`s-E<3>pj!3|!U_7aChb z42ZR6U@!*7r8UHdTdW}=^V%9>;U8;=1Ep;s4)e8PU{GXWU?{YKIC!!R1A{pO1H%a$ zNYpaeLd@5<Wnl1PU|@)}1*@-TSYpe-AkDzQaLg7G_m6BLA;Dn>2^j@DNF4gwK@7^Z zV_;BcU|^VI2XXijJ4lefwS)MK!yY0pZ4Ze8XM2eLL@2+}9+IHvgZcFg3=8cU7(fYr zzdgj~hwULgcxDet&C(8#w4vkxvB1IslKQ<J7#R2%7#LEabO}_x*#Y9yX%3J?cfbLX zNdGuMf?UxN60#wV3=I193=9k%AO-^i!wyG?k6$=Kd?f0`z@W{*z+m76$ptY^5CaRG zAW^W!i2)R<45ytK7;G3A7&x6FA?M}{ad@0F0|PtAfzA*MbDbF&Tp1V`7CJ*5_}rO+ zq282%fkDs(lB(TZAP#79fduV(7l==9xIldH$pw<=#9bjls^<!Epr0!PgBt?_LzOGU zqJyps3|b5f3}0O#A*$fUzyPwx*$v{bN;gQ<G`KO;gX4al8>H~r<p%M=Yd46?ncX2Y zH<T83hoow0cSyF3a)&sq(H&y(GIs`sNCpOmTkeoFW#R!*7vKSLc)15S(J}OSKpeio zqaGq~#{-gz|9L=MtmFyF@2;MZ0wu~566EEc5SLH$gha^}Pe`^p;R&(eB~%|MiGxZ$ zQ7=gLGxcI%aA06yaP@+OaGMvzoXz!K5Q8pyL4x$D7Xt$e0|NuAH>9B8@`fZ%ac@YP zkoIO^;AUW8F!P33?Bor}mdW0bL|WnvF{jHL;-OXE5Qm?G^51$xvZbI8#N+jzJ`4<8 zpt9Qs;`1^eh|6X|`P+RU2Hf(2_~fS#Bo%Y|LVRN53yJGYD1VAC!~+L?A#r`o7vi9^ zzK{@l>kCOMEPmjqt7q``gZQk#4^mWi`$5X)C4P|9y3LP)A(4@R;g280;<x~a11APR ze7rsY;;^Fukf^#E014_(0SpXI3=9m$fe?OKAjHSp10f-JGZ0kX)H5(V4TNaq4q{-? zWnf^?2!cdOSP&#JW(7g=eNzy`!l^+JAFU38q><A>kf?YN1Tlv(7?Nw`f*}QwMKGkC zNC<{_G(Q*;5?vs5p!~lu7-HdWsKj|F|5-33Zhr+s4CW4jsM836ILIah5)%F)kX(`* z0&!Sr2qbEzhCnPl6asPh-4IAE`8fm<MU0^g4E3PI#1;yPE1^(`k0e7Oajq8%iCf=L zNYGV4=~<!RxMSD@r5}bus#~@&NL^tT2Jv}r7^J|O8V1R>7sDXsia<D|Jg^LBs0Rmm zemJB=ni~$W@OU@_Loovb!>4ct21f=4hO`KX!&XE<f_85NBxJ5fKyt~82uKKhjezJE ziiG&kHWK17r$|VC_l$(3t<p$Hh_px6LlWKGNQi;kA|XL|9IEkoBm)C00|UdmNKj&7 zVE7UV@wrqKBpcaBK^#^d1xYJCQIKr6Bnnblorr>1{5=X%TPjCG(n4r7BnngNqakru z9t}xEAU>$!u^<}agZ<Hv)O{oxV$qdoNC>=)hFHKH14-RRF_5?|j)8<gV+<slt%-qH z^f?Bik1ZBb(kjG4JX9YT%fR5mz`#%*%fR5wz`(F47Ls^C%^6TNs~ZRLS!f)@pxih} z>TQUFB*y7+5Qnagg9P;kD1SSYzb6h7f`{WEMe@lwNQgg;1KU&2@GlM$7uxZV5O9o# z#A#AIBr5XbAr9z|hxlxHJS0dj#Y4*We^6RA0TNO^2@DK{3=9l036Mm5E&<}ew@~_1 z0s})dBLl<t1O|q44D}2Q!AX#yP)ddbsYf!TBrH#c1lg=)h)=g9L(<3zDF0?M149%8 z1H;>7NUHZpffOwDDGUrg3=9n2DG>cPQXn4rlmdxDp;SmnsHZY82!ry!b1EbR!c(C^ zoXWu90cv`sLVSKQ6{7KBDkSc{r9y&QJ&l1O4AdG<V_@(EHOHa+^Jx(EYUz+#(K;QH zJ@eBcX>EQw!~x6G85rt8CEnq5NSuC5hXff%2E@ne8ITaM&Va~gWkB+CV+O?Fy%`XL zKW0FpL@^VR?|m~Nxu7%?;`5oA5DRx^LZawuCIdqd0|Ud;Oon=JP+4R#FmQr=0Hyo0 zAc<xsl%AgjX|pZOg47AivmoWg+boEM;@Ob=Z=Vf`%9w13N1C!37!p7&o@{VpV_?dG zgs6TF#DnfR^$-owIS`*V=0NIz4N&@C4kR)0<U-nnb-9q*a&s=kf_=FVi|^(_O0-|O zkV?lO50cM|^B`%aDG#D<avmg&Y{-K+WKTU*;tG`h2-U!s4~awhd`Oxw$%hod?)eZ0 zX68c-n4S+QA=l?a^8ZJu`v3WmTqINg@wt2f#K%4b5OWitbbV<7Bu={uAgTUX0Rux8 zsOwY!DXT*YA(cpNAp=7ysDD@piR*ub5QDUeAZft92$Bo(iy+x_SrH_$UWCds6+;@S zM#Yf2Aio&wuzH4d#gMqX4V7Rmfs_L-C6KsIh0?1_AVK@F1mZB0Qb>^+TMBVNe<>uW z_m@Iy#S5hj4B?=nyA;w_bSr~6ysr$BICqtS98}N1aIXv!x6<X1APy*pq}rl#h)*U# z`Fo-AcgrC@{a+5T$gBe5;E)Q414}C)QM981V&1a~h&ql+NZp}U2?-hRN(KgNQ2wu} zWMHrawf`$28b4J+T&Pe5p<SvV`8%Tu;`2>akSMub1&PydP;stmh`ez%!~-$a5DROn zA&G8bHN+unt05tAx|)HZ9@HKFUJZ#$p&E$6>NOCbJJmo8%B_JoptlAR#MhzfUerLU zQ|4N5Tr!B(GB9{EFfcgPLLAZurMK5Y>X-+$kdRibgXEs5I)-|1U#_x_fnhx;pVmP_ zBCsBkCc5h(F5OxW@yWw_NSV*pzyR*9>ozbjJY`^DaBg5=5Mg9s&}@X1^>$5=xOZ-X z)Q+>8AZg@I6C}IyG(!@*QFA@S<)O`xpl@o1DA>>palo}^hyxf}ASIwq3na*$TOdIi z-U2Dvl3O4pTYU>81p8Yc`c}0tFj#;FGFl)Z%-;&>X{oeA8nf~Btq_+@YJ~*lp;k!H zUulI@9{-_y$u@|%OB=+Z{5FWb`Zh>OxxNijCv0tl^a=O0LG=G>gM^q!JER=3Zif_f ze(eklu?!3h^|kE~gKxJ(LV~RW;&Wpt9oqp3s`d^@i)U2_Bq|<tKvFk*C&VY3osf`= z>4eBPbwbk4@=i!<Ki&zc_kVOk;$E-|?2&o~gDwUJKL!Q{hb{(&U<L+;{w_!mKJJ19 z;lD1354E}>78rCxf<CO9f#DV-14B|bq$ITMWneI8WMByGg+x_vAEc;W(g(?&>!I|8 zK1d?|*avbzJp%(%KLbM(0|SFlKP1Se_Cr$d`hJLoH=yGG`XL5OOn{_f{RxoDCuIV} z;XM-|>K{yiIFM~3#A2a|kdQT=2=P$DL`VtPGm(Ko6_o!^PlUwH$BB@jVVMNUr^=Hc zm5AdcNE8H2f<#sEBuEg?n*_;LhbKWS;+V|95X!*7pgEa=AsQ67lOaKVdosklFOwna zgr-2E%y<d|Lp^8&BW(%;LoR4oYzjod<0+8r#WEEVcT!U!b%gg+NG;bs6_SYdPGw+7 zW?*1=GZm6}1ExU=tfXlS43!KF3~kdOshwduq!zWF4pFyuI>ZC}r!&-p2M(W1hvfU8 z)1irP2Be6ModHR`Q)WQ2(e4?LBKFG+hy%@MLZZrdCL~D9W<m_!IuoMr)=Y@Q8D~Mv zvz-O;K*=nKx>d9485jZ?7#Pmaf}~c(*^r=eoDDHJel{e|J7z;1Hh(rGj!({p82BD4 zt~LiEA20_Jf>m=MK|gyAB&4>?fkg4+Igob1w>gmVK)8M`q-CQq7vcb|xsd+8*IY<Y z`ptzTvZA>R3>=_=#<>uK7S9ExUIvD3b0Hyd49dSV7t#)R0~P-@7vd3td652q<vfVF z4f7yPxcVjYAaQ(S9wc>g&WE_zbUuWiG9OaHO_&c!d~4=Ivd{JTkVfi@`H&DXT)@C! z&%nSCz5rCMGB8YE0Le{P7C;K7cMBkm&#wz0x#2HFeLaKLLP(HjEri5v$3jRPon8p3 z-x(J{9B8}<5@achAaPo`2$Ea2LglY4f&@M5Vn|w1TMQ}E;}=7+Ywu!6E;_Ur5_L}( zgB(`Rz#y{(BB8tl64!1^AR!RD1me@4B@ma-h0;r*^x7qmcK+5Ski^8a6jCCpFNIj> zxs-t+gn@yfZYiWdySx;V?cObgM782F1_m8a{&!pkk;q#HF=*j3NKhYJ21&&qmqAK6 ziRF;W$6z_c0GH*EkV{z(NefL-{v;@W1C&0n91=1YmP0)BaXAA+J_7>-(+UQLdeCrs z(F%xysVg8BY+C_IrKeUvs?+ByAdSg4D<FyU=L(2J|E_?PbV@5B4%S-<NsN&zAt9L$ z<+rVbMBN;y_{NnG`%bK6s0WYBzg!7PM5?PGWw!S!h=#CL5QDN;K{Pb2f~Z@(3Q{tj zTm`ZC#wti{$h;a7BF3vBAsV<E;(?acptxpW=v)oSmJ?P(LUiTodPuEya5coBpQ|B3 zsj>#5z+??1?tIoj;yQf|149xc1H+azkW?(b4x-Lw9VFyp)<GOrunuBT{W?e^cE&me z244mShI{KEy=<NJkX%(zzaFBnXFbHHOV>m4_n!5TxIe!hQu}>_%Kuppu|RkOM7`1m zh<eKnkfPOR10)3EHbC^(K;;*2fLOR~1Ed_e1QoBpy#bOa-fe)y`F|*1W+TKR-Hni_ zu-OPv7q}6UTaq?HEN+F$&)5hFskIv+x#a|ue_<me>RxYzgcQ#vNE%Vu1TLuR8LT!z z;>cqYBr*AJg2YuML;*v>CWue-HbIKm)=iLnzkU<M;B%WG4tfuzg*HRV3)9Vzs7>1p zk)O92Qj#9r49Wj5!Q%A{3<_Hy`PF#~q)4pT0*Tu-TOdJra|;7QJZKJRD@0?$R)|lh zZ-wNFO<N&RxPL1oL~d+_`1CbYJ@Yn*2d%b2JZ8TQQY5==V_@I|<^TL`5TDd-gCxTF z+aLy<+6J-c(Kbk~_zN|NV>`qE-tCawV78qBJW3X`9a1jL+YX7cecK@+c6mF*gMYU} zJZ7{5(ngHm!N5=tnr5530~{9&>vurnZto6A5FgzENfS?YKzzWs6Ozc-c0!^=VkgAs z`a2;(?y(b6$yDxygv5cJkmmR0ose80vI`OwQM(|Cw00LmJ$RC7_AZFe&+mdL{Iv^` zO&oSZT->r75)~VFLp0vl4e{x>-H;Fx+XHck;U0)Xz4kzY+8@dfgYu*IKyp*k9!O%& z*i#SjN#!1h4<_t^1l_?skZSVU9*9qV?SVLucQ3?3i@lH_4c-fhf{wiq2d&!+iOO?( zAtCsFF9Smk0|Nu!K1lgcy$|BRekeVqejfwFMn(pPnfn+R7J?=W4?qljdjR4f;e(K( z)&)vu9)x7ezJm~l&4tn%4ni6-hYvz(PtijVk9i+rV5nwbU`RRyG56jfNJz3Ah9us4 z?ZXg-7Kb4Q`yYk`P26EfKFvQ2X~VT1hJ?%kD1G%Xq<!$}FeJ^09f3?t${m5s?=>EQ zG(yiDfut>sqmb&@>?ovKPdN$>iF$@<M<Iz~_EAWX?mG%`;pd}}#3ywOB5!^SA|7=N z;?Txp5CbP1gG9|fsQgQ)dV%ARC@?+_iL#*MkOoQaaY)Fu9|z^CdIpAB$01#zrN<#7 z9Ly&mgHf3$ATBRH0ZBBCP`dpDq{-HM0@88mKLN4e-U&zn^YaA6!HOp#X~E?rByFUg zgoI4%Nl4UQILW}E1j_%6ryxPAatadkmZu;t_c{fM`^;02f~oHm149f01H&OGU;Z@2 zfx)LC7A8XJmeY`sTz(o->D)ODsnoR2K(epZ8HjqHGtl;b{uxN+P<IC6;#p97_Zdh* zbO$Q`<qRYU1<pcRI$CETKJhsVQCE8wl5MA+1qCew!_Bi04?Q^xiL$R}A=#Pb9K^$h zpz&AG!U4B)kVF`L4$_V<ItOvc#&Zk|i3|)3m(D>nnw*Ekb>ewQb=(8x-#iaVD=Zfv z4pO`TDXN1mK+22G3y_dpegRT)p1A<YC0{SpLoC$32+^2z5n|Eoix2}&T!c8}|3yfU zDqMoJZbL6Y8kv(WLE`-MB?j=ifX|m87U^Avgh=pZNTSWY3~Ag>x(tcRtCu0!k+c2^ z#D)4-AT1c*D-Z)~uRttbdIgerj$MKH{Mi*q+zDQVgqX=yNLlWE6%qoSS0VDtu0nix z@+!nb|DobK*C6)!UxVbH`rK=f*6!?Ukh1#JHAorGeH~JL23?2vpzAusXB)3W2A!{6 zhv?J20ZIKaHz09Zegopeo*R&Se&7Z~|EC*}5RtqI$$o}6!49rxaJdOFDDfu5pb1a~ zt8YSb!M>XipWlVbbKHVNf$}X#2qfHs6jbH6Ac?K_79{HC-GcNJuHJ&wf`YdpA!>aa z;<1?9ppdC&V3-1xICvY9I3C?*V3^3jz`%V66327zK!Wtz9Y`Aac?S|DT6ZDhUUwl5 z&%MjQa0E1+f0qGVK=|H+G`0NhGcZJedPeslX>G%Oh=bnWhqnJEA3%KQ_5kD}28O~1 zkf5IT01|YEA3(C(s|S#f;&}-1vGqepPzFAPWVe)ukPyj#2#Jcehu|P)nEeo9?v95L z{ZFC#L>@6P)Poj@s6T=<m(w0W95V9}#NZ>3AU?kS2x1_|V~E3Kp|sOuNCA}o7^1H9 zF~rBqp!E93kX*6jF(hg}KZZDj<q3pu_=KSzyza;831qyk@ChUePCkJoo=;C8saWMH zgpPU&$t4q>LbBt5rw{|bK82)erDqU%hi8xwD|iNpqDjvnA-VM#Byrw(262GE^LmJd ziq9b~_j(SAqhKgK={dxpi_anIK10>XynygkUqDJWzZc*rXK-YM3}k#|faDU;Xy|#+ zvK-Ko9Z;7GR24HYFqkkgFf3qXV92UxWMKFPYFt9GJ!s7pXmtw%1A{&z1H%bM28MYI z3=Hy&3=E}EIY%Z2hE-7ZRR#uzA}BkYfq~&QBLl-L1_p*6&{7-*28L>=9B5U<3`Pcq zO^gf-B@7G<eIWBdV?>}uL!kLTsQnB<jF92-D~t>bAjg5kZ!$74EMjC}=x1PH_{Ye= zpv1($;LQY*VPNoLWMEj&$iQI4#K3Tp0WypW8kPf1yKpiwFdT$B;3y*lLmH@|!@$5G z%LEy51KH28h=GB@lZk<04+8^398|Fz69dB+i1`fupt(G#_*4c425qRtAnC7AaV{v` z%gDg63M2u=dl^A<d<+aFj0_BBj0_C-7#SEmplU%%mNM2eFo2f7?O|kKm<AGIU|?9w z07<nVE-NDg0}IH<P)$rs3=EGzL-kNTXi*v{Z$Dv#v>iYzsb)dtKoi%kAVU}!7$l%# z`A{0v<SS=jV7Lsb|3PYMKm=&g5K6xTH5x%nY8V+9ycro7RG1(&AxQci)DX~eJrEzX zF3g&Vfgv0;0?x$1P|nD}kO7ilU|_h<$iOg>5mNLzK=py7VxjE%?Vx3MjF5i)JkYc# zR3d~C(kcQezQM@AAk4(Tuo}c+U|?7brK=bi7@jdOFl=LFV7LSt?}O@H!3ZfKSAa&o zp=v?YN=62TlZ=ot!(>JVhFS)OdIo1k28Lj$Mj1v124^M)hDlI9NRuif1A`(Xr0KMo zk%2*wiGjh3iGd-2fq}u85mJqsGBGd|ffO?^F#Kj<V7LR-4_eB15wx0yiGd-4k%8e0 zRGftg(vkw%&tL@=6la1|rJ&_@AhYf;K!!;`>vmEZAuA+7v!$R#B~px#x*-#)7o;A9 zK}Ek969WSu69dCbMh1o)Mh1o@j0_A<K_Se<z_10R2#U8dGBAX|;{Oe31sqi311PmZ z*`VSX#I#^yV6bCkV7Lt$sAgnf2!L9g0i`V&85np#7J?KrFfd3lL3%(S?oLpsGC(Rd zb0!9c<Dey*plAeTagYKK1}z}_#K6Gd2Q@IBk%2*tiGe`?DZA}rge=9$1%(C!1H%#q z28JsP3=F(bJ>NkFF)%RrGcquUFflMJgYrQuD6<(E7&Mp|7+j&|-DF^3&|(73ze5ES znHU&!m>``7s6K{+Fa~JF6B7f2Hq@d?3=9l^7$JQ=HAV&oS5V4_%1wjP22gV!fYd_G zVP=FZ(=3Ckv1fvYzb#bY1p}m?25OW(VPIg`3R<HH%I}~>sEm;I{%%GFhIXiWsJRTs zp?uJaNzmc~m^g_303sL|7_KugF#Le311(Mk2`>W`v7r8$9uot@O3=bmCI*HX3=9m? zP}hSLtz~3j*uu!b@E;WSQ1O=x3=HQO85ks)7#J=vLK+~Uj0_Cd85tP*86oWfkY3O# z8qhM#1t1Os14A<-1A`nB0|O(dE&!FkdZ2O{G)f6|Sq&qkN(C(v<z!@Fumhz5M#$6( z$c$_TNL8%D$iTqQ$iT3lk%3`1sI>%=WPmhYO+n=aBLhPdBLl-(1_p*GMh1qDppFaF z4v^AEj0_AD7#ZprY8e?AdKeiP8W<QDK7%k+(E*Su1_p+721r|<jgf&N4=M+e0xd9p z2r8Z#7#MV*;v1m!11PNu4K2`W3S%Y)hWntD&&a^Q$H>5-4pvjoz`y}j1X||<GT4v_ z(i#FyM*U)7V3-S5$iT1$N`usZ78@5cGB8vyGB7YPGB7YQF)+Lb&4fVJNHQ`o+yW^C zrE*XxFfuU6f)Xqfq=f~Qf|O#j85tN>Lp6dVj)3Bi3DQV(VuCD{0EvU}bVde-A0P$; zWXcA_oB)bfP}K}t5k2{#s&GAMrU0~h+YmG#23qaQz`$?{RCY2lFkED0VCVux2qObS z8v_HwItEA^sSacm1EhoJ1}bSl>KLFyUknTkk3maaKm|J!1498Lq-Dtq4Z2PS28P+7 z6{rjh3^Jfh?a2t40a^%ZO)xPqNP}ob1_o<J28K>X28KvR28I+y28L@;Z{Gt=05UN! zEN6gB<X#3<c~A#|W);pbGBEsxss#yiGcqu&V}vwkd6*z877RdP%)r2~98{@;6oH1e z-h(2Efq~&aBLhP>k^%b|Aye9*^|c_i>5L2vKN%ohpF9Qz1`|dG1~w)JhB=H342MBw zGb00oG7|%X6%(Xa(#OESpv=g?@E4>Rl#ie^m;x0ld%-LS;R6jOb|^iafq~&DL<&sm zGC`)XpEEKrWHK-?TxDcn=wN_!UqCC2_@Vk9Lp|^p)Q$qFVPs$kV`N}h16uM9THemY zz_1Ur%Je5xVJjm80|z4mgA=HM1{Hh72pO;e+YBW@tAaty1B?s|lNlHo_A@XrOqtAR zAUs*XfCV%~#ZU-}P*CfMiGe{BRNXT&Fl=OCU^vXkz;J_sfk71NM9@lZ1ttat7bXUV z21W*k%^+hzsSmWUl97Qymyv;?1?mzpsGJQWWb8|wiGg7$R7{SMfuWayfx#A(n(l&} z1uAtJ7#J)VAp>0?b%z)j7@mU~y`WY#)KHMP3liHG%5DTnfM)s_85s1Tjs-1@_hDpU zn8m=rpuot$kN`@R3=9nHj0_CFp!y0xRTOAz07ySK69dCr1_lN(Mh1p$3=9n0p^8A8 zAWnc9Lr^|Q?G#X}i;;n00|NuYH>fyh6T}73x<)AfG$=GcilO)+1Ed=g`+|WX#*l%b zz>t9<RrCd<C;+Je>HGix|Ns6MldTN&>U}bkQ}c>b72E@S%8a$G6x{tnL2QMx)S}|d z{5%C?h5RCgoWzpUA_bd_l9GaAD}DX+yi&dVqICTnh~8rT^nx6{jFQ|OJ3X$DjLc$% z%wmPKqSRD{;{3Fd^2DN4D}~DZQia5#RETg%zCv<FVqSWxLZVk*ib7FpN@j6MQD#zU zNvc9-3CN7pqEwI}e*OyKjzK|=ej$-M3MKgpB^jv-sTC!uc_j)3sYSV&B_*jT3Q3g; zIf><ZT$@u3rZMVd<maX;6eOmnS|Qw9US6&Tb2H3I`l`kHo4*>WFiZNT<|d^UDdZ*Q zrYa=o=anR8<`pZb>*=X)7BM}{R<EvFtXizDkdmKToTpx*keHK`U#^gtr;u2bUYeVl zSHi`hT5P3|Ur+)HEvVwmVui%qq|Efv{L*4V^41Ck`NhSVNtrpBC7G$kR%pgCsTNOe z2oq!Enta-Np^QRlUQudtetKSJRcZ>VrCgIUY?i307AvS0D`X@VE9B)Xq^6~%CYLbi z>Y@v6=Cl=N@^i+bG(@2&H8G`FAuTf}6&xhRpp=l5Sdy8mpaC+nI61K(6_h5RKF&zY zOUcR1OV`{iWj}#~EmgtI)5mr5688g)n|FGCXST{w$Vkm8P$(_V%u5F+E?5NMh@bS- z5|9RcJFd+uefM%~&J9cBs83Z$%Lj!!$P9?R#R}!1G*Vienxc@H21=cYd6f!z`FXk! z`NSM}1Qjb}f?_K<BeN`3A-O0uu>|b?(t;EaD>pwSRZl@7BqOyr6&j$$;FMaBUz`bw z)5IJF-^4tSEug?u$j{5EL^8T0Be4YPI8f@$)l*Oi$Vp8sPSpVgWKj_~m6v3s<|-5v z<rkzD<y7izz7SW*El`x2n_rfykdj%Hnp~1!R5{ruE1R>pB(X#xLA6+Y^ZcwN875<c z$;|Dxyq3BKM!H7E3Wg?Drsk7<+ogHUbq$Sl4J{N5%&m-!H<z|2G1l)sarWZYZ-;(? zGB1vdyyV`J{Y%a-*}LS;hEqH5BeDl9YhY$);&XF7*rT9uqEc?=ir&3x=h-t~W4V@W zUh-zi`K4EvzFN3v>E5MRm!4R<Z0Yi)i<TT;vQtmt)Ww}Umz>yTe(d<|led?g-?RGc zX0Qa;>4oQ(FFAgE`I3iAUM_jF<n@X38_q8|zVO<at*7qpyS4B-MAhai9m^RFm)>5u zXX%5bw-)YMx&ueLge6;0xnajOd489~=KiiaW{HPOKQFzoaL<{2OV(_;x8%W+b4$*H z3y;Y+`qVb-_LZ^MD?kf{C8sz1+W%$A`6Y{%yjpT^$?heeAw|Q|RZFig-M;ks($8>} zAT>*t+*`5)<VfOF=_zbFa(wTBwM*74S+wLe$Qj^*Wa%np4AW09IS+Qpnv-kJf`fr; z@|3BoBo)pqIec!(ISl7;O}3gg8B|oL7Aq_{zvI`YGfPe_*$ydH5d6)jrU^4efQuA_ zAcJm*!jd&huP$A<bji}!XZ9`mbZW=$Uq{X?d9~#9v6D;g@BFvqzJkWm6-#$6-MDbi z((8~Eig3Z+7ia&1EYsY4d&VaYZcx#pu;kOO_j~_rKC^HR<L0xA&ojG%YAob*0m=#c zo-R4J;mwINM^`PqvGn!Q>o_76QP@nrxK(EJ_T~H>o6oLy=B(ed5IG>0d|J9_;hv?d zmo8a)ZP&X4>y|!RxM%4}h+}u|+`k>lKaOztlH*HGEm;B%<#RipE;$Zzlb!-NCBH;5 z8Jr!Lyj*hn(B>uUA?lahU!rt+<FRcAm+S;b<naw>4qsdH>Bzn%+m{?$vVO^dC0my) z(c8?wGl5%X>G7qDm%drLe(8y&ufPQdG<cRAU$S;`#*rF+aESuqK~mi2+edau0|0qa BW^Vuh delta 12822 zcmZ2`k$LJt=K6a=EK?a77#QrB7#Iu~7#I|U7#J9t85jgq7#Kj}A_fpz#(;rA0i=L| zfx*XsfkBdifx*{+fkA|Ufg#<1fq{*IfuRPZhJk^h*?@sTo`Hd3i2(xx4+8_k5h#7p zfPtZ%fq~(k0Rw{=0|P^vAwxZb9s>hItsw)0Dgy(<8bbyKK?VkfONI;#!VC-yPYf9t zlo%Koei$+^xHB*?NE<OQs4y@vBpWd>@G>wkbQm!($S^Q4OfzC&&}U#^*lYx`_^}ZK zgEa#K1G6y$gA@Y;gS|1t+$duP25|-kh8$xC22lnEh8E*`1_l8J28LP23=DD%3=FG{ z85q<U7#L0&Lwxqpn1R8Hfq{X|1mX}!69xt|1_p){69$Gj1_p-NCJ+mLnJ_R&FfcHP znldnGGB7acnL>OXVamXe!oa|gYRbT%12WeX;(+g_3=BpL3=I7BW(*953=9lTW(*7_ z3=9k<W(*9<3=9k_%@`Px7#JANnn8lfz#QU0cXI}YGEmT&Gk`<pt~mpP9RmXcg9QTv zKgg#R3=9ek3=IAj3=BdH3=9Pp5Q~~E7#K7d7#Ox$Kpc4A0;0d3(~^O~n1O*o#}eYR z1WQPWOt*wsxWW?Rz~hz>hyAo<U{GXWV34(fIN08bfx#T)a4QCIRIagtSa92lfx(M` zfq~T;qCUWyfkB#qfuYD664iay;E<?i*kTQF*%@m{P=2+BxLm-7fkB;tfkD}ZfkBpm zfx#O}XWBp#WIL4KX~V$4%)r2~+y>&K)iw}^owI=?N@iO~V&$@BVBlk5U{Hb5#<n1P z>KPcEY#}ZVwS^>_dRs^$+ieR8x(Bw95E8b7Br<m>U2X@7)8%#$hhMQ{V9;h@V0do_ z2{~zd1_oOO1_mp81_m1j28IfIu#XwG+Cv<6)}DcZy`F)A;fg)Pf;;vM46Y0e3<3@i z2ZcE>FqkqhFf=$o65%!nh=m^=AR#8_2=SS_BgDapj*zs{<_O6Ja~&ZL+Uv-`;Ksnf z@X`@tkAV{dgBB<eJ25cSgR)n@6U3rTP7s&9aDoK+dnZVo@j64w22E#(52BnI7}!B^ z38kx`bdxhAF?Kmaa?wd=h{HZOLo60`VPJ@4U|{fcftb74g`pmt-S)dcT>i`jl34z_ zKwK{G3gLUZLK0uDD<qC5x<az&7FS6AKj{hy@@K9PhqJmt$`55XNNzB9gP0%T2GN)A z1__}Sw|YpnS>ndP;K0DZu*D4$#9!SY1}V8i403RXXb5p<U|<2Ic6Uhru5^bazBYGA z8t8I|Sh&<3l8cVHLkgPfQ2lS+As*rNfH>H&-UA{K-~r7>9uOa|@nB%!Vqjo6=K=BY zO%I5J{y_Oso)80UJsB867#J90JRu(0=m|-*2R$Jk`QizQYeg>z-^UB$fl4n(RM*#e zL44Ng1qq_1UXaAH#|sj7%-#^6X?R0QIA?E2Q5xe7NvwI^3=D~k3=CVmAr_1ILLBPp z3-NinFT`QBzL2Qu^<`jiVqjoc<qHn+dWN^Y4B!Gq&yRtDn}LBLzz<SD#P~rpH2E<w z=rS-c%=d#t#aTZ{B7Eov%D)T@Km8yU@%TeLqT~;WV<&$|RD}CO%&G8)<d&)akaA_c zKd3yYXJEMQ5AoqMe@F;020#=_1VAh_3V?{aLHV%(khm=jfEe5a6`vmfanR-fNC+GY zfaH=V0T74134lZaPawoT%RmMOQBeL5353*US%HwasR)FGL~S4>jyeM&KAI2+iSwm_ zkT^XO2no6OP+Bku5@p6vIwA;CVATdeiuScZ5T8E@f)sQ-!3+%bpvuD|7*e3L2Sdt% z4Z)Bge-;cWh(tml7TSd{FcdQ|Fl2@>FgP+WFx(A+I7~hi5@IHykdW~Uh2)O-P)G>n zghKRphC)2JB^2VZouLf%;3D%tC?rw635CSvzfeeG6A6PDs2c_eLc1`C#yBXQ8pgoD z3aZb;AZey33=#q}!XUY6Zy3aZU&A12hASMB+myl~m6cm~J*1#14Tscn3&TN)f`Q?3 zI3z9~g+t=-Yd9n^{SAjifm{T{C$<rg)a?`ju_!145)$bV5DOY3z^R;JLj)v>KSn@8 z;(r7rmub~ULM$qbglKGugcP;&A|XCHAIZSr!oa}rHIjkB8C01>K@w426eKQJM?rjc zISOLV>nKQK{TBsEyrR(%hiXPcLQW6LH-+-+t)d}8=ok$tlii~sL7yBAv8W~*5+y66 zAtA6o8WOh;q9IZ8HX7mp-WZ6_RAV3^8W01i18Si3;uuIsor+;#C}dz@xD^8q$$AE# zScnU=p>#nk14A?;14C&nBm^$TL4xvo9Hb;vi-&}iXFSA*$?=dhQV!*J#4|8NF)%R9 ziHD^6@9~h_q?f?J-~$T51c?6j1ds>n85kBOK;rIT0we^kB|r@RlmPKLTOuTAWfB<} zJQx@l^b;XIu1JLFn~(^JvZaZTAikE!zz_z?9f=GKo(v2OCP@%}T@pn7)g(x5_$rBk zK_8U=<&q(Z%r6<@fUsmp_A5$;#N~oya8NO9Plh<`S~4U=UP0w0Qy}@-AO&J@P6{O7 zFGztz#f20|TKSU#N&PCRAfGcZc%(8g)Pve&8L5!CX-Q>Z2x4Ghn34(!s^_T;44fbz zq(NxAG)P+UfYN?xkfvBj8l)}=OM{dbbJ8Fd9!rDd|95GSsN_zEc*HQBfgu4@)TcAl zgPX-0(;-26FCF5;Z|M*XTp19b8e~91BpyolW<V0r?hHs<Pd5`%TP9^fEXd7-Slp8d zDbQACLMom6nUL(Qlm$sMhFSHH#Nm_$ae!YIL}MD1Zq9<l*@7%c8rYfzDRNI_K^*i7 zs!t*tQX(2;L-Ki1Hbi|xHYB%9&W7Zs1=$b}p3R1s`>-C$_?8WcL+%_%DtFIeV8~)% zV93gW6wOz2AeF|y90rC|1_lPnTu9v3=RyoxoePQc1G$h?{~;HW9o6$7i8Ck<BHx?` zX^d{pgEZCZKjcANrk@XqyO?~4L|Z;2zaPzq#O*UEty2IA%Ax{@!?qScO3r%)5DNqf zAwla<2&n}F3mF)~85kJy3n5*&<Ao51^A~{=V?Bd)5yVCDMUc3hQv?a(i$#!B`nd?= z6X9YA->w)UA6E?VX+tr@qV2^H2VX6QIPhCBB#JCcAnMagAnH0xAa%s@5>Uw0GccSf zfdu{E5(WlK1_lPpQi#UlQm_jd7DDNxrI7smvJ~QT<1$E;#FRnew7d)=-VLR<ltCPP zw+v$8-!e#AQ!0lzM6aBIK^v6+eaayQRg^>Gax#>^q8#G$!{rcz-jzcfz*hkY;)n`} zzRU_p?b%WRiOOje3=G~33=D@WAP(ZMgwPh1kh&zX5)#tODj68+LA~DFm5}`UtCE3X zJp%)SQWYd5E>%I&1Wz?2&djPIK1r&El<n=+kP>oTH3P#_P(Qz#fkA|kfnik*q)6Xi z3yJ$9wUAm+rVf%uV(TE;ySI*^9^8xFTnBOawK_=9GuJ~D7}i4^0IQ}O>meoL+ImQk zAAx4y8}*Qq^9i&$&(Ht~8G#0f!?hd09b|^^21p1`Xn^#nmNwKwTCEQnATASbgaoB? zBP8fU8yUbO9Su<aEGT`n5mI7)XoTovXo8fC22GGUz^n<<_p@z+=&x>qgxJ(3NV%}5 z2~x0~uWw>th-F}4_}2unFs2z2679_ppKpQE_nIN)0!Is^Wux5!iHhVFNb2rrfp}z9 z3nb+3LgkrTA!$dW6_nZ;7(7}b)q7<tq@=8$)C%#*##ROfKL!SdgRKk<!JtlP8zcx* z+8{w#-v;sF>Nbc48`~hM`Fa}z!!1SzhR1D?5_De&B#N$eK#JtI9guAK14>JFLK3f4 zC)nP42JcP=Q0Os4cS3^dUMD2A{^*2Qq}T-!ckhB2oY)0PtQB1lhc4)XsQc0dagbCu z#6q=hNJzSOLp)H@4Jp_bbVJnN?*>IhJp%)44<slgdLa4Iya!TAg!Vv!Jf#N`HSIl+ zAm7vj$wt?EAQs8=GBAWPFfiEmGB89lFfdH+g#_{YUWhzLA0%ot`yl4V^f55xGB7Y? z_c1Uifb##%K1eqD)dz_qfqqDV<k%0Xy=wa*iDh#?14A+c1H+?!NFsHc04bm%CNMBm zf`;EFKvMO$36R>+a3VzA;)xK4Z=DE9{kJAUviJLm3=H+4(JIYJkfJnr5+s#&O@d^X zjgufn>8nW)2kK6SM2+)gNKocXh8VnhGDP2n$q<KspA0e2cnZV=SyLeD7EEDa2xMSj zI64KAD8;8T)Pu)%%%?&O4xI{#<GQJk)IW79BnbCUg#_t?sgRKPITaLl3=A66AU?95 z25E={OoJF4G!4=%FPa7kp|WX^G&5@&0|N&G1H++d5D%T61}!iiPJ`6jAE6Ter$HPf zIvvtZx0?<zsC7D|iM4V%B&zOCha@h(84!nA&4BPTXFv+1sWTvHXX6Y=qPsJLfx(`E zfq`izq|$S$p9x9bAR07;I&&tZEx2GNB=xSC3DIzMCM0o+&VodV@hnKtmd%1xziVbe z9CU9MBt-aUL!v@uHY9N;%!bI<&xVBPhS`uPuD>`NQsi>Yfm8|>b0DcccMc>DC(MDA zXvd-A=jK47=;IuSk2&T-^0WC|h{HXgbO4l&m<wr3Cd`GTfwglX1=gjxVEgJBzRZP; zU}(;R6gYMBAlYT+JV;!gnFk4pH&AiO`4EGA=0k$Ea6TmQ&6y7=fDX@x)D5@iL-fC& z4+%N`1>gdQL3aU!ZwuzvGcZJh84L{B3m`#Ly#V5)ISUvV@);Ny)-HgAi0nd$yu(6> z1&IqGZN<`sklJq2LP%S0`a($JTe1-1&=m_I4n4aNlIVUcgoGg9B540#brB@atQSEf z0v16mN?!zt!;VFe#B*d3q)2@QRsR*Lo@+5gz2ahsI;X{uLFbIckOJrIVu%CoEQVB8 z>`NdaV7`Qbp&m2}9l8YKgN`MTxb9s7$!=4YK!SAb5=f<UbP2?uze^xNsj(CyZ?O~- zbpcBuah<)Cfgy>Jfnmo|NYqI$hp6*d4hgx0<q(IJEN7?(51ThHXJGIJ_1Ts~dbzKb zL$Z(F3W!6zRzN}~c?BfjSFM1=dG88HrL+YqziS1=;EPcH1E~7%D<CBy*Gh=bWmZD; zTdk~z7?`*cVqwWjNC7cnB}9DYN=RB*vl0^5d!hVWD<KxWUI~f1Ur=%WRgkozunMBz zc@;!HY!xJgvR6TJNgI^kSHB7pcPm#xg6PyLNFsT(3Q{2bSOtk1w$+f@je9jDio{n# z<mFaFLPlpbq{MVy4ax7ht0Ct0tcEyfEtI~n8d45?UJZ%TdX+U01u<(NMP&UNNWNbV z6~DIzoKG1T*Fs7@v$c>o%~}fy!s%-n7~&Zi81}7&=#yIq@oDHfNNy-t2Z_Skb&wF5 zwhrRamFvLj>lqHNgZS{rI*8Byu7ec4EbAdbth*lK6Pxvr#233BVnD}wh(!z5LvqFL z^$`8X)<euYyB=cBrS*_p@q0a_i>9~%QZ6KK07Xqb14Hu$NYKsL0P*Re4G<rG-vDXD zsceKKo}`VCATQYniNmIikf83`2uT|&H$p5v233E0BP43>ZiIxumyM91=iLOYQ#LU$ z2!ZPV)=iM+@r+H7uGY;>kSLMg3`wm{n;}7;uo)5pQ#M1??cWT^Ev#E04))vviITD{ z5PfsEKzzD;3nZj&Z-F@E+ZKpJ`L{AK)PpJ=k*yE`>8+3;RM-m1R_a?Jsb6<1#3y!J zAwCG*3JN*~hPJJcT5<MPNZjt<3UT12tq=?UZiR%X#5PD2_-=zZsCXMBN+)k)s0UBG zZP~`aki)>haCsY~fN<CjaZm`9j@-_`u#u60A#OXwAc36_hnVez6tU@0x@RXO&1~EW zanJ!MeR(IO;qh!Iq}H_91@Tbcu6hQBY6b>|)?E;T8Fxd1P<=Nf_4@6GD2(0>F}P?q zBt#l_L$c|l-H;~NirtV9c?_k0?1r=hc=tfkisc^2be`iL$gJ3sJ&?BI`}#eQMCH8~ zQVmD$h1BQmdm$mPb1x(<?Ar?o%7=R)4iwu5Np!aRAo5ZBAmX+AAP!x!4`SZteUK=5 z2$kpA4^eNtACh?M!}dess&qf3Au?e<B<NP{hh(e0`ym~a6Z;_p4{8S>V?jL!AP%2) z0FqXgK<QNnAWg9i2O#~4O$Q+6GaiJLFER%q4sbaLP6PD}=?5W+qT?VWXjUAA#O-IO zLX|_1pmje43Hq2r5SQm3g2a8#AxQ4nc!+@^hJk_MDU|PY7~;UP!w?Hwp!D*?kdQoe z7*yxfGcf!=45`h0k3jNy>=8&1<{yF733W%nE@hYnrFTQc?;L@I*pDNS7LCwRh{H{e zLJFwVqmb-bdlV9q2aiHLaONn){JTdP7<54S|IJZ|4<(O5XuV^QMCW`A(#(!J264d5 zV+;(53=9mrjzRLf%yCHEdLD;VyCqQm!Q+s$@#Z+hL7XSRMJ<EX2}rq6cmfh~{U;b0 z>OqsjTTVc-#oZGS3x!WYGzOi7Sk!zHV!(!z5QjWJ2?;`uQ;=4y?I}oOvg#BhjyIoz z<ciy;AQp+8hJ=XqX-FasJ`HKaR-I<32TwllJq^izA5TMED1HXgQZYRPF);NE#NysF zkhHSy48-T>&OqY!=NU+d$()50*~VufAy9Z0BHwow;=zq)As%`T6&E>I53$hv93;Dh zo`bY%o6kXt<W1)wW%cKCkm}OvJj4e@=OI3uc^)#hyYD<ipXdchYInH+iOTp3ki=PX z0g|m(T!84mbpaA0jP(~G*-i2y#Kk%nAqII~gcwu-m7jbOlIoXTg!ud@RQ|(7NEC2i zf`ov_B}l;(e+iP<N-sg8uI&<}ExGp+q_X>Y2@<09%9kNNbGZx&nwrZHiItZj)#s_p z3=9()7#KcZhQx8}6-bcoy8=lg53fL?MCd9++~_LA;h|R<7><AzAY5et7YL@;AT2Ai z>kJGLpoI$8!D+3YVa9cci>_aXIDqj6#D{t}ApFQ1kf3h60SUU*Hz3*V(hW#ReYpYg zvGPqwNLt>6WH+CikPr#K35klln~)H0z6mjR!A+3<dIpBGP>p|Xf?dSGe+$w9@w)|a zNaHPt!E0_oe7ye_#J~@?AP!@_4WYGeLkb-K+YoiJw;?|6gVNJ)LvqD}+mNWaeH)hl zp#qY3KrUin(7FQ|HjBIiiGq!HAc^PJ9Y`wXxeKA4?m}`&#a&2tTyYoTv%7a8iJI#k zL|)?_B*Y@_L87SY9wa2^-eX{>2d(`$au4F7ANL>@a^8oy+~__eM6987)qRLTJMTl( z-G-`Tc>v+_K7f>LW)Hwo4j$M7txW-8J4ObEhoE_41_p*NplKLJ1_lpChI$4gCI*I| zj0_CV7#J9qGB7ZNf>s@YR=6-QFkA<%SYc#f*bFj(fq@~Gk%3`8R9=q>BDkKBf#EKM z2_`}7eI_w7Fz7QfFgP$WFepRSfh9o+k`dAt059KR1eL!G3=9cSLqThJK$Aoqj0_Ar zp<?M!ok5I{ti}g5P?nK_feotWFH{YT0xd`}hsqf+GBEsNWMJrKU|_fiYHKhuFzjPs zVA#aS!0@D=5mXC7v}H0fFz7NeFw6q^60|-8YQRxONPK}*U1MNi0OcqU8-_t$t+$K} z42=v74Buda3=9mVj0_Cd86nj$57g00P&02cFfiCKF)-AhhYEm}TY*+Ofu>VIW`O4O z6&M*9@);Qzc0tvAhSDH;7~Tk4uEof}kOh?kEm#4`nL+tnObiU&j0_B1j0_A{K%?u7 z3=A2J3=AfW3=G0d4D}3Jpg3Y+U=U|yV3@|pz!1U6z>v+zz;F`eLPiFLWef}qaf}QM z|3J$#7#SE|F)%QwGchnsV_;zT&d9)E%EZ9%l>yRR16dry$iUDE>PvzW7-%sXBLl;J zsAF0f7#OseAO#snEdv8I{vjL&1|cQ}hDVGH3<qEWNVGd6q@>hjgjB<z1!p0Q3=Gp5 z85mA8K<fH_Mo2pkq-{0>1H(i{NUP~RNPvNX;Q%88!vjVJ2GEi_3q}S8&3YyVh6<2E z1_lN-CI*HdP?t_-U|`4tt$2gRn>-T(gA@}3!zIvaIR*v>4MxaP8fiub24hAB25qQ1 zkUevuW@LcOfU=p8<d;Ilm_hMx0+pD@$iT1%q#KHlF)}bLVSp5&){G1cl2A?Wp!8No z28P!R3=Gd185k~t901j)$H>4?3rfTcknYwWP}%?uxiLWI20+S|g9rw2#e^FEGZ`2d zR2dl<CP5W|78}SiF)+*nt@&eQVAu^6hfyHi3Q!ODLj@l&Ffbg0vIUqJ7*e4QZeV0! zC<hHbf>zalJjBGnund&{LCfw=FfcIqF)}c`VStS7f;uBVL2=5+z_5Z5(iHb$WME)q zf;2Ed=6_*iU?>7H7#J8nF)%Q=GBPmKK`q-0rSC8>FuY)7V0g>G!0-?>>kZ1*P(7d( zRHC5#uf)W_Pz==o8XVjXnt}yoJE+1wMh1q%P&P947pmtal!nQjVqjnpVq{==0a{VX zz`!5@ib|*&T_y$wdqxI^KMV{E_Zb-&>OV0uFvu`6Fsx%_U?_o_@Qe{scQ-OJFw`(W z>TA##|1YR~9RmY{AQPl+04>Yh3Yu(!TCf31OE5vI+cOLd43VJXn2CWQfRTZrmjP0@ zh%zxSEQIC197YBPK}H6KDWC!ZYKa9C1A__^0|PtMz_p;YdyEVWQH%@>Hy9Wg)-f<J ztcI#(fu;cv7c}**!w8vE0P#VXn-MZd0b;)bO;9l~Fj#~2)H5)!Gchn!Gcqs;fC?Q( z28J+328J07kVeFEMh1qNpmLsxfx#5&5Rf4&Kx;RlD`vwPAZ<mEI0y?v)qz$?x-l{^ zyk}%!uw`Um*Z^A43M%&*7#OBAFfc3vDF&rr5Di+>38FzO9zirG69WS;69a=P69dCJ z1_p+3Mg|5sCI*I1Mh1qJj0_9`3=9lALCZFoAajCJP)n;A85q(TAsrXcswt3J2N@X{ zGC>Rm2JrIRc&J*C5ZL}w5DSzbKs6zhy`2%#m;iBifJ!(<28LD!1_n+>28J}K0gFIY zFQ~W%b=^T_03)Pj)WXQXz|Y9QaGn9uXa$)8!~TqrZrTEfKs|#KC{7_9@XFPdpjwO( z((EpSS_F~?t=k3BO^gf-eGCi?Zx|UEG{AAlz_1M@0V>;}^m8bEn~{Ox0@Mu9I^zY5 z3=CCJIT5g4Q2&pSf#D@+h8nb>n1O-eF$1JU%MDflQ5^_1M23lh;Vg8uG)Sfylqf+n zrl10ffq~&TRNZ7yZenC$C}e~zW?97uX;bb6r5gqYhJFSHh6^AAK;aKsrwd~L167ew z13*)7ATco}28Ics+`+)W@DVC!#>BvI0?G!d0WGsNXJTOZ4&pE{FkE9~U^vdez|h9X zz);D^z;Kn3fnhFG4m7=ckCB1lBLf42A*lRkWMp740ObG%28J7q3=Eb`3=H=`3k(<_ z!}1_~pvk4zPz&Xu^cqG6hMNqK-i<gD1H%rGLJ*&cfq@y+!eL}!5MyLu;ALcBcm%54 zK+QN%P6DMN1_p*M1_p-Tp!Q!6D3L%7ErQaZPASMdUq%K7FR0jJM#u>08Ab+%37}${ zk%8eqND(OUf$}q`QOU%>P|nD}u$qy9frE*Gp$k-yfhsmo_6D^Z7$FnYP;CsKLG?dq zaq&Bl2onRte$aS7BLjmc)KWtz&C1BYpa_afkUCH$1zMQQ$iOg%fq@|xH2cZO0Ge}# z%0lM%KpfB_^8(O(4<iGEBO?RDS*UqWL7~UUz;Fsw{s)5+3IhYf2T(Q1$iQ$1st9BN zXdd4dnh^P*;-DouAUV)lVGs?%pq0(NpoRr#3Ktaj43H5skQ^&ie>+G&BLhPRBV@vI z2B`dJVPs(V4YHh(f#C-O1H)oa!T{+4HK`aO{dA~)h8|EA3^Ig)fdS-jkTTFRd__=M z&d9*<m63tL8&qe2Qad99Lj|aX15$*BIY71L0|o{a0|sdZ3j+oQ-v^LBAV?j^{Qv*| z|1W<qxyVp&bB@tu#?6K%a?G1^&G)fQK5sX5a*O?f&Atu-Oq<s_^>J)=_uj?m;~3-~ ztfvrKoSIgeqfnk%lA)lho1BrFoL!KgnOCBan3tlEpO>nTp9T^yEzwcX)lDoYNX<(D zu}bnwlQTe!(!89^yzIq4d{{PH25#eE4G8h{_uKq7GJ|8YN^%+Z<n4KJo7M88WSERB zCpUH5@|x=!8tEFED;OGC85>SM(=E+wrfXmd5-~8hGBMfwr8|jnb6?*Q#?9#yCNXao zpE8Yoa@?HRlf~xtZ$2?sfN8VQf)5;<^;XViOaXa7VacaGhjw1k1Gy35_9d&9yjXG> zBu2p93QNu%ezxSCg5i=QOHM2~vE<Q`)4NZcy|`rOlGjU4EP1hH$>tNQE--Jtw@!<L b%^%`5_U$g5o8KOY=boH@rgZb4GaID=@BbK9 diff --git a/po/ja.po b/po/ja.po index 8b0a13d1..f3c4cd29 100644 --- a/po/ja.po +++ b/po/ja.po @@ -1,18 +1,18 @@ -# Japanese messages for GNU tar 1.28.90 -# Copyright (C) 1999, 2000, 2001, 2004, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2016 Free Software Foundation, Inc. +# Japanese messages for GNU tar 1.30 +# Copyright (C) 1999, 2000, 2001, 2004, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2016, 2017 Free Software Foundation, Inc. # This file is distributed under the same license as the tar package. -# Masahito Yamaga <ma@yama-ga.com>, 2016. +# Masahito Yamaga <ma@yama-ga.com>, 2017. # 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:1599 +#: src/create.c:1598 msgid "" msgstr "" -"Project-Id-Version: GNU tar 1.29\n" +"Project-Id-Version: GNU tar 1.30\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" -"PO-Revision-Date: 2016-05-17 07:44+0900\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" +"PO-Revision-Date: 2017-12-18 07:23+0900\n" "Last-Translator: Masahito Yamaga <ma@yama-ga.com>\n" "Language-Team: Japanese <translation-team-ja@lists.sourceforge.net>\n" "Language: ja\n" @@ -99,7 +99,7 @@ msgid "give a short usage message" msgstr "û������ˡ��å�������ɽ��" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "NAME" @@ -137,29 +137,29 @@ msgid "write error" msgstr "���ߥ��顼" #: gnu/getopt.c:278 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous\n" -msgstr "%s: ���ץ���� '%s' �Ϥ����ޤ��Ǥ�\n" +msgstr "%s: ���ץ���� '%s%s' �Ϥ����ޤ��Ǥ�\n" #: gnu/getopt.c:284 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" -msgstr "%s: ���ץ���� '%s' �Ϥ����ޤ��Ǥ�. ��ǽ��������Τ�" +msgstr "%s: ���ץ���� '%s%s' �Ϥ����ޤ��Ǥ�. ��ǽ��������Τ�" #: gnu/getopt.c:319 -#, fuzzy, c-format +#, c-format msgid "%s: unrecognized option '%s%s'\n" -msgstr "%s: ̤�ΤΥ��ץ���� '%c%s'\n" +msgstr "%s: ̤�ΤΥ��ץ���� '%s%s'\n" #: gnu/getopt.c:345 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" -msgstr "%s: ���ץ���� '%c%s' �˰����Ϥ���ޤ���\n" +msgstr "%s: ���ץ���� '%s%s' �˰����Ϥ���ޤ���\n" #: gnu/getopt.c:360 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' requires an argument\n" -msgstr "%s: ���ץ���� '--%s' �ˤϰ�����ɬ�פǤ�\n" +msgstr "%s: ���ץ���� '%s%s' �ˤϰ�����ɬ�פǤ�\n" #: gnu/getopt.c:621 #, c-format @@ -234,12 +234,12 @@ msgstr "^[yY]" msgid "^[nN]" msgstr "^[nN]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "�ѥå�������: %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "�ѥå�������: %s\n" @@ -247,12 +247,11 @@ msgstr " #. 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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "(C)" -#: gnu/version-etc.c:86 -#, fuzzy +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -262,7 +261,7 @@ msgid "" "\n" msgstr "" "\n" -"���ѵ��� GPLv3+: GNU GPL version 3 �ޤ��Ϥ���ʹ� <http://gnu.org/licenses/" +"���ѵ��� GPLv3+: GNU GPL version 3 �ޤ��Ϥ���ʹ� <https://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" @@ -404,14 +403,13 @@ msgid "%s home page: <%s>\n" msgstr "%s �ۡ���ڡ���: <%s>\n" #: gnu/version-etc.c:253 -#, fuzzy, c-format +#, c-format msgid "%s home page: <https://www.gnu.org/software/%s/>\n" -msgstr "%s �ۡ���ڡ���: <http://www.gnu.org/software/%s/>\n" +msgstr "%s �ۡ���ڡ���: <https://www.gnu.org/software/%s/>\n" #: gnu/version-etc.c:256 -#, fuzzy msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n" -msgstr "GNU ���եȥ��������Ѿ�ΰ���Ū�إ��: <http://www.gnu.org/gethelp/>\n" +msgstr "GNU ���եȥ��������Ѿ�ΰ���Ū�إ��: <https://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 @@ -530,190 +528,190 @@ msgstr " msgid "Cannot execute remote shell" msgstr "��֥����뤬�¹ԤǤ��ޤ���" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "�����������ϰϳ�" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "̵���ʸ�������" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "̵���ʸ������ե��å�" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "�������ե��åȤ��ϰϳ�" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "̵���ʥХ��ȿ�" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "�Х��ȿ����ϰϳ�" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "�ե���������潪λ" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "̵����������" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "��������Ƥ��ʤ����" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "ͽ�����̰���" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 msgid "Manipulate a tape drive, accepting commands from a remote process" msgstr "��֥ץ����������̿�������դ��ƥơ��ץɥ饤�֤����" -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "NUMBER" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "�ǥХå���٥������" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "FILE" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "�ǥХå����ϥե�����̾������" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "%s ���ޤ���" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "������¿�����ޤ�" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "���פʥ��ޥ��" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "����� tar ���������֤ǤϤʤ��褦�Ǥ�" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "���ɤ߹��ߥХ��ȿ�" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "���Ф��Х��ȿ�" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "������Х��ȿ�" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(�ѥ���)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "ü�����饢�������֤����Ƥ��ɤ��Τ���� (-f ���ץ����λ���˺��?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "ü���˥��������֤����Ƥ�Ф��Τ���� (-f ���ץ����λ���˺��?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "record_size ��̵�����ͤǤ�" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "����������̾�����ꤵ��Ƥ��ޤ���" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "ɸ�������ϤΥ��������֤ϸ��ڤǤ��ޤ���" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "���������֤ϰ��̤���Ƥ��ޤ�. %s ���ץ�����ȤäƤ�������" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "���̤��줿���������֤ϥ��åץǡ��ȤǤ��ޤ���" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "�ơ��פ���Ƭ�Ǥ�. ��������ߤ��ޤ�" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "���顼��¿�����ޤ�. ��������ߤ��ޤ�" -#: src/buffer.c:967 +#: src/buffer.c:969 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "��Ͽ������ = %lu �֥��å�" msgstr[1] "��Ͽ������ = %lu �֥��å�" -#: src/buffer.c:988 +#: src/buffer.c:990 #, 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:1075 +#: src/buffer.c:1077 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "" "���������֥ե���������������᤻�ޤ���. -i �ʤ��Ǥ��ɤ�ʤ������Τ�ޤ���." -#: src/buffer.c:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek ��Ͽ�ζ����ǻߤ�ޤ���" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: ̵���ʥܥ�塼���ֹ��ޤ�Ǥ��ޤ�" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "�ܥ�塼���ֹ椬�����С��ե������ޤ���" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "�ܥ�塼�� #%d (%s) ��������ޤ�. ��������Ƥ�������: " -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "�桼������������ EOF ��ɬ�פȤʤ�ޤ�" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "�ٹ�: ���������֤��Դ����Ǥ�" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -725,67 +723,67 @@ msgstr "" " q tar ��λ\n" " y �ޤ��ϲ��� �����³\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! ���֥������ư\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? ���Υꥹ�Ȥ�ɽ��\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "�������ܥ�塼�ब����ޤ���. ��λ���ޤ�.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "�ե�����̾�����ꤵ��Ƥ��ޤ���. �⤦����.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "����������. ? �ǥإ�פ�ɽ��\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "%s ���ޥ�ɤ����Ԥ��ޤ���" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s �Ϥ��Υܥ�塼����Ϣ³���Ƥ��ޤ���" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "" "%s �Ϥ��Υܥ�塼���Ǥ����餯Ϣ³���Ƥ��ޤ�: �إå��Ͼ�ά���줿̾����ޤ��" "���ޤ�" -#: src/buffer.c:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s �������ʥ������Ǥ� (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "���Υܥ�塼���Ϣ³���Ƥ��ޤ��� (%s - %s != %s)" -#: src/buffer.c:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "���������֤� %s �˰��פ����٥뤬�դ��Ƥ��ޤ���" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "�ܥ�塼�� %s �� %s �˰��פ��ޤ���" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -793,210 +791,210 @@ msgstr "" "%s: �ե�����̾��Ĺ��� GNU �ޥ���ܥ�塼��إå�����¸�Ǥ��ʤ��Τ��ڤ�Τ�" "�ޤ�" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "���ߤ��֥��å������ǽ���äƤ��ޤ���" -#: src/compare.c:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "���Ƥ��ۤʤ�ޤ�" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "�������������ͽ������ EOF ������ޤ�" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "�ե����륿���פ��ۤʤ�ޤ�" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "�⡼�ɤ��ۤʤ�ޤ�" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "�桼�� ID ���ۤʤ�ޤ�" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "���롼�� ID ���ۤʤ�ޤ�" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "�ǽ��������郎�ۤʤ�ޤ�" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "���������ۤʤ�ޤ�" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "%s �˥���Ƥ��ޤ���" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "����ܥ�å�����ۤʤ�ޤ�" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "�ǥХ����ֹ椬�㤤�ޤ�" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "����" -#: src/compare.c:480 +#: src/compare.c:479 #, c-format msgid "%s: Unknown file type '%c', diffed as normal file" msgstr "%s: ̤�ΤΥե����륿���� '%c', �̾�ե�����Ⱥ�ʬ����ޤ�" -#: src/compare.c:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "���������������Ƭ����������줿�ե�����̾������ޤ�." -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "���������֤��Ѵ����줿�ե�����̾���ޤޤ�Ƥ��ޤ�" -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "���Υե�����ν�߳�ǧ�˼��Ԥ�����ǽ��������ޤ�." -#: src/compare.c:620 +#: src/compare.c:619 #, 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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "%s �˸�Ω���������֥��å�" -#: src/create.c:74 +#: src/create.c:73 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: ����å��� �ǥ��쥯�ȥ� ���� %s ��ޤ�Ǥ��ޤ�; %s" -#: src/create.c:263 +#: 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:269 +#: src/create.c:268 #, c-format msgid "value %s out of %s range %s..%s" msgstr "�� %s �� %s ���ϰ� %s..%s �ˤ���ޤ���" -#: src/create.c:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "��� 8 �ʥإå����������ޤ�" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, c-format msgid "%s: file name is too long (max %d); not dumped" msgstr "%s: �ե�����̾��Ĺ��� (���� %d) �Τǥ���פ��ޤ���" -#: src/create.c:616 +#: src/create.c:615 #, c-format msgid "%s: file name is too long (cannot be split); not dumped" msgstr "%s: �ե�����̾��Ĺ��� (ʬ����ǽ) �Τǥ���פ��ޤ���" -#: src/create.c:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: ���̾��Ĺ���Τǥ���פ��ޤ���" -#: src/create.c:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: �ե�����ϰۤʤ�ե����륷���ƥ��ˤ���Τǥ���פ��ޤ���" -#: src/create.c:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "���Ƥ����פ��ޤ���" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: ̤�ΤΥե��������; �ե������̵�뤵��ޤ�" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "%s �ؤΥ������ޤ���." -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: �ѹ�����Ƥ��ʤ��Τǥ���פ��ޤ���" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: �ϥ��������֤ʤΤǥ���פ��ޤ���" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "�ǥ��쥯�ȥ�����פ��ޤ���" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: �ɤ߹�����ե����뤬�ѹ�����Ƥ��ޤ�" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: �����åȤ�̵�뤷�ޤ�" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: door ��̵�뤷�ޤ�" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "���Υإå����åפ��ޤ�" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "���������֤���إå��Ǥʤ���Τ������ޤ�" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: ���餯�Ť������ॹ����� %s" -#: src/extract.c:320 +#: src/extract.c:319 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: �����ॹ����� %s �� %s ������Ƥ��ޤ�" -#: src/extract.c:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: �ǥ��쥯�ȥ����������¬��̷�⤬������ޤ���" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: ��¸�ե�������åפ��ޤ�" @@ -1019,7 +1017,7 @@ msgstr " msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: ���Ф��ޤ��� -- �ե�������̤Υܥ�塼�फ��³���Ƥ��ޤ�" -#: src/extract.c:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "ͽ������Ĺ��̾���إå�" @@ -1036,7 +1034,7 @@ msgstr " #: src/extract.c:1664 #, c-format msgid "%s: Member name contains '..'" -msgstr "" +msgstr "%s: ���С�̾���ޤ�Τ� '..'" #: src/extract.c:1696 #, c-format @@ -1048,22 +1046,22 @@ msgstr "%s: msgid "Cannot rename %s to %s" msgstr "%s ��̾���� %s ���ѹ��Ǥ��ޤ���" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: �ǥ��쥯�ȥ�̾�� %s �����ѹ�����ޤ���" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: �ǥ��쥯�ȥ�Ͽ���������ޤ���" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "%s: �ǥ��쥯�ȥ�ϰۤʤ�ե����륷���ƥ��ˤ���Τǥ���פ��ޤ���" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: �ǥ��쥯�ȥ�̾���ѹ�����ޤ���" @@ -1189,215 +1187,215 @@ msgstr "%s: %s msgid "%s: Cannot remove" msgstr "%s: ����Ǥ��ޤ���" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: ��ά���ޤ�" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "�֥��å� %s: ** NUL �Υ֥��å� **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "�֥��å� %s: ** �ե�����ν�ü **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "�֥��å� %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, 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:817 +#: src/list.c:818 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "8 �ʿ��� %.*s �� %s ���ϰϳ��Ǥ�" -#: src/list.c:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "���������֤��Ѥ줿 base-64 �إå����ޤޤ�Ƥ��ޤ�" -#: src/list.c:852 +#: src/list.c:853 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "����դ� base-64 ʸ���� %s �� %s ���ϰϳ��Ǥ�" -#: src/list.c:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "���������֤��� %s �� %s ���ϰ� %s..%s ��ˤ���ޤ���" -#: src/list.c:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " %s �ؤΥ��\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " �����ʥե����륿���� %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Ĺ�����--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Ĺ��̾��--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--�ܥ�塼��إå�--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--�Х��� %s ��Ϣ³--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "�ǥ��쥯�ȥ�����:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "̾���� %s ���� %s ���ѹ����ޤ�\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: ̾���� %s ���ѹ��Ǥ��ޤ���" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "̾���� %s ���� %s ���ᤷ�ޤ�\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: �ɤ߹��߰����˺������ޤ���" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "�ҥץ�����" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "�ץ������֥���ͥ�" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "��������ե�����̾����:" -#: src/names.c:72 +#: src/names.c:71 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" "���ꤵ�줿 FILE �������֤��ɲ� (���å��� ' �ǻϤޤ�ե�����̾�ξ�����" "��)" -#: src/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "DIR" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "�ǥ��쥯�ȥ� DIR �ذ�ư" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "��Фޤ��Ϻ�������̾����ե����� FILE �������" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "-T �� null �ǽ����̾�����ɤ߹���; --verbatim-files-from ��ż�" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "���� --null ���ץ����θ��̤�̵����" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "���ϥե�����ޤ��ϥ��С�̾����ѽ�λ���� (ɸ��)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "���ϥե�����ޤ��ϥ��С�̾����ѽ�λ���ʤ�" -#: src/names.c:87 -#, fuzzy +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" -msgstr "-T ���ե�����̾��ʸ���̤���ɤ߹��� (���ץ��������ʤ�)" +msgstr "" +"-T ���ե�����̾��ʸ���̤���ɤ߹��� (���������פޤ��ϥ��ץ��������ʤ�)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "-T ���ե�����̾����å���ǻϤޤ륪�ץ����Ȥ��ƽ��� (ɸ��)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "PATTERN" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "PATTERN �˰��פ���ե���������" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "FILE ����줿�ѥ���������" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "�����ե����뼫�Ȥ���� CACHEDIR.TAG ��ޤ�ǥ��쥯�ȥ�����Ƥ����" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "CACHEDIR.TAG ��ޤ�ǥ��쥯�ȥ�ʲ������Ƥ����" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "CACHEDIR.TAG ��ޤ�ǥ��쥯�ȥ�����" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "FILE ���Ȥ���� FILE ��ޤ�ǥ��쥯�ȥ�����Ƥ����" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "�ƥǥ��쥯�ȥ�ν����ѥ������FILE (¸�ߤ�����) �����ɤ��" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" @@ -1405,116 +1403,119 @@ msgstr "" "�ƥǥ��쥯�ȥꤪ��Ӥ��Υ��֥ǥ��쥯�ȥ�ν����ѥ������FILE (¸�ߤ�����) " "�����ɤ��" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "FILE ��ޤ�ǥ��쥯�ȥ�ʲ������Ƥ����" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "FILE ��ޤ�ǥ��쥯�ȥ�����" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "�С��������������ƥ�Υǥ��쥯�ȥ�����" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "�����ѥ������VCS̵��ե����뤫���ɤ��" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "�Хå����åפ�������ƥե��������å�" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "�ǥ��쥯�ȥ��緫��˲��äƤ��� (default)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "�ǥ��쥯�ȥ��ưŪ�˲��äƤ����ʤ�" -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "�ե�����̾���ץ��ץ���� (����/��ޤ�ξ�ѥ�����˺���):" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "�ե�����̾����Ƭ�ȥѥ�������" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "Ǥ�դ� '/' �ʹߤ˥ѥ������� (ɸ��ǽ���)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "��ʸ����ʸ����̵��" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "��ʸ����ʸ�����θ���ư��� (ɸ��)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "�磻��ɥ����ɤ���� (ɸ��ǽ���)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "���Ūʸ�������" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "�磻��ɥ����ɤ� '/' �˰��� (ɸ��ǽ���)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "�磻��ɥ����ɤ� '/' �˰��פ��ʤ�" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" +"���Υ��ץ����������ֺ����⡼�ɤޤ��Ϲ����⡼�ɤǥ��ץ����Ǥʤ�������" +"��ǻ���. �����Υ��ץ����Ϥ�����³�������Τߤ˱ƶ�����Τǰ��֤�ľ����" +"��������." -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" -msgstr "" +msgstr "-C %s �ϸ��̤ʤ�" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" -msgstr "" +msgstr "--%s %s �ϸ��̤ʤ�" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" -msgstr "" +msgstr "--%s �ϸ��̤ʤ�" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "���ޥ�ɥ饤��" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: %s �����ᤵ�줿�ե���������ϴ��� %s �����ɤ߹��ߺѤ�" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "ʸ���� '%s' ��ʬ��Ǥ��ޤ���: %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: �ɤ߹��ޤ줿�ե�����̾�˥̥�ʸ��" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "�ѥ�����ޥå���ʸ�����ե�����̾�˻Ȥ��Ƥ��ޤ�" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1522,46 +1523,46 @@ msgstr "" "�ѥ�����ޥå���ͭ���ˤ���ʤ� --wildcards, ���ηٹ���ߤ���ʤ� --no-" "wildcards ��ȤäƤ�������" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: ������������˸��Ĥ���ޤ���" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: ������������˸��Ĥ���ޤ���" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "���������֥�٥뤬���פ��ޤ���" -#: src/names.c:1717 +#: src/names.c:1747 msgid "" "Using -C option inside file list is not allowed with --listed-incremental" msgstr "" "�ե�����ꥹ����� -C ���ץ����� --listed-incremental �Ȱ��˻Ȥ��ޤ���" -#: src/names.c:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "-C ���ץ����� 1�Ĥ����ʤ� --listed-incremental �Ȱ��˻Ȥ��ޤ�" -#: src/tar.c:88 +#: src/tar.c:87 #, c-format msgid "Options '%s' and '%s' both want standard input" msgstr "���ץ���� '%s' �� '%s' �Ϥɤ����ɸ�����Ϥ�ɬ�פǤ�" -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: ̵���ʥ��������ַ���" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "GNU ��ͭ�ε�ǽ�ϡ���ߴ��ʷ�����ɬ�פȤ��ޤ�" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1776,7 +1777,7 @@ msgstr " msgid "extract files to standard output" msgstr "�ե��������Ф���ɸ����Ϥ˽���" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "COMMAND" @@ -1812,7 +1813,7 @@ msgstr " msgid "use FILE to map file owner GIDs and names" msgstr "�ե������ͭ�� GID ��̾����ޥåפ���Τ� FILE �����" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "DATE-OR-FILE" @@ -2017,7 +2018,7 @@ msgstr " msgid "Archive format selection:" msgstr "���������ַ���������" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "FORMAT" @@ -2101,59 +2102,59 @@ msgstr "PROG" msgid "filter through PROG (must accept -d)" msgstr "PROG ��ͳ�ǥե��륿 (-d ������դ���ɬ�פ���)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "��������ե���������:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "���������ֺ������˥�������ե����륷���ƥ�˸���" -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "�ե�����̾������Ƭ�� '/' ��������ʤ�" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" msgstr "����ܥ�å���ɤ�; ����餬�ؤ��ե�����������֤��ƥ����" -#: src/tar.c:697 +#: src/tar.c:698 msgid "follow hard links; archive and dump the files they refer to" msgstr "�ϡ��ɥ�ɤ�; ����餬�ؤ��ե�����������֤��ƥ����" -#: src/tar.c:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "MEMBER-NAME" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "���������֤��ɤ����˥��С� MEMBER-NAME �dz���" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "DATE-OR-FILE ��뿷�����ե�����Τߤ��Ǽ" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "DATE" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "�ǡ������ѹ����줿���������դ���ӻ�������" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "CONTROL" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "������˥С����������� CONTROL �ˤ��ƥХå����å�" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "STRING" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2161,59 +2162,59 @@ msgstr "" "������˥Хå����å�, �̾�������� (�Ķ��ѿ� SIMPLE_BACKUP_SUFFIX ��̤�����" "�� '~') ����" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "�ե�����̾�Ѵ�:" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "��л��˥ե�����̾������Ƭ�� NUMBER �ĤΥ���ݥͥ�Ȥ����" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "EXPRESSION" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "�ե�����̾���Ѵ��� sed ���ִ� EXPRESSION �����" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "����:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "��������Ƥ���ե�����ΰ������Ĺ��ɽ��" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "KEYWORD" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "�ٲ�����" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "NUMBER (ɸ�� 10) ���ܤε�Ͽ���Ȥ˿�Ľ��å�������ɽ��" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "ACTION" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "�Ƹ���� ACTION ��¹�" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "���ƤΥ������פ���ʤ�����å�������ɽ��" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "SIGNAL" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2224,86 +2225,86 @@ msgstr "" "�������Х��ȿ���ɽ��. ���Ĥ��줿 SIGNAL ��: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 " "����� SIGUSR2. SIG ��Ƭ�����ʤ�̾���Ǥ��" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "�ե�����ι�������� UTC ��ɽ��" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "�ե�����λ���������������ɽ��" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "��Ĺ���Ϥ� FILE ������" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "������������Υ֥��å�����ơ���å������դ���ɽ��" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "���Ƥ�ư����ǧ" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "tar �δ����ͤ�ɽ��" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "���ʥåץ���åȥե�������ΰ���������ϰϤ�ɽ��" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "��������л���, �������˰��פ��ʤ��ǥ��쥯�ȥ��ơ�����ɽ��" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "�Ѵ���˥ե�����̾�ޤ��ϥ���������̾��ɽ��" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "STYLE" -#: src/tar.c:765 +#: src/tar.c:766 msgid "set name quoting style; see below for valid STYLE values" msgstr "̾�����ѷ���������. ͭ���� STYLE �ͤϲ�������." -#: src/tar.c:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "���� STRING ����ʸ�������" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "STRING �����ʸ�����Ѥ�̵����" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "�ߴ����ץ����:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "�������� --old-archive ��Ʊ��. ��л��� --no-same-owner ��Ʊ��" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "����¾���ץ����:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "����Ū�˳��ˤʤ륪�ץ����λ��Ѥ�̵����" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "'%s' �� '%s' �Ȱ��˻Ȥ��ޤ���" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" @@ -2311,40 +2312,40 @@ msgstr "" "'-Acdtrux', '--delete' �ޤ��� '--test-label' ���ץ����Τ��� 2�İʾ���ꤹ��" "���ȤϤǤ��ޤ���" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "���̥��ץ��������äƤ��ޤ�" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "̤�ΤΥ����ʥ�̾: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "���ե���ץ�ե����뤬���Ĥ���ޤ���" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "̤�Τ����եե����ޥåȤ� %2$s ����� %1$s �Ȥ��ޤ�" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "���ץ���� %s: ���� '%s' �� %s �Ȥ��ư���" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "%s ��ͳ�ǥ��������֤�ե��륿" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "--quoting-style ���ץ������Ф���ͭ���ʰ���:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2352,163 +2353,163 @@ msgstr "" "\n" "�֤��Ρ�tar �ε�����:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "̵���ʽ�ͭ�Ԥޤ��ϥ��롼��ID" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "̵���ʥ֥��å�����" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "̵���ʥơ��פ�Ĺ��" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "̵������ʬ��٥���" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "1�İʾ���ߵ�Ȥʤ�����" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "̵���ʤޤФ� (sparse) �С��������" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve='system' �Ϥ��Υץ�åȥե�����Ǥϼ�������Ƥ��ޤ���" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "--checkpoint �ͤ������ǤϤ���ޤ���" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "���ץ����ǻ��ꤵ�줿�⡼�ɤ�̵���Ǥ�" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "̵���ʿ�" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "̵���ʵ�Ͽ������" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "��Ͽ�������� %d ���ܿ��Ǥʤ���Ф����ޤ���" -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "̵���ʥ�����ȿ�" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "--to-command ���ץ����� 1�Ĥ�������" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "����������̩�ٰ���: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "̤�Τ�̩��: '%c'" -#: src/tar.c:2066 +#: src/tar.c:2075 #, c-format msgid "Options '-[0-7][lmh]' not supported by *this* tar" msgstr "���ץ���� '-[0-7][lmh]' �ϡ֤��Ρ�tar �Ǥϼ�������Ƥ��ޤ���" -#: src/tar.c:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: ���顼�ξ��" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "%s �ι�ʸʬ�ϻ��˥��顼" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[�ե�����]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "%s ���ץ�������" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "TAR_OPTIONS ��ʬ��Ǥ��ޤ���: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "�Ť����ץ���� '%c' �ϰ�����ɬ�פȤ��ޤ�" -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence �ϥե�����������ʤ����̵��̣" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "ʣ�緿���������֥ե�����ˤ� '-M' ���ץ����ɬ�פǤ�" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "--listed-incremental �ʤ��� --level ��̵��̣�Ǥ�" -#: src/tar.c:2424 +#: 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "�ޥ���ܥ�塼�ॢ�������֤��ǧ�Ǥ��ޤ���" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "���̤��줿���������֤ϳ�ǧ�Ǥ��ޤ���" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "�ޥ���ܥ�塼��˰��̤��줿���������֤ϻȤ��ޤ���" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "���̤��줿���������֤�Ϣ��Ǥ��ޤ���" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "--clamp-mtime �� --mtime �ǻ��ꤵ�줿������ɬ�פǤ�" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option �� POSIX ���������֤ǤΤȤ��ޤ�" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "--acls �� POSIX ���������֤ǤΤȤ��ޤ�" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "--selinux �� POSIX ���������֤ǤΤȤ��ޤ�" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "--xattrs �� POSIX ���������֤ǤΤȤ��ޤ�" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2516,129 +2517,138 @@ msgstr "" "�ȥåץ�٥�ǥ��쥯�ȥ�̾�������ǽ; --one-top-level=DIR ������Ū�˻��ꤷ��" "��������" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "�ܥ�塼��Ĺ�ϥ쥳���ɥ�������꾮�����ƤϤ����ޤ���" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "���Υ��������ֺ����Ϥ��Ƽϴꤤ�ޤ�" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "���ץ���� '-Aru' �� '-f -' �Ȥ����Ƥ�ޤ���" -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "" "'-Acdtrux', '--delete' �ޤ��� '--test-label' ���ץ����Τ����������줫 1�Ĥ�" "���ꤷ�ʤ���Фʤ�ޤ���" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "���Υ��顼�ˤ�꼺�ԥ��ơ������ǽ�λ���ޤ�" -#: src/update.c:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: �ե����뤬 %s �Х��Ⱦ������ʤäƤ��ޤ�" msgstr[1] "%s: �ե����뤬 %s �Х��Ⱦ������ʤäƤ��ޤ�" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "�ѥ����� %s �ϻȤ��ޤ���" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "������� %s ��ʤ���ޤ���" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "���������γ�ĥ�إå�: Ĺ���λ��꤬����ޤ���" -#: src/xheader.c:677 +#: src/xheader.c:695 #, c-format msgid "Extended header length %*s is out of range" msgstr "��ĥ�إå�Ĺ %*s ���ϰϳ��Ǥ�" -#: src/xheader.c:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "���������γ�ĥ�إå�: Ĺ���θ�˥֥������ޤ���" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "���������γ�ĥ�إå�: = (��������) ���椬����ޤ���" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "���������γ�ĥ�إå�: ���Ԥ�����ޤ���" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "̤�Τγ�ĥ�إå�������� '%s' ��̵��" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, 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:1053 +#: src/xheader.c:1071 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "��ĥ�إå� %s=%s �� %s..%s ���ϰ���ˤ���ޤ���" -#: src/xheader.c:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "���������γ�ĥ�إå�: %s=%s ������" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "���������γ�ĥ�إå�: %s=%s ��;ʬ" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "���������γ�ĥ�إå�: %s ��̵��: ͽ�����̶��ڤ�ʸ�� %c" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "���������γ�ĥ�إå�: %s ��̵��: �����" -#: src/checkpoint.c:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s: ̵���ʥ����ॢ����" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: ̤�Τθ������" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "����" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "�ɤ߽Ф�" @@ -2646,7 +2656,7 @@ msgstr " #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "�����å��ݥ���� %u ��Ф��ޤ�" @@ -2655,12 +2665,12 @@ msgstr " #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "�����å��ݥ���� %u ���ɤ߹��ߤޤ�" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2668,93 +2678,97 @@ msgstr "" "genfile �� GNU paxutils �ƥ��ȥ��åȤ��Ф��ƥǡ����ե���������ޤ�.\n" "���ץ�����:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "�ե�����������ץ����:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "SIZE" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "���ꤵ�줿 SIZE �Υե���������" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "ɸ����Ϥ�����˥ե����� NAME �˽���" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "FILE ����ե�����̾���ɤ߹���" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T �� null �ǽ����̾�����ɤ߹��ߤޤ�" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "���ꤵ�줿 PATTERN �ǥե���������ޤ�. PATTERN �� 'default' �ޤ��� 'zeros'" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "�ޤФ�� (sparse) �ե�����Υ֥��å�������" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "�ޤФ�� (sparse) �ե����������. �Ĥ�Υ��ޥ�ɥ饤��ǥե�����ޥåפ����." -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "���ե��å�" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "�ǡ�����Ф����˻��ꤵ�줿���ե��åȤޤǸ���" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "��̿Ū�Ǥʤ����ǥ�å�����������" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "�ե��������ץ��ץ����:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "�ơ��λ���ե�������Ф��� struct stat �����Ƥ�ɽ��. ɸ�� FORMAT ��: " -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Ʊ���¹ԥ��ץ����:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "OPTION" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "ARGS ��¹�. --checkpoint ����� --cut, --append, --touch, --unlink ����� 1" "�ĤȤȤ�˻��Ѥ���Ȥ褤" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "�����å��ݥ���� NUMBER ��ã���˻��ꤵ�줿��������� (��������) ��¹�" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "���� --touch ���ץ��������դ�����" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "�¹Ԥ��줿�����å��ݥ���Ȥ� COMMAND �ν�λ���ơ�������ɽ��" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2762,7 +2776,7 @@ msgstr "" "Ʊ���¹ԥ��������. ������ --checkpoint option �ǻ��ꤵ�줿�����å��ݥ����" "�ֹ����ã�����Ȥ��˼¹Ԥ����." -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2770,123 +2784,123 @@ msgstr "" "FILE �� --length ���ץ���� (�ޤ��ϻ��꤬�ʤ���� 0) �ǻ��ꤵ�줿���������ڤ�" "�Τ�" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "FILE �� SIZE �Х����ɵ�. SIZE ������ --length ���ץ����ǻ���." -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "FILE �κǽ�������������Ⱥǽ����������" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "COMMAND ��¹�" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" -msgstr "" +msgstr "FILE ����" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "̵���ʥ�����: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "�ֹ椬���Ĥ��줿�ϰϳ�: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "��Υ�����: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) ����" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "�ᤵ�줿�ե�����Ĺ %lu, �ºݤ��� %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "�������줿�ե�����ϥ��ѡ����ǤϤ���ޤ���" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "`%s' �ζ�ǿ�����ʸʬ�ϻ��˥��顼" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "̤�Τ����շ���" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ARGS...]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "`%s' ���ޤ���" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "�ܤ��Ф��ޤ���" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "�ե�����̾���̥�ʸ����ޤ�Ǥ��ޤ�" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" "�ޤФ�� (sparse) �ե������ɸ����Ϥ˽Ф��ޤ���. --file ���ץ��������" -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "�����ʥޥ��� (`%s' �˶ᤤ)" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "̤�ΤΥե������ `%s'" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "`%s' �˻��������Ǥ��ޤ���" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "`%s' �� truncate �Ǥ��ޤ���" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "���ޥ�ɼ���: %s" -#: tests/genfile.c:781 -#, fuzzy, c-format +#: tests/genfile.c:772 +#, c-format msgid "cannot stat `%s'" -msgstr "`%s' �� truncate �Ǥ��ޤ���" +msgstr "`%s' �� stat �Ǥ��ޤ���" -#: tests/genfile.c:785 -#, fuzzy, c-format +#: tests/genfile.c:776 +#, c-format msgid "cannot remove directory `%s'" -msgstr "`%s' �˻��������Ǥ��ޤ���" +msgstr "�ǥ��쥯�ȥ� `%s' �����Ǥ��ޤ���" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "`%s' �� unlink �Ǥ��ޤ���" @@ -2926,6 +2940,9 @@ msgstr " msgid "--stat requires file names" msgstr "--stat �ˤϥե�����̾��ɬ��" +#~ msgid "OPTION" +#~ msgstr "OPTION" + #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: ARGP_HELP_FMT �ѥ����������ͤǤʤ���Фʤ�ޤ���" diff --git a/po/ko.gmo b/po/ko.gmo index 18b07b8e074f5452b75a9439923b96d280e82db5..c20867f7474cad8246f7b3966dda78576dc259c7 100644 GIT binary patch delta 12232 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 delta 12484 zcmeDF%slxkbNxLbmZ^*k3=DQm3=9Sg3=9fF3=E9S3=9G)3=AM~5d#P<W5B?m08+rf zz~E!Rz#z%Mz~F1Zz#ziFz>sdhz`(}9z)%BH!@$7MY{0-E&%nU2#DIZ;hk=3N2$a5P zz`)SXz`$_NfPq1bfq@~-kfEMIkAZ=q){ucgm4Sg_jUfYrAOi!#B|`=VVFm_<Cx#3R zN(>APKMWZd+!+`cq>UIDR2Uc-l8qP`co`TNI*b??WEdD2rWr9X=rb@dY&L>e{Md+r z!J2`Af!UaWL5hKa!QL2RZj><tgE#{NLyj>6gD3+7LyK`e1A_nq1H&w11_n6>28Pwf z3=C=v3=F4?AwK(P%)ns9z`(#}0&$3=2?K)}0|P^f2?IkM0|Ucs6Nm-BOc)p>7#J8t zO&J(885kJ!Od&pxFlAs!VPIfLHDzGX0hwzGalm&|1_mPr1_u6mGX@4j1_lNvGX@3| z1_p)_GX@4_1_p+eW(*8T3=9ls%^*Q#U=DGhyEy|x87Sz?8NeZP*PMaDj)8%J!GeK- zALLUD1_lKN1_pl%1_mJp28IF)h(*m73=A3!3=G>WAP&550nuO2Y01D~%)r2)V+rwD zf+ZwGrdvWRTww`u;BiZc!+u&aFeoxGFvwa#9BgmJz+et?xD^99D%V&+EVymOz~IHe zz`$w^Q6FH<z#z@Qz))ljiRwOUa7ffMY_W#8?2I)eD8E`mTrOb4z@W~+z@Tiyz#z-O zz~Bv~Gi@LVvK`9rv|(UiW?*1gZUgbrY8!~d&e=c`C9^Fgv2ximFz_)jFsMLjV_T3t z^$ZM7wh$MG+Cmady)7h>?Y4yk-2+=l2npLk5}7-cF1Lfk>2f=W!>`yeFlaL{Fub>e zgq*ZJ1A{FC1A~=41A`3%14D&9*vAZ8?I8|3YtO*IUeCb5aK#>C!5w=B23H0K1_1|% zgTfpb7)%)$7#bWPiEx_(#KMmbkPwq|g!s(e5#r!PM@U*}bA;rAxsDJA?R8{eaARO# zc<BhS$H0k!K?{_KofsJELD{R{31ZPECy2{lI6;E^y%QwPc%30-gQhdY2T{%p4D6t| zgwj<|y2%-m7`vPyx#*-b#9<$tAr_0eFfc?iFfe$!K+Ik2!cY&+Zu?yzE`R0%Ni2U| zATF18h48&yA&D>76%xl2T_M?Xiz_7mpLB%;`7>9D!&%)R<%hBxBsZA5LClYEgXqh5 zgM?6vTRkM(EOBFCaA06y*y08W;;(KHgOuDM206GxG=#V_FtC79yE`O*SGq$IUz<B5 z4RpCfEL`di$wkN9AqCBKsQ$O^5RdSBKpbpX?*S1A@PK9`4~UP~crY+<F)%Qk^MLsH zrU%49f1rFRPly4wo(v2j3=9l0o)C|0^n@hZgPstNeDQ?DwW1e<@8bpWK&2NXs_W~# zAU<pLf&|f0FGyn9;{}O3W^ahkG`t}toU=EiD2?%kB-T7{28KjN28J!(5R1ipArAHQ zh4?((7viv5Ur1E-`Z6#$F)%Q!@&$)@J;PgH25^C*=f}Xn&A`AA;0GxnV*DT)n*10T zbQu^J=KDdS;;bJe5kB+-<zEJdpMDUFc>EzAQSyhxv6DX}D#HCC=2ZAYa?4bINV&4! zA5<RHGca8DhxqWBKO_Vg10V_|0w5L|1wh2zp#0bXNZb|%Kn!kziq8*#IB0VKBm|BH zKyt~G0Eolh1VEyIClF$vWgr8CC@BAj1VU=FtUyTIR0KjoqBal`N1cHXA592^#QD-d zNSq!CgoNCCC@mNSi85m-9T5a6uxf)KMf=(yh|iw{K?*vaU<QVIQ03tf3@K3BgCXU> zhG0mLKMRHwL?R&&3++M}7>XGf7&1c`7#tZG819BZ93~$M2{DsUNXYnwLUKoZC?te( zLLvG)Lm?jA5(@Fy&QOMWaFKZ+6q2akghJx-UnnH8iG)E6)D43Kp<Nh6V;q!D4P#(n z1=Z(akTg>i1_^-~VUXOkHw@yyuVIih!xaw6ZA#&g%E~Rg9#YVhhC^z(h2fw?!N71i z91@q0!Xa_^H5`(d{)R)MKrRB}6Wa(#>UN5NSQHci35oOwhy{%i;8f1AAp#P`A0r?k z@jn8R%e3kvAr=)zLNvBSLW<gXkq{r9k7QtQVPIhR8p*)m4600`Ac?3h3KEyAqaZ%J z90f7wbrdAA{)>VnUeRcXLp7rzA*ToBn?m{ZR?(0kbc}|S$?nmRpihp5SX2`YiISDk zkPz4(4T;+a(U2&48x3&)Zw$m|sxgod4Tyo%0X0y1aSSA+PQ@@V6f!U{+=>B*WIcmV zEX0M`P`V(NfgzfafuS@O5&{?FAVK*(4pI`T#X~~MGall@<akILDTneq;u#pC7#JAl z#6wd3_jpKd(o0}q@BxKj0z`j%0>}gP3=9hsAaQpv0TKe&5+DYDN`UyBEfEs5GKmZf z9t;c&`iT%9S0qC8O-O`9+0sNv5MN7VU<d={jzk6qPX-1ClOzbgE(xOkY7(S2e3it& zpbyIba><ZH=9dg{Kv*&)`xPZa;&MSUIH(x5Cqo=|Eg2Fbub}dhDUkeZkODC{Ck2x4 z7o<R<;z9}}t^7%Wq<)oDkk1(yJW?4L>OpO?j8sV6w4^dH1Tio$Oi6_V)$>#a22PL< z(jc^58YHcFKxw};NK-5%4N@0`r9sMzIcX3JkEKEK|GP9uRC1?7JYty6z>okc>eCtO z!Oh~0>5w43mk#maw{(aGt_+Az4Kg4h5)Y+&Ga!j*cLt=br<)0>Et4`K7UX6^EbhsK z6lg0mA(hVkOi1=t%7UaB!>oEp;&94>IKVFpqA?9hH)lcOY(W+z4Q$PV6uBp|AP#y3 z)hCe+DG?2_A^E&08=}4;8<JZlXG3z+f^3Kf&t^l+eOM1=e9MN!A$JZWmAmIKFk~?> zFl6OGisq|1kV@lU4g*6f0|SF(E+lU2b0G$;&V|JJfm}$c|BwsGj_P@k#2J(ak#Ej} zG)6b)L7HmyAMzkB)6a**T}(biqAeei-;d@);`SMo)+vAlWl;gdVOt9zCFi{Yhy?<L zkf3!agw%q8g$xYg3=9nUg^(`X@j{5h`HR4bv7W)Y2;!pnB1l}$DS`y?#Ue;5{agg` ziEuH5Z&wVFk1K}ww4oSc(e`49gRd4t9Qdsm5=E9J5cTOL5Otj;kUC;{2`FUh85qu# zK!W~n2?K*A0|SF)DMVv&DcFS!3!(JUQb>M&SqkyFaTz2^V#*+KT3!Yb?}pM_${-HD zTL!W4Zy6-5DV0MUqF2tqpbg6ZKIIUDD#{^oIT^}dQ4aC>;c|#U@5&(#;H!WHaYO|~ zUuFfQ_H3zuMCG&!1_o~i28P2G5C`#BLTHOhNL`Xx2?^<Cl?)8^pkD9oN=SbFRms4x zo`HcusR|Mjm#QFXf~Oi1XJ*w9pCna7%J%kZNC~;Fnt|adsGncWz#ziNz_6+YQl#&% zg~a`lT1YJ@QwK>Sv2~E_-CM^{5AMZou7kMzS{)?lnd>164C^5dfK}6t^^g*AZ9OE& zk3h5Uje1DQ`2^aWXJ~+gj6eg#;o1%04l+Y{10;keG(dV(OB?DTt=0z(5SIxzLW0t{ z5fb#FjSS$Cjs_@y7L-2P2q`f?G(z+-G(k#6gC<BFVAcfb``I=@^j9}QLTqXiq+Hn3 z1S#0g*EcaR#4<22{A+?(7}E?1iS}lQ&$mG7d(Dt?fujY|ve9mVL`8B7Bz1SRKs>Ul z1rl<1q4LbFkhG)G3QFw^3?8kJ>b<fRQc~7WYK8b@V=DuL9|Hr!!Bz%_U{EKt4HASY zZIB?WZ-e-7bsNNjjct(Be7%i<L5PWg;c*)zQGM%x=+o|m6v=L#5C;ZA>EcdE5j?dM z9EJ4^OF9`C+87uZc637WuYDIJJ0^5NTs)@>QZ%3Kg2esPE=c11)5XA$#=yW})(xrk z=5|9YzSs>(?QgmvMY3oQqz(x0fi$^#dmtXV(gO+sQ2y(M2*~$Bg50|o5=W)Iki^*0 z%fJu_8anBP<XetD1_oaS1_rf0NF0{*L43Zr57Iuk(Fchd#eRr`-1?!}t{)O2%b@&? z{R|8yAp5`dLlTGf1W2_TGyziN&Yu7oLU}p?;sb+;5Fe#YgrtQP6Cp+K>4}j1{&ylI zF?vpdl#G>=AgO)BB#1|jPJ)Ew=SdKIxF<6()PsifA|^vD=$s5OVE<%DP`#fFX-b(* zfmk?k3M3nCnF0xsw^JZRxBXN|<FsZfBxDXug>*{!ra{^h$<rVX+BOYRslA;BN$e5R z8S24fJI&J}K3g~)lDHmEhXg6-3`oAVn*m81Q8OUo)iWRk)`l670_esJNJHcuRQ|&Z zNVi;dCd9#-Ga>qtW<nC}^qHWzXJA-76Ix&#nhD7Tmu5oZ{?SZGoPC`Mi2|!xkRWWG z#lR2>8fcsa2?5U8kT{Q?4N<pbHl&t&KO5ph^Er@^Oqv66$jUhk3=s?r43Fk8FeEcD zFj&{mh4^6pTm}XX1_p+$b0OJd-&{y4KRcI!p@o5gfqfn%-}lUeSa@U}B%AWihXifn zd`J||m=6iDbMqku(5v|nhiEK-Wbfbw5C<+=z`&5fz`#)dY5}B-4qnK>;LpIouzDdR z7yMob$%d+nAP!4h1WBY>iy%QaaS^0U->?W0G9MQ~94@~YqF!$?gm1o>fgzEBfx&Gt z#Gxw|L$dY##o%^EJ%hj!28IsMh~*MUzP+&oVlm@Vh>vZdbm>w^y}ouSBrZQJg#@YU zGKl)PWso#7YZ=6X-OC`k=nYifXgMUL^Oi%@w=4%au%3b80GPqRaDF)?zusF8sa}6B z2fL7gYXv08JXb)9=7}pHA+T=+Br5K%fcRK#C8U7TUkNgpfx&Ghq#Ouc32{)>N=V(Z zdL<-V?p?{iAPLI<msUcG$Tuq?1q|ORNJ!|cf><273KF+-S3y$m<y8;|++PK8@V`}% zTqC&}Vxj$N22g#(kg^(*sGqNfgv9sN&=6e%F|TwD14F$9D9+bFeDDNHzg+{#Uf<S0 zf=q5LBsZ9>g{1PzwGi<mQ2N$dNWt=9EdxUg0|NucItGRfj0_B^>mU}3ZGbo|W&=cD z;|6fq&oF%hLp^xhfAt1PBDuH$5~Ri(Ax*EEjgaQ_f{l=7`MQk|15R&*)OHUyLV{Xk z6C~u6p|s;BNXW!*g5-v(O^~!PZ4;#A+r9~sD_AzyLlo+7h6JJ4W{6J;HbcZap!~&~ zAsTjXhFJ6rD$lY7!k6Cy(Pz5_Vqqv$yl@M|;r&}6)$p1vkSIK}1(JAg)Ng^5-GW;o z3S+lId|0&=;`0exAsXgwg%nJywnCz6FO+|5E5zY9w?Znh|63tJt-TGBO9Hk*vS%xl z-n<QxZ69ufgmk^qc1U8%-VQ0lyS76dbZ$GuK&c&&?BccqVo(#5-T<ZV?O<RiVPIh3 z*$F8T8+Srd`Q@FE5PP~45;6k2Ah}9o7o;w++y$;H>KS5oL433dN^jl;snz!Ef*AB} z7o>h?*bPaPCc7a`s+ir7>{zxN5<-i2L(EwZrFZOxr1pcmA?E$u4YrU$dk-XpEBAoX zSUm$n{~kzCZQcWklNWm+A)&YzQYoeGg(R}&dm;ID+g^x8r}sh<)s?-F5c~>NC$bL` z*UI}q7BDb4?}IozeIF#z_V0s~xQF&JFeriYztnz6_Ojg%>Dx8!hXmP+{g9%V;Q%C& zX&r$0#Nz;@<x>TvA0B`h>~Ro6S098FIO`5VqVWDfNZR5)1W6kjhagQk-$M)x^`Ifw z;6o4}#UFwMWd@WkIRuHrhC`6JUwsG?<TnpN8j);=A$5ZMVMyG%9fqX-a421T7!rd0 zhapAx#lw&g7C8cGIr$!8s0Yu-)f{19r~?f=9Dx`td=%mkoud$kSsZ0xxXQ@D;CK{L za)}>@)Na1VA(cw^aY!yWbQ}^zFQD{aC@pjX5@PBnAc?#01SEIeI#CZX;Kd0@(8-^K zRJ%bZAyLqC5|Ub%oP-47@sp6aeR2{~KCqmEI9&b|B(CS3g2*2_1&OLhryy-Uk<$#I zJ_&>TX-JD|!D&d{^1J>tBsE%{fi%4W&Oq{I!x_k!(8)89IJ|g<fx(`Ef#L5Nhy}K1 zAyE^17UIy3vyix5a2DdQqh}!@_24YTgJS0(9`rp23HpX}5dHP*&q3nw);Wkz8P7vf zv&wl$ZRUI)(m{zj56Ry<&O?HZ>jH$9xBy8^YEW9|0;DNsbOF-VGr0h<aQ+2|L(W}* zBxcr&;9OD9pnMVHa_@_fL7{?+kVJCvBBWO2x&)zhE<qBP-z7*~XI+A%@(Gt9K0A1c zfng#81H+d~klfUE8Ip!hUxq~8^~;cu`*IoLAdxGeDcpJn2IngfiA7f+79F|*NkmVs zKtkr{6^I6fs}P6!L+O&MknB10DkQ`XUxhgQ(N#zymc9l_{U+BSwO!dYh<MjE$Y|Q) zYYYsa`Dcc;*B}Nzyap*y*seq3Q2jcj8SQi(lKrM%XJA;#z`$_yI>g8MHy{pMbOX|; zym$jr-D=&0l$ZrKAr4w{6Ebda_a>x7RKEpjU&P;HV5kSp-FDo9C^&Enk}A1wGcW{z z=IL%jip*KJAtRVCZbQ<D{T)aNnRExz{$F+nQmH(?1F=};E+iL4+=V!3(p^aTaN{l{ zq+i};V2Ed6VBoyRP!FEH%De}O%YFAC1<d<<kf4*f56S0o_aQ~}ocrKJ!*KCFBv<^r z4+$yN2M}?G2arUX@c<&e>j5N6uRee{?E3>q2xvcq=uduF4++}-hma81`w$Ye?2i~2 zqCtbjk3flpfnnMs$js%}N01=(e+;2J9y2f$fO^f3At7b-1mcl~ClCj1d;&>BH=jV# z3TT)FG<&Y~6cR!{^-m#*qwOigMYEnl^6jywko@`QDI~k7KZB$V*Jlv%v}X_>PJ9OG zkgRzI$*xS#AwHIT4k;I`pF<oP{2Ws7^gM?|)$`|&G*GYc0@5T3d;#eo%zFU|fwwOp z1(Cu_28J7;IiHu1ICpvl39+_Uke<z!SCH)Z`xV6DimxFK3xCbPpuxz%Q1qIC;SXq~ z#2d)S$c(p;5S#xNTnpAS2)u&?O~yM&98G!$37TV2n&Ca9;IMiR$=8MNAr9I09uj50 z-b1pL%LhnF8v6lKFcp7*1brivUhx5vhR%P0L>0?NkVEPj7=k`R6dwKvsij_hgoJ?Z zC&(aC!Y7CYvp+!+=ax^9{QeM1Gkk{d<v&BB!0t1os1E%M8T*|Ir5AmM<f`?bAyLEd zg@M5VRR2qSfy8m-7f6toe}S}y4}5{dozho`!=k@J;%*+4zW)`Hnial5x^5BQAaT0l z8zc=}{07ng`5VMTI^QALJN`R_KkqvOLp>;!UxW(i{(u;m@B>l;&iDb2BZjp<Ai06{ zCnQ7?e?rpAoS%?5ef<*>w4Z)Lf?oX>qz(WLY=PFMfUq4S1H(hmJTa(<2IVY91_lpC zhI$4gCI*I|j0_CV7#J9qGB7ZNf>s@YR=6-QFkA->yD%~^YzCRYz`zj8$iOfkDzC=` z5nRv6z;GAB1e2ikK9d+381xw#7#tWG7?h#vz>=U9F^rHh0=#^O5fuIm3=9cSLqThJ zK$Aoqj0_Arp<?M!ok5I{(vA;mpe!Q;0~=J$U#J=w1zM0|4wW-tWMKHk$iUFez`$^k zfq|iwk%3_!0|Ub*Mh1o_^^B0z2-29z$iSe>$iOfQ<V(={45$G|86gQ2q~;m}1H)Ai z0|_TFGBCVlWMF7yU|{%$BwotMz;K-r5>-4<M=L?iyv@MCV8g_~pnD!F09tMZTImFu zP6e3(n$uTcWMIf=WMJ3@Rr7iBK~?ekON<N*Sx^zs@)VG2Gbo>niGiV;k%57Wk%8d~ zXe^zPfgyvDfx(24fkBvwfk6utAq)%*;*1Oo(-;{TA{ZGMvKbi|PJ*1n$iT3Sfq@~8 zk%8eKXe|aK1H&r@1_pH|28L-23=H2H85m5N7>pRcg1Q?ZTS4m{7#SEkL9>0J<OEuJ z#>l|1AL<y;xQP}M1B1onhx)>kKj^b?f(9xdF)}b50EyJQGeVNPCL<)jfmV=(FfuSq zXJlYF%>XH7`WYeXut3($W?*2L2<p~?7Wse#7#J81FfuSaU}Rtbt)a7EWMI%_VqmBM zsRIoVGBGgxfVyQe0|P@IXayTI9^{!A>KUY%7#J>rmcKDT%1Y4M7->cZ24hAB25qQ9 zkUevuhJXfa@}O)cB>AOKF=i$P1{0|GJVpkFJs{0ce2kHSVF?4IgtBI2V31@4O(!!j zFua3m-pa_p@S1^v;W;A%!$pt-pc?fU85n9osgeOwC;tIOKLZ29AqEBpk;#A6mFra* z85kx(RfCoX$TBf7%mb~`V`Knz+MqHJ3Y6azpiTr0H-SVSFfcG212I6u&P)spsZbX+ zFfuTdgW5Zwbub_&GchnM10^N~28I(13=DpZ3=D4=80x_j<T(rs3_n4U#>l|1f)O(R z;KRtkz{mt?LV(Qw0;-Qd3<d^<PYetUu8a%}bx_OpLg_mU3=A(o8H#~{;UQ?A8k7;C zdO&NQL>U<vl$aP8ilOT5K^>UwpuP(zqd*n*F)}b52B)#VP-QQnG*kh@DFy}xAw~v< z7ob&-3=9kspy+|B(Pd&_uxEr+oA((R7(OvFFvu`6Fsx&QbhSZdJY!^FIKsfd(8$QZ zP{ROe|J?!=G$2U^NT);)l*T~oJ3vb(w}K{wpca6}W<csBm>^B#GYkw2k)R@ziGd-2 zk%6HXG=>9O&B(;Sun?pWw8VmufkBXwfnf?LS3|`tm>3vTm>3w?q2{gyEw5u_V2EOb zv>Dbh)H5)whAL)(#yW@#njY6-gp5*w_#n*92x%08*snm7NTA_Ss2+AE28L=z1_l98 zQNhT-5XQ*BFoOZowOY=|z%Ub36f-d}m_i)_GGhg3c_qk&pb>7+3?yiM7f1qxg`o;T zZ80}S28Q>H3=Fo63=A7Ui%vmh^W?u;%CVeG3=F(X3=FDF3=HQO7#PAC85rc47#KPk z85mYFLTdA!ptX}skfw+f)YK|Q28MJ-NOuLabO~hRK}H6KOb~+svIaJOa;>&_{e4i~ z0~OuQ2x(t{xH~{a5F-OaE2x#s$iR>WHF*)JvICWw3=9mHL79{hQd74uGBEHnGBBKH zfV4$GX27sNBV<%=0aU;V6hjbpJ$S7ss88{Y5z?G1gIWZV2d$I^(M^mD41Ej?3~v}2 z7&M?UvJE7`0BMVYn9o530|UctMh1opP%}U)dlxV=FjPV1M4)>AGcqu|1WgHp*8YHo zejhVH`UTuj1t9f-P(x&x7#Pli)+bNit0P{294a~)loc2m7z!C7i$zv3LYg#tL6OeD zz|haYz;FR%3@DpH>3^U)39277!vzu+V`5;K07}^m3=AKka%M~n3@4y$kQ&e`R&yo> z22g7W#Amq1$iQ%%fq|iok%6I-5i&9{7c2vrKE21t!0?fQfx(c8fq{{cfx!TjdKnlP zZZI-1STZp%+yl+uGeG)wAZ?Wl3=FTK7Rp2EHH-`lHyI!;VsR!0h8-Y<pzLJK#K6D| zYC$kEFo-cSFz_-mFgyZPHlSt_C>wxM3<Cp07Xt&sZ$<`&9#D#a8d?OUK?{LF=J_%* zFnB@57BfP+%V!uF7$z_<Ft{)>F#HE80;M!iRs^-#>X{fA${86LRx>g%a4<12bb(4C zP(=gEo1m(i5i$`B)dy-BgXeeNfdrTs81^$TFsx-{VDN-mY6zuS85tN9K~V`(#{lV2 zC^IrJ%wb?)$Yo?;c+3bHKAC($Pr{W6G!Vqdz;G6-`6(!<7#SE&F)}a&gVF>81H%VU z1;xm~a0jXeWG-k*+!mU`_$KS>%h&gUDsE8k4HTIS3=A8gs#&3`+Ch9q28IqsNGEFs zs9s@YVE7HPfsujX2Ll7cVo*ebj0ZJJ7$FUHsCI@PPz4Aw12oYBr9sQq6+z`HBZCmb zS4IW~Z%_#iO1_K?3>A~_>Pst`{$gNIF<@Y@FkoP?{RQbAfouSo@c;k+|LMOrOBrZM z`Zxx;2kR+>7N@3_<|veBmSiaC>LzETCTADqXXceCB<7_k<maU-<fnneOG|VVbafL8 z3R3e@K&+Dd(&P*fqckrkGcS9ywdXb-)_@RCf4|M|L$4a}n(G=G=^C0V7#dj_8*aYX zCZSUQX6}wR^CsB6Ub;u&P4|+w(>mWyUHQ7Z<8}8EJ&+A>o8QcA0PzXfsPJaS);Fy) z6y7YEsPJ~`jMq&wKnB0wJP~a0jMpo-D7=}x<Mr|$m@Q08^fo_Vb()_QtZ(zWU3cvO D!pk|u diff --git a/po/ko.po b/po/ko.po index f1f6a562..44f5f484 100644 --- a/po/ko.po +++ b/po/ko.po @@ -4,12 +4,12 @@ # Bang Jun-Young <bangjy@nownuri.net>, 1996-1997. # Seong-ho Cho <darkcircle.0426@gmail.com>, 2016. # -#: src/create.c:1599 +#: src/create.c:1598 msgid "" msgstr "" "Project-Id-Version: GNU tar 1.29\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" "PO-Revision-Date: 2016-09-22 02:59+0900\n" "Last-Translator: Seong-ho Cho <darkcircle.0426@gmail.com>\n" "Language-Team: Korean <translation-team-ko@googlegroups.com>\n" @@ -100,7 +100,7 @@ msgid "give a short usage message" msgstr "간단한 사용법 메시지를 보여줍니다" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "<명칭>" @@ -236,12 +236,12 @@ msgstr "^[yY]" msgid "^[nN]" msgstr "^[nN]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "%s(%s)(으)로 패키지 구성함\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "%s(으)로 패키지 구성함\n" @@ -249,11 +249,11 @@ msgstr "%s(으)로 패키지 구성함\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: gnu/version-etc.c:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "(C)" -#: gnu/version-etc.c:86 +#: gnu/version-etc.c:85 #, fuzzy msgid "" "\n" @@ -532,204 +532,204 @@ msgstr "원격 셸의 파일을 리다이렉션할 수 없습니다" msgid "Cannot execute remote shell" msgstr "원격 셸을 실행할 수 없습니다" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "탐색 방향 범위를 벗어났습니다" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "부적절한 탐색 방향" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "부적절한 탐색 오프셋" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "탐색 오프셋 범위를 벗어났습니다" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "부적절한 바이트 계수" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "바이트 계수 범위를 벗어났습니다" # -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "빨리 나타난 파일 끝 문자" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "잘못된 동작 코드" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "동작을 지원하지 않습니다" # -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "예기치 않은 인자" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 msgid "Manipulate a tape drive, accepting commands from a remote process" msgstr "원격 프로세스 명령을 받아들여 테이프 드라이브를 다룹니다" -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "<번호>" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "디버깅 레벨을 설정하십시오" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "<파일>" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "디버깅 출력 파일 이름을 설정하십시오" # -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "%s을(를) 열 수 없습니다" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "인자가 너무 많습니다" # -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "쓸모없는 명령" # -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "이것은 tar 아카이브가 아닌 것 같습니다" # -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "총 읽기 바이트" # -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "총 쓰기 바이트" # -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "총 삭제 바이트" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(파이프)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "" "터미널에서 아카이브 내용 읽기를 거부하고 있습니다(-f 옵션이 빠졌습니까?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "" "터미널에서 아카이브 내용 기록을 거부하고 있습니다(-f 옵션이 빠졌습니까?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "record_size로 부적절한 값" # -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "아카이브 이름을 설정하지 않았습니다" # -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "표준입/출력 아카이브를 검증할 수 없습니다" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "압축 아카이브입니다. %s 옵션을 사용하십시오" # -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "압축 아카이브를 업데이트할 수 없습니다" # -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "테이프의 시작 부분. 지금 끝냄" # -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "오류가 너무 많습니다. 끝냄" -#: src/buffer.c:967 +#: src/buffer.c:969 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "레코드 크기 = %lu 블록" -#: src/buffer.c:988 +#: src/buffer.c:990 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "아카이브에 비정렬 블록 있음(%lu 바이트)" -#: src/buffer.c:1075 +#: src/buffer.c:1077 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "아카이브 파일을 후진할 수 없습니다. -i 옵션이 없으면 읽을 수 없습니다" -#: src/buffer.c:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "레코드 범위에서 rmtlseek 동작을 멈추지 않았습니다" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: 잘못된 볼륨 번호 값이 있습니다" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "볼륨 번호 값 범위 초과" # -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "%2$s의 볼륨 #%1$d번을 준비한 후 return키를 치십시오: " -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "사용자의 응답이 필요한 곳에 EOF가 있음" # -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "경고: 아카이브가 불완전합니다" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -741,71 +741,71 @@ msgstr "" " y 또는 newline 처리 과정 계속\n" "\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! 하위 셸 실행\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? 이 목록 출력\n" # -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "새 볼륨 아님. 빠져나갑니다.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "파일 이름을 지정하지 않았습니다. 다시 시도하십시오.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "부적절한 입력. 도움말을 보려면 ? 기호를 입력하십시오.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "%s 명령 실행 실패" # -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s은(는) 현재 볼륨 뒤로 계속되지 않습니다" # -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "" "%s은(는) 현재 볼륨 뒤로 계속되는 것 같습니다: 헤더에 잘린 이름이 있습니다" # -#: src/buffer.c:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s은(는) 잘못된 크기입니다(%s != %s + %s)" # -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "이 볼륨은 반복 순서를 벗어납니다(%s - %s != %s)" -#: src/buffer.c:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "아카이브에 %s와(과) 일치하는 레이블을 붙이지 않았습니다" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "%s 볼륨이 %s와(과) 일치하지 않음" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -813,232 +813,232 @@ msgstr "" "%s: GNU 다중 볼륨 헤더에 파일 이름을 저장하기에 너무 깁니다. 파일 이름을 자름" # -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "블록 경계로 기록을 끝내지 않았습니다" # -#: src/compare.c:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "내용이 다름" # -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "아카이브에 예기치 않은 파일 끝 문자" # -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "파일 형식이 다름" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "모드가 다름" # -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "uid가 다름" # -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "gid가 다름" # -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "변경 일시가 다름" # -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "크기가 다름" # -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "%s에 연결하지 않음" # -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "심볼릭 링크 다름" # -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "장치 번호 다름" # -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "검증 " # -#: src/compare.c:480 +#: src/compare.c:479 #, c-format msgid "%s: Unknown file type '%c', diffed as normal file" msgstr "%s: 알 수 없는 '%c' 파일 형식. 일반 파일과 다릅니다." -#: src/compare.c:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "아카이브에 따라 붙은 접두부를 제거한 파일 이름이 있습니다." -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "아카이브에 변환 파일 이름이 있습니다." -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "원본 파일 위치를 찾을 때 검증에 실패한 것 같습니다." # -#: src/compare.c:620 +#: src/compare.c:619 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "검증 실패: 부적절한 헤더 %d개를 발견했습니다" -#: src/compare.c:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "%s에 단독 0 블록" -#: src/create.c:74 +#: src/create.c:73 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: %s 캐시 디렉터리 태그가 있습니다. %s" -#: src/create.c:263 +#: src/create.c:262 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "" "%1$s 값은 %3$s..%4$s 범위의 %2$s 값을 벗어납니다. %5$s(으)로 대신합니다." -#: src/create.c:269 +#: src/create.c:268 #, c-format msgid "value %s out of %s range %s..%s" msgstr "%2$s의 %3$s..%4$s 범위를 벗어나는 %1$s 값" -#: src/create.c:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "음의 8진수 헤더 만드는 중" # -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, c-format msgid "%s: file name is too long (max %d); not dumped" msgstr "%s: 파일 이름이 너무 깁니다(최대 %d문자). 덤프 가져오지 않음" -#: src/create.c:616 +#: src/create.c:615 #, c-format msgid "%s: file name is too long (cannot be split); not dumped" msgstr "%s: 파일 이름이 너무 깁니다(나눌 수 없음). 덤프 가져오지 않음" # -#: src/create.c:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: 링크 이름이 너무 깁니다. 덤프 가져오지 않음" # -#: src/create.c:1106 +#: src/create.c:1105 #, 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 바이트로 줄었습니다. 0 값으로 채움" # -#: src/create.c:1204 +#: src/create.c:1203 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: 다른 파일 시스템에 있는 파일입니다. 덤프 가져오지 않음" # -#: src/create.c:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "내용 덤프를 가져오지 않음" # -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: 알 수 없는 파일 타입: 파일을 무시함" # -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "%s 링크 빠짐." # -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: 파일을 바꾸지 않았습니다. 덤프 가져오지 않음" # -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: 아카이브 파일입니다. 덤프 가져오지 않음" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "디렉터리 덤프를 저장하지 않았습니다" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: 파일을 읽고 나서 내용이 바뀌었습니다" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: 소켓을 무시했습니다" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: door 값을 무시했습니다" # -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "다음 헤더로 건너 뜀" # -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "아카이브에서 비헤더 부분을 제거함" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: 상당히 오래된 %s 타임스탬프" -#: src/extract.c:320 +#: src/extract.c:319 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: %s 타임스탬프는 앞으로 %s초 입니다." -#: src/extract.c:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: 디렉터리를 만들 때 예상치 못한 모순을 발견했습니다" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: 기존 파일 건너뜀" @@ -1062,7 +1062,7 @@ msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: 추출할 수 없음 -- 다른 볼륨에 연결한 파일입니다" # -#: src/extract.c:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "예상치 못한 긴 파일 헤더" @@ -1094,25 +1094,25 @@ msgid "Cannot rename %s to %s" msgstr "%s을(를) %s(으)로 이름을 바꿀 수 없습니다" # -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: 디렉터리 이름이 이전 %s 디렉터리 이름에서 바뀌었습니다" # -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: 새 디렉터리입니다" # -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "%s: 다른 파일 시스템에 있는 디렉터리. 덤프를 가져오지 않았습니다" # -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: 디렉터리 이름이 바뀌었습니다" @@ -1243,227 +1243,227 @@ msgid "%s: Cannot remove" msgstr "%s: 제거할 수 없습니다" # -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: 생략" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "%s 블록: ** 널 블록 **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "%s 블록: ** 파일의 끝 **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "%s 블록: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" "아카이브의 %.*s 8진수 값이 %s 값 범위를 벗어났습니다. 2의 보수인 것 같습니다" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "아카이브의 %.*s 8진수 값이 %s 값 범위를 벗어났습니다" -#: src/list.c:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "아카이브에 오래된 64진 헤더가 있습니다" -#: src/list.c:852 +#: src/list.c:853 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "아카이브의 %s 부호화 64진 문자열 값이 %s 값 범위를 벗어났습니다" # -#: src/list.c:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "아카이브의 %1$s 값이 %3$s..%4$s 범위의 %2$s 값을 벗어났습니다" # -#: src/list.c:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " %s(으)로 링크\n" # -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr "알 수 없는 %s 파일 형식\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--긴 링크--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--긴 이름--\n" # -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--볼륨 헤더--\n" # -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--%s 바이트에서 계속--\n" # -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "디렉터리를 만드는 중:" # -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "%s 이름을 %s 이름으로 바꾸는 중\n" # -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: %s 이름으로 바꿀 수 없습니다" # -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "" "%s 이름을 %s 이름으로 되돌리는 중\n" " \n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: 파일을 읽기 전에 제거했습니다" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "하위 프로세스" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "프로세스간 통신 채널" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "로컬 파일 이름 선택:" -#: src/names.c:72 +#: src/names.c:71 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" "설정 <파일>을 아카이브에 추가(파일 이름에 대시 문자를 앞에 붙이면 좋습니다)" -#: src/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "<디렉터리>" # -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "<디렉터리>로 전환" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "<파일>에서 추출할 이름을 가져오거나 지정 이름으로 만듦" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "-T에서 널 문자로 끝난 이름을 읽습니다. --vervatim-files-from을 생략함" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "이전 --null 옵션 적용 비활성화" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "입력 파일 또는 구성 요소 이름 따옴표 제거(기본)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "입력 파일 또는 구성 요소 이름에서 따옴표 제거하지 않음" -#: src/names.c:87 +#: src/names.c:86 #, fuzzy msgid "-T reads file names verbatim (no escape or option handling)" msgstr "-T에서 있는 그대로의 파일 이름을 읽습니다(옵션 처리 안함)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "-T에서 옵션에 쓰는 대시 문자로 시작하는 파일 이름을 취급합니다(기본값)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "<패턴>" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "주어진 <패턴> 값에 해당하는 파일 제외" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "<파일> 목록에 있는 패턴 제외" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "태그 파일을 제외하고 CACHEDIR.TAG가 들어잇는 디렉터리의 모든 내용 제외" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "CACHEDIR.TAG가 들어있는 디렉터리의 모든 항목 제외" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "CACHEDIR.TAG가 들어있는 디렉터리 제외" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "<파일> 자신을 제외하고, <파일>이 들어있는 디렉터리 내용 제외" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "<파일>이 있다면 각 디렉터리에 대한 제외 패턴을 <파일>에서 읽기" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" @@ -1471,117 +1471,117 @@ msgstr "" "<파일>이 있다면 각 디렉터리 및 하위 디렉터리에 대한 제외 패턴을 <파일> 에서 " "읽기" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "<파일>이 들어있는 디렉터리의 모든 항목 제외" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "<파일>이 들어있는 디렉터리 제외" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "버전 관리 시스템 디렉터리 제외" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "VCS 무시 파일의 제외 패턴 읽기" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "백업 및 잠금 파일 제외" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "디렉터리의 모든 계층에 대해 처리(기본값)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "디렉터리로의 자동 진입을 피합니다" -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "파일 이름 비교 옵션(제외 및 포함 옵션 모두 해당):" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "파일 이름 시작 부분에 일치하는 패턴" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "임의의 '/' 위치 다음에 일치하는 패턴(제외 조건용 기본값)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "대소문자 무시" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "대소문자 일치(기본값)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "와일드카드 사용(제외 조건용 기본값)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "있는 그대로의 문자열 일치 여부 비교" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "'/' 문자 와일드카드 비교 대상에 포함(제외 조건용 기본값)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "'/' 문자 와일드카드 비교 대상에 포함 안 함" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" msgstr "" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" msgstr "" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" msgstr "" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "명령행" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%1$s: %3$s에서 이미 읽은 파일 목록을 %2$s에서 요청했습니다" # -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "'%s' 문자열 나눌 수 없음: %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: 읽은 파일 이름에 널 문자가 있습니다" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "파일 이름에 사용하는 패턴 비교 문자" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1590,46 +1590,46 @@ msgstr "" "wildcards를 사용하십시오" # -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: 아카이브에 없음" # -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: 아카이브에 필요한 내용이 없습니다" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "아카이브 레이블 일치하지 않음" -#: src/names.c:1717 +#: src/names.c:1747 msgid "" "Using -C option inside file list is not allowed with --listed-incremental" msgstr "파일 목록에서 -C 옵션은 --listed-incremental 옵션과 사용할 수 없습니다" -#: src/names.c:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "-C 옵션은 --listed-incremental 옵션만 함께 사용할 수 있습니다" -#: src/tar.c:88 +#: src/tar.c:87 #, c-format msgid "Options '%s' and '%s' both want standard input" msgstr "'%s' 및 '%s' 옵션은 표준 입력이 필요합니다" -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: 부적절한 아카이브 형식" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "비호환 아카이브 형식에서 GNU 기능을 필요로 합니다" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1848,7 +1848,7 @@ msgstr "출력 스트림 선택:" msgid "extract files to standard output" msgstr "표준 출력으로 파일 추출" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "<명령>" @@ -1884,7 +1884,7 @@ msgstr "파일 소유자 UID 및 이름을 매핑할 때 <파일> 사용" msgid "use FILE to map file owner GIDs and names" msgstr "파일 소유자 GID 및 이름을 매핑할 때 <파일> 사용" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "<날짜-또는-파일>" @@ -2088,7 +2088,7 @@ msgstr "읽었을 때 블록 재배치(4.2BSD 파이프용)" msgid "Archive format selection:" msgstr "아카이브 형식 선택:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "<형식>" @@ -2172,60 +2172,60 @@ msgstr "<프로그램>" msgid "filter through PROG (must accept -d)" msgstr "<프로그램>으로 필터링합니다(-d 옵션을 받아들여야 함)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "로컬 파일 선택:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "아카이브를 만들 때 로컬 파일 시스템에서 대기" # -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "파일 이름 앞에 붙은 '/' 제거하지 않음" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" msgstr "심볼릭 링크를 따라서 가리키는 파일을 아카이빙하고 덤프 보관합니다" -#: src/tar.c:697 +#: src/tar.c:698 msgid "follow hard links; archive and dump the files they refer to" msgstr "하드 링크를 따라서 가리키는 파일을 아카이빙하고 덤프 보관합니다" -#: src/tar.c:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "<구성원-이름>" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "아카이브를 읽을 때 <구성원-이름> 구성원으로 시작" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "<날짜-또는-파일>보다 최신인 파일만 저장합니다" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "<날짜>" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "날짜만 바뀌었을 때 날짜 및 시간 비교" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "<처리방식>" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "제거 전 백업하고, 버전 <관리자> 선택" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "<문자열>" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2233,59 +2233,59 @@ msgstr "" "지우기 전에 일반적인 접미부를 붙여 백업합니다(SIMPLE_BACKUP_SUFFIX 환경 변수" "를 설정하기 전에는 '~' 문자 사용)" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "파일 이름 변환:" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "추출할 때 파일 이름 앞에 오는 <번호> 갯수의 요소를 뺍니다" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "<표현식>" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "파일 이름을 변환할 <표현식> 대신 sed 사용" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "정보 출력:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "처리한 파일 목록을 자세하게 보여줍니다" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "<키워드>" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "경고 출력 제어" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "모든 <번호> 번째 레코드(기본 10)의 진행 메시지 나타냄" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "<동작>" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "각 검사 지점에서 <동작> 실행" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "모든 링크의 덤프를 가져오지 않았을 때 메시지 출력" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "<시그널>" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2296,129 +2296,129 @@ msgstr "" "을 때 총 바이트 수를 출력합니다. 허용 시그널은 SIGHUP, SIGQUIT, SIGINT, " "SIGUSR1, SIGUSR2 입니다. SIG 접두부가 빠진 이름을 지닌 시그널도 허용합니다." -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "파일 수정 일시를 UTC로 출력" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "파일 작성 시간을 완전한 형식으로 출력" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "자세한 출력을 <파일>로 보냄" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "각 메시지로 아카이브 블록 번호 표시" # -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "각 동작 수행시 확인" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "tar 기본 설정 표시" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "스냅샷 파일 필드 유효 범위 표시" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "내용 조회 및 추출시, 검색어와 일치하지 않는 각각의 디렉터리 표시" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "변환 처리 후 파일 또는 아카이브 이름 표시" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "<스타일>" -#: src/tar.c:765 +#: src/tar.c:766 msgid "set name quoting style; see below for valid STYLE values" msgstr "" "이름 인용 부호 처리 방식을 설정합니다. 올바른 <스타일> 값은 아래를 참고하십시" "오" -#: src/tar.c:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "<문자열> 문자 인용 부호 처리 추가" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "<문자열>의 문자 인용 부호 처리 비활성화" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "호환 옵션:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "만들 때는 --old-archive와 같고, 추출할 때는 --no-same-owner와 같습니다" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "다른 옵션:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "잠재적으로 위험한 옵션 사용을 비활성화" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "'%s'은(는) '%s'와(과) 사용할 수 없습니다" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" msgstr "" "'-Acdtrux', '--delete', '--test-label' 옵션 중 하나 이상을 지정하면 안 됩니다" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "헷갈리는 압축 옵션" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "알 수 없는 시그널 이름: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "날짜 샘플 파일이 없습니다" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "알 수 없는 %2$s 날짜 형식에서 %1$s을(를) 바꿉니다" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "%s 옵션: '%s' 날짜를 %s(으)로 취급합니다" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "%s(으)로 아카이브를 필터링합니다" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "--quoting-style 옵션에 유효한 인자 값:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2426,167 +2426,167 @@ msgstr "" "\n" "*이* tar 기본 옵션은 다음과 같습니다:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "부적절한 소유자 ID 또는 그룹 ID" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "부적절한 블로킹 인수" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "부적절한 테이프 길이" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "잘못된 증분 레벨 값" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "하나 이상의 임계 일자 값" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "잘못된 희소 버전 값" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve='system'은 이 플랫폼에서 지원하지 않습니다" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "--checkpoint 값이 정수형이 아닙니다" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "옵션에 부적절한 모드가 주어짐" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "부적절한 숫자 값" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "부적절한 레코드 크기" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "레코드 크기는 %d의 배수여야 합니다." -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "부적절한 요소 갯수" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "--to-command 옵션만 사용할 수 있습니다" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "비정상적인 밀도 인자 값: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "알 수 없는 밀도 값: '%c'" -#: src/tar.c:2066 +#: src/tar.c:2075 #, c-format msgid "Options '-[0-7][lmh]' not supported by *this* tar" msgstr "'-[0-7][lmh]' 옵션은 *이* tar에서 지원하지 않습니다" -#: src/tar.c:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: 오류 위치" # -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "%s 해석 오류" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[<파일>]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "%s에 옵션이 없는 인자 값" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "TAR_OPTIONS 값을 쪼갤 수 없습니다: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "오래된 '%c' 옵션에 인자 값이 필요합니다." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "파일 목록이 없으면 --occurrence 옵션은 의미가 없습니다" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "여러 아카이브 파일을 지정하려면 '-M' 옵션이 필요합니다." -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "--listed-incremental 옵션이 없으면 --level 옵션은 의미가 없습니다" -#: src/tar.c:2424 +#: 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "다중-볼륨 아카이브를 검증할 수 없습니다" # -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "압축된 아카이브를 검증할 수 없습니다" # -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "압축된 다중-볼륨 아카이브를 사용할 수 없습니다" # -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "압축 아카이브를 이어 붙일 수 없습니다" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "--clamp-mtime 옵션을 사용하려면 --mtime으로 날짜를 지정해야합니다" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option 옵션은 POSIX 아카이브에만 사용할 수 있습니다" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "--acls 옵션은 POSIX 아카이브에만 사용할 수 있습니다" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "--selinux 옵션은 POSIX 아카이브에만 사용할 수 있습니다" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "--xattrs 옵션은 POSIX 아카이브에만 사용할 수 있습니다" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2594,127 +2594,136 @@ msgstr "" "최상위 디렉터리 이름을 추측할 수 없습니다. --one-top-level=<디렉터리> 옵션으" "로 분명하게 지정하십시오" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "볼륨 길이는 레코드 크기보다 작을 수 없습니다" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "빈 아카이브 만들기를 조심스럽게 거부하고 있습니다" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "'-Aru' 옵션은 '-f -' 옵션과 함께 사용할 수 없습니다" -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "'-Acdtrux', '--delete', '--test-label' 옵션 중 하나를 지정해야합니다" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "앞서 발생한 오류로 실패 코드를 반환하며 빠져나감" # -#: src/update.c:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: 파일 크기가 %s 바이트로 줄었습니다" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "%s 패턴을 사용할 수 없습니다" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "%s 키워드를 중복 우선 적용할 수 없습니다" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "잘못된 확장 헤더: 길이 정보 빠짐" -#: src/xheader.c:677 +#: src/xheader.c:695 #, c-format msgid "Extended header length %*s is out of range" msgstr "%*s 확장 헤더 길이가 범위를 벗어납니다" -#: src/xheader.c:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "잘못된 확장 헤더: 길이 정보 다음 공백 빠짐" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "잘못된 확장 헤더: 등호 기호 빠짐" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "잘못된 확장 헤더: 개행 문자 빠짐" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "알 수 없는 '%s' 확장 헤더 키워드 무시" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, 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:1053 +#: src/xheader.c:1071 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "%s=%s 확장 헤더가 %s..%s 범위를 벗어납니다" -#: src/xheader.c:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "잘못된 확장 헤더: 부적절한 %s=%s" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "잘못된 확장 헤더: %s=%s" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "잘못된 확장 헤더: 부적절한 %s: 예상치 못한 구분 기호 %c" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "잘못된 확장 헤더: 부적절한 %s: 비정상적인 숫자값" -#: src/checkpoint.c:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s: 유효하지 않은 제한 시간" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: 알 수 없는 검사 지점 동작" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "쓰기" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "읽기" @@ -2723,7 +2732,7 @@ msgstr "읽기" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "기록 검사 지점 %u" @@ -2733,12 +2742,12 @@ msgstr "기록 검사 지점 %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "읽기 검사 지점 %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2746,93 +2755,97 @@ msgstr "" "genfile은 GNU paxutils 테스트 모음용 데이터 파일을 다룹니다.\n" "옵션은 다음과 같습니다:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "파일 생성 옵션:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "<크기>" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "주어진 <크기>의 파일을 만듭니다" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "표준 출력 대신 파일 <이름>" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "<파일>의 파일 이름을 읽습니다" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T 옵션은 널 문자로 끝난 이름을 읽습니다" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "설정 <패턴>으로 파일을 채웁니다. <패턴>은 'default' 또는 'zeros' 입니다" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "성긴 파일 블록 크기" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "성긴 파일을 만듭니다. 명령행의 나머지 부분에는 파일 맵을 지정합니다." -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "<오프셋>" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "데이터 기록 전 설정 오프셋 탐색" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "치명적이지 않은 진단 메시지 숨김" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "파일 통계 옵션:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "지정 파일의 구조 상태 내용을 출력합니다. 기본 <형식>은 다음과 같습니다: " -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "동기화 실행 옵션:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "<옵션>" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "<인자>를 실행합니다. --checkpoint와 --cut, --append, --touch, --unlink 옵션 " "중 하나를 병행하면 쓸만합니다." -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "검사 지점 <번호>에 도달할 때 다음 동작(하단 참조)을 수행합니다" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "다음 --touch 옵션의 날짜 설정" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "실행한 검사 지점과 <명령>의 상태 코드를 나타냅니다" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2840,138 +2853,138 @@ msgstr "" "실행 동작을 동기화합니다. --checkpoint 옵션으로 지정한 검사 지점 번호에 도달" "하면 실행합니다." -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" "앞서 --length 옵션으로 지정한 크기만큼 <파일>을 자릅니다(설정하지 않으면 0)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "<파일>에 <크기> 값 만큼의 바이트를 붙여넣습니다. <크기>는 앞서 언급한 --" "length 옵션에 지정합니다." -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "<파일>의 접근 및 수정 시각 업데이트" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "<명령> 실행" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" msgstr "" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "부적절한 크기: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "숫자 값이 허용 범위를 벗어남: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "음수 크기: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) 처리 실패" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "요청한 파일 길이는 %lu지만, 실제 길이는 %lu 입니다" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "만든 파일은 성긴 파일이 아닙니다" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "`%s' 부근 숫자 값 해석 오류" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "알 수 없는 날짜 형식" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[<인자>...]" # -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "`%s'을(를) 열 수 없습니다" # -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "탐색할 수 없음" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "파일 이름에 널 문자가 있습니다" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "표준 출력에 분할 파일을 만들 수 없습니다. --file 옵션을 사용하십시오" -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "올바르지 않은 마스크(`%s' 부근)" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "알 수 없는 `%s' 필드" # -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "`%s' 시간에 맞출 수 없습니다" # -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "`%s'을(를) 자를 수 없습니다" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "명령 실행 실패: %s" # -#: tests/genfile.c:781 +#: tests/genfile.c:772 #, fuzzy, c-format msgid "cannot stat `%s'" msgstr "`%s'을(를) 자를 수 없습니다" # -#: tests/genfile.c:785 +#: tests/genfile.c:776 #, fuzzy, c-format msgid "cannot remove directory `%s'" msgstr "`%s' 시간에 맞출 수 없습니다" # -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "`%s' 링크를 해제할 수 없습니다" @@ -3011,6 +3024,9 @@ msgstr "명령 실행 중단\n" msgid "--stat requires file names" msgstr "--stat에 파일 이름이 필요합니다" +#~ msgid "OPTION" +#~ msgstr "<옵션>" + #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: ARGP_HELP_FMT 매개 변수는 양수 값이어야 합니다" diff --git a/po/ky.gmo b/po/ky.gmo index b07d8f4789ba7eecc3fbb4afbddb42da5b455cc7..1d7b6e6ca83e4328562ada5891a7fda8d3d6d90e 100644 GIT binary patch delta 28 kcmX@Nj``d=<_(kMcrA4ejC75R6%0+ROwBhhh+9_y0GMV92><{9 delta 28 kcmX@Nj``d=<_(kMc+GVUjdTso6%386j14z0h+9_y0GKff0RR91 diff --git a/po/ky.po b/po/ky.po index 569cfdc8..a64e0453 100644 --- 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:1599 +#: src/create.c:1598 msgid "" msgstr "" "Project-Id-Version: tar 1.18\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\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" @@ -100,7 +100,7 @@ msgid "give a short usage message" msgstr "Колдонуу жөнүндө кыска маалымат көрсөтөт" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "АТЫ" @@ -238,12 +238,12 @@ msgstr "^[оО]" msgid "^[nN]" msgstr "^[жЖ]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "" @@ -251,11 +251,11 @@ msgstr "" #. 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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "" -#: gnu/version-etc.c:86 +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -506,195 +506,195 @@ msgstr "Алыстагы команда процессору иштетилге msgid "Cannot execute remote shell" msgstr "Алыстагы команда процессору иштетилген жок" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Издөө жолу диапазондун тышында" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 #, fuzzy msgid "Invalid seek direction" msgstr "Опцияда жарабаган укук абалы берилди" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 #, fuzzy msgid "Invalid seek offset" msgstr "Жараксыз көлөм: %s" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Издөө даражасы диапазондун тышында" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 #, fuzzy msgid "Invalid byte count" msgstr "Лентанын узундугу жараксыз" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 #, fuzzy msgid "Byte count out of range" msgstr "Издөө даражасы диапазондун тышында" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 #, fuzzy msgid "Premature eof" msgstr "rmtd: Файлдын соңу эрте келди\n" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 #, fuzzy msgid "Invalid operation code" msgstr "Негизги иштөө абалы:" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 #, fuzzy msgid "Unexpected arguments" msgstr "Архивде күтүлбөгөн жерде файлдын соңу бар" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 msgid "Manipulate a tape drive, accepting commands from a remote process" msgstr "" -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "N" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "ФАЙЛ" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, fuzzy, c-format msgid "cannot open %s" msgstr "`%s' ачылбай жатат" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "аргументтердин саны көп" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Туура эмес команда" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Бул tar-архиви эмес окшойт" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Алынган жалпы байт" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Жазылган жалпы байт" -#: src/buffer.c:593 +#: src/buffer.c:595 #, fuzzy msgid "Total bytes deleted" msgstr "Өчүрүлгөн жалпы байт: %s\n" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(канал)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "record_size мааниси жарабайт" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Архивдин аты берилген жок" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Архивдин stdin/stdout текшерүүсү болбой жатат" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Архив кысыштырылган абалда. %s опциясын колдонгула" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Кысыштырылган архивдерди жаңырталбай калды" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "Лентанын башына келди, иш бүттү" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Өтө көп ката бар, иш бүттү" -#: src/buffer.c:967 +#: src/buffer.c:969 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Маалыматтын көлөмү = %lu блок" -#: src/buffer.c:988 +#: src/buffer.c:990 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Архивде түз жайлашпаган блок бар (%lu байт)" -#: src/buffer.c:1075 +#: src/buffer.c:1077 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "Архивдеги файл өчпөй калды; архив ачылбаса -i деп колдонгула" -#: src/buffer.c:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek маалыматтын чегинде токтогон жок" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: жараксыз том номери бар" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Томдун номери батпай калды" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "%2$s үчүн %1$d-томду даярдап Enter'ди басыңыз: " -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "Колдонуучудан жооп күтүбатканда файлдын соңу келип калды" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "ЭСКЕРТҮҮ: Архив толук эмес" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -705,274 +705,274 @@ msgstr "" " q\t\ttar программасынын ишин бүтүр\n" "y же Ввод\t\tИшти улант\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Команда строкасын ач\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? Бул тизмени жаз\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Жаңы том жок; иш бүттү.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "Файлдын аты берилген жок. Кайра жазып көргүлө.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Туура эмес ввод. Жардам үчүн ? жазгыла.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "%s командасы аткарылбай калды" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s мунун бул томдо уландысы жок" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s бул томдо уланса керек: башкы-маалыматта аты кыскартылыптыр" -#: src/buffer.c:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s көлөмү туура эмес (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, fuzzy, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Бул том иретте эмес" -#: src/buffer.c:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "Архивдин тамгасы %s менен келишпей жатат" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "%s тому %s менен келишпей жатат" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "" "%s: файлдын аты көп-томдук GNU башкы-маалымат үчүн өтө узун, кыскартылды" -#: src/buffer.c:1965 +#: src/buffer.c:1962 #, fuzzy msgid "write did not end on a block boundary" msgstr "rmtlseek маалыматтын чегинде токтогон жок" -#: src/compare.c:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Мазмундары окшобойт" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Архивде күтүлбөгөн жерде файлдын соңу бар" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Файл түрү окшошпойт" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Укук абалдары окшошпойт" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Uid окшошпойт" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "Gid окшошпойт" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Алмаштыруу убактылары окшошпойт" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Көлөмү окшошпойт" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "%s жака шилтенген эмес" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Символикалык шилтеме окшошпойт" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Аспап номери окшошпойт" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Текшерүү " -#: src/compare.c:480 +#: src/compare.c:479 #, fuzzy, c-format msgid "%s: Unknown file type '%c', diffed as normal file" msgstr "%s: `%c' файл түрү бүлгисиз, жөнөкөй файл катары салыштырды" -#: src/compare.c:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "Архивдин ичинде префикстери алынган файл аттары бар." -#: src/compare.c:541 +#: src/compare.c:540 #, fuzzy msgid "Archive contains transformed file names." msgstr "Архивде эски түрдөгү base-64 башкы-маалымат бар" -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "Текшерүү учурунда алгачкы файлдар табылбай калышы мүмкүн." -#: src/compare.c:620 +#: src/compare.c:619 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "ТЕКШЕРҮҮ КАТАСЫ: %d жараксыз башкы маалымат табылды" -#: src/compare.c:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "%s болгон жерде нөлдүк блок бар" -#: src/create.c:74 +#: src/create.c:73 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: мунун ичинде %s деген кэш-папка белгиси бар; %s" -#: src/create.c:263 +#: 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:269 +#: src/create.c:268 #, c-format msgid "value %s out of %s range %s..%s" msgstr "%s мааниси %s диапазонунун тышында %s..%s" -#: src/create.c:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Терс сегиздик системасында башкы маалыматтар даярдалууда" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, c-format msgid "%s: file name is too long (max %d); not dumped" msgstr "%s: файлдын аты өтө узун (эң көп %d болот); кошулбайт" -#: src/create.c:616 +#: src/create.c:615 #, c-format msgid "%s: file name is too long (cannot be split); not dumped" msgstr "%s: файлдын аты өтө узун (бөлүнбөйт); кошулбайт" -#: src/create.c:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: шилтеменин аты өтө узун; кошулбайт" -#: src/create.c:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: файл башка файл-системасында; кошулбайт" -#: src/create.c:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "астындагылар кошулган жок" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Файлдын түрү белгисиз; файл каралбайт" -#: src/create.c:1576 +#: src/create.c:1575 #, fuzzy, c-format msgid "Missing links to %s." msgstr "%s жака шилтемелер жок.\n" -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: файл алмашкан жок; кошулбайт" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: файл архив экен; кошулбайт" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "папка кошулган жок" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: файлды окуу учурунда файл алмашты" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: сокет каралбайт" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: door каралбайт" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Эмики башкы-маалыматка өттү" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Архивде башкы-маалымат болбогондор өчүрүлөт" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: %s убакыт тамгасы өтө эски" -#: src/extract.c:320 +#: src/extract.c:319 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: %s убакыт тамгасы %s сек. келечекте" -#: src/extract.c:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Папка ачыбатканда күтүлбөгөн нерселер болду" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "" @@ -995,7 +995,7 @@ msgstr "Символикалык шилтемелерди түз шилтеме msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Чыгарылган жок -- файл башка томдон уланып келиптир" -#: src/extract.c:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Башкы-маалымат узун" @@ -1024,22 +1024,22 @@ msgstr "%s: Бул файлдын резерв копиясы алыналбай msgid "Cannot rename %s to %s" msgstr "%s файлы %s деп алмаштыралбай калды" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Папканын эски аты %s эле" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: Папка жаңы" -#: src/incremen.c:566 +#: src/incremen.c:565 #, fuzzy, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "%s: файл башка файл-системасында; кошулбайт" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Папка алмаштырылды" @@ -1166,35 +1166,35 @@ msgstr "%s: %s өчүрүлүп жатат\n" msgid "%s: Cannot remove" msgstr "%s: Өчүрүлбөй жатат" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: Муну аттады" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "блок %s: ** нөлдөр болгон блок **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "блок %s: ** Файлдын соңу **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "блок %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1202,89 +1202,89 @@ msgstr "" "экилик системадагы терси алынды" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "" "Архивдин сегиздик системадагы мааниси болгон %.*s %s диапазонунун тышында" -#: src/list.c:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "Архивде эски түрдөгү base-64 башкы-маалымат бар" -#: src/list.c:852 +#: src/list.c:853 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "Архивдеги base-64 түрүндөгү %s сөзү %s диапазонунун тышында" -#: src/list.c:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Архивдин %s мааниси %s түрүнүн %s..%s диапазонунда эмес" -#: src/list.c:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " %s жака шилтеме\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " белгисиз файл түрү %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Узун шилтеме--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Узун ат--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Томдун башкы-маалыматы--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--%s-байттан баштап уланды--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Жаңы папка ачылыбатат:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "%s'тин атын %s деп алмаштырды\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Аты %s деп алмаштыралбай калды" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "%s'тин атын кайра %s деп алмаштырды\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: Файл окулганча өчүрүлүп кетти" @@ -1292,80 +1292,80 @@ msgstr "%s: Файл окулганча өчүрүлүп кетти" # орусчада дочерный процесс, бир процесс өз ичинен жаңы бир # процесс жаратканда ошол чайлд процесс болот. Биз эмне дейбиз? # Мен туулган процесс дейм. -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "туулган процесс" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "процесс-аралык канал" -#: src/names.c:69 +#: src/names.c:68 #, fuzzy msgid "Local file name selection:" msgstr "Локалдуу файлдарды тандоо:" -#: src/names.c:72 +#: src/names.c:71 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "ФАЙЛды архивге кош (файлдын аты тире менен баштаган учурда пайдалуу)" -#: src/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "ПАПКА" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "ПАПКА папкасына өт" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "чыгарылатурган же жаңы ачылатурган файлдарды АТЫ деген файлдан кара" -#: src/names.c:78 +#: src/names.c:77 #, fuzzy msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "-T опциясы нөл менен бүткөн аттарды окуйт, -C опциясы өчүрүлөт" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "" -#: src/names.c:83 +#: src/names.c:82 #, fuzzy msgid "unquote input file or member names (default)" msgstr "" "-T менен алынган файлдардын аттарындагы ковычкалар өчүрүлөт (алдынала " "тандалат)" -#: src/names.c:85 +#: src/names.c:84 #, fuzzy msgid "do not unquote input file or member names" msgstr "-T менен алынган файлдардын аттарындагы ковычкалар калаберет" -#: src/names.c:87 +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" msgstr "" -#: src/names.c:89 +#: src/names.c:88 #, fuzzy msgid "-T treats file names starting with dash as options (default)" msgstr "" "-T менен алынган файлдардын аттарындагы ковычкалар өчүрүлөт (алдынала " "тандалат)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "ШАБЛОН" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "ШАБЛОН менен уйкаш файлдар ишке алынбайт" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "ФАЙЛда тизмеленген шаблондор менен уйкаш файлдар ишке алынбайт" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1373,148 +1373,148 @@ msgstr "" "CACHEDIR.TAG файлы болгон папкалардын астындагылары тэг файлдан тышкарысы " "кошулбайт" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "CACHEDIR.TAG файлы болгон папкалардын астындагыларынын баары кошулбайт" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "CACHEDIR.TAG файлы болгон папкалар кошулбайт" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" "ФАЙЛ файлы болгон папкалардын астындагылары ФАЙЛ файлындан тышкарысы " "кошулбайт" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" msgstr "" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "ФАЙЛ файлы болгон папкалардын астындагыларынын баары кошулбайт" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "ФАЙЛ файлы болгон папкалар кошулбайт" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "папкалардын тереңине кирет (алдынала тандалган)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "папкалардын тереңине кирип кетүүнү токтот" # inclusion, exclusion - Kyrgyz equiv? -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "Файлдын атына уйкаштыруу опциялары (бардык шаблондорго тиешелүү):" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "шаблондор файлдын атынын башталышы менен уйкаштырылат" -#: src/names.c:135 +#: src/names.c:134 #, fuzzy msgid "patterns match after any '/' (default for exclusion)" msgstr "" "шаблондор `/' символунан кийин келген ар жерде уйкашына каралат (алдынала " "тандалган)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "тамгалардын чоң-кичинесине каралбайт" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "уйкаштырууда тамгалардын чоң-кичинесине каралат (алдынала тандалган)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "шаблондор колдонулат (иштен алынбаган файлдарга алдынала тандалат)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "кандай жазылса ошондой колдонулат" -#: src/names.c:145 +#: src/names.c:144 #, fuzzy msgid "wildcards match '/' (default for exclusion)" msgstr "шаблондор `/' символун издейт (алдынала тандалган)" -#: src/names.c:147 +#: src/names.c:146 #, fuzzy msgid "wildcards do not match '/'" msgstr "шаблондор `/' символун издебейт" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" msgstr "" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" msgstr "" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" msgstr "" -#: src/names.c:879 +#: src/names.c:878 #, fuzzy msgid "command line" msgstr "%s командасы аткарылбай калды" -#: src/names.c:897 +#: src/names.c:896 #, fuzzy, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: файл тизмеси окулган" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, fuzzy, c-format msgid "cannot split string '%s': %s" msgstr "`%s'ке убакыт аталган жок" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: алынган файлдын атында бош тамгалар бар" -#: src/names.c:1358 +#: src/names.c:1388 #, fuzzy msgid "Pattern matching characters used in file names" msgstr "Файлдын аттарында уйкаштарды издөө үчүн колдонулган тамгалар бар." -#: src/names.c:1360 +#: src/names.c:1390 #, fuzzy msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " @@ -1522,45 +1522,45 @@ msgid "" msgstr "" "Уйкаштарды издөө үчүн --wildcards опциясын колдонуңуз, же --no-wildcards" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: Архивде табылган жок" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Керектүү нерселер архивде табылган жок" -#: src/names.c:1413 +#: src/names.c:1443 #, fuzzy, c-format msgid "Archive label mismatch" msgstr "Архивдин тамгасы %s менен келишпей жатат" -#: src/names.c:1717 +#: src/names.c:1747 msgid "" "Using -C option inside file list is not allowed with --listed-incremental" msgstr "" -#: src/names.c:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "" -#: src/tar.c:88 +#: src/tar.c:87 #, fuzzy, c-format msgid "Options '%s' and '%s' both want standard input" msgstr "`-%s' жана `-%s' опцияларына стандарт кирүү(input) керек" -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Архивдин форматы жарабайт" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "Бул форматтагы архив үчүн жарабаган GNU өзгөчөлүктөрү суралууда" -#: src/tar.c:265 +#: src/tar.c:264 #, fuzzy, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1791,7 +1791,7 @@ msgstr "Чыгаруу() жолун танда:" msgid "extract files to standard output" msgstr "файлдарды стандарт чыгарууга (output) жөнөт" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "КОМАНДА" @@ -1828,7 +1828,7 @@ msgstr "" msgid "use FILE to map file owner GIDs and names" msgstr "" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "ДАТА-ЖЕ-ФАЙЛ" @@ -2038,7 +2038,7 @@ msgstr "окубатканда кайрадан блокторго бөлүп ч msgid "Archive format selection:" msgstr "Архивдин форматын тандоо:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "ФОРМАТ" @@ -2125,64 +2125,64 @@ msgstr "ПРОГ" msgid "filter through PROG (must accept -d)" msgstr "ПРОГ менен ишке ал (-d опциясы болушу керек)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Локалдуу файлдарды тандоо:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "архивди жасабатканда локалдуу файл системасында кал" -#: src/tar.c:693 +#: src/tar.c:694 #, fuzzy msgid "don't strip leading '/'s from file names" msgstr "файл аттарынын башындагы '/'терди өчүрбө" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" msgstr "" "символикалык шилтемелерге барат; алар көрсөткөн файлдарды архивге кошот" -#: src/tar.c:697 +#: src/tar.c:698 #, fuzzy msgid "follow hard links; archive and dump the files they refer to" msgstr "" "символикалык шилтемелерге барат; алар көрсөткөн файлдарды архивге кошот" -#: src/tar.c:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "МҮЧӨНҮН-АТЫ" -#: src/tar.c:699 +#: src/tar.c:700 #, fuzzy msgid "begin at member MEMBER-NAME when reading the archive" msgstr "архивдеги МҮЧӨНҮН-АТЫ мүчөсүнөн башта" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "ДАТА-ЖЕ-ФАЙЛ'дан жаңы болгон файлдарды гана сакта" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "ДАТА" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "датасы алмашканда гана дата жана убактысын салыштыр" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "CONTROL" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "өчүрөрдөн мурун копиясын сактап кал, CONTROL версиясын танда" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "STRING" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2190,63 +2190,63 @@ msgstr "" "өчүрөрдөн мурун копиясын сактап калат, жалпы колдонулган суфикс кошулат (бул " "суфикс SIMPLE_BACKUP_SUFFIX жолу менен алмаштырылбаган болсо '~' болот)" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Файлдын атынын алмашуулары:" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "чыгаруу учурунда файл аттарынын башындагы N компонентти алып салат" # выражение кыргызча кандай? СҮЙЛӨМ башка жерде да бар -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "СҮЙЛӨМ" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "файлдардын аттарын алмаштыруу үчүн sed replace EXPRESSION колдонгула" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Маалыматтандыруу:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "ишке алынган файлдарды кеңири маалыматы менен тизмеле" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "" -#: src/tar.c:729 +#: src/tar.c:730 #, fuzzy msgid "warning control" msgstr "үстүнө көчүрүү контролу:" # Ушу 'record' сөзүнө жакшы котормо табалбай койдум # 'маалымат' деп жазыбаттым эле, бул жерде келишпей калаткен -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "ар N записьтен кийин маалымат берип турат (алдынала 10 болот)" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "баардык шилтемелер кошулбай калса билдирүү жазып чыгар" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "СИГНАЛ" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2258,36 +2258,36 @@ msgstr "" "SIGHUP, SIGQUIT, SIGINT, SIGUSR1 жана SIGUSR2; SIG префикси жазылбаган " "аттарын да колдонсо болот." -#: src/tar.c:744 +#: src/tar.c:745 #, fuzzy msgid "print file modification times in UTC" msgstr "файлды алмаштыруу датасын UTC түрүндө көрсөт" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "чыккан кеңири маалыматты ФАЙЛ файлына жибер" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "ар билдирүүдө архивдин ичиндеги блок номерин көрсөт" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "ар ишти аткарууга макулдук сурап тур" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "tar'да алдынала коюлган опцияларды көрсөтөт" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2295,33 +2295,33 @@ msgstr "" "тизмелөө же чыгаруу учурунда издөө критериясына жатпаган папкаларды да " "тизмелейт" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "алмаштыруудан кийин файлдын же архивдин аттарын көрсөтөт" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "СТИЛЬ" -#: src/tar.c:765 +#: src/tar.c:766 msgid "set name quoting style; see below for valid STYLE values" msgstr "" "аттарга ковычка кошуу стилин тандаңыз; жарактуу СТИЛЬ түрдөрү төмөндө " "көрсөтүлөт." -#: src/tar.c:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "STRING ичинде болгон тамгаларга кошумча ковычка кошот" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "STRING ичинде болгон тамгаларга ковычка кошпойт" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Келишүү опциялары:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2329,63 +2329,63 @@ msgstr "" "жаңы архив жасабатканда --old-archive менен бирдей; чыгарыбатканда --no-same-" "owner менен бирдей" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Башка опциялар:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "зыяндуу көрүнгөн опцияларды колдонууга тыюуу салат" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, fuzzy, c-format msgid "'%s' cannot be used with '%s'" msgstr "%s: %s орунуна баралбай жатат" -#: src/tar.c:933 +#: src/tar.c:934 #, fuzzy msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" msgstr "`-Acdtrux' опцияларынан бирөөнү гана колдоно аласыңар" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Бирбирине келишпеген кысыштыруу опциялары берилди" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Сигналдын аты белгисиз: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "Датанын шаблон файлы табылган жок" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Белгисиз %1$s дата форматынын ордуна %2$s коюлат" -#: src/tar.c:1065 +#: src/tar.c:1067 #, fuzzy, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "%s опциясы: `%s' датасын %s деп алды" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, fuzzy, c-format msgid "filter the archive through %s" msgstr "архивди gzip менен ишке ал" -#: src/tar.c:1137 +#: src/tar.c:1143 #, fuzzy msgid "Valid arguments for the --quoting-style option are:" msgstr "--quoting-style опциясы үчүн мындай аргументтер бар:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2393,301 +2393,310 @@ msgstr "" "\n" "*Бул* tar алдынала мындай иштетилет:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 #, fuzzy msgid "Invalid owner or group ID" msgstr "Ээси жарабайт" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Блок көлөмү жараксыз" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Лентанын узундугу жараксыз" -#: src/tar.c:1481 +#: src/tar.c:1486 #, fuzzy msgid "Invalid incremental level value" msgstr "Файлдын форматы туура эмес" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Бирден көп ченемдөөчү дата бар" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "кеңири жайлаштыруу форматынын версиясы жарактуу эмес" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "Бул платформада --atime-preserve='system' опциясы иштебейт" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "--checkpoint опциясына жазылган аргумент сан эмес" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Опцияда жарабаган укук абалы берилди" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Жарабаган номер" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Маалымат көлөмү жарабайт" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "Маалыматтын көлөмү %d көбөйтүндүсү болушу керек." -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Элементтердин саны жарабайт" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "--to-command опциясы бир эле жолу жазылыш керек" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Тыгыздык аргументи туура эмес: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, fuzzy, c-format msgid "Unknown density: '%c'" msgstr "Түшүнүксүз тыгыздык: `%c'" -#: src/tar.c:2066 +#: src/tar.c:2075 #, fuzzy, c-format msgid "Options '-[0-7][lmh]' not supported by *this* tar" msgstr "*Бул* tar `-[0-7][lmh]' опцияларын иштетпейт" -#: src/tar.c:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "" -#: src/tar.c:2076 +#: src/tar.c:2085 #, fuzzy, c-format msgid "error parsing %s" msgstr "`%s' жанындагы санды окубатканда ката чыкты" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[ФАЙЛ]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, fuzzy, c-format msgid "non-option arguments in %s" msgstr "%2$s үчүн %1$s аргументи жарабайт" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "" -#: src/tar.c:2291 +#: src/tar.c:2300 #, fuzzy, c-format msgid "Old option '%c' requires an argument." msgstr "Эски болгон `%c' опциясына параметр керек." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "Файл тизмеси болбосо --occurrence дегендин мааниси болбойт" -#: src/tar.c:2390 +#: src/tar.c:2399 #, fuzzy msgid "Multiple archive files require '-M' option" msgstr "Бир нече архив файлы болсо `-M' опциясы колдонулушу керек" -#: src/tar.c:2407 +#: src/tar.c:2416 #, fuzzy msgid "--level is meaningless without --listed-incremental" msgstr "Файл тизмеси болбосо --occurrence дегендин мааниси болбойт" -#: src/tar.c:2424 +#: 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Көп-томдуу архивдерди текшералбай калды" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Кысыштырылган архивдерди текшералбай калды" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Көп-томдуу кысыштырылган архивдерди колдоналбай калды" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Кысыштырылган архивдер кошулалбайт" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option POSIX архивдеринде гана колдонула алат" -#: src/tar.c:2481 +#: src/tar.c:2490 #, fuzzy msgid "--acls can be used only on POSIX archives" msgstr "--pax-option POSIX архивдеринде гана колдонула алат" -#: src/tar.c:2486 +#: src/tar.c:2495 #, fuzzy msgid "--selinux can be used only on POSIX archives" msgstr "--pax-option POSIX архивдеринде гана колдонула алат" -#: src/tar.c:2491 +#: src/tar.c:2500 #, fuzzy msgid "--xattrs can be used only on POSIX archives" msgstr "--pax-option POSIX архивдеринде гана колдонула алат" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" msgstr "" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Бош архив жаратуудан уялып баш тартып жатат" -#: src/tar.c:2623 +#: src/tar.c:2632 #, fuzzy msgid "Options '-Aru' are incompatible with '-f -'" msgstr "`-Aru' опциялары `-f -' менен келишпейт" -#: src/tar.c:2711 +#: src/tar.c:2743 #, fuzzy msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "`-Acdtrux' опцияларынан бирөөнү тандап колдонуңуз" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" -#: src/update.c:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Файл %s байтка азайды" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "%s шаблону колдонулбайт" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "%s ачкыч сөзү алмаштырылбайт" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "Кеңейтилген башкы-маалымат бузук: узундук жок" -#: src/xheader.c:677 +#: src/xheader.c:695 #, c-format msgid "Extended header length %*s is out of range" msgstr "Кеңейтилген башкы-маалыматтын узундугу - %*s - диапазондун тышында" -#: src/xheader.c:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "" "Кеңейтилген башкы-маалымат бузук: узундуктан кийин бош жер (пробел) жок" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "Кеңейтилген башкы-маалымат бузук: барабар символу жок" # newline эмне болот? -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "Кеңейтилген башкы-маалымат бузук: жаңы сап жок" -#: src/xheader.c:741 +#: src/xheader.c:759 #, fuzzy, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "Кеңейтилген башкы-маалыматта белгисиз `%s' сөзү каралбайт" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, 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:1053 +#: src/xheader.c:1071 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "%s=%s түрүндөгү кеңейтилген башкы-маалымат %s..%s диапазондун тышында" -#: src/xheader.c:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Кеңейтилген башкы-маалымат бузук: %s=%s туура эмес" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Кеңейтилген башкы-маалымат бузук: %s=%s ашыкча көп" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" "Кеңейтилген башкы-маалымат бузук: туура эмес %s: күтүлбөгөн жерде бул - %c - " "бөлүүчү символ бар" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "Кеңейтилген башкы-маалымат бузук: туура эмес %s: так санда маани бар" -#: src/checkpoint.c:114 +#: src/checkpoint.c:133 #, fuzzy, c-format msgid "%s: not a valid timeout" msgstr "%s: Жараксыз группа" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "" @@ -2695,7 +2704,7 @@ msgstr "" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Жазууну текшерүү жери: %u" @@ -2704,12 +2713,12 @@ msgstr "Жазууну текшерүү жери: %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Окуунун текшерүү жери: %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2717,99 +2726,98 @@ msgstr "" "genfile, GNU paxutils пакетинин дата файлдарын ишке алат.\n" "ОПЦИЯЛАР мындай:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Жаңы файл ачуу опциялары:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "КӨЛӨМ" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Көсөтүлгөн КӨЛӨМдө жаңы файл ач" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Стандарт чыгарууга жазбай, АТЫ деген файлга жаз" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "Файлдын аттарын ФАЙЛдан ал" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T опциясы бош/нөл (null) менен бүткөн аттарды окуйт" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "Файлды тандалган ШАБЛОН менен толтурат. ШАБЛОН 'default' же 'zeros' болот" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "Кеңири жайлашкан файлдын блок көлөмү" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "Файлды кеңири жайлаштыр. Кийинки команда строкаларында файлдын картасы бар." -#: tests/genfile.c:148 +#: tests/genfile.c:143 #, fuzzy msgid "OFFSET" msgstr "ОРУН" # seek the given offset - orunga jyl -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "данный(data) жазаардан мурун айтылган орунга жыл" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Файлдын статистикасынын опциялары:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Алынган ар бир файл үчүн struct stat курамын көрсөтөт. Алдынала тандалган " "ФОРМАТ мындай: " -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Синхрондуу иштетүүнүн опциялары:" -#: tests/genfile.c:168 -#, fuzzy -msgid "OPTION" -msgstr " [ОПЦИЯ...]" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 #, fuzzy msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "Жазылган КОМАНДАны иштет. Бул --checkpoint жана --cut, --append, --touch " "бирөөсү менен колдонулганда пайдалуу" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "N текшерүү жерине жеткенде буларды (төмөндү карагыла) аткар" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "Эмики --touch опциясы үчүн дата жазгыла" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "Өтүлгөн текшерүү жердерди жана КОМАНДАнын бүтүрүү статусун көрсөтөт" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2817,7 +2825,7 @@ msgstr "" "Синхрондуу аткаруу иштери. Булар --checkpoint опциясы менен берилгенн " "текшерүү жерине жеткенде аткарылат." -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2825,125 +2833,125 @@ msgstr "" "ФАЙЛды --length опциясы менен берилген көлөмгө кыскартат (берилбеген болсо 0 " "болот)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "ФАЙЛга КӨЛӨМ байт кошот. КӨЛӨМ --length опциясы менен берилет." -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "ФАЙЛдын колдонуу жана алмашуу убакыттарын жаңылайт." -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "Бул команданы иштеткиле - КОМАНДА" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" msgstr "" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Жараксыз көлөм: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Сан жарактуу маанилердин тышында: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Көлөмү терс сан: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) аткарылбай калды" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "`%s' жанындагы санды окубатканда ката чыкты" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Датанын форматы түшүнүксүз" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[АРГУМЕНТТЕР...]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "`%s' ачылбай жатат" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "издөө болбой калды" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "файлдын атында бош тамга бар" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" "кеңири(чоң) файлдарды стандарт чыгарууга жибералбайт, --file опциясын " "колдонуңуз" -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "туура эмес маска (`%s' жанында)" # фиелд деген кандай болот? -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "Белгисиз поле `%s'" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "`%s'ке убакыт аталган жок" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, fuzzy, c-format msgid "cannot truncate `%s'" msgstr "`%s' ачылбай жатат" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, fuzzy, c-format msgid "command failed: %s" msgstr "%s командасы аткарылбай калды" -#: tests/genfile.c:781 +#: tests/genfile.c:772 #, fuzzy, c-format msgid "cannot stat `%s'" msgstr "`%s'ке убакыт аталган жок" -#: tests/genfile.c:785 +#: tests/genfile.c:776 #, fuzzy, c-format msgid "cannot remove directory `%s'" msgstr "`%s'ке убакыт аталган жок" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, fuzzy, c-format msgid "cannot unlink `%s'" msgstr "`%s' ачылбай жатат" @@ -2983,6 +2991,10 @@ msgstr "Команда жабылды\n" msgid "--stat requires file names" msgstr "--stat опциясы менен файл аттары жазылыш керек" +#, fuzzy +#~ msgid "OPTION" +#~ msgstr " [ОПЦИЯ...]" + # положительный кыргызча кандайле? #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: ARGP_HELP_FMT параметринин мааниси оң болуш керек" diff --git a/po/ms.gmo b/po/ms.gmo index 6a34841b7370cf91b854270e33216c21cd50e163..02cf0d093e65c4e9e16482115134e3663ab8d0c3 100644 GIT binary patch delta 25 gcmdnxy~}&US}|TrT>~RsBVz?a6Dw2m#k<7#0dHRik^lez delta 25 gcmdnxy~}&US}|U8T|*;XLvsZ~BP(OW#k<7#0dFz~iU0rr diff --git a/po/ms.po b/po/ms.po index 0bf2b056..5656e671 100644 --- 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:1599 +#: src/create.c:1598 msgid "" msgstr "" "Project-Id-Version: tar 1.13.25\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\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" @@ -97,7 +97,7 @@ msgid "give a short usage message" msgstr "" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "" @@ -233,12 +233,12 @@ msgstr "" msgid "^[nN]" msgstr "" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "" @@ -246,11 +246,11 @@ msgstr "" #. 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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "" -#: gnu/version-etc.c:86 +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -501,54 +501,54 @@ msgstr "Tak boleh laksanakan shell jauh" msgid "Cannot execute remote shell" msgstr "Tak boleh laksanakan shell jauh" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Hala rayauan diluar julat" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 #, fuzzy msgid "Invalid seek direction" msgstr "Mod tidak sah diberi pada opsyen" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 #, fuzzy msgid "Invalid seek offset" msgstr "Setem masa tidak sah" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Offset rayauan diluar julat" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 #, fuzzy msgid "Invalid byte count" msgstr "panjang pita tidak sah" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 #, fuzzy msgid "Byte count out of range" msgstr "Offset rayauan diluar julat" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 #, fuzzy msgid "Premature eof" msgstr "rmtd: eof tak matang\n" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 #, fuzzy msgid "Invalid operation code" msgstr "%s: opsyen tidak sah -- %c\n" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 #, fuzzy msgid "Unexpected arguments" msgstr "Penghujungan tanpa diduga data imej PNM" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 #, fuzzy msgid "Manipulate a tape drive, accepting commands from a remote process" msgstr "" @@ -558,148 +558,148 @@ msgstr "" " --version Output maklumat versi.\n" " --help Output bantuan ini.\n" -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, fuzzy, c-format msgid "cannot open %s" msgstr "Tak dapat tutup" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Arahan sampah" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Ia nampaknya bukan seperti arkib tar" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "" -#: src/buffer.c:592 +#: src/buffer.c:594 #, fuzzy msgid "Total bytes written" msgstr "Jumlah byte ditulis: %s (%sB, %sB/s)\n" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(paip)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Nilai tidak sah bagi record_size" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Tiada nama arkib diberi" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Tak dapat menentusahkan arkib stdin/stdout" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Tak dapat mengemaskini arkib termampat" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "Pada permulaan pita, keluar sekarang" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Terlalu banyak ralat, keluar" -#: src/buffer.c:967 +#: src/buffer.c:969 #, 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:988 +#: src/buffer.c:990 #, 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:1075 +#: src/buffer.c:1077 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:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: mengandungi nombor volum yg tidak sah" -#: src/buffer.c:1203 +#: src/buffer.c:1205 #, fuzzy msgid "Volume number overflow" msgstr "Nombor volum melimpah" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, 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:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "EOF dimana maklumbalas pengguna dijangka" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "AMARAN: Arkib tidak lengkap" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, fuzzy, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -711,274 +711,274 @@ msgstr "" " ! Spawn subshell\n" " ? Cetak senarai ini\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr "" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr "" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Tiada volum baru; keluar.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, fuzzy, c-format msgid "%s command failed" msgstr "Arahan '%s' gagal" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s tidak bersambung pada volum ini" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, 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:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s adalah salah saiz (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, fuzzy, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Volum ini tidak dalam turutan" -#: src/buffer.c:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "Arkib tidak dilabelkan supaya memadan %s" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "Volum %s tidak sepadan %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "" -#: src/compare.c:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Kandungan berlainan" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "EOF tanpa diduga pada arkib" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Jenis fail berbeza" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Mod berbeza" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Uid berbeza" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "Gid berbeza" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Masa mod berbeza" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Saiz berbeza" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Tidak dipautkan ke %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Symlink berbeza" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Nombor beranti berbeza" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Tentusah" -#: src/compare.c:480 +#: src/compare.c:479 #, c-format msgid "%s: Unknown file type '%c', diffed as normal file" msgstr "%s: Jenis fail tak dikenali '%c', berlainan dengan fail normal" -#: src/compare.c:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "" -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "" -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "" -#: src/compare.c:620 +#: src/compare.c:619 #, 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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "" -#: src/create.c:74 +#: src/create.c:73 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "" -#: src/create.c:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Menjana pengepala oktal negatif" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, fuzzy, c-format msgid "%s: file name is too long (max %d); not dumped" msgstr "%s: fail tidak berubah; tidak dilonggokkan" -#: src/create.c:616 +#: src/create.c:615 #, 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:643 +#: src/create.c:642 #, fuzzy, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: fail tidak berubah; tidak dilonggokkan" -#: src/create.c:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: fail adalah pada sistemfail lain; tidak dilonggokkan" -#: src/create.c:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Jenis fail tak dikenali; fail diabaikan" -#: src/create.c:1576 +#: src/create.c:1575 #, fuzzy, c-format msgid "Missing links to %s." msgstr "Pautan ke %s\n" -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: fail tidak berubah; tidak dilonggokkan" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: fail adalah arkib; tidak dilonggokkan" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: fail berubah bila kami membacanya" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: soket diabaikan" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: pintu diabaikan" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Melangkah ke pengepala berikut" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Memadam bukan-pengepala drpd arkib" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "" -#: src/extract.c:320 +#: src/extract.c:319 #, 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:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Ketidakkonsistenan luar dugaan bila membuat direktori" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "" @@ -1001,7 +1001,7 @@ msgstr "Cuba mengekstrak pautan simbolik sebagai pautan keras" msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Tak dapat ekstrak -- fail bersambung dari volum lain" -#: src/extract.c:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 #, fuzzy msgid "Unexpected long name header" msgstr "Penghujungan tanpa diduga data imej PNM" @@ -1031,22 +1031,22 @@ msgstr "%s: Tak dapat backup fail ini" msgid "Cannot rename %s to %s" msgstr "%s: Tak dapat menukarnama ke %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, fuzzy, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Direktori telah ditukarnama" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: Direktori adalah baru" -#: src/incremen.c:566 +#: src/incremen.c:565 #, 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 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Direktori telah ditukarnama" @@ -1172,374 +1172,374 @@ msgstr "%s: Memadam %s\n" msgid "%s: Cannot remove" msgstr "%s: tak dapat buang" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blok %s: ** Blok TIADA **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "blok %s: ** Akhir Fail **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "blok %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, 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:817 +#: src/list.c:818 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Nilai oktal arkib %.*s diluar julat %s" -#: src/list.c:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "" -#: src/list.c:852 +#: src/list.c:853 #, 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:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, 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:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr "Pautan ke %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr "jenis fail tak diketahui %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Pengepala Volum--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Bersambung pada byte %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Mencipta direktori:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "Menukarnama %s ke %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Tak dapat menukarnama ke %s" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "Menukarnama %s kembali ke %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: Fail dibuang sebelum kami membacanya" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "proses anak" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "saluran antaraproses" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "" -#: src/names.c:72 +#: src/names.c:71 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" -#: src/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "" -#: src/names.c:74 +#: src/names.c:73 #, fuzzy msgid "change to directory DIR" msgstr "Tak dapat tukar direktori kerja" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "" -#: src/names.c:87 +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" msgstr "" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" msgstr "" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "" -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "" -#: src/names.c:147 +#: src/names.c:146 #, fuzzy msgid "wildcards do not match '/'" msgstr "Volum %s tidak sepadan %s" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" msgstr "" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" msgstr "" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" msgstr "" -#: src/names.c:879 +#: src/names.c:878 #, fuzzy msgid "command line" msgstr "Arahan '%s' gagal" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" msgstr "" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: Tak dijumpai pada arkib" -#: src/names.c:1379 +#: src/names.c:1409 #, fuzzy, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Tak dijumpai pada arkib" -#: src/names.c:1413 +#: src/names.c:1443 #, fuzzy, c-format msgid "Archive label mismatch" msgstr "Arkib tidak dilabelkan supaya memadan %s" -#: src/names.c:1717 +#: src/names.c:1747 msgid "" "Using -C option inside file list is not allowed with --listed-incremental" msgstr "" -#: src/names.c:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "" -#: src/tar.c:88 +#: src/tar.c:87 #, 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:165 +#: src/tar.c:164 #, fuzzy, c-format msgid "%s: Invalid archive format" msgstr "%s: Kumpulan tidak sah" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1743,7 +1743,7 @@ msgstr "" msgid "extract files to standard output" msgstr "Ralat ketika menulis ke output piawai" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "" @@ -1779,7 +1779,7 @@ msgstr "" msgid "use FILE to map file owner GIDs and names" msgstr "" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "" @@ -1980,7 +1980,7 @@ msgstr "" msgid "Archive format selection:" msgstr "opsyen format arkib konflik" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "" @@ -2063,118 +2063,118 @@ msgstr "" msgid "filter through PROG (must accept -d)" msgstr "" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "" -#: src/tar.c:693 +#: src/tar.c:694 #, fuzzy msgid "don't strip leading '/'s from file names" msgstr "Membuang awalan `%.*s' drpd nama ahli" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" msgstr "" -#: src/tar.c:697 +#: src/tar.c:698 msgid "follow hard links; archive and dump the files they refer to" msgstr "" -#: src/tar.c:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" msgstr "" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2182,423 +2182,432 @@ msgid "" "accepted" msgstr "" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "" -#: src/tar.c:765 +#: src/tar.c:766 msgid "set name quoting style; see below for valid STYLE values" msgstr "" -#: src/tar.c:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, fuzzy, c-format msgid "'%s' cannot be used with '%s'" msgstr "%s: Tak dapat rayau ke %s" -#: src/tar.c:933 +#: src/tar.c:934 #, fuzzy 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:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Opsyen mampatan konflik" -#: src/tar.c:1004 +#: src/tar.c:1000 #, fuzzy, c-format msgid "Unknown signal name: %s" msgstr "jenis fail tak diketahui %s\n" -#: src/tar.c:1028 +#: src/tar.c:1030 #, fuzzy msgid "Date sample file not found" msgstr "Fail tarikh tidak dijumpai" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Mengganti %s bagi format tarikh tak diketahui %s" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" msgstr "" -#: src/tar.c:1253 +#: src/tar.c:1259 #, fuzzy msgid "Invalid owner or group ID" msgstr "Pemilik tidak sah" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Faktor pemblokan tidak sah" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "panjang pita tidak sah" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Mod tidak sah diberi pada opsyen" -#: src/tar.c:1797 +#: src/tar.c:1806 #, fuzzy msgid "Invalid number" msgstr "Nombot inod tidak sah" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Saiz rekod tidak sah" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "Saiz rekod mesti dalam gandaan %d." -#: src/tar.c:1910 +#: src/tar.c:1919 #, fuzzy msgid "Invalid number of elements" msgstr "panjang pita tidak sah" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "" -#: src/tar.c:2066 +#: src/tar.c:2075 #, 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:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "" -#: src/tar.c:2181 +#: src/tar.c:2190 #, fuzzy, c-format msgid "non-option arguments in %s" msgstr "hujah tidak sah %s bagi %s" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "" -#: src/tar.c:2291 +#: src/tar.c:2300 #, fuzzy, c-format msgid "Old option '%c' requires an argument." msgstr "OPsyen lama `%c' memerlukan hujah." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "" -#: src/tar.c:2390 +#: src/tar.c:2399 #, fuzzy msgid "Multiple archive files require '-M' option" msgstr "Fail akrib beraneka memerlukan opsyen `-M'" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "" -#: src/tar.c:2424 +#: 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Tak dapat menentusah arkib multi-volume" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Tak dapat menentusahkan arkib termampat" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Tak dapat menggunakan arkib multi-volume termampat" -#: src/tar.c:2457 +#: src/tar.c:2466 #, fuzzy msgid "Cannot concatenate compressed archives" msgstr "Tak dapat mengemaskini arkib termampat" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" msgstr "" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Secara dayus enggan mencipta arkib kosong" -#: src/tar.c:2623 +#: src/tar.c:2632 #, fuzzy msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Opsyen `-Aru' tak serasi dengan `-f -'" -#: src/tar.c:2711 +#: src/tar.c:2743 #, fuzzy msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "Anda mesti nyatakan satu drpd opsyen `-Acdtrux'" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" -#: src/update.c:87 +#: src/update.c:86 #, fuzzy, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Fail mengecil sebanyak %s byte" msgstr[1] "%s: Fail mengecil sebanyak %s byte" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "" -#: src/xheader.c:677 +#: src/xheader.c:695 #, 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:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, 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:1053 +#: src/xheader.c:1071 #, 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:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "" -#: src/checkpoint.c:114 +#: src/checkpoint.c:133 #, fuzzy, c-format msgid "%s: not a valid timeout" msgstr "%s: Kumpulan tidak sah" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "" @@ -2606,7 +2615,7 @@ msgstr "" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, fuzzy, c-format msgid "Write checkpoint %u" msgstr "Menulis titiksemak %d" @@ -2615,231 +2624,231 @@ msgstr "Menulis titiksemak %d" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, fuzzy, c-format msgid "Read checkpoint %u" msgstr "Membaca titiksemak %d" -#: tests/genfile.c:115 +#: tests/genfile.c:110 #, fuzzy msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "Menjana fail data untuk suit ujian GNU tar.\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 #, fuzzy msgid "File creation options:" msgstr "Opsyen mampatan konflik" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "" -#: tests/genfile.c:135 +#: tests/genfile.c:130 #, fuzzy msgid "Write to file NAME, instead of standard output" msgstr "Ralat ketika menulis ke output piawai" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "" -#: tests/genfile.c:168 -msgid "OPTION" +#: tests/genfile.c:163 +msgid "N" msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" msgstr "" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, fuzzy, c-format msgid "Invalid size: %s" msgstr "Setem masa tidak sah" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, fuzzy, c-format msgid "Number out of allowed range: %s" msgstr "Nombor inod diluar julat" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, fuzzy, c-format msgid "Unknown date format" msgstr "Ralat sistem tidak diketahui" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "" -#: tests/genfile.c:448 +#: tests/genfile.c:439 #, fuzzy msgid "cannot seek" msgstr "Tak dapat tutup" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, fuzzy, c-format msgid "Unknown field `%s'" msgstr "jenis fail tak diketahui %s\n" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, fuzzy, c-format msgid "cannot set time on `%s'" msgstr "%s: Tak dapat rayau ke %s" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, fuzzy, c-format msgid "cannot truncate `%s'" msgstr "%s: Tak dapat menukarnama ke %s" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, fuzzy, c-format msgid "command failed: %s" msgstr "Arahan '%s' gagal" -#: tests/genfile.c:781 +#: tests/genfile.c:772 #, c-format msgid "cannot stat `%s'" msgstr "" -#: tests/genfile.c:785 +#: tests/genfile.c:776 #, fuzzy, c-format msgid "cannot remove directory `%s'" msgstr "Tak dapat simpan direktori kerja" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, fuzzy, c-format msgid "cannot unlink `%s'" msgstr "%s: Tak dapat symlink ke %s" diff --git a/po/nb.gmo b/po/nb.gmo index a6a0fa95d59c0b8ffef2f8d9c24b9999dc15af74..ee855fba70fcb067cf2ea0ef61334bccba862e38 100644 GIT binary patch delta 14806 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 VFE1@$AwPHWh7;nOSDq-90{}cAzPSJZ delta 12842 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	JKZ##NulgA?=9Y7a=8|=_N?+3b+Ju zVBsZ5+;6%BNpr6*fy#dd1_t)akT_Pp3~`A6Wk?-R1EqIdhB)NQWk}*vx&m=f#1%+8 zzWxeC|KTeTi{D>?q$#ee5c8C-Lb9j-Rft3Du0qUPTz?f3G#9Tz40wGNl3&HIK@9S| z21!gQ*C0MAzXplB8P_2CPF{mJ^zk)Fc9p*lNdx-VA!#7;I>f>G*CB~<>2-+yH`gKd z)XUz0R3`p6AVJe}17gvU8xR*iy}`h+n}LBr<R&C7T(}7l|9uluTWZ~cB*OSxkZe|a z3*z(nw-^{cF)%P}zs10y2^tf+4Jpd6+<}yUH}8NewR#5KyO5yBy$eY!v+qJu>EXK& zpS`>bu~79MB(6j5K|-qb9>l>b??K9mhxZ^p{&kN5yf#GOKEz>i_aX8&_aXT|^gbk4 zlz{1a28OlwA=&QPeP~bRKExvD2aur5c>sxmX%8SiUikoG(Y*%{2Y-RmG7ll@TpmIk z9R3huZrejhYj?&&$ne|Bhmfdy_mF`>0hIqa9zhBm%|{Ri*gb-DlRF<leEQ@OB+djL zLmc1;rOO^ea>MG!kdQk47!pP7Par-udIE|2z$Xy#_9u`i+63iadBVU@Z^6L8@c#*< z<g<7R3Hp$y5SLdyg~V0QQ^>r)gQpOKjh{gb4tfS@FLXSE<c9udkRo^6GswIEXkZJp zHU)(37#SEIg64@C7#O~QrePQv7(5sm>KTlf7#MysGB7-2U|?9vz`zg+T6F|k;ljYc za2>Q_g^___Gspx628LKh28Q`ic|A~vpMim4JtG6dU8p>W0<HI%#K^#)&&a^wz{tR$ z3{?k`1K|QjNYx8ozQYI#e+CAI1gN1Bpw&$b3=ABM3=BJ=V(B1V3=9lGjF6nd2Q^TZ zk%55?s^%|L4U7UUNHK@X889+1{9<Ha=w@JGxX8f3(8|cbu#bU(VG|<*!;^YO1_ocK zu1ru1hmnC{7RZ;N^%+nDjxs`m7o_YO0|UcV5CaJ(F)}c`Wn^GzWME+Uh9q9f$iQ%& z5i+dD19h|#)Xduq3=B3*3=H+>p#q@gR-lzmpy^bQ8K60R1x5yjd`1R_T~IZjp)^Py zhBtziYcVn~WI^RX3syjKW>7vC69YpxBLf2$BLl+~(C9iN149NQ1A_@81A{OVLp_5Q zD2^By7{nPF7^X2YFhnpiFk~|_Fq{Orkdc9583O}D93un6KhW|FMh1pg3=9nFObnnQ zAcpUZ3=F1B3=CfxAXO~L;uuB-hECA@A1Hx=7NapTFzkmqriFolL5m5J|3PXQ7@+YF z;V>`=F)=VaVq{=A024r>-5DVT4yZIs1kD37FffELGB8YMWMDYW0I3K186mADkha+j z3=9()AwzcWK>`d63<nq)7#=V(Fo2faSuip%Xx1|^FjRmPGB7ZxF)=XwfVy-t0|P@I zXvG^e-sG7W7^IjO7%qWU%P}x8XfQ&S(nvEhFc>p3Fla;7f$W(JH6sIL29(W&B)=3Y z#te#o6R5;IMh1pGAl*=WjFEw12?M0XV$I0FAPLp<4oYujWMFs=YQZuxFkA#V0IE-q zk%6HWl!zH1!>xZnX@h}*;Si_}f$CijRcnSG{xcaE7*rV<7$!j#fEF9bGBGgB1FiXE zgj7UODKG_!Jq4%-Ks_gr-~$E*hGQTGXb_u;fgu%YX#*p4loYh82IL_o28Lyz{0~}o zcY=X|!H<!F;SB?%jLu<TVE74&Q$_}c6^xLY%ZHJHfsqN)lmeOmg^_`w2*hB3)O4<l z3=DNp%l1O)I}8jAFF@Iofq~&6Xx1B)t)Y5AE2u<4`Co~NfuR_x0n`QG4w`}mWjm<C zK1K$H!%#Ld^%trKH2jV%eu{yCL5Puo;RR?#B?AM41Sl$@YIT_y80;At82&IYFx+Qk zV5tAZ$iN`O$iT3Uk%6HEYRWT428JUH3=EBo3=B04kha<_P$>qL2Q@+knIK&$(6Y>} zpm77J1skBW1QVo*b%ud~Are#^Gchm(FfuUof=XA=N=YULhJ~>B&tYU>5M*Rvm;x#w zpq5xLF)*kwF)*-04O|OayT{1D5XH#AaD#z?VI63o396O_ng&2z(A2vQBLiqg2E+wp zZbrz!6o~T*)EHr4V6X=3sb^qdXJTNeW@KOx02Mlnkddny43L^^IU@tZOi($`#K2$* zbqL6i6`-}7&=s?w*-g;eF_1V23q#d`R!O=sGBCVnWMHsmWMJ3;TF?qA_Zb)%rh_`W zAjO~*45C46IzcpO#UqI3WMW|8Wny4ZWny4B$H2f4&d9(Z$Hc(U$;iO4l97QSfPsNw zCurFw6Ql_)1+}z_k%1wd5mKFlR!xD-I>-p=U4z)5<+t%rwIDv&{!$PNlpsJgA(XwH z5z=x6ad&`9I7SABRt5$JPDTcXG^hcKKvgfOxMpBrxC|--7$FUr7DfgJentj{^9+#o z0>}&)_Gg52^A<n^>KU9saSGvp=K@xOYB5GgYqbn&5l9-eZWly1F)}dpF)%Q^VPs&? z0LLK%!#0ovsBDMQ&!O~fMh1opP%}X5j2AF6FjPV1M8JCM85sUEGBCUZ%}|3D6f-a| zJZ6A2tGK}mAgTkQhR856Fq{RAc0uKuL5UJHV+tyu7#J9iL)A?N<t9c3hC)WjVwP2m zkkPZfpmf8)03I>B05TdB{-AZbAof2{6$v!}GzA9|6Jugvm;lNh3=9k(p>k$S3=Air zY>*nzGFx*d28Qn-4g&+jHAV)8;|vT8ZHx>Im5dAwR~Z=?=0fE_)4TT=85lk?FfbT` z%6~>i1_lFA4q#wlxWUN4V9CV5a1XS=093m{HG!t*UPCREhtg{p85nLdK)TxEObiS= zplXeo7#NsAEgVJ$1~Enk23|%6hDV^v4b+SS<s?uVVqjqCVqjqS4Ql`OfD#GR&>|=e zTB!^&&zF&b!3!$37&M^Fz`$^Zk%3_XsF-GCVE7MG1WJ6M{0wSTGBGfeGcqu&W@KRC zU}9kC0u^MSiVc*#LG1=c$V4?%8^dQ%{SR7P{0=0-#K5qhfq`KyBLjmc)KWtz&C1BY zpa_afkUCH$1scm?WMG)Xz`&3Tn*C&C0L?i=Wf>T9p)AlM^8yA21|~)Z21iB)hO<!f zo`OP;k%8e9sQeEGB@_k*h7X`>l97So4pb4y4A4BjEi|$5LB&B!bU<>TwZb48gh4Bt zdqE8g&=f8x?im;uHbT|2LiM+U_>2q;9gGYNp$rTRGeG4(3nK%=Z;<7T3=BUQ7#J3V z5(dabP?L%gGExcE&(H&^f<cBbFff1|4pIhMhOY=J%NZFMzA`c}c!TN;P-<snV5k7K za6pRCFleId;4=mW6$1uo1`7iQhLg`AT`iD0koo`r|NsB_+2kTaz0EmBlNmP~n#eJ4 z&Nbi1Hu=2W)X6RO3pV>Y2rzA4>(s}w+1+~=qmN^dd$68DXmM&<X^uj9W=V#Eu5NNh zYI1f#er8^YLSkNuLVjMVLVg-ZytG6|L031ipdd9b1;i@JFHOz>F-r4tGV`(*|L|ei zY#F$XgEb(;)8B9N+sF)#%__-d+>^KG#cfv050hasvYcGkZEI?-YiOivXs%#rWMyoq zZD3?zz!l)H8<bj>S)7@lr|Xhfl4_-3WMF8fYhbEtWTaqdY-MDz`9pU&BeSWV$z-2i z)y;{0_ZT-9PiSS{EHx#HeX{DD#gkvmS+RNlTsNl8MGN{kHw&!V#>nj$<gTaSS6Nb$ znLfGkxVR^h*YeX9Qu9hu^ArxP*40feEjhGX2h4<c55@y~@z8FC)SR5uBCtHfubcO- o7Gc>evmuR>In2>#bHmPh&duu&8}Ll7pT;_w{X)&=<riAy0Di70!2kdN diff --git a/po/nb.po b/po/nb.po index af85b404..12c275fe 100644 --- a/po/nb.po +++ b/po/nb.po @@ -1,18 +1,18 @@ -# Norwegian (Bokmål) translation of GNU tar. +# Norwegian (bokmål) translation of GNU tar. # Copyright (C) 2016 Free Software Foundation, Inc. # This file is distributed under the same license as the tar package. # Karl Anders Øygard <Karl.Oygard@fou.telenor.no>, 1996. # Espen Skjelnes Johnsen <espejohn@sn.no>, 1997. # Johnny A. Solbu <johnny@solbu.net, 2014. -# Åka Sikrom <a4@hush.com>, 2016. +# Åka Sikrom <a4@hush.com>, 2016-2017. # -#: src/create.c:1599 +#: src/create.c:1598 msgid "" msgstr "" -"Project-Id-Version: tar 1.29\n" +"Project-Id-Version: tar 1.30\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" -"PO-Revision-Date: 2016-05-22 13:28+0100\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" +"PO-Revision-Date: 2017-12-24 09:13+0100\n" "Last-Translator: Åka Sikrom <a4@hush.com>\n" "Language-Team: Norwegian Bokmaal <i18n-nb@lister.ping.uio.no>\n" "Language: nb\n" @@ -21,7 +21,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 1.5.4\n" +"X-Generator: Poedit 1.8.7.1\n" #: gnu/argmatch.c:134 #, c-format @@ -100,7 +100,7 @@ msgid "give a short usage message" msgstr "vis en kort bruksanvisning" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "NAVN" @@ -138,29 +138,29 @@ msgid "write error" msgstr "skrivefeil" #: gnu/getopt.c:278 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous\n" -msgstr "%s: valget «%s» er flertydig\n" +msgstr "%s: valget «%s%s» er flertydig\n" #: gnu/getopt.c:284 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" -msgstr "%s: valget «%s» er flertydig, og kan bety følgende:" +msgstr "%s: valget «%s%s» er flertydig, og kan bety følgende:" #: gnu/getopt.c:319 -#, fuzzy, c-format +#, c-format msgid "%s: unrecognized option '%s%s'\n" -msgstr "%s: «%c%s» er et ukjent valg\n" +msgstr "%s: «%s%s» er et ukjent valg\n" #: gnu/getopt.c:345 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" -msgstr "%s: valget «%c%s» tillater ikke argumenter\n" +msgstr "%s: valget «%s%s» tillater ikke argumenter\n" #: gnu/getopt.c:360 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' requires an argument\n" -msgstr "%s: valget «--%s» krever et argument\n" +msgstr "%s: valget «%s%s» krever et argument\n" #: gnu/getopt.c:621 #, c-format @@ -235,12 +235,12 @@ msgstr "^[jJ]" msgid "^[nN]" msgstr "^[nN]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Pakket av %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Pakket av %s\n" @@ -248,12 +248,11 @@ msgstr "Pakket av %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: gnu/version-etc.c:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "©" -#: gnu/version-etc.c:86 -#, fuzzy +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -403,12 +402,11 @@ msgid "%s home page: <%s>\n" msgstr "Nettside for %s: <%s>\n" #: gnu/version-etc.c:253 -#, fuzzy, c-format +#, c-format msgid "%s home page: <https://www.gnu.org/software/%s/>\n" msgstr "Nettside for %s: <http://www.gnu.org/software/%s/>\n" #: gnu/version-etc.c:256 -#, fuzzy msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n" msgstr "" "Generell hjelp til bruk av GNU-programvare: <http://www.gnu.org/gethelp/>\n" @@ -532,194 +530,194 @@ msgstr "Klarte ikke å videresende filer til eksternt skall" msgid "Cannot execute remote shell" msgstr "Klarte ikke å kjøre eksternt skall" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Søkeretning er utenfor tillatt rekkevidde" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "Ugyldig søkeretning" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "Ugyldig søkeforskyvning" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Søkeforskyvning er utenfor tillatt rekkevidde" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "Ugyldig antall byte" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "Opptelling av byte er utenfor tillatt rekkevidde" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "For tidlig slutt på fil" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "Ugyldig handlingskode" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "Handlinga støttes ikke" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Uventede argumenter" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 msgid "Manipulate a tape drive, accepting commands from a remote process" msgstr "Styr en båndstasjon, og godta kommandoer fra eksterne prosesser" -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "NUMMER" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "endre feilsøkningsnivå" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "FIL" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "endre navn på feilsøkingsfil" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "klarte ikke å åpne %s" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "for mange argumenter" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Ugyldig kommando" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Dette ser ikke ut som et tar-arkiv" # -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Antall leste byte" # -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Antall skrevne byte" # -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "Antall slettede byte" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(datarør)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "Nekter å lese arkivinnhold fra terminal (glemte du «-f»?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "Nekter å sende arkivinnhold til terminal (glemte du «-f»?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Ugyldig verdi for «record_size»" # -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Arkivnavn mangler" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Klarte ikke å kontrollere stdin-/stdout-arkiv" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Arkivet er komprimert. Bruk valget %s" # -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Komprimerte arkiver kan ikke oppdateres" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "Nådde begynnelsen av båndet. Avslutter nå" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Det har oppstått for mange feil. Avslutter" -#: src/buffer.c:967 +#: src/buffer.c:969 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Registerstørrelse = %lu blokk" msgstr[1] "Registerstørrelse = %lu blokker" -#: src/buffer.c:988 +#: src/buffer.c:990 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Ujustert blokk (%lu byte) i arkivet" msgstr[1] "Ujustert blokk (%lu byte) i arkivet" -#: src/buffer.c:1075 +#: src/buffer.c:1077 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "Klarte ikke å gå tilbake i arkivfila. Den kan være uleselig uten «-i»" -#: src/buffer.c:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek stoppet ikke på en registergrense" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: inneholder ugyldig volumnummer" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Alle mulige volumnumre er oppbrukt" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Klargjør volum #%d for %s og trykk Enter: " -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "EOF der svar fra bruker skulle vært" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "ADVARSEL: Arkivet er ufullstendig" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -730,65 +728,65 @@ msgstr "" " q Avbryt tar\n" " y eller linjeskift Fortsett handling\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Start et underskall\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? Skriv ut denne lista\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Intet nytt volum. Avslutter.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "Filnavn mangler. Prøv på nytt.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Ugyldig inndata. Skriv «?» for for hjelp.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "%s kommando mislyktes" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s fortsetter ikke i dette volumet" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s fortsetter kanskje på dette volumet. Hodet inneholder avkortet navn" -#: src/buffer.c:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s er feil størrelse (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Dette volumet er ute av sekvens (%s - %s != %s)" -#: src/buffer.c:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "Arkiv ikke navngitt for å passe med %s" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "Volumet «%s» stemmer ikke overens med «%s»" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -796,210 +794,210 @@ msgstr "" "%s: filnavnet er for langt tid å lagres i et GNU-multivolum-hode, og blir " "derfor avkortet" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "skriving endte ikke ved en blokkgrense" -#: src/compare.c:98 +#: src/compare.c:97 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" msgstr[0] "Klarte bare å lese %lu av %lu byte" msgstr[1] "Klarte bare å lese %lu av %lu byte" -#: src/compare.c:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Innholdet er ulikt" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Uventet slutt på fil i arkivet" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Filtypen er ulik" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Modus er ulik" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Uid er ulik" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "Gid er ulik" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Endringstiden er ulik" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Størrelsen er ulik" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Ikke lenket til %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Symbolsk lenke er ulik" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Enhetsnummer avviker" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Kontroller " -#: src/compare.c:480 +#: src/compare.c:479 #, c-format msgid "%s: Unknown file type '%c', diffed as normal file" msgstr "%s: Ukjent filtype «%c», diffet som vanlig fil" -#: src/compare.c:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "Arkivet inneholder filnavn med ledende prefikser fjernet." -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "Arkivet inneholder forvandlede filnavn." -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "Verifikasjon kan mislykkes i å finne originalfilene." -#: src/compare.c:620 +#: src/compare.c:619 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "KONTROLLFEIL: fant %d ugyldig arkivhode" msgstr[1] "KONTROLLFEIL: fant %d ugyldige arkivhoder" -#: src/compare.c:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "Enslig null-blokk ved %s" -#: src/create.c:74 +#: src/create.c:73 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: inneholder en buffermappetag %s; %s" -#: src/create.c:263 +#: src/create.c:262 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "verdien %s er utenfor %s rekkevidde %s..%s. Erstatter %s" -#: src/create.c:269 +#: src/create.c:268 #, c-format msgid "value %s out of %s range %s..%s" msgstr "verdien %s er utenfor %s rekkevidde %s..%s" -#: src/create.c:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Lager negative oktalhoder" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, c-format msgid "%s: file name is too long (max %d); not dumped" msgstr "%s: filnavnet er for langt (maks %d), og fila ble ikke dumpet" -#: src/create.c:616 +#: src/create.c:615 #, c-format msgid "%s: file name is too long (cannot be split); not dumped" msgstr "%s: filnavnet er for langt og/eller splittet, og fila ble ikke dumpet" -#: src/create.c:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: lenkenavnet er for langt, og fila ble ikke dumpet" -#: src/create.c:1106 +#: src/create.c:1105 #, 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: Fila krympet med %s byte. Fyller ut med nuller" msgstr[1] "%s: Fila krympet med %s byte. Fyller ut med nuller" -#: src/create.c:1204 +#: src/create.c:1203 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: fila er på et annet filsystem, og ble derfor ikke dumpet" -#: src/create.c:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "innholdet ble ikke dumpet" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Ukjent filtype. Fila ignoreres" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "Mangler lenker til %s." -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: fila er uendret, og ble ikke dumpet" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: fila er selve arkivet, og ble ikke dumpet" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "mappe ble ikke dumpet" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: fil endret mens vi leste den" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: sokkel ignorert" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: dør ignorert" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Hopper til neste startseksjon" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Tar bort ikke-hodedata fra arkivet" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: usansynlig gammelt tidsstempel %s" -#: src/extract.c:320 +#: src/extract.c:319 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: tidsstempel %s er %s sekunder i fremtiden" -#: src/extract.c:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Uventet inkonsekvens ved opprettelse av mappe" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: hopper over eksisterende fil" @@ -1022,7 +1020,7 @@ msgstr "Forsøker å pakke ut symbolske lenker som harde lenker" msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Klarte ikke å pakke ut -- fila fortsettes fra et annet volum" -#: src/extract.c:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Uventet langt navnehode" @@ -1039,7 +1037,7 @@ msgstr "Gjeldende %s er nyere eller samme alder" #: src/extract.c:1664 #, c-format msgid "%s: Member name contains '..'" -msgstr "" +msgstr "%s: Medlemsnavn inneholder «..»" #: src/extract.c:1696 #, c-format @@ -1051,22 +1049,22 @@ msgstr "%s: Klarte ikke å lage sikkerhetskopi av denne fila" msgid "Cannot rename %s to %s" msgstr "Klarte ikke å endre navn på %s til %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Mappa har endret navn fra %s" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: Mappa er ny" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "%s: mappa er på et annet filsystem, og ble ikke dumpet" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Mappa har endret navn" @@ -1192,192 +1190,193 @@ msgstr "%s: Sletter %s\n" msgid "%s: Cannot remove" msgstr "%s: Klarte ikke å fjerne" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: Utelater" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blokk %s: ** Blokk med NUL-er **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "blokk %s: ** Slutt på fil **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "blokk %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "Blankt hvor numerisk %s-verdi forventes" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "Arkivoktalverdi %.*s er ut av %s rekkevidde; forutsatt toerkomplement" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Arkivets oktalverdi %.*s er utenfor %s rekkevidde" -#: src/list.c:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "Arkivet inneholder foreldede base-64-hoder" -#: src/list.c:852 +#: src/list.c:853 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "Arkiv-signert base-64-streng %s er utenfor %s-rekkevidde" -#: src/list.c:883 +#: src/list.c:884 #, c-format msgid "Archive base-256 value is out of %s range" msgstr "Arkivets base-256-verdi er utenfor %s-rekkevidde" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:912 +#: src/list.c:913 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "Arkivet inneholder %.*s hvor numerisk %s-verdi forventes" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:934 +#: src/list.c:935 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Arkivverdi %s er utenfor %s-intervallet %s..%s" -#: src/list.c:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " lenke til %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " ukjent filtype %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Lang lenke--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Langt navn--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Volumhode--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Fortsatte ved byte %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Lager mappe:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "Endrer navn på %s til %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Klarte ikke å endre navn til %s" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "Endrer navn %s tilbake til %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: Fila ble fjernet før programmet rakk å lese den" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "underprosess" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "mellomprosesskanal" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "Lokalt filvalg:" -#: src/names.c:72 +#: src/names.c:71 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" "legg oppgitt FIL til arkivet (nyttig hvis navnet starter med en bindestrek)" -#: src/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "MAP" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "bytt til mappa MAP" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "få navn å pakke ut eller opprette fra FIL" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "-T les null-adskilte navn, og slår av «-C»" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "deaktiverer effekten til foregående --null-valg" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "avsitér inndatafil eller medlemsnavn (standard)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "ikke avsitér inndatafil eller medlemsnavn" -#: src/names.c:87 -#, fuzzy +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" -msgstr "-T les filnavn nøyaktig slik de er (ingen valghåndtering)" +msgstr "" +"-T les filnavn nøyaktig slik de er (ingen håndtering av valg eller " +"skiftesekvenser)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "-T behandle filnavn som begynner med bindestrek som valg (standard)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "MØNSTER" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "ekskludere filer, gitt som et MØNSTER" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "ekskluder mønster listet i FIL" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1385,24 +1384,24 @@ msgstr "" "ekskluder innholdet av mapper som inneholder CACHEDIR.TAG, med unntak av " "selve tagg-fila" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "ekskluder alt under mapper som inneholder CACHEDIR.TAG" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "ekskluder mapper som inneholder CACHEDIR.TAG" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" "ekskluder innholdet av mapper som inneholder FIL, med unntak av selve FIL-en" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "lese ekskluder mønstre for hver mappe fra FIL, hvis den finnes" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" @@ -1410,116 +1409,119 @@ msgstr "" "lese ekskluder mønstre for hver mappe fra FIL og dens undermapper, hvis den " "finnes" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "ekskluder alt under mapper som inneholder FIL" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "ekskluder mapper som inneholder FIL" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "ekskluder versjonskontrollsystemmapper" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "les ekskluder mønstre fra VCS-ignorere filer" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "ekskluder sikkerhetskopi- og låsefiler" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "gå rekursivt ned i mapper (standard)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "unngå automatisk nedstigning i mapper" -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "valg for filnavntreff (påvirker både ekskluder- og inkludermønstre):" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "mønstre passer med filnavnstart" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "mønstre passer etter «/» (standard for ekskludering)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "ignorer bokstavstørrelse" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "match forskjell på små og store bokstaver (standard)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "bruk jokertegn (standard for ekskludering)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "ordrett strengsammenligning" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "jokertegn samsvarer «/» (standard for ekskludering)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "jokertegn samsvarer ikke «/»" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" +"Følgende ekstravalg ble brukt i arkivmodus etter argumenter som ikke godtar " +"ekstravalg. Plasser valgene etter argumenter som godtar dem hvis du vil at " +"de skal ha noen effekt." -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" -msgstr "" +msgstr "-C %s har ingen effekt" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" -msgstr "" +msgstr "--%s %s har ingen effekt" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" -msgstr "" +msgstr "--%s har ingen effekt" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "kommandolinje" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: filliste forespurt fra %s allerede lest fra %s" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "Klarte ikke å splitte strengen «%s». %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: lest filnavn inneholder nulltegn" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "Mønster samsvarer med tegn som brukes i filnavn" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1527,47 +1529,47 @@ msgstr "" "Bruk --wildcards for å aktivere mønstergjenkjenning, eller --no-wildcards " "for å undertrykke denne advarselen" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: Finnes ikke i arkivet" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Obligatorisk forekomst finnes ikke i arkivet" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "Arkivetikett samsvarer ikke" -#: src/names.c:1717 +#: src/names.c:1747 msgid "" "Using -C option inside file list is not allowed with --listed-incremental" msgstr "" "Valget «-C» kan ikke brukes i fillista i kombinasjon med «--listed-" "incremental»" -#: src/names.c:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "Kun ett -C-valg er tillatt med --listed-incremental" -#: src/tar.c:88 +#: src/tar.c:87 #, c-format msgid "Options '%s' and '%s' both want standard input" msgstr "Valgene «-%s» og «-%s» vil begge ha standard inn" -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Ugyldig arkivformat" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "GNU-funksjoner forsøkt på inkompatibelt arkiv-format" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1787,7 +1789,7 @@ msgstr "Velg utdatastrøm:" msgid "extract files to standard output" msgstr "pakk ut filer til standardutdata" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "KOMMANDO" @@ -1824,7 +1826,7 @@ msgstr "bruk valgt FIL for å tilknytte fileiers UID og navn" msgid "use FILE to map file owner GIDs and names" msgstr "bruk valgt FIL for å tilknytte fileiers GID og navn" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "DATO-ELLER-FIL" @@ -2032,7 +2034,7 @@ msgstr "Omblokker ved lesning (for 4.2BSD-rør)" msgid "Archive format selection:" msgstr "Arkivformatvalg:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "FORMAT" @@ -2116,60 +2118,60 @@ msgstr "PROG" msgid "filter through PROG (must accept -d)" msgstr "filtrér gjennom PROGRAM (må akseptere -d)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Lokalt filvalg:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "bli i lokale filsystem når du oppretter arkiv" # -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "ikke fjern ledende «/» fra filnavn" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" msgstr "Følg symbolske lenker; arkiver og dump filene de peker til" -#: src/tar.c:697 +#: src/tar.c:698 msgid "follow hard links; archive and dump the files they refer to" msgstr "følg harde lenker; arkiver og dump filene de refererer til" -#: src/tar.c:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "MEDLEMS-NAVN" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "begynn med medlem MEDLEMSNAVN ved lesing av arkivet" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "bare lagre filer som er nyere enn DATO-ELLER-FIL" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "DATO" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "sammenlign dato og tid kun ved dataendringer " -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "KONTROLL" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "sikkerhetskopi før sletting, velg versjonskontroll" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "STRENG" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2177,59 +2179,59 @@ msgstr "" "sikkerhetskopi før sletting, overstyr vanlig suffiks («~» med mindre " "overstyrt av miljøvariabelen SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Filnavnforvandlinger:" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "fjern NUMMER antall innledende komponenter fra filnavn ved utpakking" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "UTTRYKK" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "bruk sed erstatnings-UTTRYKK for å forvandle filnavn" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Informativ utdata:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "vis navn på alle filer som behandles" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "NØKKELORD" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "advarselskontroll" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "vis framdriftsmeldinger hver ANTALL register (standard 10)" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "HANDLING" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "utfør HANDLING på hvert sjekkpunkt" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "skriv ut en melding hvis ikke alle lenker ble dumpet" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "SIGNAL" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2241,35 +2243,35 @@ msgstr "" "SIGHUP, SIGQUIT, SIGINT, SIGUSR1 og SIGUSR2; navnene uten SIG-prefikset er " "også akseptert" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "vis endringstidspunkt som UTC" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "vis full oppløsning på filtider" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "send detaljert utdata til FIL" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "vis blokknummer i arkiv med hver melding" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "be om bekreftelse for hver handling" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "vis tar-standarder" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "vis gyldige verdiområder for øyeblikksbildefilfelt" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2277,31 +2279,31 @@ msgstr "" "ved listing eller utpakking, vis hver mappe som ikke samsvarer med " "søkekriteriene" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "Vis fil eller arkivnavn etter forvandling" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "STIL" -#: src/tar.c:765 +#: src/tar.c:766 msgid "set name quoting style; see below for valid STYLE values" msgstr "angi siteringsstil; se nedenfor for gyldige STIL-verdier" -#: src/tar.c:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "i tillegg sitér fra STRENG" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "deaktiver sitering av tegn fra STRENG" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Kompatibilitetsvalg:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2309,22 +2311,22 @@ msgstr "" "ved opprettelse, samme som --old-archive. ved utpakking, samme som --no-" "same-owner" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Andre valg:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "deaktiver bruk av noen potensielt skadelige valg" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "«%s» kan ikke brukes sammen med «%s»" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" @@ -2332,40 +2334,40 @@ msgstr "" "Du kan ikke angi flere enn ett av valgene «-Acdtrux», «--delete» og «--test-" "label» samtidig" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Konflikt i kompresjonsflagg" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Ukjent signalnavn: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "Fant ikke dato-eksempelfil" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Erstatter %s for ukjent datoformat %s" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "Valg %s: Behandler dato «%s» som «%s»" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "filtrer arkivet gjennom %s" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "Gyldige argumenter for valget --quoting-style er:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2373,165 +2375,165 @@ msgstr "" "\n" "*Denne* tar standardiserer til:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "Ugyldig eier eller gruppe-ID" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Ugyldig blokkeringsfaktor" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Ugyldig tapelengde" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "Ugyldig inkrementell nivåverdi" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Mer enn én grense-dato" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "Ugyldig version for filer med huller" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve=«system» støttes ikke på denne platformen" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "--checkpoint-verdien er ikke et heltall" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Ugyldig modus gitt i flagg" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Ugyldig nummer" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Ugyldig registerstørrelse" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "Blokkstørrelse må være delbart på %d." -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr " Ugyldig antall elementer" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "Kun ett «--to-command»-alternativ tillatt" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Feilformatert tetthetsargument: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Ukjent tetthet «%c»" -#: src/tar.c:2066 +#: src/tar.c:2075 #, c-format msgid "Options '-[0-7][lmh]' not supported by *this* tar" msgstr "Valgene «-[0-7][lmh]» støttes ikke av *denne* implementasjonen av tar" -#: src/tar.c:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: plassering av feilen" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "feil under tolkning av %s" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[FIL] …" -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "%s inneholder argumenter som ikke er valg" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "klarte ikke å dele opp «TAR_OPTIONS»: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "Gammelt valg «%c» behøver et argument." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence er meningsløs uten en filliste" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "Ved flere arkivfiler behøves «-M»-valget" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "--lever er meningsløs uten --listed-incremental" -#: src/tar.c:2424 +#: 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: Volumetikett er for lang (grensen er %lu byte)" msgstr[1] "%s: Volumetikett er for lang (grensen er %lu byte)" -#: src/tar.c:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Arkiv som går over flere volum kan ikke kontrolleres" # -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Komprimerte arkiver kan ikke kontrolleres" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Komprimerte arkiver som går over flere volum kan ikke brukes" # -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Klarte ikke å sette sammen komprimerte arkiver" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "«--clamp-mtime» krever at du oppgir en dato med «--mtime»" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "valget «--pax-option kan bare brukes på POSIX-arkiver" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "valget «--acls» kan bare brukes på POSIX-arkiver" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "valget «--selinux» kan bare brukes på POSIX-arkiver" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "valget «--xattrs» kan bare brukes på POSIX-arkiver" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2539,81 +2541,90 @@ msgstr "" "Klarte ikke å finne navn på toppnivå-mappe. Velg det manuelt med --one-top-" "level=MAP" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "Volum kan ikke være kortere enn registerstørrelse" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Programmet nekter på feigt vis å lage et tomt arkiv" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Valgene «-Aru» kan ikke brukes i kombinasjon med «-f -»" -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "Du må velge ett av «-Acdtrux», «--delete» eller «--test-label»" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "Avslutter med feilkode på grunn av tidligere feil" -#: src/update.c:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Fila krympet med %s byte" msgstr[1] "%s: Fila krympet med %s byte" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "Nøkkelordet %s er ukjent eller støttes ikke" -#: src/xheader.c:174 +#: src/xheader.c:173 msgid "Time stamp is out of allowed range" msgstr "Tidsstempelet er utenfor tillatt rekkevidde" -#: src/xheader.c:205 +#: src/xheader.c:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "Mønsteret %s kan ikke brukes" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Nøkkelordet %s kan ikke overstyres" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "Feilformatert utvidet hode: lengde mangler" -#: src/xheader.c:677 +#: src/xheader.c:695 #, c-format msgid "Extended header length %*s is out of range" msgstr "Utvidet header lengde %*s er utenfor rekkevidde" -#: src/xheader.c:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "Utvidet hode er feilformatert: blanktegn mangler etter lengde" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "Utvidet hode er feilformatert: likhetstegn mangler" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "Utvidet hode er feilformatert: linjeskift mangler" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "Ignorerer ukjent nøkkelord for utvidet hode («%s»)" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" @@ -2621,46 +2632,46 @@ msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:1053 +#: src/xheader.c:1071 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Utvidet hode %s=%s er utenfor rekkevidde %s..%s" -#: src/xheader.c:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Feilformatert utvidet hode: ugyldig %s=%s" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Feilformatert utvidet hode: overflødig %s=%s" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "Feilformatert utvidet hode: ugyldig %s: skilletegnet %c er uventet" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "Feilformatert utvidet hode: ugyldig %s: merkelig antall verdier" -#: src/checkpoint.c:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s er et ugyldig tidsavbrudd" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: ukjent sjekkpunkt handling" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "skrive" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "lese" @@ -2668,7 +2679,7 @@ msgstr "lese" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Skriver kontrollpunkt %u" @@ -2677,12 +2688,12 @@ msgstr "Skriver kontrollpunkt %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Leser kontrollpunkt %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2690,94 +2701,98 @@ msgstr "" "genfile manipulerer datafiler for GNU paxutils-testpakke.\n" "VALG er:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Filopprettingsvalg" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "størrelse" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Opprett fil av angitt STØRRELSE" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Skriv til fil NAVN i stedet for standardutdata" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "Les filnavn fra FIL" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T leser null-terminerte navn" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "Fyll fila med valgt MØNSTER. MØNSTER er enten «default» (standard) eller " "«zeros» (nuller)" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "Størrelse på en blokk for filer med huller" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "Lag fil med huller. Resten av kommandolinja gir filkartet" -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "FORSKYVNING" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "Søke til den angitte forskyvning før skriving av data" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "Ikke vis ukritiske feilmeldinger" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Filstatistiske valg:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Skriv ut innholdet i «struct stat» for hvert angitt fil. Standardformatet er:" -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Synkronkjøringsvalg:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "VALG" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "Kjør ARG. Nyttig i kombinasjon med «--checkpoint og enten «--cut», «--" "append», «--touch» eller «--unlink»" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "Utfør angitt handling (se nedenfor) ved oppnådd sjekkpunktANTALL" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "Angi dato for neste --touch-valg" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "Vis utførte sjekkpunkter og avsluttstatusen til KOMMANDO" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2785,7 +2800,7 @@ msgstr "" "Synkronkjøringshandlinger. Disse utføres når sjekkpunktnummer angitt av --" "checkpoint-valget er nådd." -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2793,125 +2808,125 @@ msgstr "" "Forkort FIL til størrelsen valgt ved forrige «--length» (eller 0 hvis det " "ikke er valgt)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Legg valgt STØRRELSE (i byte) til en FIL. STØRRELSE bestemmes av forrige «--" "length»." -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "Oppdater tilgangs- og endringstidspunkt for FIL" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "Kjør valgt KOMMANDO" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" -msgstr "" +msgstr "Slett valgt FIL" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "%s er en ugyldig størrelse" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "%s er utenfor tillatt rekkevidde" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Negativ størrelse: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) mislyktes" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "forespurt fillengde: %lu . Virkelig: %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "opprettet fil har ikke huller" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "feil ved analyse av tall ved «%s»" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Ukjent datoformat" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ARG…]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "klarte ikke å åpne «%s»" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "klarte ikke å søke" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "filnavn inneholder null-tegn" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" "filer med huller kan ikke sendes til standardutdata. Bruk valget «--file»" -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "ugyldig maske (ved «%s»)" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "Feltet «%s» er ukjent" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "Klarte ikke å endre tid på «%s»" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "Klarte ikke å avkorte «%s»" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "kommando mislyktes: %s" -#: tests/genfile.c:781 -#, fuzzy, c-format +#: tests/genfile.c:772 +#, c-format msgid "cannot stat `%s'" -msgstr "Klarte ikke å avkorte «%s»" +msgstr "klarte ikke å hente info om «%s»" -#: tests/genfile.c:785 -#, fuzzy, c-format +#: tests/genfile.c:776 +#, c-format msgid "cannot remove directory `%s'" -msgstr "Klarte ikke å endre tid på «%s»" +msgstr "klarte ikke å fjerne mappa «%s»" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "Klarte ikke å fjerne lenke til «%s»" @@ -2951,6 +2966,9 @@ msgstr "Kommandoen avsluttet\n" msgid "--stat requires file names" msgstr "valget «--stat» krever filnavn" +#~ msgid "OPTION" +#~ msgstr "VALG" + #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: parameteret ARGP_HELP_FMT må være positivt" diff --git a/po/nl.gmo b/po/nl.gmo index 53ce56a0864e40e49639d1c4cad2a588a3599d18..cf436e89fc76a827a6dcadf2e0f402ff3fa05c89 100644 GIT binary patch delta 14957 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 delta 13012 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 OXY(+6Z#MnX!3F><op71} diff --git a/po/nl.po b/po/nl.po index 735e63bc..cfbd6e36 100644 --- a/po/nl.po +++ b/po/nl.po @@ -1,20 +1,21 @@ # Dutch translations for GNU tar. -# Copyright (C) 2016 Free Software Foundation, Inc. +# Copyright (C) 2018 Free Software Foundation, Inc. # This file is distributed under the same license as the tar package. # -# “Moet men krabben waar het jeukt?” +# “Hoeperdepoep!” # -# Benno Schulenberg <benno@vertaalt.nl>, 2005, 2006, 2007, 2008, 2010, 2011, 2013, 2014, 2016. # Erwin Poeze <erwin.poeze@gmail.com>, 2009. # Elros Cyriatan <cyriatan@fastmail.fm>, 2004. -#: src/create.c:1599 +# Benno Schulenberg <vertaling@coevern.nl>, 2005, 2006, 2007, 2008, 2010, 2011, 2013, 2014, 2016, 2018. +# +#: src/create.c:1598 msgid "" msgstr "" -"Project-Id-Version: tar-1.29\n" +"Project-Id-Version: tar-1.30\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" -"PO-Revision-Date: 2016-05-20 10:15+0200\n" -"Last-Translator: Benno Schulenberg <benno@vertaalt.nl>\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" +"PO-Revision-Date: 2018-01-26 19:14+0100\n" +"Last-Translator: Benno Schulenberg <vertaling@coevern.nl>\n" "Language-Team: Dutch <vertaling@vrijschrift.org>\n" "Language: nl\n" "MIME-Version: 1.0\n" @@ -22,7 +23,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Lokalize 1.0\n" +"X-Generator: Poedit 2.0.4\n" #: gnu/argmatch.c:134 #, c-format @@ -103,7 +104,7 @@ msgid "give a short usage message" msgstr "een korte gebruikssamenvatting tonen" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "NAAM" @@ -141,29 +142,29 @@ msgid "write error" msgstr "schrijffout" #: gnu/getopt.c:278 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous\n" -msgstr "%s: optie '%s' is niet eenduidig\n" +msgstr "%s: optie '%s%s' is niet eenduidig\n" #: gnu/getopt.c:284 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" -msgstr "%s: optie '%s' is niet eenduidig; mogelijkheden zijn:" +msgstr "%s: optie '%s%s' is niet eenduidig; mogelijkheden zijn:" #: gnu/getopt.c:319 -#, fuzzy, c-format +#, c-format msgid "%s: unrecognized option '%s%s'\n" -msgstr "%s: onbekende optie '%c%s'\n" +msgstr "%s: onbekende optie '%s%s'\n" #: gnu/getopt.c:345 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" -msgstr "%s: optie '%c%s' staat geen argument toe\n" +msgstr "%s: optie '%s%s' staat geen argument toe\n" #: gnu/getopt.c:360 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' requires an argument\n" -msgstr "%s: optie '--%s' vereist een argument\n" +msgstr "%s: optie '%s%s' vereist een argument\n" #: gnu/getopt.c:621 #, c-format @@ -238,12 +239,12 @@ msgstr "^[jJyY]" msgid "^[nN]" msgstr "^[nN]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "In pakketvorm gebracht door %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "In pakketvorm gebracht door %s\n" @@ -251,12 +252,11 @@ msgstr "In pakketvorm gebracht door %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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "©" -#: gnu/version-etc.c:86 -#, fuzzy +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -269,7 +269,7 @@ msgstr "" "Dit is vrije software: u mag het vrijelijk wijzigen en verder verspreiden.\n" "De precieze licentie is GPL-3+: GNU General Public License versie 3 of " "later.\n" -"Zie http://gnu.org/licenses/gpl.html voor de volledige (Engelse) tekst.\n" +"Zie https://gnu.org/licenses/gpl.html voor de volledige (Engelse) tekst.\n" "Deze software kent GEEN GARANTIE, voor zover de wet dit toestaat.\n" "\n" @@ -408,15 +408,14 @@ msgid "%s home page: <%s>\n" msgstr "Webpagina van %s: <%s>\n" #: gnu/version-etc.c:253 -#, fuzzy, c-format +#, c-format msgid "%s home page: <https://www.gnu.org/software/%s/>\n" -msgstr "Webpagina van %s: <http://www.gnu.org/software/%s/>\n" +msgstr "Webpagina van %s: <https://www.gnu.org/software/%s/>\n" #: gnu/version-etc.c:256 -#, fuzzy msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n" msgstr "" -"Algemene hulp bij gebruik van GNU-software: <http://www.gnu.org/gethelp/>\n" +"Algemene hulp bij gebruik van GNU-software: <https://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 @@ -535,193 +534,193 @@ msgstr "Kan geen bestanden omleiden voor shell op afstand" msgid "Cannot execute remote shell" msgstr "Kan gindse shell niet uitvoeren" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Sprongrichting valt buiten bereik" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "Ongeldige sprongrichting" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "Ongeldige sprongpositie" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Sprongpositie valt buiten bereik" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "Ongeldig byte-aantal" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "Byte-aantal valt buiten bereik" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "Voortijdig einde van bestand" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "Ongeldige bewerkingscode" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "Bewerking wordt niet ondersteund" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Onverwachte argumenten" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 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:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "AANTAL" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "debug-niveau instellen" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "BESTAND" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "naam van debug-uitvoerbestand instellen" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "kan %s niet openen" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "te veel argumenten" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Ongeldige opdracht" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Dit ziet er niet uit als een tar-archief" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Totaal aantal gelezen bytes" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Totaal aantal geschreven bytes" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "Totaal aantal verwijderde bytes" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(pijp)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "" "Archiefinhoud wordt niet van terminal gelezen (ontbrekende optie '-f'?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "" "Archiefinhoud wordt niet naar terminal geschreven (ontbrekende optie '-f'?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Ongeldige waarde voor recordgrootte" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Geen archiefnaam opgegeven" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Kan archieven op standaardinvoer of -uitvoer niet verifiëren" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Archief is gecomprimeerd. Gebruik optie '%s'." -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Kan ingepakte archieven niet bijwerken" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "Aan het begin van de band -- tar sluit nu af." -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Te veel fouten -- tar sluit nu af." -#: src/buffer.c:967 +#: src/buffer.c:969 #, 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:988 +#: src/buffer.c:990 #, 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:1075 +#: src/buffer.c:1077 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:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek() is niet gestopt op een recordgrens" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: bevat een ongeldig deelnummer" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Deelnummer-overloop" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, 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:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "een lege tekst, terwijl gebruikersinvoer werd verwacht" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "WAARSCHUWING: Archief is onvolledig" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -733,65 +732,65 @@ msgstr "" " q tar afbreken\n" " y of Enter doorgaan\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! een subshell starten\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? dit lijstje tonen\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Geen nieuw deel -- tar sluit af.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "Geen bestandsnaam opgegeven. Probeer het nog eens.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Ongeldige invoer. Typ ? voor hulp.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "Opdracht %s is mislukt" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s gaat niet verder in dit deel" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, 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:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s heeft een verkeerde grootte (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, 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:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "Archief bevat geen label, kan niet overeenkomen met %s" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "Deel %s komt niet overeen met %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -799,211 +798,211 @@ msgstr "" "%s: bestandsnaam is te lang om opgeslagen te worden in een GNU-meerdelenkop; " "afgekapt" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "schrijven is niet gestopt op een recordgrens" -#: src/compare.c:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Inhouden verschillen" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Onverwacht einde-van-bestand in archief" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Bestandssoort verschilt" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Modus verschilt" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "UID verschilt" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "GID verschilt" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Wijzigingstijd verschilt" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Grootte verschilt" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Niet gekoppeld aan %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Symbolische koppeling verschilt" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Apparaatnummer verschilt" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Verifiëren " -#: src/compare.c:480 +#: src/compare.c:479 #, c-format msgid "%s: Unknown file type '%c', diffed as normal file" msgstr "%s: Onbekende bestandssoort '%c'; gedifft als gewoon bestand" -#: src/compare.c:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "Archief bevat bestandsnamen waarvan de prefixen verwijderd zijn." -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "Archief bevat getransformeerde bestandsnamen." -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "Een verificatie kan mogelijk de originele bestanden niet vinden." -#: src/compare.c:620 +#: src/compare.c:619 #, 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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "Een los blok met nullen op %s" -#: src/create.c:74 +#: 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:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Er worden negatieve octale koppen gemaakt" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, 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:616 +#: src/create.c:615 #, 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:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: koppelingsnaam is te lang; niet gearchiveerd" -#: src/create.c:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, 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:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "inhoud niet gearchiveerd" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Onbekende bestandssoort; bestand genegeerd" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "Ontbrekende koppelingen naar %s." -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: bestand is ongewijzigd; niet gearchiveerd" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: bestand is het archief zelf; niet gearchiveerd" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "map is niet gearchiveerd" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: bestand is gewijzigd tijdens het lezen" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: socket genegeerd" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: deur genegeerd" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Alles tot aan volgende kop wordt overgeslagen" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Niet-kop wordt uit archief verwijderd" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: onwaarschijnlijk oud tijdsstempel %s" -#: src/extract.c:320 +#: src/extract.c:319 #, 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:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Onverwachte inconsistentie tijdens aanmaken van map" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: bestaand bestand wordt overgeslagen" @@ -1027,7 +1026,7 @@ msgstr "" 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:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Onverwachte langenaamkop" @@ -1044,7 +1043,7 @@ msgstr "Huidige %s is nieuwer of even oud" #: src/extract.c:1664 #, c-format msgid "%s: Member name contains '..'" -msgstr "" +msgstr "%s: Lidnaam bevat '..'" #: src/extract.c:1696 #, c-format @@ -1056,22 +1055,22 @@ msgstr "%s: Kan geen reservekopie van dit bestand maken" msgid "Cannot rename %s to %s" msgstr "Kan %s niet tot %s hernoemen" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Map is hernoemd van %s" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: Map is nieuw" -#: src/incremen.c:566 +#: src/incremen.c:565 #, 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 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Map is hernoemd" @@ -1199,35 +1198,35 @@ msgstr "%s: Verwijderen van %s...\n" msgid "%s: Cannot remove" msgstr "%s: Kan niet verwijderen" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: Overgeslagen" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blok %s: ** Blok van NUL-tekens **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "blok %s: ** Einde-van-bestand **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "blok %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1235,162 +1234,161 @@ msgstr "" "aangenomen" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, 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:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "Archief bevat ouderwetse grondtal-64 koppen" -#: src/list.c:852 +#: src/list.c:853 #, 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:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, 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:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " koppeling naar %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " onbekende bestandssoort %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Lange koppeling--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Lange naam--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Deelkop--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Verder bij byte %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Aanmaken van map:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "Hernoemen van %s naar %s...\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "Kan %s niet naar %s hernoemen" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "Hernoemen van %s terug naar %s...\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: Bestand werd verwijderd voordat het gelezen kon worden" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "dochterproces" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "interproces-kanaal" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "Lokale bestandsnaamkeuze:" -#: src/names.c:72 +#: src/names.c:71 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/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "MAP" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "naar MAP gaan" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "namen van in of uit te pakken bestanden uit BESTAND halen" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "" "'-T' leest met NUL afgesloten namen; impliceert '--verbatim-files-from'" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "het resultaat van de vorige '--null'-optie ongedaan maken" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "" "aanhalingstekens verwijderen rond invoerbestand of lidnamen (standaard)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "geen aanhalingstekens verwijderen rond invoerbestand of lidnamen" -#: src/names.c:87 -#, fuzzy +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" -msgstr "'-T' leest bestandsnamen verbatim (ziet geen opties)" +msgstr "'-T' leest bestandsnamen verbatim (ziet geen opties noch escapes)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "" "'-T' ziet bestandsnamen die beginnen met een streepje als opties (standaard)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "PATROON" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "bestanden uitsluiten, gegeven als een PATROON" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "uitsluitingspatronen staan opgesomd in BESTAND" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1398,24 +1396,24 @@ msgstr "" "inhoud van mappen die CACHEDIR.TAG bevatten uitsluiten, behalve CACHEDIR.TAG " "zelf" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "alles onder mappen die CACHEDIR.TAG bevatten uitsluiten" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "mappen die CACHEDIR.TAG bevatten uitsluiten" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" "inhoud van mappen die BESTAND bevatten uitsluiten, behalve BESTAND zelf" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "uitsluitingspatronen voor mappen uit BESTAND lezen, als deze bestaat" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" @@ -1423,117 +1421,121 @@ msgstr "" "uitsluitingspatronen voor mappen en submappen uit BESTAND lezen, als deze " "bestaat" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "alles onder mappen die BESTAND bevatten uitsluiten" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "mappen die BESTAND bevatten uitsluiten" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "systeemmappen van versiebeheer uitsluiten" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "uitsluitingspatronen uit VCS-ignore-bestanden lezen" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "reservekopieën en vergrendelingsbestanden uitsluiten" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "recursief in mappen afdalen (standaard)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "niet automatisch afdalen in mappen" -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "Bestandsnaamselectie-opties (voor zowel in- als uitsluitingspatronen):" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "patronen komen overeen met begin van bestandsnaam" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "" "patronen komen overeen met alles na een '/' (is standaard bij uitsluiting)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "verschil tussen hoofd- en kleine letters negeren" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "hoofdlettergevoelige vergelijking (standaard)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "jokertekens gebruiken (is standaard bij uitsluiting)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "exacte tekenreeksvergelijking" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "jokertekens komen overeen met '/' (is standaard bij uitsluiting)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "jokertekens komen niet overeen met '/'" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" +"De volgende opties werden gebruikt na non-optie argumenten in aanmaak- of " +"bijwerkingsmodus. Deze opties zijn positie-afhankelijk en hebben alleen " +"invloed op de nakomende argumenten. Herschik de opties voor het gewenste " +"effect." -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" -msgstr "" +msgstr "-C %s heeft geen effect" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" -msgstr "" +msgstr "--%s %s heeft geen effect" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" -msgstr "" +msgstr "--%s heeft geen effect" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "opdrachtregel" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: verzochte bestandenlijst uit %s is al gelezen uit %s" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "kan tekenreeks '%s' niet splitsen: %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: gelezen bestandsnaam bevat een NUL-teken" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "Bestandsnamen bevatten jokertekens." -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1541,46 +1543,46 @@ msgstr "" "Gebruik '--wildcards' om patroonovereenkomsten in te schakelen,\n" "of '--no-wildcards' om deze waarschuwing te onderdrukken." -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: Komt niet voor in archief" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Is vereist maar komt niet voor in archief" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "Archieflabel komt niet overeen" -#: src/names.c:1717 +#: src/names.c:1747 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:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "Met '--listed-incremental' is slechts één '-C' toegestaan" -#: src/tar.c:88 +#: src/tar.c:87 #, c-format msgid "Options '%s' and '%s' both want standard input" msgstr "Opties '%s' en '%s' willen beide standaardinvoer gebruiken" -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Ongeldige archiefindeling" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "GNU-functies gevraagd bij een incompatibele archiefindeling" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1807,7 +1809,7 @@ msgstr "Selecteren van uitvoerkanaal:" msgid "extract files to standard output" msgstr "bestanden uitpakken naar standaarduitvoer" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "OPDRACHT" @@ -1844,7 +1846,7 @@ msgstr "UID's en gebruikersnamen uit BESTAND halen" msgid "use FILE to map file owner GIDs and names" msgstr "GID's en groepsnamen uit BESTAND halen" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "DATUM-OF-BESTAND" @@ -2059,7 +2061,7 @@ msgstr "doorgaan met lezen tot blok compleet is (voor 4.2BSD-pijpen)" msgid "Archive format selection:" msgstr "Archiefindelingskeuze:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "INDELING" @@ -2143,62 +2145,62 @@ msgstr "PROGRAMMA" msgid "filter through PROG (must accept -d)" msgstr "het archief door dit programma filteren (moet '-d' accepteren)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Lokale bestandskeuze:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "in het lokale bestandssysteem blijven bij maken van archief" -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "leidende '/' niet uit bestandsnamen verwijderen" -#: src/tar.c:695 +#: src/tar.c:696 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:697 +#: src/tar.c:698 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:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "LIDNAAM" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "beginnen bij lid LIDNAAM tijdens lezen van het archief" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "alleen bestanden opslaan die nieuwer zijn dan DATUM-OF-BESTAND" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "DATUM" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "datum en tijd alleen vergelijken wanneer gegevens veranderd zijn" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "MANIER" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "voor verwijdering een reservekopie maken, op de aangegeven MANIER" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "TEKENREEKS" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2207,61 +2209,61 @@ msgstr "" "(in plaats van '~', die standaard is tenzij door omgevingsvariable " "SIMPLE_BACKUP_SUFFIX veranderd)" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Bestandsnaam-transformaties:" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "dit AANTAL leidende componenten uit bestandsnamen verwijderen" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "EXPRESSIE" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "" "deze vervangings-EXPRESSIE gebruiken om bestandsnamen met 'sed' te " "transformeren" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Informatieve uitvoer:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "de verwerkte bestanden opsommen" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "SLEUTELWOORD" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "waarschuwingsbeleid" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "voortgangsberichten tonen voor elk AANTALste record (standaard 10)" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "ACTIE" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "bij elk controlepunt deze ACTIE uitvoeren" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "een bericht tonen als niet alle links gearchiveerd werden" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "SIGNAAL" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2273,35 +2275,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:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "bestandswijzigingstijden in UTC tonen" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "bestandstijden in volledige resolutie tonen" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "gedetailleerde uitvoer naar BESTAND sturen" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "bloknummer binnen archief tonen bij elk bericht" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "bij elke actie om toestemming vragen" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "standaardinstellingen van 'tar' tonen" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "geldige bereiken tonen voor snapshot-velden" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2309,33 +2311,33 @@ msgstr "" "bij opsommen of uitpakken: elke map opsommen die niet aan zoekcriteria " "voldoet" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "bestands- of archiefnamen na transformatie tonen" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "STIJL" -#: src/tar.c:765 +#: src/tar.c:766 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:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "ook de tekens in TEKENREEKS aanhalen" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "de tekens in TEKENREEKS niet aanhalen" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Compatibiliteitsopties:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2343,23 +2345,23 @@ msgstr "" "bij aanmaken hetzelfde als --old-archive; bij uitpakken hetzelfde als --no-" "same-owner" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Andere opties:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "" "het gebruik van potentieel gevaarlijke opties of opdrachten uitschakelen" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "optie '%s' gaat niet samen met '%s'" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" @@ -2367,40 +2369,40 @@ msgstr "" "Slechts één van de opties '-Acdtrux', '--delete', of '--test-label' is " "mogelijk" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Conflicterende compressie-opties" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Onbekende signaalnaam: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "Voorbeeldbestand voor tijdsstempel niet gevonden" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Onbekende datumopmaak %2$s wordt vervangen door %1$s" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "Optie %s: datum '%s' wordt begrepen als %s" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "het archief door '%s' filteren" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "Geldige argumenten van de optie '--quoting-style' zijn:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2408,163 +2410,163 @@ msgstr "" "\n" "*Deze* tar gebruikt de volgende standaardwaarden:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "Ongeldige eigenaar of groeps-ID" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Ongeldige blokkenfactor" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Ongeldige bandlengte" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "Onjuiste waarde van incrementeel niveau" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Meerdere drempeldata" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "Ongeldig versienummer voor luchtige indeling" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve='system' is op dit platform niet mogelijk" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "Waarde van '--checkpoint' is geen geheel getal" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Ongeldige modus gegeven bij optie" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Ongeldig nummer" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Ongeldige recordgrootte" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "Recordgrootte moet een veelvoud zijn van %d." -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Ongeldig aantal elementen" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "Slechts één optie '--to-command' is toegestaan" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Ongeldig dichtheidsargument: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Onbekende dichtheid: '%c'" -#: src/tar.c:2066 +#: src/tar.c:2075 #, 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:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: locatie van de fout" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "fout bij ontleden van %s" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[BESTAND]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "non-optie argumenten in %s" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "kan TAR_OPTIONS niet splitsen: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "Oude optie '%c' vereist een argument." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "Optie '--occurrence' betekent niets zonder een bestandenlijst" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "Voor meerdere archiefbestanden is de optie '-M' vereist" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "Optie '--level' is betekenisloos zonder '--listed-incremental'" -#: src/tar.c:2424 +#: 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Kan meerdelige archieven niet verifiëren" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Kan ingepakte archieven niet verifiëren" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Kan geen meerdelige ingepakte archieven verwerken" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Kan ingepakte archieven niet samenvoegen" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "Optie '--clamp-mtime' vereist een datum opgegeven via '--mtime'" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "Optie '--pax' kan alleen worden gebruikt bij POSIX-archieven" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "Optie '--acls' kan alleen worden gebruikt bij POSIX-archieven" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "Optie '--selinux' kan alleen worden gebruikt bij POSIX-archieven" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "Optie '--xattrs' kan alleen worden gebruikt bij POSIX-archieven" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2572,83 +2574,92 @@ msgstr "" "Kan naam van topmap niet achterhalen; zet deze expliciet met '--one-top-" "level=MAP'" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "Deellengte kan niet kleiner zijn dan de recordgrootte" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Een compleet leeg archief wordt niet aangemaakt" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Opties '-Aru' gaan niet samen met '-f -'" -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "" "U dient een van de opties '-Acdtrux', '--delete', of '--test-label' op te " "geven" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "Gestopt in fouttoestand vanwege eerdere fouten" -#: src/update.c:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Bestand is gekrompen met %s byte" msgstr[1] "%s: Bestand is gekrompen met %s bytes" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "Patroon %s kan niet worden gebruikt" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Sleutelwoord %s kan niet worden overstegen" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "Onjuiste uitgebreide kop: ontbrekende lengte" -#: src/xheader.c:677 +#: src/xheader.c:695 #, c-format msgid "Extended header length %*s is out of range" msgstr "Lengte %*s van uitgebreide kop valt buiten bereik" -#: src/xheader.c:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "Onjuiste uitgebreide kop: ontbrekende witruimte na de lengte" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "Onjuiste uitgebreide kop: ontbrekend isgelijkteken" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "Onjuiste uitgebreide kop: ontbrekend regeleinde" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "Genegeerd: onbekend sleutelwoord '%s' in uitgebreide kop" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" @@ -2657,47 +2668,47 @@ msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:1053 +#: src/xheader.c:1071 #, 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:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Onjuiste uitgebreide kop: ongeldige %s=%s" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Onjuiste uitgebreide kop: overtollige %s=%s" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "Onjuiste uitgebreide kop: ongeldige %s: onverwacht scheidingsteken %c" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "Onjuiste uitgebreide kop: ongeldige %s: oneven aantal waarden" -#: src/checkpoint.c:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s: ongeldige tijdswaarde" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: onbekende actie voor controlepunt" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "schrijven" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "lezen" @@ -2705,7 +2716,7 @@ msgstr "lezen" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Schrijfcontrolepunt %u" @@ -2714,12 +2725,12 @@ msgstr "Schrijfcontrolepunt %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Leescontrolepunt %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2728,99 +2739,103 @@ msgstr "" "paxutils.\n" "OPTIES zijn:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Bestandsaanmaak-opties:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "GROOTTE" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "een bestand van de gegeven GROOTTE aanmaken" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "naar het bestand NAAM schrijven i.p.v. naar standaarduitvoer" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "bestandsnamen uit BESTAND lezen" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T leest met NUL afgesloten namen" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "het bestand met het gegeven PATROON vullen; PATROON is 'default' (standaard) " "of 'zeros' (nullen)" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "blokgrootte voor luchtig bestand" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "luchtig bestand genereren; de rest van de opdrachtregel specificeert de " "indeling" -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "POSITIE" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "naar deze positie springen alvorens met schrijven te beginnen" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "niet-fatale foutmeldingen onderdrukken" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Bestandsstatistieken-opties:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "voor elk gegeven bestand de inhoud van de struct 'stat' printen; de " "standaard INDELING is: " -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Synchrone-uitvoer-opties:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "OPTIE" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "gegeven ARGUMENTEN uitvoeren; dit is nuttig bij '--checkpoint' samen met één " "van '--cut', '--append', '--touch', of '--unlink'" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" "de gegeven actie uitvoeren (zie verderop) bij bereiken van het AANTALste " "controlepunt" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "de datum voor de volgende '--touch'" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "de uitgevoerde controlepunten en de afsluitwaarde van OPDRACHT tonen" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2828,7 +2843,7 @@ msgstr "" "Synchroon uit te voeren acties. Deze worden uitgevoerd bij het bereiken van " "het controlepunt opgegeven met de optie '--checkpoint'." -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2836,129 +2851,129 @@ msgstr "" "BESTAND afkappen tot de grootte opgegeven met een voorafgaande optie '--" "length' (of 0 als niet gegeven)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "BESTAND met GROOTTE aantal bytes vergroten; deze GROOTTE is met een " "voorafgaande optie '--length' opgegeven" -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "de toegangs- en wijzigingstijdsstempels van BESTAND bijwerken" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "OPDRACHT uitvoeren" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" -msgstr "" +msgstr "BESTAND verwijderen" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Ongeldige grootte: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Getal valt buiten toegestaan bereik: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Negatieve grootte: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" -msgstr "Kan status van %s niet bepalen" +msgstr "kan status van %s niet bepalen" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "gevraagde bestandslengte is %lu, werkelijke is %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "aangemaakt bestand is niet luchtig" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "Fout tijdens getalsontleding, nabij '%s'" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Onbekende datumopmaak" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ARGUMENTEN]..." -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" -msgstr "Kan '%s' niet openen" +msgstr "kan '%s' niet openen" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" -msgstr "Kan niet springen" +msgstr "kan niet springen" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" -msgstr "Bestandsnaam bevat een NUL-teken" +msgstr "bestandsnaam bevat een NUL-teken" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" -"Kan geen luchtige bestanden genereren op standaarduitvoer; gebruik de optie " +"kan geen luchtige bestanden genereren op standaarduitvoer; gebruik de optie " "'--file'" -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" -msgstr "Onjuist masker (nabij '%s')" +msgstr "onjuist masker (nabij '%s')" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "Onbekend veld '%s'" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" -msgstr "Kan tijdsstempel van '%s' niet zetten" +msgstr "kan tijdsstempel van '%s' niet zetten" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" -msgstr "Kan '%s' niet afkappen" +msgstr "kan '%s' niet afkappen" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" -msgstr "Opdracht %s is mislukt" +msgstr "opdracht %s is mislukt" -#: tests/genfile.c:781 -#, fuzzy, c-format +#: tests/genfile.c:772 +#, c-format msgid "cannot stat `%s'" -msgstr "Kan '%s' niet afkappen" +msgstr "kan status van '%s' niet opvragen" -#: tests/genfile.c:785 -#, fuzzy, c-format +#: tests/genfile.c:776 +#, c-format msgid "cannot remove directory `%s'" -msgstr "Kan tijdsstempel van '%s' niet zetten" +msgstr "kan map '%s' niet verwijderen" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" -msgstr "Kan '%s' niet verwijderen" +msgstr "kan '%s' niet verwijderen" #: tests/genfile.c:918 #, c-format @@ -2995,6 +3010,9 @@ msgstr "Opdracht is afgebroken\n" msgid "--stat requires file names" msgstr "Optie '--stat' vereist bestandsnamen" +#~ msgid "OPTION" +#~ msgstr "OPTIE" + #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: Parameter in ARGP_HELP_FMT moet positief zijn" diff --git a/po/pl.gmo b/po/pl.gmo index 0a4211216a4d7592fe5126f49053dff8c4d6ce98..27acc84c37a66ecf6642e949518dc0ee6d1a851f 100644 GIT binary patch delta 15036 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 AZ2$lO delta 12936 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 diff --git a/po/pl.po b/po/pl.po index 4269e79d..c992ec8f 100644 --- a/po/pl.po +++ b/po/pl.po @@ -5,13 +5,13 @@ # Thanks to: Jakub Bogusz for remarks and corrections, 2003, 2004, 2007, 2008, 2010, # Jan Psota for corrections, 2017. # -#: src/create.c:1599 +#: src/create.c:1598 msgid "" msgstr "" -"Project-Id-Version: tar 1.29\n" +"Project-Id-Version: tar 1.30\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" -"PO-Revision-Date: 2017-07-03 03:30+0200\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" +"PO-Revision-Date: 2017-12-19 20:10+0100\n" "Last-Translator: Rafał Maszkowski <rzm@icm.edu.pl>\n" "Language-Team: Polish <translation-team-pl@lists.sourceforge.net>\n" "Language: pl\n" @@ -99,7 +99,7 @@ msgid "give a short usage message" msgstr "krótka informacja o opcjach" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "NAZWA" @@ -137,29 +137,29 @@ msgid "write error" msgstr "błąd zapisu" #: gnu/getopt.c:278 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous\n" -msgstr "%s: opcja „%s” jest niejednoznaczna\n" +msgstr "%s: opcja „%s%s” jest niejednoznaczna\n" #: gnu/getopt.c:284 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" -msgstr "%s: opcja „%s” jest niejednoznaczna; możliwości:" +msgstr "%s: opcja „%s%s” jest niejednoznaczna; możliwości:" #: gnu/getopt.c:319 -#, fuzzy, c-format +#, c-format msgid "%s: unrecognized option '%s%s'\n" -msgstr "%s: nierozpoznana opcja „%c%s”\n" +msgstr "%s: nierozpoznana opcja „%s%s”\n" #: gnu/getopt.c:345 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" -msgstr "%s: opcja „%c%s” nie może mieć argumentu\n" +msgstr "%s: opcja „%s%s” nie może mieć argumentu\n" #: gnu/getopt.c:360 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' requires an argument\n" -msgstr "%s: opcja „--%s” wymaga argumentu\n" +msgstr "%s: opcja „%s%s” wymaga argumentu\n" #: gnu/getopt.c:621 #, c-format @@ -234,12 +234,12 @@ msgstr "^[TtYy].*" msgid "^[nN]" msgstr "^[nN].*" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Pakowane przez %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Pakowane przez %s\n" @@ -247,12 +247,11 @@ msgstr "Pakowane przez %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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "©" -#: gnu/version-etc.c:86 -#, fuzzy +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -262,7 +261,7 @@ msgid "" "\n" msgstr "" "\n" -"Licencja GPLv3+: GNU GPL wersja 3 albo późniejsza http://gnu.org/licenses/" +"Licencja GPLv3+: GNU GPL wersja 3 albo późniejsza https://gnu.org/licenses/" "gpl.html\n" "To jest wolne oprogramowanie: możesz je modyfikować i rozpowszechniać.\n" "Autorzy NIE DAJĄ GWARANCJI w granicach dozwolonych prawem.\n" @@ -401,15 +400,14 @@ msgid "%s home page: <%s>\n" msgstr "Strona domowa %s: %s\n" #: gnu/version-etc.c:253 -#, fuzzy, c-format +#, c-format msgid "%s home page: <https://www.gnu.org/software/%s/>\n" -msgstr "Strona domowa %s: http://www.gnu.org/software/%s/\n" +msgstr "Strona domowa %s: https://www.gnu.org/software/%s/\n" #: gnu/version-etc.c:256 -#, fuzzy msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n" msgstr "" -"Informacje o używaniu oprogramowania GNU: http://www.gnu.org/gethelp/\n" +"Informacje o używaniu oprogramowania GNU: https://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 @@ -533,146 +531,146 @@ msgstr "Nie można przekierować plików do zdalnej powłoki" msgid "Cannot execute remote shell" msgstr "Nie można uruchomić zdalnej powłoki" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Sposób ustawiania pozycji w pliku spoza zakresu" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "Błędny kierunek przesuwania wskaźnika pozycji" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "Błędne przesunięcie wskaźnika pozycji" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Pozycja w pliku poza zakresem" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "Błędna liczba bajtów" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "Liczba bajtów poza zakresem" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "Przedwczesny EOF" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "Błędny kod operacji" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "Operacja nie przewidziana" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Nieoczekiwany argumenty" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 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:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "LICZBA" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "ustawienie poziomu wypisywania informacji diagnostycznych" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "PLIK" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "plik do zapisywania informacji diagnostycznych" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" -msgstr "nie można otworzyć %s" +msgstr "nie udało się otworzyć %s" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "za dużo argumentów" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Bezsensowna komenda" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "To nie wygląda jak archiwum tar" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Liczba przeczytanych bajtów" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Licza zapisanych bajtów" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "Liczba skasowanych bajtów" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(pipe)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "Odmowa czytania zawartości archiwumn z terminala (brakująca opcja -f?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "Odmowa pisania zawartości archiwumn do terminala (brakująca opcja -f?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Błędna wartość record_size" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Nie podana nazwa archiwum" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Nie można zweryfikować archiwum z/do stdin/stdout" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Archiwum jest skompresowane. Należy użyć opcji %s" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Nie można uaktualnić archiwum skompresowanego" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "Na początku taśmy, teraz kończę" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Za dużo błędów, kończę" -#: src/buffer.c:967 +#: src/buffer.c:969 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" @@ -680,7 +678,7 @@ msgstr[0] "Rozmiar rekordu = %lu blok" msgstr[1] "Rozmiar rekordu = %lu bloki" msgstr[2] "Rozmiar rekordu = %lu bloków" -#: src/buffer.c:988 +#: src/buffer.c:990 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" @@ -688,38 +686,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:1075 +#: src/buffer.c:1077 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:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek nie zatrzymał się na granicy rekordów" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: zawiera błędny numer części" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Przepełnienie numeru części" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, 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:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "EOF kiedy była oczekiwana odpowiedź użytkownika" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 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:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -730,68 +728,68 @@ msgstr "" " q Zakończenie programu tar\n" " y albo Enter Kontynuacja\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Uruchomienie powłoki\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? Wypisanie tej listy\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Brak nowej części; zakończenie pracy.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "Brak nazwy pliku. Spróbuj jeszcze raz.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, 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:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "%s polecenie zwróciło błąd" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s nie jest kontynuowany w tej części" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, 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:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s to zły rozmiar (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, 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:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "Etykieta archiwum nie pasuje do %s" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "Część %s nie pasuje do %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -799,11 +797,11 @@ msgstr "" "%s: nazwa pliku jest za długa do zapisania w nagłówku wieloczęściowego " "archiwum GNU, zostanie skrócona" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "zapis nie zakończył się na granicy bloków" -#: src/compare.c:98 +#: src/compare.c:97 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" @@ -811,75 +809,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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Zawartości się różnią" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Nieoczekiwany EOF w archiwum" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Różne typy plików" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Uprawnienia się różnią" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Uid się różni" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "Gid się różni" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Czas modyfikacji się różni" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Rozmiar się różni" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Nie dołączony do %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Łącze symboliczne się różni" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Różnią się numery urządzeń" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Sprawdzanie " -#: src/compare.c:480 +#: src/compare.c:479 #, 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:535 +#: src/compare.c:534 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:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "Archiwum zawiera zmienione nazwy plików." -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "Podczas weryfikacji mogą nie być znalezione pliki lokalne" -#: src/compare.c:620 +#: src/compare.c:619 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" @@ -887,48 +885,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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "Samotny blok zerowy przy %s" -#: src/create.c:74 +#: 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:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Tworzenie ujemnych nagłówków ósemkowych" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, 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:616 +#: src/create.c:615 #, 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:643 +#: src/create.c:642 #, 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:1106 +#: src/create.c:1105 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" @@ -936,78 +934,78 @@ 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:1204 +#: src/create.c:1203 #, 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:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "zawartość nie została zapisana" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Nieznany typ pliku; plik zignorowany" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "Brakujące łącza do %s." -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: plik jest niezmieniony; nie został zapisany" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: plik jest w tym archiwum; nie został zapisany" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "katalog nie został zapisany" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: plik zmienił się w trakcie czytania" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: zignorowane gniazdo z nazwą" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: zignorowany plik door" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Przeskoczenie do następnego nagłówka" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Kasowanie z archiwum nie-nagłówka" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: niemożliwie stara data %s" -#: src/extract.c:320 +#: src/extract.c:319 #, 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:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Nieoczekiwana niespójność przy zakładaniu katalogu" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: pominięcie istniejącego pliku" @@ -1030,7 +1028,7 @@ msgstr "Próba odtworzenia łącza symbolicznego jako zwykłego" 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:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Niespodziewany nagłówek z długą nazwą" @@ -1047,7 +1045,7 @@ msgstr "Aktualny %s jest nowszy albo w tym samym wieku" #: src/extract.c:1664 #, c-format msgid "%s: Member name contains '..'" -msgstr "" +msgstr "%s: nazwa elementu zawiera „..”" #: src/extract.c:1696 #, c-format @@ -1059,22 +1057,22 @@ msgstr "%s: Nie można było zrobić kopii zapasowej tego pliku" msgid "Cannot rename %s to %s" msgstr "Nie można przemianować %s na %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Nazwa katalogu została zmieniona z %s" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: Katalog jest nowy" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "%s: katalog w innym systemie plików; nie został zapisany" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Nazwa katalogu została zmieniona" @@ -1200,35 +1198,35 @@ msgstr "%s: Usunięcie %s\n" msgid "%s: Cannot remove" msgstr "%s: Nie można usunąć" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: Pominięty" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blok %s: ** Blok zer **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "blok: %s: ** Koniec pliku **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "blok %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1236,164 +1234,165 @@ msgstr "" "jak uzupełnienie dwójkowe" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, 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:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "Archiwum zawiera przestarzałe nagłówki base64" -#: src/list.c:852 +#: src/list.c:853 #, 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:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, 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:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " łącze do %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " nieznany typ pliku %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Długie łącze--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Długa nazwa--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Nagłówek części--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Kontynuacja od bajtu %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Tworzony jest katalog:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "Nazwa %s zmieniona na %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Nie można przemianować na %s" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "Nazwa zmieniona z %s z powrotem na %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: Plik usunięty zanim został przeczytany" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "proces potomny" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "kanał między procesami" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "Wybór lokalnej nazwy pliku:" -#: src/names.c:72 +#: src/names.c:71 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/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "KATALOG" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "przejście do KATALOGU" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "nazwy plików do rozpakowania lub spakowania z PLIKU" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "-T czyta nazwy zakończone zerem, włącza --verbatim-files-from" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "wyłączenie efektu użycia opcji --null" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "" "usunięcie znaków cytowania z nazwy pliku wejściowego lub plików w archiwum " "(domyślnie)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "" "bez usuwania znaków cytowania z nazwy pliku wejściowego lub plików w archiwum" -#: src/names.c:87 -#, fuzzy +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" -msgstr "z opcją -T - czytanie nazw plików dosłownie (bez uwzględniania opcji)" +msgstr "" +"z opcją -T - czytanie nazw plików dosłownie (bez uwzględniania sekwencji " +"sterujących ani opcji)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "" "z opcją -T - traktowanie nazw plików zaczynających się od myślnika jako " "opcji (domyślnie)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "WZORZEC" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "wykluczenie nazw pasujących do WZORCA" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "wykluczenie nazw pasujących do wzorców w PLIKU" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1401,24 +1400,24 @@ msgstr "" "wykluczenie katalogów zawierających znacznik pamięci podręcznej CACHEDIR." "TAG, oprócz samych plików znacznika" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "wykluczenie katalogów zawierających CACHEDIR.TAG i ich podkatalogów" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "wykluczenie katalogów zawierających CACHEDIR.TAG" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "wykluczenie katalogów zawierających PLIK, ale nie samego PLIKU" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "" "czytanie wzorców pomijania dla każdego katalogu z PLIKU, jeżeli istnieje" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" @@ -1426,120 +1425,123 @@ msgstr "" "czytanie wzorców pomijania dla każdego katalogu i jego podkatalogów z PLIKU, " "jeżeli istnieje" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "wykluczenie katalogów zawierających PLIK i ich podkatalogów" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "wykluczenie katalogów zawierających PLIK" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "wykluczenie katalogów systemu administrowania wersjami" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "" "czytanie wzorców pomijania z analogicznych plików systemów zarządzania " "wersjami (VCS)" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "wykluczenie plików kopii zapasowych i rezerwacji zasobów" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "zagłębianie się w podkatalogi (domyślnie)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "bez automatycznego zagłębiania się w katalogi" -#: src/names.c:130 +#: src/names.c:129 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/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "nazwy porównywane od początków nazw plików" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "wzorce odnoszą się do nazw po każdym „/” (domyślnie)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "traktowanie tak samo małych i wielkich liter" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "odróżnianie małych i wielkich liter (domyślnie)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "używanie wildcards (domyślnie dla wykluczania)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "dosłowne porównywanie napisów" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "wildcards są porównywane z „/” (domyślnie dla wykluczania)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "wildcards nie są porównywane z „/”" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" +"Następujące opcje zostały użyte po nieopcjonalnych argumentach w trybie " +"tworzenia albo aktualizacji archiwum. Te opcje wpływają tylko na argumenty, " +"które następują po nich. Proszę je odpowiednio uporządkować." -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" -msgstr "" +msgstr "opcja -C %s nie odniosła skutku" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" -msgstr "" +msgstr "opcja --%s %s nie odniosła skutku" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" -msgstr "" +msgstr "opcja --%s nie odniosła skutku" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "linia polecenia" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: lista plików żądana z %s już przeczytana z %s" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "nie można podzielić napisu „%s”: %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: przeczytana nazwa pliku zawiera znak NUL" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "W nazwach plików użyto znaków dopasowania wzorców" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1547,47 +1549,47 @@ msgstr "" "Użyj --wildcards aby włączyć porównywanie wzorców albo --no-wildcards żeby " "wyłączyć to ostrzeżenie" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: Nie znalazłem w archiwum" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Brak podanego wystąpienia pliku w archiwum" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "Nie pasująca etykieta archiwum" -#: src/names.c:1717 +#: src/names.c:1747 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:1723 +#: src/names.c:1753 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:88 +#: src/tar.c:87 #, 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:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Błędny format archiwum" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "Próba użycia rozszerzeń GNU z niekompatybilnym formatem archiwum" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1812,7 +1814,7 @@ msgstr "Wybór strumienia wyjściowego" msgid "extract files to standard output" msgstr "rozpakowanie plików na standardowe wyjście" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "POLECENIE" @@ -1850,7 +1852,7 @@ msgid "use FILE to map file owner GIDs and names" msgstr "" "użycie PLIKU do konwersji identyfikatorów i nazw grup właścicieli plików" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "DATA_ALBO_PLIK" @@ -2068,7 +2070,7 @@ msgstr "podzielenie na bloki przy odczycie (dla pipe 4.2BSD)" msgid "Archive format selection:" msgstr "Wybór formatu archiwum:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "FORMAT" @@ -2153,59 +2155,59 @@ msgstr "PROGRAM" msgid "filter through PROG (must accept -d)" msgstr "filtrowanie przez PROGRAM (akceptujący -d)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Wybór plików lokalnych:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "pozostanie w jednym systemie plików" -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "bez usuwania początkowego „/” z nazw plików" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" msgstr "archiwizacja plików, na które wskazują łącza symboliczne" -#: src/tar.c:697 +#: src/tar.c:698 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:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "NAZWA-PLIKU" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "zaczęcie od pliku NAZWA-PLIKU w czasie czytania archiwum" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "zapisanie tylko plików nowszych niż DATA albo data PLIKU" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "DATA" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "porównywanie daty i czasu tylko dla zmienionych danych" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "TRYB" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "kopia zapasowa przed usunięciem, wybranie TRYBU zarządzania wersjami" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "NAPIS" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2213,62 +2215,62 @@ msgstr "" "kopia zapasowa przed usunięciem, zmiana domyślnego przyrostka („~”, jeżeli " "nie zmieniony przez zmienną środowiska SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Zmiany nazwy plików:" -#: src/tar.c:715 +#: src/tar.c:716 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:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "WYRAŻENIE" -#: src/tar.c:718 +#: src/tar.c:719 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:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Informacje:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "wypisywanie szczegółów o przetwarzanych plikach" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "SŁOWO KLUCZOWE" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "sterowanie ostrzeżeniami" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" "wypisywanie co ILE rekordów informacji o przetwarzaniu (domyslnie co 10)" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "AKCJA" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "wykonanie AKCJI przy każdym punkcie kontrolnym" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "wypisanie komunikatu jeżeli nie wszytkie łącza zostały zapisane" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "SYGNAŁ" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2280,35 +2282,35 @@ msgstr "" "sygnały: SIGHUP, SIGQUIT, SIGINT, SIGUSR1 i SIGUSR2; nazwy bez prefiksu SIG " "są też akceptowane" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "wypisanie czasów modyfikacji plików w UTC" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "wypisanie czasu pliku z pełną dokładnością" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "zapisanie dokładnych informacji w PLIKU" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "pokazanie przy każdym komunikacie numeru bloku w archiwum" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "proszenie o potwierdzenie każdego działania" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "wypisanie domyślnych ustawień tar-a" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "pokazanie zakresów dozwolonych wartości pól danych kopii przyrostowej" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2316,33 +2318,33 @@ msgstr "" "wypisywanie każdego katalogu nie pasującego do kryteriów szukania przy " "wypisywaniu albo rozpakowywaniu archiwum" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "pokazanie nazw plików albo archiwów po przeszktałceniu" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "STYL" -#: src/tar.c:765 +#: src/tar.c:766 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:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "dodatkowe ujmowanie w znaki cytowania znaków z ŁAŃCUCHA" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "wyłączenie ujmowania w znaki cytowania znaków z ŁAŃCUCHA" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Opcje kompatybilności:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2350,22 +2352,22 @@ msgstr "" "przy tworzeniu: to samo co --old-archive przy odtwarzaniu: to co --no-same-" "owner" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Inne opcje:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "wyłączenie używania potencjalnie szkodliwych opcji" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "opcja „%s” nie może być użyta z opcją „%s”" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" @@ -2373,40 +2375,40 @@ msgstr "" "Nie można podać więcej niż jednej opcji z „-Acdtrux”, „--delete” albo „--" "test-label”" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Niezgodne opcje kompresji" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Nieznana nazwa sygnału: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "Nie znaleziono pliku z datą" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Postawienie %s w miejscu nieznanego formatu daty %s" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "Opcja %s: Potraktowanie daty „%s” jako %s" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "filtrowanie archiwum przez %s" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "Prawidłowe argumenty dla opcji --quoting-style:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2414,120 +2416,120 @@ msgstr "" "\n" "*Ten* tar ma domyślne parametry:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "Błędny identyfikator właściciela lub grupy" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Błędny współczynnik łączenia w bloki" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Błędna długość taśmy" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "Błędny numer poziomu przyrostowej kopii zapasowej" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Więcej niż jedna data graniczna" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "Błędna wartość wersji plików rzadkich" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "ten system nie pozwala na użycie --atime-preserve='system'" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "wartość --checkpoint nie jest liczbą całkowitą" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Błędne uprawnienia podane w opcji" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Błędny numer" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Błędna wielkość rekordu" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "Rozmiar rekordu musi być wielokrotnością %d" -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Błędna ilość elementów" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "Wolno użyć tylko jednej opcji polecenia --to-command" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Błędna specyfikacja gęstości: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Nieznana gęstość: „%c”" -#: src/tar.c:2066 +#: src/tar.c:2075 #, c-format msgid "Options '-[0-7][lmh]' not supported by *this* tar" msgstr "Opcje „-[0-7][lmh]” nie są dostępne w *tym* tarze" -#: src/tar.c:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: lokalizacja błędu" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "błąd przetwarzania %s" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[PLIK]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "argumenty nie będące opcjami w %s" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "nie można rozdzielić TAR_OPTIONS: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "Stara opcja „%c” wymaga argumentu." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence nie ma znaczenia bez listy plików" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "Archiwum składające się z wielu plików wymaga opcji „-M”" -#: src/tar.c:2407 +#: 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:2424 +#: 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)" @@ -2535,43 +2537,43 @@ 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Nie można zweryfikować archiwum wieloczęściowego" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Nie można zweryfikować archiwum skompresowanego" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Nie można używać wieloczęściowego archiwum skompresowanego" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Nie można połączyć skompresowanych archiwów" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "--clamp-mtime wymaga podania daty przy pomocy --mtime" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "Opcja --pax-option może być użyta tylko do archiwów POSIX-owych" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "Opcja --acls może być użyta tylko do archiwów POSIX-owych" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "Opcja --selinux może być użyta tylko do archiwów POSIX-owych" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "Opcja --xattrs może być użyta tylko do archiwów POSIX-owych" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2579,29 +2581,29 @@ msgstr "" "Nie udało się wydedukować głównego katalogu; proszę ustawić go wprost opcją " "--one-top-level=KATALOG" -#: src/tar.c:2573 +#: src/tar.c:2582 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:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Tchórzliwie odmawiam utworzenia pustego archiwum" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Opcje „-Aru” są niekompatybilne z „-f -”" -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "Trzeba podać jedną z opcji „-Acdtrux”, „--delete” albo „--test-label”" -#: src/tar.c:2768 +#: src/tar.c:2800 #, 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:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" @@ -2609,52 +2611,61 @@ msgstr[0] "%s: Plik skurczył się o %s bajt" msgstr[1] "%s: Plik skurczył się o %s bajty" msgstr[2] "%s: Plik skurczył się o %s bajtów" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "Nie może być użyty wzorzec %s" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Słowo kluczowe %s nie może być zastąpione" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "Błędny nagłówek rozszerzony: brakuje długości" -#: src/xheader.c:677 +#: src/xheader.c:695 #, 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:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "Błędny nagłówek rozszerzony: brakuje odstępu po długości" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "Błędny nagłówek rozszerzony: brakuje znaku równości" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "Błędny nagłówek rozszerzony: brakuje znaku mowej linii" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "Zignorowane nieznane słowo kluczowe nagłówka rozszerzonego „%s”" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" @@ -2663,46 +2674,46 @@ msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:1053 +#: src/xheader.c:1071 #, 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:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Błędny nagłówek rozszerzony: błędny %s=%s" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Błędny nagłówek rozszerzony: nadmiarowe %s=%s" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, 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:1543 +#: src/xheader.c:1561 #, 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:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s: błędna specyfikacja ograniczenia czasu" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: nieznana akcja przy punkcie kontrolnym" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "zapis" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "odczyt" @@ -2710,7 +2721,7 @@ msgstr "odczyt" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Punkt kontrolny zapisu %u" @@ -2719,12 +2730,12 @@ msgstr "Punkt kontrolny zapisu %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Punkt kontrolny odczytu %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2732,94 +2743,98 @@ msgstr "" "genfile służy do operacji na plikach w ramach zestawu testów GNU paxutils.\n" "OPCJE:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Opcje tworzenia plików:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "ROZMIAR" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Utworzenie pliku o podanym ROZMIARZE" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Pisanie na pliku NAZWA zamiast na standardowe wyjście" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "Czytanie nazw plików z PLIKU" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T czyta nazwy zakończone zerem" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "Wypełnienie pliku podanym WZORCEM. WZORZEC to „default” albo „zeros”" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "Rozmiar bloku pliku rzadkiego" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "Utworzenie pliku rzadkiego. Reszta argumentów określa mapę pliku." -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "POZYCJA" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "Ustawienie pozycji zapisu przez zapisem danych" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "Pominięcie nie-krytycznych komunikatów diagnostycznych" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Opcje statystyki plików" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Wypisanie zawartości struct stat dla każdego podanego pliku. Domyślny " "FORMAT: " -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Opcje równoczesnego wykonywania:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "OPCJA" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "Wykonanie ARGUMENTÓW. Przydatne z --checkpoint i jednym z --cut, --append, --" "touch albo --unlink" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" "Wykonanie podanej akcji (zobacz niżej) po napotkaniu punktu kontrolnego NUMER" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "Ustaw datę następnej opcji --touch" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "Wypisanie wykonanych punktów kontrolnych i kodu wyjścia POLECENIA" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2827,7 +2842,7 @@ msgstr "" "Akcje równoczesnego wykonania. Są podejmowane po osiągnięciu punktu " "kontrolnego o numerze podanym przez opcję --checkpoint" -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2835,128 +2850,129 @@ msgstr "" "Obcięcie PLIKU do rozmiaru podanego przez poprzednia opcję --length (albo 0, " "jeżeli nie został podany)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Dodanie ROZMIAR bajtów do PLIKU. ROZMIAR jak podany przez poprzednią opcję --" "length." -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "Uaktualnienie czasów dostepu i modyfikacji PLIKU" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "Wykonanie POLECENIA" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" -msgstr "" +msgstr "Skasowanie PLIKU" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Błędny rozmiar: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Liczba spoza dozwolonego zakresu: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Ujemny rozmiar: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "błąd stat(%s)" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "żądana długość pliku %lu, faktyczna %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "utworzony plik nie jest rzadki" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "Błąd przetwarzania liczby blisko „%s”" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Nieznany format daty" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ARGUMENTY...]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" -msgstr "nie można otworzyć „%s”" +msgstr "nie udało się otworzyć „%s”" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" -msgstr "nie można ustawić pozycji" +msgstr "nie udało się ustawić pozycji" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "nazwa pliku zawiera znak NUL" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, 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" +"nie udało się utworzyć pliku rzadkiego na standardowym wyjściu, użyj opcji --" +"file" -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "nieprawidłowa maska (koło „%s”)" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr " Nieznane pole „%s”" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" -msgstr "nie można ustawić czasu na „%s”" +msgstr "nie udało się ustawić czasu na „%s”" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" -msgstr "nie można skrócić „%s”" +msgstr "nie udało się skrócić „%s”" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "polecenie zwróciło błąd: %s" -#: tests/genfile.c:781 -#, fuzzy, c-format +#: tests/genfile.c:772 +#, c-format msgid "cannot stat `%s'" -msgstr "nie można skrócić „%s”" +msgstr "nie udało się odczytać stanu „%s”" -#: tests/genfile.c:785 -#, fuzzy, c-format +#: tests/genfile.c:776 +#, c-format msgid "cannot remove directory `%s'" -msgstr "nie można ustawić czasu na „%s”" +msgstr "nie udało się usunąć katalogu „%s”" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" -msgstr "nie można usunąć „%s”" +msgstr "nie udało się usunąć „%s”" #: tests/genfile.c:918 #, c-format @@ -2993,23 +3009,5 @@ msgstr "Polecenie zakończone\n" msgid "--stat requires file names" msgstr "--stat wymaga podania nazwy pliku" -#~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" -#~ msgstr "%.*s: Parametr ARGP_HELP_FMT musi być dodatni" - -#~ msgid "%s: option '--%s' doesn't allow an argument\n" -#~ msgstr "%s: opcja „--%s” nie może mieć argumentu\n" - -#~ msgid "%s: unrecognized option '--%s'\n" -#~ msgstr "%s: nierozpoznana opcja „--%s”\n" - -#~ msgid "%s: option '-W %s' is ambiguous\n" -#~ msgstr "%s: opcja „-W %s” jest niejednoznaczna\n" - -#~ msgid "%s: option '-W %s' doesn't allow an argument\n" -#~ msgstr "%s: opcja „-W %s” nie może mieć argumentu\n" - -#~ msgid "%s: option '-W %s' requires an argument\n" -#~ msgstr "%s: opcja „-W %s” wymaga argumentu\n" - -#~ msgid "Unlink FILE" -#~ msgstr "Usunięcie PLIKU" +#~ msgid "OPTION" +#~ msgstr "OPCJA" diff --git a/po/pt.gmo b/po/pt.gmo index d036707777bf16aefeee9c6abe2996c26287b4b0..65beeb89d031ba0869fa3b194dd0cf8808c24262 100644 GIT binary patch literal 62757 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 delta 2167 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 G9Qpv-KSZAZ diff --git a/po/pt.po b/po/pt.po index 844ab4da..439aad49 100644 --- a/po/pt.po +++ b/po/pt.po @@ -1,189 +1,188 @@ # Portuguese translation of the "tar" messages -# Copyright (1995) Free Software Foundation, Inc. -# Ant�nio Jos� Coutinho <ajc@di.uminho.pt> +# This file is distributed under the same license as the tar package. +# Copyright (C) 2018 Free Software Foundation, Inc. +# António José Coutinho <ajc@di.uminho.pt> +# Pedro Albuquerque <palbuquerque73@gmail.com>, 2018. # -#: src/create.c:1599 +#: src/create.c:1598 msgid "" msgstr "" -"Project-Id-Version: tar 1.11.9\n" +"Project-Id-Version: tar 1.30\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\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" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" +"PO-Revision-Date: 2018-10-02 23:48+0100\n" +"Last-Translator: Pedro Albuquerque <palbuquerque73@gmail.com>\n" +"Language-Team: Portuguese <translation-team-pt@lists.sourceforge.net>\n" "Language: pt\n" "MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=ISO-8859-1\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" +"Plural-Forms: nplurals=2; plural=n != 1;\\n\n" +"X-Generator: Gtranslator 2.91.7\n" #: gnu/argmatch.c:134 -#, fuzzy, c-format +#, c-format msgid "invalid argument %s for %s" -msgstr "Formato de data inv�lido \"%s\"" +msgstr "argumento inválido %s para %s" #: gnu/argmatch.c:135 #, c-format msgid "ambiguous argument %s for %s" -msgstr "" +msgstr "argumento ambíguo %s para %s" #: gnu/argmatch.c:154 msgid "Valid arguments are:" -msgstr "" +msgstr "Os argumentos válidos são:" #: gnu/argp-help.c:148 #, c-format msgid "ARGP_HELP_FMT: %s value is less than or equal to %s" -msgstr "" +msgstr "ARGP_HELP_FMT: valor %s é menor ou igual que %s" #: gnu/argp-help.c:224 #, c-format msgid "%.*s: ARGP_HELP_FMT parameter requires a value" -msgstr "" +msgstr "%.*s: o parâmetro ARGP_HELP_FMT requer um valor" #: gnu/argp-help.c:234 #, c-format msgid "%.*s: Unknown ARGP_HELP_FMT parameter" -msgstr "" +msgstr "%.*s: parâmetro ARGP_HELP_FMT desconhecido" #: gnu/argp-help.c:247 #, c-format msgid "Garbage in ARGP_HELP_FMT: %s" -msgstr "" +msgstr "Lixo em ARGP_HELP_FMT: %s" #: gnu/argp-help.c:1228 -#, fuzzy msgid "" "Mandatory or optional arguments to long options are also mandatory or " "optional for any corresponding short options." 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" +"Os argumentos obrigatórios ou opcionais para as opções longas também são " +"obrigatórios ou opcionais para as opções curtas correspondentes." #: gnu/argp-help.c:1615 msgid "Usage:" -msgstr "" +msgstr "Uso:" #: gnu/argp-help.c:1619 msgid " or: " -msgstr "" +msgstr " ou: " #: gnu/argp-help.c:1631 -#, fuzzy msgid " [OPTION...]" -msgstr "" -"\n" -"Forma de usar: %s [OP��O]...\n" +msgstr " [OPÇÃO...]" #: gnu/argp-help.c:1658 -#, fuzzy, c-format +#, c-format msgid "Try '%s --help' or '%s --usage' for more information.\n" -msgstr "Para mais informa��o, tente \"%s --help\".\n" +msgstr "Tente \"%s --help\" ou \"%s --usage\" para mais informação.\n" #: gnu/argp-help.c:1686 #, c-format msgid "Report bugs to %s.\n" -msgstr "" +msgstr "Reportar erros a %s.\n" #: gnu/argp-help.c:1887 gnu/error.c:195 msgid "Unknown system error" -msgstr "Erro desconhecido, do sistema" +msgstr "Erro de sistema desconhecido" #: gnu/argp-parse.c:81 msgid "give this help list" -msgstr "" +msgstr "Mostra esta lista de ajuda" #: gnu/argp-parse.c:82 msgid "give a short usage message" -msgstr "" +msgstr "Mostrar mensagem curta de uso" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" -msgstr "" +msgstr "NOME" #: gnu/argp-parse.c:84 msgid "set the program name" -msgstr "" +msgstr "define o nome do programa" #: gnu/argp-parse.c:85 msgid "SECS" -msgstr "" +msgstr "SEGS" #: gnu/argp-parse.c:86 msgid "hang for SECS seconds (default 3600)" -msgstr "" +msgstr "espera SEGS segundos (predefinição 3600)" #: gnu/argp-parse.c:143 msgid "print program version" -msgstr "" +msgstr "Mostrar versão do programa" #: gnu/argp-parse.c:160 msgid "(PROGRAM ERROR) No version known!?" -msgstr "" +msgstr "(ERRO DO PROGRAMA) Sem versão conhecida!?" #: gnu/argp-parse.c:613 #, c-format msgid "%s: Too many arguments\n" -msgstr "" +msgstr "%s: demasiados argumentos\n" #: gnu/argp-parse.c:759 msgid "(PROGRAM ERROR) Option should have been recognized!?" -msgstr "" +msgstr "(ERRO DO PROGRAMA) A opção devia ter sido reconhecida!?" #: gnu/closeout.c:122 -#, fuzzy msgid "write error" -msgstr "Escreve-se registo\n" +msgstr "erro de escrita" #: gnu/getopt.c:278 #, c-format msgid "%s: option '%s%s' is ambiguous\n" -msgstr "" +msgstr "%s: a opção \"%s%s\" é ambígua\n" #: gnu/getopt.c:284 #, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" -msgstr "" +msgstr "%s: a opção \"%s%s\" é ambígua; possibilidades:" #: gnu/getopt.c:319 #, c-format msgid "%s: unrecognized option '%s%s'\n" -msgstr "" +msgstr "%s: opção \"%s%s\" desconhecida\n" #: gnu/getopt.c:345 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" -msgstr "A antiga op��o `%c' exige um argumento." +msgstr "%s: a opção \"%s%s\" não permite um argumento\n" #: gnu/getopt.c:360 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' requires an argument\n" -msgstr "A antiga op��o `%c' exige um argumento." +msgstr "\"%s: a opção \"%s%s\" requer um argumento\n" #: gnu/getopt.c:621 #, c-format msgid "%s: invalid option -- '%c'\n" -msgstr "" +msgstr "%s: opção inválida -- \"%c\"\n" #: gnu/getopt.c:636 gnu/getopt.c:682 -#, fuzzy, c-format +#, c-format msgid "%s: option requires an argument -- '%c'\n" -msgstr "A antiga op��o `%c' exige um argumento." +msgstr "%s: a opção requer um argumento -- \"%c\"\n" #: gnu/obstack.c:338 gnu/obstack.c:340 gnu/xalloc-die.c:34 msgid "memory exhausted" -msgstr "" +msgstr "memória esgotada" #: gnu/openat-die.c:38 -#, fuzzy, c-format +#, c-format msgid "unable to record current working directory" -msgstr "N�o se conseguiu determinar a directoria corrente" +msgstr "impossível gravar a pasta de trabalho actual" #: gnu/openat-die.c:57 #, c-format msgid "failed to return to initial working directory" -msgstr "" +msgstr "falha ao voltar à pasta de trabalho inicial" #. TRANSLATORS: #. Get translations for open and closing quotation marks. @@ -208,11 +207,11 @@ msgstr "" #. and use glyphs suitable for your language. #: gnu/quotearg.c:362 msgid "`" -msgstr "" +msgstr "\"" #: gnu/quotearg.c:363 msgid "'" -msgstr "" +msgstr "\"" #. TRANSLATORS: A regular expression testing for an affirmative answer #. (english: "yes"). Testing the first character may be sufficient. @@ -222,7 +221,7 @@ msgstr "" #. locale -k LC_MESSAGES | grep '^yesexpr=' #: gnu/rpmatch.c:150 msgid "^[yY]" -msgstr "" +msgstr "^[Ss]" #. TRANSLATORS: A regular expression testing for a negative answer #. (english: "no"). Testing the first character may be sufficient. @@ -232,26 +231,26 @@ msgstr "" #. locale -k LC_MESSAGES | grep '^noexpr=' #: gnu/rpmatch.c:163 msgid "^[nN]" -msgstr "" +msgstr "^[nN]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" -msgstr "" +msgstr "Empacotado por %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" -msgstr "" +msgstr "Empacotado por %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: gnu/version-etc.c:84 +#: gnu/version-etc.c:83 msgid "(C)" -msgstr "" +msgstr "(©)" -#: gnu/version-etc.c:86 +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -260,24 +259,30 @@ msgid "" "There is NO WARRANTY, to the extent permitted by law.\n" "\n" msgstr "" +"\n" +"Licença GPLv3+: GNU GPL versão 3 ou posterior <http://gnu.org/licenses/gpl." +"html>\n" +"Este é um programa grátis: pode alterá-lo e redistribuí-lo.\n" +"Não há QUALQUER GARANTIA, até ao limite da Lei.\n" +"\n" #. TRANSLATORS: %s denotes an author name. #: gnu/version-etc.c:102 #, c-format msgid "Written by %s.\n" -msgstr "" +msgstr "Escrito por %s\n" #. TRANSLATORS: Each %s denotes an author name. #: gnu/version-etc.c:106 #, c-format msgid "Written by %s and %s.\n" -msgstr "" +msgstr "Escrito por %s e %s.\n" #. TRANSLATORS: Each %s denotes an author name. #: gnu/version-etc.c:110 #, c-format msgid "Written by %s, %s, and %s.\n" -msgstr "" +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 @@ -288,6 +293,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 @@ -298,6 +305,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 @@ -308,6 +317,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 @@ -318,6 +329,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 @@ -329,6 +342,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 @@ -340,6 +356,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 @@ -351,6 +370,9 @@ msgid "" "%s, %s, %s, %s,\n" "%s, %s, and others.\n" msgstr "" +"Escrito por %s, %s, %s,\n" +"%s, %s, %s, %s,\n" +"%s, %s e outros.\n" #. TRANSLATORS: The placeholder indicates the bug-reporting address #. for this package. Please add _another line_ saying @@ -362,34 +384,36 @@ msgid "" "\n" "Report bugs to: %s\n" msgstr "" +"\n" +"Reportar erros a: %s\n" #: gnu/version-etc.c:247 #, c-format msgid "Report %s bugs to: %s\n" -msgstr "" +msgstr "Reportar %s erros a: %s\n" #: gnu/version-etc.c:251 #, c-format msgid "%s home page: <%s>\n" -msgstr "" +msgstr "Página inicial %s: <%s>\n" #: gnu/version-etc.c:253 #, c-format msgid "%s home page: <https://www.gnu.org/software/%s/>\n" -msgstr "" +msgstr "Página inicial %s: <http://www.gnu.org/software/%s/>\n" #: gnu/version-etc.c:256 msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n" -msgstr "" +msgstr "Ajuda geral para uso de programas 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:60 lib/paxerror.c:73 -#, fuzzy, c-format +#, c-format msgid "%s: Cannot %s" -msgstr "N�o se consegue duplicar %s com \"dup\"" +msgstr "%s: função %s falhou" #. TRANSLATORS: %s after `Cannot' is a function name, e.g. `Cannot open'. #. Directly translating this to another language will not work, first because @@ -398,710 +422,682 @@ msgstr "N #: lib/paxerror.c:86 #, c-format msgid "%s: Warning: Cannot %s" -msgstr "" +msgstr "%s: aviso: função %s falhou" #: lib/paxerror.c:95 -#, fuzzy, c-format +#, c-format msgid "%s: Cannot change mode to %s" -msgstr "%s: N�o se pode mudar para o modo para %0.4o" +msgstr "%s: impossível alterar o modo para %s" #: lib/paxerror.c:103 -#, fuzzy, c-format +#, c-format msgid "%s: Cannot change ownership to uid %lu, gid %lu" -msgstr "%s: N�o se pode mudar o dono (owner) para \"uid\" %d, \"gid\" %d" +msgstr "%s: impossível alterar propriedade para uid %lu, gid %lu" #: lib/paxerror.c:129 -#, fuzzy, c-format +#, c-format msgid "%s: Cannot hard link to %s" -msgstr "N�o se consegue ler a liga��o (\"link\") %s" +msgstr "%s: impossível ligar rigidamente a %s" #: lib/paxerror.c:181 lib/paxerror.c:213 -#, 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] "" -"Erro de leitura no \"byte\" %ld, durante a leitura de %d \"bytes\" do " -"ficheiro %s" -msgstr[1] "" -"Erro de leitura no \"byte\" %ld, durante a leitura de %d \"bytes\" do " -"ficheiro %s" +msgstr[0] "%s: erro de leitura no byte %s, ao ler %lu byte" +msgstr[1] "%s: erro de leitura no byte %s, ao ler %lu bytes" #: lib/paxerror.c:194 -#, 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] "" -"Erro de leitura no \"byte\" %ld, durante a leitura de %d \"bytes\" do " -"ficheiro %s" -msgstr[1] "" -"Erro de leitura no \"byte\" %ld, durante a leitura de %d \"bytes\" do " -"ficheiro %s" +msgstr[0] "%s: aviso: erro de leitura no byte %s, ao ler %lu byte" +msgstr[1] "%s: aviso: erro de leitura no byte %s, ao ler %lu bytes" #: lib/paxerror.c:261 -#, fuzzy, c-format +#, c-format msgid "%s: Cannot seek to %s" -msgstr "N�o se consegue escrever em %s" +msgstr "%s: impossível ir para %s" #: lib/paxerror.c:277 #, c-format msgid "%s: Warning: Cannot seek to %s" -msgstr "" +msgstr "%s: aviso: impossível ir para %s" #: lib/paxerror.c:286 -#, fuzzy, c-format +#, c-format msgid "%s: Cannot create symlink to %s" -msgstr "%s: N�o se conseguiu criar uma liga��o simb�lica (link) para `%s'" +msgstr "%s: impossível criar ligação simbólica a %s" #: lib/paxerror.c:351 -#, 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: Apenas se conseguiu escrever %d de um total de %d bytes" -msgstr[1] "%s: Apenas se conseguiu escrever %d de um total de %d bytes" +msgstr[0] "%s: escritos só %lu de %lu byte" +msgstr[1] "%s: escritos só %lu de %lu bytes" #: lib/paxnames.c:140 -#, fuzzy, c-format +#, c-format msgid "Removing leading `%s' from member names" -msgstr "Retira-se \"/\" das liga��es (\"links\") absolutas " +msgstr "A remover \"%s\" iniciais para nomes de membros" #: lib/paxnames.c:141 -#, fuzzy, c-format +#, c-format msgid "Removing leading `%s' from hard link targets" -msgstr "Retira-se \"/\" das liga��es (\"links\") absolutas " +msgstr "A remover \"%s\" iniciais de alvos rigidamente ligados" #: lib/paxnames.c:154 msgid "Substituting `.' for empty member name" -msgstr "" +msgstr "A substituir \".\" para nomes de membro vazios" #: lib/paxnames.c:155 msgid "Substituting `.' for empty hard link target" -msgstr "" +msgstr "A substituir \".\" para alvos rigidamente ligados vazios" #: lib/rtapelib.c:299 #, c-format msgid "exec/tcp: Service not available" -msgstr "exec/tcp: Servi�o indispon�vel" +msgstr "exec/tcp: serviço indisponível" #: lib/rtapelib.c:303 #, c-format msgid "stdin" -msgstr "" +msgstr "stdin" #: lib/rtapelib.c:306 #, c-format msgid "stdout" -msgstr "" +msgstr "stdout" #: lib/rtapelib.c:429 #, c-format msgid "Cannot connect to %s: resolve failed" -msgstr "" +msgstr "Impossível ligar a %s: falha ao resolver" #: lib/rtapelib.c:502 -#, fuzzy, c-format +#, c-format msgid "Cannot redirect files for remote shell" -msgstr "N�o se consegue executar uma \"shell\" remota" +msgstr "Impossível redireccionar ficheiros para shell remota" #: lib/rtapelib.c:516 #, c-format msgid "Cannot execute remote shell" -msgstr "N�o se consegue executar uma \"shell\" remota" +msgstr "Impossível executar shell remota" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" -msgstr "" +msgstr "Direcção de procura fora de alcance" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" -msgstr "" +msgstr "Direcção de procura inválida" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" -msgstr "" +msgstr "Desvio de procura inválido" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" -msgstr "" +msgstr "Desvio de procura fora de alcance" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 -#, fuzzy +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" -msgstr "Formato de data inv�lido \"%s\"" +msgstr "Contagem de bytes inválida" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" -msgstr "" +msgstr "Contagem de bytes fora de alcance" -#: rmt/rmt.c:558 -#, fuzzy +#: rmt/rmt.c:562 msgid "Premature eof" -msgstr "rmtd: Fim de ficheiro prematuro\n" +msgstr "eof prematuro" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" -msgstr "" +msgstr "Código de operação inválido" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" -msgstr "" +msgstr "Operação não suportada" -#: rmt/rmt.c:664 -#, fuzzy +#: rmt/rmt.c:668 msgid "Unexpected arguments" -msgstr "Fim de ficheiro inesperado nos nomes truncados" +msgstr "Argumentos inesperados" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 msgid "Manipulate a tape drive, accepting commands from a remote process" msgstr "" +"Manipular um dispositivo de fita, aceitando comandos de um processo remoto" -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" -msgstr "" +msgstr "NÚMERO" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" -msgstr "" +msgstr "definir nível de depuração" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" -msgstr "" +msgstr "FICHEIRO" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" -msgstr "" +msgstr "definir nome do ficheiro de saída da depuração" -#: rmt/rmt.c:715 rmt/rmt.c:783 -#, fuzzy, c-format +#: rmt/rmt.c:719 rmt/rmt.c:787 +#, c-format msgid "cannot open %s" -msgstr "N�o se consegue abrir %s" +msgstr "impossível abrir %s" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" -msgstr "" +msgstr "demasiados argumentos" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" -msgstr "Comando desconhecido" +msgstr "Comando lixo" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" -msgstr "Isto n�o se parece a um arquivo \"tar\"" +msgstr "Isto não parece ser um arquivo tar" -#: src/buffer.c:590 -#, fuzzy +#: src/buffer.c:592 msgid "Total bytes read" -msgstr "N�mero total de de \"bytes\" escritos: %d\n" +msgstr "Total de bytes lidos" -#: src/buffer.c:592 -#, fuzzy +#: src/buffer.c:594 msgid "Total bytes written" -msgstr "N�mero total de de \"bytes\" escritos: %d\n" +msgstr "Total de bytes escritos" -#: src/buffer.c:593 -#, fuzzy +#: src/buffer.c:595 msgid "Total bytes deleted" -msgstr "N�mero total de de \"bytes\" escritos: %d\n" +msgstr "Total de bytes eliminados" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" -msgstr "" +msgstr "(túnel)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "" +"Recusa de ler o conteúdo do arquivo a partir do terminal (opção -f em falta?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "" +"Recusa de escrever o conteúdo do arquivo para o terminal (opção -f em falta?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" -msgstr "Valor inv�lido para tamanho de registo (record_size)" +msgstr "Valor inválido para tamanho de record_size" -#: src/buffer.c:714 -#, fuzzy +#: src/buffer.c:716 msgid "No archive name given" -msgstr "N�o deram nome de arquivo, que fazer?" +msgstr "Sem nome de arquivo" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" -msgstr "N�o se pode de verificar arquivos stdin ou stdout" +msgstr "Impossível verificar arquivos stdin/stdout" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" -msgstr "" +msgstr "Arquivo comprimido. Use a opção %s" -#: src/buffer.c:828 src/tar.c:2455 -#, fuzzy +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" -msgstr "N�o se pode actualizar o verificar um arquivo comprimido" +msgstr "Impossível actualizar arquivos comprimidos" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" -msgstr "No princ�pio da fita, p�ra-se imediatamente" +msgstr "No princípio da fita, a sair agora" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" -msgstr "Erros de mais: termina-se" +msgstr "Demasiados erros, a sair" -#: src/buffer.c:967 -#, fuzzy, c-format +#: src/buffer.c:969 +#, 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" +msgstr[0] "Tamanho do registo = %lu bloco" +msgstr[1] "Tamanho do registo = %lu blocos" -#: src/buffer.c:988 +#: src/buffer.c:990 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" -msgstr[0] "" -msgstr[1] "" +msgstr[0] "Bloco desalinhado (%lu byte) no arquivo" +msgstr[1] "Bloco desalinhado (%lu bytes) no arquivo" -#: src/buffer.c:1075 -#, fuzzy +#: src/buffer.c:1077 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" +msgstr "Impossível recuar o arquivo; pode ser ilegível sem -i" -#: src/buffer.c:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" -msgstr "" +msgstr "rmtlseek não parado num limite de registo" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" -msgstr "" +msgstr "%s: contém um número de volume inválido" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" -msgstr "" +msgstr "Transporte de número de volume" -#: src/buffer.c:1218 -#, fuzzy, c-format +#: src/buffer.c:1220 +#, c-format msgid "Prepare volume #%d for %s and hit return: " -msgstr "\aPreparar o volume no. %d para %s e premir \"Return\": " +msgstr "Preparar volume nº %d para %s e premir Enter: " -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" -msgstr "" +msgstr "EOF onde era esperada resposta do utilizador" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" -msgstr "ATEN��O: O arquivo est� incompleto" +msgstr "AVISO: o arquivo está incompleto" -#: src/buffer.c:1243 -#, fuzzy, c-format +#: src/buffer.c:1245 +#, 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 (e seguintes) volume(s)\n" -" q Cancelar o tar\n" -" ! Criar uma \"sub-shell\" (interpretador de comandos)\n" -" ? Escrever esta lista\n" +" n nome Dar um novo nome ao próximo volume (e seguintes)\n" +" q Abortar o tar\n" +" y ou newline Continuar operação\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" -msgstr "" +msgstr " ! Gerar uma sub-shell\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" -msgstr "" +msgstr " ? Mostra esta lista\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" -msgstr "N�o h� novo volume; termina-se. \n" +msgstr "Não há novo volume; a sair.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" -msgstr "" +msgstr "Sem nome de ficheiro. Tente novamente.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" -msgstr "" +msgstr "Entrada inválida. Digite ? para ajuda.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" -msgstr "" +msgstr "O comando %s falhou" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" -msgstr "%s n�o tem continuidade neste volume" +msgstr "%s não tem continuidade neste volume" -#: src/buffer.c:1541 -#, fuzzy, c-format +#: src/buffer.c:1543 +#, c-format msgid "%s is possibly continued on this volume: header contains truncated name" -msgstr "%s n�o tem continuidade neste volume" +msgstr "" +"%s possivelmente é continuado neste volume: o cabeçalho contém um nome " +"truncado" -#: src/buffer.c:1559 -#, fuzzy, c-format +#: src/buffer.c:1561 +#, c-format msgid "%s is the wrong size (%s != %s + %s)" -msgstr "%s n�o � a dimens�o correcta (%ld != %ld + %ld)" +msgstr "%s tem um tamanho errado (%s != %s + %s)" -#: src/buffer.c:1574 -#, fuzzy, c-format +#: src/buffer.c:1576 +#, c-format msgid "This volume is out of sequence (%s - %s != %s)" -msgstr "Este volume est� fora da sequ�ncia" +msgstr "Este volume está fora da sequência (%s - %s != %s)" -#: src/buffer.c:1652 src/buffer.c:1678 -#, fuzzy, c-format +#: src/buffer.c:1654 src/buffer.c:1672 +#, c-format msgid "Archive not labeled to match %s" -msgstr "O arquivo n�o tem etiqueta e n�o condiz com %s" +msgstr "O arquivo não rotulado para corresponder a %s" -#: src/buffer.c:1682 -#, fuzzy, c-format +#: src/buffer.c:1676 +#, c-format msgid "Volume %s does not match %s" -msgstr "O volume n�o condiz! %s!=%s" +msgstr "Volume %s não corresponde a %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "" +"%s: nome de ficheiro muito grande para um cabeçalho GNU multi-volume, " +"truncado" -#: src/buffer.c:1965 -#, fuzzy +#: src/buffer.c:1962 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" +msgstr "escrita não acabou num limite de bloco" -#: src/compare.c:98 -#, fuzzy, c-format +#: src/compare.c:97 +#, 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" +msgstr[0] "Lido só %lu de %lu byte" +msgstr[1] "Lidos só %lu de %lu bytes" -#: src/compare.c:108 src/compare.c:398 -#, fuzzy +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" -msgstr "Tempo de modifica��o" +msgstr "Conteúdo diferente" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" -msgstr "Fim de ficheiro inesperado no arquivo" +msgstr "EOF inesperado no arquivo" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 -#, fuzzy +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" -msgstr "%s: Liga��o (\"link\") simb�lica � diferente\n" +msgstr "Tipo de ficheiro diferente" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" -msgstr "" +msgstr "Modo diferente" -#: src/compare.c:208 -#, fuzzy +#: src/compare.c:207 msgid "Uid differs" -msgstr "%s: %s diferente\n" +msgstr "Uid diferente" -#: src/compare.c:210 -#, fuzzy +#: src/compare.c:209 msgid "Gid differs" -msgstr "%s: %s diferente\n" +msgstr "Gid diferente" -#: src/compare.c:214 -#, fuzzy +#: src/compare.c:213 msgid "Mod time differs" -msgstr "Tempo de modifica��o" +msgstr "Tempo de modificação diferente" -#: src/compare.c:218 src/compare.c:432 -#, fuzzy +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" -msgstr "%s: Liga��o (\"link\") simb�lica � diferente\n" +msgstr "Tamanho diferente" -#: src/compare.c:267 -#, fuzzy, c-format +#: src/compare.c:266 +#, c-format msgid "Not linked to %s" -msgstr "%s: N�o est� ligado a %s\n" +msgstr "Não ligado a %s" -#: src/compare.c:293 -#, fuzzy +#: src/compare.c:292 msgid "Symlink differs" -msgstr "%s: Liga��o (\"link\") simb�lica � diferente\n" +msgstr "Ligação simbólica diferente" -#: src/compare.c:325 -#, fuzzy +#: src/compare.c:324 msgid "Device number differs" -msgstr "%s: Os n�meros do perif�rico mudaram\n" +msgstr "Número de dispositivo diferente" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " -msgstr "Verifica��o" +msgstr "Verificar" -#: src/compare.c:480 -#, fuzzy, c-format +#: src/compare.c:479 +#, c-format msgid "%s: Unknown file type '%c', diffed as normal file" msgstr "" -"Tipo de ficheiro \"%c\" desconhecido para %s; comparado como um ficheiro " -"normal" +"%s: tipo de ficheiro \"%c\" desconhecido, comparado como ficheiro normal" -#: src/compare.c:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." -msgstr "" +msgstr "O arquivo contém nomes de ficheiro com prefixos iniciais removidos." -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." -msgstr "" +msgstr "O arquivo contém nomes de ficheiro transformados." -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." -msgstr "" +msgstr "A verificação pode não localizar os ficheiros originais." -#: src/compare.c:620 -#, fuzzy, c-format +#: src/compare.c:619 +#, 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" +msgstr[0] "ERRO DE VERIFICA��O: Encontraram-se %d cabe�alhos inv�lidos" +msgstr[1] "ERRO DE VERIFICAÇÃO: %d cabeçalhos inválidos detectados" -#: src/compare.c:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" -msgstr "" +msgstr "Um bloco zero sozinho em %s" -#: src/create.c:74 +#: src/create.c:73 #, c-format msgid "%s: contains a cache directory tag %s; %s" -msgstr "" +msgstr "%s: contém uma etiqueta de pasta cache %s; %s" -#: src/create.c:263 +#: src/create.c:262 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" -msgstr "" +msgstr "valor %s fora de %s alcance %s..%s; a substituir %s" -#: src/create.c:269 +#: src/create.c:268 #, c-format msgid "value %s out of %s range %s..%s" -msgstr "" +msgstr "valor %s fora de %s alcance %s..%s" -#: src/create.c:329 +#: src/create.c:328 msgid "Generating negative octal headers" -msgstr "" +msgstr "A gerar cabeçalhos octais negativos" -#: src/create.c:606 src/create.c:669 -#, fuzzy, c-format +#: src/create.c:605 src/create.c:668 +#, c-format msgid "%s: file name is too long (max %d); not dumped" -msgstr "%s: n�o foi modificado; n�o ser� arquivado" +msgstr "%s: nome de ficheiro muito longo (máx. %d); não despejado" -#: src/create.c:616 +#: src/create.c:615 #, c-format msgid "%s: file name is too long (cannot be split); not dumped" msgstr "" +"%s: nome de ficheiro muito longo (não pode ser separado); não despejado" -#: src/create.c:643 -#, fuzzy, c-format +#: src/create.c:642 +#, c-format msgid "%s: link name is too long; not dumped" -msgstr "%s: n�o foi modificado; n�o ser� arquivado" +msgstr "%s: nome da ligação muito longo; não despejado" -#: src/create.c:1106 -#, fuzzy, c-format +#: src/create.c:1105 +#, 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" +msgstr[0] "%s: ficheiro encolhido %s byte; a preencher com zeros" +msgstr[1] "%s: ficheiro encolhido em %s bytes; a preencher com zeros" -#: src/create.c:1204 -#, fuzzy, c-format +#: src/create.c:1203 +#, c-format msgid "%s: file is on a different filesystem; not dumped" -msgstr "%s: Est� num outro sistema de ficheiros; n�o ser� arquivado" +msgstr "%s: ficheiro num sistema de ficheiros diferente; não despejado" -#: src/create.c:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 -#, fuzzy +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" -msgstr " (imagem da mem�ria despejada \"core dumped\")" +msgstr "conteúdo não despejado" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" -msgstr "%s: Tipo de ficheiro desconhecido; ficheiro ignorado" +msgstr "%s: tipo de ficheiro desconhecido; ficheiro ignorado" -#: src/create.c:1576 -#, fuzzy, c-format +#: src/create.c:1575 +#, c-format msgid "Missing links to %s." -msgstr " liga��o para %s\n" +msgstr "Ligações a %s em falta." -#: src/create.c:1737 -#, fuzzy, c-format +#: src/create.c:1736 +#, c-format msgid "%s: file is unchanged; not dumped" -msgstr "%s: n�o foi modificado; n�o ser� arquivado" +msgstr "%s: ficheiro não alterado; não despejado" -#: src/create.c:1746 -#, fuzzy, c-format +#: src/create.c:1745 +#, c-format msgid "%s: file is the archive; not dumped" -msgstr "%s � o arquivo; n�o ser� arquivado" +msgstr "%s o ficheiro é o arquivo; não despejado" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" -msgstr "" +msgstr "pasta não despejada" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" -msgstr "" +msgstr "%s: ficheiro alterado durante a leitura" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" -msgstr "" +msgstr "%s: socket ignorada" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" -msgstr "" +msgstr "%s: porta ignorada" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" -msgstr "Salta para pr�ximo cabe�alho" +msgstr "Saltar para cabeçalho seguinte" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" -msgstr "Apaga-se do arquivo um n�o-cabe�alho" +msgstr "Eliminar não-cabeçalho do arquivo" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" -msgstr "" +msgstr "%s: carimbo implausivelmente antigo %s" -#: src/extract.c:320 +#: src/extract.c:319 #, c-format msgid "%s: time stamp %s is %s s in the future" -msgstr "" +msgstr "%s: carimbo %s está %s s no futuro" -#: src/extract.c:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" -msgstr "" +msgstr "%s: inconsistência inesperada ao fazer a pasta" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" -msgstr "" +msgstr "%s: a saltar ficheiro existente" #: src/extract.c:901 #, c-format msgid "%s: Directory renamed before its status could be extracted" -msgstr "" +msgstr "%s: pasta renomeada antes que o seu estado pudesse ser extraído" #: src/extract.c:1086 msgid "Extracting contiguous files as regular files" -msgstr "Est�o-se a extrair ficheiros cont�guos como sendo ficheiros normais" +msgstr "A extrair ficheiros contíguos como ficheiros regulares" #: src/extract.c:1433 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)" +msgstr "A tentar extrair ligações simbólicas como ligações rígidas" #: src/extract.c:1596 -#, fuzzy, c-format +#, 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" +msgstr "%s: impossível extrair -- ficheiro continuado de outro volume" -#: src/extract.c:1603 src/list.c:1167 -#, fuzzy +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" -msgstr "Fim de ficheiro inesperado no ficheiro de arquivo" +msgstr "Nome longo de cabeçalho inesperado" #: src/extract.c:1610 -#, fuzzy, c-format +#, c-format msgid "%s: Unknown file type '%c', extracted as normal file" msgstr "" -"Tipo \"%c\" do ficheiro \"%s\" desconhecido; extrai-se como um ficheiro " -"normal" +"%s: tipo de ficheiro \"%c\" desconhecido, extraído como ficheiro normal" #: src/extract.c:1636 #, c-format msgid "Current %s is newer or same age" -msgstr "" +msgstr "%s actual é mais recente ou da mesma idade" #: src/extract.c:1664 #, c-format msgid "%s: Member name contains '..'" -msgstr "" +msgstr "%s: nome de membro contém \"..\"" #: src/extract.c:1696 #, c-format msgid "%s: Was unable to backup this file" -msgstr "" +msgstr "%s: impossível fazer seguranças deste ficheiro" #: src/extract.c:1845 #, c-format msgid "Cannot rename %s to %s" -msgstr "N�o se consegue mudar o nome de %s para %s" +msgstr "Impossível renomear %s para %s" -#: src/incremen.c:494 src/incremen.c:536 -#, fuzzy, c-format +#: src/incremen.c:493 src/incremen.c:535 +#, c-format msgid "%s: Directory has been renamed from %s" -msgstr "Mudou-se o nome do directoria %s" +msgstr "%s: a pasta foi renomeada de %s" -#: src/incremen.c:549 -#, fuzzy, c-format +#: src/incremen.c:548 +#, c-format msgid "%s: Directory is new" -msgstr "O directoria %s � novo" +msgstr "%s: a pasta é nova" -#: src/incremen.c:566 -#, fuzzy, c-format +#: src/incremen.c:565 +#, c-format msgid "%s: directory is on a different filesystem; not dumped" -msgstr "%s: Est� num outro sistema de ficheiros; n�o ser� arquivado" +msgstr "%s: pasta num sistema de ficheiros diferente; não despejada" -#: src/incremen.c:587 -#, fuzzy, c-format +#: src/incremen.c:586 +#, c-format msgid "%s: Directory has been renamed" -msgstr "Mudou-se o nome do directoria %s" +msgstr "%s: a pasta foi renomeada" #: src/incremen.c:1003 src/incremen.c:1018 msgid "Invalid time stamp" -msgstr "" +msgstr "Carimbo inválido" #: src/incremen.c:1047 msgid "Invalid modification time" -msgstr "" +msgstr "Hora de modificação inválida" #: src/incremen.c:1057 msgid "Invalid modification time (nanoseconds)" -msgstr "" +msgstr "Hora de modificação inválida (nano-segundos)" #: src/incremen.c:1073 msgid "Invalid device number" -msgstr "" +msgstr "Número de dispositivo inválido" #: src/incremen.c:1081 msgid "Invalid inode number" -msgstr "" +msgstr "Número inode inválido" #: src/incremen.c:1137 #, c-format msgid "%s: byte %s: %s %.*s... too long" -msgstr "" +msgstr "%s: byte %s: %s %.*s... muito longo" #: src/incremen.c:1153 src/incremen.c:1211 src/incremen.c:1273 -#, fuzzy msgid "Unexpected EOF in snapshot file" -msgstr "Fim de ficheiro inesperado no ficheiro de arquivo" +msgstr "EOF inesperado em ficheiro instantâneo" #: src/incremen.c:1161 #, c-format msgid "%s: byte %s: %s %s followed by invalid byte 0x%02x" -msgstr "" +msgstr "%s: byte %s: %s %s seguido de byte 0x%02x inválido" #: src/incremen.c:1174 #, c-format @@ -1109,456 +1105,477 @@ msgid "" "%s: byte %s: (valid range %s..%s)\n" "\t%s %s" msgstr "" +"%s: byte %s: (intervalo válido %s..%s)\n" +"\t%s %s" #: src/incremen.c:1181 #, c-format msgid "%s: byte %s: %s %s" -msgstr "" +msgstr "%s: byte %s: %s %s" #: src/incremen.c:1262 #, c-format msgid "%s: byte %s: %s" -msgstr "" +msgstr "%s: byte %s: %s" #: src/incremen.c:1265 msgid "Missing record terminator" -msgstr "" +msgstr "Terminador de registo em falta" #: src/incremen.c:1371 src/incremen.c:1374 msgid "Bad incremental file format" -msgstr "" +msgstr "Formato de ficheiro incremental errado" #: src/incremen.c:1393 #, c-format msgid "Unsupported incremental format version: %<PRIuMAX>" -msgstr "" +msgstr "Versão de formato incremental não suportada: %<PRIuMAX>" #: src/incremen.c:1549 #, c-format msgid "Malformed dumpdir: expected '%c' but found %#3o" -msgstr "" +msgstr "dumpdir mal formado: esperado \"%c\", obtido %#3o" #: src/incremen.c:1559 msgid "Malformed dumpdir: 'X' duplicated" -msgstr "" +msgstr "dumpdir mal formado: \"X\" duplicado" #: src/incremen.c:1572 msgid "Malformed dumpdir: empty name in 'R'" -msgstr "" +msgstr "dumpdir mal formado: nome vazio em \"R\"" #: src/incremen.c:1585 msgid "Malformed dumpdir: 'T' not preceded by 'R'" -msgstr "" +msgstr "dumpdir mal formado: \"T\" não precedido de \"R\"" #: src/incremen.c:1591 msgid "Malformed dumpdir: empty name in 'T'" -msgstr "" +msgstr "dumpdir mal formado: nome vazio em \"T\"" #: src/incremen.c:1611 #, c-format msgid "Malformed dumpdir: expected '%c' but found end of data" -msgstr "" +msgstr "dumpdir formado: esperado \"%c\", obtido fim de dados" #: src/incremen.c:1618 msgid "Malformed dumpdir: 'X' never used" -msgstr "" +msgstr "dumpdir formado: \"X\" nunca usado" #: src/incremen.c:1662 -#, fuzzy, c-format +#, c-format msgid "Cannot create temporary directory using template %s" -msgstr "N�o se pode mudar para a directoria %s" +msgstr "Impossível criar pasta temporária usando o modelo %s" #: src/incremen.c:1723 #, c-format msgid "%s: Not purging directory: unable to stat" -msgstr "" +msgstr "%s: sem purgar a pasta: impossível obter informações" #: src/incremen.c:1736 #, c-format msgid "%s: directory is on a different device: not purging" -msgstr "" +msgstr "%s: a pasta está num dispositivo diferente: sem purgar" #: src/incremen.c:1744 #, c-format msgid "%s: Deleting %s\n" -msgstr "%s: Apaga-se %s\n" +msgstr "%s: a eliminar %s\n" #: src/incremen.c:1749 -#, fuzzy, c-format +#, c-format msgid "%s: Cannot remove" -msgstr "N�o se consegue apagar %s" +msgstr "%s: impossível remover" -#: src/list.c:219 -#, fuzzy, c-format +#: src/list.c:218 +#, c-format msgid "%s: Omitting" -msgstr "Omite-se %s" +msgstr "%s: a omitir" -#: src/list.c:237 -#, fuzzy, c-format +#: src/list.c:236 +#, c-format msgid "block %s: ** Block of NULs **\n" -msgstr "bloco %10ld: ** Bloco de NULs **\n" +msgstr "bloco %s: ** Bloco de NULs **\n" -#: src/list.c:263 -#, fuzzy, c-format +#: src/list.c:262 +#, c-format msgid "block %s: ** End of File **\n" -msgstr "bloco %10ld: ** Fim-de-ficheiro **\n" +msgstr "bloco %s: ** Fim-de-ficheiro **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 -#, fuzzy, c-format +#: src/list.c:284 src/list.c:1133 src/list.c:1369 +#, c-format msgid "block %s: " -msgstr "bloco %10ld: " +msgstr "bloco %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, c-format msgid "Blanks in header where numeric %s value expected" -msgstr "" +msgstr "Espaços no cabeçalho onde era esperado um valor numérico %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" +"O valor octal do arquivo %.*s está fora do alcance %s; a assumir o " +"complemento de dois" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, c-format msgid "Archive octal value %.*s is out of %s range" -msgstr "" +msgstr "O valor octal do arquivo %.*s está fora do alcance %s" -#: src/list.c:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" -msgstr "" +msgstr "O arquivo contém cabeçalhos de base 64 obsoletos" -#: src/list.c:852 +#: src/list.c:853 #, c-format msgid "Archive signed base-64 string %s is out of %s range" -msgstr "" +msgstr "Cadeia %s assinada de base 64 do arquivo fora do alcance %s" -#: src/list.c:883 -#, fuzzy, c-format +#: src/list.c:884 +#, c-format msgid "Archive base-256 value is out of %s range" -msgstr "Este volume est� fora da sequ�ncia" +msgstr "Valor de base 256 do arquivo fora do alcance %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:912 +#: src/list.c:913 #, c-format msgid "Archive contains %.*s where numeric %s value expected" -msgstr "" +msgstr "O arquivo contém %.*s onde era esperado um valor numérico %s" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:934 +#: src/list.c:935 #, c-format msgid "Archive value %s is out of %s range %s..%s" -msgstr "" +msgstr "O valor %s do arquivo está fora de alcance %s, %s..%s" -#: src/list.c:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" -msgstr " liga��o para %s\n" +msgstr " ligar a %s\n" -#: src/list.c:1280 -#, fuzzy, c-format +#: src/list.c:1277 +#, c-format msgid " unknown file type %s\n" -msgstr " tipo de ficheiro desconhecido \"%c\"\n" +msgstr " tipo de ficheiro desconhecido %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" -msgstr "" +msgstr "--Ligação longa--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" -msgstr "" +msgstr "--Nome longo--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" -msgstr "--Cabe�alho de volume--\n" +msgstr "--Cabeçalho de volume--\n" -#: src/list.c:1314 -#, fuzzy, c-format +#: src/list.c:1311 +#, c-format msgid "--Continued at byte %s--\n" -msgstr "--Continua no \"byte\" %ld--\n" +msgstr "--Continua no byte %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" -msgstr "Cria��o de directoria::" +msgstr "A criar pasta:" -#: src/misc.c:738 -#, fuzzy, c-format +#: src/misc.c:751 +#, c-format msgid "Renaming %s to %s\n" -msgstr "Mudou-se o nome %s para %s" +msgstr "A renomear %s para %s\n" -#: src/misc.c:747 src/misc.c:766 -#, fuzzy, c-format +#: src/misc.c:760 src/misc.c:779 +#, c-format msgid "%s: Cannot rename to %s" -msgstr "N�o se consegue mudar o nome de %s para %s" +msgstr "%s: impossível renomear %s" -#: src/misc.c:771 -#, fuzzy, c-format +#: src/misc.c:784 +#, c-format msgid "Renaming %s back to %s\n" -msgstr "Mudou-se o nome %s para %s" +msgstr "A renomear %s para %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" -msgstr "" +msgstr "%s: ficheiro removido antes de ser lido" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" -msgstr "" +msgstr "processo filho" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" -msgstr "" +msgstr "canal inter-processos" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" -msgstr "" +msgstr "Selecção de nome de ficheiro local:" -#: src/names.c:72 +#: src/names.c:71 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" +"adicionar FICHEIRO dado ao arquivo (útil se o nome começa por um hífen)" -#: src/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" -msgstr "" +msgstr "PASTA" -#: src/names.c:74 -#, fuzzy +#: src/names.c:73 msgid "change to directory DIR" -msgstr "N�o se pode mudar para a directoria %s" +msgstr "mudar para a pasta PASTA" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" -msgstr "" +msgstr "obter nomes a extrair ou criar de FICHEIRO" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" -msgstr "" +msgstr "-T lê nomes terminados em null; implica --verbatim-files-from" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" -msgstr "" +msgstr "desactiva o efeito da opção --null anterior" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "" +"tirar aspas do ficheiro de entrada ou de nomes de membro (predefinição)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" -msgstr "" +msgstr "não tirar aspas do ficheiro de entrada ou de nomes de membro" -#: src/names.c:87 +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" -msgstr "" +msgstr "-T lê nomes de ficheiro literalmente (sem escape ou gestão de opções)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "" +"-T trata nomes de ficheiro começados com hífen como opções (predefinição)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" -msgstr "" +msgstr "PADRÃO" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" -msgstr "" +msgstr "exclui ficheiros, dados como PADRÃO" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" -msgstr "" +msgstr "exclui padrões listados no FICHEIRO" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "" +"exclui conteúdos de pastas contendo CACHEDIR.TAG, excepto o próprio ficheiro " +"etiqueta" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" -msgstr "" +msgstr "exclui tudo em pastas que contenham CACHEDIR.TAG" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" -msgstr "" +msgstr "exclui pastas que contenham CACHEDIR.TAG" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" +"exclui conteúdo de pastas que contenham FICHEIRO, excepto o próprio FICHEIRO" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" -msgstr "" +msgstr "lê padrões de exclusão para cada pasta de FICHEIRO, se existir" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" msgstr "" +"lê padrões de exclusão para cada pasta e suas sub-pastas de FICHEIRO, se " +"existir" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" -msgstr "" +msgstr "exclui tudo em pastas que contenham FICHEIRO" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" -msgstr "" +msgstr "exclui pastas que contenham FICHEIRO" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" -msgstr "" +msgstr "exclui pastas do sistema de controlo de versões" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" -msgstr "" +msgstr "ler padrões de exclusão dos ficheiros \"ignore\" dos VCS" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" -msgstr "" +msgstr "exclui ficheiros de seguranças e bloqueio" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" -msgstr "" +msgstr "recursivo em pastas (predefinição)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" -msgstr "" +msgstr "evita descer automaticamente nas pastas" -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" +"Opções de comparação de nomes de ficheiro (afecta padrões de exclusão e " +"inclusão):" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" -msgstr "" +msgstr "padrões coincidem com o início do nome de ficheiro" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" -msgstr "" +msgstr "padrões coincidem após qualquer \"/\" (predefinição para exclusão)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" -msgstr "" +msgstr "ignorar maiúsculas" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" -msgstr "" +msgstr "Sensível a maiúsculas (predefinição)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" -msgstr "" +msgstr "usar caracteres universais (predefinição para exclusão)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" -msgstr "" +msgstr "comparação literal de cadeias" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" -msgstr "" +msgstr "caracteres universais coincidem com \"/\" (predefinição para exclusão)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" -msgstr "" +msgstr "caracteres universais não coincidem com \"/\"" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" +"As opções seguintes foram usadas após qualquer argumento não-opcional em " +"modo de criação ou actualização de arquivo. Estas opções são posicionais e " +"só afectam argumentos a seguir. Por favor, reordene-as apropriadamente." -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" -msgstr "" +msgstr "-C %s não tem qualquer efeito" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" -msgstr "" +msgstr "--%s %s não tem qualquer efeito" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" -msgstr "" +msgstr "--%s não tem qualquer efeito" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" -msgstr "" +msgstr "linha de comandos" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" -msgstr "" +msgstr "%s: lista de ficheiros pedida de %s já lida de %s" -#: src/names.c:978 src/checkpoint.c:274 -#, fuzzy, c-format +#: src/names.c:977 src/checkpoint.c:308 +#, c-format msgid "cannot split string '%s': %s" -msgstr "N�o se pode criar uma liga��o (\"link\") simb�lica de %s para %s" +msgstr "impossível dividir a cadeia \"%s\": %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" -msgstr "" +msgstr "%s: nome de ficheiro lido contém um carácter nulo" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" -msgstr "" +msgstr "Padrão coincidente com caracteres usados em nomes de ficheiro" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" msgstr "" +"Use --wildcards para activar a comparação com padrões ou --no-wildcards para " +"suprimir este aviso" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" -msgstr "%s: N�o foi encontrado no arquivo" +msgstr "%s: não encontrado no arquivo" -#: src/names.c:1379 -#, fuzzy, c-format +#: src/names.c:1409 +#, c-format msgid "%s: Required occurrence not found in archive" -msgstr "%s: N�o foi encontrado no arquivo" +msgstr "%s: ocorrência requerida não encontrada no arquivo" -#: src/names.c:1413 -#, fuzzy, c-format +#: src/names.c:1443 +#, c-format msgid "Archive label mismatch" -msgstr "O arquivo n�o tem etiqueta e n�o condiz com %s" +msgstr "Etiqueta de arquivo trocada" -#: src/names.c:1717 +#: src/names.c:1747 msgid "" "Using -C option inside file list is not allowed with --listed-incremental" msgstr "" +"Não pode usar a opção -C dentro da lista de ficheiros com --listed-" +"incremental" -#: src/names.c:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" -msgstr "" +msgstr "Só é permitida uma opção -C com --listed-incremental" -#: src/tar.c:88 -#, fuzzy, c-format +#: src/tar.c:87 +#, c-format msgid "Options '%s' and '%s' both want standard input" -msgstr "Ambas as op��es `-%s' e `-%s' precisam do \"standard input\"" +msgstr "Ambas as opções \"%s\" e \"%s\" querem a entrada padrão" -#: src/tar.c:165 -#, fuzzy, c-format +#: src/tar.c:164 +#, c-format msgid "%s: Invalid archive format" -msgstr "Formato de data inv�lido \"%s\"" +msgstr "%s: formato de arquivo inválido" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" -msgstr "" -"Est�o-se a querer propriedades GNU num arquivo com formato incompat�vel" +msgstr "Desejadas funcionalidades GNU em formato de arquivo incompatível" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." msgstr "" +"Estilo de aspas \"%s\" desconhecido. Tente \"%s --quoting-style=help\" para " +"obter uma lista." #: src/tar.c:354 msgid "" @@ -1570,6 +1587,14 @@ 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 "" +"O GNU \"tar\" grava muitos ficheiros juntos numa só fita magnética ou num " +"disco e pode restaurar ficheiros individuais desse arquivo.\n" +"\n" +"Exemplos:\n" +" tar -cf arquivo.tar foo bar # Cria arquivo.tar a partir de foo e bar.\n" +" tar -tvf arquivo.tar # Lista todos os ficheiros em arquivo.tar " +"extensamente.\n" +" tar -xf arquivo.tar # Extrai todos os ficheiros em arquivo.tar.\n" #: src/tar.c:363 msgid "" @@ -1582,87 +1607,96 @@ msgid "" " nil, existing numbered if numbered backups exist, simple otherwise\n" " never, simple always make simple backups\n" msgstr "" +"O sufixo da segurança é \"~\", a menos que definido por --suffix ou " +"SIMPLE_BACKUP_SUFFIX.\n" +"O controlo de versão pode ser definido com --backup ou VERSION_CONTROL, os " +"valores são:\n" +"\n" +" none, off nunca fazer seguranças\n" +" t, numbered fazer seguranças numeradas\n" +" nil, existing numeradas se existirem seguranças numeradas, senão " +"simples\n" +" never, simple fazer sempre seguranças simples\n" #: src/tar.c:393 msgid "Main operation mode:" -msgstr "" +msgstr "Modo de operação principal:" #: src/tar.c:396 msgid "list the contents of an archive" -msgstr "" +msgstr "lista o conteúdo de um arquivo" #: src/tar.c:398 msgid "extract files from an archive" -msgstr "" +msgstr "extrai ficheiros de um arquivo" #: src/tar.c:401 -#, fuzzy msgid "create a new archive" -msgstr "Fim de ficheiro inesperado no arquivo" +msgstr "cria um novo arquivo" #: src/tar.c:403 msgid "find differences between archive and file system" -msgstr "" +msgstr "encontra diferenças entre o arquivo e o sistema de ficheiros" #: src/tar.c:406 msgid "append files to the end of an archive" -msgstr "" +msgstr "anexa ficheiros ao fim de um arquivo" #: src/tar.c:408 msgid "only append files newer than copy in archive" -msgstr "" +msgstr "anexa só ficheiros mais recentes que a cópia no arquivo" #: src/tar.c:410 msgid "append tar files to an archive" -msgstr "" +msgstr "anexa ficheiros tar a um arquivo" #: src/tar.c:413 msgid "delete from the archive (not on mag tapes!)" -msgstr "" +msgstr "elimina do arquivo (não em fitas magnéticas)" #: src/tar.c:415 msgid "test the archive volume label and exit" -msgstr "" +msgstr "testa a etiqueta de volume do arquivo e sai" #: src/tar.c:420 msgid "Operation modifiers:" -msgstr "" +msgstr "Modificadores de operação:" #: src/tar.c:423 msgid "handle sparse files efficiently" -msgstr "" +msgstr "gere ficheiros dispersos eficazmente" #: src/tar.c:424 msgid "TYPE" -msgstr "" +msgstr "TIPO" #: src/tar.c:425 msgid "technique to detect holes" -msgstr "" +msgstr "técnica para detectar buracos" #: src/tar.c:426 msgid "MAJOR[.MINOR]" -msgstr "" +msgstr "PRINCIPAL[.MENOR]" #: src/tar.c:427 msgid "set version of the sparse format to use (implies --sparse)" -msgstr "" +msgstr "define a versão do formato disperso a usar (implica --sparse)" #: src/tar.c:429 msgid "handle old GNU-format incremental backup" -msgstr "" +msgstr "gere o formato GNU antigo de segurança incremental" #: src/tar.c:431 msgid "handle new GNU-format incremental backup" -msgstr "" +msgstr "gere o formato GNU novo de segurança incremental" #: src/tar.c:433 msgid "dump level for created listed-incremental archive" -msgstr "" +msgstr "nível de despejo para arquivos incrementais listados criados" #: src/tar.c:435 msgid "do not exit with nonzero on unreadable files" -msgstr "" +msgstr "não sair com ficheiros não-zero ou ilegíveis" #: src/tar.c:437 msgid "" @@ -1671,144 +1705,152 @@ msgid "" "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 só a ocorrência NÚMERO de cada ficheiro no arquivo; esta opção é " +"válida só em conjunto com um dos sub-comandos --delete, --diff, --extract ou " +"--list e quando uma lista de ficheiros é dada via linha de comandos ou pela " +"opção -T; A predefinição de NÚMERO é 1" #: src/tar.c:443 msgid "archive is seekable" -msgstr "" +msgstr "o arquivo pode ser procurado" #: src/tar.c:445 msgid "archive is not seekable" -msgstr "" +msgstr "o arquivo não pode ser procurado" #: src/tar.c:447 msgid "do not check device numbers when creating incremental archives" -msgstr "" +msgstr "não verificar números de dispositivo ao criar arquivos incrementais" #: src/tar.c:450 msgid "check device numbers when creating incremental archives (default)" msgstr "" +"verificar números de dispositivo ao criar arquivos incrementais " +"(predefinição)" #: src/tar.c:456 msgid "Overwrite control:" -msgstr "" +msgstr "Controlo de sobreposição:" #: src/tar.c:459 msgid "attempt to verify the archive after writing it" -msgstr "" +msgstr "tenta verificar o arquivo após a escrita" #: src/tar.c:461 -#, fuzzy msgid "remove files after adding them to the archive" -msgstr "Retira-se a especifica��o do \"drive\" aos nomes no arquivo" +msgstr "remove os ficheiros após os adicionar ao arquivo" #: src/tar.c:463 msgid "don't replace existing files when extracting, treat them as errors" -msgstr "" +msgstr "não substitui ficheiros existentes ao extrair, trata-os como erros" #: src/tar.c:466 msgid "don't replace existing files when extracting, silently skip over them" msgstr "" +"não substitui ficheiros existentes ao extrair, salta-os silenciosamente" #: src/tar.c:469 msgid "don't replace existing files that are newer than their archive copies" msgstr "" +"não substitui ficheiros existentes mais recentes que as cópias no arquivo" #: src/tar.c:471 msgid "overwrite existing files when extracting" -msgstr "" +msgstr "sobrescreve ficheiros existentes ao extrair" #: src/tar.c:473 msgid "remove each file prior to extracting over it" -msgstr "" +msgstr "remove cada ficheiro antes de extrair por cima" #: src/tar.c:475 msgid "empty hierarchies prior to extracting directory" -msgstr "" +msgstr "esvazia hierarquias antes de extrair a pasta" #: src/tar.c:477 msgid "preserve metadata of existing directories" -msgstr "" +msgstr "preserva meta-dados de pastas existentes" #: src/tar.c:479 msgid "overwrite metadata of existing directories when extracting (default)" -msgstr "" +msgstr "sobrescreve meta-dados de pastas existentes ao extrair (predefinição)" #: src/tar.c:482 msgid "preserve existing symlinks to directories when extracting" -msgstr "" +msgstr "preserva ligações simbólicas a pastas ao extrair" #: src/tar.c:485 msgid "create a subdirectory to avoid having loose files extracted" -msgstr "" +msgstr "cria uma sub-pasta para evitar ter ficheiros soltos extraídos" #: src/tar.c:491 msgid "Select output stream:" -msgstr "" +msgstr "Seleccione o fluxo de saída:" #: src/tar.c:494 msgid "extract files to standard output" -msgstr "" +msgstr "extrair ficheiros para a saída padrão" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" -msgstr "" +msgstr "COMANDO" #: src/tar.c:496 msgid "pipe extracted files to another program" -msgstr "" +msgstr "encaminha ficheiros extraídos para outro programa" #: src/tar.c:498 msgid "ignore exit codes of children" -msgstr "" +msgstr "ignora códigos de saída dos filhos" #: src/tar.c:500 msgid "treat non-zero exit codes of children as error" -msgstr "" +msgstr "trata códigos de saída não-zero dos filhos como erro" #: src/tar.c:505 msgid "Handling of file attributes:" -msgstr "" +msgstr "Gestão de atributos de ficheiro:" #: src/tar.c:508 msgid "force NAME as owner for added files" -msgstr "" +msgstr "força NOME como dono para ficheiros adicionados" #: src/tar.c:510 msgid "force NAME as group for added files" -msgstr "" +msgstr "força NOME como grupo para ficheiros adicionados" #: src/tar.c:512 msgid "use FILE to map file owner UIDs and names" -msgstr "" +msgstr "usa FICHEIRO para mapear UIDs e nomes do dono" #: src/tar.c:514 msgid "use FILE to map file owner GIDs and names" -msgstr "" +msgstr "usa FICHEIRO para mapear GIDs e nomes do dono" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" -msgstr "" +msgstr "DATA-OU-FICHEIRO" #: src/tar.c:516 msgid "set mtime for added files from DATE-OR-FILE" -msgstr "" +msgstr "define mtime para ficheiros adicionados de DATA-OU-FICHEIRO" #: src/tar.c:518 msgid "" "only set time when the file is more recent than what was given with --mtime" msgstr "" +"definir hora só se o ficheiro for mais recente que a que foi dada com --mtime" #: src/tar.c:519 msgid "CHANGES" -msgstr "" +msgstr "ALTERAÇÕES" #: src/tar.c:520 msgid "force (symbolic) mode CHANGES for added files" -msgstr "" +msgstr "força (simbolicamente) o modo ALTERAÇÕES para ficheiros adicionados" #: src/tar.c:522 msgid "METHOD" -msgstr "" +msgstr "MÉTODO" #: src/tar.c:523 msgid "" @@ -1816,1093 +1858,1142 @@ msgid "" "reading (METHOD='replace'; default) or by not setting the times in the first " "place (METHOD='system')" msgstr "" +"preserva horas de acesso em ficheiros despejados, seja restaurando as horas " +"após leitura (MÉTODO=\"replace\": predefinição), seja não definindo horas " +"(MÉTODO=\"system\")" #: src/tar.c:527 msgid "don't extract file modified time" -msgstr "" +msgstr "não extrai hora modificada do ficheiro" #: src/tar.c:529 msgid "" "try extracting files with the same ownership as exists in the archive " "(default for superuser)" msgstr "" +"tenta extrair ficheiros com o mesmo dono que existe no arquivo (predefinição " +"para super-utilizador)" #: src/tar.c:531 msgid "extract files as yourself (default for ordinary users)" -msgstr "" +msgstr "extrai ficheiros como você mesmo (predefinição para utilizador normal)" #: src/tar.c:533 msgid "always use numbers for user/group names" -msgstr "" +msgstr "usa sempre números para nomes de utilizador/grupo" #: src/tar.c:535 msgid "extract information about file permissions (default for superuser)" msgstr "" +"extrai informação sobre permissões de ficheiro (predefinição para super-" +"utilizador)" #: src/tar.c:539 msgid "" "apply the user's umask when extracting permissions from the archive (default " "for ordinary users)" msgstr "" +"aplicar umask de utilizador ao extrair permissões do arquivo (predefinição " +"para utilizador norma)" #: src/tar.c:541 msgid "" "member arguments are listed in the same order as the files in the archive" msgstr "" +"argumentos de membro são listados na mesma ordem que os ficheiros no arquivo" #: src/tar.c:545 msgid "" "delay setting modification times and permissions of extracted directories " "until the end of extraction" msgstr "" +"atrasa a definição de horas de modificação e permissões de pastas extraídas " +"até à conclusão da extração" #: src/tar.c:548 msgid "cancel the effect of --delay-directory-restore option" -msgstr "" +msgstr "cancela o efeito da opção --delay-directory-restore" #: src/tar.c:549 msgid "ORDER" -msgstr "" +msgstr "ORDEM" #: src/tar.c:551 msgid "directory sorting order: none (default), name or inode" -msgstr "" +msgstr "ordem das pastas: nenhuma (predefinição), nome ou inode" #: src/tar.c:553 msgid "directory sorting order: none (default) or name" -msgstr "" +msgstr "ordem das pastas: nenhuma (predefinição) ou nome" #: src/tar.c:560 msgid "Handling of extended file attributes:" -msgstr "" +msgstr "Gestão de atributos de ficheiro estendidos:" #: src/tar.c:563 msgid "Enable extended attributes support" -msgstr "" +msgstr "Activar suporte a atributos estendidos" #: src/tar.c:565 msgid "Disable extended attributes support" -msgstr "" +msgstr "Desactivar suporte a atributos estendidos" #: src/tar.c:566 src/tar.c:568 msgid "MASK" -msgstr "" +msgstr "MÁSCARA" #: src/tar.c:567 msgid "specify the include pattern for xattr keys" -msgstr "" +msgstr "especifica o padrão de inclusão para chaves xattr" #: src/tar.c:569 msgid "specify the exclude pattern for xattr keys" -msgstr "" +msgstr "especifica o padrão de exclusão para chaves xattr" #: src/tar.c:571 msgid "Enable the SELinux context support" -msgstr "" +msgstr "Activar suporte a contexto SELinux" #: src/tar.c:573 msgid "Disable the SELinux context support" -msgstr "" +msgstr "Desactivar suporte a contexto SELinux" #: src/tar.c:575 msgid "Enable the POSIX ACLs support" -msgstr "" +msgstr "Activar suporte a POSIX ACLs" #: src/tar.c:577 msgid "Disable the POSIX ACLs support" -msgstr "" +msgstr "Desactivar suporte a POSIX ACLs" #: src/tar.c:582 msgid "Device selection and switching:" -msgstr "" +msgstr "Selecção e troca de dispositivo:" #: src/tar.c:584 msgid "ARCHIVE" -msgstr "" +msgstr "ARQUIVO" #: src/tar.c:585 msgid "use archive file or device ARCHIVE" -msgstr "" +msgstr "usa o ficheiro de arquivo ou o dispositivo ARQUIVO" #: src/tar.c:587 msgid "archive file is local even if it has a colon" -msgstr "" +msgstr "o ficheiro arquivo é local, mesmo que tenha dois pontos" #: src/tar.c:589 msgid "use given rmt COMMAND instead of rmt" -msgstr "" +msgstr "usa COMANDO rmt em vez de rmt" #: src/tar.c:591 msgid "use remote COMMAND instead of rsh" -msgstr "" +msgstr "usa COMANDO remoto em vez de rsh" #: src/tar.c:595 msgid "specify drive and density" -msgstr "" +msgstr "especifica unidade e densidade" #: src/tar.c:609 -#, fuzzy msgid "create/list/extract multi-volume archive" -msgstr "N�o se pode verificar arquivos multi-volume" +msgstr "cria/lista/extrai arquivos multi-volume" #: src/tar.c:611 msgid "change tape after writing NUMBER x 1024 bytes" -msgstr "" +msgstr "muda a fita após escrever NÚMERO x 1024 bytes" #: src/tar.c:613 msgid "run script at end of each tape (implies -M)" -msgstr "" +msgstr "executa o script no fim de cada fita (implica -M)" #: src/tar.c:616 msgid "use/update the volume number in FILE" -msgstr "" +msgstr "usa/actualiza o número do volume em FICHEIRO" #: src/tar.c:621 msgid "Device blocking:" -msgstr "" +msgstr "Bloqueio de dispositivo:" #: src/tar.c:623 msgid "BLOCKS" -msgstr "" +msgstr "BLOCOS" #: src/tar.c:624 msgid "BLOCKS x 512 bytes per record" -msgstr "" +msgstr "BLOCOS x 512 bytes por registo" #: src/tar.c:626 msgid "NUMBER of bytes per record, multiple of 512" -msgstr "" +msgstr "NÚMERO de bytes por registo, múltiplo de 512" #: src/tar.c:628 msgid "ignore zeroed blocks in archive (means EOF)" -msgstr "" +msgstr "ignora blocos a zero no arquivo (significa EOF)" #: src/tar.c:630 msgid "reblock as we read (for 4.2BSD pipes)" -msgstr "" +msgstr "rebloqueia à medida que lê (para túneis 4.2BSD)" #: src/tar.c:635 -#, fuzzy msgid "Archive format selection:" -msgstr "Arquivo para stdin" +msgstr "Selecção de formato do arquivo:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" -msgstr "" +msgstr "FORMATO" #: src/tar.c:638 msgid "create archive of the given format" -msgstr "" +msgstr "cria arquivo no formato indicado" #: src/tar.c:640 msgid "FORMAT is one of the following:" -msgstr "" +msgstr "FORMATO é um dos seguintes:" #: src/tar.c:641 msgid "old V7 tar format" -msgstr "" +msgstr "formato V7 tar antigo" #: src/tar.c:644 msgid "GNU format as per tar <= 1.12" -msgstr "" +msgstr "formato GNU se tar <= 1.12" #: src/tar.c:646 msgid "GNU tar 1.13.x format" -msgstr "" +msgstr "formato GNU tar 1.13.x" #: src/tar.c:648 msgid "POSIX 1003.1-1988 (ustar) format" -msgstr "" +msgstr "formato POSIX 1003.1-1988 (ustar)" #: src/tar.c:650 msgid "POSIX 1003.1-2001 (pax) format" -msgstr "" +msgstr "formato POSIX 1003.1-2001 (pax)" #: src/tar.c:651 msgid "same as pax" -msgstr "" +msgstr "igual a pax" #: src/tar.c:654 msgid "same as --format=v7" -msgstr "" +msgstr "igual a --format=v7" #: src/tar.c:657 msgid "same as --format=posix" -msgstr "" +msgstr "igual a --format=posix" #: src/tar.c:658 msgid "keyword[[:]=value][,keyword[[:]=value]]..." -msgstr "" +msgstr "palavra-chave[[:]=valor][,palavra-chave[[:]=valor]]..." #: src/tar.c:659 msgid "control pax keywords" -msgstr "" +msgstr "controla palavras-chave pax" #: src/tar.c:660 msgid "TEXT" -msgstr "" +msgstr "TEXTO" #: src/tar.c:661 msgid "" "create archive with volume name TEXT; at list/extract time, use TEXT as a " "globbing pattern for volume name" msgstr "" +"cria arquivo com nome de volume TEXTO; à hora de listagem/extracção, usa " +"TEXTO como padrão para nome de volume" #: src/tar.c:666 -#, fuzzy msgid "Compression options:" -msgstr "H� conflitos entre as op��es de compress�o" +msgstr "Opções de compressão:" #: src/tar.c:668 -#, fuzzy msgid "use archive suffix to determine the compression program" -msgstr "N�o se consegue escrever para o programa de compress�o" +msgstr "usa o sufixo do arquivo para determinar o programa de compressão" #: src/tar.c:670 -#, fuzzy msgid "do not use archive suffix to determine the compression program" -msgstr "N�o se consegue escrever para o programa de compress�o" +msgstr "não usa o sufixo do arquivo para determinar o programa de compressão" #: src/tar.c:672 msgid "PROG" -msgstr "" +msgstr "PROG" #: src/tar.c:673 msgid "filter through PROG (must accept -d)" -msgstr "" +msgstr "filtro por PROG (tem de aceitar -d)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" -msgstr "" +msgstr "Selecção de ficheiro local:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" -msgstr "" +msgstr "fica no sistema de ficheiros local ao criar o arquivo" -#: src/tar.c:693 -#, fuzzy +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" -msgstr "Retira-se \"/\" das liga��es (\"links\") absolutas " +msgstr "não remover \"/\" iniciais dos nomes de ficheiro" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" msgstr "" +"seguir ligações simbólicas; arquiva e despeja os ficheiros para onde elas " +"apontam" -#: src/tar.c:697 +#: src/tar.c:698 msgid "follow hard links; archive and dump the files they refer to" msgstr "" +"seguir ligações rígidas; arquiva e despeja os ficheiros a que elas se referem" -#: src/tar.c:698 +#: src/tar.c:699 msgid "MEMBER-NAME" -msgstr "" +msgstr "NOME-MEMBRO" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" -msgstr "" +msgstr "começa no membro NOME-MEMBRO ao ler o arquivo" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" -msgstr "" +msgstr "armazenar só ficheiros mais recentes que DATA-OU-FICHEIRO" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" -msgstr "" +msgstr "DATA" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" -msgstr "" +msgstr "compara data e hora quando só os dados mudarem" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" -msgstr "" +msgstr "CONTROLO" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" -msgstr "" +msgstr "segurança antes de remover, escolha o CONTROLO de versão" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" -msgstr "" +msgstr "CADEIA" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" msgstr "" +"segurança antes de remover, ignorar o sufixo habitual(\"~\" excepto se " +"sobreposto pela variável de ambiente SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" -msgstr "" +msgstr "Transformação de nome de ficheiro:" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" -msgstr "" +msgstr "remove NÚMERO componentes iniciais de nomes de ficheiro ao extrair" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" -msgstr "" +msgstr "EXPRESSÃO" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" -msgstr "" +msgstr "usa EXPRESSÃO sed de substituição para transformar nomes de ficheiro" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" -msgstr "" +msgstr "Saída informativa:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" -msgstr "" +msgstr "lista verbosamente os ficheiros processados" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" -msgstr "" +msgstr "PALAVRA-CHAVE" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" -msgstr "" +msgstr "controlo de aviso" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" +"mostra mensagens de progresso a cada NÚMERO registos (predefinição - 10)" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" -msgstr "" +msgstr "ACÇÃO" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" -msgstr "" +msgstr "executa ACÇÃO a cada ponto de controlo" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" -msgstr "" +msgstr "mostra uma mensagem se nem todas as ligações forem despejadas" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" -msgstr "" +msgstr "SINAL" -#: src/tar.c:739 +#: src/tar.c:740 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 "" +"mostra o total de bytes após processar o arquivo; com um argumento - mostra " +"o total de bytes quando este SINAL for entregue; Os sinais permitidos são: " +"SIGHUP, SIGQUIT, SIGINT, SIGUSR1 e SIGUSR2; os nomes sem o prefixo SIG " +"também são aceites" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" -msgstr "" +msgstr "mostra horas de modificação de ficheiros em UTC" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" -msgstr "" +msgstr "mostra hora do ficheiro em resolução completa" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" -msgstr "" +msgstr "envia saída verbosa para FICHEIRO" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" -msgstr "" +msgstr "mostra número de bloco dentro do arquivo com cada mensagem" -#: src/tar.c:752 -#, fuzzy +#: src/tar.c:753 msgid "ask for confirmation for every action" -msgstr "N�o se consegue obter confirma��o, do utilizador" +msgstr "pedir confirmação para cada acção" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" -msgstr "" +msgstr "mostra predefinições tar" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" -msgstr "" +msgstr "mostra intervalos válidos para campos de ficheiro-snapshot" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "" +"ao listar ou extrair, lista cada pasta que não cumpre o critério de procura" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" -msgstr "" +msgstr "mostra nomes de ficheiro ou arquivo após a transformação" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" -msgstr "" +msgstr "ESTILO" -#: src/tar.c:765 +#: src/tar.c:766 msgid "set name quoting style; see below for valid STYLE values" -msgstr "" +msgstr "define o estilo de aspas; veja abaixo os valores de ESTILO válidos" -#: src/tar.c:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" -msgstr "" +msgstr "adicionalmente, pôr aspas em caracteres de CADEIA" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" -msgstr "" +msgstr "desactivar aspas para caracteres de CADEIA" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" -msgstr "" +msgstr "Opções de compatibilidade:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" -msgstr "" +msgstr "ao criar, igual a --old-archive; ao extrair, igual a --no-same-owner" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" -msgstr "" +msgstr "Outras opções:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" -msgstr "" +msgstr "desactivar uso de opções potencialmente perigosas" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" -msgstr "" +msgstr "\"%s\" não pode ser usada com \"%s\"" -#: src/tar.c:933 -#, fuzzy +#: src/tar.c:934 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\"" +msgstr "" +"Não pode especificar mais de uma das opções \"-Acdtrux\", \"--delete\" ou " +"\"--test-label\"" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" -msgstr "H� conflitos entre as op��es de compress�o" +msgstr "Há conflitos nas opções de compressão" -#: src/tar.c:1004 -#, fuzzy, c-format +#: src/tar.c:1000 +#, c-format msgid "Unknown signal name: %s" -msgstr "Op��o \"%c\" desconhecida" +msgstr "Nome de sinal desconhecido: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" -msgstr "" +msgstr "Ficheiro amostra de data não encontrado" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" -msgstr "" +msgstr "A substituir %s por formato de data %s desconhecido" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" -msgstr "" +msgstr "Opção %s: a tratar data \"%s\" como %s" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" -msgstr "" +msgstr "filtrar o arquivo por %s" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" -msgstr "" +msgstr "Argumentos válidos para a opção --quoting-style option:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" msgstr "" +"\n" +"Predefinições *deste* tar:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" -msgstr "" +msgstr "ID de dono ou grupo inválida" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" -msgstr "" +msgstr "Factor de bloqueio inválido" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" -msgstr "" +msgstr "Tamanho de fita inválido" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" -msgstr "" +msgstr "Valor de nível incremental inválido" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" -msgstr "" +msgstr "Mais de uma data limite" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" -msgstr "" +msgstr "Valor de versão dispersa inválido" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "" +"--atime-preserve=\"system\" não é suportado nesta plataforma plataforma" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" -msgstr "" +msgstr "valor de --checkpoint não é um inteiro" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" -msgstr "" +msgstr "Modo inválido indicado na opção" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" -msgstr "" +msgstr "Número inválido" -#: src/tar.c:1861 -#, fuzzy +#: src/tar.c:1870 msgid "Invalid record size" -msgstr "Valor inv�lido para tamanho de registo (record_size)" +msgstr "Tamanho de registo inválido" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." -msgstr "O tamanho dos registos tem que ser m�ltiplo de %d." +msgstr "O tamanho dos registos tem de ser múltiplo de %d." -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" -msgstr "" +msgstr "Número de elementos inválidos" -#: src/tar.c:1935 -#, fuzzy +#: src/tar.c:1944 msgid "Only one --to-command option allowed" -msgstr "S� se permite uma op��o de compress�o" +msgstr "Só é permitida uma opção --to-command" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" -msgstr "" +msgstr "Argumento de densidade mal formado: %s" -#: src/tar.c:2049 -#, fuzzy, c-format +#: src/tar.c:2058 +#, c-format msgid "Unknown density: '%c'" -msgstr "Op��o \"%c\" desconhecida" +msgstr "Densidade desconhecida: \"%c\"" -#: src/tar.c:2066 -#, fuzzy, c-format +#: src/tar.c:2075 +#, 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" +msgstr "Opções \"-[0-7][lmh]\" não suportada *neste* tar" -#: src/tar.c:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" -msgstr "" +msgstr "%s:%lu: localização do erro" -#: src/tar.c:2076 -#, fuzzy, c-format +#: src/tar.c:2085 +#, c-format msgid "error parsing %s" -msgstr "Erro durante o fecho de %s" +msgstr "Erro ao analisar %s" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." -msgstr "" +msgstr "[FICHEIRO]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" -msgstr "" +msgstr "argumentos não-opção em %s" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" -msgstr "" +msgstr "impossível dividir TAR_OPTIONS: %s" -#: src/tar.c:2291 -#, fuzzy, c-format +#: src/tar.c:2300 +#, c-format msgid "Old option '%c' requires an argument." -msgstr "A antiga op��o `%c' exige um argumento." +msgstr "A opção antiga \"%c\" requer um argumento." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" -msgstr "" +msgstr "--occurrence não faz sentido sem uma lista de ficheiros" -#: src/tar.c:2390 -#, fuzzy +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" -msgstr "Para usar v�rios arquivos � necess�ria a op��o \"-M\"" +msgstr "Múltiplos ficheiros de arquivo requerem a opção \"-M\"" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" -msgstr "" +msgstr "--level não faz sentido sem --listed-incremental" -#: src/tar.c:2424 +#: 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] "" +msgstr[0] "%s: rótulo de volume muito longo (o limite é %lu byte)" +msgstr[1] "%s: rótulo de volume muito longo (o limite é %lu bytes)" -#: src/tar.c:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" -msgstr "N�o se pode verificar arquivos multi-volume" +msgstr "Impossível verificar arquivos multi-volume" -#: src/tar.c:2439 -#, fuzzy +#: src/tar.c:2448 msgid "Cannot verify compressed archives" -msgstr "N�o se pode actualizar o verificar um arquivo comprimido" +msgstr "Impossível verificar arquivos comprimidos" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" -msgstr "N�o se pode de usar arquivos multi-volume comprimidos" +msgstr "Impossível usar arquivos multi-volume comprimidos" -#: src/tar.c:2457 -#, fuzzy +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" -msgstr "N�o se pode actualizar o verificar um arquivo comprimido" +msgstr "Impossível concatenar arquivos comprimidos" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" -msgstr "" +msgstr "--clamp-mtime precisa de uma data especificada com --mtime" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" -msgstr "" +msgstr "--pax-option só pode ser usada em arquivos POSIX" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" -msgstr "" +msgstr "--acls só pode ser usado em arquivos POSIX" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" -msgstr "" +msgstr "--selinux só pode ser usado em arquivos POSIX" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" -msgstr "" +msgstr "--xattrs só pode ser usado em arquivos POSIX" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" msgstr "" +"Impossível deduzir o nome da pasta de topo; por favor, defina-o " +"explicitamente com --one-top-level=PASTA" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" -msgstr "" +msgstr "Tamanho do volume não pode ser inferior ao tamanho do registo" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" -msgstr "Recusa-se, covardemente, a criar um arquivo vazio" +msgstr "Recusa cobardemente a criação um arquivo vazio" -#: src/tar.c:2623 -#, fuzzy +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" -msgstr "As op��es \"-Aru\" s�o imcompat�veis com \"-f -\"" +msgstr "Opções \"-Aru\" são incompatíveis com \"-f -\"" -#: src/tar.c:2711 -#, fuzzy +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" -msgstr "Tem que se especificar uma das op��es \"-Acdtrux\"" +msgstr "" +"Tem de especificar uma opção de \"-Acdtrux\", \"--delete\" ou \"--test-label" +"\"" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" -msgstr "" +msgstr "A sair com estado de falha devido a erros prévios" -#: src/update.c:87 -#, fuzzy, c-format +#: src/update.c:86 +#, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" -msgstr[0] "%s: O ficheiro diminui em %d bytes, (desgra�a!)" -msgstr[1] "%s: O ficheiro diminui em %d bytes, (desgra�a!)" +msgstr[0] "%s: ficheiro encolhido em %s byte" +msgstr[1] "%s: ficheiro encolhido em %s bytes" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format msgid "Keyword %s is unknown or not yet implemented" -msgstr "" +msgstr "Palavra-chave %s desconhecida ou ainda não implementada" -#: src/xheader.c:174 +#: src/xheader.c:173 msgid "Time stamp is out of allowed range" +msgstr "Carimbo fora do alcance permitido" + +#: src/xheader.c:188 +#, c-format +msgid "Malformed pax option: %s" msgstr "" -#: src/xheader.c:205 +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" -msgstr "" +msgstr "Não pode usar o padrão %s" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" +msgstr "Não pode ignorar a palavra-chave %s" + +#: src/xheader.c:476 +msgid "can't update global extended header record" msgstr "" -#: src/xheader.c:668 +#: src/xheader.c:686 msgid "Malformed extended header: missing length" -msgstr "" +msgstr "Cabeçalho estendido mal formado: tamanho em falta" -#: src/xheader.c:677 +#: src/xheader.c:695 #, c-format msgid "Extended header length %*s is out of range" -msgstr "" +msgstr "Tamanho de cabeçalho estendido %*s fora de alcance" -#: src/xheader.c:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" -msgstr "" +msgstr "Cabeçalho estendido mal formado: espaço em falta após tamanho" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" -msgstr "" +msgstr "Cabeçalho estendido mal formado: sinal de igual em falta" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" -msgstr "" +msgstr "Cabeçalho estendido mal formado: newline em falta" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" -msgstr "" +msgstr "A ignorar palavra-chave de cabeçalho estendido \"%s\" desconhecida" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" +"Par palavra-chave/valor gerado muito longo (palavra-chave=%s, tamanho=%s)" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:1053 +#: src/xheader.c:1071 #, c-format msgid "Extended header %s=%s is out of range %s..%s" -msgstr "" +msgstr "Cabeçalho estendido %s=%s fora de alcance %s..%s" -#: src/xheader.c:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" -msgstr "" +msgstr "Cabeçalho estendido mal formado: %s=%s inválido" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" -msgstr "" +msgstr "Malformed extended header: %s=%s excessivo" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" +"Cabeçalho estendido mal formado: %s inválido: delimitador %c inesperado" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" -msgstr "" +msgstr "Cabeçalho estendido mal formado: %s inválido: número ímpar de valores" -#: src/checkpoint.c:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" -msgstr "" +msgstr "%s: não é um valor de expiração válido" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" -msgstr "" +msgstr "%s: acção de ponto de controlo desconhecida" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" -msgstr "" +msgstr "escrever" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" -msgstr "" +msgstr "ler" #. 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:218 -#, fuzzy, c-format +#: src/checkpoint.c:252 +#, c-format msgid "Write checkpoint %u" -msgstr "Escreve-se o ponto de verifica��o %d" +msgstr "Ponto de controlo 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:224 -#, fuzzy, c-format +#: src/checkpoint.c:258 +#, c-format msgid "Read checkpoint %u" -msgstr "Leu-se o ponto de verifica��o %d" +msgstr "Ponto de controlo de leitura %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "" +"genfile manipula ficheiros de dados para o conjunto de teste GNU paxutils.\n" +"As OPÇÕES são:\n" -#: tests/genfile.c:131 -#, fuzzy +#: tests/genfile.c:126 msgid "File creation options:" -msgstr "H� conflitos entre as op��es de compress�o" +msgstr "Opções de criação de ficheiros:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" -msgstr "" +msgstr "TAMANHO" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" -msgstr "" +msgstr "Cria ficheiro do TAMANHO indicado" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" -msgstr "" +msgstr "Escrever em NOME, em vez da saída padrão" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" -msgstr "" +msgstr "Ler nomes de ficheiro de FICHEIRO" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" -msgstr "" +msgstr "-T lê nomes terminados em nulo" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" +"Encher o ficheiro com o PADRÃO indicado. PADRÃO é \"default\" ou \"zeros\"" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" -msgstr "" +msgstr "Tamanho do bloco para ficheiro disperso" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" +"Gerar ficheiro disperso. O resto da linha de comandos dá o mapa do ficheiro." -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" -msgstr "" +msgstr "DESVIO" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" -msgstr "" +msgstr "Ir para o desvio dado antes de escrever dados" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" -msgstr "" +msgstr "Suprimir mensagens de diagnóstico não-fatais" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" -msgstr "" +msgstr "Opções de estatísticas de ficheiros" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" +"Mostrar conteúdo de estrutura para cada ficheiro indicado. O FORMATO " +"predefinido é: " -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" -msgstr "" +msgstr "Opções de execução síncrona:" -#: tests/genfile.c:168 -msgid "OPTION" +#: tests/genfile.c:163 +msgid "N" msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" +"Executar ARGUMENTOSS. Útil com --checkpoint e uma de --cut, --append, --" +"touch, --unlink" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" +"Realizar a acção indicada (ver abaixo) ao atingir o ponto de controlo NÚMERO" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" -msgstr "" +msgstr "Definir data para a opção--touch seguinte" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" -msgstr "" +msgstr "Mostrar pontos de controlo executados e estado de saída de COMANDO" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" +"Acções de execução síncrona. São executadas quando o número do ponto de " +"controlo dado por --checkpoint é atingido." -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" +"Truncar FICHEIRO para o tamanho especificado pela opção --length anterior " +"(ou 0, se não foi indicado)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" +"Anexar TAMANHO bytes a FICHEIRO. TAMANHO é dado pela opção --length anterior." -#: tests/genfile.c:193 -#, fuzzy +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" -msgstr "N�o se conseguiu modificar os tempos de acesso e modifica��o de %s" +msgstr "Actualizar o acesso e horas de modificação de FICHEIRO" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" -msgstr "" +msgstr "Executar COMANDO" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" -msgstr "" +msgstr "Eliminar FICHEIRO" -#: tests/genfile.c:250 -#, fuzzy, c-format +#: tests/genfile.c:245 +#, c-format msgid "Invalid size: %s" -msgstr "Formato de data inv�lido \"%s\"" +msgstr "Tamanho inválido: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" -msgstr "" +msgstr "Nº fora do alcance permitido: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" -msgstr "" +msgstr "Tamanho negativo: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" -msgstr "" +msgstr "stat(%s) falhou" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" -msgstr "" +msgstr "tamanho de ficheiro pedido %lu, actual %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" -msgstr "" +msgstr "o ficheiro criado não é disperso" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" -msgstr "" +msgstr "Erro ao analisar nº perto de \"%s\"" -#: tests/genfile.c:381 -#, fuzzy, c-format +#: tests/genfile.c:372 +#, c-format msgid "Unknown date format" -msgstr "Erro desconhecido, do sistema" +msgstr "Formato de data desconhecido" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" -msgstr "" +msgstr "[ARGUMENTOS...]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 -#, fuzzy, c-format +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 +#, c-format msgid "cannot open `%s'" -msgstr "N�o se consegue abrir %s" +msgstr "Impossível abrir %s" -#: tests/genfile.c:448 -#, fuzzy +#: tests/genfile.c:439 msgid "cannot seek" -msgstr "N�o se consegue executar %s" +msgstr "impossível ir para" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" -msgstr "" +msgstr "nome de ficheiro contém carácter nulo" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" +"impossível gerar ficheiros dispersos na saída padrão, use a opção --file" -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" -msgstr "" +msgstr "máscara incorrecta (perto de \"%s\")" -#: tests/genfile.c:675 tests/genfile.c:708 -#, fuzzy, c-format +#: tests/genfile.c:666 tests/genfile.c:699 +#, c-format msgid "Unknown field `%s'" -msgstr "Op��o \"%c\" desconhecida" +msgstr "Campo desconhecido \"%s\"" -#: tests/genfile.c:735 -#, fuzzy, c-format +#: tests/genfile.c:726 +#, c-format msgid "cannot set time on `%s'" -msgstr "N�o se consegue executar \"stat\" para o ficheiro %s" +msgstr "impossível definir hora em \"%s\"" -#: tests/genfile.c:765 -#, fuzzy, c-format +#: tests/genfile.c:756 +#, c-format msgid "cannot truncate `%s'" -msgstr "N�o se consegue executar \"stat\" para %s" +msgstr "impossível truncar \"%s\"" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" -msgstr "" +msgstr "o comando falhou: %s" -#: tests/genfile.c:781 -#, fuzzy, c-format +#: tests/genfile.c:772 +#, c-format msgid "cannot stat `%s'" -msgstr "N�o se consegue executar \"stat\" para %s" +msgstr "impossível obter informação para \"%s\"" -#: tests/genfile.c:785 -#, fuzzy, c-format +#: tests/genfile.c:776 +#, c-format msgid "cannot remove directory `%s'" -msgstr "N�o se consegue abrir a directoria %s" +msgstr "impossível remover a pasta \"%s\"" -#: tests/genfile.c:788 -#, fuzzy, c-format +#: tests/genfile.c:779 +#, c-format msgid "cannot unlink `%s'" -msgstr "N�o se consegue ler a liga��o (\"link\") %s" +msgstr "impossível desligar \"%s\"" #: tests/genfile.c:918 #, c-format msgid "Command exited successfully\n" -msgstr "" +msgstr "O comando saiu com sucesso\n" #: tests/genfile.c:920 #, c-format msgid "Command failed with status %d\n" -msgstr "" +msgstr "O comando falhou com estado %d\n" #: tests/genfile.c:924 #, c-format msgid "Command terminated on signal %d\n" -msgstr "" +msgstr "O comando terminou ao sinal %d\n" #: tests/genfile.c:926 #, c-format msgid "Command stopped on signal %d\n" -msgstr "" +msgstr "O comando parou ao sinal %d\n" #: tests/genfile.c:929 #, c-format msgid "Command dumped core\n" -msgstr "" +msgstr "O comando despejou o núcleo\n" #: tests/genfile.c:932 #, c-format msgid "Command terminated\n" -msgstr "" +msgstr "O comando terminou\n" #: tests/genfile.c:964 -#, fuzzy, c-format +#, c-format msgid "--stat requires file names" -msgstr "--Nomes de ficheiros truncados--\n" +msgstr "--stat requer nomes de ficheiro" + +#~ msgid "OPTION" +#~ msgstr "OPÇÃO" #~ msgid "Cannot close file #%d" -#~ msgstr "N�o se consegue fechar o ficheiro #%d" +#~ msgstr "N�o se consegue fechar o ficheiro #%d" #~ msgid "Cannot close descriptor %d" -#~ msgstr "N�o se consegue fechar o ficheiro de descritor %d" +#~ msgstr "N�o se consegue fechar o ficheiro de descritor %d" #, fuzzy #~ msgid "Cannot properly duplicate %s" -#~ msgstr "N�o se consegue redireccionar %s" +#~ msgstr "N�o se consegue redireccionar %s" #~ msgid "Cannot use compressed or remote archives" -#~ msgstr "N�o se pode usar arquivos comprimidos ou remotos" +#~ msgstr "N�o se pode usar arquivos comprimidos ou remotos" #~ msgid "Cannot open pipe" -#~ msgstr "N�o se consegue abrir \"pipe\"" +#~ msgstr "N�o se consegue abrir \"pipe\"" #~ msgid "Cannot fork" -#~ msgstr "N�o se consegue criar processo ( \"fork\" )" +#~ msgstr "N�o se consegue criar processo ( \"fork\" )" #~ msgid "tar (child)" #~ msgstr "tar (filho)" @@ -2911,13 +3002,13 @@ msgstr "--Nomes de ficheiros truncados--\n" #~ msgstr "(filho) \"pipe\" para \"stdin\"" #~ msgid "Cannot open archive %s" -#~ msgstr "N�o se consegue abrir o arquivo %s" +#~ msgstr "N�o se consegue abrir o arquivo %s" #~ msgid "Archive to stdout" #~ msgstr "Arquivo para stdout" #~ msgid "Child cannot fork" -#~ msgstr "Processo filho n�o consegue executar \"fork\"" +#~ msgstr "Processo filho n�o consegue executar \"fork\"" #~ msgid "((child)) Pipe to stdout" #~ msgstr "((filho)) \"pipe\" para \"stdout\"" @@ -2929,7 +3020,7 @@ msgstr "--Nomes de ficheiros truncados--\n" #~ msgstr "(neto) \"Pipe\" para \"stdout\"" #~ msgid "Cannot read from compression program" -#~ msgstr "N�o se consegue ler do programa de compress�o" +#~ msgstr "N�o se consegue ler do programa de compress�o" #~ msgid "(child) Pipe to stdout" #~ msgstr "(filho) \"pipe\" para \"stdout\"" @@ -2941,13 +3032,13 @@ msgstr "--Nomes de ficheiros truncados--\n" #~ msgstr "(neto) \"Pipe\" para \"stdout\"" #~ msgid "Write to compression program short %d bytes" -#~ msgstr "Faltam %d bytes no que se escreveu para o programa de compress�o" +#~ msgstr "Faltam %d bytes no que se escreveu para o programa de compress�o" #~ msgid "Could not allocate memory for blocking factor %d" -#~ msgstr "N�o se conseguiu reservar mem�ria para um factor de bloco %d" +#~ msgstr "N�o se conseguiu reservar mem�ria para um factor de bloco %d" #~ msgid "Only wrote %u of %u bytes to %s" -#~ msgstr "S� se escreveram %u \"bytes\" de um total de %u em %s" +#~ msgstr "S� se escreveram %u \"bytes\" de um total de %u em %s" #~ msgid "Read error on %s" #~ msgstr "Erro de leitura sobre %s" @@ -2956,13 +3047,13 @@ msgstr "--Nomes de ficheiros truncados--\n" #~ msgstr "Leitura de %s\n" #~ msgid "WARNING: No volume header" -#~ msgstr "ATEN��O: N�o h� cabe�alho de volume" +#~ msgstr "ATEN��O: N�o h� cabe�alho de volume" #~ msgid "Only read %d bytes from archive %s" -#~ msgstr "S� se leram %d \"bytes\" do arquivo %s" +#~ msgstr "S� se leram %d \"bytes\" do arquivo %s" #~ msgid "WARNING: Cannot close %s (%d, %d)" -#~ msgstr "ATEN��O: N�o se consegue fechar %s (%d, %d)" +#~ msgstr "ATEN��O: N�o se consegue fechar %s (%d, %d)" #~ msgid "Child died with signal %d%s" #~ msgstr "Processo filho morreu com o sinal %d%s" @@ -2971,10 +3062,10 @@ msgstr "--Nomes de ficheiros truncados--\n" #~ msgstr "Processo filho terminou com estado %d" #~ msgid "Cannot fork!" -#~ msgstr "N�o se consegue criar processo! ( \"fork\" )" +#~ msgstr "N�o se consegue criar processo! ( \"fork\" )" #~ msgid "Cannot exec a shell %s" -#~ msgstr "N�o se consegue executar uma \"shell\" %s" +#~ msgstr "N�o se consegue executar uma \"shell\" %s" #, fuzzy #~ msgid "Removing leading `/' from absolute path names in the archive" @@ -2989,81 +3080,81 @@ msgstr "--Nomes de ficheiros truncados--\n" #~ "ficheiro %s" #~ msgid "Amount actually written is (I hope) %d.\n" -#~ msgstr "A quantidade realmente escrita � %d (esperemos!).\n" +#~ msgstr "A quantidade realmente escrita � %d (esperemos!).\n" #~ msgid "Cannot add file %s" -#~ msgstr "N�o � poss�vel acrescentar o ficheiro %s" +#~ msgstr "N�o � poss�vel acrescentar o ficheiro %s" #, fuzzy #~ msgid "Cannot add directory %s" -#~ msgstr "N�o se consegue abrir a directoria %s" +#~ msgstr "N�o se consegue abrir a directoria %s" #~ msgid "File name %s%s too long" #~ msgstr "Nome de ficheiro %s%s longo demais" #~ msgid "Could not allocate memory for diff buffer of %d bytes" #~ msgstr "" -#~ "N�o se conseguiu reservar mem�ria para um \"buffer\" de compara��o, de %d " +#~ "N�o se conseguiu reservar mem�ria para um \"buffer\" de compara��o, de %d " #~ "\"bytes\"" #~ msgid "Cannot read %s" -#~ msgstr "N�o se consegue ler %s" +#~ msgstr "N�o se consegue ler %s" #, fuzzy #~ msgid "Data differs" -#~ msgstr "%s: Os dados s�o diferentes\n" +#~ msgstr "%s: Os dados s�o diferentes\n" #, fuzzy #~ msgid "File does not exist" -#~ msgstr "%s: N�o existe\n" +#~ msgstr "%s: N�o existe\n" #, fuzzy #~ msgid "Not a regular file" -#~ msgstr "%s: N�o � um ficheiro normal\n" +#~ msgstr "%s: N�o � um ficheiro normal\n" #, fuzzy #~ msgid "Does not exist" -#~ msgstr "%s: N�o existe\n" +#~ msgstr "%s: N�o existe\n" #, fuzzy #~ msgid "No such file or directory" -#~ msgstr "%s: Ficheiro, ou directoria, n�o existe\n" +#~ msgstr "%s: Ficheiro, ou directoria, n�o existe\n" #, fuzzy #~ msgid "Mode or device-type changed" -#~ msgstr "%s: O modo ou o tipo de perif�rico mudou\n" +#~ msgstr "%s: O modo ou o tipo de perif�rico mudou\n" #, fuzzy #~ msgid "No longer a directory" -#~ msgstr "%s: J� n�o � uma directoria\n" +#~ msgstr "%s: J� n�o � uma directoria\n" #~ msgid "Cannot open file %s" -#~ msgstr "N�o se consegue abrir o ficheiro %s" +#~ msgstr "N�o se consegue abrir o ficheiro %s" #~ msgid "Cannot seek to %ld in file %s" -#~ msgstr "N�o se consegue mudar (\"seek\") para a posi��o %ld do ficheiro %s" +#~ msgstr "N�o se consegue mudar (\"seek\") para a posi��o %ld do ficheiro %s" #~ msgid "Could not rewind archive file for verify" -#~ msgstr "N�o se conseguiu rebobinar o arquivo para verifica��o" +#~ msgstr "N�o se conseguiu rebobinar o arquivo para verifica��o" #~ msgid "Could not re-position archive file" -#~ msgstr "N�o se conseguiu reposicionar o ficheiro arquivo" +#~ msgstr "N�o se conseguiu reposicionar o ficheiro arquivo" #~ msgid "%s: Could not change access and modification times" -#~ msgstr "%s: N�o se conseguiu mudar os tempos de acesso e modifica��o" +#~ msgstr "%s: N�o se conseguiu mudar os tempos de acesso e modifica��o" #, fuzzy #~ msgid "%s: Cannot lchown to uid %d gid %d" -#~ msgstr "%s: N�o se pode fazer \"chown\" para \"uid\" %d \"gid\" %d" +#~ msgstr "%s: N�o se pode fazer \"chown\" para \"uid\" %d \"gid\" %d" #~ msgid "%s: Cannot chown to uid %d gid %d" -#~ msgstr "%s: N�o se pode fazer \"chown\" para \"uid\" %d \"gid\" %d" +#~ msgstr "%s: N�o se pode fazer \"chown\" para \"uid\" %d \"gid\" %d" #~ msgid "%s: Could not write to file" -#~ msgstr "%s: N�o se conseguiu escrever para o ficheiro" +#~ msgstr "%s: N�o se conseguiu escrever para o ficheiro" #~ msgid "%s: Could not create file" -#~ msgstr "%s: N�o foi poss�vel criar o ficheiro" +#~ msgstr "%s: N�o foi poss�vel criar o ficheiro" #~ msgid "%d at %d\n" #~ msgstr "%d em %d\n" @@ -3072,47 +3163,47 @@ msgstr "--Nomes de ficheiros truncados--\n" #~ msgstr "%s: Erro ao fechar" #~ msgid "%s: Could not link to `%s'" -#~ msgstr "%s: N�o se p�de fazer liga��o (link) para `%s'" +#~ msgstr "%s: N�o se p�de fazer liga��o (link) para `%s'" #~ msgid "%s: Could not make node" -#~ msgstr "%s: N�o se p�de criar um nodo" +#~ msgstr "%s: N�o se p�de criar um nodo" #~ msgid "%s: Could not make fifo" -#~ msgstr "%s: N�o se p�de criar um \"fifo\"" +#~ msgstr "%s: N�o se p�de criar um \"fifo\"" #~ msgid "%s: Could not create directory" -#~ msgstr "%s: N�o se p�de criar uma directoria" +#~ msgstr "%s: N�o se p�de criar uma directoria" #~ msgid "Added write and execute permission to directory %s" -#~ msgstr "Acrescentaram-se permiss�es de escrita e de leitura � directoria %s" +#~ msgstr "Acrescentaram-se permiss�es de escrita e de leitura � directoria %s" #~ msgid "Visible long name error" #~ msgstr "Erro evidente num nome longo" #~ msgid "Could not get current directory: %s" -#~ msgstr "N�o se conseguiu determinar a directoria corrente: %s" +#~ msgstr "N�o se conseguiu determinar a directoria corrente: %s" #, fuzzy #~ msgid "File name %s/%s too long" #~ msgstr "Nome de ficheiro %s%s longo demais" #~ msgid "Cannot chdir to %s" -#~ msgstr "N�o se pode mudar para a directoria %s" +#~ msgstr "N�o se pode mudar para a directoria %s" #~ msgid "Error while deleting %s" #~ msgstr "Erro quando se apagava %s" #~ msgid "Hmm, this doesn't look like a tar archive" -#~ msgstr "Pois �..., isto n�o parece ser um arquivo \"tar\"" +#~ msgstr "Pois �..., isto n�o parece ser um arquivo \"tar\"" #~ msgid "Skipping to next file header" -#~ msgstr "Salta para o pr�ximo cabe�alho de ficheiro" +#~ msgstr "Salta para o pr�ximo cabe�alho de ficheiro" #~ msgid "EOF in archive file" #~ msgstr "Fim-de-ficheiro no arquivo" #~ msgid "Only wrote %ld of %ld bytes to file %s" -#~ msgstr "S� se escreveram %ld \"bytes\" de um total de %ld no ficheiro %s" +#~ msgstr "S� se escreveram %ld \"bytes\" de um total de %ld no ficheiro %s" #~ msgid "Visible longname error" #~ msgstr "Erro evidente num nome longo" @@ -3124,25 +3215,25 @@ msgstr "--Nomes de ficheiros truncados--\n" #~ msgstr "Comando desconhecido \"%s\" para decifrar os nomes truncados" #~ msgid "Missing file name after -C" -#~ msgstr "Falta um nome de ficheiro ap�s \"-C\"" +#~ msgstr "Falta um nome de ficheiro ap�s \"-C\"" #~ msgid "rmtd: Cannot allocate buffer space\n" -#~ msgstr "rmtd: N�o se consegue reservar espa�o tempor�rio (\"buffers\")\n" +#~ msgstr "rmtd: N�o se consegue reservar espa�o tempor�rio (\"buffers\")\n" #~ msgid "Cannot allocate buffer space" -#~ msgstr "N�o se consegue reservar espa�o tempor�rio (\"buffer\")" +#~ msgstr "N�o se consegue reservar espa�o tempor�rio (\"buffer\")" #~ msgid "Premature end of file" #~ msgstr "Fim-de-ficheiro prematuro" #~ msgid "rmtd: Garbage command %c\n" -#~ msgstr "rmtd: Comando \"%c\" n�o faz sentido\n" +#~ msgstr "rmtd: Comando \"%c\" n�o faz sentido\n" #, fuzzy #~ msgid "" #~ "\n" #~ "Usage: %s [OPTION]... [FILE]...\n" -#~ msgstr "Utiliza��o: %s [OP��O]... [FICHEIRO]...\n" +#~ msgstr "Utiliza��o: %s [OP��O]... [FICHEIRO]...\n" #~ msgid "" #~ "\n" @@ -3160,17 +3251,17 @@ msgstr "--Nomes de ficheiros truncados--\n" #~ msgstr "" #~ "\n" #~ "Principal modo de funcionamento:\n" -#~ " -t, --list invent�rio do arquivo\n" +#~ " -t, --list invent�rio do arquivo\n" #~ " -x, --extract, --get extrair ficheiros do arquivo\n" #~ " -c, --create criar um novo arquivo\n" #~ " -d, --diff, --compare comparar o arquivo com os actuais ficheiros \n" #~ " -r, --append acrescentar os ficheiros no fim do arquivo\n" -#~ " -u, --update s� acrescentar os ficheiros mais novos do que " -#~ "as vers�es presentes no arquivo\n" +#~ " -u, --update s� acrescentar os ficheiros mais novos do que " +#~ "as vers�es presentes no arquivo\n" #~ " -A, --catenate juntar outros arquivos \"tar\" ao arquivo\n" #~ " --concatenate o mesmo que \"-A\"\n" #~ " --delete apagar no arquivo (excepto para fitas " -#~ "magn�ticas!)\n" +#~ "magn�ticas!)\n" #, fuzzy #~ msgid "" @@ -3199,18 +3290,18 @@ msgstr "--Nomes de ficheiros truncados--\n" #~ "escrever\n" #~ " --remove-files apagar os ficheiros depois de serem " #~ "guardados no arquivo\n" -#~ " -k, --keep-old-files na extrac��o, n�o destruir nenhum ficheiro\n" +#~ " -k, --keep-old-files na extrac��o, n�o destruir nenhum ficheiro\n" #~ " -U, --unlink-first remove cada ficheiro antes de extrair para " #~ "cima dele\n" -#~ "\t\t\t (aparecendo duas vezes, at� apaga directorias completas\n" +#~ "\t\t\t (aparecendo duas vezes, at� apaga directorias completas\n" #~ " -S, --sparse tratar eficientemente ficheiros dispersos \n" -#~ " (os que t�m buracos) \n" +#~ " (os que t�m buracos) \n" #~ " -O, --to-stdout extrair os ficheiros para o \"stdout\" \n" #~ " -G, --incremental tratar um arquivo no velho formato " #~ "incremental GNU\n" #~ " -g, --listed-incremental tratar arquivo no novo formato incremental " #~ "GNU\n" -#~ " --ignore-failed-read ignorar os ficheiros que n�o se consegue " +#~ " --ignore-failed-read ignorar os ficheiros que n�o se consegue " #~ "ler.\n" #~ "\n" @@ -3235,16 +3326,16 @@ msgstr "--Nomes de ficheiros truncados--\n" #~ msgstr "" #~ "\n" #~ "Tratamento dos atributos dos ficheiros:\n" -#~ " --atime-preserve n�o alterar as datas de acesso dos " +#~ " --atime-preserve n�o alterar as datas de acesso dos " #~ "ficheiros\n" -#~ " -m, --modification-time n�o extrair a data de modifica��o dos " +#~ " -m, --modification-time n�o extrair a data de modifica��o dos " #~ "ficheiros\n" #~ " --same-owner extrair os ficheiros tentando manter o " #~ "mesmo \n" #~ " dono (owner)\n" -#~ " --numeric-owner usar sempre n�meros para os nomes de \n" +#~ " --numeric-owner usar sempre n�meros para os nomes de \n" #~ " utilizador/grupo \n" -#~ " -p, --same-permissions na extrac��o, manter as protec��es do " +#~ " -p, --same-permissions na extrac��o, manter as protec��es do " #~ "ficheiros\n" #~ " --preserve-permissions o mesmo que -p\n" #~ " -s, --same-order ordernar os nomes a extrair segundo a sua " @@ -3272,18 +3363,18 @@ msgstr "--Nomes de ficheiros truncados--\n" #~ " --volno-file=FILE use/update the volume number in FILE\n" #~ msgstr "" #~ "\n" -#~ "Escolha do perif�rico e mudan�as de fita magn�tica:\n" -#~ " -f, --file=ARQ tratar o arquivo, ou perif�rico ARQ\n" -#~ " --force-local o arquivo � local, mesmo que tenha \":\"\n" +#~ "Escolha do perif�rico e mudan�as de fita magn�tica:\n" +#~ " -f, --file=ARQ tratar o arquivo, ou perif�rico ARQ\n" +#~ " --force-local o arquivo � local, mesmo que tenha \":\"\n" #~ " --rsh-command=COM usar o comando remoto COM, em vez de \"rsh" #~ "\"\n" -#~ " -[0-7][lmh] escolher o perif�rico e a densidade\n" +#~ " -[0-7][lmh] escolher o perif�rico e a densidade\n" #~ " -M, --multi-volume tratar arquivos multi-volume\n" #~ " -L, --tape-length=NUM tratar NUM x 1024 \"bytes\" por fita " -#~ "magn�tica\n" -#~ " -F, --info-script=FICH executar FICH nas mudan�as de fita " -#~ "magn�tica\n" -#~ " (for�a a escolha de \"-M\")\n" +#~ "magn�tica\n" +#~ " -F, --info-script=FICH executar FICH nas mudan�as de fita " +#~ "magn�tica\n" +#~ " (for�a a escolha de \"-M\")\n" #~ " --new-volume-script=FICH o mesmo que \"-F FICH\"\n" #~ msgid "" @@ -3296,10 +3387,10 @@ msgstr "--Nomes de ficheiros truncados--\n" #~ " -B, --read-full-records reblock as we read (for 4.2BSD pipes)\n" #~ msgstr "" #~ "\n" -#~ "Caracter�sticas dos blocos no perif�rico (device):\n" +#~ "Caracter�sticas dos blocos no perif�rico (device):\n" #~ " -b, --blocking-factor=BLOCOS BLOCOS x 512 \"bytes\" por registo\n" -#~ " --record-size=DIM DIM bytes por registo, m�ltiplo de 512\n" -#~ " -i, --ignore-zeros ignorar os blocos constitu�dos por " +#~ " --record-size=DIM DIM bytes por registo, m�ltiplo de 512\n" +#~ " -i, --ignore-zeros ignorar os blocos constitu�dos por " #~ "zeros\n" #~ " (implicam fim-de-ficheiro)\n" #~ " -B, --read-full-records dividir a leitura em blocos \n" @@ -3321,20 +3412,20 @@ msgstr "--Nomes de ficheiros truncados--\n" #~ "d)\n" #~ msgstr "" #~ "\n" -#~ "Selec��o do formato do arquivo:\n" +#~ "Selec��o do formato do arquivo:\n" #~ " -V, --label=NOME cria um aruivo com volume de nome " #~ "NOME\n" -#~ " REGEXP ao extrair/listar, o nome � uma " -#~ "express�o\n" +#~ " REGEXP ao extrair/listar, o nome � uma " +#~ "express�o\n" #~ " regular\n" #~ " -o, --old-archive, --portability escreve um arquivo no formato V7\n" #~ " --posix escreve um arquivo conforme com " #~ "POSIX\n" -#~ " -z, --gzip, --ungzip filtra o arquivo atrav�s de \"gzip" +#~ " -z, --gzip, --ungzip filtra o arquivo atrav�s de \"gzip" #~ "\"\n" -#~ " -Z, --compress, --uncompress filtra o arquivo atrav�s de " +#~ " -Z, --compress, --uncompress filtra o arquivo atrav�s de " #~ "\"compress\"\n" -#~ " --use-compress-program=PROG filtra o arquivo atrav�s de PROG \n" +#~ " --use-compress-program=PROG filtra o arquivo atrav�s de PROG \n" #~ "\t\t\t\t (este tem que aceitar -d)\n" #, fuzzy @@ -3358,28 +3449,28 @@ msgstr "--Nomes de ficheiros truncados--\n" #~ " -K, --starting-file=NAME begin at file NAME in the archive\n" #~ msgstr "" #~ "\n" -#~ "Selec��o local de ficheiros:\n" +#~ "Selec��o local de ficheiros:\n" #~ " -C, --directory DIR mudar para a directoria DIR\n" #~ " -T, --files-from=NOME obter do ficheiro NOME a lista de ficheiros " #~ "a \n" #~ " criar ou extrair\n" #~ " --null faz com que \"-T\" leia nomes terminados por " #~ "NULO,\n" -#~ " tamb�m inibe \"-C\"\n" -#~ " --exclude=PADR�O excluir os ficheiros descritos pelo PADR�O\n" -#~ " -X, --exclude-from=FICH excluir ficheiros, segundo os padr�es " +#~ " tamb�m inibe \"-C\"\n" +#~ " --exclude=PADR�O excluir os ficheiros descritos pelo PADR�O\n" +#~ " -X, --exclude-from=FICH excluir ficheiros, segundo os padr�es " #~ "guardados em\n" #~ "\t\t\t FICH\n" #~ " -P, --absolute-names preservar os \"\\\" iniciais nos nomes dos " #~ "ficheiros\n" -#~ " -h, --dereference usar os pr�prios ficheiros, em lugar das " -#~ "liga��es\n" -#~ " simb�licas (symlinks) que os referenciam\n" -#~ " --no-recurse n�o descer pela �rvore de directorias\n" -#~ " -l, --one-file-system n�o sair do sistema local de ficheiros, ao " +#~ " -h, --dereference usar os pr�prios ficheiros, em lugar das " +#~ "liga��es\n" +#~ " simb�licas (symlinks) que os referenciam\n" +#~ " --no-recurse n�o descer pela �rvore de directorias\n" +#~ " -l, --one-file-system n�o sair do sistema local de ficheiros, ao " #~ "criar o\n" #~ " arquivo\n" -#~ " -K, --starting-file=NOME come�ar pelo ficheiro NOME, no arquivo\n" +#~ " -K, --starting-file=NOME come�ar pelo ficheiro NOME, no arquivo\n" #, fuzzy #~ msgid "" @@ -3388,9 +3479,9 @@ msgstr "--Nomes de ficheiros truncados--\n" #~ "only\n" #~ " --after-date=DATE same as -N\n" #~ msgstr "" -#~ " -N, --newer=DATA s� guardar ficheiros mais recentes do que " +#~ " -N, --newer=DATA s� guardar ficheiros mais recentes do que " #~ "DATA\n" -#~ " --newer-mtime s� comparar data e hora quando os dados " +#~ " --newer-mtime s� comparar data e hora quando os dados " #~ "mudarem\n" #~ " --after-date=DATA o mesmo que \"-N\"\n" #~ ")," @@ -3409,18 +3500,18 @@ msgstr "--Nomes de ficheiros truncados--\n" #~ " --confirmation same as -w\n" #~ msgstr "" #~ "\n" -#~ "Presta��o de informa��es:\n" +#~ "Presta��o de informa��es:\n" #~ " --help mostrar esta mensagem de ajuda e terminar\n" -#~ " --version indicar a vers�o do programa \"tar\" e terminar\n" +#~ " --version indicar a vers�o do programa \"tar\" e terminar\n" #~ " -v, --verbose escrever a lista dos ficheiros tratados\n" #~ " --checkpoint indicar os nomes das directorias durante a " #~ "leitura\n" -#~ " --totals indicar o n�mero de \"bytes\" escritos durante a " -#~ "cria��o\n" +#~ " --totals indicar o n�mero de \"bytes\" escritos durante a " +#~ "cria��o\n" #~ " do arquivo\n" -#~ " -R, --block-number escrever o n�mero de bloco, dentro do arquivo, \n" +#~ " -R, --block-number escrever o n�mero de bloco, dentro do arquivo, \n" #~ " em cada mensagem\n" -#~ " -w, --interactive pedir confirma��o para todas as ac��es\n" +#~ " -w, --interactive pedir confirma��o para todas as ac��es\n" #~ " --confirmation o mesmo que \"-w\"\n" #~ "\n" @@ -3434,45 +3525,45 @@ msgstr "--Nomes de ficheiros truncados--\n" #~ "or a device. *This* `tar' defaults to `-f%s -b%d'.\n" #~ msgstr "" #~ "\n" -#~ "O programa tar GNU anterior � vers�o 1.12 n�o consegue ler arquivos \"--" +#~ "O programa tar GNU anterior � vers�o 1.12 n�o consegue ler arquivos \"--" #~ "posix\".\n" -#~ "Se a vari�vel POSIXLY_CORRECT estiver definida no ambiente, as extens�es " +#~ "Se a vari�vel POSIXLY_CORRECT estiver definida no ambiente, as extens�es " #~ "GNU\n" -#~ "s�o inibidas com \"--posix\". O suporte para POSIX est� apenas " +#~ "s�o inibidas com \"--posix\". O suporte para POSIX est� apenas " #~ "parcialmente \n" -#~ "implementado, pelo que n�o se fiem muito nele, por agora.\n" +#~ "implementado, pelo que n�o se fiem muito nele, por agora.\n" #~ "ARQUIVO pode ser FICHEIRO, HOST:FICHEIRO ou UTILIZADOR@HOST:FICHEIRO; e \n" -#~ "FICHEIRO pode ser um ficheiro ou um perif�rico.\n" +#~ "FICHEIRO pode ser um ficheiro ou um perif�rico.\n" #~ "*Este* tar assume, por defeito, \"-f%s -b %d\".\n" #~ msgid "Obsolete option, now implied by --blocking-factor" -#~ msgstr "Op��o obsoleta, � agora \"-blocking-factor\" implica-a" +#~ msgstr "Op��o obsoleta, � agora \"-blocking-factor\" implica-a" #~ msgid "Obsolete option name replaced by --blocking-factor" -#~ msgstr "Nome de op��o obsoleto, foi substitu�do por \"--blocking-factor\"" +#~ msgstr "Nome de op��o obsoleto, foi substitu�do por \"--blocking-factor\"" #~ msgid "Obsolete option name replaced by --read-full-records" -#~ msgstr "Nome de op��o obsoleto, foi substitu�do por \"--read-full-records\"" +#~ msgstr "Nome de op��o obsoleto, foi substitu�do por \"--read-full-records\"" #~ msgid "Obsolete option name replaced by --touch" -#~ msgstr "Nome de op��o obsoleto, foi substitu�do por \"--touch\"" +#~ msgstr "Nome de op��o obsoleto, foi substitu�do por \"--touch\"" #~ msgid "Conflicting archive format options" -#~ msgstr "H� conflitos entre as op��es de formato do arquivo" +#~ msgstr "H� conflitos entre as op��es de formato do arquivo" #~ msgid "Obsolete option name replaced by --absolute-names" -#~ msgstr "Nome de op��o obsoleto, foi substitu�do por \"--absolute-names\"" +#~ msgstr "Nome de op��o obsoleto, foi substitu�do por \"--absolute-names\"" #~ msgid "Obsolete option name replaced by --block-number" -#~ msgstr "Nome de op��o obsoleto, foi substitu�do por \"--block-number\"" +#~ msgstr "Nome de op��o obsoleto, foi substitu�do por \"--block-number\"" #, fuzzy #~ msgid "Obsolete option name replaced by --backup" -#~ msgstr "Nome de op��o obsoleto, foi substitu�do por \"--touch\"" +#~ msgstr "Nome de op��o obsoleto, foi substitu�do por \"--touch\"" #, fuzzy #~ msgid "Error exit delayed from previous errors" -#~ msgstr "Erro s� assinalado no fim da execu��o" +#~ msgstr "Erro s� assinalado no fim da execu��o" #, fuzzy #~ msgid "" @@ -3484,11 +3575,11 @@ msgstr "--Nomes de ficheiros truncados--\n" #~ " --help display this help and exit\n" #~ " --version output version information and exit\n" #~ msgstr "" -#~ "Os argumentos obrigat�rios para as op��es longas tamb�m o s�o para as " +#~ "Os argumentos obrigat�rios para as op��es longas tamb�m o s�o para as " #~ "curtas.\n" #~ "\n" -#~ " --help mostra esta informa��o e termina\n" -#~ " --version identifica a vers�o e termina\n" +#~ " --help mostra esta informa��o e termina\n" +#~ " --version identifica a vers�o e termina\n" #~ msgid "EOF? What does that mean?" #~ msgstr "Fim-de-ficheiro? Que significa isto?" @@ -3506,13 +3597,13 @@ msgstr "--Nomes de ficheiros truncados--\n" #~ msgstr "Tamanho" #~ msgid "Missing filename after -C" -#~ msgstr "Falta um nome de ficheiro ap�s \"-C\"" +#~ msgstr "Falta um nome de ficheiro ap�s \"-C\"" #~ msgid "Invalid date format in `-N %s'" -#~ msgstr "Formato inv�lido para data em \"-N %s\"" +#~ msgstr "Formato inv�lido para data em \"-N %s\"" #~ msgid "Bad regular expression: %s" -#~ msgstr "Express�o regular errada: %s" +#~ msgstr "Express�o regular errada: %s" #~ msgid "File %s\n" #~ msgstr "Ficheiro %s\n" @@ -3530,13 +3621,13 @@ msgstr "--Nomes de ficheiros truncados--\n" #~ msgstr "Fora do primeiro ciclo\n" #~ msgid "Saved %d blocks, need %d more\n" -#~ msgstr "Guardaram-se %d blocos, ainda s�o precisos %d\n" +#~ msgstr "Guardaram-se %d blocos, ainda s�o precisos %d\n" #~ msgid "New record\n" #~ msgstr "Novo registo\n" #~ msgid "Header type %d\n" -#~ msgstr "Tipo de cabe�alho %d\n" +#~ msgstr "Tipo de cabe�alho %d\n" #~ msgid "File %s " #~ msgstr "Ficheiro %s" @@ -3568,7 +3659,7 @@ msgstr "--Nomes de ficheiros truncados--\n" #~ msgid "Now new %d need %d keep %d keep_in %d block %d/%d\n" #~ msgstr "" #~ "Novos agora %d precisa %d mantem %d mantem dentro %d bloco %d/%d\n" -#~ "(N.T. Isto tamb�m � incompreens�vel em Ingl�s)\n" +#~ "(N.T. Isto tamb�m � incompreens�vel em Ingl�s)\n" #, fuzzy #~ msgid "Fore to %x\n" @@ -3578,68 +3669,68 @@ msgstr "--Nomes de ficheiros truncados--\n" #~ msgstr "Escreve-se o bloco\n" #~ msgid "Could not make %s" -#~ msgstr "N�o se conseguiu fazer %s" +#~ msgstr "N�o se conseguiu fazer %s" #~ msgid "Options [0-7][lmh] not supported by *this* tar" -#~ msgstr "As op��es [0-7][lmh] n�o funcionam neste \"tar\"" +#~ msgstr "As op��es [0-7][lmh] n�o funcionam neste \"tar\"" #~ msgid "Cannot allocate %d bytes for restore" -#~ msgstr "N�o se consegue reservar %d bytes para a recupera��o" +#~ msgstr "N�o se consegue reservar %d bytes para a recupera��o" #~ msgid "Saved %d recs, need %d more\n" -#~ msgstr "Guardaram-se %d registos, ainda s�o precisos %d\n" +#~ msgstr "Guardaram-se %d registos, ainda s�o precisos %d\n" #~ msgid "Could not link %s to %s" -#~ msgstr "N�o se conseguiu ligar %s a %s" +#~ msgstr "N�o se conseguiu ligar %s a %s" #~ msgid "%c: Argument missing" #~ msgstr "%c: Falta argumento" #~ msgid "Could not create directory %s" -#~ msgstr "N�o se conseguiu criar a directoria %s" +#~ msgstr "N�o se conseguiu criar a directoria %s" #~ msgid "Cannot change to directory %d" -#~ msgstr "N�o se pode mudar para a directoria %d" +#~ msgstr "N�o se pode mudar para a directoria %d" #~ msgid "rec %10ld: " #~ msgstr "reg %10ld: " #~ msgid "Flushing %d recs from %s\n" -#~ msgstr "Est�o-se a esvaziar %d registos de um total de %s\n" +#~ msgstr "Est�o-se a esvaziar %d registos de um total de %s\n" #~ msgid "Multiple archive files requires --multi-volume" -#~ msgstr "M�ltiplos ficheiros de arquivo exigem \"--multi-volume\"" +#~ msgstr "M�ltiplos ficheiros de arquivo exigem \"--multi-volume\"" #~ msgid "Cannot change directory to %d" -#~ msgstr "N�o se pode mudar de directoria para %d" +#~ msgstr "N�o se pode mudar de directoria para %d" #~ msgid "[child] Pipe to stdin" #~ msgstr "[filho] \"Pipe\" para o stdin" #~ msgid "Cannot change owner of %s to uid %d gid %d" -#~ msgstr "N�o se pode mudar o dono de %s para \"uid\" %d \"gid\" %d" +#~ msgstr "N�o se pode mudar o dono de %s para \"uid\" %d \"gid\" %d" #~ msgid "Cannot change mode of file %s to %lo" -#~ msgstr "N�o se pode mudar o modo do ficheiro %s para %lo" +#~ msgstr "N�o se pode mudar o modo do ficheiro %s para %lo" #~ msgid "[child] Pipe to stdout" #~ msgstr "[filho] \"Pipe\" para o stdout" #~ msgid "Could not write to file %s" -#~ msgstr "N�o se conseguiu escrever no ficheiro %s" +#~ msgstr "N�o se conseguiu escrever no ficheiro %s" #~ msgid "Blocksize = %d records" #~ msgstr "Tamanho do bloco = %d registos" #~ msgid "%s: %s: Cannot link to %s, copying instead\n" #~ msgstr "" -#~ "%s: %s: N�o � poss�vel fazer liga��o para %s, em vez disso, copia-se\n" +#~ "%s: %s: N�o � poss�vel fazer liga��o para %s, em vez disso, copia-se\n" #~ msgid "Cannot close a file #%d" -#~ msgstr "N�o se consegue fechar o ficheiro de descritor %d" +#~ msgstr "N�o se consegue fechar o ficheiro de descritor %d" #~ msgid "Could not create symlink to %s" -#~ msgstr "N�o se conseguiu criar uma liga��o (\"link\") simb�lica para %s" +#~ msgstr "N�o se conseguiu criar uma liga��o (\"link\") simb�lica para %s" #~ msgid "Now new %d need %d keep %d keep_in %d rec %d/%d\n" #~ msgstr "" @@ -3647,29 +3738,29 @@ msgstr "--Nomes de ficheiros truncados--\n" #~ " (FIXME)" #~ msgid "Too many args with -T option" -#~ msgstr "Argumentos demais para a op��o \"-T\"" +#~ msgstr "Argumentos demais para a op��o \"-T\"" #~ msgid "New block\n" #~ msgstr "Novo bloco\n" #~ msgid "Invalid value for blocksize" -#~ msgstr "Valor inv�lido para o tamanho do bloco" +#~ msgstr "Valor inv�lido para o tamanho do bloco" #~ msgid "Cannot chown file %s to uid %d gid %d" -#~ msgstr "N�o se pode mudar o dono de %s para \"uid\" %d \"gid\" %d" +#~ msgstr "N�o se pode mudar o dono de %s para \"uid\" %d \"gid\" %d" #~ msgid "Cannot open a pipe" -#~ msgstr "N�o se consegue abrir um \"pipe\"" +#~ msgstr "N�o se consegue abrir um \"pipe\"" #~ msgid "Could only write %d of %d bytes to file %s" #~ msgstr "" -#~ "S� se conseguiu escrever %d \"bytes\" de um total de %d, no ficheiro %s" +#~ "S� se conseguiu escrever %d \"bytes\" de um total de %d, no ficheiro %s" #~ msgid "Could not create file %s" -#~ msgstr "N�o se conseguiu criar o ficheiro %s" +#~ msgstr "N�o se conseguiu criar o ficheiro %s" #~ msgid "Cannot keep old files on this system" -#~ msgstr "N�o se consegue manter os ficheiros antigos neste sistema" +#~ msgstr "N�o se consegue manter os ficheiros antigos neste sistema" #~ msgid "" #~ "Skip %ld\n" diff --git a/po/pt_BR.gmo b/po/pt_BR.gmo index 3ac45e370e3535c459cb6c443195161497134c75..3cede3eafe22be12af4a60a0dbd2b754aa81f616 100644 GIT binary patch delta 14810 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%0AbJqvQG>Q41Q39;~5zk)R-6;1dy`ZE=I^w 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 S6+5NH3Mr`|@y#6<B9s7(I^{h8 delta 12815 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 UwR!2O0N%+8H)d~sd?P{$0By1^x&QzG diff --git a/po/pt_BR.po b/po/pt_BR.po index b4bb8610..8ed0f2f4 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -12,15 +12,15 @@ # based on the translation to Portuguese (pt) by # António José Coutinho <ajc@di.uminho.pt>, 1996. # Marcus Moreira de Souza <marcusms@frb.br> -# Rafael Fontenelle <rffontenelle@gmail.com>, 2017. -#: src/create.c:1599 +# Rafael Fontenelle <rafaelff@gnome.org>, 2017. +#: src/create.c:1598 msgid "" msgstr "" -"Project-Id-Version: tar 1.29\n" +"Project-Id-Version: tar 1.30\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" -"PO-Revision-Date: 2017-01-25 16:29-0200\n" -"Last-Translator: Rafael Fontenelle <rffontenelle@gmail.com>\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" +"PO-Revision-Date: 2017-12-18 10:19-0200\n" +"Last-Translator: Rafael Fontenelle <rafaelff@gnome.org>\n" "Language-Team: Brazilian Portuguese <ldpbr-translation@lists.sourceforge." "net>\n" "Language: pt_BR\n" @@ -108,7 +108,7 @@ msgid "give a short usage message" msgstr "fornece uma mensagem de uso curta" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "NOME" @@ -146,29 +146,29 @@ msgid "write error" msgstr "erro de escrita" #: gnu/getopt.c:278 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous\n" -msgstr "%s: a opção \"%s\" é ambígua\n" +msgstr "%s: a opção \"%s%s\" é ambígua\n" #: gnu/getopt.c:284 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" -msgstr "%s: a opção \"%s\" é ambígua; possibilidades:" +msgstr "%s: a opção \"%s%s\" é ambígua; possibilidades:" #: gnu/getopt.c:319 -#, fuzzy, c-format +#, c-format msgid "%s: unrecognized option '%s%s'\n" -msgstr "%s: opção desconhecida \"%c%s\"\n" +msgstr "%s: opção desconhecida \"%s%s\"\n" #: gnu/getopt.c:345 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" -msgstr "%s: a opção \"%c%s\" não permite um argumento\n" +msgstr "%s: a opção \"%s%s\" não permite um argumento\n" #: gnu/getopt.c:360 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' requires an argument\n" -msgstr "%s: a opção \"--%s\" exige um argumento\n" +msgstr "%s: a opção \"%s%s\" exige um argumento\n" #: gnu/getopt.c:621 #, c-format @@ -243,12 +243,12 @@ msgstr "^[+1SsyY]" msgid "^[nN]" msgstr "^[-0nN]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Empacotado por %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Empacotado por %s\n" @@ -256,12 +256,11 @@ msgstr "Empacotado por %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: gnu/version-etc.c:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "(C)" -#: gnu/version-etc.c:86 -#, fuzzy +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -271,7 +270,7 @@ msgid "" "\n" msgstr "" "\n" -"Licença GPLv3+: GNU GPL versão 3 ou posterior <http://gnu.org/licenses/gpl." +"Licença GPLv3+: GNU GPL versão 3 ou posterior <https://gnu.org/licenses/gpl." "html>\n" "Este é um software livre: você é livre para alterá-lo e redistribuí-lo.\n" "NÃO HÁ QUALQUER GARANTIA, na máxima extensão permitida em lei.\n" @@ -411,14 +410,13 @@ msgid "%s home page: <%s>\n" msgstr "Página do %s: <%s>\n" #: gnu/version-etc.c:253 -#, fuzzy, c-format +#, c-format msgid "%s home page: <https://www.gnu.org/software/%s/>\n" -msgstr "Página do %s: <http://www.gnu.org/software/%s/>\n" +msgstr "Página do %s: <https://www.gnu.org/software/%s/>\n" #: gnu/version-etc.c:256 -#, fuzzy msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n" -msgstr "Ajuda para uso de softwares GNU: <http://www.gnu.org/gethelp/>\n" +msgstr "Ajuda para uso de softwares GNU: <https://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 @@ -537,195 +535,195 @@ msgstr "Não foi possível redirecionar arquivos para o shell remoto" msgid "Cannot execute remote shell" msgstr "Não foi possível executar um shell remoto" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Direção de salto fora da faixa" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "Direção de salto inválido" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "Deslocamento de salto inválido" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Deslocamento de salto fora da faixa" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "Contagem de byte inválida" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "Contagem de byte fora de faixa" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "Fim de arquivo (eof) prematuro" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "Código de operação inválido" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "Sem suporte à operação" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Argumentos inesperados" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 msgid "Manipulate a tape drive, accepting commands from a remote process" msgstr "Manipula uma unidade de fita, aceitando comandos de um processo remoto" -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "NUMERO" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "define nível de depuração" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "ARQUIVO" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "define nome do arquivo de saída do depuração" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "não foi possível abrir %s" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "número excessivo de argumentos" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Comando sem sentido" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Este não parece ser um arquivo-tar" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Total de bytes lidos" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Total de bytes escritos" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "Total de bytes apagados" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(pipe)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "" "Recusando a ler conteúdo do arquivo-tar a partir do terminal (faltando a " "opção -f ?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "" "Recusando a escrever conteúdo do arquivo-tar para o terminal (faltando a " "opção -f ?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Valor inválido para \"record_size\"" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Nome de arquivo-tar não informado" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "" "Não foi possível verificar arquivos-tar de entrada/saída padrão (stdin/" "stdout)" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "O arquivo-tar está compactado. Use a opção %s" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Não foi possível atualizar arquivos-tar compactados" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "No início da fita, encerrando agora" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Muitos erros, encerrando" -#: src/buffer.c:967 +#: src/buffer.c:969 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "Tamanho de registro = %lu bloco" msgstr[1] "Tamanho de registro = %lu blocos" -#: src/buffer.c:988 +#: src/buffer.c:990 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "Bloco desalinhado (%lu byte) no arquivo-tar" msgstr[1] "Bloco desalinhado (%lu bytes) no arquivo-tar" -#: src/buffer.c:1075 +#: src/buffer.c:1077 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "Não foi possível recuar no arquivo-tar; pode estar ilegível sem -i" -#: src/buffer.c:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek não está parado numa fronteira de registro" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: contém um número de volume inválido" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Sobrecarga de número de volumes" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Prepare o volume #%d para %s e tecle Enter: " -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "Fim de arquivo onde era esperado resposta do usuário" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "AVISO: O arquivo-tar está incompleto" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -737,67 +735,67 @@ msgstr "" " q Aborta tar\n" " y ou nova linha Continua operação\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Cria um subshell\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? Mostra esta lista\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Nenhum volume novo; encerrando.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "Nome de arquivo não foi especificado. Tente novamente.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Entrada inválida. Digite ? para ajuda.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "comando %s falhou" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s não é continuado neste volume" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "" "%s possivelmente é continuado neste volume: o cabeçalho contém o nome " "truncado" -#: src/buffer.c:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s é o tamanho errado (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Este volume está fora de sequência (%s - %s != %s)" -#: src/buffer.c:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "Arquivo-tar não rotulado para casar com %s" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "O volume %s não casa com %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -805,214 +803,214 @@ msgstr "" "%s: nome de arquivo muito longo para ser armazenado num cabeçalho GNU " "multivolume, truncado" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "escrita não acabou numa fronteira de bloco" -#: src/compare.c:98 +#: src/compare.c:97 #, 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 byte" msgstr[1] "Só foi possível ler %lu de %lu bytes" -#: src/compare.c:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "O conteúdo é diferente" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Fim de arquivo inesperado no arquivo-tar" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "O tipo de arquivo é diferente" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Os modos são diferentes" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Os uid são diferentes" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "Os gid são diferentes" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Os horários de modificação são diferentes" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Os tamanhos são diferentes" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Sem link para %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "O link simbólico é diferente" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "O número de dispositivo é diferente" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Verificar " -#: src/compare.c:480 +#: src/compare.c:479 #, c-format msgid "%s: Unknown file type '%c', diffed as normal file" msgstr "" "%s: Tipo de arquivo \"%c\" desconhecido, comparado como um arquivo normal" -#: src/compare.c:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "O arquivo-tar contém nomes de arquivos com os prefixos removidos." -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "O arquivo-tar contém nomes de arquivos transformados." -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "A verificação pode falhar em localizar os arquivos originais." -#: src/compare.c:620 +#: src/compare.c:619 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" 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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "Bloco de zero isolado em %s" -#: src/create.c:74 +#: src/create.c:73 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: contém um rótulo %s de diretório cache; %s" -#: src/create.c:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Gerando cabeçalhos octais negativos" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, c-format msgid "%s: file name is too long (max %d); not dumped" msgstr "%s: nome de arquivo é grande demais (máximo de %d); não será arquivado" -#: src/create.c:616 +#: src/create.c:615 #, c-format msgid "%s: file name is too long (cannot be split); not dumped" msgstr "" "%s: nome de arquivo é grande demais (não pode ser dividido); não será " "arquivado" -#: src/create.c:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: nome de link grande demais; não será arquivado" -#: src/create.c:1106 +#: src/create.c:1105 #, 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 byte; completando com zeros" msgstr[1] "%s: O arquivo diminuiu %s bytes; completando com zeros" -#: src/create.c:1204 +#: src/create.c:1203 #, 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:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "conteúdos não despejado" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Tipo de arquivo desconhecido; arquivo ignorado" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "Faltando links para %s." -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: arquivo sem alterações; não será arquivado" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: arquivo é o arquivo-tar; não será arquivado" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "diretório não arquivado" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: arquivo alterado enquanto estava sendo lido" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: soquete ignorado" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: porta ignorada" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Pulando para o próximo cabeçalho" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Removendo um não-cabeçalho do arquivo-tar" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: carimbo de data/hora implausivelmente velho %s" # O "s" solitário refere-se a segundos. Não remover -- Rafael -#: src/extract.c:320 +#: src/extract.c:319 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: o carimbo de data/hora %s está %s s no futuro" -#: src/extract.c:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Inconsistência inesperada ao criar diretório" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: ignorando arquivo existente" @@ -1036,7 +1034,7 @@ msgid "%s: Cannot extract -- file is continued from another volume" msgstr "" "%s: Não foi possível extrair -- arquivo é a continuação de outro volume" -#: src/extract.c:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Nome longo de cabeçalho inesperado" @@ -1051,9 +1049,9 @@ msgid "Current %s is newer or same age" msgstr "%s atual é mais novo ou tem a mesma idade" #: src/extract.c:1664 -#, fuzzy, c-format +#, c-format msgid "%s: Member name contains '..'" -msgstr "%s: O nome do membro contém `..'" +msgstr "%s: O nome do membro contém \"..\"" #: src/extract.c:1696 #, c-format @@ -1065,22 +1063,22 @@ msgstr "%s: Não foi possível fazer backup deste arquivo" msgid "Cannot rename %s to %s" msgstr "Não foi possível renomear %s para %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: O diretório foi renomeado de %s" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: O diretório é novo" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "%s: O diretório está em outro sistema de arquivos; não será arquivado" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: O diretório foi renomeado" @@ -1208,35 +1206,35 @@ msgstr "%s: Removendo %s\n" msgid "%s: Cannot remove" msgstr "%s: Não foi possível remover" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: Omitindo" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "bloco %s: ** Bloco de NULOs **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "bloco %s: ** Fim de arquivo **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "bloco %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1244,160 +1242,160 @@ msgstr "" "complemento de dois" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, 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:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "O arquivo-tar contém cabeçalhos base-64 obsoletos" -#: src/list.c:852 +#: src/list.c:853 #, 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:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, 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:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " link para %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " tipo de arquivo \"%s\" desconhecido\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Link Longo--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Nome Longo--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Cabeçalho de volume--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Continua no byte %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Criando de diretório:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "Renomeando %s para %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Não foi possível renomear para %s" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "Renomeando %s de volta para %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: Arquivo removido antes de ser lido" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "processo filho" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "canal interprocesso" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "Seleção de nome de arquivo local:" -#: src/names.c:72 +#: src/names.c:71 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" "adiciona ARQUIVO dado ao arquivo-tar (útil se seu nome se inicia com um " "traço)" -#: src/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "DIR" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "muda para o diretório DIR" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "obtém nomes para extrair ou criar a partir de ARQUIVO" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "-T lê nomes de terminação nula, implica em --verbatim-files-from" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "desabilita o efeito da opção --null anterior" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "remove citação de nomes de membros ou arquivos de entrada (padrão)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "não remove citação de nomes de membros ou arquivos de entrada" -#: src/names.c:87 -#, fuzzy +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" -msgstr "-T lê nomes de arquivos literalmente (sem tratamento de opção)" +msgstr "" +"-T lê nomes de arquivos literalmente (sem escape ou tratamento de opção)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "-T trata nomes de arquivos iniciando com traço como opções (padrão)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "PADRÃO" # espaço adicionado para corrigir alinhamento da descrição da opção -- Rafael -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr " exclui arquivos, dados como um PADRÃO" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "exclui padrões listados em ARQUIVO" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1405,24 +1403,24 @@ msgstr "" "exclui conteúdos de diretórios contendo CACHEDIR.TAG, exceto pela própria " "etiqueta de arquivo" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "exclui tudo sob diretórios contendo CACHEDIR.TAG" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "exclui diretórios contendo CACHEDIR.TAG" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" "exclui conteúdo dos diretórios contendo ARQUIVO, exceto o próprio ARQUIVO" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "lê padrões de exclusão para cada diretório de ARQUIVO, se ele existir" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" @@ -1430,118 +1428,122 @@ msgstr "" "lê padrões de exclusão para cada diretório e seus subdiretórios de ARQUIVO, " "se ele existir" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "exclui tudo sob diretórios contendo ARQUIVO" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "exclui diretórios contendo ARQUIVO" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "exclui diretórios de sistema de controle de versão" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "lê padrões de exclusão de arquivos \"ignore\" de VCS" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "exclui arquivos de backup e de trava" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "age recursivamente na árvore de diretórios (padrão)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "não desce pela árvore de diretórios" -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" "Opções de correspondência de nome de arquivo (afeta ambos padrões de " "exclusão e inclusão):" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "padrões combinam com início do nome do arquivo" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "padrões combinam depois de qualquer \"/\" (padrão para exclusão)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "ignora maiúsculas/minúsculas" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "diferencia maiúsculas/minúsculas (padrão)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "usam coringas (padrão para exclusão)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "casa com o conteúdo exato da string" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "coringas combinam com \"/\" (padrão para exclusão)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "coringas não combinam com \"/\"" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" +"As seguintes opções foram usadas após qualquer argumento não opcional no " +"modo de criação ou atualização de arquivo. Essas opções são posicionais e " +"afetam apenas os argumentos que os seguem. Por favor, reorganize-os " +"adequadamente." -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" -msgstr "" +msgstr "-C %s possui nenhum efeito" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" -msgstr "" +msgstr "--%s %s possui nenhum efeito" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" -msgstr "" +msgstr "--%s possui nenhum efeito" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "linha de comando" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: a lista de arquivos requisitada de %s já foi lida de %s" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "não foi possível dividir a string \"%s\": %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: nome de arquivo lido contém caractere nulo" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "Padrão correspondente a caracteres usados em nomes de arquivos" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1549,47 +1551,47 @@ msgstr "" "Use --wildcards para habilitar casamento de padrão, ou --no-wildcards para " "suprimir este aviso" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: Não foi encontrado no arquivo-tar" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Ocorrência pedida não foi encontrada no arquivo-tar" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "Arquivo-tar não rotulado para casar" -#: src/names.c:1717 +#: src/names.c:1747 msgid "" "Using -C option inside file list is not allowed with --listed-incremental" msgstr "" "Usar a opção -C dentro de lista de arquivos não é permitido com --listed-" "incremental" -#: src/names.c:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "Somente uma opção -C é permitida com --listed-incremental" -#: src/tar.c:88 +#: src/tar.c:87 #, 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:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Formato de arquivo inválido" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "Desejadas características GNU num arquivo-tar com formato incompatível" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1813,7 +1815,7 @@ msgstr "Seleção de fluxo de saída:" msgid "extract files to standard output" msgstr "extrai arquivos para a saída padrão" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "COMANDO" @@ -1849,7 +1851,7 @@ msgstr "usa ARQUIVO para mapear UIDs e nomes de donos de arquivos" msgid "use FILE to map file owner GIDs and names" msgstr "usa ARQUIVO para mapear GIDs e nomes de donos de arquivos" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "DATA-OU-ARQUIVO" @@ -2069,7 +2071,7 @@ msgstr "refaz blocos na medida em que os lê (para redirecionamentos de 4.2BSD)" msgid "Archive format selection:" msgstr "Seleção do formato de arquivo-tar:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "FORMATO" @@ -2155,63 +2157,63 @@ msgstr "PROG" msgid "filter through PROG (must accept -d)" msgstr "filtra através de PROG (deve aceitar -d)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Seleção de arquivo local:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "" "permanece no sistema de arquivos local durante a criação de arquivo-tar" -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "preserva \"/\"s iniciais nos nomes dos arquivos" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" msgstr "" "segue links simbólicos; arquiva e despeja os arquivos aos quais eles apontam" -#: src/tar.c:697 +#: src/tar.c:698 msgid "follow hard links; archive and dump the files they refer to" msgstr "" "segue links absolutos; arquiva e despeja os arquivos aos quais eles fazem " "referência" -#: src/tar.c:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "NOME-MEMBRO" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "inicia em NOME-MEMBRO membro ao ler o arquivo-tar" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "armazena apenas arquivos mais novos que DATA-OU-ARQUIVO" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "DATA" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "compara data e hora apenas quando os dados mudarem" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "CONTROLE" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "efetua backup antes da remoção, escolhe versão CONTROLE" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "STRING" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2219,60 +2221,60 @@ msgstr "" "cria backup antes da remoção, sobrescreve sufixo usual (\"~\" a menos que " "sobrescrito pela variável de ambiente SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Transformações de nome de arquivo:" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "" "remove NUMERO no início de componentes de nomes de arquivos na extração" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "EXPRESSÃO" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "usa a substituição sed EXPRESSÃO para transformar nomes de arquivos" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Saída informativa:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "lista verbosamente os arquivos processados" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "PALAVRA-CHAVE" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "controle de aviso" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "exibe mensagens de progresso a cada NUMERO-ésima gravação (padrão 10)" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "AÇÃO" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "executa AÇÃO em cada ponto de verificação" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "exibe uma mensagem se nem todos links forem arquivados" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "SINAL" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2284,35 +2286,35 @@ msgstr "" "SIGQUIT, SIGINT, SIGUSR1 e SIGUSR2; os nomes sem o prefixo SIG também são " "aceitos" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "exibe tempos de modificação de arquivo em UTC" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "exibe tempo do arquivo em sua resolução máxima" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "envia saída verbosa para ARQUIVO" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "mostra número de bloco dentro de arquivo-tar com cada mensagem" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "solicita confirmação para cada ação" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "mostra padrões do tar" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "mostra intervalos válidos para campos de arquivo instantâneo" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2320,55 +2322,55 @@ msgstr "" "ao listar ou extrair, lista cada diretório que não casa com os critérios de " "pesquisa" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "mostra nomes de arquivo ou arquivo-tar após transformação" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "ESTILO" -#: src/tar.c:765 +#: src/tar.c:766 msgid "set name quoting style; see below for valid STYLE values" msgstr "" "define o estilo de citação de nome; veja abaixo por valores válidos para " "ESTILO" -#: src/tar.c:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "adicionalmente, cita caracteres de STRING" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "desabilita citação para caracteres de STRING" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Opções de compatibilidade:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "" "ao criar, mesmo que --old-archive; ao extrair, mesmo que --no-same-owner" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Outras opções:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "desabilita o uso de algumas opções potencialmente nocivas" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "\"%s\" não pode ser usada com \"%s\"" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" @@ -2376,40 +2378,40 @@ msgstr "" "Você não pode especificar mais do que uma das opções \"-Acdtrux\", \"--delete" "\" ou \"--test-label\"" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Opções de compressão conflitantes" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Nome de sinal desconhecido: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "Arquivo de datas não localizado" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Substituindo %s pelo formato de data desconhecido %s" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "Opção %s: Tratando data \"%s\" como %s" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "filtra o arquivo-tar por meio de %s" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "Argumentos válidos para a opção --quoting-style são:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2417,165 +2419,165 @@ msgstr "" "\n" "*Esse* tar utiliza como padrão:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "ID de dono ou grupo inválido" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Fator de blocagem inválido" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Tamanho da fita inválido" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "Valor inválido de nível de incrementação" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Mais do que uma data limite" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "Valor inválido de versão esparsa" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "Sem suporte a --atime-preserve=\"system\" nesta plataforma" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "Valor de --checkpoint não é um inteiro" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Modo inválido dado na opção" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Número inválido" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Tamanho de registro inválido" -#: src/tar.c:1864 +#: src/tar.c:1873 #, 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:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Número de elementos inválido" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "Somente uma opção --to-command permitida" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Argumento de densidade malformado: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Densidade desconhecida: \"%c\"" -#: src/tar.c:2066 +#: src/tar.c:2075 #, c-format msgid "Options '-[0-7][lmh]' not supported by *this* tar" msgstr "Sem suporte às opções \"-[0-7][lmh]\" por *este* tar" -#: src/tar.c:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: localização do erro" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "erro ao analisar \"%s\"" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[ARQUIVO]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "argumentos de não-opção em %s" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "não foi possível dividir TAR_OPTIONS: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "A opção antiga \"%c\" exige um argumento." # "--occurrence" é opção de linha de comando -- Rafael -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence não tem sentido sem uma lista de arquivos" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "Múltiplos arquivos-tar exigem a opção \"-M\"" # "--level" e "--listed-incremental" são opções de linha de comando -- Rafael -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "--level não tem sentido sem --listed-incremental" -#: src/tar.c:2424 +#: 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: O rótulo do volume é longo demais (o limite é %lu byte)" msgstr[1] "%s: O rótulo do volume é longo demais (o limite é %lu bytes)" -#: src/tar.c:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Não foi possível verificar arquivos-tar multivolume" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Não foi possível verificar arquivos-tar compactados" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Não foi possível usar arquivos-tar multivolume compactados" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Não foi possível concatenar arquivos-tar compactados" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "--clamp-mtime precisa que uma data seja especificada usando --mtime" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option pode ser usada apenas em arquivos-tar POSIX" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "--acls pode ser usada apenas em arquivos-tar POSIX" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "--selinux pode ser usada apenas em arquivos-tar POSIX" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "--xattrs pode ser usada apenas em arquivos-tar POSIX" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2583,129 +2585,138 @@ msgstr "" "Não foi possível deduzir nome de arquivo topo de nível; por favor defina-o " "explicitamente com --one-top-level=DIR" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "Tamanho do volume não pode ser menor que o tamanho do registro" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Recusando a criar um arquivo-tar vazio" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "As opções \"-Aru\" são incompatíveis com \"-f -\"" -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "" "Você deve especificar uma das opções \"-Acdtrux\", \"--delete\" ou \"--test-" "label\"" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "Saindo com status de falha em razão de erros anteriores" -#: src/update.c:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: O arquivo encolheu %s byte" msgstr[1] "%s: O arquivo encolheu %s bytes" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format msgid "Keyword %s is unknown or not yet implemented" msgstr "Palavra-chave %s não é conhecida ou ainda não está implementada" -#: src/xheader.c:174 +#: src/xheader.c:173 msgid "Time stamp is out of allowed range" msgstr "Carimbo de data/hora fora da faixa permitida" -#: src/xheader.c:205 +#: src/xheader.c:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "O padrão %s não pode ser usado" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "A palavra-chave %s não pode ser sobrescrita" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "Cabeçalho estendido malformado: falta o tamanho" -#: src/xheader.c:677 +#: src/xheader.c:695 #, c-format msgid "Extended header length %*s is out of range" msgstr "O tamanho do cabeçalho estendido %*s está fora da faixa" -#: src/xheader.c:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "Cabeçalho estendido malformado: falta espaço após o tamanho" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "Cabeçalho estendido malformado: falta sinal de igual" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "Cabeçalho estendido malformado: falta nova-linha" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "Ignorando chave \"%s\" desconhecida do cabeçalho estendido" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" 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:1053 +#: src/xheader.c:1071 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Cabeçalho estendido %s=%s está fora da faixa %s..%s" -#: src/xheader.c:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Cabeçalho estendido malformado: %s=%s inválido" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Cabeçalho estendido malformado: excesso %s=%s" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "Cabeçalho estendido malformado: %s inválido: delimitador %c inesperado" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "Cabeçalho estendido malformado: %s inválido: número ímpar de valores" -#: src/checkpoint.c:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s: não é um limite de tempo válido" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: ação do ponto de verificação desconhecida" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "escreva" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "leia" @@ -2713,7 +2724,7 @@ msgstr "leia" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Ponto de verificação de escrita %u" @@ -2722,13 +2733,13 @@ msgstr "Ponto de verificação de escrita %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Ponto de verificação de leitura %u" # genfile é o nome do programa; não traduzir -- Rafael -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2737,96 +2748,100 @@ msgstr "" "GNU.\n" "OPÇÕES são:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Opções de criação do arquivo:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "TAM" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Cria arquivo com tamanho TAM" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Escreve no arquivo NOME ao invés da saída padrão" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "Lê nomes de arquivos a partir de ARQUIVO" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T lê nomes com terminação nula" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "Preenche o arquivo com o PADRÃO dado. PADRÃO é \"default\" ou \"zeros\"" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "Tamanho de um bloco para arquivo esparso" -#: tests/genfile.c:146 +#: tests/genfile.c:141 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:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "POSIÇÃO" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "Procura pela posição dada antes de escrever os dados" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "Suprime mensagens diagnóstico não-fatais" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Opções de estatísticas do arquivo:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Exibe conteúdos de estado de estrutura para cada arquivo dado. FORMATO " "padrão é: " -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Opções de execução síncrona:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "OPÇÃO" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "Executa ARGS. Útil com --checkpoint e um entre --cut, --append, --touch e --" "unlink" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" "Executa a ação dada (ver abaixo) ao atingir o ponto de verificação NUMERO" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "Define a data para a próxima opção --touch" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "Exibe pontos de verificação executados e status de saída de COMANDO" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2834,7 +2849,7 @@ msgstr "" "Ações síncronas de execução. Estas são executadas quando o número de ponto " "de verificação informado pela opção --checkpoint é atingido." -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2842,125 +2857,125 @@ msgstr "" "Trunca ARQUIVO para o tamanho especificado pela opção --length anterior (ou " "0, se não for informado)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Adiciona TAM bytes ao arquivo ARQUIVO. O TAM é informado pela opção --length " "anterior." -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "Atualiza os tempos de modificação e de acesso do ARQUIVO" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "Executa COMANDO" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" -msgstr "" +msgstr "Exclui ARQUIVO" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Tamanho inválido: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Número fora do alcance permitido: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Tamanho negativo: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) falhou" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "tamanho de arquivo requisitado %lu, de fato %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "o arquivo criado não é esparso" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "Erro ao analisar o número próximo a \"%s\"" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Formato de data desconhecido" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ARGS...]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "não foi possível abrir \"%s\"" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "não foi possível saltar" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "o nome de arquivo contém caractere nulo" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" "não foi possível gerar arquivos esparsos na saída padrão, use a opção --file" -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "máscara incorreta (próximo a \"%s\")" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "Campo \"%s\" desconhecido" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "não foi possível definir tempo em \"%s\"" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "não foi possível truncar \"%s\"" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "o comando falhou: %s" -#: tests/genfile.c:781 -#, fuzzy, c-format +#: tests/genfile.c:772 +#, c-format msgid "cannot stat `%s'" -msgstr "não foi possível truncar \"%s\"" +msgstr "não foi possível obter status de \"%s\"" -#: tests/genfile.c:785 -#, fuzzy, c-format +#: tests/genfile.c:776 +#, c-format msgid "cannot remove directory `%s'" -msgstr "não foi possível definir tempo em \"%s\"" +msgstr "não foi possível remover diretório \"%s\"" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "não foi possível desfazer link simbólico \"%s\"" @@ -3000,6 +3015,9 @@ msgstr "Comando terminado\n" msgid "--stat requires file names" msgstr "--stat exige nomes de arquivos" +#~ msgid "OPTION" +#~ msgstr "OPÇÃO" + #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: O parâmetro ARGP_HELP_FMT deve ser positivo" diff --git a/po/ro.gmo b/po/ro.gmo index 27894dff70dc75ecc09b2936bd4b82271444744e..03dab73323f29ba4757e328a2d0d932897520108 100644 GIT binary patch delta 28 jcmaF7iSh9!#tkwiyq3BKM!H7E3Wg?DrskV9O{`P_jEM*? delta 28 jcmaF7iSh9!#tkwiyym)wM!JUP3Wi2j#)g|UO{`P_j8q6F diff --git a/po/ro.po b/po/ro.po index d54b7363..7f0ee385 100644 --- a/po/ro.po +++ b/po/ro.po @@ -3,12 +3,12 @@ # Laurentiu Buzdugan <lbuz@rolix.org>>, 2005. # # -#: src/create.c:1599 +#: src/create.c:1598 msgid "" msgstr "" "Project-Id-Version: tar 1.15.1\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\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" @@ -99,7 +99,7 @@ msgid "give a short usage message" msgstr "Afi�eaz� un scurt mesaj despre folosire" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "NUME" @@ -235,12 +235,12 @@ msgstr "" msgid "^[nN]" msgstr "" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "" @@ -248,11 +248,11 @@ msgstr "" #. 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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "" -#: gnu/version-etc.c:86 +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -500,54 +500,54 @@ msgstr "Nu pot executa shell remote" msgid "Cannot execute remote shell" msgstr "Nu pot executa shell remote" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Direc�ie c�utare (seek direction) �n afara domeniului" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 #, fuzzy msgid "Invalid seek direction" msgstr "Mod invalid furnizat ca op�iune" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 #, fuzzy msgid "Invalid seek offset" msgstr "�nregistrare timp invalid�" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Decalaj c�utare (seek offset) �n afara domeniului" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 #, fuzzy msgid "Invalid byte count" msgstr "Lungime de band� invalid�" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 #, fuzzy msgid "Byte count out of range" msgstr "Decalaj c�utare (seek offset) �n afara domeniului" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 #, fuzzy msgid "Premature eof" msgstr "rmtd: eof prematur\n" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 #, fuzzy msgid "Invalid operation code" msgstr "Mod de operare principal:" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 #, fuzzy msgid "Unexpected arguments" msgstr "EOF nea�teptat �n numele amestecate" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 #, fuzzy msgid "Manipulate a tape drive, accepting commands from a remote process" msgstr "" @@ -557,147 +557,147 @@ msgstr "" " --version Afi�eaz� informa�ii versiune.\n" " --help Afi�eaz� acest mesaj.\n" -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "NUM�R" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "FI�IER" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Comand� gunoi" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Aceasta nu pare a fi o arhiv� tar" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "" -#: src/buffer.c:592 +#: src/buffer.c:594 #, fuzzy msgid "Total bytes written" msgstr "Num�r total octe�i scri�i: %s (%s, %s/s)\n" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(pipe)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Valoare invalid� pentru record_size" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Nume arhiv� nu a fost furnizat" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Nu pot verifica arhive atdin/stdout" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Arhiva este compresat�. Folosi�i op�iunea %s." -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Nu pot actualiza arhive comprimate" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "La �nceputul benzii, ie�im acum" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Prea multe erori, ie�im" -#: src/buffer.c:967 +#: src/buffer.c:969 #, 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:988 +#: src/buffer.c:990 #, 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:1075 +#: src/buffer.c:1077 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:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek nu s-a oprit la limita unei �nregistr�ri" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: con�ine num�r volum invalid" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Dep�ire domeniu num�r volum" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Prepar� volum #%d pentru %s �i apas� tasta return: " -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "EOF unde era a�teptat r�spunsul utilizatorului" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "AVERTISMENT: Arhiva este incomplet�" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, fuzzy, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -709,279 +709,279 @@ msgstr "" " ! Lanseaz� un subshell\n" " ? Afi�eaz� aceast� list� de op�iuni\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr "" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr "" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Nici un volum nou; termin�m.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, fuzzy, c-format msgid "%s command failed" msgstr "`%s' comanda a e�uat" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s nu este continuat pe acest volum" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, 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:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s este de dimensiune gre�it� (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, fuzzy, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Acest volum este �n afara secven�ei" -#: src/buffer.c:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "Arhiva nu este etichetat� s� se potriveasc� cu %s" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "Volumul %s nu se potrive�te cu %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, 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:1965 +#: src/buffer.c:1962 #, fuzzy msgid "write did not end on a block boundary" msgstr "rmtlseek nu s-a oprit la limita unei �nregistr�ri" -#: src/compare.c:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Con�inuturile difer�" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "EOF nea�teptat �n arhiv�" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Tipul fi�ierelor difer�" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Modurile difer�" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Uid difer�" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "Gid difer�" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Timp modificare difer�" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Dimensiunea difer�" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Nu este link-at c�tre %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Symlink difer�" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Num�r dispozitiv difer�" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Verific� " -#: src/compare.c:480 +#: src/compare.c:479 #, c-format 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:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "Arhiva con�ine nume de fi�iere cu prefixele �ndep�rtate." -#: src/compare.c:541 +#: src/compare.c:540 #, fuzzy msgid "Archive contains transformed file names." msgstr "Arhiva con�ine antete �n baza-64 dep�ite" -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "Verificare ar putea e�ua s� g�seasc� fi�ierele originale." -#: src/compare.c:620 +#: src/compare.c:619 #, 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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "Un bloc zero singuratic la %s" -#: src/create.c:74 +#: 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:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Generez antete octale negative" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, 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:616 +#: src/create.c:615 #, 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:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: numele link-ului este prea lung; nimic generat" -#: src/create.c:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, 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:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Tip de fi�ier necunoscut; fi�ier ignorat" -#: src/create.c:1576 +#: src/create.c:1575 #, fuzzy, c-format msgid "Missing links to %s." msgstr "Link lips� c�tre '%s'.\n" -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: fi�ierul este neschimbat; nimic generat" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: fi�ierul este �n arhiv�; nimic generat" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 #, fuzzy msgid "directory not dumped" msgstr "%s: con�ine o etichet� de director cache; nimic generat" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: fi�ier schimbat �n timp ce �l citeam" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: socket ignorat" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: u�� ignorat�" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "S�rim la urm�torul antet" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "�tergem non-antet din arhiv�" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: �nregistrare de timp neverosimil� %s" -#: src/extract.c:320 +#: src/extract.c:319 #, 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:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Inconsisten�� nea�teptat� c�nd cream directorul" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "" @@ -1004,7 +1004,7 @@ msgstr " 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:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 #, fuzzy msgid "Unexpected long name header" msgstr "EOF nea�teptat �n numele amestecate" @@ -1034,22 +1034,22 @@ msgstr "%s: Nu am putut arhiva (backup) acest fi msgid "Cannot rename %s to %s" msgstr "%s: Nu pot redenumi ca %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, fuzzy, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Directorul a fost redenumit" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: Directorul este nou" -#: src/incremen.c:566 +#: src/incremen.c:565 #, 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 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Directorul a fost redenumit" @@ -1177,35 +1177,35 @@ msgstr "%s: msgid "%s: Cannot remove" msgstr "%s: Nu pot �terge" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: Omis" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "bloc %s: ** Bloc de NUL-uri **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "bloc %s: ** Sf�r�it de fi�ier **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "bloc %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1213,354 +1213,354 @@ msgstr "" "lui doi" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, 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:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "Arhiva con�ine antete �n baza-64 dep�ite" -#: src/list.c:852 +#: src/list.c:853 #, 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:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, 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:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " link c�tre %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " tip fi�ier necunoscut %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Link Lung--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Nume Lung--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Antet Volum--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Continuat la octet %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Creez director:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "Redenumesc %s ca %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Nu pot redenumi ca %s" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "Redenumesc %s �napoi ca %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: Fi�ier �ters �nainte de a-l putea citi" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "proces copil" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "canal �ntre-procese" -#: src/names.c:69 +#: src/names.c:68 #, fuzzy msgid "Local file name selection:" msgstr "Selec�ie fi�ier local:" -#: src/names.c:72 +#: src/names.c:71 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" -#: src/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "DIR" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "schimb� �n directorul DIR" -#: src/names.c:76 +#: src/names.c:75 #, fuzzy msgid "get names to extract or create from FILE" msgstr "ob�ine numele de extras sau creat din fi�ierul NUME" -#: src/names.c:78 +#: src/names.c:77 #, fuzzy msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "-T cite�te nume terminate cu null, deactiveaz� cu -C" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "" -#: src/names.c:87 +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" msgstr "" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "PATTERN" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "exclude fi�iere, date ca un PATTERN" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "pattern-urile de excludere sunt listate �n FI�IER" -#: src/names.c:96 +#: src/names.c:95 #, 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/names.c:99 +#: src/names.c:98 #, fuzzy msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "exclude directoarele ce con�in o etichet� cache" -#: src/names.c:102 +#: src/names.c:101 #, fuzzy msgid "exclude directories containing CACHEDIR.TAG" msgstr "exclude directoarele ce con�in o etichet� cache" -#: src/names.c:104 +#: src/names.c:103 #, fuzzy msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "exclude directoarele ce con�in o etichet� cache" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" msgstr "" -#: src/names.c:113 +#: src/names.c:112 #, fuzzy msgid "exclude everything under directories containing FILE" msgstr "exclude directoarele ce con�in o etichet� cache" -#: src/names.c:115 +#: src/names.c:114 #, fuzzy msgid "exclude directories containing FILE" msgstr "exclude directoarele ce con�in o etichet� cache" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "" -#: src/names.c:119 +#: src/names.c:118 #, fuzzy msgid "read exclude patterns from the VCS ignore files" msgstr "pattern-urile de excludere sunt �iruri simple" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "coboar� recursiv �n directoare (implicit)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "evit� cobor�rea automat� �n directoare" -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -#: src/names.c:133 +#: src/names.c:132 #, fuzzy msgid "patterns match file name start" msgstr "pattern-urile de excludere potrivesc �nceputul numelor de fi�iere" -#: src/names.c:135 +#: src/names.c:134 #, fuzzy msgid "patterns match after any '/' (default for exclusion)" msgstr "pattern-urile de excludere potrivesc dup� orice / (implicit)" -#: src/names.c:137 +#: src/names.c:136 #, fuzzy msgid "ignore case" msgstr "�n excluderi ignor� cazul caracterelor (minuscule/majuscule)" -#: src/names.c:139 +#: src/names.c:138 #, fuzzy msgid "case sensitive matching (default)" msgstr "excluderea depinde de caz (minuscule/majuscule) (implicit)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "" -#: src/names.c:145 +#: src/names.c:144 #, fuzzy msgid "wildcards match '/' (default for exclusion)" msgstr "wildcard-urile din pattern-urile de excludere potrivesc '/' (implicit)" -#: src/names.c:147 +#: src/names.c:146 #, fuzzy msgid "wildcards do not match '/'" msgstr "wildcard-urile �n pattern-urile de excludere nu potrivesc '/'" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" msgstr "" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" msgstr "" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" msgstr "" -#: src/names.c:879 +#: src/names.c:878 #, fuzzy msgid "command line" msgstr "`%s' comanda a e�uat" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" msgstr "" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: Nu a fost g�sit �n arhiv�" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Lucrul cerut nu a fost g�sit �n arhiv�" -#: src/names.c:1413 +#: src/names.c:1443 #, fuzzy, c-format msgid "Archive label mismatch" msgstr "Arhiva nu este etichetat� s� se potriveasc� cu %s" -#: src/names.c:1717 +#: src/names.c:1747 msgid "" "Using -C option inside file list is not allowed with --listed-incremental" msgstr "" -#: src/names.c:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "" -#: src/tar.c:88 +#: src/tar.c:87 #, 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:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Format arhiv� invalid" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "Capabilit��i GNU cerute pentru un format de arhiv� incompatibil" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1800,7 +1800,7 @@ msgstr "" msgid "extract files to standard output" msgstr "extrage fi�ierele la ie�irea standard" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "COMAND�" @@ -1837,7 +1837,7 @@ msgstr "" msgid "use FILE to map file owner GIDs and names" msgstr "" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "DATA-FI�IERULUI" @@ -2042,7 +2042,7 @@ msgstr "redimensioneaz msgid "Archive format selection:" msgstr "Selec�ie format arhiv�:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "FORMAT" @@ -2131,61 +2131,61 @@ msgstr "PROG" msgid "filter through PROG (must accept -d)" msgstr "filtreaz� prin PROG (trebuie s� accepte -d)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Selec�ie fi�ier local:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "stai �n sistemul de fi�ire local la creare arhivei" -#: src/tar.c:693 +#: src/tar.c:694 #, fuzzy msgid "don't strip leading '/'s from file names" msgstr "nu elimina primul `/' din numele fi�ierelor" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" msgstr "" -#: src/tar.c:697 +#: src/tar.c:698 msgid "follow hard links; archive and dump the files they refer to" msgstr "" -#: src/tar.c:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "NUME-MEMBRU" -#: src/tar.c:699 +#: src/tar.c:700 #, fuzzy msgid "begin at member MEMBER-NAME when reading the archive" msgstr "�ncepe la membrul NUME-MEMBRU �n arhiv�" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "stocheaz� numai fi�iere mai noi dec�t DATA-FI�IERULUI" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "DATA" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "compar� data �i timpul numai c�nd a fost schimbat� data" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "CONTROL" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "f� backup �nainte de �tergere, alege CONTROL pentru versiuni" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "�IR" -#: src/tar.c:708 +#: src/tar.c:709 #, fuzzy msgid "" "backup before removal, override usual suffix ('~' unless overridden by " @@ -2194,61 +2194,61 @@ 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:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "" -#: src/tar.c:715 +#: src/tar.c:716 #, 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:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Ie�ire informativ�:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "listeaz� cu am�nunte fi�ierele procesate" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "" -#: src/tar.c:731 +#: src/tar.c:732 #, 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:733 +#: src/tar.c:734 msgid "ACTION" msgstr "" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:737 +#: src/tar.c:738 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:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2256,37 +2256,37 @@ msgid "" "accepted" msgstr "" -#: src/tar.c:744 +#: src/tar.c:745 #, fuzzy msgid "print file modification times in UTC" msgstr "afi�eaz� datele de modificare a fi�ierelor �n UTC" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "trimite ie�ire detaliat� �n FI�IER" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "arat� num�rul blocului din arhiv� pentru fiecare mesaj" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "cere confirmare pentru fiecare ac�iune" -#: src/tar.c:755 +#: src/tar.c:756 #, fuzzy msgid "show tar defaults" msgstr "Arat� valorire implicite folosite de tar" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "" -#: src/tar.c:759 +#: src/tar.c:760 #, fuzzy msgid "" "when listing or extracting, list each directory that does not match search " @@ -2295,94 +2295,94 @@ msgstr "" "La listare sau extragere, listeaz� fiecare director care nu se potrive�te cu " "criteriile de c�utare" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "" -#: src/tar.c:765 +#: src/tar.c:766 msgid "set name quoting style; see below for valid STYLE values" msgstr "" -#: src/tar.c:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Op�iuni compatibilitate:" -#: src/tar.c:777 +#: src/tar.c:778 #, 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:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Alte op�iuni:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, fuzzy, c-format msgid "'%s' cannot be used with '%s'" msgstr "%s: Nu pot c�uta (seek) c�tre %s" -#: src/tar.c:933 +#: src/tar.c:934 #, fuzzy 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:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Op�iunile de compresie sunt �n conflict" -#: src/tar.c:1004 +#: src/tar.c:1000 #, fuzzy, c-format msgid "Unknown signal name: %s" msgstr " tip fi�ier necunoscut %s\n" -#: src/tar.c:1028 +#: src/tar.c:1030 #, fuzzy msgid "Date sample file not found" msgstr "Fi�ier date nu a fost g�sit" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "�nlocuim %s pentru format de dat� necunoscut %s" -#: src/tar.c:1065 +#: src/tar.c:1067 #, fuzzy, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "Tratez data `%s' ca %s + %ld nanosecund�" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, fuzzy, c-format msgid "filter the archive through %s" msgstr "filtreaz� arhiva prin gzip" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2390,302 +2390,311 @@ msgstr "" "\n" "*Acest* tar folose�te implicit:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 #, fuzzy msgid "Invalid owner or group ID" msgstr "Proprietar invalid" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Factor blocuri invalid" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Lungime de band� invalid�" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Mai mult de o singur� dat� limit�" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Mod invalid furnizat ca op�iune" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Num�r invalid" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Dimensiune �nregistrare invalid�" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "Dimensiune �nregistrare trebuie s� fie un multiplu de %d." -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Num�r invalid de elemente" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "" -#: src/tar.c:2023 +#: src/tar.c:2032 #, fuzzy, c-format msgid "Malformed density argument: %s" msgstr "Argument densitate malformat: '%s'" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Densitate necunoscut�: '%c'" -#: src/tar.c:2066 +#: src/tar.c:2075 #, 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:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[FI�IER]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, fuzzy, c-format msgid "non-option arguments in %s" msgstr "argument invalid %s pentru %s" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "" -#: src/tar.c:2291 +#: src/tar.c:2300 #, fuzzy, c-format msgid "Old option '%c' requires an argument." msgstr "Vechea op�iune `%c' necesit� un argument." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence n-are sens f�r� o list� de fi�iere" -#: src/tar.c:2390 +#: src/tar.c:2399 #, fuzzy msgid "Multiple archive files require '-M' option" msgstr "Fi�iere de arhiv� multiple necesit� op�iunea `-M'" -#: src/tar.c:2407 +#: 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:2424 +#: 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Nu pot verifica arhive pe volume multiple" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Nu pot verifica arhive comprimate" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Nu pot folosi arhive comprimate pe volume multiple" -#: src/tar.c:2457 +#: src/tar.c:2466 #, fuzzy msgid "Cannot concatenate compressed archives" msgstr "Nu pot actualiza arhive comprimate" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option poate fi folosit numai pentru arhive POSIX" -#: src/tar.c:2481 +#: src/tar.c:2490 #, fuzzy msgid "--acls can be used only on POSIX archives" msgstr "--pax-option poate fi folosit numai pentru arhive POSIX" -#: src/tar.c:2486 +#: src/tar.c:2495 #, fuzzy msgid "--selinux can be used only on POSIX archives" msgstr "--pax-option poate fi folosit numai pentru arhive POSIX" -#: src/tar.c:2491 +#: src/tar.c:2500 #, fuzzy msgid "--xattrs can be used only on POSIX archives" msgstr "--pax-option poate fi folosit numai pentru arhive POSIX" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" msgstr "" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Refuz categoric s� creez o arhiv� goal�" -#: src/tar.c:2623 +#: src/tar.c:2632 #, fuzzy msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Op�iunile `-Aru' sunt incompatibile cu `-f -'" -#: src/tar.c:2711 +#: src/tar.c:2743 #, fuzzy 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:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" -#: src/update.c:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Fi�ier scurtat cu %s octet" msgstr[1] "%s: Fi�ier scurtat cu %s octe�i" -#: src/xheader.c:165 +#: src/xheader.c:164 #, fuzzy, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "Pattern-ul %s nu poate fi folosit" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Cuv�nt_cheie %s nu poate fi �nlocuit (overridden)" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 #, fuzzy msgid "Malformed extended header: missing length" msgstr "Antet extins malformat: lipse�te semnul egal" -#: src/xheader.c:677 +#: src/xheader.c:695 #, 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:689 +#: src/xheader.c:707 #, fuzzy msgid "Malformed extended header: missing blank after length" msgstr "Antet extins malformat: lipse�te spa�iu liber dup� lungime" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "Antet extins malformat: lipse�te semnul egal" -#: src/xheader.c:703 +#: src/xheader.c:721 #, fuzzy msgid "Malformed extended header: missing newline" msgstr "Antet extins malformat: lipse�te semnul egal" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, 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:1053 +#: src/xheader.c:1071 #, 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:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, fuzzy, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Antet extins malformat: lipse�te semnul egal" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, fuzzy, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Antet extins malformat: lipse�te semnul egal" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, fuzzy, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "Antet extins malformat: lipse�te semnul egal" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, fuzzy, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "Antet extins malformat: lipse�te semnul egal" -#: src/checkpoint.c:114 +#: src/checkpoint.c:133 #, fuzzy, c-format msgid "%s: not a valid timeout" msgstr "%s: Grup invalid" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "" @@ -2693,7 +2702,7 @@ msgstr "" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, fuzzy, c-format msgid "Write checkpoint %u" msgstr "Scrie punct de verificare %d" @@ -2702,236 +2711,235 @@ msgstr "Scrie punct de verificare %d" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, fuzzy, c-format msgid "Read checkpoint %u" msgstr "Cite�te punct de verificare %d" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "" -#: tests/genfile.c:131 +#: tests/genfile.c:126 #, fuzzy msgid "File creation options:" msgstr "Alte op�iuni:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "" -#: tests/genfile.c:133 +#: tests/genfile.c:128 #, fuzzy msgid "Create file of the given SIZE" msgstr "creaz� arhiva de formatul dat." -#: tests/genfile.c:135 +#: tests/genfile.c:130 #, fuzzy msgid "Write to file NAME, instead of standard output" msgstr "extrage fi�ierele la ie�irea standard" -#: tests/genfile.c:137 +#: tests/genfile.c:132 #, fuzzy msgid "Read file names from FILE" msgstr "Am citit %s octe�i de la %s" -#: tests/genfile.c:139 +#: tests/genfile.c:134 #, fuzzy msgid "-T reads null-terminated names" msgstr "-T cite�te nume terminate cu null, deactiveaz� cu -C" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "" -#: tests/genfile.c:149 +#: tests/genfile.c:144 #, fuzzy msgid "Seek to the given offset before writing data" msgstr "�ncearc� s� verifici arhiva dup� scrierea sa" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "" -#: tests/genfile.c:168 -#, fuzzy -msgid "OPTION" -msgstr " [OP�IUNE...]" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "" -#: tests/genfile.c:196 +#: tests/genfile.c:191 #, fuzzy msgid "Execute COMMAND" msgstr "COMAND�" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" msgstr "" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, fuzzy, c-format msgid "Invalid size: %s" msgstr "�nregistrare timp invalid�" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, fuzzy, c-format msgid "Number out of allowed range: %s" msgstr "Num�r inode �n afara intervalului" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, fuzzy, c-format msgid "Unknown date format" msgstr "Eroare sistem necunoscut�" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "" -#: tests/genfile.c:448 +#: tests/genfile.c:439 #, fuzzy msgid "cannot seek" msgstr "%s: Nu pot c�uta (seek) c�tre %s" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, fuzzy, c-format msgid "Unknown field `%s'" msgstr " tip fi�ier necunoscut %s\n" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, fuzzy, c-format msgid "cannot set time on `%s'" msgstr "%s: Nu pot c�uta (seek) c�tre %s" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, fuzzy, c-format msgid "cannot truncate `%s'" msgstr "%s: Nu pot redenumi ca %s" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, fuzzy, c-format msgid "command failed: %s" msgstr "`%s' comanda a e�uat" -#: tests/genfile.c:781 +#: tests/genfile.c:772 #, c-format msgid "cannot stat `%s'" msgstr "" -#: tests/genfile.c:785 +#: tests/genfile.c:776 #, fuzzy, c-format msgid "cannot remove directory `%s'" msgstr "Nu pot salva directorul �n care lucrez" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, fuzzy, c-format msgid "cannot unlink `%s'" msgstr "%s: Nu pot crea symlink c�tre %s" @@ -2971,6 +2979,10 @@ msgstr "" msgid "--stat requires file names" msgstr "--Amestecat numele fi�ierelor--\n" +#, fuzzy +#~ msgid "OPTION" +#~ msgstr " [OP�IUNE...]" + #~ msgid "%s: option `--%s' doesn't allow an argument\n" #~ msgstr "%s: op�iunea `--%s' nu permite un argument\n" diff --git a/po/ru.gmo b/po/ru.gmo index 6651453cb8ae93b76ad1fa95a23a13f05eec44fd..a3da05c0719dead703b8ffa175094d7e46ec9851 100644 GIT binary patch delta 15167 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 VmJ7Qt_D|1XWR%$+!N@3T4FJ<cTAu&_ delta 12969 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 H6tM;XQC?}= diff --git a/po/ru.po b/po/ru.po index a9a7ff7f..7d235e41 100644 --- a/po/ru.po +++ b/po/ru.po @@ -4,15 +4,15 @@ # # Const Kaplinsky <const@ce.cctpu.edu.ru>, 1998, 1999. # Pavel Maryanov <acid_jack@ukr.net>, 2004, 2006, 2008. -# Yuri Kozlov <yuray@komyakino.ru>, 2009, 2013, 2014, 2016. +# Yuri Kozlov <yuray@komyakino.ru>, 2009, 2013, 2014, 2016, 2018. # Pavel Maryanov <acid@jack.kiev.ua>, 2010, 2014. -#: src/create.c:1599 +#: src/create.c:1598 msgid "" msgstr "" -"Project-Id-Version: tar 1.29\n" +"Project-Id-Version: tar 1.30\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" -"PO-Revision-Date: 2016-05-18 19:02+0300\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" +"PO-Revision-Date: 2018-03-11 08:35+0300\n" "Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n" "Language-Team: Russian <gnu@d07.ru>\n" "Language: ru\n" @@ -22,7 +22,7 @@ msgstr "" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" -"X-Generator: Lokalize 1.5\n" +"X-Generator: Lokalize 2.0\n" #: gnu/argmatch.c:134 #, c-format @@ -104,7 +104,7 @@ msgid "give a short usage message" msgstr "вывод короткого сообщения об использовании" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "ИМЯ" @@ -142,29 +142,29 @@ msgid "write error" msgstr "ошибка записи" #: gnu/getopt.c:278 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous\n" -msgstr "%s: двусмысленный параметр «%s»\n" +msgstr "%s: двусмысленный параметр «%s%s»\n" #: gnu/getopt.c:284 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" -msgstr "%s: двусмысленный параметр «%s»; возможные варианты:" +msgstr "%s: двусмысленный параметр «%s%s»; возможные варианты:" #: gnu/getopt.c:319 -#, fuzzy, c-format +#, c-format msgid "%s: unrecognized option '%s%s'\n" -msgstr "%s: нераспознанный параметр «%c%s»\n" +msgstr "%s: нераспознанный параметр «%s%s»\n" #: gnu/getopt.c:345 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" -msgstr "%s: с параметром «%c%s» нельзя использовать аргумент\n" +msgstr "%s: для параметра «%s%s» нельзя использовать аргумент\n" #: gnu/getopt.c:360 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' requires an argument\n" -msgstr "%s: для параметра «--%s» требуется аргумент\n" +msgstr "%s: для параметра «%s%s» требуется аргумент\n" #: gnu/getopt.c:621 #, c-format @@ -239,12 +239,12 @@ msgstr "^[yY]" msgid "^[nN]" msgstr "^[nN]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Упакован %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Упакован %s\n" @@ -252,12 +252,11 @@ msgstr "Упакован %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: gnu/version-etc.c:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "(C)" -#: gnu/version-etc.c:86 -#, fuzzy +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -267,9 +266,9 @@ msgid "" "\n" msgstr "" "\n" -"Лицензия GPLv3+: GNU GPL версии 3 или новее <http://gnu.org/licenses/gpl." +"Лицензия GPLv3+: GNU GPL версии 3 или новее <https://gnu.org/licenses/gpl." "html>\n" -"Это свободное ПО: вы можете продавать и распространять его.\n" +"Это свободное ПО: вы можете изменять и распространять его.\n" "Нет НИКАКИХ ГАРАНТИЙ до степени, разрешённой законом.\n" "\n" @@ -405,14 +404,13 @@ msgid "%s home page: <%s>\n" msgstr "Домашняя страница %s: %s\n" #: gnu/version-etc.c:253 -#, fuzzy, c-format +#, c-format msgid "%s home page: <https://www.gnu.org/software/%s/>\n" -msgstr "Домашняя страница %s: <http://www.gnu.org/software/%s/>\n" +msgstr "Домашняя страница %s: <https://www.gnu.org/software/%s/>\n" #: gnu/version-etc.c:256 -#, fuzzy msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n" -msgstr "Справка по работе с ПО GNU: <http://www.gnu.org/gethelp/>\n" +msgstr "Справка по работе с программами GNU: <https://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 @@ -534,147 +532,147 @@ msgstr "Не удалось перенаправить файлы для уда msgid "Cannot execute remote shell" msgstr "Не удаётся запустить удалённый командный процессор" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Направление поиска за пределами диапазона" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "Недопустимое направление поиска" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "Недопустимое смещение поиска" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Смещение поиска за пределами диапазона" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "Недопустимое число байт" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "Число байт за пределами диапазона" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "Неожиданный конец файла" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "Недопустимый код операции" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "Операция не поддерживается" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Неожиданные аргументы" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 msgid "Manipulate a tape drive, accepting commands from a remote process" msgstr "" "Работа с накопителем на магнитной ленте с приёмом команд от удалённого " "процесса" -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "N" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "задайте уровень отладки" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "ФАЙЛ" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "задайте имя выходного файла отладки" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "не удаётся открыть %s" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "слишком много аргументов" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Неверная команда" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Это не похоже на tar-архив" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Всего прочитано байт" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Всего записано байт" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "Всего удалено байт" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(канал)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "Отказ чтения содержимого архива с терминала (пропущен параметр -f?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "Отказ записи содержимого архива в терминал (пропущен параметр -f?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Недопустимое значение для record_size" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Не указано имя архива" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Не удаётся проверить архив на stdin/stdout" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Архив сжат. Используйте параметр %s" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Не удаётся обновить сжатые архивы" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "Начало ленты, завершение работы" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Слишком много ошибок, завершение работы" -#: src/buffer.c:967 +#: src/buffer.c:969 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" @@ -682,7 +680,7 @@ msgstr[0] "Размер записи = %lu блок" msgstr[1] "Размер записи = %lu блока" msgstr[2] "Размер записи = %lu блоков" -#: src/buffer.c:988 +#: src/buffer.c:990 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" @@ -690,39 +688,39 @@ msgstr[0] "Невыровненный блок (%lu байт) в архиве" msgstr[1] "Невыровненный блок (%lu байта) в архиве" msgstr[2] "Невыровненный блок (%lu байт) в архиве" -#: src/buffer.c:1075 +#: src/buffer.c:1077 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "" "Невозможно вернуться назад на один архивный файл; он может быть нечитаемым " "без -i" -#: src/buffer.c:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek не остановился на границе записи" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: содержит неверный номер тома" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Переполнение номера тома" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Приготовьте том Номер %d для %s и нажмите Enter: " -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "Конец файла вместо ожидаемого ответа пользователя" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "ПРЕДУПРЕЖДЕНИЕ: Архив не полный" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -734,66 +732,66 @@ msgstr "" " q Выход из tar\n" " y или [нов.строка] Продолжение операции\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Порождение подпроцесса командного процессора\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? Вывод этого списка\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Нет нового тома, завершение работы.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "Не указано имя имя файла. Попробуйте ещё раз.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Неверные входные данные. Наберите ? для получения справки.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "Сбой команды %s" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s не продолжается на этом томе" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "" "%s, возможно, продолжается на этом томе - в заголовке находится усечённое имя" -#: src/buffer.c:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s является неверным размером (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Этот том вне последовательности (%s - %s != %s)" -#: src/buffer.c:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "Метка архива не соответствует %s" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "Том %s не соответствует %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -801,11 +799,11 @@ msgstr "" "%s: слишком длинное имя файла для сохранения в многотомном заголовке GNU; " "обрезано" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "запись не остановилась на границе блока" -#: src/compare.c:98 +#: src/compare.c:97 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" @@ -813,75 +811,75 @@ msgstr[0] "Можно было прочитать только %lu байт из msgstr[1] "Можно было прочитать только %lu байта из %lu" msgstr[2] "Можно было прочитать только %lu байт из %lu" -#: src/compare.c:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Содержимое различно" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Неожиданный конец файла в архиве" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Типы файлов отличаются" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Права доступа отличаются" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Uid отличаются" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "Gid отличаются" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Время изменения отличается" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Размеры отличаются" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Не ссылается на %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Символические ссылки отличаются" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Номера устройств отличаются" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Проверка " -#: src/compare.c:480 +#: src/compare.c:479 #, c-format msgid "%s: Unknown file type '%c', diffed as normal file" msgstr "%s: Неизвестный тип файла «%c», сравнён как обычный файл" -#: src/compare.c:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "Архив содержит файлы с именами, из которых удалены префиксы." -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "Архив содержит преобразованные имена файлов." -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "При проверке оригинальные файлы могут быть не найдены." -#: src/compare.c:620 +#: src/compare.c:619 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" @@ -889,46 +887,46 @@ msgstr[0] "СБОЙ ПРОВЕРКИ: обнаружен %d неверный з msgstr[1] "СБОЙ ПРОВЕРКИ: обнаружено %d неверных заголовка" msgstr[2] "СБОЙ ПРОВЕРКИ: обнаружено %d неверных заголовков" -#: src/compare.c:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "Нулевой блок в %s" -#: src/create.c:74 +#: src/create.c:73 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: содержит каталог с кэшем тегов %s; %s" -#: src/create.c:263 +#: 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:269 +#: src/create.c:268 #, c-format msgid "value %s out of %s range %s..%s" msgstr "значение %s за пределами %s диапазона %s..%s" -#: src/create.c:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Создаются отрицательные восьмеричные заголовки" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, c-format msgid "%s: file name is too long (max %d); not dumped" msgstr "%s: имя файла слишком длинное (максимум %d); не сброшено" -#: src/create.c:616 +#: src/create.c:615 #, c-format msgid "%s: file name is too long (cannot be split); not dumped" msgstr "%s: имя файла слишком длинное (не может быть разделено); не сброшено" -#: src/create.c:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: имя ссылки слишком длинное; не сброшено" -#: src/create.c:1106 +#: src/create.c:1105 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" @@ -936,78 +934,78 @@ msgstr[0] "%s: Файл урезан на %s байт; дополнен нуля msgstr[1] "%s: Файл урезан на %s байта; дополнен нулями" msgstr[2] "%s: Файл урезан на %s байт; дополнен нулями" -#: src/create.c:1204 +#: src/create.c:1203 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: файл находится на другой файловой системе; не сброшен" -#: src/create.c:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "содержимое не сброшено" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Неизвестный тип файла; файл проигнорирован" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "Отсутствуют ссылки на %s." -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: файл не изменён; не сброшен" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: файл является архивом; не сброшен" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "каталог не сброшен" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: файл изменился во время чтения" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: сокет проигнорирован" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: door проигнорирован" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Пропускается до следующего заголовка" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Удаляется не-заголовок из архива" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: невероятно старая временная метка %s" -#: src/extract.c:320 +#: src/extract.c:319 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: временная метка %s - %s с в будущем " -#: src/extract.c:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Неожиданная противоречивость при создании каталога" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: пропускается существующий файл" @@ -1030,7 +1028,7 @@ msgstr "Выполняется попытка извлечь символиче msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Невозможно извлечь -- файл продолжается с другого тома" -#: src/extract.c:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Непредвиденный длинный заголовок имени" @@ -1047,7 +1045,7 @@ msgstr "Текущий %s более новый или такого же воз #: src/extract.c:1664 #, c-format msgid "%s: Member name contains '..'" -msgstr "" +msgstr "%s: в имени содержится «..»" #: src/extract.c:1696 #, c-format @@ -1059,22 +1057,22 @@ msgstr "%s: Невозможно было выполнить резервное msgid "Cannot rename %s to %s" msgstr "Невозможно переименовать %s в %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Каталог был переименован из %s" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: Каталог новый" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "%s: каталог находится на другой файловой системе; не сброшен" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Каталог был переименован" @@ -1200,35 +1198,35 @@ msgstr "%s: Удаляется %s\n" msgid "%s: Cannot remove" msgstr "%s: Невозможно удалить" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: Пропускается" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "блок %s: ** Блок нулей **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "блок %s: ** Конец файла **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "блок %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1236,160 +1234,160 @@ msgstr "" "дополнение до двух" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Восьмеричное значение архива %.*s за пределами диапазона %s" -#: src/list.c:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "Архив содержит устаревающие заголовки base-64" -#: src/list.c:852 +#: src/list.c:853 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "Архив подписан строкой base-64 %s за пределами диапазона %s" -#: src/list.c:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Значение архива %s за пределами %s диапазона %s..%s" -#: src/list.c:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " ссылка на %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " неизвестный тип файла %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Длинная ссылка--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Длинное имя--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Заголовок тома--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Продолжение с позиции %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Создание каталога:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "%s переименован в %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Невозможно переименовать в %s" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "%s переименовывается назад в %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: Файла удален до его считывания" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "дочерний процесс" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "межпроцессорный канал" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "Имя выбранного локального файла:" -#: src/names.c:72 +#: src/names.c:71 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" "добавить указанный ФАЙЛ в архив (полезно, если имя начинается с дефиса)" -#: src/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "КАТАЛОГ" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "перейти в КАТАЛОГ" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "загрузить из ФАЙЛА имена для извлечения или создания" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "" "-T читает строки, оканчивающиеся null; подразумевается --verbatim-files-from" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "выключить воздействие предыдущей опции --null" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "убрать кавычки в имени входного файла или членов (по умолчанию)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "не убирать кавычки в имени входного файла или членов (по умолчанию)" -#: src/names.c:87 -#, fuzzy +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" -msgstr "-T читает имена файлов буквально (не считаются параметрами)" +msgstr "" +"-T читает имена файлов буквально (не экранируются или считаются параметрами)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "" "-T считает имена файлов, начинающихся с переноса, параметрами (по умолчанию)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "ШАБЛОН" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "исключать файлы, определённые ШАБЛОНОМ" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "исключать шаблоны, перечисленных в ФАЙЛЕ" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1397,24 +1395,24 @@ msgstr "" "исключать содержимое каталогов с файлом CACHEDIR.TAG за исключением самого " "файла с тегами" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "исключать всё содержимое каталогов, содержащих файл CACHEDIR.TAG" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "исключать каталоги, содержащие файл CACHEDIR.TAG" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "исключать каталоги, содержащие ФАЙЛ, за исключением самого ФАЙЛА" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "" "читать шаблоны исключения для каждого каталога из ФАЙЛА, если он существует" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" @@ -1422,118 +1420,121 @@ msgstr "" "читать шаблоны исключения для каждого каталога и его подкаталогов из ФАЙЛА, " "если он существует" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "исключать всё содержимое каталогов, содержащих ФАЙЛ" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "исключать каталоги с ФАЙЛОМ" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "исключать каталоги CVS" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "читать шаблоны исключения из файлов игнорирования VCS" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "исключать резервные файлы и файлы блокировки" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "рекурсивный спуск по каталогам (по умолчанию)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "отключить автоматический спуск в каталоги" -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" "Опции шаблонов подстановки для имён файлов (влияют на шаблоны включения и " "исключения):" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "шаблоны начала имени файла" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "шаблоны совпадают после любого «/» (по умолчанию для исключаемых)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "игнорировать регистр" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "с учётом регистра (по умолчанию)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "использовать маски (по умолчанию для исключаемых)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "точное соответствие строке" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "маски соответствуют «/» (по умолчанию для исключаемых)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "маски не соответствуют «/»" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" +"Следующие параметры используются после обязательных аргументов в режиме " +"создания или обновления архива. Эти параметры зависят от места и влияют " +"только на аргументы, после которых указываются. Размещайте их правильно." -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" -msgstr "" +msgstr "-C %s не учитывается" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" -msgstr "" +msgstr "--%s %s не учитывается" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" -msgstr "" +msgstr "--%s не учитывается" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "командная строка" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: список файлов, запрошенный из %s, уже прочитан из %s" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "невозможно разделить строку «%s»: %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: в прочитанном имени файла присутствует пустой символ" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "В именах файлов используются символы подстановки" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1541,48 +1542,48 @@ msgstr "" "Используйте --wildcards, чтобы задействовать эти символы, или --no-" "wildcards, чтобы убрать это предупреждение" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: Не найден в архиве" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Требуемое вхождение не найдено в архиве" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "Несоответствие метки архива" -#: src/names.c:1717 +#: src/names.c:1747 msgid "" "Using -C option inside file list is not allowed with --listed-incremental" msgstr "" "Параметра -C в списке файлов нельзя Использовать с параметром --listed-" "incremental" -#: src/names.c:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "" "С параметром --listed-incremental можно использовать только параметр -C" -#: src/tar.c:88 +#: src/tar.c:87 #, c-format msgid "Options '%s' and '%s' both want standard input" msgstr "Для обоих параметров «%s» и «%s» требуется стандартный ввод" -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Неверный формат архива" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "Запрошены расширения GNU для несовместимого формата архива" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1804,7 +1805,7 @@ msgstr "Выбор выходного потока:" msgid "extract files to standard output" msgstr "извлекать файлы на стандартный вывод" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "КОМАНДА" @@ -1842,7 +1843,7 @@ msgstr "использовать ФАЙЛ для сопоставления UID msgid "use FILE to map file owner GIDs and names" msgstr "использовать ФАЙЛ для сопоставления GID владельцев файла и имён" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "ДАТА-ИЛИ-ФАЙЛ" @@ -2056,7 +2057,7 @@ msgstr "заново разбивать на блоки при чтении (д msgid "Archive format selection:" msgstr "Формата архива:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "ФОРМАТ" @@ -2140,61 +2141,61 @@ msgstr "ПРОГ" msgid "filter through PROG (must accept -d)" msgstr "пропустить архив через ПРОГ (должна поддерживать -d)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Выбор локальных файлов:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "оставаться в локальной файловой системе при создании архива" -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "не удалять начальные «/» из имён файлов" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" msgstr "" "следовать по символьным ссылкам и сохранять файлы, на которые они указывают" -#: src/tar.c:697 +#: src/tar.c:698 msgid "follow hard links; archive and dump the files they refer to" msgstr "" "следовать по жёстким ссылкам и сохранять файлы, на которые они указывают" -#: src/tar.c:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "ИМЯ-ЧЛЕНА" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "начинать с члена ИМЯ-ЧЛЕНА при чтении архива" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "сохранять только те файлы, которые новее ДАТЫ-ИЛИ-ФАЙЛА" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "ДАТА" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "сравнивать дату и время, только если изменены данные" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "УПРАВЛЕНИЕ" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "делать копию перед удалением, УПРАВЛЕНИЕ выбора версий" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "СТРОКА" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2202,63 +2203,63 @@ msgstr "" "делать копию перед удалением, переопределяет обычный суффикс ('~', если " "только он не переопределён переменной окружения SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Преобразование имён файлов:" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "" "удалять указанное ЧИСЛО начальных компонентов из имён файлов перед " "извлечением" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "РАСШИРЕНИЕ" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "использовать замену РАСШИРЕНИЯ sed'ом для преобразования имён файлов" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Вывод информации:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "подробный листинг обрабатываемых файлов" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "КЛЮЧЕВОЕ СЛОВО" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "управление предупреждением" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" "вывод сообщений о ходе выполнения через каждые ЧИСЛО записей (по умолчанию " "10)" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "ДЕЙСТВИЕ" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "выполнять ДЕЙСТВИЕ на каждой контрольной точке" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "вывод сообщений, если сохранены не все ссылки" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "СИГНАЛ" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2270,35 +2271,35 @@ msgstr "" "SIGQUIT, SIGINT, SIGUSR1 и SIGUSR2. Также разрешается использовать имена без " "префикса SIG" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "вывод времени изменения файла в формате UTC" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "вывод имени файла и его полного разрешения" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "отправить подробный вывод данных в FILE" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "выводить номера блоков архива в каждом сообщении" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "запрашивать подтверждение для каждого действия" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "показать значения tar по умолчанию" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "показать допустимые диапазоны для полей snapshot-файла" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2306,31 +2307,31 @@ msgstr "" "при выводе листинга или извлечении показывать все каталоги, не " "соответствующем условию поиска" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "показывать имена файлов или архивов после преобразования" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "СТИЛЬ" -#: src/tar.c:765 +#: src/tar.c:766 msgid "set name quoting style; see below for valid STYLE values" msgstr "установить стиль цитирования имён. Значения для СТИЛЯ см. ниже" -#: src/tar.c:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "дополнительно цитировать символы из СТРОКИ" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "отключить цитирование символов из СТРОКИ" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Опции совместимости:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2338,22 +2339,22 @@ msgstr "" "при создании, эквивалент --old-archive; при извлечении, эквивалент --no-same-" "owner" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Другие опции:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "отключить использование некоторых потенциально опасных опций" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "«%s» не может быть использован с «%s»" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" @@ -2361,40 +2362,40 @@ msgstr "" "Указать можно только один из параметров «-Acdtrux», «--delete» или «--test-" "label»" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Конфликт опций сжатия" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Неизвестное название сигнала: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "Файл с образцом даты не найден" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "%s заменяется на неизвестный формат даты %s" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "Опция %s: дата «%s» рассматривается как %s" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "пропустить архив через %s" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "Допустимые аргументы для параметра --quoting-style:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2402,120 +2403,120 @@ msgstr "" "\n" "Значения по умолчанию *этого* tar:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "Неверный владелец или группа" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Неверный размер ёмкости блока" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Неверная длина ленты" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "Недопустимое значение добавочного уровня" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Больше одной пороговой даты" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "Неверное значение версии разрежения" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve='system' не поддерживается на этой платформе" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "значение --checkpoint не является целым числом" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "В опции указан неверный режим доступа" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Неверное число" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Неверный размер записи" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "Размер записи должен быть кратен %d." -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Неверное число элементов" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "Разрешается использовать только одну опцию --to-command" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Неверно сформирован аргумент плотности: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Неизвестная плотность: «%c»" -#: src/tar.c:2066 +#: src/tar.c:2075 #, c-format msgid "Options '-[0-7][lmh]' not supported by *this* tar" msgstr "Опции «-[0-7][lmh]» не поддерживаются *этим* tar-ом" -#: src/tar.c:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: место ошибки" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "ошибка разбора %s" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[ФАЙЛ]…" -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "аргументы, не являющиеся параметрами, в %s" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "невозможно разделить TAR_OPTIONS: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "Для старой опции «%c» нужно указать аргумент." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence бесполезна без списка файлов" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "Для нескольких файлов архивов требуется опция «-M»" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "параметр --level не имеет смыла без --listed-incremental" -#: src/tar.c:2424 +#: 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)" @@ -2523,43 +2524,43 @@ msgstr[0] "%s: Метка тома слишком длинная (максиму msgstr[1] "%s: Метка тома слишком длинная (максимум %lu байта)" msgstr[2] "%s: Метка тома слишком длинная (максимум %lu байт)" -#: src/tar.c:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Невозможно проверить многотомные архивы" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Невозможно проверить сжатые архивы" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Невозможно использовать многотомные сжатые архивы" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Невозможно объединить сжатые архивы" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "--clamp-mtime требуется дата, задаваемая через --mtime" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option может быть использована только с архивами POSIX" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "--acls может быть использована только с архивами POSIX" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "--selinux может быть использована только с архивами POSIX" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "--xattrs может быть использована только с архивами POSIX" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2567,86 +2568,95 @@ msgstr "" "Невозможно определить имя каталога верхнего уровня; укажите его явно с " "помощью --one-top-level=КАТАЛОГ" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "Размер тома не может быть меньше размера записи" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Робкий отказ от создания пустого архива" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Параметры «-Aru» не совместимы с «-f -»" -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "" "Необходимо указать один из параметров «-Acdtrux», «--delete» или «--test-" "label»" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "Завершение работы с состоянием неисправности из-за возникших ошибок" -#: src/update.c:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Файл урезан на %s байт" msgstr[1] "%s: Файл урезан на %s байта" -msgstr[2] "%s: Файл урезан на %s байтов" +msgstr[2] "%s: Файл урезан на %s байт" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "Шаблон %s не может быть использован" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Ключевое слово %s не может быть перекрыто" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "Неверно сформирован расширенный заголовок: отсутствует длина" -#: src/xheader.c:677 +#: src/xheader.c:695 #, c-format msgid "Extended header length %*s is out of range" msgstr "Длина расширенного заголовка %*s за пределами допустимого диапазона" -#: src/xheader.c:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "" "Неверно сформирован расширенный заголовок: после длины отсутствует пробел" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" -msgstr "Неверно сформирован расширенный заголовок: отсутствует знак равенства " +msgstr "Неверно сформирован расширенный заголовок: отсутствует знак равенства" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "" "Неверно сформирован расширенный заголовок: отсутствует знак новой строки" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "Игнорируется неизвестное ключевое слово расширенного заголовка «%s»" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "" @@ -2655,50 +2665,50 @@ msgstr "" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:1053 +#: src/xheader.c:1071 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Расширенный заголовок %s=%s за пределами диапазона %s..%s" -#: src/xheader.c:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Неверно сформирован расширенный заголовок: неверный %s=%s" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Неверно сформирован расширенный заголовок: превышен %s=%s" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" "Неверно сформирован расширенный заголовок: неверный %s: непредвиденный " "разделитель %c" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "" "Неверно сформирован расширенный заголовок: неверный %s: нечётное число " "значений" -#: src/checkpoint.c:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s: недопустимое время ожидания" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: неизвестное действие контрольной точки" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "запись" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "чтение" @@ -2706,7 +2716,7 @@ msgstr "чтение" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Контрольная точка записи %u" @@ -2715,12 +2725,12 @@ msgstr "Контрольная точка записи %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Контрольная точка чтения %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2729,96 +2739,100 @@ msgstr "" "от GNU.\n" "ОПЦИИ:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Опции создания файла:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "РАЗМЕР" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Создание файла указанного РАЗМЕРА" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Запись в файл с ИМЕНЕМ, а не на стандартный вывод" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "Чтение имён файла из ФАЙЛА" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T читает строки, оканчивающиеся нулём" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "Заполнение файла заданным ШАБЛОНОМ. ШАБЛОН - это 'default' или 'zeros'" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "Размер блока для разрежённого файла" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "Создание разрежённого файла. Остальная часть команды определяет карту файла." -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "СМЕЩЕНИЕ" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "Искать до указанного смещения перед записью данных" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "Подавлять некритичные диагностические сообщения" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Параметры статистики по файлам:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Вывод содержимого структуры stat для всех указанных файлов. ФОРМАТ по " "умолчанию:" -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Параметры синхронного выполнения:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "ПАРАМЕТР" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "Выполнение АРГУМЕНТОВ. Полезно с параметром --checkpoint и одним из --cut, --" "append или --touch" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" "Выполнение указанного действия (см. ниже) до достижения контрольной точки с " "заданным НОМЕРОМ" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "Указание даты для следующего параметра --touch" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "Показать выполненные контрольные точки и статус выхода КОМАНДЫ" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2826,7 +2840,7 @@ msgstr "" "Синхронное выполнение действий. Они выполняются при достижении контрольной " "точки с номером, определённым опцией --checkpoint." -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2834,125 +2848,125 @@ msgstr "" "Усечь ФАЙЛ до размера, определённого предыдущей опцией --length (или 0, если " "не указан)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Добавить РАЗМЕР байт к ФАЙЛУ. РАЗМЕР определяется предыдущей опцией --length." -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "Обновить время последнего доступа и изменения ФАЙЛА." -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "Выполнить КОМАНДУ" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" -msgstr "" +msgstr "Удалить ФАЙЛ" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Недопустимый размер: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Число за пределами допустимого диапазона: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Отрицательный размер: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "Сбой stat(%s)" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "запрошенная длина файла %lu, реальная %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "созданный файл не является разреженным" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" -msgstr "Ошибка разбора числа возле `%s'" +msgstr "Ошибка разбора числа возле «%s»" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Неизвестный формат даты" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" -msgstr "[АРГУМЕНТЫ...]" +msgstr "[АРГУМЕНТЫ…]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" -msgstr "невозможно открыть `%s'" +msgstr "невозможно открыть «%s»" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "невозможно найти" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "в имени файла присутствует пустой символ" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" "невозможно вывести разрежённые файлы на стандартный вывод; используйте опцию " "--file" -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "неверная маска (возле `%s')" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" -msgstr "Неизвестное поле `%s'" +msgstr "Неизвестное поле «%s»" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" -msgstr "невозможно установить время в `%s'" +msgstr "невозможно установить время в «%s»" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "не удалось обрезать «%s»" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "сбой команды: %s" -#: tests/genfile.c:781 -#, fuzzy, c-format +#: tests/genfile.c:772 +#, c-format msgid "cannot stat `%s'" -msgstr "не удалось обрезать «%s»" +msgstr "не удалось выполнить stat для «%s»" -#: tests/genfile.c:785 -#, fuzzy, c-format +#: tests/genfile.c:776 +#, c-format msgid "cannot remove directory `%s'" -msgstr "невозможно установить время в `%s'" +msgstr "не удалось удалить каталог «%s»" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "не удалось удалить «%s»" @@ -2992,6 +3006,9 @@ msgstr "Команда завершена\n" msgid "--stat requires file names" msgstr "для опции --stat нужны имена файлов" +#~ msgid "OPTION" +#~ msgstr "ПАРАМЕТР" + #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: Параметра ARGP_HELP_FMT должен быть положительным" diff --git a/po/sk.gmo b/po/sk.gmo index c9ab16b21445567a36d2cde1fd3216de37f90227..8182d63011a0d743e29bca37b249a4c3a5ac1544 100644 GIT binary patch delta 26 hcmdlVus>kK260|XT>~RsBVz?a6Dw2m&3nb01OR%22tfb< delta 26 hcmdlVus>kK260|<T|*;XLvsZ~BP(OW&3nb01OR$Y2sr=% diff --git a/po/sk.po b/po/sk.po index bd17e34d..6e5ba755 100644 --- 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:1599 +#: src/create.c:1598 msgid "" msgstr "" "Project-Id-Version: tar- \n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\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" @@ -100,7 +100,7 @@ msgid "give a short usage message" msgstr "" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "" @@ -235,12 +235,12 @@ msgstr "" msgid "^[nN]" msgstr "" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "" @@ -248,11 +248,11 @@ msgstr "" #. 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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "" -#: gnu/version-etc.c:86 +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -505,54 +505,54 @@ msgstr "Vzdialen msgid "Cannot execute remote shell" msgstr "Vzdialen� shell nie je mo�n� spusti�" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Smer posunu v s�bore je mimo rozsah" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 #, fuzzy msgid "Invalid seek direction" msgstr "Zad�n� chybn� pr�va" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 #, fuzzy msgid "Invalid seek offset" msgstr "Neplatn� �as s�boru" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Ve�kos� poz�cie v s�bore je mimo rozsah" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 #, fuzzy msgid "Invalid byte count" msgstr "Neplatn� d�ka p�sky" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 #, fuzzy msgid "Byte count out of range" msgstr "Ve�kos� poz�cie v s�bore je mimo rozsah" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 #, fuzzy msgid "Premature eof" msgstr "rmtd: Pred�asn� koniec s�boru\n" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 #, fuzzy msgid "Invalid operation code" msgstr "%s: nezn�my prep�na� -- %c\n" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 #, fuzzy msgid "Unexpected arguments" msgstr "Neo�ak�van� koniec v rozsekanom mene" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 #, fuzzy msgid "Manipulate a tape drive, accepting commands from a remote process" msgstr "" @@ -562,146 +562,146 @@ msgstr "" " --version Vyp��e ozna�enie verzie\n" " --help Vyp��e t�to n�povedu\n" -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, fuzzy, c-format msgid "cannot open %s" msgstr "Ned� sa zatvori�" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Nezn�my pr�kaz" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Toto pravdepodobne nie je tar archiv" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "" -#: src/buffer.c:592 +#: src/buffer.c:594 #, fuzzy msgid "Total bytes written" msgstr "Celkom zap�san� bajtov: %s (%sB, %sB/s)\n" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(r�ra)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Chybn� hodnota pre ve�kos� z�znamu" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Meno arch�vu nebolo zadan�" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Stdin/Stdout arch�v nie je mo�n� otvori�" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Komprimovan� arch�v nie je mo�n� aktualizova�" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "P�ska na za�iatku, kon��m" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Pr�li� mnoho ch�b, kon��m" -#: src/buffer.c:967 +#: src/buffer.c:969 #, 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:988 +#: src/buffer.c:990 #, 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:1075 +#: src/buffer.c:1077 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:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: vracia chybn� ��slo zv�zku" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "��slo zv�zku prete�en�" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, 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:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "Namiesto u��vate�skej odpovede bol zadan� koniec s�boru" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "VAROVANIE: Archiv je nekompletn�" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, fuzzy, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -713,275 +713,275 @@ msgstr "" " ! Vytvorenie podshellu\n" " ? Vyp�sanie tejto n�povedy\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr "" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr "" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Nie je nov� zv�zok; kon��m.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, fuzzy, c-format msgid "%s command failed" msgstr "'%s' pr�kaz zlyhal" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s nepokra�uje na tomto zv�zku" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, 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:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s je chybnej d�ky (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, 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:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "Pre vyhodnotenie vzorky `%s' mus� by� arch�v pomenovan�" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "Zv�zok %s nezodpoved� vzorke %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "" -#: src/compare.c:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Obsah sa l��i" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Neo�ek�van� koniec arch�vu" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Typ s�boru sa l��i" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Pr�va sa l��ia" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Uid sa l��i" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "Gid sa l��i" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "�as poslednej �pravy sa l��i" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Ve�kos� sa l��i" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Nie je odkazom na %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Symbolick� odkaz sa l��i" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "��slo zariadenia sa l��i" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Overujem " -#: src/compare.c:480 +#: src/compare.c:479 #, c-format 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:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "" -#: src/compare.c:541 +#: src/compare.c:540 #, fuzzy msgid "Archive contains transformed file names." msgstr "Arch�v obsahuje zastaral� base-64 hlavi�ky" -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "" -#: src/compare.c:620 +#: src/compare.c:619 #, 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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "" -#: src/create.c:74 +#: src/create.c:73 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "" -#: src/create.c:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Generujem z�porn� osmi�kov� hlavi�ky" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, 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:616 +#: src/create.c:615 #, 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:643 +#: src/create.c:642 #, fuzzy, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: s�bor nie je zmenen�; neaktualizovan�" -#: src/create.c:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, 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:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Nezn�my typ s�boru; s�bor ignorovan�" -#: src/create.c:1576 +#: src/create.c:1575 #, fuzzy, c-format msgid "Missing links to %s." msgstr " odkaz na %s\n" -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: s�bor nie je zmenen�; neaktualizovan�" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: s�bor je archiv; nearchivovan�" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: s�bor bol po�as ��tania zmenen�" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: soket ignorovan�" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: dvere ignorovan�" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Preskakujem na �al�iu hlavi�ku" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Z arch�vu je mazan� to, �o nie je hlavi�ka" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "" -#: src/extract.c:320 +#: src/extract.c:319 #, 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:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Neo�ak�van� nekonzistencia, pri vytv�ren� adres�ra" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "" @@ -1005,7 +1005,7 @@ msgstr "Sk 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:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 #, fuzzy msgid "Unexpected long name header" msgstr "Neo�ak�van� koniec v rozsekanom mene" @@ -1035,22 +1035,22 @@ msgstr "%s: Tento s msgid "Cannot rename %s to %s" msgstr "%s: nie je mo�n� premenova� na %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, fuzzy, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Adres�r bol premenovan�" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: Adres�r je nov�" -#: src/incremen.c:566 +#: src/incremen.c:565 #, 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 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Adres�r bol premenovan�" @@ -1176,35 +1176,35 @@ msgstr "%s: Ma msgid "%s: Cannot remove" msgstr "%s: Ned� sa zmaza�" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: Vynech�vam" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blok %s: ** Blok NUL **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "blok %s: ** Konec s�boru **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "blok %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1212,340 +1212,340 @@ msgstr "" "complement" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, 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:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "Arch�v obsahuje zastaral� base-64 hlavi�ky" -#: src/list.c:852 +#: src/list.c:853 #, 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:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, 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:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " odkaz na %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " nezn�my typ s�boru %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Hlavi�ka zv�zku--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Pokra�ovan� od %s bajtu--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Vytv�ram adres�r:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "Premenov�vam %s na %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: nie je mo�n� premenova� na %s" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "Premenov�v�m %s sp� na %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: S�bor zmazan� sk�r ako mohl by� ��tan�" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "potomok" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "meziprocesov� kan�l" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "" -#: src/names.c:72 +#: src/names.c:71 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" -#: src/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "" -#: src/names.c:74 +#: src/names.c:73 #, fuzzy msgid "change to directory DIR" msgstr "Pracovn� adres�r nie je mo�n� zmeni�" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "" -#: src/names.c:87 +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" msgstr "" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" msgstr "" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "" -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "" -#: src/names.c:147 +#: src/names.c:146 #, fuzzy msgid "wildcards do not match '/'" msgstr "Zv�zok %s nezodpoved� vzorke %s" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" msgstr "" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" msgstr "" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" msgstr "" -#: src/names.c:879 +#: src/names.c:878 #, fuzzy msgid "command line" msgstr "'%s' pr�kaz zlyhal" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" msgstr "" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: V arch�ve nen�jden�" -#: src/names.c:1379 +#: src/names.c:1409 #, fuzzy, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: V arch�ve nen�jden�" -#: src/names.c:1413 +#: src/names.c:1443 #, fuzzy, c-format msgid "Archive label mismatch" msgstr "Pre vyhodnotenie vzorky `%s' mus� by� arch�v pomenovan�" -#: src/names.c:1717 +#: src/names.c:1747 msgid "" "Using -C option inside file list is not allowed with --listed-incremental" msgstr "" -#: src/names.c:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "" -#: src/tar.c:88 +#: src/tar.c:87 #, 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:165 +#: src/tar.c:164 #, fuzzy, c-format msgid "%s: Invalid archive format" msgstr "%s: Chybn� skupina" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "GNU roz��renia po�adovan� na nekompatibilnom form�te arch�vu" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1762,7 +1762,7 @@ msgstr "" msgid "extract files to standard output" msgstr "Chyba pri z�pise na �tandardn� v�stup" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "" @@ -1798,7 +1798,7 @@ msgstr "" msgid "use FILE to map file owner GIDs and names" msgstr "" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "" @@ -1999,7 +1999,7 @@ msgstr "" msgid "Archive format selection:" msgstr "Odporuj�ce si arch�vne form�ty" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "" @@ -2082,118 +2082,118 @@ msgstr "" msgid "filter through PROG (must accept -d)" msgstr "" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "" -#: src/tar.c:693 +#: src/tar.c:694 #, fuzzy msgid "don't strip leading '/'s from file names" msgstr "Odstra�ujem �vodn� `%.*s' z n�zvov s�borov" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" msgstr "" -#: src/tar.c:697 +#: src/tar.c:698 msgid "follow hard links; archive and dump the files they refer to" msgstr "" -#: src/tar.c:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" msgstr "" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2201,423 +2201,432 @@ msgid "" "accepted" msgstr "" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "" -#: src/tar.c:765 +#: src/tar.c:766 msgid "set name quoting style; see below for valid STYLE values" msgstr "" -#: src/tar.c:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, fuzzy, c-format msgid "'%s' cannot be used with '%s'" msgstr "%s: Ned� sa zmeni� poz�cia v s�bore na %s" -#: src/tar.c:933 +#: src/tar.c:934 #, fuzzy 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:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Odporuj�ce si kompresn� prep�na�e" -#: src/tar.c:1004 +#: src/tar.c:1000 #, fuzzy, c-format msgid "Unknown signal name: %s" msgstr " nezn�my typ s�boru %s\n" -#: src/tar.c:1028 +#: src/tar.c:1030 #, fuzzy msgid "Date sample file not found" msgstr "D�tumov� s�bor nebol n�jden�" -#: src/tar.c:1036 +#: src/tar.c:1038 #, 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:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" msgstr "" -#: src/tar.c:1253 +#: src/tar.c:1259 #, fuzzy msgid "Invalid owner or group ID" msgstr "Neplatn� vlastn�k" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Neplatn� po�et bajtov na z�znam" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Neplatn� d�ka p�sky" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Viac ako jeden po�iato�n� d�tum" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Zad�n� chybn� pr�va" -#: src/tar.c:1797 +#: src/tar.c:1806 #, fuzzy msgid "Invalid number" msgstr "Neplatn� ��slo i-uzlu" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Chybn� ve�kos� z�znamu" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "Ve�kos� z�znamu mus� by� n�sobok %d." -#: src/tar.c:1910 +#: src/tar.c:1919 #, fuzzy msgid "Invalid number of elements" msgstr "Neplatn� d�ka p�sky" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "" -#: src/tar.c:2066 +#: src/tar.c:2075 #, 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:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "" -#: src/tar.c:2181 +#: src/tar.c:2190 #, fuzzy, c-format msgid "non-option arguments in %s" msgstr "argument %s je pre %s neplatn�" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "" -#: src/tar.c:2291 +#: src/tar.c:2300 #, fuzzy, c-format msgid "Old option '%c' requires an argument." msgstr "Prep�na� `%c' vy�aduje argument." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "" -#: src/tar.c:2390 +#: src/tar.c:2399 #, fuzzy msgid "Multiple archive files require '-M' option" msgstr "Viac archiva�n�ch s�borov vy�aduje prep�na� `-M'" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "" -#: src/tar.c:2424 +#: 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "V�czv�zkov� arch�v nie je mo�n� otvori�" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Komprimovan� arch�v nie je mo�n� otvori�" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Viaczv�zkov� komprimovan� arch�v nie je mo�n� vytvori�" -#: src/tar.c:2457 +#: src/tar.c:2466 #, fuzzy msgid "Cannot concatenate compressed archives" msgstr "Komprimovan� arch�v nie je mo�n� aktualizova�" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" msgstr "" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Vytvorenie pr�zdneho arch�vu odmietnut�." -#: src/tar.c:2623 +#: src/tar.c:2632 #, 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:2711 +#: src/tar.c:2743 #, fuzzy 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:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" -#: src/update.c:87 +#: src/update.c:86 #, fuzzy, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: S�bor skr�ten� o bajtov: %s" msgstr[1] "%s: S�bor skr�ten� o bajtov: %s" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "" -#: src/xheader.c:677 +#: src/xheader.c:695 #, 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:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, 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:1053 +#: src/xheader.c:1071 #, 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:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "" -#: src/checkpoint.c:114 +#: src/checkpoint.c:133 #, fuzzy, c-format msgid "%s: not a valid timeout" msgstr "%s: Chybn� skupina" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "" @@ -2625,7 +2634,7 @@ msgstr "" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, fuzzy, c-format msgid "Write checkpoint %u" msgstr "Zapisujem testovac� bod %d" @@ -2634,231 +2643,231 @@ msgstr "Zapisujem testovac #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, fuzzy, c-format msgid "Read checkpoint %u" msgstr "��tanie testovacieho bodu %d" -#: tests/genfile.c:115 +#: tests/genfile.c:110 #, fuzzy msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "Generujem datov� s�bory pre testovanie GNU taru.\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 #, fuzzy msgid "File creation options:" msgstr "Odporuj�ce si kompresn� prep�na�e" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "" -#: tests/genfile.c:135 +#: tests/genfile.c:130 #, fuzzy msgid "Write to file NAME, instead of standard output" msgstr "Chyba pri z�pise na �tandardn� v�stup" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "" -#: tests/genfile.c:168 -msgid "OPTION" +#: tests/genfile.c:163 +msgid "N" msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" msgstr "" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, fuzzy, c-format msgid "Invalid size: %s" msgstr "Neplatn� �as s�boru" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, fuzzy, c-format msgid "Number out of allowed range: %s" msgstr "��slo i-uzlu mimo rozsah" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, fuzzy, c-format msgid "Unknown date format" msgstr "Nezn�ma syst�mov� chyba" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "" -#: tests/genfile.c:448 +#: tests/genfile.c:439 #, fuzzy msgid "cannot seek" msgstr "Ned� sa zatvori�" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, fuzzy, c-format msgid "Unknown field `%s'" msgstr " nezn�my typ s�boru %s\n" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, fuzzy, c-format msgid "cannot set time on `%s'" msgstr "%s: Ned� sa zmeni� poz�cia v s�bore na %s" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, fuzzy, c-format msgid "cannot truncate `%s'" msgstr "%s: nie je mo�n� premenova� na %s" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, fuzzy, c-format msgid "command failed: %s" msgstr "'%s' pr�kaz zlyhal" -#: tests/genfile.c:781 +#: tests/genfile.c:772 #, c-format msgid "cannot stat `%s'" msgstr "" -#: tests/genfile.c:785 +#: tests/genfile.c:776 #, fuzzy, c-format msgid "cannot remove directory `%s'" msgstr "Pracovn� adres�r nie je mo�n� uchova�" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, fuzzy, c-format msgid "cannot unlink `%s'" msgstr "%s: Odkaz na `%s' nie je mo�n� vytvori�" diff --git a/po/sl.gmo b/po/sl.gmo index 91a8e834434889df865baf39e1ae5937114ff72c..34d8c3b0f48dce462de1e9bc5f80cc593ebc528d 100644 GIT binary patch delta 12063 zcmZ2+g?Z~G=K6a=EK?a77#MV!7#Iu~7#L;<GBCVnVqjoUW?%q`@6m(MNAwsNPUta! z!52LS21y16hOc@I3?d8+4E*{G3~USx3@Z8z3<?Yk4BGk(4Dt*N3_kh{3_J`B3^`D` zQlEjLoq>U&O`m~5jDdlH&w!zx0c57C0Rw|70|P^d0Rw{|0|P^q0Rw|D0|P^k0Rw{) z0|UbX0|o|n1_p-11`G@;3=9n1h71h63=9kgh71fc3=9l*h71h)3=9m>h7gOp4H+1$ z85kH=8!|9RF)%PZH-wnWWW>NA&cMJRV#L58%D}*&V^q(;Ai%)D;AF(WAjiPK5NyQ2 zpvJ(!P-F!0*-Rq_1}g>zhIK{|hrBdmU@&7~VBj%kV2ER2U~o2uSg^>LfkA?Sfnl#P z1A`_51H(0Ah|d{J7#LC*7#Mg>7#MUw=9)kpFyDlM!H9u@VSBv^1A`$01H&s529R0? z8B=h`GX$D4FeEWBFqE1?g6f7T#DVWk85qhyL1zYWP^%dOgB=3{!wNG727ZuF%^*?m z-Hd@jh=GAY!W?3ewmAcX1_J{_oH@jS?dA~u^&8C@7>pSh7_OK@e8yn`2@!h>h=l<b z5C`U4KpeKvf`LJifq~(u1;oM6Ef^Tg85kI3EE&L28Da^spxKgv!Ha=`VXY-Z{SQk9 z25ANc1}Q5@RGV3WL!zD`#tP!H5-Uhh&b5NLe1{bSgE|8P!)Yr923ZCMhR;@zgeYhY z;R{<cFfcPPFc?}xd}3-1aZrRcBr*0{LlWr}YX$~BP!vMxz19%(&sc*TTF=06-x`uw zIBg(_%hd)FB3U+&L^TgepR<9);XfOQL$z%g7_=D}7~E_jAys4x_7THGTZjWz+A=V( zGcYi0u!Wen!<K=;m4SibjV;Jx1_mQL1_sl51_p*0J4hm%WCyX}tQ{moe%V2MpllCu zn5{h|EhO1PQhB94!~rwy85rC^QDP6Vh{u6}L5qQb!NCC%GT9Cc45kbW41Ep|haGW% zgy3lh28Mc2oV;{^<b760h!4yhAujiW(qT|K&JmK>(i|bVWT_*>VP_m67JqbPV2EU3 zU{G~}#C5$BMBQvBh{F##LDIraCy2v;J2BLQ6O+0#Byo8<LtLEe49R{IoFVypsWT*q z4>?0z{?HjxKKyrvq;_E!hy^At5PjY*kPu36f#iw?7X}6g1_p)+E|3tu=mIh4pG!T& zAQ@MP1_M_H1{MYeh5%Pc{tb17B(fw|NSvp+LM&`_h2)Y&u8@LcGgSXcSBOVmx<VYx z>jvTLxIuDBfEy$PI@}l-xEL51R@J*fe7w~S;-VW+{x>&>0g~<zA6U3U^09|I#0S;x zkT_le<zIG(IGn))6346_5D)QqKte{x1CmCZJs?rm<pJ?f{dx~b$#u#DQba!XfTYr| z9t;eLj0_Cco)C-YdO;j`!3*N!cU};Ov3NtGNW`0g!3mTdy&*we;>`e#+O6IU4BQM1 z4A;FO`Tj9fJ*N)?gDwL@J%gGLBnm=&Ac-%-2a-P<d>|H0_JR0hr4J--Px?Tj;GPe} z;{QI7Tq5HODKE@?A^APd7vjTQUq}da_(Igp_l4NE6D(fOz;G5S@WdAqr$2ll26OsB z6sq|_9AxDO2?1X}Nbbn?gE*|%4-zGl{U8oL;0LLkuK7Wt<cS|71YY_<qUNg~#3O(F z7#QS0`Crf<5>y6II>;XqM<q~traz=0+UE}`qTl&Le5x7%DY$$CAlb4r08(z82!Q1G zj{)EyW>61=6gZ)QkTg>t$iPqxN_>F~4E2r-3=DEX5Emr`L4v3>2oe(gL6BUqAP5p7 zYl9#LoC<>Y>}wFjN56s~`I#{ol7@7HAt7NO3`tv|!4UKEf*~PR9}LkqKbWDOft7)Q zVOcOFajXf3`212ZB)fbMhB!<=1d=vfLLk{GCInL1G=xAbULOLfq;7{m;+{7Y5@j-> zkf_oRWdJu!%tIl$Dk2o(f%4FLNGh%gg;>-R3JHOQp%4ppheA^Gt58UsYKK8Wz%mSy zol?Re7Of70=-U?tDM@dHK|I76&cNWpz`&p%&cNWzz`#%v4oNFJ!XZ)kv_2f-Gu{Y@ zL8=ju)M^m{Nqqhh5SJ!LK!Pj-%Fl=LOClJ+Ay^#&DRLVlAVEGi0%Fm&2uM^sj(~)~ z&j?7AN<~7WLOl}V0QX3U&*CE?LE04wDZ95tLPF?nBm+Ys0|Ud`NJtRIM?oA`7sbF3 z&B(ye90l?5{b)$YvBp3OHj@}g$b`p0JX9D1NeitIem%pq7zTzYP-={Uq;A$&NOrM_ zWnl1OU|{fwg%~h37UJUdv5=@b9}DsElURtsp!OK3O(zlu2}!Lu22f$hU>gVVU|SqS z-@G_T6m5<Jg=jqk!;?4$hA;*OhSzZn44$C2U_6B16A#hwI37~F{fLKTL!AUjqKZj? zI3OhflFb?tAW^q20TMz-6Ce(Ik^l*jA5eMqL`b%^OJra$2Ic>%M2Nxb5+Ol<FA<VB zxRM~L-6#p-^ROg{g=I;QD4CSRz!1d1z_2I@5>j827#KJ~9!Q4JKFN@@5eB7Wk|8aq zq-01DpOVbLP!DRYu1bbjcqJK<&;KMt;!-jN;uHH628IMs<1q!2sP?Bog7i%a#D^@Y z5cLwN5TDwmLP8`LO3zM(q@9zgkS3aS8l?6sNMoo6H@mCTAQsO`gOps`(;$_}+cZdi zHb{pg8vAre+6YL8I3Ok+qOT+!5>*q^A#uMf9a5t1Oouq+HdH-l1_J}Az*EeCWas3J zdWeR?3`n+U$$<E9Vg|%#`!XN~UxL!lGazyICj*kYEixGxvOpb=Oi0mtEE7`cyw7A{ zNM&GP;L3tTX+ajmoH<#LsNR?bN$d~nvmn_{A{&w_owFedO0pRkY#10AmSjW9_J`RJ zhbiPh%5vWvh<JGpBwugKfyC)`C@q@{3BlxCh{KlULQ2T<xe)Ui^B|R3y<r{$LpTEi zgMS{Ri?uut;^Oytki;jQ4{?ZnJ|ymH@*zRHF&~mBFXux%@EOXND}cz`6+nELPyn%L zdI7|tTMHl#yH)^>ntBGwLWl<ULWsi5LP#CZUI+=1HHDBMzgx(_V9CJ1AXx;~$Piov zabP2qURngnz9)+yJ{B&9M1@T;Br3y;A>!FkdP*_K1N96Hdy63!-YteCE~XNQL-<M{ zA)!+OF({%05{Jc5en$z!=Zi}~1~D+4D}gxRT?r(yT9iU+L(fu3)J2y<9MA!!H<mIm zfZCr7w@M*FD_;i5ZXsom>{wjJz_6ZyfnjzT#OL1SkhpIxhd69~ImF?&%OOQILj|O) zSFd1Tc*?-QU|Ye!Ai~JNpj-(lsx7J@QEgiVsnn)cF)-AFy3N<BAo-WA8j`AYsv$1+ zuZ9G5O*KS*RW-x`7pfr+_*D%l@ziP{L2O$C3BkY`NI?}_11YE~Yak)mSp(6xq=tdP zf`NhILJdPbcmRR37SaQftA#W+BWoe4w5JvlgnMcsL4B?kQWyM$@`dXl;&ycqi!$pV z`YP)nCEv<AP#Mp_u)dCg!Ipu6VOt#}q`uTavb}VDJ*33at7l+{Wnf^4t%n%6yB-n( z&*~u|BHRFJkeD?<f;_JQl4vJ4Kpeca0TMzlpz?f;kThZ32uZ}jjgV@&r4bUva~mNJ z-c#Smz~INgz;LFKfgzZIfkC<n5>)w3kf7>ng7{=x6U2f&O^_gd)WpCb&&0s+t_cz) ze60)&`3wvU7OjxVX+<l<BO6*F+3t2Lq=5U=3Q3%tZ43+(7#JAprP?4aTipgJdXKb0 zeE6#k5=8RtkfPS89g-`&+8G$^85kHc+99cV1yuZEJH#RH+aZZdvIFAts18WE(%k_G z$;%xO4}R+ahhRN}U?(IW8+Srn7TyW5D5Ddip{)~=23B@Lnq0d(Ax$c#F34b#dlv)4 zV+IC>^Ied-U~@Ob!56wA1<;FbNKni7FfhCVHN|=$Q7+XBQdiHw;MogNnAi*P*^FLD zQF@~nk_P1Z7#PkoFfe%cL3}LT4>7={pMimmk%6JOACd;DCNMCp290=3fLItg5fb#7 z6CoklH4&0H=T3x}dv+oNg9)hq|1}X3xB8PHK^8g*l0DicK?<DxlOP(dOoHSR#>tS7 zv6&2s<M_!C@vg~`RDN_a#6!$eAW>p9g@GZEfq@}q3Zz`wHU;9adsCqG|NkkF{Hi$> zl096fLefCaR7l#GI2B^hs;LkIu1sZM01XlTnF>jy|Dk;CX%N2NG>8MDra=<##A%RJ zKYbdcoY*!EQmvnw#!wF)wYoVC;=`BIAU+YB4sl4}bV!s`OotRiJElW|`q^|yP)g2# z#JT4TNR*__fTX3VGawf3oB_!VH)cQ_@?Zv3{|p8Oe^6aA6Pn*MXF^ixl$nqQ!kw8A z2g%KX_{e(}q-ZUl1#wvKEJ#7LWfsJubF&~0d^-zbu=H$5k)AypBEDcY#G&VAL#pA| zvmp+Wt)ByNvGN>98gQQj88*wE1JST!4x}x2bq=Hqzdr{uAn{}lq(FKx2NE?3b0Hz% zH5U@}m2(*wVnBmWb0KMjcOE2UE#^VuzIYxaG1pI-2T`zh9wcsG%!3#xFdq^ER`Vea zOrH-a(YohDf`0XUNE*34A5sS}EP(LE7l5)A1A`5e4p{(kSk3}SVxGN#fngKKVGF<> zsAouC2(e)HLP+A+zYr2+mlr~Uh;b35vB<s%QkDxXf~0=QMUX^mvj`Fu5sM%pR<sBb zCH;#a9$U8v;_#b`AW`>o5u`R%SPaT#^$ZMAiy;<GUJMD6nTsI>(4oZ;A3azM2@%#M zkfK+A3E1Tf)=MC9T)YGlv@4cC;`Z?p1_llW1_sfk5C_XGg*ZrcDa64pOCh6V2}>Cm zbU^uk*HTE3Jzokb8vjETN-cvFL}tqv7;+dH7;2V*T+G1mayi7ON-H3V(tZV`zzJOe z(Vw~k(l2OO0cmPoUI9s4Vk;pYvRMfUnZ%V04E3Pl^PZIuAFNyniK8bgAr|~x2?<)U zRS<&>RzZT$8_F+Q1qrd<RS@;tRzcKXUIj@@Z&yL0RCF~YL^W4K<lR?8qA+naLp^wW zzGXEe1m;5(Y=`nMu7(8tOQ^W;8i+dGHISfpT>}Z?sx^>Q-M9u41&h`|3a%?_Aa%#v zHIOL&zXp<fSl2@Iajvb0xJY0v#D!XGA#v-m7Sif%SPKcly-=EA9i&s~ybcn?J?kK; z`~Ese<;1rh(iIC`4=KtQt%sO%c|Am(zy?U}vEKk`)aKW3fQ-eg-T=wB@*5#858DU{ z()^8(pz7HO3Ci^wA&KblMo9L&zY*dio=uRxoxmnY+zM@iWJ}vkkSGn=1PQs!O^{l) zaT6pe>nCl31kKJ(kW{;W6C|;m*aV5gcbg#DMQk&~pa3YHx*1Y3R&9o~8<s)&cQ!+! zfMW}!i)FP162cx^AVHqA1rk-6Tfn)Zo}p_Cq>Ns<1!BQQsD@(@1q=_iK!WQ37D&Uw zdMmi$z)-Ul5|s0{LZal{R*28Uw?Pu6#x_WcC~zAj4ISJDX`a8{#=zjsz`$U-9h8RZ z85kP3L*i=Nc1Vyv-wp{nmK~5@tMm>?6!h+Z1oeg;5T9(>0SU3)Q1K%>AVu_v9S|R% z-2sWJ=Q|({W!?!f*LWwyL0&r<7(_w&zhoyQ$h&qzve|~6khnd)6B4vPc0%G*Zx=Yo z7$SE;99FRll4xJ;f;fm{Hv_{*Mg|7{-4Ks3?uF=++Y51!=UzzKN`}%kdl?w&LDOMV z_d*iK+Pw@6@t}!>y^w-Obsr=RWbb2On9RVyFnJ%OXjb13NfV*_AqMvEhp1bzA5tJ) z*bg!9*?vfr{@V{}<O&~vh$kI@=&L#ao&TGB01}jk4lppJgXVk=K;qQ+Af)M4a}W}A zK8GNQEBO$lz?ymp(yG012x8IQLy%nb=@29YG!H`@<aQWR4#XUW$mbn~G|848u7?Qh zI1GuS_lF^=TK)*cN8U#ul~eH%NF_4;2qaFoAAvaN@)1a)dvyddzW4hGq#a>@6q5Se zq4d<FkX*L-C^WGjg|whH)*pq`_gjuaT>Sqi#33@rAaUk%43gT@jzKKyI0hMTn0X8m z5-i6d4l;w%LB}Bu&pQsu1=Eg0^7;Pb5PO~-XJF`KU|=vj0ZAM62Tnj57_U!2eE9VQ zB$0`pgfx{*PC`13=_esUx&I`@VOOF2_a`Bh3hOBdt#u0G5q~J1a|#kNou?p)`s^u4 z8u)bzoE_^Kgib?z7IPX>!sVWZG!7e2L!xHFX-M22hsxhM4ROGS(~zbb*BOYzea=8a zCg%*KsJ(s$5^`*3AtkKFSx7dYa~2Z!XU~Fa(|QJm2WKITOv!VQxQ;vr$)C07Aa%j= zbC5dV{yB(+O6MUCOF0iwH~Ty!n;tz6DJOoPhZI<H7a+~<s0$1XAq)%*Yc4>7obe(g zighkBFc^UHf6PUQMDImN<+0-;#3I&95Er{&f&^{FB}g`!dkNy8H<us|*1rtNj=`59 z4(h!ODPp%@hNOWTmmyKecm)!*kyjw%6;~J->On4Bcm)zS->yJ{R{1I<f7)J!jC_V& zg`|b9tB?@cdllltuU8@2(C`{0$aAhid^Y<Uq>Fa?8pLA)*CA14eI1f(qOU^|Wzltp zdhi_Y%<B*X4qk`E*@x?pY$$XC;!?XC5Fe%AfRuP0Hz4_W*$qfy+i?S;|LP5h1uQoq zWxVuFNSaE&2}!)wHz5w6coX8Vvp4G@LHy$;I5je8-h#B>i*G?f<nS#>kbbzuz_1iF zdwm;H2_3i%DG3?xKte|U4kU__?m!G~zXP#w(;Wte&kPI<C+;vX{AXZb*mD<>|M%R3 ztRFa1e-Bd9Dc^@Q6msrEEM9pZl9;aDha{q(_aP4PegLt!^Z}&KSo{DIQYRlkvenlI zkle!i5K=NKJ%p&!e+VfjLLWlPhr)-DL|i}fAtVkjJcMZEegtXBC_I8Bs`N*YI9>P% z64VzTK|<`^BS@UeKZXRo{bPv3@*YE?V9sMmzTf;9(m4J87?RD|pFrvsi6>wW)icCB zf#k=ICy-P<`w65DxCc?d;Pw<^VZl>K8d&%gV&S2u5TAW~3JEFkXAldmo<S0A-7`o? zZh8hu_4lFtf6pL^Tl+ake?0?(%X5g!vYtb-N%eCEh6n}*hRe?(sZ{3$q<jc|0g1cG zFF+a@7-qkKIQ-xXNYe|nG{%~dfq|2WfuWKSQlVKfGBBtzF)*xQU|{&i$iVQ5k%1wP zk%8e710-6d>lq=w1!;z114c+3eFY6jF)}b{FfuSK0xiv9U|{&b$iQ%u5mL`{F)%PJ zWn^H817WCUCPoH^nV@w$P<{#{1494<1H(-Q1_lWv@d8E$P+OJ(RQ`aKmV=hdFfuS` zGchpi0gHepXBil_gO=SeK=Sh>sQ5J~?Z(K!uoKGO2Q~a2BLl-{D0?v@1H)TJNHfe1 zDh5){1!bEuGSoBpFfuT_V1(p*P-q-rU|@)3WMFs+Rn!lqK{Fj)P<Af^1H%tS1_pj6 za3W$*VPs(NU}Rvpz`($812mNbRrec|Wua`)Xcx$G5awWHU^oP-1!4Yof+_+@3NSJ- zd}3r^$Yf+-I00J41QG-d9x^a6v@$@3RzX6bWj7!iw5$e1D}aVX7#J9~f;bEe3{Myt z82F%Kos0|&Qy3v*jD}FVf*2VX_JYFy98^G<iGe|kiGkrfBLl-bMh1rGP=j0;A%zNv z3tGvthmnDS4Qen*OqCH*%DF?$najw)@RX5(A&ilMp$;^r$i%>K5436uq?mz$K_03u zf{}s27BpwSiIIV!3bdY!k%1wbfq_Ack%8e20|Uc!s0I)PD#h9uA%#jF10*MiOcqoV zt`}ltU}ypv&&0s61LPD&28J}K6(*qYU}RuWV`5;a1sMay_KXY+8$sfr;b|rY20123 z9SM>aXJTL|WMp6v1v#IQfnfz`Jr&eEZAJ!$2T=A2Mg|5=PznOI=0Rf}Ak7Crk;lNm zuo%Q)U|?Wngk)+EcQ*s1WME`uU|0(hU|?YIV`N}h0yQufN{510hA}cQ2r@D-oMB{O zD20miGeQc6hm4RC={_h@K`H1j0|UcmMh1o>P(yhc85lwt85n*sFff=iGB8v#GBBKC zU|>*SgtV`r${5~54F>VoF)}c)GBJP$fkFKDAOebYm>57~`(WM{kX;N63>Tq#WkD$j zBvZ!7zz_`@-vrGVFhUA*kT?i01QDR+X^adE2~dr@p>zY3o(0P2j0_Boj0_C_7#J98 zK)z>y%s_w^`+<zm0;NQxlm}WmH(5c0qy8+&az;qO3R+sw3N;j@X*mM}!yS<CK^z7K zh7JY>23bZ1hRX~L3=cso4;dI31eh2Y!WkJDl#uj+lnXL3FqnYS0s{ksCnIE_7bLzG z6uOL%2A>kBpyEMtRWc(3!wslG84L^zouKt~3=9kbP%+R-!VjQT2cX2nz`$U}$iM(v z19=N%G7>IjU|>*WVqmxcDi%RY+?W^`vKSc{QW+T-n3xzCN*Ey{(8oY&;1N_KX!YO* z1_p+epv=X<!0?TMfx!rBu`85*#K^$#8_EVPV+3gh%@!_TU|=}K$iOfgv}Tf#f#C}y zq~;N2g0wK%p`O%(>ILa52c;=cxd~bU#sO6@jgf)Dmw|zynSp_!f)Uc11Stk#Zm8zz zpo9q$U|?W4$-uyHg^_`w4U~SM@^=^+7-AS17@mPvk})zc>|%s8jgB!gF#Lt8NoHVR zsAXhes0XbK*blN4l<=UAm;_byhmnC{4kH7@69xu`iHwkT5XfF3sJapm2Nb-Zo+p(3 zoRNXSl97QSgOP#ZI|BnlKBz>3nzs?O{t~n@2{iT12p&tTXP61q7z`>K86a&bkPr(a zq<NzVDrlevfClYBt4LXx7#L(285q`sDs7NrD3)YmV0a1Y?lLkkECiLspajbVX<dMn z6hqDV3F3gF3N)4sT8aqegC}M{tH@ydZ;T8K7K{uG-i!<kC!v~Qa-e0e^BEZ!BpDeP zTA*@LlMA(l>n}4x8ZauL_5&jW!!1SzhCW8f=xH}21H*050$EVK1Zplob%IRY!N9<9 zoPmKM8!C1P)ZSo(G=e-p3P5=dDyIpJgV&%DSw;qic~JT9pmJ3R%9#OG3|i8=0Avs& z1H*Mj28Oc?3=A!xb_LWBE+`FJOi={Y16tj4kP*`M1R2K*RRdy!um%$YgCkTei2oSQ zhOQ%P1c@>*FepJa?qgtJh+<@5IL*Mo&;(M<2pKd1DVxOzY1D$)pd}^S85tOi85tPv zPClz6U;l%Ffk7P9bYg%kp}h-QHVZ2L86XWxFGdE2s|*Yb^B5Tzj)P1FB_k*eGO-=x zZBWSz;(!JzK(!_#14AH^nlB6t41b{Vpb-;LpCK2*uV=7jWMDYT$iTqN#K3Tnfq@|% zN#iO;28K$ALWUzCaj18pLg1x%&lnjP&M`1B{AXlfn83)u@RN~&p_h??AqkXOpbB?E z=}ZO&hB*uj4EI4*5Cf?1ugt*kf`NhIHprKtb{PW$11BS7c%=i>lmZn2lX>-|>p?5Q zL8j~n5ey6re2kDjPB*APVPs%f#=yYP4{9wkFfeRkWMG&ERaXS1L6kbw`Jg4tAbtoV z1H(iH1_owE28IR(28Ou|kPh5RP#Ok#mw|y{Ij9&0tp#EP<u$0_PEd^nG67U0L1_@> z50wY8*`bZ?D=!!r&gd~PJkVocxbp(iG6czkl>Yz!|3BMiM*Vn+&0F2mc{VGDEYRn* h)HN{DH8NH(G_f)@-+ZC@k-}!BrJa16H*GF60{}D8a})po delta 12289 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 YAtATuEt$y2<{9PW8RWQm-==ai02mCzKL7v# diff --git a/po/sl.po b/po/sl.po index 2c1aa641..5508e2d8 100644 --- a/po/sl.po +++ b/po/sl.po @@ -4,12 +4,12 @@ # Primož Peterlin <primozz.peterlin@gmail.com>, 1996, 1999, 2000, 2001, 2005, 2006, 2007, 2009, 2011, 2013, 2014. # # $Id: tar-1.28.sl.po,v 1.2 2014/11/16 20:25:23 peterlin Exp $ -#: src/create.c:1599 +#: src/create.c:1598 msgid "" msgstr "" "Project-Id-Version: tar 1.28\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" "PO-Revision-Date: 2014-11-16 21:24+0100\n" "Last-Translator: Primož Peterlin <primozz.peterlin@gmail.com>\n" "Language-Team: Slovenian <translation-team-sl@lists.sourceforge.net>\n" @@ -98,7 +98,7 @@ msgid "give a short usage message" msgstr "poda kratka navodila za uporabo" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "IME" @@ -233,12 +233,12 @@ msgstr "^[dDjJ]" msgid "^[nN]" msgstr "^[nN]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Priprava paketa: %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Priprava paketa: %s\n" @@ -246,11 +246,11 @@ msgstr "Priprava paketa: %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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "©" -#: gnu/version-etc.c:86 +#: gnu/version-etc.c:85 #, fuzzy msgid "" "\n" @@ -535,147 +535,147 @@ msgstr "Ni mogoče preusmerjati datotek za nelokalno ukazno lupino" msgid "Cannot execute remote shell" msgstr "Ni mogoče pognati nelokalne ukazne lupine" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Smer iskanja izven obsega" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "Neveljavna smer iskanja" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "Neveljaven odmik pri seek" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Odmik pri seek izven obsega" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "Neveljaven števec bajtov" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "Prekoračitev števca bajtov" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "Predčasen znak za konec datoteke" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "Neveljavna koda operacije" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "Operacija ni podprta" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Nepričakovani argumenti" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 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:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "N" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "nastavi raven iskanja napak" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "DATOTEKA" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "določi datoteko za izpis iskanja napak" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "ni mogoče odpreti %s" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "preveč argumentov" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Neveljaven ukaz" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "To ne deluje kot arhiv ,tar'" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Skupno prebranih bajtov" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Skupno zapisanih bajtov" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "Skupno izbrisanih bajtov" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(cev)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "" "Zavrnjena zahteva za branje arhivske vsebine s terminala (manjkajoči f?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "" "Zavrnjena zahteva za pisanje arhivske vsebine na terminal (manjkajoči -f?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Neveljavna vrednost za dolžino zapisa (record_size)" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Ime arhiva ni podano" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Arhivov na stdin/stdout ni mogoče preveriti" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Arhiv je stisnjen. Uporabite izbiro %s" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Stisnjenega arhiva ni mogoče ažurirati" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "Na začetku traku, končujem" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Preveč napak, končujem" -#: src/buffer.c:967 +#: src/buffer.c:969 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" @@ -684,7 +684,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:988 +#: src/buffer.c:990 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" @@ -693,37 +693,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:1075 +#: src/buffer.c:1077 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:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek se ni ustavil na meji zapisa" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: vsebuje neveljavno številko dela" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Prekoračitev številke dela" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Pripravite del #%d za %s in pritisnite Return: " -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "Znak EOF na mestu, kjer se pričakuje odgovor uporabnika" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "POZOR: Arhiv nepopoln" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -734,65 +734,65 @@ msgstr "" " q Končamo tar\n" " y, newline Nadaljujemo z delovanjem\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Poženemo ukazno podlupino\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? Ta seznam uzazov\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Novega dela ni, konec.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "Ime datoteke ni določeno. Poskusite znova.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Neveljaven vnos. Vtipkajte ? za pomoč.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "ukaz %s neuspešen" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s se ne nadaljuje v tem delu" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, 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:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s je napačne velikosti (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, 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:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "Arhiv ni označen skladno z %s" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "Del %s ne ustreza %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -800,11 +800,11 @@ msgstr "" "%s: ime datoteke je predolgo za zapis v zaglavje GNU večdelnega arhiva; " "porezano" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "pisanje se ni končalo s koncem bloka" -#: src/compare.c:98 +#: src/compare.c:97 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" @@ -813,75 +813,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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Vsebina se razlikuje" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Nepričakovan znak za konec datoteke v arhivu" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Zvrst datoteke se razlikuje" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Način se razlikuje" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Številka uporabnika (UID) se razlikuje" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "Številka skupine (GID) se razlikuje" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Čas zadnje spremembe se razlikuje" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Velikost se razlikuje" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Ni povezana z %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Simbolna povezava se razlikuje" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Številka enote se razlikuje" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Preverjanje " -#: src/compare.c:480 +#: src/compare.c:479 #, 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:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "Arhiv vsebuje imena datotek z odstranjenimi vodilnimi predponami." -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "Arhiv vsebuje transformirana imena datotek." -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "Verifikacija morda ne bo uspela locirati izvornih datotek." -#: src/compare.c:620 +#: src/compare.c:619 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" @@ -890,46 +890,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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "Osamljeni ničelni blok pri %s" -#: src/create.c:74 +#: 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:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Ustvarjanje negativnih osmiških glav" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, 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:616 +#: src/create.c:615 #, 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:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: ime povezave je predolgo; brez iznosa" -#: src/create.c:1106 +#: src/create.c:1105 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" @@ -938,79 +938,79 @@ 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:1204 +#: src/create.c:1203 #, 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:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "vsebina ni iznešena" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Neznan tip datoteke; datoteka ignorirana" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "Manjkajo povezave na %s." -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: datoteka je nespremenjena; brez iznosa" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: datoteka je arhiv; brez iznosa" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "imenik ni iznešen" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: Datoteka je bila spremenjena med branjem" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: vtičnica ignorirana" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: vrata ignorirana" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Preskok na naslednjo glavo" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Brisanje ne-glave iz arhiva" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: neverjetno stara časovna oznaka %s" -#: src/extract.c:320 +#: src/extract.c:319 #, 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:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Nepričakovana neskladnost pri ustvarjanju imenika" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: obstoječa datoteka se preskoči" @@ -1036,7 +1036,7 @@ msgstr "Simbolne povezave poskusimo dearhivirati kot trde" 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:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Nepričakovano zaglavje z dolgim imenom" @@ -1065,22 +1065,22 @@ msgstr "%s: Varnostne kopije te datoteke ni moč napraviti" msgid "Cannot rename %s to %s" msgstr "Preimenovanje %s v %s ni mogoče" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Imenik je bil preimenovan z %s" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: Imenik je nov" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "%s: imenik je na drugem datotečnem sistemu; brez iznosa" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Imenik je bil preimenovan" @@ -1210,219 +1210,219 @@ msgstr "%s: Brisanje %s\n" msgid "%s: Cannot remove" msgstr "%s: Odstranitev ni mogoča" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: Izpuščeno" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blok %s: ** Blok znakov NUL **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "blok %s: ** Konec datoteke **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "blok %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "" "Na mestu v glavi, kjer se pričakuje številčno vrednost %s, so presledki" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:806 +#: src/list.c:807 #, 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; privzema se dvojiški komplement" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Osmiška vrednost arhiva %.*s izven obsega %s" -#: src/list.c:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "Arhiv vsebuje zastarele glave oblike base-64" -#: src/list.c:852 +#: src/list.c:853 #, 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:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "Arhiv vsebuje %.*s na mestu, kjer se pričakuje številčno vrednost %s" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:934 +#: src/list.c:935 #, 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:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " povezava na %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " neznan tip datoteke %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Dolga povezava--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Dolgo ime--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Glava dela--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Nadaljevanje pri bajtu %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Ustvarja se imenik:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "Preimenovanje %s v %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Preimenovanje v %s ni mogoče" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "Preimenovanje %s nazaj v %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: Datoteka je bila odstranjena, preden jo je bilo mogoče prebrati" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "proces naslednik" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "medprocesni kanal" -#: src/names.c:69 +#: src/names.c:68 #, fuzzy msgid "Local file name selection:" msgstr "Izbira lokalne datoteke:" -#: src/names.c:72 +#: src/names.c:71 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/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "IMENIK" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "pomik v navedeni IMENIK" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "preberi seznam datotek z navedene DATOTEKE" -#: src/names.c:78 +#: src/names.c:77 #, fuzzy msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "-T prebere z \\000 terminirana imena; onemogoči -C" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "prekliči učinek prejšnje izbire --null" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "odstrani narekovaje iz imen elementov (privzeto)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "ne odstrani narekovajev iz imen elementov" -#: src/names.c:87 +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" msgstr "" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "VZOREC" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "brez datotek, ki jih opisuje VZOREC" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "brez datotek, ustrezajočim vzorcem, prebranih z DATOTEKE" -#: src/names.c:96 +#: src/names.c:95 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/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "" "brez imenikov, ki vsebujejo značko CACHEDIR.TAG, in vseh njihovih podimenikov" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "brez imenikov, ki vsebujejo značko CACHEDIR.TAG" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "brez vsebine imenikov, ki vsebujejo DATOTEKO, razen DATOTEKE same" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "preberi izključitvene vzorce za vsak imenik iz DATOTEKE, če ta obstaja" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" @@ -1430,119 +1430,119 @@ msgstr "" "preberi izključitvene vzorce za vsak imenik in njegove podimenike iz " "DATOTEKE, če ta obstaja" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "brez imenikov, ki vsebujejo DATOTEKO, in vseh njihovih podimenikov" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "brez imenikov, ki vsebujejo DATOTEKO" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "brez imenikov sistema za nadzor različic" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "preberi izključitvene vzorce iz izključitvenih datotek VCS" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "brez varnostnih kopij in zaklepnih datotek" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "rekurzivno vključi vse podimenike" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "podimenikov se ne vključuje samodejno" -#: src/names.c:130 +#: src/names.c:129 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/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "vzorci se ujemajo z začetkom imena datoteke" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "" "vzorci se ujemajo od kateregakoli znaka »/« dalje (privzeto pri izključitvi)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "brez razlike med malimi in velikimi črkami" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "pri ujemanje se razlikuje med malimi in velikimi črkami (privzeto)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "uporabi nadomestne znake (privzeto za izključitvi)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "dobesedno ujemanje nizov" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "nadomestni znaki se ujemajo z »/« (privzeto pri izključitvi)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "nadomestni znaki se ne ujemajo z »/«" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" msgstr "" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" msgstr "" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" msgstr "" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "ukazna vrstica" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: seznam datotek, ki ga zahteva %s, je že prebran iz %s" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "ni mogoče razcepiti niza »%s«: %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: prebrano ime datoteke vsebuje znak \\0" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "Z vzorcem ujemajoči se znaki, uporabljeni v imenih datotek" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1550,46 +1550,46 @@ msgstr "" "Uporabite --wildcards, da bi omogočili ujemanje vzorcev, ali --no-wildcards, " "da izklopite to opozorilo" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: Ni najdeno v arhivu" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Zahtevane pojavitve ni moč najti v arhivu" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "Neskladje v oznaki arhiva" -#: src/names.c:1717 +#: src/names.c:1747 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:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "Samo ena izbira -C je dovoljena pri --listed-incremential" -#: src/tar.c:88 +#: src/tar.c:87 #, c-format msgid "Options '%s' and '%s' both want standard input" msgstr "Izbiri »%s« in »%s« obe zahtevata standardni vhod" -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Neveljavna oblika arhiva" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "Razširitve GNU izbrane na nezdružljivem formatu arhiva" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1815,7 +1815,7 @@ msgstr "Izbira izhodnega toka:" msgid "extract files to standard output" msgstr "datoteke restavriraj na standardni izhod" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "UKAZ" @@ -1851,7 +1851,7 @@ msgstr "" msgid "use FILE to map file owner GIDs and names" msgstr "" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "DATUM-ČAS" @@ -2064,7 +2064,7 @@ msgstr "razdeli na bloke ob branju (cevovodi 4.2BSD)" msgid "Archive format selection:" msgstr "Izbira oblike arhiva:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "OBLIKA" @@ -2148,60 +2148,60 @@ msgstr "PROGRAM" msgid "filter through PROG (must accept -d)" msgstr "filtriraj skozi PROGRAM (sprejemati mora izbiro -d)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Izbira lokalne datoteke:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "pri arhiviranju izpusti datoteke na nelokalnih datotečnih sistemih" -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "ne odstrani vodilnih »/« iz imen datotek" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" msgstr "sledi simbolnim povezavam; arhiviraj/iznesi ciljne datoteke" -#: src/tar.c:697 +#: src/tar.c:698 msgid "follow hard links; archive and dump the files they refer to" msgstr "sledi trdim povezavam; arhiviraj/iznesi ciljne datoteke" -#: src/tar.c:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "IME" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "začni z navedenim IMENOM ob branju arhiva" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "shrani le datoteke, novejše od DATUM-ČAS" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "DATUM" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "primerjaj datum in uro le, kadar se podatki spremenijo" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "TIP" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "" "varnostna kopija pred brisanjem, z možnostjo izbire TIPA varnostne kopije" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "NIZ" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2209,59 +2209,59 @@ msgstr "" "varnostna kopija pred brisanjem; prekličemo običajno PRIPONO (»~«, razen če " "lupinska spremenljivka SIMPLE_BACKUP_SUFFIX določa drugače)" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Pretvorbe imen datotek:" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "pri restavriranju poreži ŠTEVILO vodilnih komponent iz imen datotek" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "IZRAZ" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "uporabi nadomestitveni IZRAZ programa sed za pretvorbo imen datotek" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Informativni izpisi:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "z izčrpnim izpisom obdelanih datotek" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "KLJUČ" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "nadzor opozorila" -#: src/tar.c:731 +#: src/tar.c:732 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:733 +#: src/tar.c:734 msgid "ACTION" msgstr "DEJANJE" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "na vsaki kontrolni točki izvedi DEJANJE" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "izpiši sporočilo, če niso zapisane vse povezave" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "SIGNAL" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2273,35 +2273,35 @@ msgstr "" "SIGHUP, SIGQUIT, SIGINT, SIGUSR1 in SIGUSR2, prepoznana so tudi imena " "signalov brez predpone SIG-" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "izpiši čase sprememb datotek v UTC" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "izpiši čas datoteke v polni ločljivosti" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "zapiši izčrpno poročilo v DATOTEKO" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "z izpisom zaporednega bloka v arhivu ob vsakem sporočilu" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "vprašaj za potrditev pri vsakem koraku" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "prikaži privzete nastavitve" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "prikaži veljavne razpone za polja snapshot-file" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2309,31 +2309,31 @@ msgstr "" "pri izpisu seznama ali restavriranju izpiši vsak imenik, ki ne ustreza " "iskalnim pogojem" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "prikaži imena datotek ali arhivov po pretvorbi" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "SLOG" -#: src/tar.c:765 +#: src/tar.c:766 msgid "set name quoting style; see below for valid STYLE values" msgstr "nastavi slog navajanja imen; glej spodaj za veljavne SLOGE" -#: src/tar.c:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "dodatno navedi znake iz NIZA" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "onemogoči navajanje znakov iz NIZA" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Združljivostne izbire:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2341,61 +2341,61 @@ msgstr "" "ob ustvarjanju arhiva isto kot --old-archive; ob restavriranju isto kot --no-" "same-owner" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Druge izbire:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "onemogoči rabo nekaterih potencialno škodljivih izbir" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "»%s« ni mogoče uporabiti obenem z »%s«" -#: src/tar.c:933 +#: src/tar.c:934 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:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Nasprotujoče si izbire glede stiskanja arhiva" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Neznano ime signala: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "Datoteke z vzorcem datuma ni najti" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Nadomešča se %s za neznan format datuma %s" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "Izbira %s: Datum »%s« se obravnava kot %s" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "filtriraj arhiv skozi %s" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "Veljavni argumenti pri izbiri --quoting-style so:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2403,120 +2403,120 @@ msgstr "" "\n" "Privzete vrednosti *tega* programa tar:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "Neveljaven ID lastnika ali skupine" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Neveljaven faktor blokiranja" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Neveljavna dolžina traku" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "Okvarjena vrednost inkrementalne ravni" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Več kot en pražni podatek" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "Neveljavna vrednost razpršene različice" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "izbira --atime-preserve='system' na tem sistemu ni podprta" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "vrednost --checkpoint ni celo število" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Podana zaščita ni veljavna" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Neveljavno število" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Neveljavna dolžina zapisa" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "Dolžina zapisa mora biti večkratnik %d." -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Neveljavno število elementov" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "Dovoljena je le ena izbira --to-command" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Okvarjen argument gostote: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Neznana gostota: »%c«" -#: src/tar.c:2066 +#: src/tar.c:2075 #, 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:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "" -#: src/tar.c:2076 +#: src/tar.c:2085 #, fuzzy, c-format msgid "error parsing %s" msgstr "Napaka pri razčlembi števila pri »%s«" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[DATOTEKA]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, fuzzy, c-format msgid "non-option arguments in %s" msgstr "neveljaven argument %s za %s" -#: src/tar.c:2196 +#: src/tar.c:2205 #, fuzzy, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "ni mogoče razcepiti niza »%s«: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "Stara izbira »%c« zahteva argument." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence nima pomena brez seznama datotek" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "Več arhivskih datotek zahteva izbiro »-M«" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "Izbira --level je brez pomena brez izbire --listed-incremential" -#: src/tar.c:2424 +#: 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)" @@ -2525,43 +2525,43 @@ 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Arhivov v več delih ni mogoče preveriti" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Stisnjenega arhiva ni mogoče preveriti" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Stisnjeni arhivi v več delih niso mogoči" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Stisnjenega arhiva ni mogoče združevati" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "izbira --pax-option je mogoča le na arhivih POSIX" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "izbira --acls je mogoča le na arhivih POSIX" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "izbira --selinux je mogoča le na arhivih POSIX" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "izbira --xattrs je mogoča le na arhivih POSIX" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2569,29 +2569,29 @@ msgstr "" "Vrhnjega imenika ni mogoče ugotoviti; prosimo nastavite ga izrecno z --one-" "top-level=IMENIK" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "Dolžina dela ne more biti manjša od velikosti zapisa" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Zahteva po odprtju praznega arhiva bojazljivo zavrnjena" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Izbire »-Aru« so nezdružljive z »-f -«" -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "Ena od izbir »-Acdtrux«, »--delete« ali »--test-label« je obvezna" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "Zaradi predhodnih napak zaključujemo s statusom napake" -#: src/update.c:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" @@ -2600,99 +2600,108 @@ msgstr[1] "%s: Datoteka skrčena za %s bajt" msgstr[2] "%s: Datoteka skrčena za %s bajta" msgstr[3] "%s: Datoteka skrčena za %s bajte" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "Vzorca %s ni mogoče uporabiti" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Ključa %s ni mogoče preklicati" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "Poškodovana razširjena glava: manjka dolžina" -#: src/xheader.c:677 +#: src/xheader.c:695 #, 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:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "Poškodovana razširjena glava: za dolžino manjka presledek" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "Poškodovana razširjena glava: manjka enačaj" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "Poškodovana razširjena glava: manjka znak za novo vrstico" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "Ne upošteva se neznanega ključa razširjene glave »%s«" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, 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:1053 +#: src/xheader.c:1071 #, 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:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Poškodovana razširjena glava: neveljavni %s=%s" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Poškodovana razširjena glava: odvečni %s=%s" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, 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:1543 +#: src/xheader.c:1561 #, 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:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s: neveljaven čas preteka" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: neznano dejanje za kontrolno točko" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "zapiši" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "preberi" @@ -2701,7 +2710,7 @@ msgstr "preberi" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Oznaka pisanja %u" @@ -2711,12 +2720,12 @@ msgstr "Oznaka pisanja %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Oznaka branja %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2724,94 +2733,98 @@ msgstr "" "genfile pripravi datoteke za testno zbirko GNU paxutils.\n" "IZBIRE so:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Izbire ustvarjenja datotek:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "VELIKOST" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Ustvari arhiv z navedeno VELIKOSTJO" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Zapiši na podano DATOTEKO namesto na standardni izhod" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "Preberi imena datotek iz podane DATOTEKE" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T prebere z \\000 terminirana imena" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "Zapiše v datoteko dani VZOREC. VZOREC je lahko 'default' ali 'zeros'" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "Velikost bloka za razpršeno datoteko" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "Ustvari razpršeno datoteko. Preostanek ukazne vrstice podaja preslikavo " "datoteke." -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "ODMIK" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "pomakni se na dani odmik pred pisanjem podatkov" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Izbire statistike datotek:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Izpiši vsebino strukture stat za vsako od datotek. Privzeti FORMAT je: " -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Izbire za sinhrono izvajanje:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "IZBIRA" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "Izvedi ARGUMENTE. Uporabno z izbiro --checkpoint in eno od naslednjih izbir: " "--cut, --append, --touch, --unlink" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "Ob dosegu kontrolne točke N izvedi dano dejanje (glejte spodaj)" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "Nastavi datum za naslednjo izbiro --touch" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "Izpiši izvedene kontrolne točke in izhodni status UKAZA" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2819,7 +2832,7 @@ msgstr "" "Dejanja sinhronega izvajanja. Izvedejo se, ko je dosežena ena od kontrolnih " "točk, podana z izbiro --checkpoint." -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2827,126 +2840,126 @@ msgstr "" "Skrajšaj DATOTEKO na dolžino, določeno s prejšnjo izbiro --length (ali 0, če " "ta ni podana)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Dodaj VELIKOST bajtov DATOTEKI. VELIKOST je podana s prejšnjo izbiro --" "length." -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "Posodobi čas dostopa in spremembe za DATOTEKO" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "Izvedi UKAZ" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" msgstr "" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Neveljavna velikost: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Številka izven dovoljenega obsega: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Negativna velikost: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "klic stat(%s) ni uspel" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "zahtevana dolžina datoteke %lu, dejanska %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "ustvarjena datoteka ni razpršena" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "Napaka pri razčlembi števila pri »%s«" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Neznana format datuma" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ARGUMENT...]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "ni mogoče odpreti »%s«" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "klic seek() ni mogoč" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "datoteka vsebuje znak NUL" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, 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:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "nepravilna maska (pri »%s«)" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "Neznano polje »%s«" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "ni mogoče nastaviti časa za »%s«" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "ni mogoče okrajšati »%s«" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "ukaz neuspešen: %s" -#: tests/genfile.c:781 +#: tests/genfile.c:772 #, fuzzy, c-format msgid "cannot stat `%s'" msgstr "ni mogoče okrajšati »%s«" -#: tests/genfile.c:785 +#: tests/genfile.c:776 #, fuzzy, c-format msgid "cannot remove directory `%s'" msgstr "Ni mogoče odpreti imenika %s" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "ni mogoče odstraniti »%s«" @@ -2987,6 +3000,9 @@ msgstr "Ukaz je bil prekinjen\n" msgid "--stat requires file names" msgstr "--stat zahteva imena datotek" +#~ msgid "OPTION" +#~ msgstr "IZBIRA" + #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: vrednost parametra ARGP_HELP_FMT mora biti pozitivna" diff --git a/po/sr.gmo b/po/sr.gmo index 6380c513765c231334154b054c627056e969ee30..1fa3994c4caa8c875d4ca7fb236a02f6d7f93465 100644 GIT binary patch delta 12232 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 Bt7rfK delta 12498 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 diff --git a/po/sr.po b/po/sr.po index 8d23713b..a515bfa1 100644 --- a/po/sr.po +++ b/po/sr.po @@ -2,12 +2,12 @@ # Copyright (C) 2014 Free Software Foundation, Inc. # This file is distributed under the same license as the tar package. # Мирослав Николић <miroslavnikolic@rocketmail.com>, 2014—2016. -#: src/create.c:1599 +#: src/create.c:1598 msgid "" msgstr "" "Project-Id-Version: tar-1.29\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" "PO-Revision-Date: 2016-06-02 05:18+0200\n" "Last-Translator: Мирослав Николић <miroslavnikolic@rocketmail.com>\n" "Language-Team: Serbian <(nothing)>\n" @@ -97,7 +97,7 @@ msgid "give a short usage message" msgstr "приказује кратку поруку коришћења" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "НАЗИВ" @@ -232,12 +232,12 @@ msgstr "^[yY]" msgid "^[nN]" msgstr "^[nN]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Запаковао је %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Запаковао је %s\n" @@ -245,11 +245,11 @@ msgstr "Запаковао је %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: gnu/version-etc.c:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "©" -#: gnu/version-etc.c:86 +#: gnu/version-etc.c:85 #, fuzzy msgid "" "\n" @@ -528,147 +528,147 @@ msgstr "Не могу да преусмерим датотеке за удаље msgid "Cannot execute remote shell" msgstr "Не могу да извршим удаљену шкољку" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Смер премотавања је изван опсега" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "Неисправан смер премотавања" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "Неисправан померај премотавања" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Померај премотавања је изван опсега" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "Неисправан број бајта" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "Број бајта је изван опсега" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "Прерани крај датотеке" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "Неисправна шифра радње" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "Радња није подржана" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Неочекивани аргументи" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 msgid "Manipulate a tape drive, accepting commands from a remote process" msgstr "Управља уређајем траке, прихватајући наредбе од удаљеног процеса" -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "БРОЈ" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "поставља ниво прочишћавања" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "ДАТОТЕКА" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "поставља назив излазне датотеке прочишћавања" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "не могу да отворим „%s“" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "превише аргумената" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Наредба за ђубре" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Ово не изгледа као тар архива" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Укупно прочитаних бајтова" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Укупно уписаних бајтова" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "Укупно обрисаних бајтова" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(спојка)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "" "Одбијам да читам садржаје архиве из терминала (да ли недостаје опција „-f“?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "" " Одбијам да пишем садржаје архиве на терминал (да ли недостаје опција „-f“?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Неисправна вредност за величину_снимка" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Није дат назив архиве" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Не могу да проверим архиву стандарног улаза/излаза" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Архива је запакована. Користите опцију „%s“" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Не могу да освежим запаковане архиве" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "На почетку сам траке, прекидам" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Превише грешака, прекидам" -#: src/buffer.c:967 +#: src/buffer.c:969 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" @@ -676,7 +676,7 @@ msgstr[0] "Величина снимања = %lu блок" msgstr[1] "Величина снимања = %lu блока" msgstr[2] "Величина снимања = %lu блокова" -#: src/buffer.c:988 +#: src/buffer.c:990 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" @@ -684,37 +684,37 @@ msgstr[0] "Непоравнат блок (%lu бајт) у архиви" msgstr[1] "Непоравнат блок (%lu бајта) у архиви" msgstr[2] "Непоравнат блок (%lu бајтова) у архиви" -#: src/buffer.c:1075 +#: src/buffer.c:1077 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "Не могу да померим уназад датотеку архиве; може бити нечитка без „-i“" -#: src/buffer.c:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "„rmtlseek“ није заустављен на граници снимања" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: садржи погрешан број диска" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Прекорачење броја диска" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Припремите диск #%d за „%s“ и притисните врати: " -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "крај датотеке где се очекивао одговор корисника" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "УПОЗОРЕЊЕ: Архива није потпуна" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -726,66 +726,66 @@ msgstr "" " y или newline Наставља радњу\n" # проверити и питати -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Израђа подшкољку\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? Испсиује овај списак\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Нема новог диска; излазим.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "Нисте навели назив датотеке. Покушајте поново.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Неисправан улаз. Укуцајте ? за помоћ.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "Није успела наредба „%s“" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "„%s“ није наставио на овом диску" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "" "„%s“ је вероватно наставио на овом диску: заглавље садржи скраћени назив" -#: src/buffer.c:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s је погрешне величине (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Овај диск је ван низа (%s - %s != %s)" -#: src/buffer.c:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "Архива није обележена да поклопи „%s“" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "Диск „%s“ не поклапа „%s“" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -793,11 +793,11 @@ msgstr "" "%s: назив датотеке је предуг да би се сачувао у заглављу Гнуовог вишедика, " "скраћено" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "писање није завршило на граници блока" -#: src/compare.c:98 +#: src/compare.c:97 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" @@ -805,75 +805,75 @@ msgstr[0] "Могу да прочитам само %lu од %lu бајта" msgstr[1] "Могу да прочитам само %lu од %lu бајта" msgstr[2] "Могу да прочитам само %lu од %lu бајтова" -#: src/compare.c:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Садржаји се разликују" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Неочекиван крај датотеке у архиви" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Врста датотеке се разликује" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Режим се разликује" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Јиб се разликује" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "Гиб се разликује" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Време калупа се разликује" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Величина се разликује" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Није повезан са „%s“" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Симболичка веза се разликује" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Број уређаја се разликује" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Провери " -#: src/compare.c:480 +#: src/compare.c:479 #, c-format msgid "%s: Unknown file type '%c', diffed as normal file" msgstr "%s: Непозната врста датотеке „%c“, другачија је од обичне датотеке" -#: src/compare.c:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "Архива садржи називе датотека са уклоњеним водећим префиксима." -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "Архива садржи преиначене називе датотека." -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "Провера можда не успе да пронађе изворне датотеке." -#: src/compare.c:620 +#: src/compare.c:619 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" @@ -881,46 +881,46 @@ msgstr[0] "НЕУСПЕЛА ПРОВЕРА: откривено је %d неис msgstr[1] "НЕУСПЕЛА ПРОВЕРА: откривена су %d неисправна заглавља" msgstr[2] "НЕУСПЕЛА ПРОВЕРА: откривено је %d неисправних заглавља" -#: src/compare.c:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "Усамљени нулти блок на „%s“" -#: src/create.c:74 +#: src/create.c:73 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: садржи ознаку директоријума оставе „%s“; %s" -#: src/create.c:263 +#: 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:269 +#: src/create.c:268 #, c-format msgid "value %s out of %s range %s..%s" msgstr "вредност „%s“ је ван „%s“ опсега %s..%s" -#: src/create.c:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Стварам негативна октална заглавља" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, c-format msgid "%s: file name is too long (max %d); not dumped" msgstr "%s: назив датотеке је предуг (највише %d); није изнет" -#: src/create.c:616 +#: src/create.c:615 #, c-format msgid "%s: file name is too long (cannot be split); not dumped" msgstr "%s: назив датотеке је предуг (не могу да га поделим); није изнет" -#: src/create.c:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: назив везе је предуг; није изнет" -#: src/create.c:1106 +#: src/create.c:1105 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" @@ -928,78 +928,78 @@ msgstr[0] "%s: Датотека је смањена за %s бајт, допуњ msgstr[1] "%s: Датотека је смањена за %s бајта, допуњена нулама" msgstr[2] "%s: Датотека је смањена за %s бајтова, допуњена нулама" -#: src/create.c:1204 +#: src/create.c:1203 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: датотека је на другачијем систему датотека; није изнета" -#: src/create.c:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "садржај није изнет" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Непозната врста датотеке; датотека је занемарена" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "Недостаје веза на „%s“." -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: датотека је непромењена; није изнета" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: датотека је архива; није изнета" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "директоријум није изнет" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: датотека је промењена у току читања" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: прикључница је занемарена" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: врата су занемарена" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Прелазим на следеће заглавље" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Бришем не-заглавља из архиве" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: неприхватљива стара временска ознака „%s“" -#: src/extract.c:320 +#: src/extract.c:319 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: временска ознака „%s“ је %s сек. у будућности" -#: src/extract.c:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Неочекивана недоследност приликом прављења директоријума" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: прескачем постојећу датотеку" @@ -1024,7 +1024,7 @@ msgstr "Покушавам да извучем симболичке везе к msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Не могу да извучем — датотека је наставак са другог диска" -#: src/extract.c:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Неочекивано дуго заглавље назива" @@ -1053,22 +1053,22 @@ msgstr "%s: Нисам могао да направим резерву ове д msgid "Cannot rename %s to %s" msgstr "Не могу да преименујем „%s“ у „%s“" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Директоријуму је промењен назив са „%s“" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: Директоријум је нов" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "%s: директоријум је на другачијем систему датотека; није изнет" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Директоријум је преименован" @@ -1194,35 +1194,35 @@ msgstr "%s: Бришем „%s“\n" msgid "%s: Cannot remove" msgstr "%s: Не могу да уклоним" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: Пропуштам" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "блок %s: ** Блок НИШТАВНИХ вредности **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "блок %s: ** Крај датотеке **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "блок %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1230,157 +1230,157 @@ msgstr "" "двојке" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Октална вредност архиве „%.*s“ је ван „%s“ опсега" -#: src/list.c:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "Архива садржи застарела заглавља основе-64" -#: src/list.c:852 +#: src/list.c:853 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "Архивом потписана ниска основе-64 „%s“ је ван „%s“ опсега" -#: src/list.c:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Вредност архиве „%s“ је ван „%s“ опсега %s..%s" -#: src/list.c:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " веза до „%s“\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " непозната врста датотеке „%s“\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "—Дуга веза—\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "—Дуг назив—\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "—Заглавље диска—\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "—Настављен на бајту %s—\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Стварам директоријум:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "Преименујем „%s“ у „%s“\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Не могу да преименујем у „%s“" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "Преименујем „%s“ назад на „%s“\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: Датотека је уклоњена пре него што је прочитана" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "проистекли процес" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "канал међупроцеса" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "Избор назива месне датотеке:" -#: src/names.c:72 +#: src/names.c:71 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "додаје дату ДАТОТЕКУ у архиву (корисно ако њен назив почиње цртицом)" -#: src/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "ДИР" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr " прелази у директоријум ДИР" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "добавља називе да извуче или створи из ДАТОТЕКЕ" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "„-T“ чита нулом завршене називе; подразумева „--verbatim-files-from“" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "искључује дејство претходне опције „--null“" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "уклања наводнике улазне датотеке или назива чланова (основно)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "не уклања наводнике улазне датотеке или назива чланова" -#: src/names.c:87 +#: src/names.c:86 #, fuzzy msgid "-T reads file names verbatim (no escape or option handling)" msgstr "„-T“ чита дословност назива датотека (без рада са опцијама)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "„-T“ називе датотека који почињу цртицом сматра за опције (основно)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "ШАБЛОН" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr " искључује датотеке, дате као ШАБЛОН" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "искључује шаблоне исписане у ДАТОТЕЦИ" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1388,24 +1388,24 @@ msgstr "" "искључује садржај директоријума који садрже „CACHEDIR.TAG“, осим за саму ту " "ознаку датотеке" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "искључује све под директоријумима који садрже „CACHEDIR.TAG“" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "искључује директоријуме који садрже „CACHEDIR.TAG“" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" "искључује садржај директоријума који садрже ДАТОТЕКУ, осим за саму ДАТОТЕКУ" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "чита шаблоне изузећа за сваки директоријум из ДАТОТЕКЕ, ако постоје" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" @@ -1413,118 +1413,118 @@ msgstr "" "чита шаблоне изузећа за сваки директоријум и њихове поддиректоријуме из " "ДАТОТЕКЕ, ако постоје" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "искључује све испод директоријума који садрже ДАТОТЕКУ" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "искључује директоријуме који садрже ДАТОТЕКУ" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "искључује директоријуме система управљања издањем" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "чита шаблоне изузећа из ВЦС датотека занемаривања" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "искључује датотеке резерве и закључавања" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "дубачи у директоријумима (основно)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "избегава опадање самостално у директоријима" -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" "Опције поклапања назива датотека (утиче и на шаблоне укључивања и " "искључивања):" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "шаблон се поклапа са почетком назива датотеке" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "шаблони се поклапају након сваке / (основно за искључивања)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "занемарује величину слова" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "поклапање величине слова (основно)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "користи џокере (основно за искључивања)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "дословно поклапање ниске" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "џокери се поклапају са / (основно за искључивања)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "џокери се не поклапају са /" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" msgstr "" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" msgstr "" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" msgstr "" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "линија наредби" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: списак датотека затражен са „%s“ већ је прочитан са „%s“" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "не могу да поделим ниску „%s“: %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: прочитан назив датотеке садржи ништаван знак" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "Знаци поклапања шаблона су коришћени у називима датотека" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1532,47 +1532,47 @@ msgstr "" "Користите „--wildcards“ да укључите поклапање шаблона, или „--no-wildcards“ " "да потиснете ово упозорење" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: Нисам нашао у архиви" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Нисам нашао у архиви захтевану појаву" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "Натпис архиве не одговара" -#: src/names.c:1717 +#: src/names.c:1747 msgid "" "Using -C option inside file list is not allowed with --listed-incremental" msgstr "" "Употреба опције „-C“ унутар списка датотека није допуштена са „--listed-" "incremental“" -#: src/names.c:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "Само једна опција „-C“ је допуштена са „--listed-incremental“" -#: src/tar.c:88 +#: src/tar.c:87 #, c-format msgid "Options '%s' and '%s' both want standard input" msgstr "Обе опције „%s“ и „%s“ желе стандардни улаз" -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Неисправан запис архиве" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "Гнуове функције се траже на несагласном запису архиве" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1793,7 +1793,7 @@ msgstr "Бирање излазног тока:" msgid "extract files to standard output" msgstr "извлачи датотеке на стандардни излаз" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "НАРЕДБА" @@ -1829,7 +1829,7 @@ msgstr " користи ДАТОТЕКА да мапира УИД-е вла msgid "use FILE to map file owner GIDs and names" msgstr " користи ДАТОТЕКА да мапира ГИД-е власника датотека и називе" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "ДАТУМ-ИЛИ-ДАТОТЕКА" @@ -2039,7 +2039,7 @@ msgstr "уређује блокове током читања (за 4.2БСД с msgid "Archive format selection:" msgstr "Избор записа архиве:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "ЗАПИС" @@ -2123,59 +2123,59 @@ msgstr "ПРОГРАМ" msgid "filter through PROG (must accept -d)" msgstr "издваја кроз ПРОГРАМ (мора да прихвати „-d“)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Избор месне датотеке:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "остаје у месном датотека систему када ствара архиву" -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "не уклања водеће / из назива датотека" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" msgstr "прати симболичке везе; архивира и износи датотеке на које показују" -#: src/tar.c:697 +#: src/tar.c:698 msgid "follow hard links; archive and dump the files they refer to" msgstr "прати чврсте везе; архивира и износи датотеке на које упућују" -#: src/tar.c:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "НАЗИВ-ЧЛАНА" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "почиње од члана НАЗИВ-ЧЛАНА када чита архиву" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "чува само датотеке које су новије од ДАТУМ-ИЛИ-ДАТОТЕКА" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "ДАТУМ" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr " упоређује датум и време када се промени само податак" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "УПРАВЉАЊЕ" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "прави резерву пре уклањања, бира УПРАВЉАЊЕ издањем" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "НИСКА" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2183,59 +2183,59 @@ msgstr "" " прави резерву пре уклањања, преписује уобичајени суфикс („~“ уколико " "није преписан променљивом окружења „SIMPLE_BACKUP_SUFFIX“)" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Преображавање назива датотеке:" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "одсеца БРОЈ водећих састојака из назива датотека приликом извлачења" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "ИЗРАЗ" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "користи седов ИЗРАЗ замене за преображај назива датотека" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Обавештајни излаз:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "опширно исписује обрађене датотеке" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "КЉУЧНА РЕЧ" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "управља упозорењем" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr " приказује поруке напредовања сваког снимања бр. БРОЈ (основно је 10)" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "РАДЊА" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "извршава РАДЊУ на свакој тачки провере" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "исписује поруку ако све везе нису изнете" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "СИГНАЛ" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2247,35 +2247,35 @@ msgstr "" "SIGQUIT, SIGINT, SIGUSR1 и SIGUSR2“; називи без префикса „SIG“ се такође " "прихватају" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "исписује времена измена датотеке у КУВ-у" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "исписује време датотеке у његовом потпуном простирању" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "шаље опширан излаз у ДАТОТЕКУ" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "приказује број блока унутар архиве са сваком поруком" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "пита за потврду за сваку радњу" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "приказује основности тара" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "показује исправне опсеге за поља датотеке снимка" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2283,31 +2283,31 @@ msgstr "" "када исписује или извлачи, исписује сваки директоријум који се не поклапа са " "условом претраге" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "показује називе датотека или архива након преображаја" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "СТИЛ" -#: src/tar.c:765 +#: src/tar.c:766 msgid "set name quoting style; see below for valid STYLE values" msgstr "поставља стил цитирања назива; видите испод исправне вредности СТИЛА" -#: src/tar.c:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr " додатно цитира знакове из НИСКЕ" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "искључује цитирање за знакове из НИСКЕ" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Опције сагласности:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2315,22 +2315,22 @@ msgstr "" "када ствара, исто као „--old-archive“; када извлачи, исто као „--no-same-" "owner“" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Остале опције:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "искључује употребу неких потенцијално штетних опција" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "„%s“ не може бити коришћена са „%s“" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" @@ -2338,40 +2338,40 @@ msgstr "" "Не можете навести више од једне опције „-Acdtrux“, „--delete“ или „--test-" "label“" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Сукобљавајуће опције сажимања" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Непознат назив сигнала: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "Нисам нашао датотеку примерка датума" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Замењујем „%s“ за непознати запис датума „%s“" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "Опција „%s“: Сматрам датум „%s“ за „%s“" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "издваја архиву кроз „%s“" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "Исправни аргументи за опцију „--quoting-style“ су:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2379,120 +2379,120 @@ msgstr "" "\n" "*Овај* тар подразумева опције:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "Неисправан власник или ИБ групе" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Неисправан блокирајући чинилац" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Неисправна дужина траке" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "Неисправна увећавајућа вредност нивоа" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Више од једног датума помака" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "Неисправна вредност разређеног издања" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "„--atime-preserve='system'“ није подржана на овој платформи" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "вредност „--checkpoint“ није цео број" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Неисправан режим је дат на опцији" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Неисправан број" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Неисправна величина записа" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "Величина снимања мора да буде вишеструка од %d." -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Неисправан број елемената" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "Дозвољена је само једна опција „--to-command“" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Лош аргумент густине: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Непозната густина: „%c“" -#: src/tar.c:2066 +#: src/tar.c:2075 #, c-format msgid "Options '-[0-7][lmh]' not supported by *this* tar" msgstr "Опције „-[0-7][lmh]“ нису подржане *овим* таром" -#: src/tar.c:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: место грешке" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "грешка обрађивања „%s“" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[ДАТОТЕКА]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "не-опциони аргументи у „%s“" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "не могу да поделим „TAR_OPTIONS“: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "Стара опција „%c“ захтева аргумент." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "„--occurrence“ нема значење без списка датотека" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "Више датотека архиве захтева опцију „-M“" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "„--level“ нема значења без „--listed-incremental“" -#: src/tar.c:2424 +#: 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)" @@ -2500,43 +2500,43 @@ msgstr[0] "%s: Натпис диска је предуг (ограничење msgstr[1] "%s: Натпис диска је предуг (ограничење је %lu бајта)" msgstr[2] "%s: Натпис диска је предуг (ограничење је %lu бајтова)" -#: src/tar.c:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Не могу да проверим архиве више дискова" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Не могу да проверим сажете архиве" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Не могу да користим сажете архиве више дискова" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Не могу да спојим сажете архиве" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "„--clamp-mtime“ треба датум наведен опцијом „--mtime“" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "„--pax-option“ може бити коришћена само на ПОСИКС архивама" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "„--acls“ може бити коришћена само на ПОСИКС архивама" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "„--selinux“ може бити коришћена само на ПОСИКС архивама" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "„--xattrs“ може бити коришћена само на ПОСИКС архивама" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2544,30 +2544,30 @@ msgstr "" "Не могу да докучим назив директоријума највишег нивоа; поставите га изричито " "са „--one-top-level=ДИР“" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "Величина диска не може бити мања од величине снимка" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Кукавички одбијам да направим празну архиву" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Опције „-Aru“ су несагласне са „-f -“" -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "" "Можете навести једну од опција „-Acdtrux“, „--delete“ или „--test-label“" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "Излазим са стањем неуспеха услед претходних грешака" -#: src/update.c:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" @@ -2575,98 +2575,107 @@ msgstr[0] "%s: Датотека је скупљена за %s бајт" msgstr[1] "%s: Датотека је скупљена за %s бајта" msgstr[2] "%s: Датотека је скупљена за %s бајтова" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "Шаблон „%s“ не може бити коришћен" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Кључна реч „%s“ не може бити преписана" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "Лоше проширено заглавље: недостаје дужина" -#: src/xheader.c:677 +#: src/xheader.c:695 #, c-format msgid "Extended header length %*s is out of range" msgstr "Дужина проширеног заглавља „%*s“ је ван опсега" -#: src/xheader.c:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "Лоше проширено заглавље: недостаје празнина након дужине" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "Лоше проширено заглавље: недостаје знак једнакости" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "Лоше проширено заглавље: недостаје нови ред" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "Занемарујем непознату кључну реч „%s“ проширеног заглавља" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, 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:1053 +#: src/xheader.c:1071 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Проширено заглавље „%s=%s“ је ван опсега %s..%s" -#: src/xheader.c:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Лоше проширено заглавље: неисправно је „%s=%s“" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Лоше проширено заглавље: премашује „%s=%s“" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "Лоше проширено заглавље: неисправно „%s“: неочекивани разделник „%c“" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "Лоше проширено заглавље: неисправно „%s“: непаран број вредности" -#: src/checkpoint.c:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s: није исправан истек времена" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: непозната радња тачке провере" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "писање" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "читање" @@ -2674,7 +2683,7 @@ msgstr "читање" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Тачка провере радње писања „%u“" @@ -2683,12 +2692,12 @@ msgstr "Тачка провере радње писања „%u“" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Тачка провере радње читања „%u“" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2697,94 +2706,98 @@ msgstr "" "Гнуовог помагала пакета (GNU paxutils).\n" "Опције су:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Опције стварања датотеке:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "ВЕЛИЧИНА" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Прави датотеку задате ВЕЛИЧИНЕ" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Пише у НАЗИВ датотеке, уместо на стандардни излаз" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "Чита називе датотека из ДАТОТЕКЕ" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "„-T“ чита нулом заврешене називе" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "Испуњава датотеку задатим ШАБЛОНОМ. ШАБЛОН је „default“ (основно) или " "„zeros“ (нуле)" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "Величина блока за проређену датотеку" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "Ствара проређену датотеку. Остатак линије наредби даје мапу датотеке." -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "ПОМЕРАЈ" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "Премотава на задати померај пре записивања података" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "Потискује дијагностичке поруке које нису кобне" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Опције статистичке датотеке:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Исписује садржаје стања структуре за сваку дату датотеку. Основни ЗАПИС је:" -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Опције усаглашеног извршавања:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "ОПЦИЈА" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "Извршава АРГУМЕНТЕ. Корисно уз „--checkpoint“ и уз једну од „--cut“, „--" "append“, „--touch“, „--unlink“" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "Обавља задату радњу (видите испод) након достизања БРОЈА тачке провере" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "Поставља датум за следећу опцију „--touch“" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "Приказује извршене тачке провере и износи стање НАРЕДБЕ" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2792,7 +2805,7 @@ msgstr "" "Радње усаглашеног извршавања. Извршавају се када је достигнут број тачке " "провере задат опцијом „--checkpoint“." -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2800,126 +2813,126 @@ msgstr "" "Скраћује ДАТОТЕКУ на величину наведену претходном опцијом „--length“ (или 0, " "ако није дата)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Придодаје ВЕЛИЧИНА бајтова ДАТОТЕЦИ. ВЕЛИЧИНА је дата претходном опцијом „--" "length“" -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "Освежава времена приступа и промена ДАТОТЕКЕ" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "Извршава НАРЕДБУ" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" msgstr "" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Неисправна величина: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Број је изван дозвољеног опсега: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Негативна величина: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "није успело добављање података за „%s“" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "затражена величина датотеке је %lu, а тренутна је %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "створена датотека није проређена" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "Грешка анализе броја близу „%s“" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Непознат запис датума" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[АРГУМЕНТИ...]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "не могу да отворим „%s“" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "не могу да премотам" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "назив датотеке садржи ништаван знак" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" "не могу да створим проређену датотеку на стандардном излазу, користите " "опцију „--file“" -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "неисправна маска (близу „%s“)" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "Непознато поље „%s“" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "не могу да подесим време на „%s“" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "не могу да скратим „%s“" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "наредба није успела: %s" -#: tests/genfile.c:781 +#: tests/genfile.c:772 #, fuzzy, c-format msgid "cannot stat `%s'" msgstr "не могу да скратим „%s“" -#: tests/genfile.c:785 +#: tests/genfile.c:776 #, fuzzy, c-format msgid "cannot remove directory `%s'" msgstr "не могу да подесим време на „%s“" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "не могу да развежем „%s“" @@ -2959,6 +2972,9 @@ msgstr "Наредба је окончана\n" msgid "--stat requires file names" msgstr "„--stat“ захтева називе датотека" +#~ msgid "OPTION" +#~ msgstr "ОПЦИЈА" + #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: „ARGP_HELP_FMT“ параметар мора бити позитиван" diff --git a/po/sv.gmo b/po/sv.gmo index babcb8257702edf2079b21530e2d25a9d6b5e1f6..ccbb889dd295cc89141692a1e749c335be14c19a 100644 GIT binary patch delta 14844 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 delta 12876 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 U0*rc_?>>uRVbt4f`FaC80I)PSY5)KL diff --git a/po/sv.po b/po/sv.po index 605fced1..0e8b6aa7 100644 --- 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, 2011, 2013, 2014, 2016 Free Software Foundation, Inc. +# Copyright © 1996, 2001, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013, 2014, 2016, 2017 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, 2011, 2013, 2014 -# Anders Jonsson <anders.jonsson@norsjovallen.se>, 2016 +# Anders Jonsson <anders.jonsson@norsjovallen.se>, 2016, 2017 # -#: src/create.c:1599 +#: src/create.c:1598 msgid "" msgstr "" -"Project-Id-Version: tar 1.29\n" +"Project-Id-Version: tar 1.30\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" -"PO-Revision-Date: 2016-05-16 21:45+0200\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" +"PO-Revision-Date: 2017-12-19 18:15+0100\n" "Last-Translator: Anders Jonsson <anders.jonsson@norsjovallen.se>\n" "Language-Team: Swedish <tp-sv@listor.tp-sv.se>\n" "Language: sv\n" @@ -19,7 +19,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" -"X-Generator: Poedit 1.8.7.1\n" +"X-Generator: Poedit 2.0.5\n" #: gnu/argmatch.c:134 #, c-format @@ -101,7 +101,7 @@ msgid "give a short usage message" msgstr "ge ett kort hjälpmeddelande" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "NAMN" @@ -139,29 +139,29 @@ msgid "write error" msgstr "skrivfel" #: gnu/getopt.c:278 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous\n" -msgstr "%s: flaggan ”%s” är tvetydig\n" +msgstr "%s: flaggan ”%s%s” är tvetydig\n" #: gnu/getopt.c:284 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" -msgstr "%s: flaggan ”%s” är tvetydig, alternativ:" +msgstr "%s: flaggan ”%s%s” är tvetydig, alternativ:" #: gnu/getopt.c:319 -#, fuzzy, c-format +#, c-format msgid "%s: unrecognized option '%s%s'\n" -msgstr "%s: okänd flagga ”%c%s”\n" +msgstr "%s: okänd flagga ”%s%s”\n" #: gnu/getopt.c:345 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" -msgstr "%s: flaggan ”%c%s” tar inget argument\n" +msgstr "%s: flaggan ”%s%s” tar inget argument\n" #: gnu/getopt.c:360 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' requires an argument\n" -msgstr "%s: flaggan ”--%s” kräver ett argument\n" +msgstr "%s: flaggan ”%s%s” kräver ett argument\n" #: gnu/getopt.c:621 #, c-format @@ -236,12 +236,12 @@ msgstr "^[yYjJ]" msgid "^[nN]" msgstr "^[nN]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Paketerad av %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Paketerad av %s\n" @@ -249,12 +249,11 @@ msgstr "Paketerad av %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: gnu/version-etc.c:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "©" -#: gnu/version-etc.c:86 -#, fuzzy +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -264,7 +263,7 @@ msgid "" "\n" msgstr "" "\n" -"Licens GPLv3+: GNU GPL version 3 eller senare <http://gnu.org/licenses/gpl." +"Licens GPLv3+: GNU GPL version 3 eller senare <https://gnu.org/licenses/gpl." "html>.\n" "Detta program är fri programvara. Du kan modifiera och distribuera den.\n" "Det finns inte NÅGON SOM HELST GARANTI, till den grad som lagen tillåter.\n" @@ -407,15 +406,14 @@ msgid "%s home page: <%s>\n" msgstr "hemsida för %s: <%s>\n" #: gnu/version-etc.c:253 -#, fuzzy, c-format +#, c-format msgid "%s home page: <https://www.gnu.org/software/%s/>\n" -msgstr "%s hemsida: <http://www.gnu.org/software/%s/>.\n" +msgstr "Webbsida för %s: <https://www.gnu.org/software/%s/>.\n" #: gnu/version-etc.c:256 -#, fuzzy msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n" msgstr "" -"Allmän användarhjälp för GNU-programvara: <http://www.gnu.org/gethelp/>.\n" +"Allmän användarhjälp för GNU-programvara: <https://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 @@ -534,189 +532,189 @@ msgstr "Kan inte omdirigera filer för fjärrskal" msgid "Cannot execute remote shell" msgstr "Kan inte exekvera fjärrskal" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Positioneringsriktning har ogiltigt värde" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "Ogiltig sökriktning" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "Ogiltigt positioneringsvärde" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Positioneringsvärde är utanför giltigt intervall" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "Ogiltigt byte-antal" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "Byte-antal är utanför giltigt intervall" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "För tidigt filslut" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "Felaktig operationskod" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "Operationsläge stöds inte" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Oväntade argument" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 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:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "NUMMER" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "sätt felsökningsnivå" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "FIL" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "sätt felsökningsfilnamn" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" -msgstr "kan inte öppna ”%s”" +msgstr "kan inte öppna %s" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "för många argument" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Okänt kommando" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Det här ser inte ut som ett tar-arkiv" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Summa lästa byte" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Summa skrivna byte" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "Summa borttagna byte" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(rör)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "Vägrar att läsa arkivinnehåll från terminal (saknad -f-flagga?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "Vägrar att skriva arkivinnehåll till terminal (saknad -f-flagga?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Ogiltigt värde på record_size" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Arkivnamn saknas" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Kan inte verifiera standard in/ut-arkiv" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Arkivet är komprimerat. Använd flaggan %s" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Komprimerade arkiv kan inte uppdateras" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "Vid bandets början, avslutar nu" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "För många fel, avslutar" -#: src/buffer.c:967 +#: src/buffer.c:969 #, 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:988 +#: src/buffer.c:990 #, 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:1075 +#: src/buffer.c:1077 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:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek stannade inte på en postgräns" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: innehåller ogiltigt volymnummer" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Volymnummer flödade över" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Gör i ordning volym nummer %d för %s och tryck vagnretur: " -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "Filslut vid förväntat användarsvar" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "VARNING: Arkivet är ofullständigt" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -727,66 +725,66 @@ msgstr "" " q Avsluta programmet\n" " y eller nyrad Fortsätt\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Starta ett underskal\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? Skriv denna lista\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Ingen ny volym; avslutar.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "Filnamn inte angivet, försök igen.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Ogiltig indata. Skriv ? för hjälp.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "kommandot ”%s” misslyckades" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s fortsätter inte i denna volym" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, 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:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s har fel storlek (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, 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:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, 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:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "Volym %s överensstämmer inte med %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -794,210 +792,210 @@ msgstr "" "%s: filnamnet är för långt för att lagras i huvudet för ett GNU " "flervolymsarkiv, trunkerat" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "skrivning stannade inte på en blockgräns" -#: src/compare.c:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Innehållet är olika" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Oväntat filslut i arkivet" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Filtyper är olika" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Rättigheterna är olika" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Uid är olika" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "Gid är olika" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Modifieringstiderna är olika" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Storlekarna är olika" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Inte länkad till %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Symboliska länkar är olika" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Enhetsnummer är olika" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Verifierar " -#: src/compare.c:480 +#: src/compare.c:479 #, 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:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "Arkivet innehåller filnamn med inledande prefix borttaget." -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "Arkivet innehåller konverterade filnamn." -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "Verifiering kan misslyckas med att hitta originalfiler." -#: src/compare.c:620 +#: src/compare.c:619 #, 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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "Ett ensamt nollblock vid %s" -#: src/create.c:74 +#: 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:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Genererar negativa oktala värden i arkivhuvudet" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, 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:616 +#: src/create.c:615 #, 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:643 +#: src/create.c:642 #, 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:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, 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:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "innehållet inte arkiverat" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Okänd filtyp; filen ignorerad" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "Det fattas länkar till %s." -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: filen är oförändrad; inte arkiverad" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: filen är själva arkivet; inte arkiverad" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "katalog inte arkiverad" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: fil ändrades under tiden vi läste den" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: socketfil ignorerad" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: door-fil ignorerad" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Hoppar till nästa filhuvud" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Tar bort icke-huvuddata från arkivet" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: orimligt gammal tidsstämpel %s" -#: src/extract.c:320 +#: src/extract.c:319 #, 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:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Oväntad inkonsistens när katalog skapades" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: hoppar över existerande fil" @@ -1020,7 +1018,7 @@ msgstr "Försöker extrahera symboliska länkar som hårda länkar" 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:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Oväntat huvud för långt filnamn" @@ -1037,7 +1035,7 @@ msgstr "Nuvarande ”%s” är nyare eller lika gammal" #: src/extract.c:1664 #, c-format msgid "%s: Member name contains '..'" -msgstr "" +msgstr "%s: Medlemsnamn innehåller ”..”" #: src/extract.c:1696 #, c-format @@ -1049,22 +1047,22 @@ msgstr "%s: Kunde inte säkerhetskopiera denna fil" msgid "Cannot rename %s to %s" msgstr "Kan inte byta namn på %s till %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Katalogen har bytt namn från %s" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: Katalogen är ny" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "%s: katalogen finns på ett annat filsystem; inte arkiverad" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Katalogen har bytt namn" @@ -1191,35 +1189,35 @@ msgstr "%s: Tar bort %s\n" msgid "%s: Cannot remove" msgstr "%s: Kan inte ta bort" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: Utelämnad" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "block %s: ** Block av nolltecken **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "block %s: ** Filslut **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "block %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1227,159 +1225,160 @@ msgstr "" "komplement" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, 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:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "Arkivet innehåller föråldrade ”base-64”-huvuden" -#: src/list.c:852 +#: src/list.c:853 #, 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:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, 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:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " länk till %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " okänd filtyp ”%s”\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Lång länk--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Långt namn--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Volymhuvud--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Fortsätter vid byte %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Skapar katalog:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "Byter namn på %s till %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Kan inte byta namn till %s" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "Byter namn på %s tillbaka till %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: Fil borttagen innan vi läste den" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "barnprocess" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "interprocesskanal" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "Lokalt filnamnsval:" -#: src/names.c:72 +#: src/names.c:71 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/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "KATALOG" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "byt katalog till KATALOG" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "hämta namn att extrahera eller skapa från FIL" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "" "-T läser namn åtskilda med nolltecken; implicerar --verbatim-files-from" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "ta bort effekten av föregående --null-flagga" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "avcitera infil eller namnen i arkivet (standardvärde)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "avcitera inte infil eller namnen i arkivet" -#: src/names.c:87 -#, fuzzy +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" -msgstr "-T läser filnamn ordagrant (ingen flagghantering)" +msgstr "" +"-T läser filnamn ordagrant (ingen hantering av kontrollsekvenser eller " +"flaggor)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "" "-T behandlar filnamn som startar med bindestreck som flaggor (standard)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "MÖNSTER" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "utelämna filer som matchar MÖNSTER" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "utelämna filer som matchar mönster i FIL" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1387,23 +1386,23 @@ msgstr "" "utelämna innehållet i kataloger som innehåller CACHEDIR.TAG, förutom " "CACHEDIR.TAG själv" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "utelämna allt i kataloger som innehåller CACHEDIR.TAG" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "utelämna kataloger som innehåller CACHEDIR.TAG" -#: src/names.c:104 +#: src/names.c:103 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/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "läs exkluderingsmönster för varje katalog från FIL om den finns" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" @@ -1411,118 +1410,121 @@ msgstr "" "läs exkluderingsmönster för varje katalog och dess underkataloger från FIL " "om den finns" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "utelämna allting i kataloger som innehåller FIL" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "utelämna kataloger som innehåller FIL" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "utelämna kataloger från versionshanteringssystem" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "läs exkluderingsmönster från versionkontrollsystemets ”ignore”-filer" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "utelämna säkerhetskopior och låsfiler" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "gå rekursivt ned i kataloger (standardvärde)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "gå inte automatiskt ned i kataloger" -#: src/names.c:130 +#: src/names.c:129 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/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "mönster måste matcha i början på filnamn" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "mönster matchas efter ”/” i filnamn (standardvärde vid uteslutning)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "matcha gemener och versaler lika" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "matcha gemener och versaler olika (standardvärde)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "använd jokertecken (standardvärde för uteslutning)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "ordagrann strängjämförelse" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "jokertecken matchar ”/” (standardvärde för uteslutning)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "jokertecken matchar inte ”/”" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" +"Följande flaggor användes efter något obligatoriskt argument i läge för " +"skapande eller uppdatering av arkiv. Dessa flaggor är positionsberoende och " +"påverkar endast efterföljande argument. Arrangera dem i rätt ordning." -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" -msgstr "" +msgstr "-C %s har ingen effekt" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" -msgstr "" +msgstr "--%s %s har ingen effekt" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" -msgstr "" +msgstr "--%s har ingen effekt" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "kommandorad" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: fillista begärd från %s redan läst från %s" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "kan inte dela sträng ”%s”: %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: filnamnet som lästes innehåller nolltecken" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "Mönstermatchningstecken används i filnamn" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1530,45 +1532,45 @@ msgstr "" "Använd --wildcards för att slå på mönstermatchning, eller --no-wildcards för " "att undertrycka denna varning" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: Fanns inte i arkivet" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Nödvändig förekomst hittades inte i arkivet" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "Arkivmärkning stämmer inte överens" -#: src/names.c:1717 +#: src/names.c:1747 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:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "Bara en -C-flagga är tillåtet med --listed-incremental" -#: src/tar.c:88 +#: src/tar.c:87 #, 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:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Ogiltigt arkivformat" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "GNU-tillägg önskade i ett inkompatibelt arkivformat" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1786,7 +1788,7 @@ msgstr "Välj utdataström:" msgid "extract files to standard output" msgstr "extrahera filer till standard ut" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "KOMMANDO" @@ -1822,7 +1824,7 @@ msgstr "använd FIL för att mappa filägares UID och namn" msgid "use FILE to map file owner GIDs and names" msgstr "använd FIL för att mappa filägares GID och namn" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "DATUM-ELLER-FIL" @@ -1902,7 +1904,7 @@ msgid "" "until the end of extraction" msgstr "" "fördröj sättandet av modifikationstider och rättigheter på extraherade " -"kataloger till slutet på arkivextraheringen." +"kataloger till slutet på arkivextraheringen" #: src/tar.c:548 msgid "cancel the effect of --delay-directory-restore option" @@ -2032,7 +2034,7 @@ msgstr "omblocka vid läsning (för 4.2BSD-rör)" msgid "Archive format selection:" msgstr "Val av arkivformat:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "FORMAT" @@ -2116,59 +2118,59 @@ msgstr "PROG" msgid "filter through PROG (must accept -d)" msgstr "filtrera genom PROG (måste förstå -d)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Filval:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "byt inte filsystem när arkivet skapas" -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "tag inte bort inledande ”/” från namn" -#: src/tar.c:695 +#: src/tar.c:696 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:697 +#: src/tar.c:698 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:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "NAMN" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "börja med fil NAMN när arkivet läses" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "arkivera bara filer nyare än DATUM-ELLER-FIL" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "DATUM" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "jämför datum och tid endast för dataändringar" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "KONTROLL" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "gör säkerhetskopior före borttagning, välj typ av versionshantering" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "STRÄNG" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2177,61 +2179,61 @@ msgstr "" "säkerhetskopieändelsen (”~” om inte ändrad med miljövariabeln " "SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Filnamnstransformationer:" -#: src/tar.c:715 +#: src/tar.c:716 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:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "UTTRYCK" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "använd seds ersättnings-UTTRYCK för att transformera filnamn" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Informativ utskrift:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "visa namn på alla filer som behandlas" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "NYCKELORD" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "varningskontroll" -#: src/tar.c:731 +#: src/tar.c:732 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:733 +#: src/tar.c:734 msgid "ACTION" msgstr "ÅTGÄRD" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "utför ÅTGÄRD vid varje kontrollpunkt" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "visa ett meddelande om inte alla länkar arkiverats" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "SIGNAL" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2240,37 +2242,37 @@ msgid "" msgstr "" "skriv totalt antal byte efter arkivet hanterats. Med ett argument skrivs " "totalt antal byte när SIGNAL levereras. Tillåta signaler är: SIGHUP, " -"SIGQUIT, SIGINT, SIGUSR1 och SIGUSR2. Namn utan SIG-prefix accepteras också." +"SIGQUIT, SIGINT, SIGUSR1 och SIGUSR2. Namn utan SIG-prefix accepteras också" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "visa filers modifieringstid i UTC" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "visa full upplösning på filtider" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "skicka informativa meddelanden till FIL" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "visa blocknummer inom arkivet för varje meddelande" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "fråga efter bekräftelse för varje steg" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "visa standardvärden för ”tar”" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "visa giltiga intervall för fält i ögonblicksfil" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2278,31 +2280,31 @@ msgstr "" "vid visning eller extrahering, visa varje katalog som inte matchar " "sökkriterium" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "visa fil- eller arkivnamn efter transformering" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "STIL" -#: src/tar.c:765 +#: src/tar.c:766 msgid "set name quoting style; see below for valid STYLE values" -msgstr "sätt citatstil för namn. Se nedan för giltiga värden på STIL." +msgstr "sätt citatstil för namn. Se nedan för giltiga värden på STIL" -#: src/tar.c:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "citera även tecken i STRÄNG" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "citera inte tecken i STRÄNG" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Kompatibilitetsflaggor:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2310,62 +2312,62 @@ msgstr "" "vid skapande, samma som --old-archive. Vid extrahering, samma som --no-same-" "owner" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Andra flaggor:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "begränsa användningen av eventuellt farliga flaggor" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "flaggan ”%s” kan inte användas med ”%s”" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" msgstr "" "Du kan endast ange en av flaggorna ”-Acdtrux, ”--delete” eller ”--test-label”" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Motstridiga komprimeringsflaggor" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Okänt signalnamn: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "Tidsfil hittades inte" -#: src/tar.c:1036 +#: src/tar.c:1038 #, 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:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "Flagga %s: Tolkar tidsangivelse ”%s” som %s" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "filtrera arkivet genom %s" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "Giltiga argument till flaggan --quoting-style är:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2373,163 +2375,163 @@ msgstr "" "\n" "*Denna* tar har standardvärdena:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "Ogiltig ägare eller grupp-id" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Ogiltig blockfaktor" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Ogiltig bandlängd" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "Felaktigt värde för inkrementell nivå" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Mer än en datumgräns" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "Ogiltig version för filer med hål" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve=\"system\" stöds inte på denna plattform" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "--checkpoint-värdet är inte ett heltal" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Ogiltiga rättigheter givna för flagga" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Ogiltigt nummer" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Ogiltig poststorlek" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "Poststorlek måste vara en multipel av %d." -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Ogiltigt antal element" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "Endast en --to-command flagga tillåten" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Ogiltig densitetsangivelse: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Okänd densitet: ”%c”" -#: src/tar.c:2066 +#: src/tar.c:2075 #, 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:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: plats för felet" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "fel vid parsning av %s" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[FIL]…" -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "argument som ej är flagga i %s" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "kan inte dela TAR_OPTIONS: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "Gammal flagga ”%c” kräver ett argument." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence är meningslöst utan en fillista" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "Multipla arkivfiler kräver ”-M” flaggan" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "--level är meningslös utan --listed-incremental" -#: src/tar.c:2424 +#: 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Flervolymsarkiv kan inte verifieras" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Komprimerade arkiv kan inte verifieras" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Kan inte använda komprimerade flervolymsarkiv" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Komprimerade arkiv kan inte slås samman" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "--clamp-mtime behöver ett datum angivet med --mtime" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option kan bara användas på POSIX-arkiv" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "--acls kan bara användas på POSIX-arkiv" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "--selinux kan bara användas på POSIX-arkiv" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "--xattrs kan bara användas på POSIX-arkiv" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2537,128 +2539,137 @@ msgstr "" "Kan inte lista ut namnet på toppkatalogen, sätt det explicit med --one-top-" "level=KATALOG" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "Volymlängden kan inte vara mindre än poststorleken" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Vägrar fegt att skapa ett tomt arkiv" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Flaggorna ”-Aru” är inkompatibla med ”-f -”" -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "" "Du måste ange en av flaggorna ”-Acdtrux”, ”--delete” eller ”--test-label”" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "Avslutar med felstatus på grund av tidigare fel" -#: src/update.c:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Filen krympte med %s byte" msgstr[1] "%s: Filen krympte med %s byte" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "Mönster %s kan inte användas" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Nyckelord %s kan inte ersättas" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "Felaktigt utökat huvud: längd saknas" -#: src/xheader.c:677 +#: src/xheader.c:695 #, 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:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "Felaktigt utökat huvud: blanktecken efter längdangivelse saknas" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "Felaktigt utökat huvud: likamedtecken saknas" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "Felaktigt utökat huvud: nyrad saknas" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "Ignorerar nyckelord ”%s” i utökat huvud" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, 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:1053 +#: src/xheader.c:1071 #, 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:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Felaktigt utökat huvud: ogiltig %s=%s" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Felaktigt utökat huvud: för många %s=%s" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, 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:1543 +#: src/xheader.c:1561 #, 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:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s: ogiltig timeout" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: okänd kontrollpunktsåtgärd" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "skriv" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "läs" @@ -2666,7 +2677,7 @@ msgstr "läs" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Kontrollpunkt för skrivning %u" @@ -2675,12 +2686,12 @@ msgstr "Kontrollpunkt för skrivning %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Kontrollpunkt för läsning %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2688,93 +2699,97 @@ msgstr "" "genfile bearbetar datafiler i testsviten för GNU paxutils.\n" "FLAGGOR är:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Flaggor för filskapande:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "STORLEK" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Skapa ett arkiv med given STORLEK" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Skriv till NAMN istället för till standard ut" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "Läs filnamn från FIL" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T läser namn åtskilda med nolltecken" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "Fyll filen med givet MÖNSTER. MÖNSTER är \"default\" eller \"zeros\"" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "Storlek för ett block för filer med hål" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "Generera fil med hål. Resten av kommandoraden ger filmappningen." -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "POSITION" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "Flytta till given position innan data skrivs" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "Undertryck icke-ödesdigra diagnostiska meddelanden" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Flaggor för filstatistik:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Skriv innehållet i ”struct stat” för varje given fil. Standardvärde på " "FORMAT är: " -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Flaggor för synkron exekvering:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "FLAGGA" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "Kör ARGUMENT. Användbart med --checkpoint och en av --cut, --append, --" "touch, --unlink" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "Utför angiven åtgärd (se nedan) när kontrollpunkt NUMMER nås" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "Sätt datum för nästa --touch" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "Visa exekverade kontrollpunkter och slutstatus på KOMMANDO" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2782,7 +2797,7 @@ msgstr "" "Synkront exekverade åtgärder. Dessa exekveras när kontrollpunktsnumret givet " "av flaggan --checkpoint nås." -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2790,124 +2805,124 @@ msgstr "" "Trunkera FIL till storleken given av föregående flaggan --length (eller 0 om " "den inte är given)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Lägg till STORLEK byte till FIL. STORLEK är given av föregående flagga --" "length." -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "Uppdatera access- och modifikationstider för FIL" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "Exekvera KOMMANDO" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" -msgstr "" +msgstr "Ta bort FIL" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Ogiltigt storlek: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Nummer utanför giltigt intervall: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Negativ storlek: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "status (stat) kunde ej tas på %s" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "begärd fillängd %lu, verklig %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "skapad fil har inte hål" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "Fel vid parsning av tal nära ”%s”" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Okänt datumformat" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ARGUMENT…]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "kan inte öppna ”%s”" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "kan inte flytta (seek)" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "filnamnet innehåller nolltecken" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, 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:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "felaktig mask (nära ”%s”)" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "Okänt fält ”%s”" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "kan inte sätta tid på ”%s”" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "kan inte trunkera ”%s”" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "kommando misslyckades: %s" -#: tests/genfile.c:781 -#, fuzzy, c-format +#: tests/genfile.c:772 +#, c-format msgid "cannot stat `%s'" -msgstr "kan inte trunkera ”%s”" +msgstr "kan inte ta status på ”%s”" -#: tests/genfile.c:785 -#, fuzzy, c-format +#: tests/genfile.c:776 +#, c-format msgid "cannot remove directory `%s'" -msgstr "kan inte sätta tid på ”%s”" +msgstr "kan inte ta bort katalogen ”%s”" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "kan inte ta bort ”%s”" @@ -2947,6 +2962,9 @@ msgstr "Kommandot avslutade\n" msgid "--stat requires file names" msgstr "--stat kräver filnamn" +#~ msgid "OPTION" +#~ msgstr "FLAGGA" + #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: Parameter från ARGP_HELP_FMT måste vara positiv" diff --git a/po/tar.pot b/po/tar.pot index 1201c8e1..25d2a369 100644 --- a/po/tar.pot +++ b/po/tar.pot @@ -3,13 +3,13 @@ # This file is distributed under the same license as the GNU tar package. # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR. # -#: src/create.c:1599 +#: src/create.c:1598 #, fuzzy msgid "" msgstr "" -"Project-Id-Version: GNU tar 1.30\n" +"Project-Id-Version: GNU tar 1.32\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\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" @@ -94,7 +94,7 @@ msgid "give a short usage message" msgstr "" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "" @@ -229,12 +229,12 @@ msgstr "" msgid "^[nN]" msgstr "" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "" @@ -242,11 +242,11 @@ msgstr "" #. 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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "" -#: gnu/version-etc.c:86 +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -494,189 +494,189 @@ msgstr "" msgid "Cannot execute remote shell" msgstr "" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 msgid "Manipulate a tape drive, accepting commands from a remote process" msgstr "" -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "" -#: src/buffer.c:967 +#: src/buffer.c:969 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "" msgstr[1] "" -#: src/buffer.c:988 +#: src/buffer.c:990 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "" msgstr[1] "" -#: src/buffer.c:1075 +#: src/buffer.c:1077 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "" -#: src/buffer.c:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "" -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -684,274 +684,274 @@ msgid "" " y or newline Continue operation\n" msgstr "" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr "" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr "" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "" -#: src/buffer.c:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "" -#: src/buffer.c:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "" -#: src/compare.c:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "" -#: src/compare.c:480 +#: src/compare.c:479 #, c-format msgid "%s: Unknown file type '%c', diffed as normal file" msgstr "" -#: src/compare.c:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "" -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "" -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "" -#: src/compare.c:620 +#: src/compare.c:619 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "" msgstr[1] "" -#: src/compare.c:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "" -#: src/create.c:74 +#: src/create.c:73 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "" -#: src/create.c:263 +#: src/create.c:262 #, c-format msgid "value %s out of %s range %s..%s; substituting %s" msgstr "" -#: src/create.c:269 +#: src/create.c:268 #, c-format msgid "value %s out of %s range %s..%s" msgstr "" -#: src/create.c:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, c-format msgid "%s: file name is too long (max %d); not dumped" msgstr "" -#: src/create.c:616 +#: src/create.c:615 #, c-format msgid "%s: file name is too long (cannot be split); not dumped" msgstr "" -#: src/create.c:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "" -#: src/create.c:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "" -#: src/create.c:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "" -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "" -#: src/extract.c:320 +#: src/extract.c:319 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "" -#: src/extract.c:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "" @@ -974,7 +974,7 @@ msgstr "" msgid "%s: Cannot extract -- file is continued from another volume" msgstr "" -#: src/extract.c:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "" @@ -1003,22 +1003,22 @@ msgstr "" msgid "Cannot rename %s to %s" msgstr "" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "" @@ -1142,371 +1142,371 @@ msgstr "" msgid "%s: Cannot remove" msgstr "" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "" #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, 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:817 +#: src/list.c:818 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "" -#: src/list.c:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "" -#: src/list.c:852 +#: src/list.c:853 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "" -#: src/list.c:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "" -#: src/list.c:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr "" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr "" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "" -#: src/names.c:72 +#: src/names.c:71 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "" -#: src/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "" -#: src/names.c:87 +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" msgstr "" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" msgstr "" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "" -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" msgstr "" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" msgstr "" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" msgstr "" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" msgstr "" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "" -#: src/names.c:1717 +#: src/names.c:1747 msgid "" "Using -C option inside file list is not allowed with --listed-incremental" msgstr "" -#: src/names.c:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "" -#: src/tar.c:88 +#: src/tar.c:87 #, c-format msgid "Options '%s' and '%s' both want standard input" msgstr "" -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1699,7 +1699,7 @@ msgstr "" msgid "extract files to standard output" msgstr "" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "" @@ -1735,7 +1735,7 @@ msgstr "" msgid "use FILE to map file owner GIDs and names" msgstr "" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "" @@ -1934,7 +1934,7 @@ msgstr "" msgid "Archive format selection:" msgstr "" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "" @@ -2016,117 +2016,117 @@ msgstr "" msgid "filter through PROG (must accept -d)" msgstr "" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "" -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" msgstr "" -#: src/tar.c:697 +#: src/tar.c:698 msgid "follow hard links; archive and dump the files they refer to" msgstr "" -#: src/tar.c:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" msgstr "" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2134,413 +2134,422 @@ msgid "" "accepted" msgstr "" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "" -#: src/tar.c:765 +#: src/tar.c:766 msgid "set name quoting style; see below for valid STYLE values" msgstr "" -#: src/tar.c:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" msgstr "" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" msgstr "" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "" -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "" -#: src/tar.c:2066 +#: src/tar.c:2075 #, c-format msgid "Options '-[0-7][lmh]' not supported by *this* tar" msgstr "" -#: src/tar.c:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "" -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "" -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "" -#: src/tar.c:2424 +#: 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" msgstr "" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "" -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "" -#: src/update.c:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "" msgstr[1] "" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "" -#: src/xheader.c:677 +#: src/xheader.c:695 #, c-format msgid "Extended header length %*s is out of range" msgstr "" -#: src/xheader.c:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, 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:1053 +#: src/xheader.c:1071 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "" -#: src/xheader.c:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "" -#: src/checkpoint.c:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "" @@ -2548,7 +2557,7 @@ msgstr "" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "" @@ -2557,227 +2566,227 @@ msgstr "" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" msgstr "" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "" -#: tests/genfile.c:168 -msgid "OPTION" +#: tests/genfile.c:163 +msgid "N" msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." msgstr "" -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" msgstr "" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "" -#: tests/genfile.c:781 +#: tests/genfile.c:772 #, c-format msgid "cannot stat `%s'" msgstr "" -#: tests/genfile.c:785 +#: tests/genfile.c:776 #, c-format msgid "cannot remove directory `%s'" msgstr "" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "" diff --git a/po/tr.gmo b/po/tr.gmo index c6be36e356fc8ea409a555d23d0e4a23b25e8aca..7caf2e82b5d9dde18e2e4375b6d90471f8b803e9 100644 GIT binary patch delta 12232 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 delta 12488 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 avax8h$TEFCcGtu0u70lGn;p08wgLbKW&_y( diff --git a/po/tr.po b/po/tr.po index 020d7755..b7eb5539 100644 --- a/po/tr.po +++ b/po/tr.po @@ -3,12 +3,12 @@ # This file is distributed under the same license as the tar package. # Nilgün Belma Bugüner <nilgun@buguner.name.tr>, 2001,..., 2007. # Volkan Gezer <vlkngzr@gmail.com>, 2013, 2017. -#: src/create.c:1599 +#: src/create.c:1598 msgid "" msgstr "" "Project-Id-Version: tar 1.29\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" "PO-Revision-Date: 2017-04-28 15:25+0100\n" "Last-Translator: Volkan Gezer <volkangezer@gmail.com>\n" "Language-Team: Turkish <gnu-tr-u12a@lists.sourceforge.net>\n" @@ -99,7 +99,7 @@ msgid "give a short usage message" msgstr "kısa bir kullanım iletisi gösterilir" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "İSİM" @@ -234,12 +234,12 @@ msgstr "^[eEyY]" msgid "^[nN]" msgstr "^[hHnN]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "%s (%s) tarafından paketlenmiş\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "%s tarafından paketlenmiş\n" @@ -247,11 +247,11 @@ 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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "(C)" -#: gnu/version-etc.c:86 +#: gnu/version-etc.c:85 #, fuzzy msgid "" "\n" @@ -529,189 +529,189 @@ msgstr "Uzak kabuk için dosyalar yönlendirilemiyor" msgid "Cannot execute remote shell" msgstr "Uzak kabuk çalıştırılamıyor" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Arama yönü kapsamdışı" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "Geçersiz arama yönü" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "Geçersiz arama başlangıcı" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Arama başlangıcı kapsamdışı" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "Geçersiz bayt sayısı" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "Bayt aralığı aralık dışında" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "Erken dosya sonu" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "Geçersiz işlem kodu" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "İşlem desteklenmiyor" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Beklenmeyen argümanlar" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 msgid "Manipulate a tape drive, accepting commands from a remote process" msgstr "Uzak bir işlem komutları kabul eden, bir kaset sürücüsü değiştir" -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "SAYI" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "hata ayıklama seviyesini ayarla" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "DOSYA" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "hata ayıklama çıktı dosyasının adını ayarla" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "%s açılamıyor" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "argüman sayısı çok fazla" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Bozuk komut" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Bu bir tar arşivi gibi görünmüyor" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Okunan toplam bayt" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Yazılan toplam bayt" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "Silinen toplam bayt" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(boru)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "Uçbirimden arşiv içeriğini okuma reddediliyor (-f seçeneği eksik?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "Uçbirime arşiv içeriğini yazma reddediliyor (-f seçeneği eksik?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "record_size için geçersiz değer" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Arşiv ismi verilmemiş" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "stdG/stdÇ arşivi doğrulanamaz" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Aeşiv sıkıştırılmış. %s seçeneğini kullanın" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Sıkıştırılmış arşivler güncellenemez" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "Bandın başlangıcında, şimdilik çıkıyor" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Çok hata var, çıkıyor" -#: src/buffer.c:967 +#: src/buffer.c:969 #, 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:988 +#: src/buffer.c:990 #, 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:1075 +#: src/buffer.c:1077 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:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek bir kaydın sınırında durmadı" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: geçersiz bölüm numarası içeriyor" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Bölüm numarası kapsamdışı" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, 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:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "Kullanıcı cevabı beklenirken dosya sonuna gelindi" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "UYARI: Arşiv eksik" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -722,276 +722,276 @@ msgstr "" " q Uygulama sonlandırılır\n" " y veya <enter> İşlem sürdürülür\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! bir alt kabuk açılır\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? Bu listeyi basar\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Yeni bölüm yok; çıkıyor.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "Dosya ismi belirtilmemiş. Tekrar deneyin.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Girdi geçersiz, Yardım için ? yazın.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "%s komutu başarısız" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s bu bölümde devam etmiyor" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, 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:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s yanlış uzunluk (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Bu hacim sıranın dışında (% s -% s =% s)" -#: src/buffer.c:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "Arşiv etiketi %s ile eşleşmiyor" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "%s bölümü %s ile eşleşmiyor" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, 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:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "yazma bir blok sınırında bitmiyor" -#: src/compare.c:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "İçerikler farklı" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Arşivde beklenmeyen dosya sonu" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Dosya türleri farklı" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Kipleri farklı" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Kullanıcı-kimlikler farklı" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "Grup-kimlikler farklı" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Değişiklik zamanları farklı" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Uzunlukları farklı" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "%s'e bağlı değil" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Sembolik bağlar farklı" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Aygıt numaraları farklı" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Doğrulama " -#: src/compare.c:480 +#: src/compare.c:479 #, 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:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "Arşivdeki dosya isimleri dosya yolu içermiyor." -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "Arşiv dönüştürülmüş dosya adları içeriyor." -#: src/compare.c:546 +#: src/compare.c:545 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:620 +#: src/compare.c:619 #, 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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "%s de tek başına sıfır bloğu" -#: src/create.c:74 +#: 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:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Negatif sekizlik başlık üretiliyor" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, 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:616 +#: src/create.c:615 #, 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:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: bağ ismi çok uzun; dökümlenmedi" -#: src/create.c:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, 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:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "içerik dökümlenmedi" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Bilinmeyen dosya türü; dosya yoksayıldı" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "%s için bağlar kayıp." -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: dosya değişmedi; dökümlenmedi" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: dosya arşivdir; dökümlenmedi" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "dizin dökümlenmedi" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: dosya okundu olarak imlendi" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: soket yoksayıldı" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: kapı yoksayıldı" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Sonraki başlığa atlanıyor" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Arşivden başlık-olmayan siliniyor" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: makul olmayan eski tarih damgası %s" -#: src/extract.c:320 +#: src/extract.c:319 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: zaman damgası %s %s s gelecekte" -#: src/extract.c:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Dizin oluşturulurken anlaşılamayan uyumsuzluk" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: varolan dosya atlanıyor" @@ -1014,7 +1014,7 @@ msgstr "Sembolik bağlar, sabit bağlar olarak çıkarılmaya çalışılıyor" 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:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Umulmadık uzun isim başlığı" @@ -1043,22 +1043,22 @@ msgstr "%s: Bu dosyayı yedeklemek mümkün olmadı" msgid "Cannot rename %s to %s" msgstr "%s ismi %s olarak değiştirilemez" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Dizinin eski adı %s idi" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: Dizin yeni" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "%s: dizin farklı bir dosya sisteminde; dökümlenmedi" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Dizin adı değiştirilmişti" @@ -1184,35 +1184,35 @@ msgstr "%s: %s siliniyor\n" msgid "%s: Cannot remove" msgstr "%s: Kaldırılamaz" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: Geçiliyor" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "blok %s: ** NUL bloku **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "blok %s: ** Dosya Sonu **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "blok %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1220,303 +1220,303 @@ msgstr "" "ediliyor" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, 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:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "Arşiv atıl base-64 başlıklar içeriyor" -#: src/list.c:852 +#: src/list.c:853 #, 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:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, 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:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " bağı -> %s \n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " bilinmeyen dosya türü %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Uzun Bağ--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Uzun İsim--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Bölüm Başlığı--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Devamı bayt %s de--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Oluşturulan dizin:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "%s %s olarak değiştiriliyor\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: İsmi %s olarak değiştirilemez" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "Gerisin geriye %s %s olarak değiştiriliyor\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: Dosya okunamadan kaldırıldı" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "alt süreç" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "süreçlerarası kanal" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "Yerel dosya adı seçimi:" -#: src/names.c:72 +#: src/names.c:71 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/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "DİZİN" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "DİZİN dizinine geçilir" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "çıkarılacak ya da oluşturulacak isimler DOSYAdan alınır" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "" "-T boş karakter sonlandırmalı isimleri okur, --verbatim-files-from anlamına " "gelir" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "önceki --null seçeneği etkisini devre dışı bırak" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "girdi dosyası veya üye adlarında tırnakları kaldır (varsayılan)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "girdi dosyası veya üye adlarında tırnakları kaldırma" -#: src/names.c:87 +#: src/names.c:86 #, fuzzy msgid "-T reads file names verbatim (no escape or option handling)" msgstr "-T dosya adlarını harfiyen okur (seçenek işleme yok)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "" "-T çizgi ile başlayan dosya adlarını seçenek olarak kabul eder (varsayılan)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "ŞABLON" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "belirtilen ŞABLONa uyan dosyalar hariç tutulur" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "DOSYAdaki şablonlara uyan isimler hariç tutulur" -#: src/names.c:96 +#: src/names.c:95 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/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "CACHEDIR.TAG içeren dizinlerin altındaki herşey hariç tutulur" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "CACHEDIR.TAG içeren dizinler hariç tutulur" -#: src/names.c:104 +#: src/names.c:103 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/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "mevcutsa, DOSYAdan her dizin için dışta tutulma kalıbını oku" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" msgstr "" "mevcutsa, DOSYAdan her dizin ve alt dizini için dışta tutulma kalıbını oku" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "DOSYA içeren dizinlerin altındaki herşey hariç tutulur" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "DOSYA içeren dizinler hariç tutulur" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "sürüm denetimi sistem dizinlerini hariç tut" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "VCS yoksayma dosyalarından dışta tutma kalıplarını oku" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "yedek ve kilit dosyalarını hariç tut" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "dizinlerin alt dizinlerine inilir (öntanımlı)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "dizinlerde özdevinimli olarak azalan sıralamadan kaçınılır" -#: src/names.c:130 +#: src/names.c:129 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/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "dosya isminin başlangıcına uyan kalıplar" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "" "bir '/' işaretinden sonra şablonla eşleşen kalıplar (dışlama için öntanımlı)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "harf büyüklükleri önemsenmez" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "harf büyüklüklerine duyarlı eşleşme (öntanımlı)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "genelleme kalıpları kullanılır (dışlama için öntanımlı)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "birebir dizge eşleme" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "'/' ile eşleşen genelleme kalıpları (dışlama için öntanımlı)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "'/' ile eşleşmeyen genelleme kalıpları" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" msgstr "" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" msgstr "" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" msgstr "" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "komut satırı" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: %s dosyasından istenen dosya listesi zaten %s dosyasından okundu" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "'%s' dizgesi ayrılamıyor: %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: okunan dosya ismi boş karakter içeriyor" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "Kalıp eşleme karakterleri dosya isimlerinde kullanılmış" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1524,48 +1524,48 @@ 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:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: Arşivde yok" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Arşivde bulunması gerekirken yok" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "Arşiv etiketi uyumsuzluğu" -#: src/names.c:1717 +#: src/names.c:1747 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:1723 +#: src/names.c:1753 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:88 +#: src/tar.c:87 #, 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:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Geçersiz arşiv biçimi" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "GNU özellikleri ile uyumsuz arşiv biçimi" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1782,7 +1782,7 @@ msgstr "Çıktı akımını seçiniz:" msgid "extract files to standard output" msgstr "dosyalar standart çıktıya çıkarılır" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "KOMUT" @@ -1818,7 +1818,7 @@ msgstr "sahip kullanıcı kimliği ve adlarını eşlemek için DOSYA kullan" msgid "use FILE to map file owner GIDs and names" msgstr "sahip grup kimliği ve adlarını eşlemek için DOSYA kullan" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "DOSYA-TARİHİ" @@ -2030,7 +2030,7 @@ msgstr "okunmuş olarak yeniden bloklanır (4.2 BSD boruları için)" msgid "Archive format selection:" msgstr "Arşiv biçimi seçimi:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "BİÇİM" @@ -2114,62 +2114,62 @@ msgstr "UYG" msgid "filter through PROG (must accept -d)" msgstr "arşivi UYG üzerinden geçirir (UYG -d kabul etmeli)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Yerel dosya seçimi:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "arşiv oluşturulurken yerel dosya sisteminde kalınır" -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "dosya isimlerinin başındaki '/' işaretlerini ayıklama" -#: src/tar.c:695 +#: src/tar.c:696 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:697 +#: src/tar.c:698 msgid "follow hard links; archive and dump the files they refer to" msgstr "" "sembolik bağları izle; hedeflerindeki dosyaları arşivle ve şuraya atıfta " "bulunan dosyaları dökümle" -#: src/tar.c:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "ÜYE-İSMİ" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "arşivi okurken üye MEMBER-NAME ile başla" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "sadece DOSYA-TARİHİnden daha yeni dosyalar saklanır" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "TARİH" -#: src/tar.c:704 +#: src/tar.c:705 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:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "DENETİM" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "kaldırılmadan önce DENETİM sürümü seçilerek yedeklenir" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "DİZGE" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2177,59 +2177,59 @@ 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:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Dosya ismi dönüşümleri:" -#: src/tar.c:715 +#: src/tar.c:716 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:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "İFADE" -#: src/tar.c:718 +#: src/tar.c:719 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:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Bilgilendirme çıktısı:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "işlenen dosyalar ayrıntılı listelenir" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "ANAHTAR SÖZCÜK" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "uyarı denetimi" -#: src/tar.c:731 +#: src/tar.c:732 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:733 +#: src/tar.c:734 msgid "ACTION" msgstr "İŞLEM" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "her kontrol noktasında İŞLEM çalıştır" -#: src/tar.c:737 +#: src/tar.c:738 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:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "SiNYAL" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2240,87 +2240,87 @@ 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:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "dosya değişiklik zamanlarını UTC'ye göre bas" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "tüm çözünürlüğü kullanarak dosya zamanını bas" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "ayrıntılı çıktı DOSYAya gönderilir" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "her iletide arşiv içindeki blok sayısı gösterilir" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "her eylemden önce doğrulama istenir" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "tar öntanımlıları gösterilir" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "Anlık görüntü dosyası alanları için geçerli aralıkları göster" -#: src/tar.c:759 +#: src/tar.c:760 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:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "dönüşümden sonra dosya ve arşiv isimlerini gösterir" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "ŞEKİL" -#: src/tar.c:765 +#: src/tar.c:766 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:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "DİZGEdeki sarmalama karakterlerine ek olarak" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "DİZGEdeki karakterler için sarmalamayı iptal eder" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Uyumluluk seçenekleri:" -#: src/tar.c:777 +#: src/tar.c:778 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:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Diğer seçenekler:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "bozuculuk olasılığı olan bazı seçeneklerin kullanımı iptal edilir" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "'%s', '%s' ile kullanılamaz" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" @@ -2328,40 +2328,40 @@ msgstr "" "Birden fazla '-Acdtrux', '--delete' veya '--test-label' seçeneği " "belirtemezsiniz" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Sıkıştırma seçenekleri çelişiyor" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Bilinmeyen sinyal ismi: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "Tarih örnekleri dosyası bulunamadı" -#: src/tar.c:1036 +#: src/tar.c:1038 #, 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:1065 +#: src/tar.c:1067 #, 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:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "arşivi %s üzerinden filtrele" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "--quoting-style seçeneği için geçerli argümanlar:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2369,163 +2369,163 @@ msgstr "" "\n" "*Bu* tar için öntanımlılar:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "Geçersiz kullanıcı veya grup kimliği" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Bloklama çarpanı geçersiz" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Kayıt ortamının uzunluğu geçersiz" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "Geçersiz arttırımlı seviye değeri" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Birden fazla eşik tarihi" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "Seyrek sürüm değeri geçersiz" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve='system' seçeneği bu platformda desteklenmiyor" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "--checkpoint değeri bir tamsayı değil" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Seçenekte verilen kip geçersiz" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Sayı geçersiz" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Kayıt uzunluğu geçersiz" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "Kayıt uzunluğu %d nin katları olmalı" -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Elemen sayısı geçersiz" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "Sadece tek bir --to-command seçeneği kullanılabilir" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Hatalı yoğunluk argümanı: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Bilinmeyen yoğunluk: '%c'" -#: src/tar.c:2066 +#: src/tar.c:2075 #, 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:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: dosya konum hatası" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "%s ayrıştırılırken hata oluştu" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[DOSYA]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "%s içinde seçenek olmayan argümanlar" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "TAR_OPTIONS parçalanamıyor: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "Eski seçenek '%c' bir argümanla kullanılır." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "--occurrence bir dosya listesi olmaksızın anlamlı değil" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "Çok sayıda arşiv dosyası '-M' seçeneği gerektirir" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "--listed-incremental olmadan --level anlamsızdır" -#: src/tar.c:2424 +#: 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:2437 +#: 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:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Sıkıştırılmış arşivler doğrulanamaz" -#: src/tar.c:2453 +#: src/tar.c:2462 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:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Sıkıştırılmış arşivler birleştirilemez" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "--clamp-mtime, --mtime ile belirtilmiş bir tarihe ihtiyaç duyuyor" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option sadece POSIX arşivlerinde kullanılabilir" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "--acls sadece POSIX arşivlerinde kullanılabilir" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "--selinux sadece POSIX arşivlerinde kullanılabilir" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "--xattrs sadece POSIX arşivlerinde kullanılabilir" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2533,129 +2533,138 @@ msgstr "" "Üst düzey dizin adı çıkarılamıyor; lütfen açıkça --one-top-level=DİZİN ile " "ayarlayın" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "Hacim uzunluğu kayıt boyutundan daha az olamaz" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Bir boş arşivin oluşturulması ister istemez reddediliyor" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "'-Aru' seçenekleri '-f -' ile uyumsuz" -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "" "Aynı anda '-Acdtrux', '--delete' veya '--test-label' seçeneklerinin sadece " "birini kullanmalısınız" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "Önceki hatalar nedeniyle başarısız durumla çıkılıyor" -#: src/update.c:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Dosya %s baytta kırpılmış" msgstr[1] "%s: Dosya %s baytta kırpılmış" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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 +#: src/xheader.c:173 msgid "Time stamp is out of allowed range" msgstr "Zaman damgası izin verilen aralığın dışında" -#: src/xheader.c:205 +#: src/xheader.c:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "%s şablonu kullanılamıyor" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "%s anahtar sözcüğü çakıştırılamaz" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "Ek başlık bozuk: uzunluk eksik" -#: src/xheader.c:677 +#: src/xheader.c:695 #, 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:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "Ek başlık bozuk: uzunluktan sonra boşluk yok" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "Ek başlık bozuk: eşit işareti eksik" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "Ek başlık bozuk: satırsonu eksik" -#: src/xheader.c:741 +#: src/xheader.c:759 #, 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:1023 +#: src/xheader.c:1041 #, 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:1053 +#: src/xheader.c:1071 #, 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:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Ek başlık bozuk: %s=%s geçersiz" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, 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:1533 +#: src/xheader.c:1551 #, 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:1543 +#: src/xheader.c:1561 #, 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:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s: geçerli bir zaman çıktısı değil" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: bilinmeyen kontrol noktası işlemi" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "yazma" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "okuma" @@ -2663,7 +2672,7 @@ msgstr "okuma" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Yazma sınama yeri %u" @@ -2672,12 +2681,12 @@ msgstr "Yazma sınama yeri %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Okuma sınaması yeri %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2685,94 +2694,98 @@ msgstr "" "genfile, GNU paxutils deneme araçları için veri dosyalarını işleme sokar.\n" "SEÇENEKLER:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Dosya oluşturma seçenekleri:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "BOYUT" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Dosya belirtilen BOYUTta oluşturulur" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Dosyalar standart çıktı yerine İSİM dosyasına yazılır" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "Dosya isimleri DOSYAdan okunur" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T boş karakter sonlandırmalı isimleri okur" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "Dosyayı belirtilen ŞABLON ile doldurur. ŞABLON 'default' veya 'zeros' " "olabilir" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "Seyrek dosyalar için blok boyu" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "Seyrek dosya üretilir. Komut satırının kalanı dosya eşlemini verir." -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "KONUM" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "Veriyi yazmadan önce belirtilen konuma gider" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "Ölümcül olmayan tanı mesajlarını gizle" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Dosya istatistikleri seçenekleri:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "Belirtilen her dosya için stat yapısının içeriğini basar. Öntanımlı BİÇİM: " -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "İcra eşzamanlama seçenekleri:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "SEÇENEK" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "Belirtilen ARGları çalıştır. --checkpoint ile ve --cut, --append, --touch " "seçeneklerinden biri ile birlikte kullanışlıdır" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "Sınama SAYIsı aşıldığında belirtilen eylem uygulanır (aşağıya bakınız)" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "Sonraki --touch seçeneği için tarih ayarlanır" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "İcra edilen sınamalar ve KOMUTun çıkış durumu gösterilir" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2780,131 +2793,131 @@ msgstr "" "Çalıştırma eylemlerini eşzamanlar. Bunlar --checkpoint seçeneği ile " "belirtilen sayı aşıldığında çalıştırılırlar." -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "" "DOSYA --length seçeneği ile belirtilen boyutta kırpılır (belirtilmemişse 0)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "DOSYAya BOYUT bayt eklenir. BOYUT evvelce --length seçeneği ile belirtilir." -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "DOSYAnın değişiklik ve erişim zamanları güncellenir" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "KOMUT çalıştırılır" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" msgstr "" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Geçersiz boyut: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Numara izin verilen aralığın dışında: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Negatif boyut: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) başarısız" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "istenen dosya uzunluğu %lu, asıl %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "oluşturulan dosya seyrek değil" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "Sayı çözümlenirken `%s' civarında hata" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Bilinmeyen tarih biçimi" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ARGÜMANLAR...]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "`%s' açılamıyor" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "konumlanamıyor" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "dosya ismi boş karakter içeriyor" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, 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:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "kalıp yanlış (`%s' yakınında)" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "Bilinmeyen alan `%s'" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "zaman `%s' olarak ayarlanamaz" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "`%s' parçalanamıyor" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "komut başarısız: %s" -#: tests/genfile.c:781 +#: tests/genfile.c:772 #, fuzzy, c-format msgid "cannot stat `%s'" msgstr "`%s' parçalanamıyor" -#: tests/genfile.c:785 +#: tests/genfile.c:776 #, fuzzy, c-format msgid "cannot remove directory `%s'" msgstr "zaman `%s' olarak ayarlanamaz" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "`%s' bağlantısı kesilemiyor" @@ -2944,6 +2957,9 @@ msgstr "Komut sonlandı\n" msgid "--stat requires file names" msgstr "--stat seçeneği dosya isimleri gerektirir" +#~ msgid "OPTION" +#~ msgstr "SEÇENEK" + #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: ARGP_HELP_FMT parametresi pozitif olmalı" diff --git a/po/uk.gmo b/po/uk.gmo index 64e388892776d0d5c8f23f7e37bdc0dfb6a53235..6a1bdb7114aea643159ae4599451cac6388cc594 100644 GIT binary patch delta 14350 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 S5FniQznpXu-t2xiBpm>>UZ=AF delta 13019 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 X!h#DEF3h<w^}?bH3pRT{jz|Xpib5oV diff --git a/po/uk.po b/po/uk.po index fcd998d7..0a16fce7 100644 --- a/po/uk.po +++ b/po/uk.po @@ -2,15 +2,15 @@ # This file is distributed under the same license as the tar package. # Copyright (C) 2017 Free Software Foundation, Inc. # -# Sergey Poznyakoff <gray@gnu.org>, 2005-2010, 2016, 2017 -# Yuri Chornoivan <yurchor@ukr.net>, 2014. -#: src/create.c:1599 +# Sergey Poznyakoff <gray@gnu.org>, 2005-2010, 2016, 2017. +# Yuri Chornoivan <yurchor@ukr.net>, 2014, 2018. +#: src/create.c:1598 msgid "" msgstr "" -"Project-Id-Version: tar 1.29\n" +"Project-Id-Version: tar 1.30\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" -"PO-Revision-Date: 2017-12-17 13:06+0200\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" +"PO-Revision-Date: 2018-06-26 08:31+0200\n" "Last-Translator: Sergey Poznyakoff <gray@gnu.org>\n" "Language-Team: Ukrainian <translation-team-uk@lists.sourceforge.net>\n" "Language: uk\n" @@ -20,6 +20,7 @@ msgstr "" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Lokalize 2.0\n" #: gnu/argmatch.c:134 #, c-format @@ -97,7 +98,7 @@ msgid "give a short usage message" msgstr "вивести коротке повідомлення про використання" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "НАЗВА" @@ -135,29 +136,29 @@ msgid "write error" msgstr "помилка запису" #: gnu/getopt.c:278 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous\n" -msgstr "%s: неоднозначна опція «%s%s»\n" +msgstr "%s: неоднозначний параметр «%s%s»\n" #: gnu/getopt.c:284 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" -msgstr "%s: неоднозначна опція «%s%s»; можливі варіанти:" +msgstr "%s: неоднозначний параметр «%s%s»; можливі варіанти:" #: gnu/getopt.c:319 -#, fuzzy, c-format +#, c-format msgid "%s: unrecognized option '%s%s'\n" -msgstr "%s: невідома опція «%s%s»\n" +msgstr "%s: невідомий параметр «%s%s»\n" #: gnu/getopt.c:345 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" -msgstr "%s: опція «%s%s» не може мати аргументу\n" +msgstr "%s: параметр «%s%s» не може мати аргументу\n" #: gnu/getopt.c:360 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' requires an argument\n" -msgstr "%s: опція «%s%s» вимагає аргументу\n" +msgstr "%s: параметр «%s%s» вимагає аргументу\n" #: gnu/getopt.c:621 #, c-format @@ -232,12 +233,12 @@ msgstr "^[yYтТ]" msgid "^[nN]" msgstr "^[nNнН]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Запаковано %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Запаковано %s\n" @@ -245,12 +246,11 @@ msgstr "Запаковано %s\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: gnu/version-etc.c:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "©" -#: gnu/version-etc.c:86 -#, fuzzy +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -260,12 +260,12 @@ msgid "" "\n" msgstr "" "\n" -"Ліцензія GPLv3+: GNU GPL версії 3 або пізнішої <http://gnu.org/licenses/gpl." -"html>\n" -"Це вільне програмне забезпечення: ви можете змінювати та розповсюджувати " +"Умови ліцензування викладено у GPLv3+: GNU GPL версії 3 або новішій, " +"<https://gnu.org/licenses/gpl.html>\n" +"Це вільне програмне забезпечення: ви можете вільно змінювати і поширювати " "його.\n" -"Не надається ЖОДНИХ ГАРАНТІЙ в межах дозволених правом.\n" -"\n" +"Вам не надається ЖОДНИХ ГАРАНТІЙ, окрім гарантій передбачених " +"законодавством.\n" #. TRANSLATORS: %s denotes an author name. #: gnu/version-etc.c:102 @@ -400,15 +400,14 @@ msgid "%s home page: <%s>\n" msgstr "домашня сторінка %s: <%s>\n" #: gnu/version-etc.c:253 -#, fuzzy, c-format +#, c-format msgid "%s home page: <https://www.gnu.org/software/%s/>\n" -msgstr "домашня сторінка %s: <http://www.gnu.org/software/%s/>\n" +msgstr "домашня сторінка %s: <https://www.gnu.org/software/%s/>\n" #: gnu/version-etc.c:256 -#, fuzzy msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n" msgstr "" -"Загальна допомога щодо використання ПЗ GNU: <http://www.gnu.org/gethelp/>\n" +"Загальна допомога щодо використання ПЗ GNU: <https://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 @@ -530,147 +529,147 @@ msgstr "Переспрямовування файлів для віддален msgid "Cannot execute remote shell" msgstr "Не вдалося запустити віддалену оболонку" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Напрямок зміщення за межами діапазону" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "Помилковий напрям пошуку" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "Помилковий зсув у файлі" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Зміщення за межами діапазону" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "Помилкова кількість байтів" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "Кількість байтів за межами діапазону" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "Передчасне закінчення файла" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "Некоректний код операції" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "Операція не підтримується" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Неочікувані аргументи" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 msgid "Manipulate a tape drive, accepting commands from a remote process" msgstr "Керує стрічковим пристроєм, отримуючи команди від віддаленого процесу" -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "ЧИСЛО" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "встановити рівень налагоджування" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "ФАЙЛ" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "встановити назву файла для виходу налагоджування" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "не вдалося відкрити %s" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "забагато аргументів" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Хибна команда" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Це не схоже на архів tar" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Прочитано байтів загалом" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Записано загалом" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "Загальна кількість вилучених байтів" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(канал)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "" "Відмовляємося читати вміст архіву з термінала (не вказано параметр -f?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "" "Відмовляємося записувати вміст архіву до термінала (пропущено параметр -f?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Недійсне значення record_size" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Не вказано назви архіву" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Неможливо перевіряти архів, записаний до stdout" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "Архів стиснено. Використовуйте параметр %s" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Не можна оновлювати стиснені архіви" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "На початку стрічки, закінчуємо" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Надто багато помилок, виконання перервано" -#: src/buffer.c:967 +#: src/buffer.c:969 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" @@ -678,7 +677,7 @@ msgstr[0] "Розмір запису = %lu блок" msgstr[1] "Розмір запису = %lu блоки" msgstr[2] "Розмір запису = %lu блоків" -#: src/buffer.c:988 +#: src/buffer.c:990 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" @@ -686,39 +685,39 @@ msgstr[0] "Невірне вирівнювання блоку (%lu байт) в msgstr[1] "Невірне вирівнювання блоку (%lu байти) в архіві" msgstr[2] "Невірне вирівнювання блоку (%lu байтів) в архіві" -#: src/buffer.c:1075 +#: src/buffer.c:1077 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "" "Не вдалося переміститись назад у архіві; можливо архів не можна прочитати " "без параметра -i" -#: src/buffer.c:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek не зупинився на межі запису" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: містить некоректний номер тому" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Переповнення номера тому" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "Підготуйте том #%d архіву %s ї натисніть Enter: " -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "Кінець файла, замість очікуваної відповіді" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "ПОПЕРЕДЖЕННЯ: незавершений архів" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -729,66 +728,66 @@ msgstr "" " q Перервати роботу\n" " у або новий рядок Продовжувати\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Викликати оболонку\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? Вивести цю довідку\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Новий том відсутній. Завершення.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "Не вказано назви файла. Спробуйте ще раз.\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Недійсні вхідні дані. Наберіть ? щоб отримати підказку.\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "збій виконання команди «%s»" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s не продовжується у цьому томі" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "" "%s можливо продовжується у цьому томі: заголовок містить обрізану назву" -#: src/buffer.c:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s є неправильним розміром (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "Цей том є за межами послідовності (%s - %s != %s)" -#: src/buffer.c:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "Назви тому відсутня в архіві. Не можна порівняти з %s" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "Етикетка тому %s не співпадає з %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -796,11 +795,11 @@ msgstr "" "%s: назва файла надто довга щоб зберегти її у заголовку тому GNU; назву " "обрізано" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "запис не закінчився на межі блоку" -#: src/compare.c:98 +#: src/compare.c:97 #, c-format msgid "Could only read %lu of %lu byte" msgid_plural "Could only read %lu of %lu bytes" @@ -808,76 +807,76 @@ msgstr[0] "Вдалося прочитати тільки %lu з %lu байта" msgstr[1] "Вдалося прочитати тільки %lu з %lu байтів" msgstr[2] "Вдалося прочитати тільки %lu з %lu байтів" -#: src/compare.c:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Різниця у змісті" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Неочікуваний кінець файла в архіві" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Різниця у типі файла" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Різниця у правах доступу" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Різниця у значенні UID" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "Різниця у значенні GID" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Різниця у часі модифікації" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Різниця у розмірі" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Не є посиланням до %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Різниця у символічному посиланні" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Різниця у номері пристрою" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Перевірка " -#: src/compare.c:480 +#: src/compare.c:479 #, c-format msgid "%s: Unknown file type '%c', diffed as normal file" msgstr "%s: невідомий тип файла «%c», порівняно як звичайний файл" -#: src/compare.c:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "Архів містить назви файлів з вилученими початковими префіксами." # FIXME: base=64? -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "У архіві містяться перетворені назви файлів." -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "Перевірка може не знайти первинних файлів." -#: src/compare.c:620 +#: src/compare.c:619 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" @@ -885,47 +884,47 @@ msgstr[0] "ПОМИЛКА ПЕРЕВІРКИ: знайдено %d некорек msgstr[1] "ПОМИЛКА ПЕРЕВІРКИ: знайдено %d невірних заголовки" msgstr[2] "ПОМИЛКА ПЕРЕВІРКИ: знайдено %d невірних заголовків" -#: src/compare.c:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "Самотній блок нулів, зсув %s" # Не подобається мені це "кешування"... -#: src/create.c:74 +#: src/create.c:73 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: містить мітку каталогу кешування «%s»; %s" -#: src/create.c:263 +#: 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:269 +#: src/create.c:268 #, c-format msgid "value %s out of %s range %s..%s" msgstr "значення %s за межами діапазону типа %s %s..%s" -#: src/create.c:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Створення від'ємних вісімкових заголовків" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, c-format msgid "%s: file name is too long (max %d); not dumped" msgstr "%s: назва файла занадто довга (макс. %d); не архівується" -#: src/create.c:616 +#: src/create.c:615 #, c-format msgid "%s: file name is too long (cannot be split); not dumped" msgstr "%s: назва файла занадто довга (не вдалося розділити); не архівується" -#: src/create.c:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "%s: назва посилання занадто довга; не архівується" -#: src/create.c:1106 +#: src/create.c:1105 #, c-format msgid "%s: File shrank by %s byte; padding with zeros" msgid_plural "%s: File shrank by %s bytes; padding with zeros" @@ -933,79 +932,79 @@ msgstr[0] "%s: Файл скоротився на %s байт; заповнен msgstr[1] "%s: Файл скоротився на %s байти; заповнення нулями" msgstr[2] "%s: Файл скоротився на %s байтів; заповнення нулями" -#: src/create.c:1204 +#: src/create.c:1203 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s: файл знаходиться в іншої файлової системі; не архівується" -#: src/create.c:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "вміст не архівується" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Невідомий тип файла; Файл проігноровано" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "Відсутні деякі посилання до %s." -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: файл не змінено; не архівується" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: файл є архівом; не архівується" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "каталог не архівується" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: файл змінився під час читання" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: сокет проігноровано" # FIXME: door? -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: двері проігноровано" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Перехід до наступного заголовка" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Видалення не-заголовка з архіву" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s: неймовірно стара дата %s" -#: src/extract.c:320 +#: src/extract.c:319 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: мітка часу %s зсунута на %s сек. до майбутнього" -#: src/extract.c:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Неочікувана суперечність під час створення каталогу" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: пропускаємо наявний файл" @@ -1028,7 +1027,7 @@ msgstr "Спроба перетворити символічні посилан msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: не вдалося витягнути -- файл починається в іншому томі" -#: src/extract.c:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Неочікуваний кінець файла у заголовку довгої назви" @@ -1058,22 +1057,22 @@ msgstr "%s: Не вдалося створити резервну копію ц msgid "Cannot rename %s to %s" msgstr "не вдалося перейменувати %s на %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Каталог перейменовано з %s" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: Новий каталог" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "%s: каталог перебуває у іншій файловій системі; дамп не створено" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: каталог перейменовано" @@ -1201,35 +1200,35 @@ msgstr "%s: вилучаємо %s\n" msgid "%s: Cannot remove" msgstr "%s: не вдалося вилучити" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: пропускаємо" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "блок %s: ** Містить нулі **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "блок %s: ** Кінець файла **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "блок %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, c-format msgid "Archive octal value %.*s is out of %s range; assuming two's complement" msgstr "" @@ -1237,17 +1236,17 @@ msgstr "" "вважається, що це є двійкове доповнення" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:817 +#: src/list.c:818 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "Вісімкове значення %.*s знаходиться поза межами діапазону типу %s" # FIXME: base=64? -#: src/list.c:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "Архів містить застарілі заголовки з основою 64" -#: src/list.c:852 +#: src/list.c:853 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "" @@ -1255,146 +1254,145 @@ msgstr "" "типу %s" # FIXME: base-256 -#: src/list.c:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "Значення %s поза допустимими межами типу %s %s..%s" -#: src/list.c:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr "посилання до %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr "невідомий тип файла %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Довге посилання--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Довга назва--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Заголовок тому--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Продовжується з байту %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Створення каталогу:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "Перейменовано %s у %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: не вдалося перейменувати на %s" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "Перейменовано %s назад у %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s: Файл було вилучено перед тим як tar встиг його прочитати" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "процес-нащадок" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "канал між процесами" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "Вибір локальних файлів:" -#: src/names.c:72 +#: src/names.c:71 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "долучити ФАЙЛ до архіву (корисне, якщо його назва починається з -)" -#: src/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "КАТАЛОГ" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "перейти до вказаного каталогу" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "читати назви файлів для додання/видобування з вказаного файла" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "" "файл, вказаний з параметром -T, містить назви, відокремлені нульовими " "символами; вмикає --verbatim-files-from" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "відмінити дію попередньої параметра --null" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "усувати лапки з назв вхідних файлів або файлів в архіві (типово)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "не усувати лапки з назв вхідних файлів або файлів в архіві" -#: src/names.c:87 -#, fuzzy +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" -msgstr "-T вичитує назви файлів буквально (без аналізу опцій)" +msgstr "-T вичитує назви файлів буквально (без екранування або аналізу опцій)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "" "-T вважає слова що починаються з риски опціями (поведінка за замовчуванням)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "ШАБЛОН" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "не обробляти файли, назви яких відповідають вказаному шаблону" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "виключити назви що відповідають шаблонам, вказаним у файлі" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1402,26 +1400,26 @@ msgstr "" "не архівувати файли в каталогах, що містять CACHEDIR.TAG, з винятком самого " "файла" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "не архівувати жодні файли в каталогах, що містять CACHEDIR.TAG" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "не архівувати каталоги, що містять CACHEDIR.TAG" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "" "не архівувати файли в каталогах, що містять ФАЙЛ, з винятком самого файла" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "" "прочитати взірці виключення для кожного з каталогів із файла ФАЙЛ, якщо " "такий існує" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" @@ -1429,74 +1427,74 @@ msgstr "" "прочитати взірці виключення для кожного з каталогів і його підкаталогів із " "файла ФАЙЛ, якщо такий існує" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "не архівувати жодні файли в каталогах, що містять ФАЙЛ" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "не архівувати каталоги, що містять ФАЙЛ" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "не архівувати каталоги систем керування версіями" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "" "прочитати взірці виключення із файлів ігнорування системи керування версіями" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "не архівувати резерві файли та файли блокування" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "рекурсивно проходити каталоги (типово)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "не заходити автоматично у каталоги" -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "" "Керування порівнюванням назв (впливає на взірці як вилучення, так і " "долучення):" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "порівнювати шаблони з назвами файлів починаючи від початку назви" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "відповідність взірцям після усіх '/' (типово для виключення)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "шаблони ігнорують відмінності у регістрі символів" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "шаблони враховують регістр (типово)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "користатися шаблонами (типово для вилучення)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "порівнювати назви буквально" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "шаблони стосуються '/' (типово для виключення)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "шаблони не стосуються до '/'" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " @@ -1507,45 +1505,45 @@ msgstr "" "впливають лише на аргументи що розташовані після них. Їх використання " "наприкінці рядка немає сенсу. Будь ласка, розташуйте ці опції належним чином." -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" msgstr "-C %s не має дії" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" msgstr "--%s %s не має дії" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" msgstr "--%s не має дії" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "рядок команди" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: список файлів, запит щодо якого надіслано з %s, вже прочитано з %s" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "не вдалося розділити рядок '%s': %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: прочитана назва файла містить нульовий символ" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "Назви файлів містять символи-шаблони" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1553,48 +1551,48 @@ msgstr "" "Користайтеся параметром --wildcards аби увімкнути шаблони, або параметром --" "no-wildcards, щоб позбутися цього повідомлення" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: Не знайдено в архіві" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s: Потрібну копію у архіві не знайдено" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "Незгідність назви тому" -#: src/names.c:1717 +#: src/names.c:1747 msgid "" "Using -C option inside file list is not allowed with --listed-incremental" msgstr "" "Використання параметра -C у переліку файлів разом з параметром --listed-" "incremental не дозволяється" -#: src/names.c:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "" "Разом з --listed-incremental можна використовувати лише один параметр -C" -#: src/tar.c:88 +#: src/tar.c:87 #, c-format msgid "Options '%s' and '%s' both want standard input" msgstr "Обидва параметри, «%s» і «%s», вимагають доступу до стандартного входу" -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: некоректний формат архіву" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "Формат архіву є несумісним з розширеними властивостями GNU" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1818,7 +1816,7 @@ msgstr "Вибір вихідного потоку:" msgid "extract files to standard output" msgstr "видобувати файли у стандартний вивід" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "КОМАНДА" @@ -1854,7 +1852,7 @@ msgstr "читати мапу трансляції імен користувач msgid "use FILE to map file owner GIDs and names" msgstr "читати мапу трансляції імен груп та значень GID з ФАЙЛА" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "ДАТА-АБО-ФАЙЛ" @@ -2069,7 +2067,7 @@ msgstr "розбивати на блоки під час читання (для msgid "Archive format selection:" msgstr "Вибір формату архіву:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "ФОРМАТ" @@ -2153,59 +2151,59 @@ msgstr "ПРОГРАМА" msgid "filter through PROG (must accept -d)" msgstr "використовувати ПРОГРАМУ для стиснення/розтискання архіву" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Вибір файлів:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "залишатися у локальної файлової системі під час створення архіву" -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "не вилучати початкову похилу риску, '/', з назв файлів" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" msgstr "Йти за символьними посиланнями: долучати файли, на яки вони вказують" -#: src/tar.c:697 +#: src/tar.c:698 msgid "follow hard links; archive and dump the files they refer to" msgstr "Йти за жорсткими посиланнями: долучати файли, на яки вони вказують" -#: src/tar.c:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "НАЗВА-ФАЙЛУ" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "починати читання архіву з вказаного файла" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "долучати тільки такі файли, що є новіші за вказану дату або файл" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "ДАТА" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "порівнювати тільки дату і час зміни даних" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "РЕЖИМ" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "перед вилученням створювати резервні файли у вказаному режимі" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "РЯДОК" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2213,59 +2211,59 @@ msgstr "" "перед вилученням створювати резервні файли з указаним суфіксом (типово '~', " "якщо не перевизначено змінною середовища SIMPLE_BACKUP_SUFFIX)" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Перетворювання назв файлів:" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "вилучяти вказане ЧИСЛО компонентів з початку назв файлів" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "ВИРАЗ" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "перетворювати назви файлів за допомогою вказаного виразу заміни" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Інформативний вивід:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "виводити докладну інформацію про оброблені файли" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "КЛ.-СЛОВО" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "керування попередженнями" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "виводити контрольне повідомлення кожне ЧИСЛО записів (типово 10)" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "ДІЯ" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "виконати вказану дію у контрольному пункті" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "виводити повідомлення якщо до архіву було додано не всі посилання" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "СИГНАЛ" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2276,35 +2274,35 @@ msgstr "" "- друкувати статистику по отриманню цього сигналу; дозволеними сигналами є " "SIGHUP, SIGQUIT, SIGINT, SIGUSR1 і SIGUSR2, а також ці назви без префікса SIG" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "друкувати час модифікації файлів у UTC" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "друкувати час модифікації файлів у повній вирізняльної здатності" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "виводити детальну інформацію у ФАЙЛ" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "попереджувати кожне повідомлення номером блоку в архіві" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "Запитувати підтвердження кожної дії" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "вивести типові налаштування" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "вивести коректні діапазони для полів файлів-знімків" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2312,31 +2310,31 @@ msgstr "" "під час виведення змісту або видобування файлів друкувати назви каталогів що " "не відповідають критеріям пошуку" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "показувати перетворені назви файлів" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "СТИЛЬ" -#: src/tar.c:765 +#: src/tar.c:766 msgid "set name quoting style; see below for valid STYLE values" msgstr "встановити стиль цитування; дозволені стилі див. нижче" -#: src/tar.c:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "цитувати також вказані символи" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "вимкнути цитування вказаних символів" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Параметри сумісності:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" @@ -2344,22 +2342,22 @@ msgstr "" "під час створення архіву, те ж саме, що і --old-archive. Під час " "видобування, те ж саме, що --no-same-owner" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Інші параметри:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "заборонити користування деякими потенційно небезпечними параметрами" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "'%s' не можна використовувати разом з '%s'" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" @@ -2367,40 +2365,40 @@ msgstr "" "Не можна вказувати більш одного параметра з набору '-Acdtrux', '--delete' " "та '--test-label'" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Конфлікт параметрів стискання" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Невідомий тип файла %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "Не знайдено файл-зразок дати" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "Використовується %s замість невідомого формату дати %s" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "Параметр %s: дату «%s» сприйнято як %s" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "фільтрувати архів через %s" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "Допустимими аргументами параметра --quoting-style є:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2408,120 +2406,120 @@ msgstr "" "\n" "Типові налаштування *цієї* копії програми:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "Некоректний ідентифікатор власника або групи" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Неправильний фактор блокування" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Неправильна довжина стрічки" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "Недійсне значення для рівня архівації" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Більш ніж одна гранична дата" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "Недійсна версія формату розсіяних файлів" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "параметр --atime-preserve='system' не підтримується на цій платформі" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "аргумент --checkpoint мусить бути цілим числом" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Некоректний формат прав доступу" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Невірне число" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Некоректний розмір запису" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "Розмір запису має ділитися на %d." -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Некоректна кількість елементів" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "Дозволяється лише одна параметр --to-command" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Некоректний аргумент вказання густини: «%s»" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Невідома густина: '%c'" -#: src/tar.c:2066 +#: src/tar.c:2075 #, c-format msgid "Options '-[0-7][lmh]' not supported by *this* tar" msgstr "Підтримки параметрів '-[0-7][lmh]' у *цій* версії tar не передбачено" -#: src/tar.c:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: місце помилки" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "помилка розбору %s" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[ФАЙЛ]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "неопціональний аргумент для %s" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "не вдалося розділити значення TAR_OPTIONS: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "Параметр старого стилю «%c» потребує аргументу." -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "вказання --occurrence не має сенсу без вказання переліку файлів" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "Для визначення декількох файлів архівів слід використати параметр '-M'" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "Використання --level разом з --listed-incremental не має сенсу" -#: src/tar.c:2424 +#: 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)" @@ -2529,46 +2527,46 @@ msgstr[0] "%s: Мітка тому є надто довга (обмеження msgstr[1] "%s: Мітка тому є надто довга (обмеження в %lu байти)" msgstr[2] "%s: Мітка тому є надто довга (обмеження в %lu байтів)" -#: src/tar.c:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "Не можна перевіряти багатотомні архіви" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Не можна перевіряти стиснені архіви" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "Не можна використовувати стиснення багатотомних архівів" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Не можна з'єднувати стиснені архіви" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "--clamp-mtime вимагає подання дати з опцією --mtime" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "" "Параметр --pax-option використовується тільки з архівами у форматі POSIX" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "Параметр --acls можна використовувати лише для архівів у форматі POSIX" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "" "Параметр --selinux можна використовувати лише для архівів у форматі POSIX" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "" "Параметр --xattr можна використовувати лише для архівів у форматі POSIX" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2576,30 +2574,30 @@ msgstr "" "Не вдалося визначити назву каталогу верхнього рівня. Будь ласка, вкажіть її " "явним чином за допомогою параметра --one-top-level=КАТАЛОГ" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "Розмір тому не може бути більшим від розміру запису" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "Полохливо відмовляюся створювати пустий архів" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "Параметри '-Aru' несумісні з '-f -'" -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "" "Слід вказати один з параметрів, '-Acdtrux', '--delete' або '--test-label'" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "Невдачне завершення внаслідок попередніх помилок" -#: src/update.c:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" @@ -2607,103 +2605,112 @@ msgstr[0] "%s: Файл скоротився на %s байт" msgstr[1] "%s: Файл скоротився на %s байти" msgstr[2] "%s: Файл скоротився на %s байтів" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "Шаблон %s забороняється уживати" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Не можна перевизначити ключове слово %s" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "Невірно сформований розширений заголовок: бракує довжини" -#: src/xheader.c:677 +#: src/xheader.c:695 #, c-format msgid "Extended header length %*s is out of range" msgstr "Довжина розширеного заголовку %*s перебуває за межами діапазону" -#: src/xheader.c:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "" "Невірно сформований розширений заголовок: відсутній пробіл після довжини" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "Невірно сформований розширений заголовок: відсутній знак рівності" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "Невірно сформований розширений заголовок: відсутній знак нового рядка" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "Ігноруємо невідоме ключове слово розширеного заголовка, «%s»" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, 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:1053 +#: src/xheader.c:1071 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "" "Значення розширеного заголовку %s=%s лежить поза допустимими межами типу %s.." "%s" -#: src/xheader.c:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "Невірно сформований розширений заголовок: некоректна змінна %s=%s" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "Невірно сформований розширений заголовок: зайвий %s=%s" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "" "Невірно сформований розширений заголовок: змінна %s: неочікуваний розділювач " "%c" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "Невірно сформований розширений заголовок %s: непарна кількість значень" -#: src/checkpoint.c:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s: некоректне обмеження часу очікування" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: незнана дія" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "запис" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "читання" @@ -2711,7 +2718,7 @@ msgstr "читання" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Контрольна відмітка запису %u" @@ -2720,12 +2727,12 @@ msgstr "Контрольна відмітка запису %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Контрольна відмітка читання %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2734,95 +2741,99 @@ msgstr "" "paxutils\n" "Перелік параметрів:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Параметри створювання файлів:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "РОЗМІР" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Створити файл заданого розміру" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Писати у вказаний файл, замість стандартного виводу" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "Читати назви файлів з вказаного файла" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "" "файл, вказаний з параметром -T, містить назви, відокремлені нульовими " "символами" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "Взірець заповнення файла: 'default' (типовий) або 'zeros' (заповнення нулями)" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "Розмір блока розсіяного файла" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "Створити розсіяний файл. Решта аргументів дає мапу файла." -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "ЗСУВ" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "Перед записом даних перейти до вказаного зсуву в файлі" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "Не видавати повідомлення про не фатальні помилки" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Статистика файлів:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "Виводити вміст структури stat для кожного файла. Типовий формат: " -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Синхронне виконання:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "ПАРАМЕТР" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "Виконати вказану команду. Для використання з параметрами --cut, --append, --" "touch або --unlink" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "" "Виконати вказану операцію (див. нижче) по досягненню контрольної відмітки" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "Встановлює дати для наступної параметра --touch" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "Друкувати виконані операції і код завершення команди" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2830,7 +2841,7 @@ msgstr "" "Операції синхронного виконання. Виконуються по досягненню контрольної " "відмітки, вказаної параметром --checkpoint. " -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2838,125 +2849,125 @@ msgstr "" "Обрізати файл до розміру, вказаного попередньою параметром --length (до 0, " "якщо її не було вказано)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Додати до файла кількість байтів, вказану попередньою параметром --length." -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "Поновити час доступу та модифікації файла" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "Виконати КОМАНДУ" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" msgstr "Вилучити ФАЙЛ" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Некоректний розмір: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Число поза допустимими межами: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Від'ємний розмір: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "збій виконання stat(%s)" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "замовлений розмір файла %lu, справжній -- %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "створений файл не є розсіяним" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "Помилка розбору числа біля «%s»" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Невідомий формат дати" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[АРГУМЕНТИ...]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "не вдалося відкрити «%s»" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "не вдалося виконати lseek" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "назва файла містить нульовий символ" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "" "неможливо створювати розсіяні файли на стандартному виводі; користайтеся " "параметром --file" -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "некоректна маска (біля «%s»)" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "Невідоме поле «%s»" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "не вдалося встановити часову позначку файла «%s»" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "не вдалося обрізати «%s»" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "помилка команди: %s" -#: tests/genfile.c:781 +#: tests/genfile.c:772 #, c-format msgid "cannot stat `%s'" msgstr "не вдається виконати stat «%s»" -#: tests/genfile.c:785 +#: tests/genfile.c:776 #, c-format msgid "cannot remove directory `%s'" msgstr "не вдалося видалити каталог «%s»" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "не вдалося вилучити «%s»" @@ -2996,6 +3007,9 @@ msgstr "Команда завершилася\n" msgid "--stat requires file names" msgstr "параметр --stat вимагає назв файлів" +#~ msgid "OPTION" +#~ msgstr "ПАРАМЕТР" + #, fuzzy #~| msgid "%.*s: ARGP_HELP_FMT parameter requires a value" #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" diff --git a/po/vi.gmo b/po/vi.gmo index 7ff4e49a8843a48dcf379ec632635cfe3cf2fd93..777f9411252129ed0ee0fbb5abf8eba62205bd72 100644 GIT binary patch delta 15036 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 delta 12956 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 V9p25+SGMv`wtljGv(!_5EdWZhc!~f3 diff --git a/po/vi.po b/po/vi.po index 01fba53e..14ee6840 100644 --- a/po/vi.po +++ b/po/vi.po @@ -4,15 +4,15 @@ # 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-2014, 2016. +# Trần Ngọc Quân <vnwildman@gmail.com>, 2012-2014, 2016, 2017. # -#: src/create.c:1599 +#: src/create.c:1598 msgid "" msgstr "" -"Project-Id-Version: tar 1.29\n" +"Project-Id-Version: tar 1.30\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" -"PO-Revision-Date: 2016-05-17 07:14+0700\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" +"PO-Revision-Date: 2017-12-21 13:40+0700\n" "Last-Translator: Trần Ngọc Quân <vnwildman@gmail.com>\n" "Language-Team: Vietnamese <translation-team-vi@lists.sourceforge.net>\n" "Language: vi\n" @@ -105,7 +105,7 @@ msgid "give a short usage message" msgstr "hiển thị cách sử dụng dạng ngắn gọn" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "TÊN" @@ -143,29 +143,29 @@ msgid "write error" msgstr "lỗi ghi" #: gnu/getopt.c:278 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous\n" -msgstr "%s: tùy chọn “%s” chưa rõ ràng\n" +msgstr "%s: tùy chọn “%s%s” chưa rõ ràng\n" #: gnu/getopt.c:284 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" -msgstr "%s: tùy chọn “%s” chưa rõ ràng; khả năng là:" +msgstr "%s: tùy chọn “%s%s” chưa rõ ràng; khả năng là:" #: gnu/getopt.c:319 -#, fuzzy, c-format +#, c-format msgid "%s: unrecognized option '%s%s'\n" -msgstr "%s: không nhận ra tùy chọn “%c%s”\n" +msgstr "%s: không nhận ra tùy chọn “%s%s”\n" #: gnu/getopt.c:345 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" -msgstr "%s: tùy chọn “%c%s” không cho phép đối số\n" +msgstr "%s: tùy chọn “%s%s” không không cho phép một đối số\n" #: gnu/getopt.c:360 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' requires an argument\n" -msgstr "%s: tùy chọn “--%s” yêu cầu một đối số\n" +msgstr "%s: tùy chọn “%s%s” cần một đối số\n" #: gnu/getopt.c:621 #, c-format @@ -240,12 +240,12 @@ msgstr "^[cCyY]" msgid "^[nN]" msgstr "^[kKnN]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "Đóng gói bởi %s (%s)\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "Đóng gói bởi %s\n" @@ -253,12 +253,11 @@ msgstr "Đóng gói bởi %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:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "©" -#: gnu/version-etc.c:86 -#, fuzzy +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -268,10 +267,10 @@ msgid "" "\n" msgstr "" "\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" -"KHÔNG CÓ BẢO HÀNH GÌ CẢ, với điều kiện được pháp luật cho phép.\n" +"Giấy phép GPL pb3+ : Giấy phép Công cộng GNU phiên bản 3 hay sau <https://" +"gnu.org/licenses/gpl.html>.\n" +"Đây là phần mềm tự do: bạn có quyền sửa đổi và phát hành lại nó.\n" +"KHÔNG CÓ BẢO HÀNH GÌ CẢ, với điều khiển được pháp luật cho phép.\n" "\n" #. TRANSLATORS: %s denotes an author name. @@ -409,15 +408,14 @@ msgid "%s home page: <%s>\n" msgstr "Trang chủ %s: <%s>\n" #: gnu/version-etc.c:253 -#, fuzzy, c-format +#, c-format msgid "%s home page: <https://www.gnu.org/software/%s/>\n" -msgstr "Trang chủ %s: <http://www.gnu.org/software/%s/>\n" +msgstr "Trang chủ %s: <https://www.gnu.org/software/%s/>\n" #: gnu/version-etc.c:256 -#, fuzzy msgid "General help using GNU software: <https://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: <https://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 @@ -533,189 +531,189 @@ msgstr "Không thể chuyển hướng kết xuất các tập tin cho hệ vỏ msgid "Cannot execute remote shell" msgstr "Không thể chạy hệ vỏ ở xa" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "Hướng tìm kiếm vượt quá vùng cho phép" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "Hướng di chuyển vị trí đọc không hợp lệ" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "Khoảng bù di chuyển vị trí đọc không hợp lệ" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "Khoảng bù di chuyển vị trí đọc vượt quá phạm vi cho phép" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "Sai số lượng byte" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "Số lượng byte nằm ngoài phạm vi" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "Gặp kết thúc tập tin sớm" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "Mã thao tác sai" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "Thao tác không được hỗ trợ" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "Gặp đối số bất thường" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 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:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "SỐ" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "đặt cấp gỡ rối" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "TẬP-TIN" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "đặt tên tập tin kết xuất gỡ rối" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "không thể mở %s" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "quá nhiều đối số" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "Câu lệnh rác" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "Đây có vẻ không phải là một kho lưu tar" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "Tổng số byte đã đọc" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "Tổng số byte đã ghi" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "Tổng số byte đã xóa" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(đường ống)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "Từ chối đọc nội dung kho lưu từ thiết bị cuối (thiếu tùy chọn -f ?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "Từ chối ghi nội dung kho lưu vào thiết bị cuối (thiếu tùy chọn -f ?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "Giá trị cho “record_size” không đúng" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "Không đưa ra tên kho lưu" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "Không kiểm tra được kho lưu stdin/stdout" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format 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:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "Không cập nhật được kho lưu đã nén" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "Tại đầu băng từ, thoát ra bây giờ" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "Quá nhiều lỗi, đang thoát" -#: src/buffer.c:967 +#: src/buffer.c:969 #, 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:988 +#: src/buffer.c:990 #, 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:1075 +#: src/buffer.c:1077 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:1107 +#: src/buffer.c:1109 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:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s: chứa số thứ tự khối không đúng" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "Số thứ tự khối thừa ra" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, 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:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "Kết thúc tập tin (EOF) bất ngờ khi cần trả lời của người dùng" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "CẢNH BÁO: Kho lưu không hoàn thành" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -727,65 +725,65 @@ msgstr "" " q Dừng tar\n" " y hay dòng mới Tiếp tục lại chạy tiến trình\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! Sản sinh một hệ vỏ con\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? In ra danh sách này\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "Không có khối mới; đang thoát.\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 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:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "Gõ sai. (Gõ ? để xem trợ giúp.)\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "Câu lệnh %s không thành công" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, 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:1541 +#: src/buffer.c:1543 #, 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:1559 +#: src/buffer.c:1561 #, 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:1574 +#: src/buffer.c:1576 #, 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:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, 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:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "Khối %s không tương ứng %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" @@ -793,208 +791,208 @@ 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:1965 +#: src/buffer.c:1962 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:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "Diff nội dung" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "Kết thúc tập tin bất ngờ trong kho lưu" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "Diff dạng tập tin" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "Diff chế độ" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Khác biệt Uid" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "Khác biệt Gid" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "Khác biệt thời gian sửa đổi" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "Khác biệt kích thước" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "Không liên kết tới %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "Khác biệt liên kết mềm" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "Diff số thứ tự của thiết bị" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "Kiểm tra " -#: src/compare.c:480 +#: src/compare.c:479 #, c-format msgid "%s: Unknown file type '%c', diffed as normal file" msgstr "" "%s: Không rõ kiểu tập tin “%c” nên khác biệt (diff) như tập tin thông thường" -#: src/compare.c:535 +#: src/compare.c:534 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:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "Tài liệu được nén có chứa tên tệp tin chuyển đổi." -#: src/compare.c:546 +#: src/compare.c:545 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:620 +#: src/compare.c:619 #, 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:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "Một khối không đơn lẻ tại %s" -#: src/create.c:74 +#: 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:263 +#: 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:269 +#: 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:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "Đang tạo phần đầu hệ bát phân âm" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, c-format msgid "%s: file name is too long (max %d); not dumped" msgstr "%s: tên tập tin quá dài (tối đa là %d); không được dump" -#: src/create.c:616 +#: src/create.c:615 #, 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:643 +#: src/create.c:642 #, 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:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, 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:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "chưa đổ nội dung" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s: Không hiểu kiểu tập tin; tập tin bị lờ đi" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "Thiếu liên kết tới %s." -#: src/create.c:1737 +#: src/create.c:1736 #, 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:1746 +#: src/create.c:1745 #, 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:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "chưa đổ thư mục" -#: src/create.c:1846 +#: src/create.c:1845 #, 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:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: socket bị lờ đi" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: cửa (door) bị lờ đi" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "Nhảy tới phần đầu tiếp theo" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "Xóa không phải phần đầu từ kho lưu" -#: src/extract.c:302 +#: src/extract.c:301 #, 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:320 +#: src/extract.c:319 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s: dấu vết thời gian %s là %s giây trong tương lai" -#: src/extract.c:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s: Sự mâu thuẫn bất ngờ khi tạo thư mục" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: bỏ qua tập tin sẵn có" @@ -1017,7 +1015,7 @@ msgstr "Đang thử rút trích liên kết mềm thành liên kết cứng" msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s: Không rút trích được -- tập tin tiếp tục từ khối khác" -#: src/extract.c:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "Gặp phần đầu tên dài bất ngờ" @@ -1035,7 +1033,7 @@ msgstr "%s hiện tại là mới hơn hoặc cùng tuổi" #: src/extract.c:1664 #, c-format msgid "%s: Member name contains '..'" -msgstr "" +msgstr "%s: Tên thành viên có chứa “..”" #: src/extract.c:1696 #, c-format @@ -1047,22 +1045,22 @@ msgstr "%s: Không thể sao lưu tập tin này" msgid "Cannot rename %s to %s" msgstr "Không thể đổi tên %s thành %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s: Thư mục đã bị đổi tên từ %s" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s: Thư mục là mới" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "%s: thư mục trên một hệ thống tập tin khác; nên không được dump (đổ)" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s: Thư mục đã bị đổi tên" @@ -1188,193 +1186,193 @@ msgstr "%s: Đang xóa %s\n" msgid "%s: Cannot remove" msgstr "%s: Không thể xóa bỏ" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s: Đang bỏ đi" -#: src/list.c:237 +#: src/list.c:236 #, 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:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "khối %s: ** Kết thúc tập tin **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "khối %s: " #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, c-format msgid "Blanks in header where numeric %s value expected" msgstr "Khoảng trống trong Phần đầu trong khi cần một giá trị số %s" #. TRANSLATORS: Second %s is a type name (gid_t,uid_t,etc.) -#: src/list.c:806 +#: src/list.c:807 #, 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:817 +#: src/list.c:818 #, 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:838 +#: src/list.c:839 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:852 +#: src/list.c:853 #, 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:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, c-format msgid "Archive contains %.*s where numeric %s value expected" msgstr "Kho lưu chứa %.*s nơi mà cần giá trị số %s" #. TRANSLATORS: Second %s is type name (gid_t,uid_t,etc.) -#: src/list.c:934 +#: src/list.c:935 #, 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:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " liên kết tới %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " kiểu tập tin không rõ %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--Liên kết Dài--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--Tên Dài--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--Phần đầu Khối--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--Tiếp tục tại byte %s--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "Đang tạo thư mục:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "Đang đổi tên %s thành %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s: Không thể đổi tên thành %s" -#: src/misc.c:771 +#: src/misc.c:784 #, 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:1134 +#: src/misc.c:1147 #, 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:1148 +#: src/misc.c:1161 msgid "child process" msgstr "tiến trình con" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "kênh liên tiến trình" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "Lựa chọn tập tin nội bộ:" -#: src/names.c:72 +#: src/names.c:71 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/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "TMỤC" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "thay đổi tới thư mục THƯ MỤC" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "lấy các tên tập tin cần rút trích hay tạo từ TẬP-TIN" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "-T đọc tên kết thúc bằng ký hiệu null, ý là --verbatim-files-from" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "tắt hiệu ứng của tùy chọn “--null” trước đây" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "hủy trích dẫn các tên tập tin hay thành viên (mặc định)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "đừng hủy trích dẫn các tên tập tin hay thành viên" -#: src/names.c:87 -#, fuzzy +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" -msgstr "-T đọc các tên tập tin nguyên văn (không xử lý tùy chọn)" +msgstr "" +"-T đọc các tên tập tin nguyên văn (không thoát chuỗi hay xử lý tùy chọn)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "-T coi các tên tập tin bắt đầu bằng dấu - là tùy chọn (mặc định)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "MẪU" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "loại trừ những tập tin tương ứng với MẪU" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "loại trừ những mẫu liệt kê trong TẬP-TIN" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" @@ -1382,24 +1380,24 @@ 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 " "thẻ chính nó" -#: src/names.c:99 +#: src/names.c:98 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" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "loại trừ thư mục chứa thẻ ghi nhớ tạm CACHEDIR.TAG" -#: src/names.c:104 +#: src/names.c:103 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ó" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "đọc các mẫu loại trừ cho từng thư mục từ TẬP-TIN, nếu có" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" @@ -1407,117 +1405,121 @@ msgstr "" "đọc các mẫu loại trừ cho từng thư mục và những thư mục con của nó từ TẬP-" "TIN, nếu có" -#: src/names.c:113 +#: src/names.c:112 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" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "loại trừ thư mục chứa TẬP-TIN" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "loại trừ thư mục của hệ thống điều khiển phiên bản (v.d. “.svn”)" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "đọc các mẫu loại trừ từ tập tin bỏ qua của VSC" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "loại trừ tập tin kiểu sao lưu và khóa" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "đệ quy vào các thư mục (mặc định)" -#: src/names.c:125 +#: src/names.c:124 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/names.c:130 +#: src/names.c:129 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/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "mẫu tương ứng với bắt đầu tên tập tin" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "mẫu khớp sau bất kỳ “/” nào (mặc định để loại trừ)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "không phân biệt HOA/thường" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "khớp mẫu phân biệt HOA/ thường (mặc định)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "dùng ký tự đại diện (mặc định để loại trừ)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "khớp đúng nguyên văn" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "ký tự đại khớp “/” (mặc định để loại trừ)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "ký tự đại diện không khớp “/”" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" +"Các tùy chọn sau đây được sử dụng sau một tham số không tùy chọn bất kỳ " +"trong chế độ tạo hay cập nhật kho nén. Những tùy chọn này có tính vị trí và " +"chỉ áp dụng với các tham số mà theo sau chúng. Vui lòng thay đổi vị trí của " +"chúng cho đúng." -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" -msgstr "" +msgstr "-C %s không có tác dụng" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" -msgstr "" +msgstr "--%s %s không có tác dụng" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" -msgstr "" +msgstr "--%s không có tác dụng" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "dòng lệnh" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: danh sách tập tin đã yêu cầu từ %s đã sẵn được đọc từ %s" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "không thể chia tách chuỗi “%s”: %s" -#: src/names.c:1025 +#: src/names.c:1024 #, 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:1358 +#: src/names.c:1388 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:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" @@ -1525,47 +1527,47 @@ 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:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s: Không tìm thấy trong kho lưu" -#: src/names.c:1379 +#: src/names.c:1409 #, 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:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "Sai khớp nhãn kho lưu" -#: src/names.c:1717 +#: src/names.c:1747 msgid "" "Using -C option inside file list is not allowed with --listed-incremental" msgstr "" "Sử dụng tùy chọn “-C” bên trong danh sách tập tin không được phép với “--" "listed-incremental”" -#: src/names.c:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "Chỉ cho phép một tùy chọn “-C” với “--listed-incremental”" -#: src/tar.c:88 +#: src/tar.c:87 #, c-format msgid "Options '%s' and '%s' both want standard input" msgstr "Cả hai tùy chọn “%s” và “%s” đều muốn đầu vào tiêu chuẩn" -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s: Định dạng kho lưu không đúng" -#: src/tar.c:197 +#: src/tar.c:196 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:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1791,7 +1793,7 @@ msgstr "Chọn luồng dữ liệu xuất:" msgid "extract files to standard output" msgstr "rút trích tập tin ra đầu ra tiêu chuẩn" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "LỆNH" @@ -1827,7 +1829,7 @@ msgstr "sử dụng TẬP TIN để ánh xạ Mà SỐ chủ sở hữu tập ti msgid "use FILE to map file owner GIDs and names" msgstr "sử dụng TẬP TIN để ánh xạ Mà SỐ NHÓM sở hữu tập tin và các tên" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "NGÀY-CỦA-TẬP-TIN" @@ -2040,7 +2042,7 @@ msgstr "đặt khối lại khi chúng ta đọc (cho đường ống 4.2BSD)" msgid "Archive format selection:" msgstr "Lựa chọn định dạng kho lưu:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "Đ.DẠNG" @@ -2124,59 +2126,59 @@ msgstr "PMỀM" 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:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "Lựa chọn tập tin nội bộ:" -#: src/tar.c:691 +#: src/tar.c:692 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:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "đừng bỏ “/” ở đầu tên tập tin" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" msgstr "theo liên kết mềm; kho lưu và đổ tập tin tới đó nó chỉ" -#: src/tar.c:697 +#: src/tar.c:698 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:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "TÊN-TH.VIÊN" -#: src/tar.c:699 +#: src/tar.c:700 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 khi đọc kho lưu" -#: src/tar.c:701 +#: src/tar.c:702 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:703 +#: src/tar.c:704 msgid "DATE" msgstr "NGÀY" -#: src/tar.c:704 +#: src/tar.c:705 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:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "Đ.KHIỂN" -#: src/tar.c:706 +#: src/tar.c:707 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:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "CHUỖI" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2184,59 +2186,59 @@ 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:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "Chuyển dạng tên tập tin:" -#: src/tar.c:715 +#: src/tar.c:716 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 rút trích" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "BIỂU-THỨC" -#: src/tar.c:718 +#: src/tar.c:719 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:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "Dữ liệu kết quả có tính thông tin:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "liệt kê một cách tỉ mỉ những tập tin được xử lý" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "TỪKHÓA" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "điều khiển cảnh báo" -#: src/tar.c:731 +#: src/tar.c:732 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 bản ghi thứ SỐ (mặc định 10)" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "H.ĐỘNG" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "thực hiện HÀNH_ĐỘNG này ở mỗi điểm kiểm tra" -#: src/tar.c:737 +#: src/tar.c:738 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:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "T.HIỆU" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2247,35 +2249,35 @@ msgstr "" "khi nhận được TÍN HIỆU này; tín hiệu được phép: SIGHUP, SIGQUIT, SIGINT, " "SIGUSR1, SIGUSR2; cũng chấp nhận tên không có tiền tố “SIG”;" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "in ra giờ sửa đổi tập tin theo UTC" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "in ra giờ tập tin đến độ phân giải đầy đủ" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "gửi kết quả chi tiết tới TẬP-TIN" -#: src/tar.c:750 +#: src/tar.c:751 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:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "hỏi xác nhận trước mỗi hành động" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "hiển thị các giá trị mặc định của tar" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "hiển thị vùng hợp lệ cho trường “snapshot-file”" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" @@ -2283,94 +2285,94 @@ msgstr "" "khi liệt kê hay rút trích, 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:761 +#: src/tar.c:762 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:764 +#: src/tar.c:765 msgid "STYLE" msgstr "KDÁNG" -#: src/tar.c:765 +#: src/tar.c:766 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:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "cũng trích dẫn các ký tự của CHUỖI" -#: src/tar.c:769 +#: src/tar.c:770 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:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "Tùy chọn tương thích:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "" "khi tạo, giống như “--old-archive” khi rút trích, giống như “--no-same-owner”" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "Những tùy chọn khác:" -#: src/tar.c:785 +#: src/tar.c:786 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" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "“%s” không được dùng cùng với “%s”" -#: src/tar.c:933 +#: src/tar.c:934 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”, “--delete” hoặc “--test-label”" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "Mâu thuẫn giữa các tùy chọn nén" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "Không rõ tên tín hiệu: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 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:1036 +#: src/tar.c:1038 #, 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:1065 +#: src/tar.c:1067 #, 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ư là %s" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "lọc kho lưu qua %s" -#: src/tar.c:1137 +#: src/tar.c:1143 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” là:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2378,162 +2380,162 @@ msgstr "" "\n" "tar *này* mặc định dùng:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "ID của chủ sở hữu hay nhóm không đúng" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "Nhân tố khối không đúng" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "Chiều dài băng từ không đúng" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "Giá trị mức gia số không hợp lệ" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "Có nhiều hơn một ngưỡng ngày tháng" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "Giá trị phiên bản sparse không hợp lệ" -#: src/tar.c:1661 +#: src/tar.c:1670 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:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "giá trị “--checkpoint” không phải số nguyên" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "Đưa ra chế độ không đúng trên tùy chọn" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "Số không đúng" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "Kích thước bản ghi không đúng" -#: src/tar.c:1864 +#: src/tar.c:1873 #, 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:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "Số thứ tự của nguyên tố không đúng" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "Cho phép chỉ một tùy chọn “--to-command”" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "Tham số mật độ sai dạng: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "Không hiểu mật độ: “%c”" -#: src/tar.c:2066 +#: src/tar.c:2075 #, 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:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: vị trí của lỗi" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "lỗi phân tích cú pháp %s" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[TẬP_TIN]…" -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "đối số không phải tùy chọn trong %s" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "không thể chia tách CÁC_TÙY_CHỌN_TAR: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, 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:2364 +#: src/tar.c:2373 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:2390 +#: src/tar.c:2399 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:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "Tùy chọn “--level” vô ích nếu không có “--listed-incremental”" -#: src/tar.c:2424 +#: 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:2437 +#: 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:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "Không thể kiểm tra kho lưu đã nén" -#: src/tar.c:2453 +#: src/tar.c:2462 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:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "Không thể ghép nối các kho nén" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "--clamp-mtime cần xác định thời gian sử dụng --mtime" -#: src/tar.c:2474 +#: src/tar.c:2483 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:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "“--acls” chỉ dùng được trên kho lưu POSIX" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "“--selinux” chỉ dùng được trên kho lưu POSIX" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "“--xattrs” chỉ dùng được trên kho lưu POSIX" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" @@ -2541,128 +2543,137 @@ msgstr "" "Không thể suy diễn tên thư mục cấp cao nhất; hãy đặt nó rõ ràng bằng tùy " "chọn --one-top-level=THƯ-MỤC" -#: src/tar.c:2573 +#: src/tar.c:2582 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:2597 +#: src/tar.c:2606 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:2623 +#: src/tar.c:2632 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:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "" "Bạn phải chỉ ra một trong số các tùy chọn “-Acdtrux”, “--delete” hoặc “--" "test-label”" -#: src/tar.c:2768 +#: src/tar.c:2800 #, 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:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s: Tập tin được rút ngắn %s byte" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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 cho phép" -#: src/xheader.c:205 +#: src/xheader.c:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "Không thể dùng mẫu “%s”" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "Không thể ghi chèn lên từ khóa “%s”" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 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:677 +#: src/xheader.c:695 #, 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:689 +#: src/xheader.c:707 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:697 +#: src/xheader.c:715 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:703 +#: src/xheader.c:721 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:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "Bỏ qua từ khóa phần đầu mở rộng không rõ “%s”" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, c-format msgid "Generated keyword/value pair is too long (keyword=%s, length=%s)" msgstr "Cặp từ khóa/giá trị đã tạo ra quá dài (từ khóa=%s, chiều dài=%s)" #. TRANSLATORS: The first %s is the pax extended header keyword #. (atime, gid, etc.). -#: src/xheader.c:1053 +#: src/xheader.c:1071 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "Phần đầu mở rộng %s=%s nằm ngoài phạm vi (%s..%s)" -#: src/xheader.c:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, 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:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, 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:1533 +#: src/xheader.c:1551 #, 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ệ: không cần dấu phân cách %c" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, 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:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s: không phải thời gian chờ tối đa hợp lệ" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: không rõ hành động điểm kiểm" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "ghi" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "đọc" @@ -2670,7 +2681,7 @@ msgstr "đọc" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "Điểm kiểm tra ghi %u" @@ -2679,12 +2690,12 @@ msgstr "Điểm kiểm tra ghi %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "Điểm kiểm tra đọc %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2693,80 +2704,84 @@ msgstr "" "GNU.\n" "TÙY CHỌN:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "Tùy chọn tạo tập tin:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "CỠ" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "Tạo tập tin có KÍCH_CỠ đã cho" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "Ghi vào tập tin TÊN, thay cho đầu ra tiêu chuẩn" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "Đọc các tên tập tin từ TẬP-TIN" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "“-T” đọc tên kết thúc vô hiệu lực" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "" "Điền thêm vào tập tin bằng MẪU đã cho. MẪU là:\n" " * default mặc định\n" " * zeros các số không" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "Kích cỡ của khối cho tập tin spare" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "" "Tạo ra tập tin sparse. Phần còn lại của dòng lệnh đưa ra ánh xạ tập tin." -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "HIỆU_SỐ" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "Di chuyển vị trí đọc tới hiệu số đã cho trước khi ghi dữ liệu" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "Cấm các lời nhắn chuẩn đoán không nghiêm trọng" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "Tùy chọn thống kê tập tin:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "" "In nội dung của cấu trúc stat cho từng tập tin đã cho. ĐỊNH DẠNG mặc định " "là: " -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "Tùy chọn thực hiện đồng thời:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "T.CHỌN" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "Thực hiện các ĐỐI_SỐ đã cho. Có ích với “--checkpoint” (điểm kiểm tra) và " "một trong số:\n" @@ -2775,19 +2790,19 @@ msgstr "" " * --touch chạm vào\n" " * --unlink bỏ liên kết" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "Thực hiện hành động đã cho (xem dưới) khi tới điểm kiểm tra SỐ" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "Đặt ngày tháng cho tùy chọn “-touch” kế tiếp" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "Hiển thị các điểm kiểm tra đã thực hiện và trạng thái thoát của LỆNH" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2795,7 +2810,7 @@ msgstr "" "Các hành động thực hiện đồng thời; được thực hiện khi tới điểm kiểm tra có " "số được ghi rõ bằng tùy chọn “--checkpoint”." -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" @@ -2803,126 +2818,126 @@ msgstr "" "Cắt ngắn TẬP-TIN thành kích cỡ được ghi rõ bằng tùy chọn “--length” trước " "(không ghi rõ thì 0)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "" "Phụ thêm KÍCH_CỠ byte vào TẬP-TIN. KÍCH_CỠ được ghi rõ bằng tùy chọn “--" "length” trước." -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "Cập nhật các thời gian truy cập và sửa đổi của TẬP-TIN" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "Thực hiện LỆNH" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" -msgstr "" +msgstr "Xóa TẬP_TIN" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "Kích cỡ không hợp lệ: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "Số nằm ngoài phạm vi cho phép: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "Kích cỡ bị âm: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) bị lỗi" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "yêu cầu chiều dài tập tin %lu mà có %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "đã tạo tập tin không phải thưa thớt (sparse)" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "Lỗi phân tích số gần “%s”" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "Không rõ định dạng ngày tháng" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ĐSỐ…]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "không thể mở “%s”" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "không thể di chuyển vị trí đọc" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "tên tập tin chứa ký tự null" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, 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:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "mặt nạ không đúng (gần “%s”)" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "Không rõ trường “%s”" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "không thể đặt thời gian trên “%s”" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "không thể cắt ngắn “%s”" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "Câu lệnh không thành công: %s" -#: tests/genfile.c:781 -#, fuzzy, c-format +#: tests/genfile.c:772 +#, c-format msgid "cannot stat `%s'" -msgstr "không thể cắt ngắn “%s”" +msgstr "không thể lấy thống kê “%s”" -#: tests/genfile.c:785 -#, fuzzy, c-format +#: tests/genfile.c:776 +#, c-format msgid "cannot remove directory `%s'" -msgstr "không thể đặt thời gian trên “%s”" +msgstr "không thể xóa bỏ thư mục “%s”" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "không thể bỏ liên kết “%s”" @@ -2962,6 +2977,9 @@ msgstr "Lệnh đã chấm dứt\n" msgid "--stat requires file names" msgstr "“--stat” cần tên tập tin" +#~ msgid "OPTION" +#~ msgstr "T.CHỌN" + #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: tham số ARGP_HELP_FMT phải là số dương" diff --git a/po/zh_CN.gmo b/po/zh_CN.gmo index 1539d03916a899899265f0a5bdb37a93edd4feb7..ef56b798d54731bf6e6c019d07ee8a0601092e24 100644 GIT binary patch delta 15165 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 X%}P+;<j>dlP2P0lBw>ZqZgv0wqZ>dA delta 13211 zcmZ2_lzHA3=K6a=EK?a77#M7r7#Iu~7#IYE7#J9t85lk&GcbU}zvx5gKl%(11q=)f zItC03k_-$Cx&{mkA`A=+?gk7DYzzzxF$N3_3JeSk$p#Dz@(c_NEd~q>JPZsBOQ7^d z0|th61_p+G1`G^h3=9lzh79!#dJGH<v4#u`stgPaJ%$Vnf(#4{n+zEkgc%qZju<j9 zC^0ZF+%RNdaA#m(_-)9*pu)hw;B3Uez{|kEkYU8YAj81GP-euy0CL}CBZ$R^jTjiL z85kHI8!<3QF)%R58$-;sGG<^9XJBCPF=k*8Wnf@PF|KD|5MW?ns4`|?kYiwA=r(3x zP-9?VSY-_H*+pXp1}g>zhG)hQhbWpbFqkngFu0g7FvKx1FjSjBEVyODz#zfE!0^?C zfkBgjfq~By;&TgA28I*{1_oDC1_m9Fxuy^YTsLK4Fk)a}cwcYIz+lM0z@TKtz+l3_ zzz|}_z@W^)z|d*Nz>vhiz_8W~5>x`_5C^K8Gcc5ag3cV`puOe{40a3*3=hm182CXx zwSYu{z6Aq=5Ca24fCa>&WD5oc4F(2=X%-L%?ze#GuYYO5z+lY4z`$b(@tK1qBt*(B zAr^L6LL9i<65_C%mJAGv3=9l^Eg=q;w_;#02RYn|0UVV*RuBtzTQM+rF)%PZwSuTO zux4P8W?*0lvW7%;o;5fm>KUe3LtM7T8WNOOtsyS|V9mgw&cMLHY{S4H%fP^(4W&J8 zAPF)Z%Fnc6U|?ooU}(32_^8_k;;?l#kVN^|29j7`*)TBhF)%Q&*g|MwTaZ2V3=B%P z5Eq-;LK029EhLf6wuJ=U0b582eYS-pGIcu$9c~AS({?+E!?)NmFlaL{Fr2r8gxqgC z1_oOO1_mj61_m1j28IZGu#Xw0+Cv<+)}DcZy`F)AVT(P)f<5*O46Y0e3?J+v4l;9K zU@&E1U`TL)B*JM95DPClKtk-F1H@<Qjt~bsIzrM)nj<6^)H*^OG}n=V!Ht1|;iMzP z9swr?1}#t`c4A<t2W78(Cx}IpoFFbc;RFft^G=XBd+P+r`kc-XA6PjvFtCH-5=uuw z=_F@JV$5=e<f4_%5QklGhFJX7nSmjafq_BO1!8Wq3qw6PyUlljxcrz4B(dCefw=rX zl&|dyNqoMpkT@=Mg=Ehuu8{n{(iIZq$6O%}f9eV;KbYMhxk20wV!nkNM4!JKB!p7j z>LJ;t#f^c%fq{WxiW?+|uew1DVseKVq~H$GVB*fezyeC`?vVT)=?+PJY3`6TkmU}s zu+<%si<Y@V3YzUu{b$`F9(n5yaj;;$2SmWY1DcIIAR*A>!N9=9z`(H11LEVI9uNoJ zf%1QOKn#%eWMBvZ72lo^k4*H0B-(|Z5RY8(gv2$Y7lg0l1@S<n7bL3d<Gdg~OZ9>T zQL7guvCQ#;#NA^rh|f5@Atju$H>4=F@rEQ;KW_$xL`DXNDc%r^zxhBMs_6^yxw|jK zVX?lDsLJ(aU~pn!VCeD%hj=~1SziWlfx_p<z`zZvWBecmgpD6WLy{i@gDwLDL%km) zD%Sde@+||yK|hEESNtFzc;yF)TP}Y{6v+ES^gH-Na!IT|q&zA2hvfhH{veOlGcc_4 zhxq&?RN(`Eh(*7k;(P%RzG?s@PAvl<275up(*qz5st$noye|NfJJtk19JVC@67*LB zKo&AEFa|;#E)&SWzzfR%MuCtxaR`KjfNLNmZUO@#K8gs0#C2{UB&2$v^twPu6kUMQ zUjrcplT;9-DEA72__#3$Qn0NIf@II9L6Gu8C76K$RR1ve21A0lIT%v#Yz&4Zn%lt) z48;r#3~V6`433~$G6dqFJt2@Fy%+)sk=G%R-0&v^5;B~j5dCVQ5RV0hLOc`}3dz>7 zp^!Ax8Ol%(u7_ubLK4@;P>6x2LLotS8>;a)lx7NJU|?lnVBidcq!IowNC=pQL2^%2 z7{q~-!XO3J@-Rs5+8+j~oF0ck93T`9snqPk>miAuARH2h_2H1Xn-mU7M6<#nLBBg3 z;*(q9kkouX9AeS?a7ak7L_jQ%ivXu;2Hyxs1Entl5)yMFAi3&z1jHV`NQgeg`bbF8 zY8?sjQBEWSg9`%#!=y+C24@BahU<}##3LOAiA#?th|db5AO>|rK@#umC`cmR6a{hU zu_#E8pN8@;LHXCCAR%}!3Q`2uKZ$|_Jwr6aBFSh->U4{Sgg{I*ByMY?AyLv54ROG# zXo$}aMMHx0Z8W6JmyChX4l$6BN{?Y+C}dz@D35`J<jWX{136;BbUg!aECWL{BLjm_ zEF=W-;vhjeB@R;Z9gc$p)w4K=4;kViX+$I*!dH!FV2EO1V6cpbr1~lGkX&>+o`Jy! z6oT;({VE9%57;F@qAo506aw`O48;i$gZdL7K3|*w3EG_r3=AF&3=C%yAU+mNglN=F zghZKBA|!~56B!u7K)EB4fx(l3f#D*QFP#KYUz7x?{o0ct*>iUiB#pgJVqlO4<^Rt~ zknG2w42etIWJpkjBtslloD2z(cBuTeWJrEKn+!3SGX-L>Z3-kRa#J8_Wo8N_^&d=u z`21-K$j1x}tf`QwQA}lEs1IUbU@%OD1XW8a0|O_>2T=NUDkQNyh0?E6Ax*E3sgSb& zb1I~~uuOwkn4AX5|J`Yjs9cc-@yNL}28IL%28Oq3kTm9(4hhlfbcT9xJAZOIM8ooQ zh)>U^Lqg;al-A0CB%+86NZamI2BdcUp8>IeD-&X|W+tQ|<CY1jWNI=Y*?WH`B+Z=5 zgrtr8nGgrO&a8)MWX^)n3R#div(18}fuJl%k(-(YaZq~}MB~;hNQrnh3zE<Ivmxqb zvmv>~ARFRS+iXY_W@SUnt%K5&vmsHqqCOjv%AaI2Fk~?>FtF!9%I2aRNM$iQhk+rL zfq`LL4kT`6av=tJ<U-;+HW!lWdvhV#@klNtalVJjE95~Mp8<K0vcESE;;=J$kf^Kw z36)UJhvfI9d`R3jL+O+Gkf7u*fH*9u08(^T7eE}awg3{ecMBl3-@5_^hHy}SqL2aH zWlJf9IDAbZBr)D7ggEF=Avh}Q87zw+L7Z0vNu?8tAU@du<==+N|1N^~RJIsmQAjbw z!9~Ro2Tm@AMA5Zkh<Pj}5Or!LkUGMp1QIftC6J(>Rl>kv$xzS0aIFNQQJ@s!LOUp( zR0_$@ZKV*OUnqq{$<I<qoQjk|#5JIFU>U>%Rb>zhXO%$`+x{|$Lr#}LLgHl^#2nFb z1_lvO{x>Lx2)LF*e4bDaF{ry7;(*oVkRbjFRmWBVsXi4eAaQA2!NA}R>L*k{9JB^X zU#)=DCI2eGLCxS?3CS%Lm5}T@y^?{Uemw&N!~RN8P%tp$S3wfR$|{IUFIPc)^1ljF zrmIvlfU9foY6ga<3=9m3)eH<Gj0_C!HQ=(GA*L1*_ldQTT5xAAB#r#4g=BB7I!Iy< zsDn7XxQ?M7+_qa#2T^dY4&s0>br1*0)k8`|uX;$3C)PuPw6q>lk~Kn`?{n)RA-J|4 zqVGgK1A_$v1H+ekNN&+>fb^i88X%3-+6IWjHZ;^jg7QHFB<MdiKq?E_MhM>=N+&f! zip<_dh{m~%kdpCiBcu+v+z9FG-D-sBmuP~7m{Aj?T!?If6l^(73=FXh3=FfIAm;z9 zZ-NAcN;Aagfl#`-84^@Wn;|Wm6U~sQU}%A)Zq*iuPuyD|Ay?G`kzddPNjpbdAgTRn z3#57%YlXzUek;Tyeyt1)exO!$Tq^@ZFleBm6%vGuZIB?8X@mICqYYw#UmGOoOWGJ1 z9x*a7G_*m2Ho1d=A&`NAp`rs45~n&KiSS|v#38>rASI$yC!{D=?_^*|XJBA3>jc|Z z&oHkO;`5!I5Fb45gt(BS3zF(3x*$H#?1Gf-PF;|Yspx_jIJ*myy;gNWqUJ;wBz6Dj zf|M5u-C&Ct!n+|+T?FN~bTcrBgYy6UZb+)$4i;cwINJ>=2cC9Ae8|}Yu~@DL5>+8R z(8SjRiNm=)5DQN9fDB|{c-#YV;O`zth{^Rr>I$u1NSes$g`|ney$lRGp!~nA7m_+J zLutM~NQij$L4vZl4`T3~K1hkTr4KT+a<va)u|hwj9bnxL@nL>HL|tP)!~=`^A&GB$ zKO}0O^+OykG=YJk9yGLKI{_jPJpq!a+9p7Pe&+;8S$_&D{$~OtE$B~##BJzAh{H=K zLey=T2(jSNM2I@RNsyx1WD>+d<&z+}V+NGJX%a&{cp&leB#41;Cqb%V-pP<4)|w14 z&}}kAyl67SNBxr_-R>omAwj(Y%0E3BV$u1@kP!SZnSp@=Gz2pRl7^J0K+=rO6iC!~ zPk|OF;Zq=So;(HOllCbP2ko2!iTj&VAnkYlsgTMeY%0WpNmC(lx@RiHfsdy`e9kZp zl1<g7L25gXX^<#todz{`8YH*ete*yH3_h3!sf1okgH)Sh(;)`MO^2lBmg$hxyk<JY z;K$P;`I&VFq-0c?0SO6<8IZ&rJp&?NI0F)b6J|gfvwLPh>H^l85OeFTW<s)E(o9Gi zXrBpj*`}G0pxikV5_Gp_LLBsYCd2~CSrCWoLuqp;Z9fZA_Pfu5IG|$|#GK``Ac^_J zEJ(-Z<1Dbb^$e!7ArA1H4GF^H*$|BrpyKPH{3}rU^K3{I3C)3IBbPal5D1?GNnF`; zAmu^p97xk_F_gb?4kS^Zhl)P{>#t{EcsB=9LNU&T#3|ogh=VNVLK0!@T!@b==R(p* z|6E9Iw|Oo^-;TME#CQ~{{v=fY)431_aLt1hXcF@vm6^soh`ILj7#PGs`9FFd#Kpz) zAlYf+Jct9%%!9OYKSDM90cl`hV33#(QExCG610Bv89<#PhWz=E)O~(FB(2<=4{@;Q z0*E@x1rT$i7C<~uzkq?E9yD&>vH+s6djTXU*Drvi+QSPVsg+?NB<K_tLgWn>LW16P zA*AkzSjfNtnnYN$5K;s?ErvL-XfY(@CM<@8)Uw482W(ypX^h@j%uvr@$-uxMz625^ zflDAh&RqgY3l&Qs7EWCPiJFy5AP%{_1mb`vQ2INR=2{9-FS`_y*bJ9KER0$TaY+4A zh{L8Xg+$5brS%Yl4ljk!*Oo$x)R#~VEXyDorIvwHD}%u@hyy&K{3xh=@iK`1PN?{t zWsuyl70Tbc43a&sErX<ipUWT)6{uehNhB)EA#q}~98xlwFNb79=j9L!y_Q2#cl2^d zRFy7=6g)GRLqg^Nlzz1wQiO}FfHdjcS3u&vaRsCfShNDtp124VujgC|DR{J2LJW*p z2`OOeS3)!{TnQ;S4y}Zg58SID4l!E=37LRZ5TB<(>B?1*km^|lsV$eTf_UT-l)ecS zf3ON1)%6U#t05XBRzu?4a5cn0ztxZ+OI!^xpan{IuZA>CCas1zaK>s#2<%)9@$uu; zkPwqy12IQ$4Wy)VTmuP#%ry{?&H(f485s7jfkeSODE(&*B<{G@LM#wk3n`F{*FvHw zXe}h0g|CIgVcJ?qNK~zbgwTYwkfzn{wGfYSt%D>+<#mu=w$D09VxPH=fk6V4|F^D# zB#LwEAVuucb&xWedp(49SPu!x()AFRFIo>tq$k%yYQrb%AyM{oJtVtIZ-5j?)*B!p zXTJgBa5pI5djli{gElZQ)PrWNA~ry>N#O=aT9~#05`;%KK!Wb-21x$>y8-H>jSwFz zZ-h9^awEjzw2hD`Y}*J4vBeu9QE+G@14A|g1H;vgkPvg+1aVO4CWd<OaC+1x28KFD z28Q@ekhr|J84?m4TObDMZGl+m3#F5xbS0GT-vXIfSh@vLu>9WwPFxIjTOlFlxfSBD zf~^qqd$&S7w0&zm#79TALM*tu72=c6TOn~Typ4e&l!1Z4WE&*acWr~HTe1xjV!O6M z(#rj9kS5vlZIJ5QXgj3Zt=bMzzid0i;yv3TA^dDRBx*$JcR=D^dIuy9jdnmvrjQ*F zpQr4AB$nnK5Ci7#fH?T%4oKhd(GCU%d(f2ZPDtI6vlEhLmhXfV#dmf>5+%<rNQj#6 zf_N-;7o@FNU$+a=-=DAx(uusb3o-_zv>QU}?1m&3GbnAd8<M!3c0+vXwi^<}eY+v4 zeCuwA1^0GC9R7bdB(X~GVPFUVwfpx#9NfMKoHptij_-l^_|_hXhF5zaA;Gp65&{}~ zAwF>5%fOJyz`#(n7gB=V*$Z)?$UaC2%I$;1vFSbr@I-ddK1f<<-Ul)N&^}0RxwH=w z_s{o%>VkR(hA&W!Li-^W>+gps4BQV1qO|>x=6A(@NSsdC4@t#)_CtdB!hVQD7!E*k z4c7q(U-|$fu2l~}91wf}Vs7#QNSdfPz`&pd%Kv=_AU@xD05Yk3^#CMDO%6gF6nzj9 zWVHt&LA&=L#K3z8A=&fYL5M@d4ngV$w?h#9S%)C<6AwWetve4v9Q5@Nq%o>|n1P`l zG+P~h7$VVl7-Hf2!;qr%;$cWbg8K->0H-665U4u>QNQX4#DW_~AP!<U3Q3#-M<KaE z^C+YpQF0XGu#HC{9=&=LQb~P03hn=^9D`UK1f@%kLE?VeF-YRsdJIw*TsQ`4j(<J| zu}Jec#6YLxkp6z$afmt7k3-~l9*3ljOUEG|dU+g@ZIw?z9OeNUC;(-j))SEIbMyqn z#|$SSL1cas((ccO@;9A?SorKDBo3KQL9(R;ly*7=u{h@xBr&$0f`rVXQxFerIt7WU zi>DwSVyr(6QJ``f;!~5;kksyf8k{{Cs!l_Ky7x3B)$TqGvEamMNaB15RsZ=k#7A;x zAP$N?1F^963?!(RoPl&guS3Np&q6#}Z*i7^VHE=dL;hKaMN;P=LFjP~5&~K0Ac<)n zRQ%{Uh{K+rV_>+>z`*e990P*{BLl;w^N<ql^##ZX$EORBL>q7sl4d4cgf!dtT!iF; zcNf9gw4Q<a5+o6sT!Oef<`TpKZI>XG%Zf`7A78x$3G#QBAk{U?Wl;WQU=X?tagf1f zNYprAhWI%CGNhw1=`tjQuR+D1U53~vc?Cq*GcY(_f#mPZE0Dy|cm-n6GOz*$hC@*L z)fI?ALRTRnrF0b%B>_-6_9`TCW?hBoUjU`|K;>^-g@owStB_$i$!iP@paCw1xNDFg zs)f=kq4d>j5C<_{holL$>yW4jybh_PDy~B;oN*mewx5HFf4L6PCvpQ4$CfuBAy;q% zk|x@2Ktgco4F(3#gcrl+8<4o-z6q)2yl+C{D)lBLPN(057&z}Hq+~mM6EY6~8p&dS z0vkpKhWm^R3|kl&7(OvDFjz1$Ft{-?Fc>f~Fnni(j2A9tU|<LaEh=JQU`S(NV7SJ> zP|vW1k%3_|)R1UK28Ov%1v*R+!L^JG40j+*FbP`EGl7wTL6?z%!H$uEK@qABEXlyY zkjDrakOD2wnF%#34oZU>JD@osHbw@9?O?Hb$Y>Nua{wbG3-Le=lxAdLU;!&)VE7GE zfP_H{PE4V4dW;MVKNuMpx)~T4E-)}KG&3?V>|<bH*uV%GDf5NuOJ`(Y&}L*{n8C=v zFrR^eAqk`(RQ?}kgv2XI-Bkt#hASWj5>8-bV0g{Qz|aU9(L@q2W@KQv$_Qy}azP!f z05X(;f#DVd1A`S41H)M;AGDeZw2%ojdkQilo{@n;j*)?(K9`Y!VFy&vM<@+a0K*$W zzG7rx$bia$7NmgWOrU%YCI*I1Mg|5BMh1q<3=9nBj0_BEj0_A$j0_BdObiSfjF7Tl z6tqTwk%1wMk%1wTkpWb|GFUM()H5stEgWNHVE6-C_r=J-@REUnL6wOCG=jqLm63tL zn2CYmGiX8qWGe#$Llh$eLni|R!z@Nf$E1;wfnhJyF)a)X3>r+3x&W#ig%V(5V0ggD z0II2>;-K({GF=%V4GVQf28KiiNI4zE2<h3L1}!>cU|{HFge=PfX_?Kyz|hYKnVxwE z5@29p*vH7gaF3CJVKO5FgBc?OgE|ufLj?l^!$bxK1{Ed-hHp@ZP6j1Z1_lPndT6}K zGBGenFflM(WME*ZWnf@XV}!J5B^enQ3>g_1G@<H1_RNMFlEJ{hkOO5iAjvO=iZL=V zFc?9_=P)ub>;Y+p;v<X<3`;=czo2z^mW&Jx;!sU*p!8-&28LIl^;?V#4Cg^97phT* zk%6I_k%3_r1EfOv#R!?WI>f-hAOzLB9I6(yQVz-lQ!^PD7?c?q7$$*v;I#$y4AM*t z4D&#f35*O3yP*;=3KTnXP#^e11@AL3FdT!j`Is0OlA)H?F)}ceGcbVKAPi?f9%5o( zSi%Tt4W9t5`2*!5(5fd;s4*}wd<S`ev7Uip87QAKFfe#AGBEsSgpA{Z%>Ts5z)%EY zfR<!|;-8U$p$2N%ZYX^lv^J2Df#D5k2_6Fj!%fhlLZ}|l3MpYm1_lKt28KeYdQe+q zJ7{{Jk%3_sNFB(BJ&X(thd~@P{2Qw2Ih2M;p8_q@WMp7?&cML1hJk@WjFEw15mb#f z69a=SBLl-P1_p+^j0_AP7#SF(7#SGWFfuTdKn-}p$iQ#}6!)O~Ujtg123leXD#f4* z>KGUp_?aNhXV9|Ctqcqd2cZ_MgVJJ5kQUAv1_p+3P;tz}z~INoz|hM88FCe7VgL;r zflbU}WMJS2<$usLJy?W+!HkK4L5Yc>o`Dr=;9AfsNJa*R2u4W5VjTkm!)mBvCTJP} zaY0k<T8s<~O&|^wbAtMgQ1%N(NQ1@_s)v<{fuWL-fq{>af#EnK149U?2xfrv50`@C ze>y1snHU(1p$-9=vx0$vffu?W7Brg)S{nuu2Vp^|I?yUe7e)q#w~P!7){G1c8$b(A zL4_Ct1H*I%28Kl-#ZU}dvI$~>7Bqrrb|wY}Zjb{(@qdnifgzNUfkB3efuWs|fnhl# zq^q=(fq_Ab3DVC4HL*Y%D?kMfBcy==S``Hn+Yc&IK@89;NYH9pr~{!w45d)UJ<uE> zl)aS^(z*iK&#(<t9y2m9w1Os}85tN-pav{pWMH_>2<f|D1QkMzkhWVBBLf33s9a!x zG$^2Ef+=4{28I|028IP-9s`2|BV>67hznX9yb@H2f!YQP3=Acp@*gAt!k~4zAi9B( zfuWCqf#DUXRs;nRX!aW<0SXN${R~RqWMp7C2X!oH9q~Ly28JrAoDfv+Uq%Lo7oY|% z0|P?`0|Ub&&?;Hb8X~Yf*#8U+{!l}tm>3w&f|k>PB^el+LFG0mVS-jQg9;a@x{08& zfsuhBA5=^;GBB(F)p!gH40}O22UIUW9RZ?1%Wy&TA5be9svk7t1`-nimH&O9suHvq z7%FMP#K3S2$_6O{Eu%GMVqo|R;(*!*pp*<+UJWYoK-Dg&)dZDW&%nTNhmnEdJ*Wa> zVqo~sz`&r##K2GuYHoolI3@;$yP%2(w1^Q@27vTcGB7Z_gjy&IrB^XBFx+5(v{*%% z7#Mbd6oS@@FflMNf+`bGT3}>g;AUiCcnAt5Mh1qBjF9#sXbnjh0|UcPMh1o+1_lNh zsF?*&8nh4@WSloB{ym_A3qgi4Ffg2AWMG)Uz`)?d$iVOyq>6!o;SvL+18Tv<z);G_ zz_1cz5fcML2O|T+Ay84u2<dvOGBPkcf$9NK9~mHhgtrU~4F4Dz81{q86wrh<)J}a+ z{s$>!W@KQHXJh~^f&y{Di_sMs85rg;Ffe3;d<dHH1j|5(TnGi84KDz(85tPt85tN( zLk)fmD#REW7*2p1ql}QnE6Pj^3<nq)7;Zt;fV6po(w{XnvGG79KudB!lAyJ~AR2^0 zE0?=LjS)~$%)r3V#=yX^9;%)hs=t+yf#DxWjuA3wHI0#hfr*iU;U@zF!#hR>hHnfE z42wZg2r>{<0)ona&{|BWeugea28NwbLu;WlXqmk{69dD1Mh1q@j0_B(pezPz*E2FO zl!3|wsA0$yXv*#EO$G)Q0|o{O0|thxHz8d+kQ$J&|3Tm;xa^o*Zm79A$7nL+W<wJ> z=FPe0``9L*x0^b-#eTtNUk3rE&1;?dI5xX`?_%_E3~~?FQwS|iO)Je&D9<d(P|(#) z&PYwpF38W!D^W<yOHs(rOI65E1BsWG=qTvwCKeQ==B0pGCHbYv86ZY!UQT9S_TnEt zESoI@tr$0V2VG;@+!LD2!Wt0b>F>AsZDa<=W|ibJ?#bKp;x?=0hsiJ*Sx&C&wyihU zH8j#SG*>V*vNAT*HZU?U;0o~94N5J`EY8f&({)KKNwrciGB7mLH89mRGEguyu`)Jx z&dAJ5R0u9f%u7iuN>K>O%uVI;Nh~hW4Jk^@E6zzQ$uF`}@XAz(%1F&ik1SQNsRA)7 zOS3W^(sL6tbM%t)bM3f%67$k0YxgW<)SY~$CqtZp>)F~R3MGj}3NLrhc(HEDlO4OP zxEQ!5TldK@KW=E+9Mw04akJcnJxrT_P2y*pJa6Xg$x*W=Pv)E5#`~yYMsa0vNoww+ zhM5YR=giJ$+#E62hIR7PMbEik?3?_weV0OVeo^Y?j>QugC#x)tV6>WCzf@Twz(3eC zLc!75r&!_Hl=aVg8X2CpZhkp^?c_a6mtvFL)9`e{`pJ8iN=%--Od|pmbB`OEp6uuY zMGYd#o^?zE36z$+-_rw&EHD!sTMAEhtbIPK<;jkQCp%U>+0pP~>-Hym_dlPq;@R|V z&*pSKpR!`}=4JO785K59TydUp^6UWR$vvwqH#4plW8AE@W(L#d@9WrLvHE+H6Dy<D zW``YI%$r&F2yjm}IG)AYvEb#*C7X{Q-^MMV@u*>rYVo6nxi4q7yx2ccbMnN?`<U}{ zQZ|QPkzkb3fCTf?^*a?(E0S|cLGi8dY)<F1sU4b|d#^rX;ee{p++2O@HmewvhpJw4 Ya@m7@j8>CP9-fp&D8Mjpvh1S{08nPUT>t<8 diff --git a/po/zh_CN.po b/po/zh_CN.po index 56078a72..da3341d8 100644 --- a/po/zh_CN.po +++ b/po/zh_CN.po @@ -1,25 +1,27 @@ # Chinese (simplified) translation for tar. -# Copyright (C) 2008 Free Software Foundation, Inc. +# Copyright (C) 2008 Free Software Foundation, Inc. # 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>, 2016. +# Boyuan Yang <073plan@gmail.com>, 2018. # -#: src/create.c:1599 +#: src/create.c:1598 msgid "" msgstr "" -"Project-Id-Version: tar 1.29\n" +"Project-Id-Version: tar 1.30\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" -"PO-Revision-Date: 2016-05-20 14:33China Standard Time\n" -"Last-Translator: Ji ZhengYu <zhengyuji@gmail.com>\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" +"PO-Revision-Date: 2018-10-21 09:49-0400\n" +"Last-Translator: Boyuan Yang <073plan@gmail.com>\n" "Language-Team: Chinese (simplified) <i18n-zh@googlegroups.com>\n" "Language: zh_CN\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8-bit\n" +"Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.2\n" #: gnu/argmatch.c:134 #, c-format @@ -96,7 +98,7 @@ msgid "give a short usage message" msgstr "显示简短的用法说明" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "名称" @@ -134,29 +136,29 @@ msgid "write error" msgstr "写错误" #: gnu/getopt.c:278 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous\n" -msgstr "%s: 选项“%s”具有歧义\n" +msgstr "%s: 选项“%s%s”具有歧义\n" #: gnu/getopt.c:284 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" -msgstr "%s: 选项“%s”具有歧义; 可能是:" +msgstr "%s: 选项“%s%s”具有歧义; 可能是:" #: gnu/getopt.c:319 -#, fuzzy, c-format +#, c-format msgid "%s: unrecognized option '%s%s'\n" -msgstr "%s: 无法识别的选项\"%c%s\"\n" +msgstr "%s: 无法识别的选项\"%s%s\"\n" #: gnu/getopt.c:345 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" -msgstr "%s: 选项\"%c%s\"不需要参数\n" +msgstr "%s: 选项\"%s%s\"不需要参数\n" #: gnu/getopt.c:360 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' requires an argument\n" -msgstr "%s: 选项\"%s\"需要带参数\n" +msgstr "%s: 选项“%s%s”需要带参数\n" #: gnu/getopt.c:621 #, c-format @@ -231,12 +233,12 @@ msgstr "^[yY]" msgid "^[nN]" msgstr "^[nN]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "由 %s (%s) 打包\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "由 %s 打包\n" @@ -244,12 +246,11 @@ msgstr "由 %s 打包\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: gnu/version-etc.c:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "(C)" -#: gnu/version-etc.c:86 -#, fuzzy +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -259,9 +260,9 @@ msgid "" "\n" msgstr "" "\n" -"License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl." +"许可证 GPLv3+:GNU GPL 第 3 版或更新版本 <https://gnu.org/licenses/gpl." "html>\n" -"这是自由软件:您可以自由地更改并重新发布它。\n" +"这是自由软件:您可以自由地更改并对其重新发布。\n" "在法律所允许的范围内不含任何担保。\n" "\n" @@ -384,7 +385,7 @@ msgid "" "Report bugs to: %s\n" msgstr "" "\n" -"将错误报告发送到: %s。翻译错误报告给 <i18n-zh@googlegroups.com>\n" +"请将错误报告发送到: %s,翻译错误报告给 <i18n-zh@googlegroups.com>\n" #: gnu/version-etc.c:247 #, c-format @@ -397,14 +398,13 @@ msgid "%s home page: <%s>\n" msgstr "%s 主页: <%s>\n" #: gnu/version-etc.c:253 -#, fuzzy, c-format +#, c-format msgid "%s home page: <https://www.gnu.org/software/%s/>\n" -msgstr "%s 主页: <http://www.gnu.org/software/%s/>\n" +msgstr "%s 主页:<https://www.gnu.org/software/%s/>\n" #: gnu/version-etc.c:256 -#, fuzzy msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n" -msgstr "GNU 软件的通用帮助: <http://www.gnu.org/gethelp/>\n" +msgstr "GNU 软件的通用帮助:<https://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 @@ -513,194 +513,194 @@ msgstr "无法连接至 %s: 解析失败" #: lib/rtapelib.c:502 #, c-format msgid "Cannot redirect files for remote shell" -msgstr "无法为远程 shell重定向文件" +msgstr "无法为远程 shell 重定向文件" #: lib/rtapelib.c:516 #, c-format msgid "Cannot execute remote shell" msgstr "无法执行远程 shell" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "查寻方向超出范围" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "无效的查寻方向" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "无效的查寻偏移量" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "查寻操作的偏移量超出范围" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "无效的字节数" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "字节数超出范围" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "文件结尾出现过早" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "无效操作模式" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "不支持的操作" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "参数异常" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 msgid "Manipulate a tape drive, accepting commands from a remote process" msgstr "接受远程程序的命令操作磁带机" -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "NUMBER" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "设定调试级别" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "FILE" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "设定调试输出文件名" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "无法打开 %s" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "参数过多" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "垃圾命令" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "它似乎不像是一个 tar 归档文件" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "总计读取字节数" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "总计写入字节数" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "总计删除字节数" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(管道)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "无法从终端读取归档内容(缺少 -f 选项?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "无法向终端写入归档内容(缺少 -f 选项?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "record_size 的无效值" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "未给出归档文件名" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "无法验证标准输入/标准输出归档文件" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "归档被压缩。使用 %s 选项" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "无法更新压缩归档文件" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "处于磁带的起点,现在退出" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "错误过多,退出" -#: src/buffer.c:967 +#: src/buffer.c:969 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "记录大小 = %lu 块" -#: src/buffer.c:988 +#: src/buffer.c:990 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "归档中未对齐的块 (%lu 字节)s" -#: src/buffer.c:1075 +#: src/buffer.c:1077 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "无法倒回归档文件;如果没有 -i 可能无法读入它" -#: src/buffer.c:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek 未停在记录边界处" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s:包含无效的卷编号" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "卷编号溢出" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "为 %2$s 准备卷 #%1$d 并按回车:" -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "需得到用户应答时文件结束" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "警告:归档文件不完整" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -711,271 +711,271 @@ msgstr "" " q\t\t终止 tar\n" " y or newline\t继续操作\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! 衍生出一个子 shell\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? 打印此列表\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "没有新的卷;退出。\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "未指定文件名。重试。\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "无效输入。输入 ? 显示帮助。\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "%s 命令失败" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s 在本卷中不连续" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s 在本卷可能连续: 头部包含截短的名字" -#: src/buffer.c:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s 的大小错误 (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "此卷次序有误(%s - %s != %s)" -#: src/buffer.c:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "归档未被标记为匹配 %s" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "卷标 %s 不匹配 %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "%s: 文件名太长而无法贮存在 GNU 多卷头,已被截短" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "写操作未在记录边界处终止" -#: src/compare.c:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "内容不同" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "归档文件中异常的 EOF" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "文件类型不同" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "访问模式不同" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Uid 不同" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "Gid 不同" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "修改时间不同" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "大小不同" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "没有连接到 %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "符号连接不同" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "设备号不同" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "校验" -#: src/compare.c:480 +#: src/compare.c:479 #, c-format msgid "%s: Unknown file type '%c', diffed as normal file" msgstr "%s:未知的文件类型“%c”,与普通文件不同" -#: src/compare.c:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "归档包含带有被移除前导字符的文件名。" -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "归档中有文件被改名。" -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "位于原始文件中的验证可能失败。" -#: src/compare.c:620 +#: src/compare.c:619 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "校验失败:检测到 %d 个无效的头" -#: src/compare.c:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "在 %s 处一个单独的零块" -#: src/create.c:74 +#: src/create.c:73 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s: 包含一个缓存目录标识 %s;%s" -#: src/create.c:263 +#: 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:269 +#: src/create.c:268 #, c-format msgid "value %s out of %s range %s..%s" msgstr "值 %s 超出了 %s 的范围 %s..%s" -#: src/create.c:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "正在生成负八进制头" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, c-format msgid "%s: file name is too long (max %d); not dumped" msgstr "%s:文件名太长(最长 %d);未输出" -#: src/create.c:616 +#: src/create.c:615 #, c-format msgid "%s: file name is too long (cannot be split); not dumped" msgstr "%s:文件名太长(不能被分割);未输出" -#: src/create.c:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "%s:连接名太长;未输出" -#: src/create.c:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s:文件在不同的文件系统上;未输出" -#: src/create.c:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "未输出内容" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s:未知的文件类型;忽略文件" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "缺少到 %s 的连接。" -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s: 文件未改变;未输出" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s: 文件是归档文件;未输出" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "未输出目录" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s: 在我们读入文件时文件发生了变化" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s: 忽略套接字(socket)" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s: 忽略权限" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "跳转到下一个头" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "从归档文件中删除非头信息" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s:不可信的旧时间戳 %s" -#: src/extract.c:320 +#: src/extract.c:319 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s:时间戳 %s 是未来的 %s 秒之后" -#: src/extract.c:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s:创建目录时出现意外的不一致" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s: 忽略已存在的文件" @@ -998,7 +998,7 @@ msgstr "正试图将符号连接展开为硬连接" msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s:无法展开 -- 文件一直延伸至另一卷中" -#: src/extract.c:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "异常的长名字头部" @@ -1015,7 +1015,7 @@ msgstr "当前的“%s”更新或一样新" #: src/extract.c:1664 #, c-format msgid "%s: Member name contains '..'" -msgstr "" +msgstr "%s:成员名称包含“..”" #: src/extract.c:1696 #, c-format @@ -1027,22 +1027,22 @@ msgstr "%s:无法备份该文件" msgid "Cannot rename %s to %s" msgstr "无法将 %s 重命名为 %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s:目录已改名,不再是 %s" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s:目录是新的" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "%s:目录在不同的文件系统上;未输出" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s:目录已被改名" @@ -1127,9 +1127,8 @@ msgid "Malformed dumpdir: empty name in 'R'" msgstr "错误的 dumpdir: “R”中有空名字" #: src/incremen.c:1585 -#, fuzzy msgid "Malformed dumpdir: 'T' not preceded by 'R'" -msgstr "错误的 dumpdir: 'T' not preceded by 'R'" +msgstr "错误的 dumpdir:“T”未以“R”作为前导" #: src/incremen.c:1591 msgid "Malformed dumpdir: empty name in 'T'" @@ -1169,372 +1168,373 @@ msgstr "%s:正在删除 %s\n" msgid "%s: Cannot remove" msgstr "%s:无法删除" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s:忽略" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "块 %s:** 空块 **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "块 %s:** 文件结束 **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "块 %s:" #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, 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:817 +#: src/list.c:818 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "归档八进制值 %.*s 超出 %s 的范围" -#: src/list.c:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "归档包含过时的 base-64 头" -#: src/list.c:852 +#: src/list.c:853 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "归档签署的 base-64 字符串 %s 超出范围 %s" -#: src/list.c:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "归档值 %s 超出 %s 的范围 %s..%s" -#: src/list.c:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " 连接到 %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " 未知的文件类型 %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--长连接--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--长名--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--卷头--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--从 %s 字节继续--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "正在创建目录:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "将 %s 改名为 %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s:无法重命名为 %s" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "将 %s 的名字改回 %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s:文件在我们读入之前被删除了" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "子进程" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "进程内通道" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "本地文件名选择:" -#: src/names.c:72 +#: src/names.c:71 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "添加指定的 FILE 至归档(如果名字以 - 开始会很有用的)" -#: src/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "DIR" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "改变至目录 DIR" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "从 FILE 中获取文件名来解压或创建文件" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "-T 读取以空终止的名字; 隐含 --verbatim-files-from" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "禁用上一次的效果 --null 选项" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "unquote 输入文件或成员名称(默认)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "不要unquote 输入文件或成员名称" -#: src/names.c:87 -#, fuzzy +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" -msgstr "-T 逐字读取文件名(不处理选项)" +msgstr "-T 逐字读取文件名(不处理选项或进行转义)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "-T 把以‘-’开始的文件作为选项(默认)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "PATTERN" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "排除以 PATTERN 指定的文件" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "排除 FILE 中列出的模式串" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "除标识文件本身外,排除包含 CACHEDIR.TAG 的目录中的内容" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "排除包含 CACHEDIR.TAG 的目录中所有内容" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "排除包含 CACHEDIR.TAG 的目录" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "除 FILE 自身外,排除包含 FILE 的目录中的内容" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "若存在FILE, 则从其中读取每个目录的例外匹配项" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" msgstr "若存在FILE, 则从其中为每个目录及其子目录读取需要排除的例外匹配项" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "排除包含 FILE 的目录中的所有内容" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "排除包含 FILE 的目录" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "排除版本控制系统目录" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "从VCS 忽略文件中读取排除匹配项" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "排除备份和锁文件" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" -msgstr "目录递归(默认)" +msgstr "目录递归(默认)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "避免目录中的自动降级" -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "文件名匹配选项(同时影响排除和包括模式串):" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "模式串匹配文件名头部" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" -msgstr "模式串匹配任意‘/’后字符(默认对 exclusion 有效)" +msgstr "模式串匹配任意‘/’后字符(对 exclusion 为默认值)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "忽略大小写" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "匹配大小写(默认)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" -msgstr "使用通配符(默认对 exclusion )" +msgstr "使用通配符(对 exclusion 为默认值)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "逐字匹配字符串" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" -msgstr "通配符匹配‘/’(默认对exclusion 有效)" +msgstr "通配符匹配‘/’(对 exclusion 为默认值)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "通配符不匹配‘/’" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" +"下列选项在归档创建或更新模式中用在任何非可选参数之后。这些选项是可选的,且仅" +"影响跟随其后的参数。请在安排参数顺序时谨慎处理。" -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" -msgstr "" +msgstr "-C %s 无效果" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" -msgstr "" +msgstr "--%s %s 无效果" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" -msgstr "" +msgstr "--%s 无效果" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "命令行" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s: 从%s 里读取的文件列表已经从%s 里读取了" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "无法拆分字符串‘%s’: %s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s: 读取的文件名含有空字符" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "文件名中所使用的字符匹配模式" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" msgstr "使用 --wildcards 打开模式匹配,或是 --no-wildcards 来关闭之" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s:归档中找不到" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s:没有在归档中找到需要的" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "归档卷标不匹配" -#: src/names.c:1717 +#: src/names.c:1747 msgid "" "Using -C option inside file list is not allowed with --listed-incremental" msgstr "在文件列表中 -C 选项与 --listed-incremental 选项不许合用" -#: src/names.c:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "仅一个 -C 选项允许与 --listed-incremental 合用" -#: src/tar.c:88 +#: src/tar.c:87 #, c-format msgid "Options '%s' and '%s' both want standard input" msgstr "选项“%s”和“%s”都需要标准输出" -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s:无效的归档格式" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "在不兼容的归档格式上需要 GNU 特征" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1550,7 +1550,7 @@ 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’ 将许多文件一起保存至一个单独的磁带或磁盘归档,并能从归档中单独还原" +"GNU ‘tar’ 将许多文件一起保存至一个单独的磁带或磁盘归档,并能从归档中单独还原" "所需文件。\n" "\n" "示例\n" @@ -1740,13 +1740,13 @@ msgstr "创建子目录以避免解压松散文件" #: src/tar.c:491 msgid "Select output stream:" -msgstr "选择输出流:" +msgstr "选择输出流:" #: src/tar.c:494 msgid "extract files to standard output" msgstr "解压文件至标准输出" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "COMMAND" @@ -1782,7 +1782,7 @@ msgstr "用FILE 映射文件所有者UIDs 和名字" msgid "use FILE to map file owner GIDs and names" msgstr "用FILE 映射文件所有者GIDs 和名字" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "DATE-OR-FILE" @@ -1897,23 +1897,23 @@ msgstr "为xattr 关键字指定排除匹配项" #: src/tar.c:571 msgid "Enable the SELinux context support" -msgstr "开启SELinux 上下文支持" +msgstr "开启 SELinux 上下文支持" #: src/tar.c:573 msgid "Disable the SELinux context support" -msgstr "关闭SELinux 上下文支持" +msgstr "关闭 SELinux 上下文支持" #: src/tar.c:575 msgid "Enable the POSIX ACLs support" -msgstr "开启POSIX ACLs 支持" +msgstr "开启 POSIX ACLs 支持" #: src/tar.c:577 msgid "Disable the POSIX ACLs support" -msgstr "关闭POSIX ACLs 支持" +msgstr "关闭 POSIX ACLs 支持" #: src/tar.c:582 msgid "Device selection and switching:" -msgstr "设备选择和切换:" +msgstr "设备选择和切换:" #: src/tar.c:584 msgid "ARCHIVE" @@ -1983,7 +1983,7 @@ msgstr "读取时重新分块(只对 4.2BSD 管道有效)" msgid "Archive format selection:" msgstr "选择归档格式:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "FORMAT" @@ -1997,11 +1997,11 @@ msgstr "FORMAT 是以下格式中的一种:" #: src/tar.c:641 msgid "old V7 tar format" -msgstr "old V7 tar 格式" +msgstr "旧的 V7 tar 格式" #: src/tar.c:644 msgid "GNU format as per tar <= 1.12" -msgstr "GNU 格式 as per tar <= 1.12" +msgstr "GNU 格式,其中 tar 版本 <= 1.12" #: src/tar.c:646 msgid "GNU tar 1.13.x format" @@ -2065,118 +2065,118 @@ msgstr "PROG" msgid "filter through PROG (must accept -d)" msgstr "通过 PROG 过滤(必须是能接受 -d 选项的程序)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "本地文件选择:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "创建归档时保存在本地文件系统中" -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "不要从文件名中清除引导符‘/’" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" msgstr "跟踪符号链接;将它们所指向的文件归档并输出" -#: src/tar.c:697 +#: src/tar.c:698 msgid "follow hard links; archive and dump the files they refer to" msgstr "跟踪硬链接;将它们所指向的文件归档并输出" -#: src/tar.c:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "MEMBER-NAME" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "从归档中的 MEMBER-NAME 成员处开始读取归档" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "只保存比 DATE-OR-FILE 更新的文件" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "DATE" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "当只有数据改变时比较数据和时间" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "CONTROL" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "在删除前备份,选择 CONTROL 版本" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "STRING" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" msgstr "" "在删除前备份,除非被环境变量 SIMPLE_BACKUP_SUFFIX 覆盖,否则覆盖常用后缀(‘’)" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "文件名变换:" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "解压时从文件名中清除 NUMBER 个引导部分" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "EXPRESSION" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "使用 sed 代替 EXPRESSION 来进行文件名变换" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "提示性输出:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "详细地列出处理的文件" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "KEYWORD" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" -msgstr "警告控制:" +msgstr "警告控制" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "每隔 NUMBER 个记录显示进度信息(默认为 10 个)" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "ACTION" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "在每个检查点上执行 ACTION" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "只要不是所有链接都被输出就打印信息" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "SIGNAL" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2187,125 +2187,125 @@ msgstr "" "号为: SIGHUP,SIGQUIT,SIGINT,SIGUSR1 和 SIGUSR2;同时也接受不带 SIG 前缀的" "信号名称" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "以 UTC 格式打印文件修改时间" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "按文件原本时间格式打印" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "将详细输出发送至 FILE" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "每个信息都显示归档内的块数" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "每次操作都要求确认" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "显示 tar 默认选项" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "显示快照文件区的有效范围" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "列表或解压时,列出每个不匹配查找标准的目录" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "显示变换后的文件名或归档名" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "STYLE" -#: src/tar.c:765 +#: src/tar.c:766 msgid "set name quoting style; see below for valid STYLE values" msgstr "设置名称引用风格;有效的 STYLE 值请参阅以下说明" -#: src/tar.c:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "来自 STRING 的额外的引用字符" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "禁用来自 STRING 的字符引用" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "兼容性选项:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "创建归档时,相当于 --old-archive;展开归档时,相当于 --no-same-owner" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "其它选项:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "禁用某些潜在的有危险的选项" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "‘%s’无法与‘%s’一起用" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" msgstr "您不能指定\"-Acdtrux\", \"--delete\"或是\"--test-label\"外的选项" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "压缩选项冲突" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "未知的信号名称: %s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "找不到数据样板文件" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "把未知的时间格式 %2$s 替换为 %1$s" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "选项 %s: 将日期 ‘%s’ 当作 %s" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "通过 %s 过滤归档" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "--quoting-style 选项的有效参数为:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2313,288 +2313,296 @@ msgstr "" "\n" "此 tar 默认为:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "无效的所有者或组ID" -#: src/tar.c:1347 -#, fuzzy +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "无效的块因子" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "无效的磁带长度" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "无效的增量度" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "多于一个时间阈值" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "无效的离散版本值" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" -msgstr "此平台不支持 --atime-preserve=‘system’ " +msgstr "此平台不支持 --atime-preserve='system'" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "--checkpoint 值不是个整数" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "选项中给出无效的访问模式" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "无效的数字" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "无效的记录大小" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "记录大小必须是 %d 的倍数。" -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "无效的元素数" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "仅允许使用一个 --to-command 选项" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "错误的压缩参数: %s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "未知的压缩参数: ‘%c’" -#: src/tar.c:2066 +#: src/tar.c:2075 #, c-format msgid "Options '-[0-7][lmh]' not supported by *this* tar" msgstr "此版本 tar 不支持选项“-[0-7][lmh]”" -#: src/tar.c:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu: 错误定位" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "错误解析 %s" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[FILE]..." -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "%s 中有非选项参数" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "无法分割 TAR_OPTIONS: %s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "旧选项“%c”需要参数。" -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "没有一个文件列表时 --occurrence 是没有意义的" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "多个归档文件需要使用“-M”选项" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "没有 --listed-incremental 选项的话 --level 选项是无意义的" -#: src/tar.c:2424 +#: 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "无法检验多卷归档文件" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "无法检验压缩归档文件" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "无法使用多卷压缩归档文件" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "无法联结压缩归档文件" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "--clamp-mtime 参数需要先用 --mtime 指定日期" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option 只能用于 POSIX 归档中" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "--acls 只能用于 POSIX 归档中" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "--selinux 只能用于 POSIX 归档中" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "--xattrs 只能用于 POSIX 归档中" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" msgstr "无法推断顶层目录名; 请用--one-top-level=DIR 明确指定" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "卷长度不可小于记录大小" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "谨慎地拒绝创建空归档文件" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr "选项“-Aru”与“-f -”不兼容" -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "您必须从\"-Acdtrux\", \"--delete\"或是\"--test-label\"中指定一个选项" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "由于前次错误,将以上次的错误状态退出" -#: src/update.c:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s:文件缩小 %s 字节" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "不能使用模式 %s" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "不能覆盖关键字 %s" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "错误的扩展头: 缺少 length" -#: src/xheader.c:677 +#: src/xheader.c:695 #, c-format msgid "Extended header length %*s is out of range" msgstr "扩展头长度 %*s 超出范围" -#: src/xheader.c:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "错误的扩展头: length 后缺少空白符" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "错误的扩展头: 缺少等于符号" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "错误的扩展头: 缺少空行" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "忽略未知的扩展头关键字‘%s’" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, 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:1053 +#: src/xheader.c:1071 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "扩展头 %s=%s 超出范围 %s..%s" -#: src/xheader.c:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "错误的扩展头: %s=%s 无效" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "错误的扩展头: %s=%s 溢出" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "错误的扩展头: %s 无效: 非预期的分隔符 %c" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "错误的扩展头: %s 无效: 奇怪的数值" -#: src/checkpoint.c:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s: 无效的超时设置" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s: 未知的检查点操作" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "写入" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "读取" @@ -2602,7 +2610,7 @@ msgstr "读取" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "写入操作的检查点 %u" @@ -2611,12 +2619,12 @@ msgstr "写入操作的检查点 %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "读取操作的检查点 %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2624,90 +2632,94 @@ msgstr "" "genfile 为 GNU paxutils 测试软件操作数据文件。\n" "选项为:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "文件创建选项:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "SIZE" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "创建指定 SIZE 的文件" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "写入文件 NAME,而不是标准输出" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "从 FILE 读取文件名" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T 读取以 NULL 终止的名字" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "以指定的 PATTERN 填充文件。PATTERN 可以是‘default’或是‘zeros’" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "稀疏文件的块大小" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "生成稀疏文件。命令行其余选项指定 map 文件。" -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "OFFSET" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "在写入数据前定位至指定的偏移位" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "隐藏不重要的诊断信息" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "文件统计选项:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "打印每个给定文件的 stat 结构定义的内容。默认 FORMAT 是: " -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "同步执行选项:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "OPTION" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "执行 ARGS。与 --checkpoint 或 --cut,--append,--touch 中的一个一起使用时有用" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "只要达到 checkpoint NUMBER 指定的数值就执行指定的操作(见下)" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "为下一个 --touch 选项设定日期" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "显示执行的 checkpoints 以及 COMMAND 的退出状态" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2715,128 +2727,128 @@ msgstr "" "同步执行操作。当达到由 --checkpoint 选项指定的 checkpoint 数值时会执行这些操" "作。" -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "截短 FILE 至由前面 --length 选项指定的大小(如果未指定的话,默认 0)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "添加 SIZE 字节至 FILE。SIZE 由前面的 --length 选项指定。" -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "更新 FILE 的访问和修改时间" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "执行 COMMAND" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" -msgstr "" +msgstr "删除 FILE" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "无效的值: %s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "数值超出所允许的范围: %s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "负值: %s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "stat(%s) 错误" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "需要文件长度为 %lu,实际为 %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "所创建的文件非稀疏文件" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "“%s”附近解析数字错误" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "未知的数据格式" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[ARGS...]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "无法打开“%s”" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "无法定位" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "文件名包含空字符" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "使用 --file 选项无法在标准输出上生成离散文件" -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" -msgstr "不正确的掩码(“%s”附近)" +msgstr "不正确的掩码(“%s”附近)" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "未知的文件掩码位“%s”" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "无法设定“%s”的时间" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" -msgstr "无法删除“%s”" +msgstr "无法截断“%s”" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "命令失败: %s" -#: tests/genfile.c:781 -#, fuzzy, c-format +#: tests/genfile.c:772 +#, c-format msgid "cannot stat `%s'" -msgstr "无法删除“%s”" +msgstr "无法取得“%s”的状态(stat)" -#: tests/genfile.c:785 -#, fuzzy, c-format +#: tests/genfile.c:776 +#, c-format msgid "cannot remove directory `%s'" -msgstr "无法设定“%s”的时间" +msgstr "无法删除目录“%s”" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "无法删除 \"%s\"" @@ -2864,7 +2876,7 @@ msgstr "命令由信号 %d 停止了\n" #: tests/genfile.c:929 #, c-format msgid "Command dumped core\n" -msgstr "命令输出 core\n" +msgstr "命令核心转储\n" #: tests/genfile.c:932 #, c-format @@ -2876,6 +2888,9 @@ msgstr "命令终止\n" msgid "--stat requires file names" msgstr "--stat 选项需要文件名" +#~ msgid "OPTION" +#~ msgstr "OPTION" + #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: ARGP_HELP_FMT 参数值必须为正" diff --git a/po/zh_TW.gmo b/po/zh_TW.gmo index e29da0f247e3585ed2b9bb57a01eb572c352d1d5..8b39a4266bd094403677afb0ef694561156c570f 100644 GIT binary patch delta 14756 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�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 YcQX6IG`{CsH@;ZW0TbGsb}&I20JO<?mjD0& delta 12876 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 W4s&c?y;p>L@~so`oBd8kN&^79K^_$V diff --git a/po/zh_TW.po b/po/zh_TW.po index 54e7e955..9043f7fc 100644 --- a/po/zh_TW.po +++ b/po/zh_TW.po @@ -2,15 +2,16 @@ # Copyright (C) 2005 Free Software Foundation, Inc. # This file is distributed under the same license as the tar package. # Wei-Lun Chao <bluebat@member.fsf.org>, 2009, 2013, 2016. +# pan93412 <pan93412@gmail.com>, 2018. # -#: src/create.c:1599 +#: src/create.c:1598 msgid "" msgstr "" -"Project-Id-Version: tar 1.29\n" +"Project-Id-Version: GNU tar 1.30\n" "Report-Msgid-Bugs-To: bug-tar@gnu.org\n" -"POT-Creation-Date: 2017-12-17 12:31+0200\n" -"PO-Revision-Date: 2016-10-10 23:39+0800\n" -"Last-Translator: Wei-Lun Chao <bluebat@member.fsf.org>\n" +"POT-Creation-Date: 2019-02-23 14:57+0200\n" +"PO-Revision-Date: 2018-05-05 19:29+0800\n" +"Last-Translator: pan93412 <pan93412@gmail.com>\n" "Language-Team: Chinese (traditional) <zh-l10n@linux.org.tw>\n" "Language: zh_TW\n" "MIME-Version: 1.0\n" @@ -18,6 +19,7 @@ msgstr "" "Content-Transfer-Encoding: 8bit\n" "X-Bugs: Report translation errors to the Language-Team address.\n" "Plural-Forms: nplurals=1; plural=0;\n" +"X-Generator: Poedit 2.0.6\n" #: gnu/argmatch.c:134 #, c-format @@ -94,7 +96,7 @@ msgid "give a short usage message" msgstr "給出簡短的使用訊息" #: gnu/argp-parse.c:83 src/tar.c:507 src/tar.c:509 src/tar.c:612 -#: tests/genfile.c:134 +#: tests/genfile.c:129 msgid "NAME" msgstr "名稱" @@ -132,29 +134,29 @@ msgid "write error" msgstr "寫入錯誤" #: gnu/getopt.c:278 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous\n" -msgstr "%s:選項 %s 是模稜兩可的\n" +msgstr "%s:選項「%s%s」是模稜兩可的\n" #: gnu/getopt.c:284 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' is ambiguous; possibilities:" -msgstr "%s:選項 %s 是模稜兩可的;可能是:" +msgstr "%s:選項「%s%s」是模稜兩可的;可能是:" #: gnu/getopt.c:319 -#, fuzzy, c-format +#, c-format msgid "%s: unrecognized option '%s%s'\n" -msgstr "%s:無法辨識的選項 %c%s\n" +msgstr "%s:無法辨識的選項「%s%s」\n" #: gnu/getopt.c:345 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' doesn't allow an argument\n" -msgstr "%s:選項 %c%s 不允許有引數\n" +msgstr "%s:選項「%s%s」不允許有引數\n" #: gnu/getopt.c:360 -#, fuzzy, c-format +#, c-format msgid "%s: option '%s%s' requires an argument\n" -msgstr "%s:選項 --%s 需要一個引數\n" +msgstr "%s:選項「%s%s」需要一個引數\n" #: gnu/getopt.c:621 #, c-format @@ -229,12 +231,12 @@ msgstr "^[yY是]" msgid "^[nN]" msgstr "^[nN否]" -#: gnu/version-etc.c:74 +#: gnu/version-etc.c:73 #, c-format msgid "Packaged by %s (%s)\n" msgstr "由 %s (%s) 打包套件\n" -#: gnu/version-etc.c:77 +#: gnu/version-etc.c:76 #, c-format msgid "Packaged by %s\n" msgstr "由 %s 打包套件\n" @@ -242,12 +244,11 @@ msgstr "由 %s 打包套件\n" #. TRANSLATORS: Translate "(C)" to the copyright symbol #. (C-in-a-circle), if this symbol is available in the user's #. locale. Otherwise, do not translate "(C)"; leave it as-is. -#: gnu/version-etc.c:84 +#: gnu/version-etc.c:83 msgid "(C)" msgstr "©" -#: gnu/version-etc.c:86 -#, fuzzy +#: gnu/version-etc.c:85 msgid "" "\n" "License GPLv3+: GNU GPL version 3 or later <https://gnu.org/licenses/gpl." @@ -395,12 +396,11 @@ msgid "%s home page: <%s>\n" msgstr "%s 首頁:<%s>\n" #: gnu/version-etc.c:253 -#, fuzzy, c-format +#, c-format msgid "%s home page: <https://www.gnu.org/software/%s/>\n" msgstr "%s 首頁:<http://www.gnu.org/software/%s/>\n" #: gnu/version-etc.c:256 -#, fuzzy msgid "General help using GNU software: <https://www.gnu.org/gethelp/>\n" msgstr "使用 GNU 軟體的一般說明:<http://www.gnu.org/gethelp/>\n" @@ -518,187 +518,187 @@ msgstr "無法將檔案重導至遠端命令殼" msgid "Cannot execute remote shell" msgstr "無法執行遠端命令殼" -#: rmt/rmt.c:432 +#: rmt/rmt.c:436 msgid "Seek direction out of range" msgstr "尋求方向超出範圍" -#: rmt/rmt.c:438 +#: rmt/rmt.c:442 msgid "Invalid seek direction" msgstr "無效的尋求方向" -#: rmt/rmt.c:446 +#: rmt/rmt.c:450 msgid "Invalid seek offset" msgstr "無效的尋求偏移" -#: rmt/rmt.c:452 +#: rmt/rmt.c:456 msgid "Seek offset out of range" msgstr "尋求偏移值超出範圍" -#: rmt/rmt.c:493 rmt/rmt.c:544 rmt/rmt.c:608 +#: rmt/rmt.c:497 rmt/rmt.c:548 rmt/rmt.c:612 msgid "Invalid byte count" msgstr "無效的位元組計數" -#: rmt/rmt.c:499 rmt/rmt.c:550 rmt/rmt.c:614 rmt/rmt.c:625 +#: rmt/rmt.c:503 rmt/rmt.c:554 rmt/rmt.c:618 rmt/rmt.c:629 msgid "Byte count out of range" msgstr "位元組計數超出範圍" -#: rmt/rmt.c:558 +#: rmt/rmt.c:562 msgid "Premature eof" msgstr "過早出現檔尾" -#: rmt/rmt.c:601 +#: rmt/rmt.c:605 msgid "Invalid operation code" msgstr "無效的運算碼" -#: rmt/rmt.c:636 rmt/rmt.c:680 +#: rmt/rmt.c:640 rmt/rmt.c:684 msgid "Operation not supported" msgstr "作業不支援" -#: rmt/rmt.c:664 +#: rmt/rmt.c:668 msgid "Unexpected arguments" msgstr "未預期的引數" -#: rmt/rmt.c:689 +#: rmt/rmt.c:693 msgid "Manipulate a tape drive, accepting commands from a remote process" msgstr "操控磁帶機,從遠端行程接受命令" -#: rmt/rmt.c:696 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 -#: src/tar.c:714 src/tar.c:730 tests/genfile.c:171 +#: rmt/rmt.c:700 src/tar.c:432 src/tar.c:436 src/tar.c:610 src/tar.c:625 +#: src/tar.c:715 src/tar.c:731 tests/genfile.c:166 msgid "NUMBER" msgstr "數目" -#: rmt/rmt.c:697 +#: rmt/rmt.c:701 msgid "set debug level" msgstr "設定除錯等級" -#: rmt/rmt.c:698 src/names.c:71 src/names.c:75 src/names.c:93 src/names.c:103 -#: src/names.c:106 src/names.c:109 src/names.c:112 src/names.c:114 -#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:747 -#: tests/genfile.c:136 tests/genfile.c:185 tests/genfile.c:189 -#: tests/genfile.c:192 tests/genfile.c:198 +#: rmt/rmt.c:702 src/names.c:70 src/names.c:74 src/names.c:92 src/names.c:102 +#: src/names.c:105 src/names.c:108 src/names.c:111 src/names.c:113 +#: src/tar.c:430 src/tar.c:511 src/tar.c:513 src/tar.c:615 src/tar.c:748 +#: tests/genfile.c:131 tests/genfile.c:180 tests/genfile.c:184 +#: tests/genfile.c:187 tests/genfile.c:193 msgid "FILE" msgstr "檔案" -#: rmt/rmt.c:699 +#: rmt/rmt.c:703 msgid "set debug output file name" msgstr "設定除錯輸出檔案名稱" -#: rmt/rmt.c:715 rmt/rmt.c:783 +#: rmt/rmt.c:719 rmt/rmt.c:787 #, c-format msgid "cannot open %s" msgstr "無法開啟 %s" -#: rmt/rmt.c:780 tests/genfile.c:977 tests/genfile.c:994 +#: rmt/rmt.c:784 tests/genfile.c:977 #, c-format msgid "too many arguments" msgstr "太多引數" -#: rmt/rmt.c:822 +#: rmt/rmt.c:826 msgid "Garbage command" msgstr "無用的命令" -#: src/buffer.c:474 src/buffer.c:479 src/buffer.c:773 src/buffer.c:1415 -#: src/buffer.c:1452 src/buffer.c:1464 src/buffer.c:1493 src/delete.c:211 -#: src/list.c:275 src/update.c:188 +#: src/buffer.c:476 src/buffer.c:481 src/buffer.c:775 src/buffer.c:1417 +#: src/buffer.c:1454 src/buffer.c:1466 src/buffer.c:1495 src/delete.c:210 +#: src/list.c:274 src/update.c:187 msgid "This does not look like a tar archive" msgstr "這個看起來不像 tar 封存" -#: src/buffer.c:590 +#: src/buffer.c:592 msgid "Total bytes read" msgstr "已讀取位元組總數" -#: src/buffer.c:592 +#: src/buffer.c:594 msgid "Total bytes written" msgstr "已寫入位元組總數" -#: src/buffer.c:593 +#: src/buffer.c:595 msgid "Total bytes deleted" msgstr "已刪除位元組總數" -#: src/buffer.c:672 +#: src/buffer.c:674 msgid "(pipe)" msgstr "(管線)" -#: src/buffer.c:696 +#: src/buffer.c:698 msgid "Refusing to read archive contents from terminal (missing -f option?)" msgstr "拒絕從終端機讀取封存內容 (缺少 -f 選項?)" -#: src/buffer.c:698 +#: src/buffer.c:700 msgid "Refusing to write archive contents to terminal (missing -f option?)" msgstr "拒絕寫入封存內容到終端機 (缺少 -f 選項?)" -#: src/buffer.c:711 +#: src/buffer.c:713 msgid "Invalid value for record_size" msgstr "無效的記錄大小" -#: src/buffer.c:714 +#: src/buffer.c:716 msgid "No archive name given" msgstr "沒有指定封存名稱" -#: src/buffer.c:757 +#: src/buffer.c:759 msgid "Cannot verify stdin/stdout archive" msgstr "無法檢驗標準輸出入封存" -#: src/buffer.c:770 +#: src/buffer.c:772 #, c-format msgid "Archive is compressed. Use %s option" msgstr "封存被壓縮過。使用 %s 選項" -#: src/buffer.c:828 src/tar.c:2455 +#: src/buffer.c:830 src/tar.c:2464 msgid "Cannot update compressed archives" msgstr "無法更新壓縮的封存" -#: src/buffer.c:928 +#: src/buffer.c:930 msgid "At beginning of tape, quitting now" msgstr "位於磁帶起始部分,立刻退出" -#: src/buffer.c:934 +#: src/buffer.c:936 msgid "Too many errors, quitting" msgstr "太多錯誤,離開中" -#: src/buffer.c:967 +#: src/buffer.c:969 #, c-format msgid "Record size = %lu block" msgid_plural "Record size = %lu blocks" msgstr[0] "記錄大小 = %lu 區塊" -#: src/buffer.c:988 +#: src/buffer.c:990 #, c-format msgid "Unaligned block (%lu byte) in archive" msgid_plural "Unaligned block (%lu bytes) in archive" msgstr[0] "封存中未排列的區塊 (%lu 位元組)" -#: src/buffer.c:1075 +#: src/buffer.c:1077 msgid "Cannot backspace archive file; it may be unreadable without -i" msgstr "無法倒退封存檔案;沒有 -i 也許會無法讀取" -#: src/buffer.c:1107 +#: src/buffer.c:1109 msgid "rmtlseek not stopped at a record boundary" msgstr "rmtlseek 無法在記錄分界處停止" -#: src/buffer.c:1168 +#: src/buffer.c:1170 #, c-format msgid "%s: contains invalid volume number" msgstr "%s:包含無效的卷冊號碼" -#: src/buffer.c:1203 +#: src/buffer.c:1205 msgid "Volume number overflow" msgstr "卷冊號碼已滿" -#: src/buffer.c:1218 +#: src/buffer.c:1220 #, c-format msgid "Prepare volume #%d for %s and hit return: " msgstr "準備好卷冊 #%d 以完成 %s 並按下 return: " -#: src/buffer.c:1224 +#: src/buffer.c:1226 msgid "EOF where user reply was expected" msgstr "到達期待使用者回答的檔案末端" -#: src/buffer.c:1229 src/buffer.c:1261 +#: src/buffer.c:1231 src/buffer.c:1263 msgid "WARNING: Archive is incomplete" msgstr "警告:封存不完整" -#: src/buffer.c:1243 +#: src/buffer.c:1245 #, c-format msgid "" " n name Give a new file name for the next (and subsequent) volume(s)\n" @@ -709,271 +709,271 @@ msgstr "" " q 放棄打包\n" " y 或 newline 繼續作業\n" -#: src/buffer.c:1248 +#: src/buffer.c:1250 #, c-format msgid " ! Spawn a subshell\n" msgstr " ! 衍生一個子命令殼\n" -#: src/buffer.c:1249 +#: src/buffer.c:1251 #, c-format msgid " ? Print this list\n" msgstr " ? 列印這個清單\n" -#: src/buffer.c:1256 +#: src/buffer.c:1258 msgid "No new volume; exiting.\n" msgstr "沒有新卷冊;離開。\n" -#: src/buffer.c:1289 +#: src/buffer.c:1291 msgid "File name not specified. Try again.\n" msgstr "檔案名稱尚未指定。再次嘗試。\n" -#: src/buffer.c:1301 +#: src/buffer.c:1303 #, c-format msgid "Invalid input. Type ? for help.\n" msgstr "無效的輸入。按下 ? 以獲得說明。\n" -#: src/buffer.c:1352 +#: src/buffer.c:1354 #, c-format msgid "%s command failed" msgstr "%s 命令失敗" -#: src/buffer.c:1529 src/buffer.c:1545 +#: src/buffer.c:1531 src/buffer.c:1547 #, c-format msgid "%s is not continued on this volume" msgstr "%s 在本卷冊中並不連續" -#: src/buffer.c:1541 +#: src/buffer.c:1543 #, c-format msgid "%s is possibly continued on this volume: header contains truncated name" msgstr "%s 在本卷冊中可能連續:標頭含有截斷的名稱" -#: src/buffer.c:1559 +#: src/buffer.c:1561 #, c-format msgid "%s is the wrong size (%s != %s + %s)" msgstr "%s 的大小有錯 (%s != %s + %s)" -#: src/buffer.c:1574 +#: src/buffer.c:1576 #, c-format msgid "This volume is out of sequence (%s - %s != %s)" msgstr "本卷冊已超出序列 (%s - %s !=%s)" -#: src/buffer.c:1652 src/buffer.c:1678 +#: src/buffer.c:1654 src/buffer.c:1672 #, c-format msgid "Archive not labeled to match %s" msgstr "封存未標誌為符合 %s" -#: src/buffer.c:1682 +#: src/buffer.c:1676 #, c-format msgid "Volume %s does not match %s" msgstr "卷冊 %s 不符合 %s" -#: src/buffer.c:1774 +#: src/buffer.c:1769 #, c-format msgid "" "%s: file name too long to be stored in a GNU multivolume header, truncated" msgstr "%s:檔名太長,無法儲存於 GNU 多重卷冊標頭之中,已截斷" -#: src/buffer.c:1965 +#: src/buffer.c:1962 msgid "write did not end on a block boundary" msgstr "並未於區段界限結束寫入" -#: src/compare.c:98 +#: src/compare.c:97 #, 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:108 src/compare.c:398 +#: src/compare.c:107 src/compare.c:397 msgid "Contents differ" msgstr "內容不同" -#: src/compare.c:134 src/extract.c:1204 src/incremen.c:1508 src/list.c:488 -#: src/list.c:1404 src/xheader.c:847 +#: src/compare.c:133 src/extract.c:1204 src/incremen.c:1508 src/list.c:487 +#: src/list.c:1401 src/xheader.c:865 msgid "Unexpected EOF in archive" msgstr "未預期的封存結尾" -#: src/compare.c:182 src/compare.c:198 src/compare.c:317 src/compare.c:422 +#: src/compare.c:181 src/compare.c:197 src/compare.c:316 src/compare.c:421 msgid "File type differs" msgstr "檔案類型不同" -#: src/compare.c:185 src/compare.c:205 src/compare.c:331 +#: src/compare.c:184 src/compare.c:204 src/compare.c:330 msgid "Mode differs" msgstr "模式不同" -#: src/compare.c:208 +#: src/compare.c:207 msgid "Uid differs" msgstr "Uid 號碼不同" -#: src/compare.c:210 +#: src/compare.c:209 msgid "Gid differs" msgstr "Gid 號碼不同" -#: src/compare.c:214 +#: src/compare.c:213 msgid "Mod time differs" msgstr "修改時間不同" -#: src/compare.c:218 src/compare.c:432 +#: src/compare.c:217 src/compare.c:431 msgid "Size differs" msgstr "大小不同" -#: src/compare.c:267 +#: src/compare.c:266 #, c-format msgid "Not linked to %s" msgstr "並未鏈結至 %s" -#: src/compare.c:293 +#: src/compare.c:292 msgid "Symlink differs" msgstr "符號連結不同" -#: src/compare.c:325 +#: src/compare.c:324 msgid "Device number differs" msgstr "裝置編號不同" -#: src/compare.c:473 +#: src/compare.c:472 #, c-format msgid "Verify " msgstr "驗證 " -#: src/compare.c:480 +#: src/compare.c:479 #, c-format msgid "%s: Unknown file type '%c', diffed as normal file" msgstr "%s:不明檔案類型 %c,會以普通檔案的方式作比較" -#: src/compare.c:535 +#: src/compare.c:534 msgid "Archive contains file names with leading prefixes removed." msgstr "封存包含前置文字被移除的檔案名稱。" -#: src/compare.c:541 +#: src/compare.c:540 msgid "Archive contains transformed file names." msgstr "封存含有變換過的檔案名稱。" -#: src/compare.c:546 +#: src/compare.c:545 msgid "Verification may fail to locate original files." msgstr "查核動作可能無法找到原始檔案" -#: src/compare.c:620 +#: src/compare.c:619 #, c-format msgid "VERIFY FAILURE: %d invalid header detected" msgid_plural "VERIFY FAILURE: %d invalid headers detected" msgstr[0] "驗證失敗:%d 偵測到無效的標頭" -#: src/compare.c:638 src/list.c:252 +#: src/compare.c:637 src/list.c:251 #, c-format msgid "A lone zero block at %s" msgstr "位於 %s 的孤立零值區塊" -#: src/create.c:74 +#: src/create.c:73 #, c-format msgid "%s: contains a cache directory tag %s; %s" msgstr "%s:包含一個快取目錄標記 %s; %s" -#: src/create.c:263 +#: 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:269 +#: src/create.c:268 #, c-format msgid "value %s out of %s range %s..%s" msgstr "數值 %s 已超出 %s 的範圍 %s..%s" -#: src/create.c:329 +#: src/create.c:328 msgid "Generating negative octal headers" msgstr "正在產生負數的八進位標頭" -#: src/create.c:606 src/create.c:669 +#: src/create.c:605 src/create.c:668 #, c-format msgid "%s: file name is too long (max %d); not dumped" msgstr "%s:檔名太長 (最大 %d);未傾印" -#: src/create.c:616 +#: src/create.c:615 #, c-format msgid "%s: file name is too long (cannot be split); not dumped" msgstr "%s:檔名太長 (無法分割);未傾印" -#: src/create.c:643 +#: src/create.c:642 #, c-format msgid "%s: link name is too long; not dumped" msgstr "%s:鏈結名稱太長;未傾印" -#: src/create.c:1106 +#: src/create.c:1105 #, 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:1204 +#: src/create.c:1203 #, c-format msgid "%s: file is on a different filesystem; not dumped" msgstr "%s:檔案位於不同的檔案系統;未傾印" -#: src/create.c:1247 src/create.c:1258 src/incremen.c:610 src/incremen.c:617 +#: src/create.c:1246 src/create.c:1257 src/incremen.c:609 src/incremen.c:616 msgid "contents not dumped" msgstr "內容無法傾印" -#: src/create.c:1464 +#: src/create.c:1463 #, c-format msgid "%s: Unknown file type; file ignored" msgstr "%s:不明檔案類型;忽略該檔案" -#: src/create.c:1576 +#: src/create.c:1575 #, c-format msgid "Missing links to %s." msgstr "缺少連結到 %s。" -#: src/create.c:1737 +#: src/create.c:1736 #, c-format msgid "%s: file is unchanged; not dumped" msgstr "%s:檔案沒有變更;未傾印" -#: src/create.c:1746 +#: src/create.c:1745 #, c-format msgid "%s: file is the archive; not dumped" msgstr "%s:檔案是封存;未傾印" -#: src/create.c:1774 src/incremen.c:603 +#: src/create.c:1773 src/incremen.c:602 msgid "directory not dumped" msgstr "目錄未傾印" -#: src/create.c:1846 +#: src/create.c:1845 #, c-format msgid "%s: file changed as we read it" msgstr "%s:檔案在讀取時已變更" -#: src/create.c:1922 +#: src/create.c:1921 #, c-format msgid "%s: socket ignored" msgstr "%s:忽略通訊端" -#: src/create.c:1928 +#: src/create.c:1927 #, c-format msgid "%s: door ignored" msgstr "%s:忽略匣門" -#: src/delete.c:216 src/list.c:288 src/update.c:192 +#: src/delete.c:215 src/list.c:287 src/update.c:191 msgid "Skipping to next header" msgstr "跳至下一個標頭" -#: src/delete.c:281 +#: src/delete.c:280 msgid "Deleting non-header from archive" msgstr "從封存中刪除無標頭者" -#: src/extract.c:302 +#: src/extract.c:301 #, c-format msgid "%s: implausibly old time stamp %s" msgstr "%s:難以確信的舊時間戳記 %s" -#: src/extract.c:320 +#: src/extract.c:319 #, c-format msgid "%s: time stamp %s is %s s in the future" msgstr "%s:時間戳記 %s 代表未來的 %s 秒" -#: src/extract.c:553 +#: src/extract.c:552 #, c-format msgid "%s: Unexpected inconsistency when making directory" msgstr "%s:產生目錄時有未預期的不一致" -#: src/extract.c:771 +#: src/extract.c:770 #, c-format msgid "%s: skipping existing file" msgstr "%s:跳過既有的檔案" @@ -996,7 +996,7 @@ msgstr "嘗試解開符號連結為硬式連結" msgid "%s: Cannot extract -- file is continued from another volume" msgstr "%s:無法解開 -- 檔案延續自其他卷冊" -#: src/extract.c:1603 src/list.c:1167 +#: src/extract.c:1603 src/list.c:1164 msgid "Unexpected long name header" msgstr "未預期的長名稱標頭" @@ -1013,7 +1013,7 @@ msgstr "目前的 %s 較新或相同" #: src/extract.c:1664 #, c-format msgid "%s: Member name contains '..'" -msgstr "" +msgstr "%s:會員名稱包含了「..」" #: src/extract.c:1696 #, c-format @@ -1025,22 +1025,22 @@ msgstr "%s:之前無法備份這個檔案" msgid "Cannot rename %s to %s" msgstr "無法將 %s 重新命名為 %s" -#: src/incremen.c:494 src/incremen.c:536 +#: src/incremen.c:493 src/incremen.c:535 #, c-format msgid "%s: Directory has been renamed from %s" msgstr "%s:目錄已從 %s 重新命名" -#: src/incremen.c:549 +#: src/incremen.c:548 #, c-format msgid "%s: Directory is new" msgstr "%s:目錄是新的" -#: src/incremen.c:566 +#: src/incremen.c:565 #, c-format msgid "%s: directory is on a different filesystem; not dumped" msgstr "%s:目錄位於不同的檔案系統;未傾印" -#: src/incremen.c:587 +#: src/incremen.c:586 #, c-format msgid "%s: Directory has been renamed" msgstr "%s:目錄已被重新命名" @@ -1166,372 +1166,373 @@ msgstr "%s:正在刪除 %s\n" msgid "%s: Cannot remove" msgstr "%s:無法移除" -#: src/list.c:219 +#: src/list.c:218 #, c-format msgid "%s: Omitting" msgstr "%s:省略中" -#: src/list.c:237 +#: src/list.c:236 #, c-format msgid "block %s: ** Block of NULs **\n" msgstr "區塊 %s:** 空值區塊 **\n" -#: src/list.c:263 +#: src/list.c:262 #, c-format msgid "block %s: ** End of File **\n" msgstr "區塊 %s:** 檔案結尾 **\n" -#: src/list.c:285 src/list.c:1136 src/list.c:1372 +#: src/list.c:284 src/list.c:1133 src/list.c:1369 #, c-format msgid "block %s: " msgstr "區塊 %s:" #. TRANSLATORS: %s is type of the value (gid_t, uid_t, #. etc.) -#: src/list.c:751 +#: src/list.c:752 #, 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:806 +#: src/list.c:807 #, 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:817 +#: src/list.c:818 #, c-format msgid "Archive octal value %.*s is out of %s range" msgstr "封存八進位數值 %.*s 超出 %s 範圍" -#: src/list.c:838 +#: src/list.c:839 msgid "Archive contains obsolescent base-64 headers" msgstr "封存含有過時的 base-64 標頭" -#: src/list.c:852 +#: src/list.c:853 #, c-format msgid "Archive signed base-64 string %s is out of %s range" msgstr "封存有號 base-64 字串 %s 超出 %s 範圍" -#: src/list.c:883 +#: src/list.c:884 #, 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:912 +#: src/list.c:913 #, 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:934 +#: src/list.c:935 #, c-format msgid "Archive value %s is out of %s range %s..%s" msgstr "封存值 %s 已超出 %s 的範圍 %s..%s" -#: src/list.c:1272 +#: src/list.c:1269 #, c-format msgid " link to %s\n" msgstr " 連結到 %s\n" -#: src/list.c:1280 +#: src/list.c:1277 #, c-format msgid " unknown file type %s\n" msgstr " 不明檔案類型 %s\n" -#: src/list.c:1298 +#: src/list.c:1295 #, c-format msgid "--Long Link--\n" msgstr "--長 連 結--\n" -#: src/list.c:1302 +#: src/list.c:1299 #, c-format msgid "--Long Name--\n" msgstr "--長 名 稱--\n" -#: src/list.c:1306 +#: src/list.c:1303 #, c-format msgid "--Volume Header--\n" msgstr "--卷 冊 標 頭--\n" -#: src/list.c:1314 +#: src/list.c:1311 #, c-format msgid "--Continued at byte %s--\n" msgstr "--於第 %s 位元組繼續--\n" -#: src/list.c:1377 +#: src/list.c:1374 msgid "Creating directory:" msgstr "正在建立目錄:" -#: src/misc.c:738 +#: src/misc.c:751 #, c-format msgid "Renaming %s to %s\n" msgstr "正在將 %s 重新命名為 %s\n" -#: src/misc.c:747 src/misc.c:766 +#: src/misc.c:760 src/misc.c:779 #, c-format msgid "%s: Cannot rename to %s" msgstr "%s:無法重新命名為 %s" -#: src/misc.c:771 +#: src/misc.c:784 #, c-format msgid "Renaming %s back to %s\n" msgstr "將 %s 的名稱還原為 %s\n" -#: src/misc.c:1134 +#: src/misc.c:1147 #, c-format msgid "%s: File removed before we read it" msgstr "%s:讀取檔案之前已被移除" -#: src/misc.c:1148 +#: src/misc.c:1161 msgid "child process" msgstr "子行程" -#: src/misc.c:1157 +#: src/misc.c:1170 msgid "interprocess channel" msgstr "行程間通道" -#: src/names.c:69 +#: src/names.c:68 msgid "Local file name selection:" msgstr "本機檔案名稱選擇:" -#: src/names.c:72 +#: src/names.c:71 msgid "add given FILE to the archive (useful if its name starts with a dash)" msgstr "將給定的 FILE 加入封存 (如果它的名稱以減號開始時就很有用)" -#: src/names.c:73 src/tar.c:484 +#: src/names.c:72 src/tar.c:484 msgid "DIR" msgstr "目錄" -#: src/names.c:74 +#: src/names.c:73 msgid "change to directory DIR" msgstr "更改至目錄 DIR" -#: src/names.c:76 +#: src/names.c:75 msgid "get names to extract or create from FILE" msgstr "從 FILE 中取得要解開或建立的名稱" -#: src/names.c:78 +#: src/names.c:77 msgid "-T reads null-terminated names; implies --verbatim-files-from" msgstr "-T 讀取零值終結的名稱,隱含 --verbatim-files-from" -#: src/names.c:81 +#: src/names.c:80 msgid "disable the effect of the previous --null option" msgstr "停用先前 --null 選項的效果" -#: src/names.c:83 +#: src/names.c:82 msgid "unquote input file or member names (default)" msgstr "去除輸入檔案或成員名稱的引號 (預設)" -#: src/names.c:85 +#: src/names.c:84 msgid "do not unquote input file or member names" msgstr "不去除輸入檔案或成員名稱的引號" -#: src/names.c:87 -#, fuzzy +#: src/names.c:86 msgid "-T reads file names verbatim (no escape or option handling)" -msgstr "-T 會逐字地讀取檔案名稱 (無選項處理)" +msgstr "-T 會逐字地讀取檔案名稱 (無跳出或選項處理)" -#: src/names.c:89 +#: src/names.c:88 msgid "-T treats file names starting with dash as options (default)" msgstr "-T 會將以減號起始的檔案名稱視為選項 (預設)" -#: src/names.c:91 tests/genfile.c:140 +#: src/names.c:90 tests/genfile.c:135 msgid "PATTERN" msgstr "胚騰" -#: src/names.c:92 +#: src/names.c:91 msgid "exclude files, given as a PATTERN" msgstr "排除給定胚騰的檔案" -#: src/names.c:94 +#: src/names.c:93 msgid "exclude patterns listed in FILE" msgstr "排除 FILE 中所列出的胚騰" -#: src/names.c:96 +#: src/names.c:95 msgid "" "exclude contents of directories containing CACHEDIR.TAG, except for the tag " "file itself" msgstr "排除包含 CACHEDIR.TAG 的目錄內容,除了該標記檔案本身" -#: src/names.c:99 +#: src/names.c:98 msgid "exclude everything under directories containing CACHEDIR.TAG" msgstr "排除包含 CACHEDIR.TAG 的目錄之下所有東西" -#: src/names.c:102 +#: src/names.c:101 msgid "exclude directories containing CACHEDIR.TAG" msgstr "排除包含 CACHEDIR.TAG 的目錄" -#: src/names.c:104 +#: src/names.c:103 msgid "exclude contents of directories containing FILE, except for FILE itself" msgstr "排除包含 FILE 的目錄內容,除了該檔案本身" -#: src/names.c:107 +#: src/names.c:106 msgid "read exclude patterns for each directory from FILE, if it exists" msgstr "讀取時排除來自 FILE 的每一個目錄胚騰,如果有的話" -#: src/names.c:110 +#: src/names.c:109 msgid "" "read exclude patterns for each directory and its subdirectories from FILE, " "if it exists" msgstr "讀取時排除來自 FILE 的每一個目錄及其子目錄的胚騰,如果有的話" -#: src/names.c:113 +#: src/names.c:112 msgid "exclude everything under directories containing FILE" msgstr "排除包含 FILE 的目錄之下所有東西" -#: src/names.c:115 +#: src/names.c:114 msgid "exclude directories containing FILE" msgstr "排除包含 FILE 的目錄" -#: src/names.c:117 +#: src/names.c:116 msgid "exclude version control system directories" msgstr "排除版本控制系統目錄" -#: src/names.c:119 +#: src/names.c:118 msgid "read exclude patterns from the VCS ignore files" msgstr "讀取時排除來自版本控制系統忽略檔案的胚騰" -#: src/names.c:121 +#: src/names.c:120 msgid "exclude backup and lock files" msgstr "排除備份和鎖定檔案" -#: src/names.c:123 +#: src/names.c:122 msgid "recurse into directories (default)" msgstr "遞迴進入目錄 (預設)" -#: src/names.c:125 +#: src/names.c:124 msgid "avoid descending automatically in directories" msgstr "避免自動在目錄中遞降" -#: src/names.c:130 +#: src/names.c:129 msgid "File name matching options (affect both exclude and include patterns):" msgstr "檔案名稱吻合選項 (同時影響排除和包含胚騰同者):" -#: src/names.c:133 +#: src/names.c:132 msgid "patterns match file name start" msgstr "胚騰會吻合檔案名稱開頭" -#: src/names.c:135 +#: src/names.c:134 msgid "patterns match after any '/' (default for exclusion)" msgstr "胚騰會吻合任何 / 之後的名稱 (預設排除)" -#: src/names.c:137 +#: src/names.c:136 msgid "ignore case" msgstr "忽略大小寫" -#: src/names.c:139 +#: src/names.c:138 msgid "case sensitive matching (default)" msgstr "大小寫需相符的吻合 (預設)" -#: src/names.c:141 +#: src/names.c:140 msgid "use wildcards (default for exclusion)" msgstr "使用萬用字元 (預設排除)" -#: src/names.c:143 +#: src/names.c:142 msgid "verbatim string matching" msgstr "逐字進行吻合" -#: src/names.c:145 +#: src/names.c:144 msgid "wildcards match '/' (default for exclusion)" msgstr "萬用字元會吻合 / (預設排除)" -#: src/names.c:147 +#: src/names.c:146 msgid "wildcards do not match '/'" msgstr "萬用字元不會吻合 /" -#: src/names.c:733 +#: src/names.c:732 msgid "" "The following options were used after any non-optional arguments in archive " "create or update mode. These options are positional and affect only " "arguments that follow them. Please, rearrange them properly." msgstr "" +"以下的選項使用於建立與更新模式中的任何非選用參數。這些選項的位置,並且只影響" +"跟隨他們的參數。請正確的重新擺放它們。" -#: src/names.c:744 +#: src/names.c:743 #, c-format msgid "-C %s has no effect" -msgstr "" +msgstr "-C %s 沒有任何效果" -#: src/names.c:749 +#: src/names.c:748 #, c-format msgid "--%s %s has no effect" -msgstr "" +msgstr "--%s %s 沒有任何效果" -#: src/names.c:753 +#: src/names.c:752 #, c-format msgid "--%s has no effect" -msgstr "" +msgstr "--%s 沒有任何效果" -#: src/names.c:879 +#: src/names.c:878 msgid "command line" msgstr "命令列" -#: src/names.c:897 +#: src/names.c:896 #, c-format msgid "%s: file list requested from %s already read from %s" msgstr "%s:%s 要求的檔案清單已經由 %s 所讀取" -#: src/names.c:978 src/checkpoint.c:274 +#: src/names.c:977 src/checkpoint.c:308 #, c-format msgid "cannot split string '%s': %s" msgstr "無法分割字串 %s:%s" -#: src/names.c:1025 +#: src/names.c:1024 #, c-format msgid "%s: file name read contains nul character" msgstr "%s:所讀檔案名稱含有空值字元" -#: src/names.c:1358 +#: src/names.c:1388 msgid "Pattern matching characters used in file names" msgstr "用於檔案名稱的胚騰匹配字元" -#: src/names.c:1360 +#: src/names.c:1390 msgid "" "Use --wildcards to enable pattern matching, or --no-wildcards to suppress " "this warning" msgstr "使用 --wildcards 以啟用胚騰匹配,或 --no-wildcards 以抑制這個警告" -#: src/names.c:1378 src/names.c:1394 +#: src/names.c:1408 src/names.c:1424 #, c-format msgid "%s: Not found in archive" msgstr "%s:在封存中找不到" -#: src/names.c:1379 +#: src/names.c:1409 #, c-format msgid "%s: Required occurrence not found in archive" msgstr "%s:要求項目在封存中找不到" -#: src/names.c:1413 +#: src/names.c:1443 #, c-format msgid "Archive label mismatch" msgstr "封存標貼不匹配" -#: src/names.c:1717 +#: src/names.c:1747 msgid "" "Using -C option inside file list is not allowed with --listed-incremental" msgstr "於檔案清單內部使用 -C 選項是不允許與 --listed-incremental 共用" -#: src/names.c:1723 +#: src/names.c:1753 msgid "Only one -C option is allowed with --listed-incremental" msgstr "只有一個 -C 選項是允許與 --listed-incremental 共用" -#: src/tar.c:88 +#: src/tar.c:87 #, c-format msgid "Options '%s' and '%s' both want standard input" msgstr "選項 %s 和 %s 兩者都需要標準輸入" -#: src/tar.c:165 +#: src/tar.c:164 #, c-format msgid "%s: Invalid archive format" msgstr "%s:無效的封存格式" -#: src/tar.c:197 +#: src/tar.c:196 msgid "GNU features wanted on incompatible archive format" msgstr "不能在不兼容的封存格式中使用 GNU 功能" -#: src/tar.c:265 +#: src/tar.c:264 #, c-format msgid "" "Unknown quoting style '%s'. Try '%s --quoting-style=help' to get a list." @@ -1741,7 +1742,7 @@ msgstr "選取輸出串流:" msgid "extract files to standard output" msgstr "解開檔案到標準輸出" -#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:195 +#: src/tar.c:495 src/tar.c:588 src/tar.c:590 tests/genfile.c:190 msgid "COMMAND" msgstr "命令" @@ -1777,7 +1778,7 @@ msgstr "利用 FILE 來映射檔案擁有者 UID 和名稱" msgid "use FILE to map file owner GIDs and names" msgstr "利用 FILE 來映射檔案擁有者 GID 和名稱" -#: src/tar.c:515 src/tar.c:700 +#: src/tar.c:515 src/tar.c:701 msgid "DATE-OR-FILE" msgstr "檔案的日期" @@ -1978,7 +1979,7 @@ msgstr "讀取時重新分區 (用於 4.2BSD 管線)" msgid "Archive format selection:" msgstr "封存格式選擇:" -#: src/tar.c:637 tests/genfile.c:158 +#: src/tar.c:637 tests/genfile.c:153 msgid "FORMAT" msgstr "格式" @@ -2062,59 +2063,59 @@ msgstr "程式" msgid "filter through PROG (must accept -d)" msgstr "以 PROG 過濾處理 (必須接受 -d)" -#: src/tar.c:689 +#: src/tar.c:690 msgid "Local file selection:" msgstr "本機檔案選擇:" -#: src/tar.c:691 +#: src/tar.c:692 msgid "stay in local file system when creating archive" msgstr "建立封存時保持在本地檔案系統中" -#: src/tar.c:693 +#: src/tar.c:694 msgid "don't strip leading '/'s from file names" msgstr "不要從檔案名稱中截去前導的 '/'" -#: src/tar.c:695 +#: src/tar.c:696 msgid "follow symlinks; archive and dump the files they point to" msgstr "跟隨符號連結;封存和傾印它們所指涉的檔案" -#: src/tar.c:697 +#: src/tar.c:698 msgid "follow hard links; archive and dump the files they refer to" msgstr "跟隨硬式連結;封存和傾印它們所參考的檔案" -#: src/tar.c:698 +#: src/tar.c:699 msgid "MEMBER-NAME" msgstr "成員-名稱" -#: src/tar.c:699 +#: src/tar.c:700 msgid "begin at member MEMBER-NAME when reading the archive" msgstr "讀取封存時從名為 MEMBER-NAME 的成員開始" -#: src/tar.c:701 +#: src/tar.c:702 msgid "only store files newer than DATE-OR-FILE" msgstr "只儲存比 DATE-OF-FILE 還新的檔案" -#: src/tar.c:703 +#: src/tar.c:704 msgid "DATE" msgstr "日期" -#: src/tar.c:704 +#: src/tar.c:705 msgid "compare date and time when data changed only" msgstr "只有當資料變更時才比較日期和時間" -#: src/tar.c:705 +#: src/tar.c:706 msgid "CONTROL" msgstr "控制" -#: src/tar.c:706 +#: src/tar.c:707 msgid "backup before removal, choose version CONTROL" msgstr "移除之前先備份,選擇版本 CONTROL" -#: src/tar.c:707 src/tar.c:766 src/tar.c:768 tests/genfile.c:174 +#: src/tar.c:708 src/tar.c:767 src/tar.c:769 tests/genfile.c:169 msgid "STRING" msgstr "字串" -#: src/tar.c:708 +#: src/tar.c:709 msgid "" "backup before removal, override usual suffix ('~' unless overridden by " "environment variable SIMPLE_BACKUP_SUFFIX)" @@ -2122,59 +2123,59 @@ msgstr "" "移除之前先備份並覆寫常用後置文字 ( ~ 除非被環境變數 SIMPLE_BACKUP_SUFFIX 所蓋" "過)" -#: src/tar.c:713 +#: src/tar.c:714 msgid "File name transformations:" msgstr "檔案名稱變換:" -#: src/tar.c:715 +#: src/tar.c:716 msgid "strip NUMBER leading components from file names on extraction" msgstr "從檔案名稱中截去以 NUMBER 為首的成分" -#: src/tar.c:717 +#: src/tar.c:718 msgid "EXPRESSION" msgstr "表示式" -#: src/tar.c:718 +#: src/tar.c:719 msgid "use sed replace EXPRESSION to transform file names" msgstr "利用 sed 將 EXPRESSION 替代為變換檔案名稱" -#: src/tar.c:724 +#: src/tar.c:725 msgid "Informative output:" msgstr "富含資訊的輸出:" -#: src/tar.c:727 +#: src/tar.c:728 msgid "verbosely list files processed" msgstr "詳細列出處理過的檔案" -#: src/tar.c:728 +#: src/tar.c:729 msgid "KEYWORD" msgstr "關鍵字" -#: src/tar.c:729 +#: src/tar.c:730 msgid "warning control" msgstr "警告控制" -#: src/tar.c:731 +#: src/tar.c:732 msgid "display progress messages every NUMBERth record (default 10)" msgstr "每幾項記錄顯示一次進度訊息 (預設 10)" -#: src/tar.c:733 +#: src/tar.c:734 msgid "ACTION" msgstr "動作" -#: src/tar.c:734 +#: src/tar.c:735 msgid "execute ACTION on each checkpoint" msgstr "於每個查核點執行 ACTION" -#: src/tar.c:737 +#: src/tar.c:738 msgid "print a message if not all links are dumped" msgstr "如果並非所有連結都被傾印則印出訊息" -#: src/tar.c:738 +#: src/tar.c:739 msgid "SIGNAL" msgstr "信號" -#: src/tar.c:739 +#: src/tar.c:740 msgid "" "print total bytes after processing the archive; with an argument - print " "total bytes when this SIGNAL is delivered; Allowed signals are: SIGHUP, " @@ -2185,125 +2186,125 @@ msgstr "" "的信號是:SIGHUP、SIGQUIT、SIGINT、SIGUSR1 和 SIGUSR2;不具 SIG 前綴的名稱也" "是可接受的" -#: src/tar.c:744 +#: src/tar.c:745 msgid "print file modification times in UTC" msgstr "以 UTC 印出檔案修改時間" -#: src/tar.c:746 +#: src/tar.c:747 msgid "print file time to its full resolution" msgstr "以完整精度印出檔案時間" -#: src/tar.c:748 +#: src/tar.c:749 msgid "send verbose output to FILE" msgstr "將詳細輸出送至 FILE" -#: src/tar.c:750 +#: src/tar.c:751 msgid "show block number within archive with each message" msgstr "每則訊息附帶顯示在封存中的區塊號碼" -#: src/tar.c:752 +#: src/tar.c:753 msgid "ask for confirmation for every action" msgstr "任何動作都要求確認" -#: src/tar.c:755 +#: src/tar.c:756 msgid "show tar defaults" msgstr "顯示 tar 預設值" -#: src/tar.c:757 +#: src/tar.c:758 msgid "show valid ranges for snapshot-file fields" msgstr "顯示快照檔案欄位的有效範圍" -#: src/tar.c:759 +#: src/tar.c:760 msgid "" "when listing or extracting, list each directory that does not match search " "criteria" msgstr "當表列或解開時,列出每一個不符合搜尋條件的目錄" -#: src/tar.c:761 +#: src/tar.c:762 msgid "show file or archive names after transformation" msgstr "顯示變換之後的檔案或封存名稱" -#: src/tar.c:764 +#: src/tar.c:765 msgid "STYLE" msgstr "樣式" -#: src/tar.c:765 +#: src/tar.c:766 msgid "set name quoting style; see below for valid STYLE values" msgstr "設定名稱引號樣式;參看下列的有效樣式值" -#: src/tar.c:767 +#: src/tar.c:768 msgid "additionally quote characters from STRING" msgstr "來自 STRING 的額外引號字元" -#: src/tar.c:769 +#: src/tar.c:770 msgid "disable quoting for characters from STRING" msgstr "停用來自字串的引號字元" -#: src/tar.c:774 +#: src/tar.c:775 msgid "Compatibility options:" msgstr "相容選項:" -#: src/tar.c:777 +#: src/tar.c:778 msgid "" "when creating, same as --old-archive; when extracting, same as --no-same-" "owner" msgstr "當建立時,等同於 --old-archive。當解開時,等同於 --no-same-owner" -#: src/tar.c:782 +#: src/tar.c:783 msgid "Other options:" msgstr "其他選項:" -#: src/tar.c:785 +#: src/tar.c:786 msgid "disable use of some potentially harmful options" msgstr "停用某些潛在有害的選項" #. TRANSLATORS: Both %s in this statement are replaced with #. option names. -#: src/tar.c:845 +#: src/tar.c:846 #, c-format msgid "'%s' cannot be used with '%s'" msgstr "%s:無法與 %s 一同使用" -#: src/tar.c:933 +#: src/tar.c:934 msgid "" "You may not specify more than one '-Acdtrux', '--delete' or '--test-label' " "option" msgstr "您不可以指定超過一個 -Acdtrux, --delete 或 --test-label 選項" -#: src/tar.c:945 +#: src/tar.c:946 msgid "Conflicting compression options" msgstr "互相抵觸的壓縮選項" -#: src/tar.c:1004 +#: src/tar.c:1000 #, c-format msgid "Unknown signal name: %s" msgstr "不明的信號名稱:%s" -#: src/tar.c:1028 +#: src/tar.c:1030 msgid "Date sample file not found" msgstr "找不到日期範例檔案" -#: src/tar.c:1036 +#: src/tar.c:1038 #, c-format msgid "Substituting %s for unknown date format %s" msgstr "以 %s 代替不明的日期格式 %s" -#: src/tar.c:1065 +#: src/tar.c:1067 #, c-format msgid "Option %s: Treating date '%s' as %s" msgstr "選項 %1$s: 以 %3$s 格式來處理日期 %2$s" -#: src/tar.c:1105 src/tar.c:1109 src/tar.c:1113 src/tar.c:1117 src/tar.c:1121 -#: src/tar.c:1125 src/tar.c:1129 +#: src/tar.c:1107 src/tar.c:1111 src/tar.c:1115 src/tar.c:1119 src/tar.c:1123 +#: src/tar.c:1127 src/tar.c:1131 src/tar.c:1135 #, c-format msgid "filter the archive through %s" msgstr "將封存透過 %s 篩選" -#: src/tar.c:1137 +#: src/tar.c:1143 msgid "Valid arguments for the --quoting-style option are:" msgstr "用於 --quoting-style 的有效引數選項是:" -#: src/tar.c:1141 +#: src/tar.c:1147 msgid "" "\n" "*This* tar defaults to:\n" @@ -2311,287 +2312,296 @@ msgstr "" "\n" "*這個* tar 預設為:\n" -#: src/tar.c:1253 +#: src/tar.c:1259 msgid "Invalid owner or group ID" msgstr "無效的擁有者或群組識別號" -#: src/tar.c:1347 +#: src/tar.c:1353 msgid "Invalid blocking factor" msgstr "無效的分區因子" -#: src/tar.c:1467 +#: src/tar.c:1472 msgid "Invalid tape length" msgstr "無效的磁帶長度" -#: src/tar.c:1481 +#: src/tar.c:1486 msgid "Invalid incremental level value" msgstr "無效的遞增等級值" -#: src/tar.c:1527 +#: src/tar.c:1532 msgid "More than one threshold date" msgstr "一個以上的限定日期" -#: src/tar.c:1594 src/tar.c:1597 +#: src/tar.c:1599 src/tar.c:1602 msgid "Invalid sparse version value" msgstr "無效的稀疏版本值" -#: src/tar.c:1661 +#: src/tar.c:1670 msgid "--atime-preserve='system' is not supported on this platform" msgstr "--atime-preserve='system' 於這個平臺未被支援" -#: src/tar.c:1686 +#: src/tar.c:1695 msgid "--checkpoint value is not an integer" msgstr "--checkpoint 值不是整數" -#: src/tar.c:1764 +#: src/tar.c:1773 msgid "Invalid mode given on option" msgstr "選項中的模式無效" -#: src/tar.c:1797 +#: src/tar.c:1806 msgid "Invalid number" msgstr "無效的號碼" -#: src/tar.c:1861 +#: src/tar.c:1870 msgid "Invalid record size" msgstr "無效的記錄大小" -#: src/tar.c:1864 +#: src/tar.c:1873 #, c-format msgid "Record size must be a multiple of %d." msgstr "記錄大小必須是 %d 的倍數。" -#: src/tar.c:1910 +#: src/tar.c:1919 msgid "Invalid number of elements" msgstr "無效的元素號碼" -#: src/tar.c:1935 +#: src/tar.c:1944 msgid "Only one --to-command option allowed" msgstr "只允許一個 --to-command 選項" -#: src/tar.c:2023 +#: src/tar.c:2032 #, c-format msgid "Malformed density argument: %s" msgstr "異常的密度引數:%s" -#: src/tar.c:2049 +#: src/tar.c:2058 #, c-format msgid "Unknown density: '%c'" msgstr "不明的密度:%c" -#: src/tar.c:2066 +#: src/tar.c:2075 #, c-format msgid "Options '-[0-7][lmh]' not supported by *this* tar" msgstr "這個版本的 tar 不支援 -[0-7][lmh] 選項" -#: src/tar.c:2073 +#: src/tar.c:2082 #, c-format msgid "%s:%lu: location of the error" msgstr "%s:%lu:錯誤的位置" -#: src/tar.c:2076 +#: src/tar.c:2085 #, c-format msgid "error parsing %s" msgstr "剖析 %s 時發生錯誤" -#: src/tar.c:2090 +#: src/tar.c:2099 msgid "[FILE]..." msgstr "[FILE]…" -#: src/tar.c:2181 +#: src/tar.c:2190 #, c-format msgid "non-option arguments in %s" msgstr "%s 中出現非選項的引數" -#: src/tar.c:2196 +#: src/tar.c:2205 #, c-format msgid "cannot split TAR_OPTIONS: %s" msgstr "無法分割 TAR_OPTIONS:%s" -#: src/tar.c:2291 +#: src/tar.c:2300 #, c-format msgid "Old option '%c' requires an argument." msgstr "舊的選項 %c 需要一個引數。" -#: src/tar.c:2364 +#: src/tar.c:2373 msgid "--occurrence is meaningless without a file list" msgstr "若無檔案列表,--occurrence 便不具意義" -#: src/tar.c:2390 +#: src/tar.c:2399 msgid "Multiple archive files require '-M' option" msgstr "指定多個封存時需要 -M 選項" -#: src/tar.c:2407 +#: src/tar.c:2416 msgid "--level is meaningless without --listed-incremental" msgstr "--level 不與 --listed-incremental 共用是無意義的" -#: src/tar.c:2424 +#: 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:2437 +#: src/tar.c:2446 msgid "Cannot verify multi-volume archives" msgstr "無法驗證多重卷冊的封存" -#: src/tar.c:2439 +#: src/tar.c:2448 msgid "Cannot verify compressed archives" msgstr "無法驗證壓縮過的封存" -#: src/tar.c:2453 +#: src/tar.c:2462 msgid "Cannot use multi-volume compressed archives" msgstr "無法使用多重卷冊的壓縮封存" -#: src/tar.c:2457 +#: src/tar.c:2466 msgid "Cannot concatenate compressed archives" msgstr "無法串接壓縮過的檔案" -#: src/tar.c:2464 +#: src/tar.c:2473 msgid "--clamp-mtime needs a date specified using --mtime" msgstr "--clamp-mtime 需要一個以 --mtime 指定的日期" -#: src/tar.c:2474 +#: src/tar.c:2483 msgid "--pax-option can be used only on POSIX archives" msgstr "--pax-option 只能用於 POSIX 封存" -#: src/tar.c:2481 +#: src/tar.c:2490 msgid "--acls can be used only on POSIX archives" msgstr "--acls 只能用於 POSIX 封存" -#: src/tar.c:2486 +#: src/tar.c:2495 msgid "--selinux can be used only on POSIX archives" msgstr "--selinux 只能用於 POSIX 封存" -#: src/tar.c:2491 +#: src/tar.c:2500 msgid "--xattrs can be used only on POSIX archives" msgstr "--xattrs 只能用於 POSIX 封存" -#: src/tar.c:2540 +#: src/tar.c:2549 msgid "" "Cannot deduce top-level directory name; please set it explicitly with --one-" "top-level=DIR" msgstr "無法推論頂層目錄名稱;請以 --one-top-level=DIR 來明確地設定它" -#: src/tar.c:2573 +#: src/tar.c:2582 msgid "Volume length cannot be less than record size" msgstr "卷冊長度無法少於記錄大小" -#: src/tar.c:2597 +#: src/tar.c:2606 msgid "Cowardly refusing to create an empty archive" msgstr "斗膽拒絕建立空的封存" -#: src/tar.c:2623 +#: src/tar.c:2632 msgid "Options '-Aru' are incompatible with '-f -'" msgstr " -Aru 與 -f - 選項不相容" -#: src/tar.c:2711 +#: src/tar.c:2743 msgid "" "You must specify one of the '-Acdtrux', '--delete' or '--test-label' options" msgstr "您必須指定 -Acdtrux, --delete 或 --test-label 選項之一" -#: src/tar.c:2768 +#: src/tar.c:2800 #, c-format msgid "Exiting with failure status due to previous errors" msgstr "由於先前錯誤而以失敗狀態離開" -#: src/update.c:87 +#: src/update.c:86 #, c-format msgid "%s: File shrank by %s byte" msgid_plural "%s: File shrank by %s bytes" msgstr[0] "%s:檔案縮減了 %s 位元組" -#: src/xheader.c:165 +#: src/xheader.c:164 #, c-format 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:188 +#, c-format +msgid "Malformed pax option: %s" +msgstr "" + +#: src/xheader.c:207 #, c-format msgid "Pattern %s cannot be used" msgstr "胚騰 %s 無法使用" -#: src/xheader.c:219 +#: src/xheader.c:221 #, c-format msgid "Keyword %s cannot be overridden" msgstr "關鍵字 %s 無法被蓋過" -#: src/xheader.c:668 +#: src/xheader.c:476 +msgid "can't update global extended header record" +msgstr "" + +#: src/xheader.c:686 msgid "Malformed extended header: missing length" msgstr "異常的擴充標頭:長度缺少" -#: src/xheader.c:677 +#: src/xheader.c:695 #, c-format msgid "Extended header length %*s is out of range" msgstr "擴充標頭長度 %*s 超出範圍" -#: src/xheader.c:689 +#: src/xheader.c:707 msgid "Malformed extended header: missing blank after length" msgstr "異常的擴充標頭:在長度之後缺少空白" -#: src/xheader.c:697 +#: src/xheader.c:715 msgid "Malformed extended header: missing equal sign" msgstr "異常的擴充標頭:缺少等號" -#: src/xheader.c:703 +#: src/xheader.c:721 msgid "Malformed extended header: missing newline" msgstr "異常的擴充標頭:缺少新列" -#: src/xheader.c:741 +#: src/xheader.c:759 #, c-format msgid "Ignoring unknown extended header keyword '%s'" msgstr "忽略不明擴充標頭關鍵字 %s" -#: src/xheader.c:1023 +#: src/xheader.c:1041 #, 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:1053 +#: src/xheader.c:1071 #, c-format msgid "Extended header %s=%s is out of range %s..%s" msgstr "擴充標頭 %s=%s 超出範圍 %s..%s" -#: src/xheader.c:1104 src/xheader.c:1137 src/xheader.c:1487 +#: src/xheader.c:1122 src/xheader.c:1155 src/xheader.c:1505 #, c-format msgid "Malformed extended header: invalid %s=%s" msgstr "異常的擴充標頭:無效的 %s=%s" -#: src/xheader.c:1440 src/xheader.c:1465 src/xheader.c:1520 +#: src/xheader.c:1458 src/xheader.c:1483 src/xheader.c:1538 #, c-format msgid "Malformed extended header: excess %s=%s" msgstr "異常的擴充標頭:過剩的 %s=%s" -#: src/xheader.c:1533 +#: src/xheader.c:1551 #, c-format msgid "Malformed extended header: invalid %s: unexpected delimiter %c" msgstr "異常的擴充標頭:無效的 %s:未預期的分隔符號 %c" -#: src/xheader.c:1543 +#: src/xheader.c:1561 #, c-format msgid "Malformed extended header: invalid %s: odd number of values" msgstr "異常的擴充標頭:無效的 %s:奇怪的數值數量" -#: src/checkpoint.c:114 +#: src/checkpoint.c:133 #, c-format msgid "%s: not a valid timeout" msgstr "%s:不是有效的時間限制" -#: src/checkpoint.c:121 +#: src/checkpoint.c:146 #, c-format msgid "%s: unknown checkpoint action" msgstr "%s:不明查核點動作" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "write" msgstr "寫入" -#: src/checkpoint.c:202 +#: src/checkpoint.c:236 msgid "read" msgstr "讀取" @@ -2599,7 +2609,7 @@ msgstr "讀取" #. *not* "Writing a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de escritura", #. *not* "Escribiendo un punto de comprobaci@'on" -#: src/checkpoint.c:218 +#: src/checkpoint.c:252 #, c-format msgid "Write checkpoint %u" msgstr "寫入的查核點 %u" @@ -2608,12 +2618,12 @@ msgstr "寫入的查核點 %u" #. *not* "Reading a checkpoint". #. E.g. in Spanish "Punto de comprobaci@'on de lectura", #. *not* "Leyendo un punto de comprobaci@'on" -#: src/checkpoint.c:224 +#: src/checkpoint.c:258 #, c-format msgid "Read checkpoint %u" msgstr "讀取的查核點 %u" -#: tests/genfile.c:115 +#: tests/genfile.c:110 msgid "" "genfile manipulates data files for GNU paxutils test suite.\n" "OPTIONS are:\n" @@ -2621,91 +2631,95 @@ msgstr "" "genfile 在 GNU paxutils 測試套件中用於操控資料檔案。\n" "選項:\n" -#: tests/genfile.c:131 +#: tests/genfile.c:126 msgid "File creation options:" msgstr "檔案建立選項:" -#: tests/genfile.c:132 tests/genfile.c:143 +#: tests/genfile.c:127 tests/genfile.c:138 msgid "SIZE" msgstr "大小" -#: tests/genfile.c:133 +#: tests/genfile.c:128 msgid "Create file of the given SIZE" msgstr "以給定 SIZE 建立檔案。" -#: tests/genfile.c:135 +#: tests/genfile.c:130 msgid "Write to file NAME, instead of standard output" msgstr "寫入檔案 NAME,以代替標準輸出" -#: tests/genfile.c:137 +#: tests/genfile.c:132 msgid "Read file names from FILE" msgstr "從 FILE 讀取檔案名稱" -#: tests/genfile.c:139 +#: tests/genfile.c:134 msgid "-T reads null-terminated names" msgstr "-T 讀取零值終結的名稱" -#: tests/genfile.c:141 +#: tests/genfile.c:136 msgid "Fill the file with the given PATTERN. PATTERN is 'default' or 'zeros'" msgstr "以給定 PATTERN 填充檔案。PATTERN 是 default 或 zeros" -#: tests/genfile.c:144 +#: tests/genfile.c:139 msgid "Size of a block for sparse file" msgstr "用於稀疏檔案的區塊大小" -#: tests/genfile.c:146 +#: tests/genfile.c:141 msgid "Generate sparse file. Rest of the command line gives the file map." msgstr "產生稀疏檔案。命令列的其餘部分給出檔案對映。" -#: tests/genfile.c:148 +#: tests/genfile.c:143 msgid "OFFSET" msgstr "偏移值" -#: tests/genfile.c:149 +#: tests/genfile.c:144 msgid "Seek to the given offset before writing data" msgstr "寫入資料之前尋求給定的偏移值" -#: tests/genfile.c:152 +#: tests/genfile.c:147 msgid "Suppress non-fatal diagnostic messages" msgstr "抑制非嚴重的診斷訊息" -#: tests/genfile.c:156 +#: tests/genfile.c:151 msgid "File statistics options:" msgstr "檔案統計選項:" -#: tests/genfile.c:159 +#: tests/genfile.c:154 msgid "Print contents of struct stat for each given file. Default FORMAT is: " msgstr "列印每個給定檔案的結構狀態內容。預設 FORMAT 為:" -#: tests/genfile.c:166 +#: tests/genfile.c:161 msgid "Synchronous execution options:" msgstr "同步的執行選項:" -#: tests/genfile.c:168 -msgid "OPTION" -msgstr "選項" +#: tests/genfile.c:163 +msgid "N" +msgstr "" -#: tests/genfile.c:169 +#: tests/genfile.c:164 +#, fuzzy +#| msgid "" +#| "Execute ARGS. Useful with --checkpoint and one of --cut, --append, --" +#| "touch, --unlink" msgid "" -"Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, " -"--unlink" +"Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with " +"--checkpoint and one of --cut, --append, --touch, --unlink" msgstr "" "執行引數。適合與 --checkpoint 以及 --cut, --append, --touch, --unlink 之一共" "用" -#: tests/genfile.c:172 +#: tests/genfile.c:167 msgid "Perform given action (see below) upon reaching checkpoint NUMBER" msgstr "當達到查核點 NUMBER 時實行給定動作 (參看以下)" -#: tests/genfile.c:175 +#: tests/genfile.c:170 msgid "Set date for next --touch option" msgstr "設定後續 --touch 選項所需的日期" -#: tests/genfile.c:178 +#: tests/genfile.c:173 msgid "Display executed checkpoints and exit status of COMMAND" msgstr "顯示已執行的查核點以及 COMMAND 的離開狀態" -#: tests/genfile.c:183 +#: tests/genfile.c:178 msgid "" "Synchronous execution actions. These are executed when checkpoint number " "given by --checkpoint option is reached." @@ -2713,128 +2727,128 @@ msgstr "" "同步的執行動作。當到達由 --checkpoint 選項所給定的查核點編號時,這些動作會被" "執行。" -#: tests/genfile.c:186 +#: tests/genfile.c:181 msgid "" "Truncate FILE to the size specified by previous --length option (or 0, if it " "is not given)" msgstr "依先前 --length 選項指定的大小來截斷檔案 (如果它未被給定就是 0)" -#: tests/genfile.c:190 +#: tests/genfile.c:185 msgid "Append SIZE bytes to FILE. SIZE is given by previous --length option." msgstr "附加 SIZE 位元組到 FILE。SIZE 是由先前 --length 選項所給定。" -#: tests/genfile.c:193 +#: tests/genfile.c:188 msgid "Update the access and modification times of FILE" msgstr "更新檔案的存取和修改時間" -#: tests/genfile.c:196 +#: tests/genfile.c:191 msgid "Execute COMMAND" msgstr "執行 COMMAND" -#: tests/genfile.c:199 +#: tests/genfile.c:194 msgid "Delete FILE" -msgstr "" +msgstr "移除檔案" -#: tests/genfile.c:250 +#: tests/genfile.c:245 #, c-format msgid "Invalid size: %s" msgstr "無效的大小:%s" -#: tests/genfile.c:255 +#: tests/genfile.c:250 #, c-format msgid "Number out of allowed range: %s" msgstr "號碼超出允許的範圍:%s" -#: tests/genfile.c:258 +#: tests/genfile.c:253 #, c-format msgid "Negative size: %s" msgstr "負值大小:%s" -#: tests/genfile.c:271 tests/genfile.c:642 +#: tests/genfile.c:266 tests/genfile.c:633 #, c-format msgid "stat(%s) failed" msgstr "狀態(%s) 失敗" -#: tests/genfile.c:274 +#: tests/genfile.c:269 #, c-format msgid "requested file length %lu, actual %lu" msgstr "要求檔案長度 %lu,實際則是 %lu" -#: tests/genfile.c:278 +#: tests/genfile.c:273 #, c-format msgid "created file is not sparse" msgstr "建立的不是稀疏檔案" -#: tests/genfile.c:375 +#: tests/genfile.c:366 #, c-format msgid "Error parsing number near `%s'" msgstr "剖析數字接近 %s 時發生錯誤" -#: tests/genfile.c:381 +#: tests/genfile.c:372 #, c-format msgid "Unknown date format" msgstr "不明的日期格式" -#: tests/genfile.c:405 +#: tests/genfile.c:396 msgid "[ARGS...]" msgstr "[引數…]" -#: tests/genfile.c:442 tests/genfile.c:482 tests/genfile.c:583 -#: tests/genfile.c:746 tests/genfile.c:760 +#: tests/genfile.c:433 tests/genfile.c:473 tests/genfile.c:574 +#: tests/genfile.c:737 tests/genfile.c:751 #, c-format msgid "cannot open `%s'" msgstr "無法開啟 %s" -#: tests/genfile.c:448 +#: tests/genfile.c:439 msgid "cannot seek" msgstr "無法尋求" -#: tests/genfile.c:465 +#: tests/genfile.c:456 #, c-format msgid "file name contains null character" msgstr "檔案名稱含有空字元" -#: tests/genfile.c:578 +#: tests/genfile.c:569 #, c-format msgid "cannot generate sparse files on standard output, use --file option" msgstr "無法於標準輸出產生稀疏檔案,使用 --file 選項" -#: tests/genfile.c:669 +#: tests/genfile.c:660 #, c-format msgid "incorrect mask (near `%s')" msgstr "不正確遮罩 (接近 %s)" -#: tests/genfile.c:675 tests/genfile.c:708 +#: tests/genfile.c:666 tests/genfile.c:699 #, c-format msgid "Unknown field `%s'" msgstr "不明的欄位 %s" -#: tests/genfile.c:735 +#: tests/genfile.c:726 #, c-format msgid "cannot set time on `%s'" msgstr "無法設定時間為 %s" -#: tests/genfile.c:765 +#: tests/genfile.c:756 #, c-format msgid "cannot truncate `%s'" msgstr "無法截斷 %s" -#: tests/genfile.c:774 +#: tests/genfile.c:765 #, c-format msgid "command failed: %s" msgstr "命令失敗:%s" -#: tests/genfile.c:781 -#, fuzzy, c-format +#: tests/genfile.c:772 +#, c-format msgid "cannot stat `%s'" -msgstr "無法截斷 %s" +msgstr "無法統計「%s」" -#: tests/genfile.c:785 -#, fuzzy, c-format +#: tests/genfile.c:776 +#, c-format msgid "cannot remove directory `%s'" -msgstr "無法設定時間為 %s" +msgstr "無法移除目錄「%s」" -#: tests/genfile.c:788 +#: tests/genfile.c:779 #, c-format msgid "cannot unlink `%s'" msgstr "無法取消連結 %s" @@ -2874,6 +2888,9 @@ msgstr "命令終止\n" msgid "--stat requires file names" msgstr "--stat 需要檔案名稱" +#~ msgid "OPTION" +#~ msgstr "選項" + #~ msgid "%.*s: ARGP_HELP_FMT parameter must be positive" #~ msgstr "%.*s: ARGP_HELP_FMT 參數必須是正值" diff --git a/rmt/Makefile.in b/rmt/Makefile.in index ccb3252d..9ca0a0e8 100644 --- a/rmt/Makefile.in +++ b/rmt/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -15,7 +15,17 @@ @SET_MAKE@ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -79,13 +89,11 @@ build_triplet = @build@ host_triplet = @host@ EXTRA_PROGRAMS = rmt$(EXEEXT) subdir = rmt -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/build-aux/depcomp ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ + $(top_srcdir)/m4/__inline.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/acl.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argp.m4 \ - $(top_srcdir)/m4/asm-underscore.m4 \ $(top_srcdir)/m4/backupfile.m4 $(top_srcdir)/m4/bison.m4 \ $(top_srcdir)/m4/btowc.m4 $(top_srcdir)/m4/builtin-expect.m4 \ $(top_srcdir)/m4/canonicalize.m4 \ @@ -105,11 +113,12 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/extern-inline.m4 \ $(top_srcdir)/m4/faccessat.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/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \ - $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpending.m4 \ + $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.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/flexmember.m4 \ + $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \ + $(top_srcdir)/m4/fnmatch_h.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 \ @@ -123,7 +132,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/group-member.m4 \ - $(top_srcdir)/m4/hard-locale.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.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 \ @@ -218,6 +226,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -283,6 +292,8 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ @@ -374,6 +385,7 @@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ +GNULIB_FNMATCH = @GNULIB_FNMATCH@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ @@ -406,6 +418,7 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ @@ -422,6 +435,7 @@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ +GNULIB_LOCALENAME = @GNULIB_LOCALENAME@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ @@ -660,6 +674,7 @@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ +HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ @@ -683,6 +698,9 @@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ +HAVE_FNMATCH = @HAVE_FNMATCH@ +HAVE_FNMATCH_H = @HAVE_FNMATCH_H@ +HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ @@ -695,13 +713,16 @@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ +HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ +HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ @@ -734,6 +755,7 @@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ +HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ @@ -804,7 +826,6 @@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ -HAVE_TRUNCATE = @HAVE_TRUNCATE@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ @@ -859,8 +880,6 @@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ -HOST_CPU = @HOST_CPU@ -HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ @@ -905,6 +924,7 @@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ +NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_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@ @@ -932,6 +952,7 @@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_FNMATCH_H = @NEXT_FNMATCH_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ @@ -992,9 +1013,11 @@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ +REPLACE_FNMATCH = @REPLACE_FNMATCH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ +REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ @@ -1012,6 +1035,7 @@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ISATTY = @REPLACE_ISATTY@ @@ -1042,6 +1066,7 @@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ @@ -1243,7 +1268,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits rmt/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnits rmt/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -1550,6 +1574,8 @@ uninstall-am: uninstall-rmtPROGRAMS mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-rmtPROGRAMS +.PRECIOUS: Makefile + rmt.o: ../gnu/configmake.h diff --git a/rmt/rmt.c b/rmt/rmt.c index fff83b87..658a243d 100644 --- a/rmt/rmt.c +++ b/rmt/rmt.c @@ -51,13 +51,16 @@ FILE *dbgout; } \ while (0) -#define VDEBUG(lev, pfx, fmt, ap) \ +#define VDEBUG(lev, pfx, fmt) \ do \ { \ if (dbgout && (lev) <= dbglev) \ { \ + va_list aptr; \ + va_start (aptr, fmt); \ fprintf (dbgout, "%s", pfx); \ - vfprintf (dbgout, fmt, ap); \ + vfprintf (dbgout, fmt, aptr); \ + va_end (aptr); \ } \ } \ while (0) @@ -100,8 +103,9 @@ rmt_write (const char *fmt, ...) va_list ap; va_start (ap, fmt); vfprintf (stdout, fmt, ap); + va_end (ap); fflush (stdout); - VDEBUG (10, "S: ", fmt, ap); + VDEBUG (10, "S: ", fmt); } static void diff --git a/scripts/Makefile.am b/scripts/Makefile.am index 3e315b78..2b676425 100644 --- a/scripts/Makefile.am +++ b/scripts/Makefile.am @@ -1,7 +1,6 @@ # Make GNU tar scripts. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/scripts/Makefile.in b/scripts/Makefile.in index f9cc0bab..e93dc30b 100644 --- a/scripts/Makefile.in +++ b/scripts/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -16,8 +16,7 @@ # Make GNU tar scripts. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. @@ -35,7 +34,17 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -98,12 +107,11 @@ POST_UNINSTALL = : build_triplet = @build@ host_triplet = @host@ subdir = scripts -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ + $(top_srcdir)/m4/__inline.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/acl.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argp.m4 \ - $(top_srcdir)/m4/asm-underscore.m4 \ $(top_srcdir)/m4/backupfile.m4 $(top_srcdir)/m4/bison.m4 \ $(top_srcdir)/m4/btowc.m4 $(top_srcdir)/m4/builtin-expect.m4 \ $(top_srcdir)/m4/canonicalize.m4 \ @@ -123,11 +131,12 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/extern-inline.m4 \ $(top_srcdir)/m4/faccessat.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/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \ - $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpending.m4 \ + $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.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/flexmember.m4 \ + $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \ + $(top_srcdir)/m4/fnmatch_h.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 \ @@ -141,7 +150,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/group-member.m4 \ - $(top_srcdir)/m4/hard-locale.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.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 \ @@ -236,6 +244,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -289,6 +298,7 @@ am__can_run_installinfo = \ *) (install-info --version) >/dev/null 2>&1;; \ esac am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ @@ -380,6 +390,7 @@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ +GNULIB_FNMATCH = @GNULIB_FNMATCH@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ @@ -412,6 +423,7 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ @@ -428,6 +440,7 @@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ +GNULIB_LOCALENAME = @GNULIB_LOCALENAME@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ @@ -666,6 +679,7 @@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ +HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ @@ -689,6 +703,9 @@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ +HAVE_FNMATCH = @HAVE_FNMATCH@ +HAVE_FNMATCH_H = @HAVE_FNMATCH_H@ +HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ @@ -701,13 +718,16 @@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ +HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ +HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ @@ -740,6 +760,7 @@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ +HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ @@ -810,7 +831,6 @@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ -HAVE_TRUNCATE = @HAVE_TRUNCATE@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ @@ -865,8 +885,6 @@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ -HOST_CPU = @HOST_CPU@ -HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ @@ -911,6 +929,7 @@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ +NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_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@ @@ -938,6 +957,7 @@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_FNMATCH_H = @NEXT_FNMATCH_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ @@ -998,9 +1018,11 @@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ +REPLACE_FNMATCH = @REPLACE_FNMATCH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ +REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ @@ -1018,6 +1040,7 @@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ISATTY = @REPLACE_ISATTY@ @@ -1048,6 +1071,7 @@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ @@ -1263,7 +1287,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits scripts/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnits scripts/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -1538,6 +1561,8 @@ uninstall-am: uninstall-libexecSCRIPTS uninstall-sbinSCRIPTS uninstall uninstall-am uninstall-libexecSCRIPTS \ uninstall-sbinSCRIPTS +.PRECIOUS: Makefile + backup.sh: $(srcdir)/backup.sh.in sed $(SED_CMD) $? > $@ diff --git a/scripts/backup-specs b/scripts/backup-specs index da3b375e..20189ec4 100644 --- a/scripts/backup-specs +++ b/scripts/backup-specs @@ -82,8 +82,7 @@ SLEEP_MESSAGE="`awk ' }' /dev/null`" -# Copyright 2004, 2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/scripts/backup.sh.in b/scripts/backup.sh.in index 15fc09d8..3ddb7efa 100644 --- a/scripts/backup.sh.in +++ b/scripts/backup.sh.in @@ -1,8 +1,7 @@ #! /bin/sh # Make backups. -# Copyright 2004-2006, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/scripts/dump-remind.in b/scripts/dump-remind.in index 8f1aefca..e4803576 100644 --- a/scripts/dump-remind.in +++ b/scripts/dump-remind.in @@ -8,8 +8,7 @@ # interested parties that a tape for the next volume of the backup needs to # be put in the tape drive. -# Copyright 2004-2005, 2010, 2012-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/scripts/restore.in b/scripts/restore.in index 34d23132..ba80575d 100644 --- a/scripts/restore.in +++ b/scripts/restore.in @@ -1,8 +1,7 @@ #! /bin/sh # Restore backups. -# Copyright 2004, 2006, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/src/Makefile.am b/src/Makefile.am index 6abc1b33..5fc081f7 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1,7 +1,6 @@ # Makefile for GNU tar sources. -# Copyright 1994-1997, 1999-2001, 2003, 2006-2007, 2009, 2013-2014, -# 2016-2017 Free Software Foundation, Inc. +# Copyright 1994-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/src/Makefile.in b/src/Makefile.in index 82f38c98..61f06a27 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -16,8 +16,7 @@ # Makefile for GNU tar sources. -# Copyright 1994-1997, 1999-2001, 2003, 2006-2007, 2009, 2013-2014, -# 2016-2017 Free Software Foundation, Inc. +# Copyright 1994-2019 Free Software Foundation, Inc. # This file is part of GNU tar. @@ -36,7 +35,17 @@ VPATH = @srcdir@ -am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -100,13 +109,11 @@ build_triplet = @build@ host_triplet = @host@ bin_PROGRAMS = tar$(EXEEXT) subdir = src -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(top_srcdir)/build-aux/depcomp $(noinst_HEADERS) ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ + $(top_srcdir)/m4/__inline.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/acl.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argp.m4 \ - $(top_srcdir)/m4/asm-underscore.m4 \ $(top_srcdir)/m4/backupfile.m4 $(top_srcdir)/m4/bison.m4 \ $(top_srcdir)/m4/btowc.m4 $(top_srcdir)/m4/builtin-expect.m4 \ $(top_srcdir)/m4/canonicalize.m4 \ @@ -126,11 +133,12 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/extern-inline.m4 \ $(top_srcdir)/m4/faccessat.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/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \ - $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpending.m4 \ + $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.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/flexmember.m4 \ + $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \ + $(top_srcdir)/m4/fnmatch_h.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 \ @@ -144,7 +152,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/group-member.m4 \ - $(top_srcdir)/m4/hard-locale.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.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 \ @@ -239,6 +246,8 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(noinst_HEADERS) \ + $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = @@ -315,6 +324,8 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in \ + $(top_srcdir)/build-aux/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ @@ -406,6 +417,7 @@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ +GNULIB_FNMATCH = @GNULIB_FNMATCH@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ @@ -438,6 +450,7 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ @@ -454,6 +467,7 @@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ +GNULIB_LOCALENAME = @GNULIB_LOCALENAME@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ @@ -692,6 +706,7 @@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ +HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ @@ -715,6 +730,9 @@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ +HAVE_FNMATCH = @HAVE_FNMATCH@ +HAVE_FNMATCH_H = @HAVE_FNMATCH_H@ +HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ @@ -727,13 +745,16 @@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ +HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ +HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ @@ -766,6 +787,7 @@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ +HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ @@ -836,7 +858,6 @@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ -HAVE_TRUNCATE = @HAVE_TRUNCATE@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ @@ -891,8 +912,6 @@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ -HOST_CPU = @HOST_CPU@ -HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ @@ -937,6 +956,7 @@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ +NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_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@ @@ -964,6 +984,7 @@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_FNMATCH_H = @NEXT_FNMATCH_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ @@ -1024,9 +1045,11 @@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ +REPLACE_FNMATCH = @REPLACE_FNMATCH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ +REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ @@ -1044,6 +1067,7 @@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ISATTY = @REPLACE_ISATTY@ @@ -1074,6 +1098,7 @@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ @@ -1300,7 +1325,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits src/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnits src/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -1630,6 +1654,8 @@ uninstall-am: uninstall-binPROGRAMS mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am uninstall-binPROGRAMS +.PRECIOUS: Makefile + # Tell versions [3.59,3.63) of GNU make to not export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. diff --git a/src/arith.h b/src/arith.h index c3430d7c..ef1f45f4 100644 --- a/src/arith.h +++ b/src/arith.h @@ -1,6 +1,5 @@ /* Long integers, for GNU tar. - Copyright 1999, 2007, 2013-2014, 2016-2017 Free Software Foundation, - Inc. + Copyright 1999-2019 Free Software Foundation, Inc. This file is part of GNU tar. diff --git a/src/buffer.c b/src/buffer.c index 51f299fd..7781009a 100644 --- a/src/buffer.c +++ b/src/buffer.c @@ -1,7 +1,6 @@ /* Buffer management for tar. - Copyright 1988, 1992-1994, 1996-1997, 1999-2010, 2013-2014, 2016-2017 - Free Software Foundation, Inc. + Copyright 1988-2019 Free Software Foundation, Inc. This file is part of GNU tar. @@ -281,7 +280,8 @@ enum compress_type { ct_lzip, ct_lzma, ct_lzop, - ct_xz + ct_xz, + ct_zstd }; static enum compress_type archive_compression_type = ct_none; @@ -310,6 +310,7 @@ static struct zip_magic const magic[] = { { ct_lzma, 6, "\xFFLZMA" }, { ct_lzop, 4, "\211LZO" }, { ct_xz, 6, "\xFD" "7zXZ" }, + { ct_zstd, 4, "\x28\xB5\x2F\xFD" }, }; #define NMAGIC (sizeof(magic)/sizeof(magic[0])) @@ -325,6 +326,7 @@ static struct zip_program zip_program[] = { { ct_lzma, XZ_PROGRAM, "-J" }, { ct_lzop, LZOP_PROGRAM, "--lzop" }, { ct_xz, XZ_PROGRAM, "-J" }, + { ct_zstd, ZSTD_PROGRAM, "--zstd" }, { ct_none } }; @@ -1500,7 +1502,7 @@ try_new_volume (void) if (!read_header0 (&dummy)) return false; tar_stat_destroy (&dummy); - assign_string (&volume_label, current_header->header.name); + ASSIGN_STRING_N (&volume_label, current_header->header.name); set_next_block_after (header); header = find_next_block (); if (header->header.typeflag != GNUTYPE_MULTIVOL) @@ -1510,7 +1512,7 @@ try_new_volume (void) if (!read_header0 (&dummy)) return false; tar_stat_destroy (&dummy); - assign_string (&continued_file_name, current_header->header.name); + ASSIGN_STRING_N (&continued_file_name, current_header->header.name); continued_file_size = UINTMAX_FROM_HEADER (current_header->header.size); continued_file_offset = @@ -1653,15 +1655,7 @@ match_volume_label (void) quote (volume_label_option))); if (label->header.typeflag == GNUTYPE_VOLHDR) { - if (memchr (label->header.name, '\0', sizeof label->header.name)) - assign_string (&volume_label, label->header.name); - else - { - volume_label = xmalloc (sizeof (label->header.name) + 1); - memcpy (volume_label, label->header.name, - sizeof (label->header.name)); - volume_label[sizeof (label->header.name)] = 0; - } + ASSIGN_STRING_N (&volume_label, label->header.name); } else if (label->header.typeflag == XGLTYPE) { @@ -1697,8 +1691,7 @@ _write_volume_label (const char *str) memset (label, 0, BLOCKSIZE); strcpy (label->header.name, str); - assign_string (¤t_stat_info.file_name, - label->header.name); + assign_string (¤t_stat_info.file_name, label->header.name); current_stat_info.had_trailing_slash = strip_trailing_slashes (current_stat_info.file_name); @@ -1768,15 +1761,19 @@ gnu_add_multi_volume_header (struct bufmap *map) { int tmp; union block *block = find_next_block (); + size_t len = strlen (map->file_name); - if (strlen (map->file_name) > NAME_FIELD_SIZE) - WARN ((0, 0, - _("%s: file name too long to be stored in a GNU multivolume header, truncated"), - quotearg_colon (map->file_name))); + if (len > NAME_FIELD_SIZE) + { + WARN ((0, 0, + _("%s: file name too long to be stored in a GNU multivolume header, truncated"), + quotearg_colon (map->file_name))); + len = NAME_FIELD_SIZE; + } memset (block, 0, BLOCKSIZE); - strncpy (block->header.name, map->file_name, NAME_FIELD_SIZE); + memcpy (block->header.name, map->file_name, len); block->header.typeflag = GNUTYPE_MULTIVOL; OFF_TO_CHARS (map->sizeleft, block->header.size); diff --git a/src/checkpoint.c b/src/checkpoint.c index 4c86b526..18fc9203 100644 --- a/src/checkpoint.c +++ b/src/checkpoint.c @@ -1,6 +1,6 @@ /* Checkpoint management for tar. - Copyright 2007, 2013-2014, 2016-2017 Free Software Foundation, Inc. + Copyright 2007-2019 Free Software Foundation, Inc. This file is part of GNU tar. @@ -23,6 +23,7 @@ #include <sys/ioctl.h> #include <termios.h> #include "fprintftime.h" +#include <signal.h> enum checkpoint_opcode { @@ -32,7 +33,8 @@ enum checkpoint_opcode cop_ttyout, cop_sleep, cop_exec, - cop_totals + cop_totals, + cop_wait }; struct checkpoint_action @@ -43,6 +45,7 @@ struct checkpoint_action { time_t time; char *command; + int signal; } v; }; @@ -52,6 +55,16 @@ static unsigned checkpoint; /* List of checkpoint actions */ static struct checkpoint_action *checkpoint_action, *checkpoint_action_tail; +/* State of the checkpoint system */ +enum { + CHKP_INIT, /* Needs initialization */ + CHKP_COMPILE, /* Actions are being compiled */ + CHKP_RUN /* Actions are being run */ +}; +static int checkpoint_state; +/* Blocked signals */ +static sigset_t sigs; + static struct checkpoint_action * alloc_action (enum checkpoint_opcode opcode) { @@ -85,6 +98,12 @@ checkpoint_compile_action (const char *str) { struct checkpoint_action *act; + if (checkpoint_state == CHKP_INIT) + { + sigemptyset (&sigs); + checkpoint_state = CHKP_COMPILE; + } + if (strcmp (str, ".") == 0 || strcmp (str, "dot") == 0) alloc_action (cop_dot); else if (strcmp (str, "bell") == 0) @@ -117,6 +136,12 @@ checkpoint_compile_action (const char *str) } else if (strcmp (str, "totals") == 0) alloc_action (cop_totals); + else if (strncmp (str, "wait=", 5) == 0) + { + act = alloc_action (cop_wait); + act->v.signal = decode_signal (str + 5); + sigaddset (&sigs, act->v.signal); + } else FATAL_ERROR ((0, 0, _("%s: unknown checkpoint action"), str)); } @@ -124,15 +149,24 @@ checkpoint_compile_action (const char *str) void checkpoint_finish_compile (void) { - if (checkpoint_option) + if (checkpoint_state == CHKP_INIT + && checkpoint_option + && !checkpoint_action) + { + /* Provide a historical default */ + checkpoint_compile_action ("echo"); + } + + if (checkpoint_state == CHKP_COMPILE) { - if (!checkpoint_action) - /* Provide a historical default */ - checkpoint_compile_action ("echo"); + sigprocmask (SIG_BLOCK, &sigs, NULL); + + if (!checkpoint_option) + /* set default checkpoint rate */ + checkpoint_option = DEFAULT_CHECKPOINT; + + checkpoint_state = CHKP_RUN; } - else if (checkpoint_action) - /* Otherwise, set default checkpoint rate */ - checkpoint_option = DEFAULT_CHECKPOINT; } static const char *checkpoint_total_format[] = { @@ -390,6 +424,13 @@ run_checkpoint_actions (bool do_write) case cop_totals: compute_duration (); print_total_stats (); + break; + + case cop_wait: + { + int n; + sigwait (&sigs, &n); + } } } } diff --git a/src/common.h b/src/common.h index bbe167ef..501e0d3a 100644 --- a/src/common.h +++ b/src/common.h @@ -1,7 +1,6 @@ /* Common declarations for the tar program. - Copyright 1988, 1992-1994, 1996-1997, 1999-2010, 2012-2017 Free - Software Foundation, Inc. + Copyright 1988-2019 Free Software Foundation, Inc. This file is part of GNU tar. @@ -302,6 +301,10 @@ enum hole_detection_method GLOBAL enum hole_detection_method hole_detection; +/* The first entry in names.c:namelist specifies the member name to + start extracting from. Set by add_starting_file() upon seeing the + -K option. +*/ GLOBAL bool starting_file_option; /* Specified maximum byte length of each tape volume (multiple of 1024). */ @@ -628,6 +631,8 @@ void skip_member (void); char const *quote_n_colon (int n, char const *arg); void assign_string (char **dest, const char *src); +void assign_string_n (char **string, const char *value, size_t n); +#define ASSIGN_STRING_N(s,v) assign_string_n (s, v, sizeof (v)) int unquote_string (char *str); char *zap_slashes (char *name); char *normalize_filename (int cdidx, const char *name); @@ -750,6 +755,7 @@ const char *name_next (int change_dirs); void name_gather (void); struct name *addname (char const *string, int change_dir, bool cmdline, struct name *parent); +void add_starting_file (char const *file_name); void remname (struct name *name); bool name_match (const char *name); void names_notfound (void); @@ -791,6 +797,8 @@ void set_exit_status (int val); void request_stdin (const char *option); +int decode_signal (const char *); + /* Where an option comes from: */ enum option_source { @@ -829,6 +837,7 @@ void xheader_store (char const *keyword, struct tar_stat_info *st, 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_forbid_global (void); void xheader_finish (struct xheader *hdr); void xheader_destroy (struct xheader *hdr); char *xheader_xhdr_name (struct tar_stat_info *st); diff --git a/src/compare.c b/src/compare.c index fee13729..419fc9fd 100644 --- a/src/compare.c +++ b/src/compare.c @@ -1,7 +1,6 @@ /* Diff files from a tar archive. - Copyright 1988, 1992-1994, 1996-1997, 1999-2001, 2003-2007, - 2009-2010, 2012-2014, 2016-2017 Free Software Foundation, Inc. + Copyright 1988-2019 Free Software Foundation, Inc. This file is part of GNU tar. diff --git a/src/create.c b/src/create.c index 35bcf5b0..bb9c115b 100644 --- a/src/create.c +++ b/src/create.c @@ -1,7 +1,6 @@ /* Create a tar archive. - Copyright 1985, 1992-1994, 1996-1997, 1999-2001, 2003-2007, - 2009-2010, 2012-2014, 2016-2017 Free Software Foundation, Inc. + Copyright 1985-2019 Free Software Foundation, Inc. This file is part of GNU tar. @@ -518,8 +517,8 @@ start_private_header (const char *name, size_t size, time_t t) MODE_TO_CHARS (S_IFREG|S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH, header->header.mode); 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); + memcpy (header->header.magic, TMAGIC, TMAGLEN); + memcpy (header->header.version, TVERSION, TVERSLEN); return header; } @@ -917,8 +916,8 @@ start_header (struct tar_stat_info *st) case POSIX_FORMAT: case USTAR_FORMAT: - strncpy (header->header.magic, TMAGIC, TMAGLEN); - strncpy (header->header.version, TVERSION, TVERSLEN); + memcpy (header->header.magic, TMAGIC, TMAGLEN); + memcpy (header->header.version, TVERSION, TVERSLEN); break; default: diff --git a/src/delete.c b/src/delete.c index 9044ba2c..f86e011b 100644 --- a/src/delete.c +++ b/src/delete.c @@ -1,7 +1,6 @@ /* Delete entries from a tar archive. - Copyright 1988, 1992, 1994, 1996-1997, 2000-2001, 2003-2006, 2010, - 2013-2014, 2016-2017 Free Software Foundation, Inc. + Copyright 1988-2019 Free Software Foundation, Inc. This file is part of GNU tar. diff --git a/src/exclist.c b/src/exclist.c index f20b98e5..288f3be8 100644 --- a/src/exclist.c +++ b/src/exclist.c @@ -1,6 +1,6 @@ /* Per-directory exclusion files for tar. - Copyright 2014, 2016-2017 Free Software Foundation, Inc. + Copyright 2014-2019 Free Software Foundation, Inc. This file is part of GNU tar. diff --git a/src/exit.c b/src/exit.c index 49443184..42d9da72 100644 --- a/src/exit.c +++ b/src/exit.c @@ -1,6 +1,6 @@ /* Exit from GNU tar. - Copyright 2009, 2013-2014, 2016-2017 Free Software Foundation, Inc. + Copyright 2009-2019 Free Software Foundation, Inc. This file is part of GNU tar. diff --git a/src/extract.c b/src/extract.c index 395db557..8276f8fe 100644 --- a/src/extract.c +++ b/src/extract.c @@ -1,7 +1,6 @@ /* Extract files from a tar archive. - Copyright 1988, 1992-1994, 1996-2001, 2003-2007, 2010, 2012-2014, - 2016-2017 Free Software Foundation, Inc. + Copyright 1988-2019 Free Software Foundation, Inc. This file is part of GNU tar. @@ -788,6 +787,7 @@ maybe_recoverable (char *file_name, bool regular, bool *interdir_made) case UNLINK_FIRST_OLD_FILES: break; } + FALLTHROUGH; case ENOENT: /* Attempt creating missing intermediate directories. */ diff --git a/src/incremen.c b/src/incremen.c index ca611f65..417ce395 100644 --- a/src/incremen.c +++ b/src/incremen.c @@ -1,7 +1,6 @@ /* GNU dump extensions to tar. - Copyright 1988, 1992-1994, 1996-1997, 1999-2001, 2003-2009, - 2013-2014, 2016-2017 Free Software Foundation, Inc. + Copyright 1988-2019 Free Software Foundation, Inc. This file is part of GNU tar. @@ -915,6 +914,7 @@ store_rename (struct directory *dir, struct obstack *stk) obstack_code_rename (stk, p->orig->name, p->name); obstack_code_rename (stk, "", prev->name); + free (temp_name); } } } @@ -997,10 +997,10 @@ read_incr_db_01 (int version, const char *initbuf) 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"))); + FATAL_ERROR ((0, errno, "%s:%ld: %s", + quotearg_colon (listed_incremental_option), + lineno, + _("Invalid time stamp"))); else { if (version == 1 && *ebuf) @@ -1042,9 +1042,9 @@ read_incr_db_01 (int version, const char *initbuf) 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"))); + FATAL_ERROR ((0, errno, "%s:%ld: %s", + quotearg_colon (listed_incremental_option), lineno, + _("Invalid modification time"))); errno = 0; u = strtoumax (strp, &ebuf, 10); @@ -1052,9 +1052,9 @@ read_incr_db_01 (int version, const char *initbuf) errno = ERANGE; if (errno || strp == ebuf || *ebuf != ' ') { - ERROR ((0, errno, "%s:%ld: %s", - quotearg_colon (listed_incremental_option), lineno, - _("Invalid modification time (nanoseconds)"))); + FATAL_ERROR ((0, errno, "%s:%ld: %s", + quotearg_colon (listed_incremental_option), lineno, + _("Invalid modification time (nanoseconds)"))); mtime.tv_nsec = -1; } else @@ -1068,17 +1068,17 @@ read_incr_db_01 (int version, const char *initbuf) TYPE_MINIMUM (dev_t), TYPE_MAXIMUM (dev_t)); strp = ebuf; if (errno || *strp != ' ') - ERROR ((0, errno, "%s:%ld: %s", + FATAL_ERROR ((0, errno, "%s:%ld: %s", quotearg_colon (listed_incremental_option), lineno, - _("Invalid device number"))); + _("Invalid device number"))); 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"))); + FATAL_ERROR ((0, errno, "%s:%ld: %s", + quotearg_colon (listed_incremental_option), lineno, + _("Invalid inode number"))); strp++; unquote_string (strp); diff --git a/src/list.c b/src/list.c index 14388a55..a985bcc1 100644 --- a/src/list.c +++ b/src/list.c @@ -1,7 +1,6 @@ /* List a tar archive, with support routines for reading a tar archive. - Copyright 1988, 1992-1994, 1996-2001, 2003-2007, 2010, 2012-2017 Free - Software Foundation, Inc. + Copyright 1988-2019 Free Software Foundation, Inc. This file is part of GNU tar. @@ -23,7 +22,7 @@ #include <system.h> #include <inttostr.h> #include <quotearg.h> - +#include <time.h> #include "common.h" union block *current_header; /* points to current archive header */ @@ -631,10 +630,12 @@ decode_header (union block *header, struct tar_stat_info *stat_info, stat_info->stat.st_mode = mode; stat_info->mtime.tv_sec = TIME_FROM_HEADER (header->header.mtime); stat_info->mtime.tv_nsec = 0; - assign_string (&stat_info->uname, - header->header.uname[0] ? header->header.uname : NULL); - assign_string (&stat_info->gname, - header->header.gname[0] ? header->header.gname : NULL); + assign_string_n (&stat_info->uname, + header->header.uname[0] ? header->header.uname : NULL, + sizeof (header->header.uname)); + assign_string_n (&stat_info->gname, + header->header.gname[0] ? header->header.gname : NULL, + sizeof (header->header.gname)); xheader_xattr_init (stat_info); @@ -1049,15 +1050,11 @@ tartime (struct timespec t, bool full_time) { if (full_time) { - sprintf (buffer, "%04ld-%02d-%02d %02d:%02d:%02d", - tm->tm_year + 1900L, tm->tm_mon + 1, tm->tm_mday, - tm->tm_hour, tm->tm_min, tm->tm_sec); + strftime (buffer, sizeof buffer, "%Y-%m-%d %H:%M:%S", tm); code_ns_fraction (ns, buffer + strlen (buffer)); } else - sprintf (buffer, "%04ld-%02d-%02d %02d:%02d", - tm->tm_year + 1900L, tm->tm_mon + 1, tm->tm_mday, - tm->tm_hour, tm->tm_min); + strftime (buffer, sizeof buffer, "%Y-%m-%d %H:%M", tm); return buffer; } @@ -1443,7 +1440,7 @@ test_archive_label (void) decode_header (current_header, ¤t_stat_info, ¤t_format, 0); if (current_header->header.typeflag == GNUTYPE_VOLHDR) - assign_string (&volume_label, current_header->header.name); + ASSIGN_STRING_N (&volume_label, current_header->header.name); if (volume_label) { diff --git a/src/map.c b/src/map.c index 770e4f56..f2ed6cd3 100644 --- a/src/map.c +++ b/src/map.c @@ -1,6 +1,6 @@ /* Owner/group mapping for tar - Copyright 2015-2017 Free Software Foundation, Inc. + Copyright 2015-2019 Free Software Foundation, Inc. This file is part of GNU tar. diff --git a/src/misc.c b/src/misc.c index cd07f530..cb7254f2 100644 --- a/src/misc.c +++ b/src/misc.c @@ -1,7 +1,6 @@ /* Miscellaneous functions, not really specific to GNU tar. - Copyright 1988, 1992, 1994-1997, 1999-2001, 2003-2007, 2009-2010, - 2012-2014, 2016-2017 Free Software Foundation, Inc. + Copyright 1988-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -50,6 +49,20 @@ assign_string (char **string, const char *value) *string = value ? xstrdup (value) : 0; } +void +assign_string_n (char **string, const char *value, size_t n) +{ + free (*string); + if (value) + { + size_t l = strnlen (value, n); + char *p = xmalloc (l + 1); + memcpy (p, value, l); + p[l] = 0; + *string = p; + } +} + #if 0 /* This function is currently unused; perhaps it should be removed? */ @@ -727,7 +740,7 @@ maybe_backup_file (const char *file_name, bool this_is_the_archive) && (S_ISBLK (file_stat.st_mode) || S_ISCHR (file_stat.st_mode))) return true; - after_backup_name = find_backup_file_name (file_name, backup_type); + after_backup_name = find_backup_file_name (chdir_fd, file_name, backup_type); if (! after_backup_name) xalloc_die (); diff --git a/src/names.c b/src/names.c index f6ad9fe0..28ae21f9 100644 --- a/src/names.c +++ b/src/names.c @@ -1,7 +1,6 @@ /* Various processing of names. - Copyright 1988, 1992, 1994, 1996-2001, 2003-2007, 2009, 2013-2017 - Free Software Foundation, Inc. + Copyright 1988-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -1227,6 +1226,34 @@ addname (char const *string, int change_dir, bool cmdline, struct name *parent) return name; } +void +add_starting_file (char const *file_name) +{ + struct name *name = make_name (file_name); + + if (starting_file_option) + { + struct name *head = namelist; + remname (head); + free_name (head); + } + + name->prev = NULL; + name->next = namelist; + namelist = name; + if (!nametail) + nametail = namelist; + + name->found_count = 0; + name->matching_flags = INCLUDE_OPTIONS; + name->change_dir = 0; + name->directory = NULL; + name->parent = NULL; + name->cmdline = true; + + starting_file_option = true; +} + /* Find a match for FILE_NAME (whose string length is LENGTH) in the name list. */ static struct name * @@ -1283,19 +1310,22 @@ name_match (const char *file_name) } cursor = namelist_match (file_name, length); + if (starting_file_option) + { + /* If starting_file_option is set, the head of the list is the name + of the member to start extraction from. Skip the match unless it + is head. */ + if (cursor == namelist) + starting_file_option = false; + else + cursor = NULL; + } if (cursor) { if (!(ISSLASH (file_name[cursor->length]) && recursion_option) || cursor->found_count == 0) cursor->found_count++; /* remember it matched */ - if (starting_file_option) - { - free (namelist); - namelist = NULL; - nametail = NULL; - } chdir_do (cursor->change_dir); - /* We got a match. */ return ISFOUND (cursor); } @@ -1767,6 +1797,11 @@ collect_and_sort_names (void) name->found_count++; add_hierarchy_to_namelist (&st, name); } + else + { + errno = ENOTDIR; + open_diag (name->name); + } } } @@ -1821,7 +1856,7 @@ collect_and_sort_names (void) if (listed_incremental_option) { - for (name = namelist; name && name->name[0] == 0; name++) + for (name = namelist; name && name->name[0] == 0; name = name->next) ; if (name) append_incremental_renames (name->directory); diff --git a/src/sparse.c b/src/sparse.c index d41c0eac..d642a463 100644 --- a/src/sparse.c +++ b/src/sparse.c @@ -1,6 +1,6 @@ /* Functions for dealing with sparse files - Copyright 2003-2007, 2010, 2013-2017 Free Software Foundation, Inc. + Copyright 2003-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -427,6 +427,30 @@ sparse_dump_region (struct tar_sparse_file *file, size_t i) bufsize); return false; } + else if (bytes_read == 0) + { + char buf[UINTMAX_STRSIZE_BOUND]; + struct stat st; + size_t n; + if (fstat (file->fd, &st) == 0) + n = file->stat_info->stat.st_size - st.st_size; + else + n = file->stat_info->stat.st_size + - (file->stat_info->sparse_map[i].offset + + file->stat_info->sparse_map[i].numbytes + - bytes_left); + + WARNOPT (WARN_FILE_SHRANK, + (0, 0, + ngettext ("%s: File shrank by %s byte; padding with zeros", + "%s: File shrank by %s bytes; padding with zeros", + n), + quotearg_colon (file->stat_info->orig_file_name), + STRINGIFY_BIGINT (n, buf))); + if (! ignore_failed_read_option) + set_exit_status (TAREXIT_DIFFERS); + return false; + } memset (blk->buffer + bytes_read, 0, BLOCKSIZE - bytes_read); bytes_left -= bytes_read; @@ -464,9 +488,9 @@ sparse_extract_region (struct tar_sparse_file *file, size_t i) return false; } set_next_block_after (blk); + file->dumped_size += BLOCKSIZE; 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); file->offset += count; if (count != wrbytes) @@ -598,6 +622,12 @@ check_sparse_region (struct tar_sparse_file *file, off_t beg, off_t end) rdsize); return false; } + else if (bytes_read == 0) + { + report_difference (file->stat_info, _("Size differs")); + return false; + } + if (!zero_block_p (diff_buffer, bytes_read)) { char begbuf[INT_BUFSIZE_BOUND (off_t)]; @@ -609,6 +639,7 @@ check_sparse_region (struct tar_sparse_file *file, off_t beg, off_t end) beg += bytes_read; } + return true; } @@ -635,6 +666,7 @@ check_data_region (struct tar_sparse_file *file, size_t i) return false; } set_next_block_after (blk); + file->dumped_size += BLOCKSIZE; bytes_read = safe_read (file->fd, diff_buffer, rdsize); if (bytes_read == SAFE_READ_ERROR) { @@ -645,7 +677,11 @@ check_data_region (struct tar_sparse_file *file, size_t i) rdsize); return false; } - file->dumped_size += bytes_read; + else if (bytes_read == 0) + { + report_difference (¤t_stat_info, _("Size differs")); + return false; + } size_left -= bytes_read; mv_size_left (file->stat_info->archive_file_size - file->dumped_size); if (memcmp (blk->buffer, diff_buffer, rdsize)) @@ -1213,7 +1249,8 @@ pax_decode_header (struct tar_sparse_file *file) union block *blk; char *p; size_t i; - + off_t start; + #define COPY_BUF(b,buf,src) do \ { \ char *endp = b->buffer + BLOCKSIZE; \ @@ -1229,8 +1266,9 @@ pax_decode_header (struct tar_sparse_file *file) if (src == endp) \ { \ set_next_block_after (b); \ - file->dumped_size += BLOCKSIZE; \ b = find_next_block (); \ + if (!b) \ + FATAL_ERROR ((0, 0, _("Unexpected EOF in archive"))); \ src = b->buffer; \ endp = b->buffer + BLOCKSIZE; \ } \ @@ -1240,9 +1278,11 @@ pax_decode_header (struct tar_sparse_file *file) dst[-1] = 0; \ } while (0) + start = current_block_ordinal (); set_next_block_after (current_header); - file->dumped_size += BLOCKSIZE; blk = find_next_block (); + if (!blk) + FATAL_ERROR ((0, 0, _("Unexpected EOF in archive"))); p = blk->buffer; COPY_BUF (blk,nbuf,p); if (!decode_num (&u, nbuf, TYPE_MAXIMUM (size_t))) @@ -1278,6 +1318,8 @@ pax_decode_header (struct tar_sparse_file *file) sparse_add_map (file->stat_info, &sp); } set_next_block_after (blk); + + file->dumped_size += BLOCKSIZE * (current_block_ordinal () - start); } return true; diff --git a/src/suffix.c b/src/suffix.c index 47027e73..370b048d 100644 --- a/src/suffix.c +++ b/src/suffix.c @@ -1,6 +1,5 @@ /* This file is part of GNU tar. - Copyright 2007, 2009, 2013-2014, 2016-2017 Free Software Foundation, - Inc. + Copyright 2007-2019 Free Software Foundation, Inc. Written by Sergey Poznyakoff. @@ -46,6 +45,8 @@ static struct compression_suffix compression_suffixes[] = { { S(lzo, LZOP) }, { S(xz, XZ) }, { S(txz, XZ) }, /* Slackware */ + { S(zst, ZSTD) }, + { S(tzst, ZSTD) }, { NULL } #undef S #undef __CAT2__ @@ -60,7 +61,7 @@ find_compression_suffix (const char *name, size_t *ret_len) { size_t len; struct compression_suffix *p; - + suf++; len = strlen (suf); @@ -99,10 +100,14 @@ strip_compression_suffix (const char *name) { char *s = NULL; size_t len; + struct compression_suffix const *p = find_compression_suffix (name, &len); - if (find_compression_suffix (name, &len)) + if (p) { - if (strncmp (name + len - 4, ".tar", 4) == 0) + /* Strip an additional ".tar" suffix, but only if the just-stripped + "outer" suffix did not begin with "t". */ + if (len > 4 && strncmp (name + len - 4, ".tar", 4) == 0 + && p->suffix[0] != 't') len -= 4; if (len == 0) return NULL; @@ -112,4 +117,3 @@ strip_compression_suffix (const char *name) } return s; } - diff --git a/src/system.c b/src/system.c index b4f69853..e1c56723 100644 --- a/src/system.c +++ b/src/system.c @@ -1,7 +1,6 @@ /* System-dependent calls for tar. - Copyright 2003-2008, 2010, 2013-2014, 2016-2017 Free Software - Foundation, Inc. + Copyright 2003-2019 Free Software Foundation, Inc. This program 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/src/tar.c b/src/tar.c index 3f844a8f..d66fed86 100644 --- a/src/tar.c +++ b/src/tar.c @@ -1,7 +1,6 @@ /* A tar (tape archiver) program. - Copyright 1988, 1992-1997, 1999-2001, 2003-2007, 2012-2017 Free - Software Foundation, Inc. + Copyright 1988-2019 Free Software Foundation, Inc. Written by John Gilmore, starting 1985-08-25. @@ -348,7 +347,8 @@ enum WARNING_OPTION, XATTR_OPTION, XATTR_EXCLUDE, - XATTR_INCLUDE + XATTR_INCLUDE, + ZSTD_OPTION, }; static char const doc[] = N_("\ @@ -682,6 +682,7 @@ static struct argp_option options[] = { {"lzma", LZMA_OPTION, 0, 0, NULL, GRID+1 }, {"lzop", LZOP_OPTION, 0, 0, NULL, GRID+1 }, {"xz", 'J', 0, 0, NULL, GRID+1 }, + {"zstd", ZSTD_OPTION, 0, 0, NULL, GRID+1 }, #undef GRID #define GRID 100 @@ -974,36 +975,37 @@ stat_on_signal (int signo) #endif } -static void -set_stat_signal (const char *name) +int +decode_signal (const char *name) { static struct sigtab { char const *name; int signo; } const sigtab[] = { - { "SIGUSR1", SIGUSR1 }, { "USR1", SIGUSR1 }, - { "SIGUSR2", SIGUSR2 }, { "USR2", SIGUSR2 }, - { "SIGHUP", SIGHUP }, { "HUP", SIGHUP }, - { "SIGINT", SIGINT }, { "INT", SIGINT }, - { "SIGQUIT", SIGQUIT }, { "QUIT", SIGQUIT } }; struct sigtab const *p; + char const *s = name; + if (strncmp (s, "SIG", 3) == 0) + s += 3; for (p = sigtab; p < sigtab + sizeof (sigtab) / sizeof (sigtab[0]); p++) - if (strcmp (p->name, name) == 0) - { - stat_on_signal (p->signo); - return; - } + if (strcmp (p->name, s) == 0) + return p->signo; FATAL_ERROR ((0, 0, _("Unknown signal name: %s"), name)); } +static void +set_stat_signal (const char *name) +{ + stat_on_signal (decode_signal (name)); +} + struct textual_date { @@ -1129,6 +1131,10 @@ tar_help_filter (int key, const char *text, void *input) s = xasprintf (_("filter the archive through %s"), XZ_PROGRAM); break; + case ZSTD_OPTION: + s = xasprintf (_("filter the archive through %s"), ZSTD_PROGRAM); + break; + case ARGP_KEY_HELP_EXTRA: { const char *tstr; @@ -1151,7 +1157,7 @@ tar_help_filter (int key, const char *text, void *input) return s; } -static char * +static char * _GL_ATTRIBUTE_MALLOC expand_pax_option (struct tar_args *targs, const char *arg) { struct obstack stk; @@ -1437,8 +1443,7 @@ parse_opt (int key, char *arg, struct argp_state *state) case 'K': optloc_save (OC_STARTING_FILE, args->loc); - starting_file_option = true; - addname (arg, 0, true, NULL); + add_starting_file (arg); break; case ONE_FILE_SYSTEM_OPTION: @@ -1650,6 +1655,10 @@ parse_opt (int key, char *arg, struct argp_state *state) set_use_compress_program_option (COMPRESS_PROGRAM, args->loc); break; + case ZSTD_OPTION: + set_use_compress_program_option (ZSTD_PROGRAM, args->loc); + break; + case ATIME_PRESERVE_OPTION: atime_preserve_option = (arg @@ -2656,7 +2665,28 @@ decode_options (int argc, char **argv) report_textual_dates (&args); } - + +#ifdef ENABLE_ERROR_PRINT_PROGNAME +/* The error() function from glibc correctly prefixes each message it + prints with program_name as set by set_program_name. However, its + replacement from gnulib, which is linked in on systems where this + function is not available, prints the name returned by getprogname() + instead. Due to this messages output by tar subprocess (which sets its + program name to 'tar (child)') become indiscernible from those printed + by the main process. In particular, this breaks the remfiles01.at and + remfiles02.at test cases. + + To avoid this, on such systems the following helper function is used + to print proper program name. Its address is assigned to the + error_print_progname variable, which error() then uses instead of + printing getprogname() result. + */ +static void +tar_print_progname (void) +{ + fprintf (stderr, "%s: ", program_name); +} +#endif /* Tar proper. */ @@ -2666,7 +2696,9 @@ main (int argc, char **argv) { set_start_time (); set_program_name (argv[0]); - +#ifdef ENABLE_ERROR_PRINT_PROGNAME + error_print_progname = tar_print_progname; +#endif setlocale (LC_ALL, ""); bindtextdomain (PACKAGE, LOCALEDIR); textdomain (PACKAGE); diff --git a/src/tar.h b/src/tar.h index 858b990d..724b3a85 100644 --- a/src/tar.h +++ b/src/tar.h @@ -1,7 +1,6 @@ /* GNU tar Archive Format description. - Copyright 1988-1989, 1991-1997, 2000-2001, 2003-2007, 2012-2014, - 2016-2017 Free Software Foundation, Inc. + Copyright 1988-2019 Free Software Foundation, Inc. This file is part of GNU tar. diff --git a/src/transform.c b/src/transform.c index e450dd22..d0ac2a52 100644 --- a/src/transform.c +++ b/src/transform.c @@ -1,6 +1,5 @@ /* This file is part of GNU tar. - Copyright 2006-2008, 2013-2014, 2016-2017 Free Software Foundation, - Inc. + Copyright 2006-2019 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the @@ -101,7 +100,7 @@ add_segment (struct transform *tf) } static void -add_literal_segment (struct transform *tf, char *str, char *end) +add_literal_segment (struct transform *tf, const char *str, const char *end) { size_t len = end - str; if (len) @@ -273,7 +272,7 @@ parse_transform_expr (const char *expr) USAGE_ERROR ((0, 0, _("Invalid transform expression: %s"), errbuf)); } - if (str[0] == '^' || str[strlen (str) - 1] == '$') + if (str[0] == '^' || (i > 2 && str[i - 3] == '$')) tf->transform_type = transform_first; free (str); @@ -403,6 +402,7 @@ parse_transform_expr (const char *expr) cur++; } add_literal_segment (tf, beg, cur); + free(str); return p; } @@ -550,7 +550,7 @@ _single_transform_name_to_obstack (struct transform *tf, char *input) default: break; } - /*FALL THROUGH*/ + FALLTHROUGH; case ctl_upcase: case ctl_locase: diff --git a/src/unlink.c b/src/unlink.c index 6719e7dd..5a72f701 100644 --- a/src/unlink.c +++ b/src/unlink.c @@ -1,6 +1,6 @@ /* Unlink files. - Copyright 2009, 2013-2014, 2016-2017 Free Software Foundation, Inc. + Copyright 2009-2019 Free Software Foundation, Inc. This file is part of GNU tar. @@ -127,7 +127,9 @@ flush_deferred_unlinks (bool force) case EEXIST: /* OpenSolaris >=10 sets EEXIST instead of ENOTEMPTY if trying to remove a non-empty directory */ +#if defined ENOTEMPTY && ENOTEMPTY != EEXIST case ENOTEMPTY: +#endif /* Keep the record in list, in the hope we'll be able to remove it later */ prev = p; diff --git a/src/update.c b/src/update.c index 2f823e45..38b5ce15 100644 --- a/src/update.c +++ b/src/update.c @@ -1,7 +1,6 @@ /* Update a tar archive. - Copyright 1988, 1992, 1994, 1996-1997, 1999-2001, 2003-2005, 2007, - 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. + Copyright 1988-2019 Free Software Foundation, Inc. This file is part of GNU tar. @@ -111,7 +110,7 @@ update_archive (void) name_gather (); open_archive (ACCESS_UPDATE); - buffer_write_global_xheader (); + xheader_forbid_global (); while (!found_end) { diff --git a/src/utf8.c b/src/utf8.c index a018ce0a..53a1ab21 100644 --- a/src/utf8.c +++ b/src/utf8.c @@ -1,7 +1,6 @@ /* Charset handling for GNU tar. - Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software - Foundation, Inc. + Copyright 2004-2019 Free Software Foundation, Inc. This file is part of GNU tar. @@ -36,11 +35,14 @@ # define iconv_open(tocode, fromcode) ((iconv_t) -1) # undef iconv -# define iconv(cd, inbuf, inbytesleft, outbuf, outbytesleft) ((size_t) 0) +# define iconv(cd, inbuf, inbytesleft, outbuf, outbytesleft) (errno = ENOSYS, (size_t) -1) # undef iconv_close # define iconv_close(cd) 0 +# undef iconv_t +# define iconv_t int + #endif @@ -65,10 +67,9 @@ bool utf8_convert (bool to_utf, char const *input, char **output) { char ICONV_CONST *ib; - char *ob; + char *ob, *ret; size_t inlen; size_t outlen; - size_t rc; iconv_t cd = utf8_init (to_utf); if (cd == 0) @@ -81,11 +82,27 @@ utf8_convert (bool to_utf, char const *input, char **output) inlen = strlen (input) + 1; outlen = inlen * MB_LEN_MAX + 1; - ob = *output = xmalloc (outlen); + ob = ret = xmalloc (outlen); ib = (char ICONV_CONST *) input; - rc = iconv (cd, &ib, &inlen, &ob, &outlen); + /* According to POSIX, "if iconv() encounters a character in the input + buffer that is valid, but for which an identical character does not + exist in the target codeset, iconv() shall perform an + implementation-defined conversion on this character." It will "update + the variables pointed to by the arguments to reflect the extent of the + conversion and return the number of non-identical conversions performed". + On error, it returns -1. + In other words, non-zero return always indicates failure, either because + the input was not fully converted, or because it was converted in a + non-reversible way. + */ + if (iconv (cd, &ib, &inlen, &ob, &outlen) != 0) + { + free (ret); + return false; + } *ob = 0; - return rc != -1; + *output = ret; + return true; } diff --git a/src/warning.c b/src/warning.c index bfcd2d27..8851b24e 100644 --- a/src/warning.c +++ b/src/warning.c @@ -1,6 +1,6 @@ /* Warnings for GNU tar. - Copyright 2009, 2012-2014, 2016-2017 Free Software Foundation, Inc. + Copyright 2009-2019 Free Software Foundation, Inc. This file is part of GNU tar. diff --git a/src/xattrs.c b/src/xattrs.c index 5049d08b..df65460e 100644 --- a/src/xattrs.c +++ b/src/xattrs.c @@ -1,6 +1,6 @@ /* Support for extended attributes. - Copyright (C) 2006-2014, 2016-2017 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GNU tar. @@ -246,13 +246,36 @@ xattrs__acls_set (struct tar_stat_info const *st, acl_free (acl); } +/* Cleanup textual representation of the ACL in VAL by eliminating tab + characters and comments */ +static void +xattrs_acls_cleanup (char *val, size_t *plen) +{ + char *p, *q; + + p = q = val + strcspn (val, "#\t"); + while (*q) + { + if (*q == '\t') + q++; + else if (*q == '#') + { + while (*q != '\n') + q++; + } + else + *p++ = *q++; + } + *plen = p - val; + *p++ = 0; +} + 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))) @@ -262,7 +285,7 @@ xattrs__acls_get_a (int parentfd, const char *file_name, return; } - val = acl_to_text (acl, &len); + val = acl_to_text (acl, NULL); acl_free (acl); if (!val) @@ -272,8 +295,7 @@ xattrs__acls_get_a (int parentfd, const char *file_name, } *ret_ptr = xstrdup (val); - *ret_len = len; - + xattrs_acls_cleanup (*ret_ptr, ret_len); acl_free (val); } @@ -284,7 +306,6 @@ xattrs__acls_get_d (int parentfd, char const *file_name, 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))) @@ -294,7 +315,7 @@ xattrs__acls_get_d (int parentfd, char const *file_name, return; } - val = acl_to_text (acl, &len); + val = acl_to_text (acl, NULL); acl_free (acl); if (!val) @@ -304,8 +325,7 @@ xattrs__acls_get_d (int parentfd, char const *file_name, } *ret_ptr = xstrdup (val); - *ret_len = len; - + xattrs_acls_cleanup (*ret_ptr, ret_len); acl_free (val); } #endif /* HAVE_POSIX_ACLS */ @@ -336,6 +356,7 @@ acls_one_line (const char *prefix, char delim, obstack_grow (&stk, prefix, pref_len); obstack_grow (&stk, aclstring, move); + pos += move + 1; aclstring += move + 1; } @@ -740,6 +761,8 @@ xattrs_print (struct tar_stat_info const *st) { fprintf (stdlis, " a: "); acls_one_line ("", ',', st->acls_a_ptr, st->acls_a_len); + if (st->acls_a_len && st->acls_d_len) + fprintf (stdlis, ","); acls_one_line ("default:", ',', st->acls_d_ptr, st->acls_d_len); fprintf (stdlis, "\n"); } diff --git a/src/xattrs.h b/src/xattrs.h index f537dd30..b284cb2a 100644 --- a/src/xattrs.h +++ b/src/xattrs.h @@ -1,6 +1,6 @@ /* Support for extended attributes. - Copyright (C) 2006-2014, 2016-2017 Free Software Foundation, Inc. + Copyright (C) 2006-2019 Free Software Foundation, Inc. This file is part of GNU tar. diff --git a/src/xheader.c b/src/xheader.c index 6d97131d..46bf4bbe 100644 --- a/src/xheader.c +++ b/src/xheader.c @@ -1,7 +1,6 @@ /* POSIX extended headers for tar. - Copyright (C) 2003-2007, 2009-2010, 2012-2014, 2016-2017 Free - Software Foundation, Inc. + Copyright (C) 2003-2019 Free Software Foundation, Inc. This file is part of GNU tar. @@ -185,6 +184,9 @@ xheader_set_keyword_equal (char *kw, char *eq) bool global = true; char *p = eq; + if (eq == kw) + USAGE_ERROR ((0, 0, _("Malformed pax option: %s"), quote (kw))); + if (eq[-1] == ':') { p--; @@ -255,7 +257,7 @@ char * xheader_format_name (struct tar_stat_info *st, const char *fmt, size_t n) { char *buf; - size_t len = strlen (fmt); + size_t len; char *q; const char *p; char *dirp = NULL; @@ -266,43 +268,51 @@ xheader_format_name (struct tar_stat_info *st, const char *fmt, size_t n) char nbuf[UINTMAX_STRSIZE_BOUND]; char const *nptr = NULL; - for (p = fmt; *p && (p = strchr (p, '%')); ) + len = 0; + for (p = fmt; *p; p++) { - switch (p[1]) + if (*p == '%' && p[1]) { - case '%': - len--; - break; - - case 'd': - if (st) + switch (*++p) { - if (!dirp) - dirp = dir_name (st->orig_file_name); - dir = safer_name_suffix (dirp, false, absolute_names_option); - len += strlen (dir) - 2; - } - break; + case '%': + len++; + break; - case 'f': - if (st) - { - base = last_component (st->orig_file_name); - len += strlen (base) - 2; - } - break; + case 'd': + if (st) + { + if (!dirp) + dirp = dir_name (st->orig_file_name); + dir = safer_name_suffix (dirp, false, absolute_names_option); + len += strlen (dir); + } + break; + + case 'f': + if (st) + { + base = last_component (st->orig_file_name); + len += strlen (base); + } + break; - case 'p': - pptr = umaxtostr (getpid (), pidbuf); - len += pidbuf + sizeof pidbuf - 1 - pptr - 2; - break; + case 'p': + pptr = umaxtostr (getpid (), pidbuf); + len += pidbuf + sizeof pidbuf - 1 - pptr; + break; - case 'n': - nptr = umaxtostr (n, nbuf); - len += nbuf + sizeof nbuf - 1 - nptr - 2; - break; + case 'n': + nptr = umaxtostr (n, nbuf); + len += nbuf + sizeof nbuf - 1 - nptr; + break; + + default: + len += 2; + } } - p++; + else + len++; } buf = xmalloc (len + 1); @@ -458,6 +468,14 @@ xheader_write_global (struct xheader *xhdr) } } +/* Forbid modifications of the global extended header */ +void +xheader_forbid_global (void) +{ + if (keyword_global_override_list) + USAGE_ERROR ((0, 0, _("can't update global extended header record"))); +} + void xheader_xattr_init (struct tar_stat_info *st) { diff --git a/tests/Makefile.am b/tests/Makefile.am index 2d7939d5..bc657da2 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,6 +1,6 @@ # Makefile for GNU tar regression tests. -# Copyright 1996-1997, 1999-2001, 2003-2007, 2009, 2012-2015 Free Software +# Copyright 1996-2019 Free Software Foundation, Inc. # This file is part of GNU tar. @@ -17,9 +17,13 @@ # 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 +EXTRA_DIST = $(TESTSUITE_AT) \ + testsuite package.m4 star/README star/quicktest.sh \ + compress.m4 + DISTCLEANFILES = atconfig $(check_SCRIPTS) MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE) +CLEANFILES = ## ------------ ## ## package.m4. ## @@ -43,6 +47,7 @@ $(srcdir)/package.m4: $(top_srcdir)/configure.ac TESTSUITE_AT = \ testsuite.at\ + compress.m4\ T-cd.at\ T-dir00.at\ T-dir01.at\ @@ -66,6 +71,11 @@ TESTSUITE_AT = \ chtype.at\ comprec.at\ comperr.at\ + checkpoint/defaults.at\ + checkpoint/interval.at\ + checkpoint/dot.at\ + checkpoint/dot-compat.at\ + checkpoint/dot-int.at\ delete01.at\ delete02.at\ delete03.at\ @@ -228,6 +238,9 @@ TESTSUITE_AT = \ spmvp00.at\ spmvp01.at\ spmvp10.at\ + sptrcreat.at\ + sptrdiff00.at\ + sptrdiff01.at\ time01.at\ time02.at\ truncate.at\ diff --git a/tests/Makefile.in b/tests/Makefile.in index 233a5969..7d36b3b3 100644 --- a/tests/Makefile.in +++ b/tests/Makefile.in @@ -1,7 +1,7 @@ -# Makefile.in generated by automake 1.14 from Makefile.am. +# Makefile.in generated by automake 1.15 from Makefile.am. # @configure_input@ -# Copyright (C) 1994-2013 Free Software Foundation, Inc. +# Copyright (C) 1994-2014 Free Software Foundation, Inc. # This Makefile.in is free software; the Free Software Foundation # gives unlimited permission to copy and/or distribute it, @@ -16,7 +16,7 @@ # Makefile for GNU tar regression tests. -# Copyright 1996-1997, 1999-2001, 2003-2007, 2009, 2012-2015 Free Software +# Copyright 1996-2019 Free Software Foundation, Inc. # This file is part of GNU tar. @@ -33,7 +33,17 @@ # 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__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)' +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} am__make_running_with_option = \ case $${target_option-} in \ ?) ;; \ @@ -98,13 +108,11 @@ host_triplet = @host@ check_PROGRAMS = genfile$(EXEEXT) checkseekhole$(EXEEXT) \ ckmtime$(EXEEXT) subdir = tests -DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am \ - $(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/__inline.m4 \ $(top_srcdir)/m4/absolute-header.m4 $(top_srcdir)/m4/acl.m4 \ $(top_srcdir)/m4/alloca.m4 $(top_srcdir)/m4/argp.m4 \ - $(top_srcdir)/m4/asm-underscore.m4 \ $(top_srcdir)/m4/backupfile.m4 $(top_srcdir)/m4/bison.m4 \ $(top_srcdir)/m4/btowc.m4 $(top_srcdir)/m4/builtin-expect.m4 \ $(top_srcdir)/m4/canonicalize.m4 \ @@ -124,11 +132,12 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/extern-inline.m4 \ $(top_srcdir)/m4/faccessat.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/flexmember.m4 $(top_srcdir)/m4/float_h.m4 \ - $(top_srcdir)/m4/fnmatch.m4 $(top_srcdir)/m4/fpending.m4 \ + $(top_srcdir)/m4/fcntl-o.m4 $(top_srcdir)/m4/fcntl-safer.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/flexmember.m4 \ + $(top_srcdir)/m4/float_h.m4 $(top_srcdir)/m4/fnmatch.m4 \ + $(top_srcdir)/m4/fnmatch_h.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 \ @@ -142,7 +151,6 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/m4/glibc21.m4 $(top_srcdir)/m4/gnulib-common.m4 \ $(top_srcdir)/m4/gnulib-comp.m4 \ $(top_srcdir)/m4/group-member.m4 \ - $(top_srcdir)/m4/hard-locale.m4 \ $(top_srcdir)/m4/host-cpu-c-abi.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 \ @@ -237,6 +245,7 @@ am__aclocal_m4_deps = $(top_srcdir)/m4/00gnulib.m4 \ $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) mkinstalldirs = $(install_sh) -d CONFIG_HEADER = $(top_builddir)/config.h CONFIG_CLEAN_FILES = atlocal @@ -311,6 +320,8 @@ am__define_uniq_tagged_files = \ done | $(am__uniquify_input)` ETAGS = etags CTAGS = ctags +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/atlocal.in \ + $(top_srcdir)/build-aux/depcomp DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) pkglibexecdir = @pkglibexecdir@ ACLOCAL = @ACLOCAL@ @@ -402,6 +413,7 @@ GNULIB_FFSL = @GNULIB_FFSL@ GNULIB_FFSLL = @GNULIB_FFSLL@ GNULIB_FGETC = @GNULIB_FGETC@ GNULIB_FGETS = @GNULIB_FGETS@ +GNULIB_FNMATCH = @GNULIB_FNMATCH@ GNULIB_FOPEN = @GNULIB_FOPEN@ GNULIB_FPRINTF = @GNULIB_FPRINTF@ GNULIB_FPRINTF_POSIX = @GNULIB_FPRINTF_POSIX@ @@ -434,6 +446,7 @@ GNULIB_GETLOADAVG = @GNULIB_GETLOADAVG@ GNULIB_GETLOGIN = @GNULIB_GETLOGIN@ GNULIB_GETLOGIN_R = @GNULIB_GETLOGIN_R@ GNULIB_GETPAGESIZE = @GNULIB_GETPAGESIZE@ +GNULIB_GETPASS = @GNULIB_GETPASS@ GNULIB_GETSUBOPT = @GNULIB_GETSUBOPT@ GNULIB_GETTIMEOFDAY = @GNULIB_GETTIMEOFDAY@ GNULIB_GETUSERSHELL = @GNULIB_GETUSERSHELL@ @@ -450,6 +463,7 @@ GNULIB_LCHOWN = @GNULIB_LCHOWN@ GNULIB_LINK = @GNULIB_LINK@ GNULIB_LINKAT = @GNULIB_LINKAT@ GNULIB_LOCALECONV = @GNULIB_LOCALECONV@ +GNULIB_LOCALENAME = @GNULIB_LOCALENAME@ GNULIB_LOCALTIME = @GNULIB_LOCALTIME@ GNULIB_LSEEK = @GNULIB_LSEEK@ GNULIB_LSTAT = @GNULIB_LSTAT@ @@ -688,6 +702,7 @@ HAVE_DECL_STRSIGNAL = @HAVE_DECL_STRSIGNAL@ HAVE_DECL_STRTOIMAX = @HAVE_DECL_STRTOIMAX@ HAVE_DECL_STRTOK_R = @HAVE_DECL_STRTOK_R@ HAVE_DECL_STRTOUMAX = @HAVE_DECL_STRTOUMAX@ +HAVE_DECL_TRUNCATE = @HAVE_DECL_TRUNCATE@ HAVE_DECL_TTYNAME_R = @HAVE_DECL_TTYNAME_R@ HAVE_DECL_UNSETENV = @HAVE_DECL_UNSETENV@ HAVE_DECL_VSNPRINTF = @HAVE_DECL_VSNPRINTF@ @@ -711,6 +726,9 @@ HAVE_FEATURES_H = @HAVE_FEATURES_H@ HAVE_FFS = @HAVE_FFS@ HAVE_FFSL = @HAVE_FFSL@ HAVE_FFSLL = @HAVE_FFSLL@ +HAVE_FNMATCH = @HAVE_FNMATCH@ +HAVE_FNMATCH_H = @HAVE_FNMATCH_H@ +HAVE_FREELOCALE = @HAVE_FREELOCALE@ HAVE_FSEEKO = @HAVE_FSEEKO@ HAVE_FSTATAT = @HAVE_FSTATAT@ HAVE_FSYNC = @HAVE_FSYNC@ @@ -723,13 +741,16 @@ HAVE_GETHOSTNAME = @HAVE_GETHOSTNAME@ HAVE_GETLOGIN = @HAVE_GETLOGIN@ HAVE_GETOPT_H = @HAVE_GETOPT_H@ HAVE_GETPAGESIZE = @HAVE_GETPAGESIZE@ +HAVE_GETPASS = @HAVE_GETPASS@ HAVE_GETSUBOPT = @HAVE_GETSUBOPT@ HAVE_GETTIMEOFDAY = @HAVE_GETTIMEOFDAY@ HAVE_GRANTPT = @HAVE_GRANTPT@ HAVE_GROUP_MEMBER = @HAVE_GROUP_MEMBER@ +HAVE_IMAXDIV_T = @HAVE_IMAXDIV_T@ HAVE_INTTYPES_H = @HAVE_INTTYPES_H@ HAVE_ISWBLANK = @HAVE_ISWBLANK@ HAVE_ISWCNTRL = @HAVE_ISWCNTRL@ +HAVE_LANGINFO_ALTMON = @HAVE_LANGINFO_ALTMON@ HAVE_LANGINFO_CODESET = @HAVE_LANGINFO_CODESET@ HAVE_LANGINFO_ERA = @HAVE_LANGINFO_ERA@ HAVE_LANGINFO_H = @HAVE_LANGINFO_H@ @@ -762,6 +783,7 @@ HAVE_MKSTEMP = @HAVE_MKSTEMP@ HAVE_MKSTEMPS = @HAVE_MKSTEMPS@ HAVE_MSVC_INVALID_PARAMETER_HANDLER = @HAVE_MSVC_INVALID_PARAMETER_HANDLER@ HAVE_NANOSLEEP = @HAVE_NANOSLEEP@ +HAVE_NEWLOCALE = @HAVE_NEWLOCALE@ HAVE_NL_LANGINFO = @HAVE_NL_LANGINFO@ HAVE_OPENAT = @HAVE_OPENAT@ HAVE_OPENDIR = @HAVE_OPENDIR@ @@ -832,7 +854,6 @@ HAVE_SYS_TIME_H = @HAVE_SYS_TIME_H@ HAVE_SYS_TYPES_H = @HAVE_SYS_TYPES_H@ HAVE_TIMEGM = @HAVE_TIMEGM@ HAVE_TIMEZONE_T = @HAVE_TIMEZONE_T@ -HAVE_TRUNCATE = @HAVE_TRUNCATE@ HAVE_TYPE_VOLATILE_SIG_ATOMIC_T = @HAVE_TYPE_VOLATILE_SIG_ATOMIC_T@ HAVE_TZSET = @HAVE_TZSET@ HAVE_UNISTD_H = @HAVE_UNISTD_H@ @@ -887,8 +908,6 @@ HAVE_WMEMSET = @HAVE_WMEMSET@ HAVE_XLOCALE_H = @HAVE_XLOCALE_H@ HAVE__BOOL = @HAVE__BOOL@ HAVE__EXIT = @HAVE__EXIT@ -HOST_CPU = @HOST_CPU@ -HOST_CPU_C_ABI = @HOST_CPU_C_ABI@ INCLUDE_NEXT = @INCLUDE_NEXT@ INCLUDE_NEXT_AS_FIRST_DIRECTIVE = @INCLUDE_NEXT_AS_FIRST_DIRECTIVE@ INSTALL = @INSTALL@ @@ -933,6 +952,7 @@ NEXT_AS_FIRST_DIRECTIVE_DIRENT_H = @NEXT_AS_FIRST_DIRECTIVE_DIRENT_H@ NEXT_AS_FIRST_DIRECTIVE_ERRNO_H = @NEXT_AS_FIRST_DIRECTIVE_ERRNO_H@ NEXT_AS_FIRST_DIRECTIVE_FCNTL_H = @NEXT_AS_FIRST_DIRECTIVE_FCNTL_H@ NEXT_AS_FIRST_DIRECTIVE_FLOAT_H = @NEXT_AS_FIRST_DIRECTIVE_FLOAT_H@ +NEXT_AS_FIRST_DIRECTIVE_FNMATCH_H = @NEXT_AS_FIRST_DIRECTIVE_FNMATCH_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@ @@ -960,6 +980,7 @@ NEXT_DIRENT_H = @NEXT_DIRENT_H@ NEXT_ERRNO_H = @NEXT_ERRNO_H@ NEXT_FCNTL_H = @NEXT_FCNTL_H@ NEXT_FLOAT_H = @NEXT_FLOAT_H@ +NEXT_FNMATCH_H = @NEXT_FNMATCH_H@ NEXT_GETOPT_H = @NEXT_GETOPT_H@ NEXT_INTTYPES_H = @NEXT_INTTYPES_H@ NEXT_LANGINFO_H = @NEXT_LANGINFO_H@ @@ -1020,9 +1041,11 @@ REPLACE_FCNTL = @REPLACE_FCNTL@ REPLACE_FDOPEN = @REPLACE_FDOPEN@ REPLACE_FDOPENDIR = @REPLACE_FDOPENDIR@ REPLACE_FFLUSH = @REPLACE_FFLUSH@ +REPLACE_FNMATCH = @REPLACE_FNMATCH@ REPLACE_FOPEN = @REPLACE_FOPEN@ REPLACE_FPRINTF = @REPLACE_FPRINTF@ REPLACE_FPURGE = @REPLACE_FPURGE@ +REPLACE_FREELOCALE = @REPLACE_FREELOCALE@ REPLACE_FREOPEN = @REPLACE_FREOPEN@ REPLACE_FSEEK = @REPLACE_FSEEK@ REPLACE_FSEEKO = @REPLACE_FSEEKO@ @@ -1040,6 +1063,7 @@ REPLACE_GETGROUPS = @REPLACE_GETGROUPS@ REPLACE_GETLINE = @REPLACE_GETLINE@ REPLACE_GETLOGIN_R = @REPLACE_GETLOGIN_R@ REPLACE_GETPAGESIZE = @REPLACE_GETPAGESIZE@ +REPLACE_GETPASS = @REPLACE_GETPASS@ REPLACE_GETTIMEOFDAY = @REPLACE_GETTIMEOFDAY@ REPLACE_GMTIME = @REPLACE_GMTIME@ REPLACE_ISATTY = @REPLACE_ISATTY@ @@ -1070,6 +1094,7 @@ REPLACE_MKNOD = @REPLACE_MKNOD@ REPLACE_MKSTEMP = @REPLACE_MKSTEMP@ REPLACE_MKTIME = @REPLACE_MKTIME@ REPLACE_NANOSLEEP = @REPLACE_NANOSLEEP@ +REPLACE_NEWLOCALE = @REPLACE_NEWLOCALE@ REPLACE_NL_LANGINFO = @REPLACE_NL_LANGINFO@ REPLACE_NULL = @REPLACE_NULL@ REPLACE_OBSTACK_PRINTF = @REPLACE_OBSTACK_PRINTF@ @@ -1249,13 +1274,18 @@ target_alias = @target_alias@ top_build_prefix = @top_build_prefix@ top_builddir = @top_builddir@ top_srcdir = @top_srcdir@ -EXTRA_DIST = $(TESTSUITE_AT) testsuite package.m4 star/README star/quicktest.sh +EXTRA_DIST = $(TESTSUITE_AT) \ + testsuite package.m4 star/README star/quicktest.sh \ + compress.m4 + DISTCLEANFILES = atconfig $(check_SCRIPTS) MAINTAINERCLEANFILES = Makefile.in $(TESTSUITE) +CLEANFILES = # TESTSUITE_AT = \ testsuite.at\ + compress.m4\ T-cd.at\ T-dir00.at\ T-dir01.at\ @@ -1279,6 +1309,11 @@ TESTSUITE_AT = \ chtype.at\ comprec.at\ comperr.at\ + checkpoint/defaults.at\ + checkpoint/interval.at\ + checkpoint/dot.at\ + checkpoint/dot-compat.at\ + checkpoint/dot-int.at\ delete01.at\ delete02.at\ delete03.at\ @@ -1441,6 +1476,9 @@ TESTSUITE_AT = \ spmvp00.at\ spmvp01.at\ spmvp10.at\ + sptrcreat.at\ + sptrdiff00.at\ + sptrdiff01.at\ time01.at\ time02.at\ truncate.at\ @@ -1505,7 +1543,6 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnits tests/Makefile'; \ $(am__cd) $(top_srcdir) && \ $(AUTOMAKE) --gnits tests/Makefile -.PRECIOUS: Makefile Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status @case '$?' in \ *config.status*) \ @@ -1676,6 +1713,7 @@ install-strip: mostlyclean-generic: clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) distclean-generic: -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) @@ -1771,6 +1809,8 @@ uninstall-am: mostlyclean-generic pdf pdf-am ps ps-am tags tags-am uninstall \ uninstall-am +.PRECIOUS: Makefile + $(srcdir)/package.m4: $(top_srcdir)/configure.ac { \ diff --git a/tests/T-cd.at b/tests/T-cd.at index 1e5e8ab7..4da904b8 100644 --- a/tests/T-cd.at +++ b/tests/T-cd.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 Free Software Foundation, Inc. # # This file is part of GNU tar. # diff --git a/tests/T-dir00.at b/tests/T-dir00.at index 827eb65d..0dd7a5be 100644 --- a/tests/T-dir00.at +++ b/tests/T-dir00.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2014-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/T-dir01.at b/tests/T-dir01.at index 37956389..9a2d8bfc 100644 --- a/tests/T-dir01.at +++ b/tests/T-dir01.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2014-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/T-empty.at b/tests/T-empty.at index b4c81fc1..8a32a957 100644 --- a/tests/T-empty.at +++ b/tests/T-empty.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2006-2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2006-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/T-mult.at b/tests/T-mult.at index d891665c..ba0af2d3 100644 --- a/tests/T-mult.at +++ b/tests/T-mult.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 Free Software Foundation, Inc. # # This file is part of GNU tar. # diff --git a/tests/T-nest.at b/tests/T-nest.at index eb70cf12..f5e19b53 100644 --- a/tests/T-nest.at +++ b/tests/T-nest.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 Free Software Foundation, Inc. # # This file is part of GNU tar. # diff --git a/tests/T-nonl.at b/tests/T-nonl.at index c14dfb27..101c80a9 100644 --- a/tests/T-nonl.at +++ b/tests/T-nonl.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 Free Software Foundation, Inc. # # This file is part of GNU tar. # @@ -29,9 +29,8 @@ 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 +printf c > 1.nonl +printf 'd\ne' > 2.nonl touch a b c d e AT_DATA([filelist],[a b @@ -59,4 +58,3 @@ c [],[],[],[ustar]) AT_CLEANUP - diff --git a/tests/T-null.at b/tests/T-null.at index 5359a5a4..409cd6b5 100644 --- a/tests/T-null.at +++ b/tests/T-null.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2006-2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2006-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/T-null2.at b/tests/T-null2.at index b3c4e44b..4f71f290 100644 --- a/tests/T-null2.at +++ b/tests/T-null2.at @@ -1,5 +1,5 @@ # This file is part of test suite for GNU tar. -*- Autotest -*- -# Copyright 2015-2017 Free Software Foundation, Inc. +# Copyright 2015-2019 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 diff --git a/tests/T-rec.at b/tests/T-rec.at index 20af22ae..d226aa7d 100644 --- a/tests/T-rec.at +++ b/tests/T-rec.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 Free Software Foundation, Inc. # # This file is part of GNU tar. # diff --git a/tests/T-recurse.at b/tests/T-recurse.at index e65c8757..77f7147b 100644 --- a/tests/T-recurse.at +++ b/tests/T-recurse.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2015-2017 Free Software Foundation, Inc. +# Copyright 2015-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/T-zfile.at b/tests/T-zfile.at index 63cc3157..ae5e143d 100644 --- a/tests/T-zfile.at +++ b/tests/T-zfile.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 Free Software Foundation, Inc. # # This file is part of GNU tar. # diff --git a/tests/acls01.at b/tests/acls01.at index 73f4ec90..2b587aad 100644 --- a/tests/acls01.at +++ b/tests/acls01.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2011, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2011-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/acls02.at b/tests/acls02.at index 5dad575c..325cf100 100644 --- a/tests/acls02.at +++ b/tests/acls02.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2011, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2011-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/acls03.at b/tests/acls03.at index e4041cff..8f4facbd 100644 --- a/tests/acls03.at +++ b/tests/acls03.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/add-file.at b/tests/add-file.at index b7fa9a8f..e9d2d15b 100644 --- a/tests/add-file.at +++ b/tests/add-file.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2016-2017 Free Software Foundation, Inc. +# Copyright 2016-2019 Free Software Foundation, Inc. # # This file is part of GNU tar. # diff --git a/tests/append.at b/tests/append.at index fbcaddc6..d6dc1fd6 100644 --- a/tests/append.at +++ b/tests/append.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/append01.at b/tests/append01.at index e705cd94..cce9874f 100644 --- a/tests/append01.at +++ b/tests/append01.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2005-2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2005-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/append02.at b/tests/append02.at index 52d5d686..3cd77600 100644 --- a/tests/append02.at +++ b/tests/append02.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2006-2007, 2009, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2006-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/append03.at b/tests/append03.at index edb70f2e..392b1ab8 100644 --- a/tests/append03.at +++ b/tests/append03.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/append04.at b/tests/append04.at index 7999f928..19365f4f 100644 --- a/tests/append04.at +++ b/tests/append04.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 Free Software Foundation, Inc. # # This file is part of GNU tar. # diff --git a/tests/append05.at b/tests/append05.at index 86ab5a78..ef34cbeb 100644 --- a/tests/append05.at +++ b/tests/append05.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2016-2017 Free Software Foundation, Inc. +# Copyright 2016-2019 Free Software Foundation, Inc. # # This file is part of GNU tar. # diff --git a/tests/atlocal.in b/tests/atlocal.in index c67ddfc4..4e3c47d0 100644 --- a/tests/atlocal.in +++ b/tests/atlocal.in @@ -1,7 +1,6 @@ # @configure_input@ -*- shell-script -*- # Configurable variable values for tar test suite. -# Copyright 2004, 2006, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/backup01.at b/tests/backup01.at index 6a3be579..bebff74a 100644 --- a/tests/backup01.at +++ b/tests/backup01.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2009-2010, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2009-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/capabs_raw01.at b/tests/capabs_raw01.at index 8b8391a4..ef440f64 100644 --- a/tests/capabs_raw01.at +++ b/tests/capabs_raw01.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2012-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2012-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/checkpoint/defaults.at b/tests/checkpoint/defaults.at new file mode 100644 index 00000000..d89d1e15 --- /dev/null +++ b/tests/checkpoint/defaults.at @@ -0,0 +1,25 @@ +# This file is part of GNU tar test suite. -*- Autotest -*- +# Copyright 2019 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([checkpoint defaults]) +AT_KEYWORDS([checkpoint checkpoint/defaults]) +CPT_CHECK([ +tar --checkpoint -c -f ../a.tar . +], +[0], +[], +[tar: Write checkpoint 10 +]) +AT_CLEANUP diff --git a/tests/checkpoint/dot-compat.at b/tests/checkpoint/dot-compat.at new file mode 100644 index 00000000..0e9c2f34 --- /dev/null +++ b/tests/checkpoint/dot-compat.at @@ -0,0 +1,23 @@ +# This file is part of GNU tar test suite. -*- Autotest -*- +# Copyright 2019 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([dot action (compatibility syntax)]) +AT_KEYWORDS([checkpoint checkpoint/dot-compat]) +CPT_CHECK([ +tar --checkpoint=.2 -c -f ../a.tar . +], +[], +[.....]) +AT_CLEANUP diff --git a/tests/checkpoint/dot-int.at b/tests/checkpoint/dot-int.at new file mode 100644 index 00000000..8fba21e5 --- /dev/null +++ b/tests/checkpoint/dot-int.at @@ -0,0 +1,24 @@ +# This file is part of GNU tar test suite. -*- Autotest -*- +# Copyright 2019 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([dot action and interval]) +AT_KEYWORDS([checkpoint checkpoint/dot-int]) +CPT_CHECK([ +tar --checkpoint-action=dot --checkpoint=2 -c -f ../a.tar . +], +[], +[.....]) +AT_CLEANUP + diff --git a/tests/checkpoint/dot.at b/tests/checkpoint/dot.at new file mode 100644 index 00000000..f940823a --- /dev/null +++ b/tests/checkpoint/dot.at @@ -0,0 +1,24 @@ +# This file is part of GNU tar test suite. -*- Autotest -*- +# Copyright 2019 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([dot action]) +AT_KEYWORDS([checkpoint checkpoint/dot]) +CPT_CHECK([ +tar --checkpoint-action=dot -c -f ../a.tar . +], +[], +[.]) +AT_CLEANUP + diff --git a/tests/checkpoint/interval.at b/tests/checkpoint/interval.at new file mode 100644 index 00000000..b5d3f98f --- /dev/null +++ b/tests/checkpoint/interval.at @@ -0,0 +1,29 @@ +# This file is part of GNU tar test suite. -*- Autotest -*- +# Copyright 2019 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([checkpoint interval]) +AT_KEYWORDS([checkpoint checkpoint/interval]) +CPT_CHECK([ +tar --checkpoint=2 -c -f ../a.tar . +], +[0], +[], +[tar: Write checkpoint 2 +tar: Write checkpoint 4 +tar: Write checkpoint 6 +tar: Write checkpoint 8 +tar: Write checkpoint 10 +]) +AT_CLEANUP diff --git a/tests/checkseekhole.c b/tests/checkseekhole.c index c1f6d004..fa434b8e 100644 --- a/tests/checkseekhole.c +++ b/tests/checkseekhole.c @@ -1,6 +1,6 @@ /* Test suite for GNU tar - SEEK_HOLE detector. - Copyright 2015-2017 Free Software Foundation, Inc. + Copyright 2015-2019 Free Software Foundation, Inc. This program 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/tests/chtype.at b/tests/chtype.at index 38ca34b0..91a97dbf 100644 --- a/tests/chtype.at +++ b/tests/chtype.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2006-2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2006-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/ckmtime.c b/tests/ckmtime.c index 4298bb34..32180df9 100644 --- a/tests/ckmtime.c +++ b/tests/ckmtime.c @@ -1,5 +1,5 @@ /* Check if filesystem timestamps are consistent with the system time. - Copyright (C) 2016-2017 Free Software Foundation, Inc. + Copyright (C) 2016-2019 Free Software Foundation, Inc. This program 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/tests/comperr.at b/tests/comperr.at index c6f3771a..12902de0 100644 --- a/tests/comperr.at +++ b/tests/comperr.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2015-2017 Free Software Foundation, Inc. +# Copyright 2015-2019 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 diff --git a/tests/comprec.at b/tests/comprec.at index 8124d5b8..b0c85c60 100644 --- a/tests/comprec.at +++ b/tests/comprec.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/compress.m4 b/tests/compress.m4 new file mode 100644 index 00000000..1f226327 --- /dev/null +++ b/tests/compress.m4 @@ -0,0 +1,56 @@ +# This file is part of GNU tar testsuite. -*- Autotest -*- +# Copyright 2018-2019 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/>. + +dnl TAR_CHECK_COMPRESS(TOOL, SUF[, SUF2]) +dnl Tests whether tar can create archives using TOOL (i.e. using the --TOOL +dnl command line option). SUF and optional SUF2 are suffixes for created +dnl archives (without leading dot). Tar should be able to use TOOL to +dnl automatically decompress archives with names ending on these suffixes. +m4_define([TAR_CHECK_COMPRESS], +[AT_SETUP([compress: $1]) +AT_KEYWORDS([compression compress-$1 $1]) + +AT_CHECK([ +AT_GZIP_PREREQ($1) +unset TAR_OPTIONS + +touch empty +set -e +: create with --$1 +tar --$1 -cf k.tar.$2 empty +tar tf k.tar.$2 + +m4_foreach([SUF], m4_quote(m4_shift($@)), +[ +echo testing .SUF +tar -acf k2.tar.SUF empty +cat k2.tar.SUF | $1 -d > k.SUF.tar +tar tf k.SUF.tar +]) + +# Extraction: ensure compressed format is correctly recognized +rm -f empty +tar xf k.tar.$2 +test -f empty +], +[0], +[empty +m4_foreach([SUF],m4_quote(m4_shift($@)),[testing .SUF +empty +])]) + +AT_CLEANUP +]) diff --git a/tests/delete01.at b/tests/delete01.at index b2607b46..bba4c205 100644 --- a/tests/delete01.at +++ b/tests/delete01.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/delete02.at b/tests/delete02.at index 597c0da8..36b7670a 100644 --- a/tests/delete02.at +++ b/tests/delete02.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004-2005, 2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/delete03.at b/tests/delete03.at index 77a38e53..e8ec7287 100644 --- a/tests/delete03.at +++ b/tests/delete03.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/delete04.at b/tests/delete04.at index 73bdbc31..f7cba78b 100644 --- a/tests/delete04.at +++ b/tests/delete04.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/delete05.at b/tests/delete05.at index b600c98e..81777564 100644 --- a/tests/delete05.at +++ b/tests/delete05.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/difflink.at b/tests/difflink.at index eadfb088..ab4b0263 100644 --- a/tests/difflink.at +++ b/tests/difflink.at @@ -1,6 +1,6 @@ # This file is part of GNU tar test suite -*- Autotest -*- # -# Copyright 2017 Free Software Foundation, Inc. +# Copyright 2017-2019 Free Software Foundation, Inc. # # This 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,14 +20,14 @@ AT_TAR_CHECK([ mkdir a genfile -f a/x ln -s x a/y -ln a/y a/z -tar cf a.tar a +ln a/x a/z +tar cf a.tar a/x a/y a/z rm a/z ln -s x a/z tar df a.tar ], [1], -[a/z: Not linked to a/y +[a/z: Not linked to a/x ], [], [],[],[ustar]) # Testing one format is enough diff --git a/tests/dirrem01.at b/tests/dirrem01.at index 40344dc0..24bf3925 100644 --- a/tests/dirrem01.at +++ b/tests/dirrem01.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2017 Free Software Foundation, Inc. +# Copyright 2017-2019 Free Software Foundation, Inc. # This file is part of GNU tar. @@ -27,9 +27,13 @@ # it prints a warning and exits with TAREXIT_DIFFERS. # # This test checks whether this behaviour is mimicked for directories, too. - -# Remark: This file is based on 'filerem01.at', which is the test-case for -# a vanishing file. +# +# Notes: +# 1. This file is based on 'filerem01.at', which is the test-case for +# a vanishing file. +# 2. Depending on the stat.st_ctime resolution, the "file changed as we +# read it" warning might be issued for dir/sub. The test takes care to +# suppress it. AT_SETUP([directory removed before reading]) AT_KEYWORDS([create incremental listed dirchange dirrem dirrem01]) @@ -47,9 +51,10 @@ gnu) CPT=3;; esac genfile --run --checkpoint=$CPT --unlink dir/sub/file2 --unlink dir/sub -- \ - tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \ - --checkpoint-action='echo' -c -f archive.tar \ - --listed-incremental db -v dir >/dev/null + tar --blocking-factor=1 -c -f archive.tar \ + --listed-incremental db \ + --warning=no-file-changed \ + -v dir >/dev/null ], [1], [ignore], diff --git a/tests/dirrem02.at b/tests/dirrem02.at index e1cf9ef8..3c63bbeb 100644 --- a/tests/dirrem02.at +++ b/tests/dirrem02.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2017 Free Software Foundation, Inc. +# Copyright 2017-2019 Free Software Foundation, Inc. # This file is part of GNU tar. @@ -20,7 +20,7 @@ # Description: # -# When an explicitley named directory disappears during creation +# When an explicitly named directory disappears during creation # of incremental dump, tar should still exit with TAREXIT_FAILURE (2). # # For further details see dirrem01.at @@ -44,9 +44,10 @@ gnu) CPT=3;; esac genfile --run --checkpoint=$CPT --unlink dir/sub/file2 --unlink dir/sub -- \ - tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \ - --checkpoint-action='echo' -c -f archive.tar \ - --listed-incremental db -v dir dir/sub >/dev/null + tar --blocking-factor=1 -c -f archive.tar \ + --listed-incremental db \ + --warning=no-file-changed \ + -v dir dir/sub >/dev/null ], [2], [ignore], diff --git a/tests/exclude.at b/tests/exclude.at index 81546c66..d7f80936 100644 --- a/tests/exclude.at +++ b/tests/exclude.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2007, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2007-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/exclude01.at b/tests/exclude01.at index d52bc196..a9afe1dc 100644 --- a/tests/exclude01.at +++ b/tests/exclude01.at @@ -1,5 +1,5 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- -# Copyright 2009, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2009-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/exclude02.at b/tests/exclude02.at index 35533bdc..3d633c41 100644 --- a/tests/exclude02.at +++ b/tests/exclude02.at @@ -1,5 +1,5 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- -# Copyright 2009, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2009-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/exclude03.at b/tests/exclude03.at index ca73b92e..d7821b9b 100644 --- a/tests/exclude03.at +++ b/tests/exclude03.at @@ -1,5 +1,5 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- -# Copyright 2009, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2009-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/exclude04.at b/tests/exclude04.at index 3b4df016..54281ad5 100644 --- a/tests/exclude04.at +++ b/tests/exclude04.at @@ -1,5 +1,5 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- -# Copyright 2009, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2009-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/exclude05.at b/tests/exclude05.at index b51fcfcb..a4a8d281 100644 --- a/tests/exclude05.at +++ b/tests/exclude05.at @@ -1,6 +1,5 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- -# Copyright 2009-2010, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2009-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/exclude06.at b/tests/exclude06.at index 78e83067..48e6868a 100644 --- a/tests/exclude06.at +++ b/tests/exclude06.at @@ -1,5 +1,5 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/exclude07.at b/tests/exclude07.at index 2ec2c5f9..4062e2a3 100644 --- a/tests/exclude07.at +++ b/tests/exclude07.at @@ -1,5 +1,5 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/exclude08.at b/tests/exclude08.at index 8c36efda..8abe86c8 100644 --- a/tests/exclude08.at +++ b/tests/exclude08.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/exclude09.at b/tests/exclude09.at index e6809a7c..1e6e3f08 100644 --- a/tests/exclude09.at +++ b/tests/exclude09.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/exclude10.at b/tests/exclude10.at index 0f92b006..7fffe155 100644 --- a/tests/exclude10.at +++ b/tests/exclude10.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/exclude11.at b/tests/exclude11.at index 3c1b8faa..f8e46f8c 100644 --- a/tests/exclude11.at +++ b/tests/exclude11.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/exclude12.at b/tests/exclude12.at index de89fc76..4a85d832 100644 --- a/tests/exclude12.at +++ b/tests/exclude12.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/exclude13.at b/tests/exclude13.at index c884f7f0..3c9c0b74 100644 --- a/tests/exclude13.at +++ b/tests/exclude13.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/exclude14.at b/tests/exclude14.at index b909617f..aa0e05cd 100644 --- a/tests/exclude14.at +++ b/tests/exclude14.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/exclude15.at b/tests/exclude15.at index 8c814687..eab6b8e4 100644 --- a/tests/exclude15.at +++ b/tests/exclude15.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/exclude16.at b/tests/exclude16.at index 6560f9b4..932c00c9 100644 --- a/tests/exclude16.at +++ b/tests/exclude16.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/extrac01.at b/tests/extrac01.at index 3f8c1143..b630908c 100644 --- a/tests/extrac01.at +++ b/tests/extrac01.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/extrac02.at b/tests/extrac02.at index 91d0e09d..a7cc33d9 100644 --- a/tests/extrac02.at +++ b/tests/extrac02.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/extrac03.at b/tests/extrac03.at index 2bd0e6fd..b080f64c 100644 --- a/tests/extrac03.at +++ b/tests/extrac03.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/extrac04.at b/tests/extrac04.at index 39c92f4b..df784d74 100644 --- a/tests/extrac04.at +++ b/tests/extrac04.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/extrac05.at b/tests/extrac05.at index bb41cd3b..b16794d0 100644 --- a/tests/extrac05.at +++ b/tests/extrac05.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/extrac06.at b/tests/extrac06.at index d47c5d71..22947fc8 100644 --- a/tests/extrac06.at +++ b/tests/extrac06.at @@ -2,8 +2,7 @@ # Test suite for GNU tar. -# Copyright 2006-2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2006-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/extrac07.at b/tests/extrac07.at index 0c93b624..dd7af3b1 100644 --- a/tests/extrac07.at +++ b/tests/extrac07.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2006-2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2006-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/extrac08.at b/tests/extrac08.at index 7a639588..09ff0579 100644 --- a/tests/extrac08.at +++ b/tests/extrac08.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2009, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2009-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/extrac09.at b/tests/extrac09.at index b754ba90..393d0f5c 100644 --- a/tests/extrac09.at +++ b/tests/extrac09.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/extrac10.at b/tests/extrac10.at index b0f4f84f..fff9f6bd 100644 --- a/tests/extrac10.at +++ b/tests/extrac10.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/extrac11.at b/tests/extrac11.at index 56b97fe7..197cf59f 100644 --- a/tests/extrac11.at +++ b/tests/extrac11.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/extrac12.at b/tests/extrac12.at index eb4c2675..04b1a731 100644 --- a/tests/extrac12.at +++ b/tests/extrac12.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/extrac13.at b/tests/extrac13.at index e09f1f9f..5a2dfaaf 100644 --- a/tests/extrac13.at +++ b/tests/extrac13.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/extrac14.at b/tests/extrac14.at index 1a6f3e5b..7e1ab0f2 100644 --- a/tests/extrac14.at +++ b/tests/extrac14.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/extrac15.at b/tests/extrac15.at index e178c5a8..b9ecc6b1 100644 --- a/tests/extrac15.at +++ b/tests/extrac15.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/extrac16.at b/tests/extrac16.at index 23ace140..e2d7046d 100644 --- a/tests/extrac16.at +++ b/tests/extrac16.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/extrac17.at b/tests/extrac17.at index 992dd430..628b03c8 100644 --- a/tests/extrac17.at +++ b/tests/extrac17.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/extrac18.at b/tests/extrac18.at index 615a4500..b63e1b2c 100644 --- a/tests/extrac18.at +++ b/tests/extrac18.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2011, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2011-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/extrac19.at b/tests/extrac19.at index a551f0e5..8c391a47 100644 --- a/tests/extrac19.at +++ b/tests/extrac19.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2011, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2011-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/extrac20.at b/tests/extrac20.at index dd9b00df..cc5ddd29 100644 --- a/tests/extrac20.at +++ b/tests/extrac20.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2017 Free Software Foundation, Inc. +# Copyright 2017-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/extrac21.at b/tests/extrac21.at index 671b1010..30e0cc6c 100644 --- a/tests/extrac21.at +++ b/tests/extrac21.at @@ -1,5 +1,5 @@ # Test suite for GNU tar. -*- Autotest -*- -# Copyright 2017 Free Software Foundation, Inc. +# Copyright 2017-2019 Free Software Foundation, Inc. # # This file is part of GNU tar. # diff --git a/tests/filerem01.at b/tests/filerem01.at index bf020538..7d4a7808 100644 --- a/tests/filerem01.at +++ b/tests/filerem01.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2009, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2009-2019 Free Software Foundation, Inc. # This file is part of GNU tar. @@ -33,7 +33,7 @@ # http://lists.gnu.org/archive/html/bug-tar/2009-03/msg00000.html # -AT_SETUP([file removed as we read it (ca. 22 seconds)]) +AT_SETUP([file removed as we read it]) AT_KEYWORDS([create incremental listed filechange filerem filerem01]) AT_TAR_CHECK([ @@ -43,8 +43,7 @@ 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 \ + tar --blocking-factor=1 -c -f archive.tar \ --listed-incremental db -v dir >/dev/null ], [1], diff --git a/tests/filerem02.at b/tests/filerem02.at index 5e6d1bef..731bf118 100644 --- a/tests/filerem02.at +++ b/tests/filerem02.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2009, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2009-2019 Free Software Foundation, Inc. # This file is part of GNU tar. @@ -23,7 +23,7 @@ # file or directory disappears that is explicitly mentioned # in the command line. -AT_SETUP([toplevel file removed (ca. 24 seconds)]) +AT_SETUP([toplevel file removed]) AT_KEYWORDS([create incremental listed filechange filerem filerem02]) AT_TAR_CHECK([ @@ -35,8 +35,7 @@ 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 \ + tar --blocking-factor=1 -c -f archive.tar \ --listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null ], [2], diff --git a/tests/genfile.c b/tests/genfile.c index 66c54df2..dc822c71 100644 --- a/tests/genfile.c +++ b/tests/genfile.c @@ -1,11 +1,9 @@ -/* Generate a file containing some preset patterns. - Print statistics for existing files. +/* Multi-purpose tool for tar and cpio testsuite. - Copyright (C) 1995, 1996, 1997, 2001, 2003, 2004, 2005, 2006, 2007, - 2008, 2009 Free Software Foundation, Inc. + Copyright (C) 1995-1997, 2001-2018 Free Software Foundation, Inc. François Pinard <pinard@iro.umontreal.ca>, 1995. - Sergey Poznyakoff <gray@mirddin.farlep.net>, 2004, 2005, 2006, 2007, 2008. + Sergey Poznyakoff <gray@gnu.org>, 2004-2018. This 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,8 +16,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/>. */ #include <system.h> @@ -96,10 +93,8 @@ size_t block_size = 512; /* Block buffer for sparse file */ char *buffer; -/* Number of arguments and argument vector for mode == mode_exec */ -int exec_argc; -char **exec_argv; -char *checkpoint_option; +/* Checkpoint granularity for mode == mode_exec */ +char *checkpoint_granularity; /* Time for --touch option */ struct timespec touch_time; @@ -165,8 +160,8 @@ static struct argp_option options[] = { {NULL, 0, NULL, 0, N_("Synchronous execution options:"), GRP}, - {"run", 'r', N_("OPTION"), OPTION_ARG_OPTIONAL, - N_("Execute ARGS. Useful with --checkpoint and one of --cut, --append, --touch, --unlink"), + {"run", 'r', N_("N"), OPTION_ARG_OPTIONAL, + N_("Execute ARGS. Trigger checkpoints every Nth record (default 1). Useful with --checkpoint and one of --cut, --append, --touch, --unlink"), GRP+1 }, {"checkpoint", OPT_CHECKPOINT, N_("NUMBER"), 0, N_("Perform given action (see below) upon reaching checkpoint NUMBER"), @@ -351,11 +346,7 @@ parse_opt (int key, char *arg, struct argp_state *state) case 'r': mode = mode_exec; - if (arg) - { - argcv_get (arg, "", NULL, &exec_argc, &exec_argv); - checkpoint_option = "--checkpoint"; - } + checkpoint_granularity = arg ? arg : "1"; break; case 'T': @@ -822,10 +813,10 @@ process_checkpoint (size_t n) } } -#define CHECKPOINT_TEXT "Write checkpoint" +#define CHECKPOINT_TEXT "genfile checkpoint" void -exec_command (void) +exec_command (int argc, char **argv) { int status; pid_t pid; @@ -833,20 +824,28 @@ exec_command (void) char *p; FILE *fp; char buf[128]; - + int xargc; + char **xargv; + int i; + char checkpoint_option[80]; + /* Insert --checkpoint option. - FIXME: This assumes that exec_argv does not use traditional tar options + FIXME: This assumes that argv does not use traditional tar options (without dash). - FIXME: There is no way to set checkpoint argument (granularity). */ - if (checkpoint_option) - { - exec_argc++; - exec_argv = xrealloc (exec_argv, (exec_argc + 1) * sizeof (*exec_argv)); - memmove (exec_argv+2, exec_argv+1, - (exec_argc - 1) * sizeof (*exec_argv)); - exec_argv[1] = checkpoint_option; - } + xargc = argc + 5; + xargv = xcalloc (xargc + 1, sizeof (xargv[0])); + xargv[0] = argv[0]; + snprintf (checkpoint_option, sizeof (checkpoint_option), + "--checkpoint=%s", checkpoint_granularity); + xargv[1] = checkpoint_option; + xargv[2] = "--checkpoint-action"; + xargv[3] = "echo=" CHECKPOINT_TEXT " %u"; + xargv[4] = "--checkpoint-action"; + xargv[5] = "wait=SIGUSR1"; + + for (i = 1; i <= argc; i++) + xargv[i + 5] = argv[i]; #ifdef SIGCHLD /* System V fork+wait does not work if SIGCHLD is ignored. */ @@ -872,8 +871,8 @@ exec_command (void) /* Make sure POSIX locale is used */ setenv ("LC_ALL", "POSIX", 1); - execvp (exec_argv[0], exec_argv); - error (EXIT_FAILURE, errno, "execvp %s", exec_argv[0]); + execvp (xargv[0], xargv); + error (EXIT_FAILURE, errno, "execvp %s", xargv[0]); } /* Master */ @@ -900,6 +899,7 @@ exec_command (void) if (!(*end && !isspace ((unsigned char) *end))) { process_checkpoint (n); + kill (pid, SIGUSR1); continue; } } @@ -985,14 +985,7 @@ main (int argc, char **argv) break; case mode_exec: - if (!checkpoint_option) - { - exec_argc = argc; - exec_argv = argv; - } - else if (argc) - error (EXIT_FAILURE, 0, _("too many arguments")); - exec_command (); + exec_command (argc, argv); break; default: diff --git a/tests/grow.at b/tests/grow.at index b04250db..566d131e 100644 --- a/tests/grow.at +++ b/tests/grow.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2006-2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2006-2019 Free Software Foundation, Inc. # This file is part of GNU tar. @@ -28,7 +27,7 @@ AT_KEYWORDS([grow filechange]) AT_TAR_CHECK([ genfile --file foo --length 50000k genfile --file baz -genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz +genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz ], [1], [foo diff --git a/tests/gzip.at b/tests/gzip.at index 15220873..ade52042 100644 --- a/tests/gzip.at +++ b/tests/gzip.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2007, 2009-2010, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/ignfail.at b/tests/ignfail.at index 446c441b..00cc2b3b 100644 --- a/tests/ignfail.at +++ b/tests/ignfail.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/incr01.at b/tests/incr01.at index 82c5cbd8..637f277d 100644 --- a/tests/incr01.at +++ b/tests/incr01.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2005, 2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2005-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/incr02.at b/tests/incr02.at index 8f7a37b8..52683b84 100644 --- a/tests/incr02.at +++ b/tests/incr02.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2005, 2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2005-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/incr03.at b/tests/incr03.at index a89d8b69..0b118057 100644 --- a/tests/incr03.at +++ b/tests/incr03.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2006-2007, 2009, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2006-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/incr04.at b/tests/incr04.at index ea0dfe3b..1abc47cb 100644 --- a/tests/incr04.at +++ b/tests/incr04.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2006-2007, 2009, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2006-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/incr05.at b/tests/incr05.at index dd991fe8..d270e860 100644 --- a/tests/incr05.at +++ b/tests/incr05.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2009, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2009-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/incr06.at b/tests/incr06.at index a4e8ed52..53f6986c 100644 --- a/tests/incr06.at +++ b/tests/incr06.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2009, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2009-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/incr07.at b/tests/incr07.at index bc35448d..bea10901 100644 --- a/tests/incr07.at +++ b/tests/incr07.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2009, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2009-2019 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 diff --git a/tests/incr08.at b/tests/incr08.at index f50a614f..f21ee26b 100644 --- a/tests/incr08.at +++ b/tests/incr08.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 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 @@ -38,24 +38,10 @@ AT_SETUP([filename normalization]) AT_KEYWORDS([incremental create incr08 chdir]) -AT_TAR_CHECK([ -AT_CHECK_TIMESTAMP -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 +AT_TAR_WITH_HOOK( +[AT_CHECK([ +DIR=`pwd`/gnu/tartest +sed "s|$DIR|ABSPATH|" stdout ], [0], [A @@ -72,7 +58,12 @@ B ABSPATH/ ABSPATH/subdir/ ABSPATH/subdir/dir2/ -], +]) + +AT_CHECK([ +DIR=`pwd`/gnu/tartest +sed "/tar: Removing leading \`\/*\/' from/d;s|$DIR|ABSPATH|" stderr], +[0], [A B tar: .: Directory is new @@ -81,7 +72,26 @@ 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_TAR_CHECK([ +AT_CHECK_TIMESTAMP +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 +], +[0], +[stdout], +[stderr],[],[],[gnu])]) AT_CLEANUP diff --git a/tests/incr09.at b/tests/incr09.at index 011fa50c..32290177 100644 --- a/tests/incr09.at +++ b/tests/incr09.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 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 diff --git a/tests/incr10.at b/tests/incr10.at index de309b2b..a48fbd84 100644 --- a/tests/incr10.at +++ b/tests/incr10.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2015-2017 Free Software Foundation, Inc. +# Copyright 2015-2019 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 diff --git a/tests/incr11.at b/tests/incr11.at index 169dcde1..fc3ef606 100644 --- a/tests/incr11.at +++ b/tests/incr11.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2015-2017 Free Software Foundation, Inc. +# Copyright 2015-2019 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 diff --git a/tests/incremental.at b/tests/incremental.at index 9ab68013..44d77a3d 100644 --- a/tests/incremental.at +++ b/tests/incremental.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/indexfile.at b/tests/indexfile.at index 1623cabd..38b13215 100644 --- a/tests/indexfile.at +++ b/tests/indexfile.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2006-2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2006-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/label01.at b/tests/label01.at index 457ad293..545c0673 100644 --- a/tests/label01.at +++ b/tests/label01.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/label02.at b/tests/label02.at index be303fe8..ff3acd2f 100644 --- a/tests/label02.at +++ b/tests/label02.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/label03.at b/tests/label03.at index d698e3bd..4efd9c33 100644 --- a/tests/label03.at +++ b/tests/label03.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/label04.at b/tests/label04.at index 05bf4d51..1a950262 100644 --- a/tests/label04.at +++ b/tests/label04.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/label05.at b/tests/label05.at index 8dc892b8..8524de59 100644 --- a/tests/label05.at +++ b/tests/label05.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/link01.at b/tests/link01.at index d8aa99d7..75c5cb0f 100644 --- a/tests/link01.at +++ b/tests/link01.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2007, 2009, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/link02.at b/tests/link02.at index 3b129bb1..8ce5620b 100644 --- a/tests/link02.at +++ b/tests/link02.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2009, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2009-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/link03.at b/tests/link03.at index 8ec84995..e991601e 100644 --- a/tests/link03.at +++ b/tests/link03.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2009, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2009-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/link04.at b/tests/link04.at index 511482f3..94f6c02d 100644 --- a/tests/link04.at +++ b/tests/link04.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/listed01.at b/tests/listed01.at index 62e56186..8a166bc6 100644 --- a/tests/listed01.at +++ b/tests/listed01.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004-2007, 2009, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/listed02.at b/tests/listed02.at index db3c4078..0451f0bb 100644 --- a/tests/listed02.at +++ b/tests/listed02.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004-2007, 2009, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/listed03.at b/tests/listed03.at index 96db0b93..38c6187d 100644 --- a/tests/listed03.at +++ b/tests/listed03.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/listed04.at b/tests/listed04.at index 139f92c8..ad7668f7 100644 --- a/tests/listed04.at +++ b/tests/listed04.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/listed05.at b/tests/listed05.at index 4d238a83..78880db4 100644 --- a/tests/listed05.at +++ b/tests/listed05.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/long01.at b/tests/long01.at index 4c41b00b..99d33824 100644 --- a/tests/long01.at +++ b/tests/long01.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2005-2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2005-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/longv7.at b/tests/longv7.at index 9bc8882f..62c2f555 100644 --- a/tests/longv7.at +++ b/tests/longv7.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/lustar01.at b/tests/lustar01.at index f49b9add..d1fcaee0 100644 --- a/tests/lustar01.at +++ b/tests/lustar01.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2006-2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2006-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/lustar02.at b/tests/lustar02.at index e4d3a128..2d744341 100644 --- a/tests/lustar02.at +++ b/tests/lustar02.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2006-2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2006-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/lustar03.at b/tests/lustar03.at index 438d23ff..f6834b10 100644 --- a/tests/lustar03.at +++ b/tests/lustar03.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2006-2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2006-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/map.at b/tests/map.at index 93a9ed42..3d70703d 100644 --- a/tests/map.at +++ b/tests/map.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2015-2017 Free Software Foundation, Inc. +# Copyright 2015-2019 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/tests/multiv01.at b/tests/multiv01.at index 28c8e753..e0a8454c 100644 --- a/tests/multiv01.at +++ b/tests/multiv01.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2009, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/multiv02.at b/tests/multiv02.at index e6f1a38b..731bce47 100644 --- a/tests/multiv02.at +++ b/tests/multiv02.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/multiv03.at b/tests/multiv03.at index 81e167a6..f37ad2bb 100644 --- a/tests/multiv03.at +++ b/tests/multiv03.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004-2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/multiv04.at b/tests/multiv04.at index b2b24cc5..b4a613a6 100644 --- a/tests/multiv04.at +++ b/tests/multiv04.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2005-2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2005-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/multiv05.at b/tests/multiv05.at index 3071389f..0f10164a 100644 --- a/tests/multiv05.at +++ b/tests/multiv05.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2006-2008, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2006-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/multiv06.at b/tests/multiv06.at index 87f39b67..0c1c802d 100644 --- a/tests/multiv06.at +++ b/tests/multiv06.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2008, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2008-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/multiv07.at b/tests/multiv07.at index 8ae49c60..09f991b3 100644 --- a/tests/multiv07.at +++ b/tests/multiv07.at @@ -1,5 +1,5 @@ # Test suite for GNU tar. -*- Autotest -*- -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/multiv08.at b/tests/multiv08.at index 200ef634..2fc114b6 100644 --- a/tests/multiv08.at +++ b/tests/multiv08.at @@ -1,5 +1,5 @@ # Test suite for GNU tar. -*- Autotest -*- -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/multiv09.at b/tests/multiv09.at index 42948479..391ef348 100644 --- a/tests/multiv09.at +++ b/tests/multiv09.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2015-2017 Free Software Foundation, Inc. +# Copyright 2015-2019 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 diff --git a/tests/multiv10.at b/tests/multiv10.at index 03fbf15b..5dab053b 100644 --- a/tests/multiv10.at +++ b/tests/multiv10.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2015-2017 Free Software Foundation, Inc. +# Copyright 2015-2019 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 diff --git a/tests/numeric.at b/tests/numeric.at index 8054fc3c..4ef92c7a 100644 --- a/tests/numeric.at +++ b/tests/numeric.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2015-2017 Free Software Foundation, Inc. +# Copyright 2015-2019 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 @@ -27,14 +27,17 @@ tar $1 -vvf a dir |dnl ]) AT_TAR_CHECK([ -mkdir dir -genfile --file dir/file - MYUID=$(id -u) || AT_SKIP_TEST MYGID=$(id -g) || AT_SKIP_TEST MYUSR=$(id -un) || AT_SKIP_TEST MYGRP=$(id -gn) || AT_SKIP_TEST +mkdir dir +# Ensure correct group id on BSDs. +chown :$MYGID dir >/dev/null 2>/dev/null +genfile --file dir/file + + TESTOP([--create]) TESTOP([--list]) TESTOP([--diff]) diff --git a/tests/old.at b/tests/old.at index f5fabc08..a253dbbb 100644 --- a/tests/old.at +++ b/tests/old.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/onetop01.at b/tests/onetop01.at index fed1afef..2139d5b4 100644 --- a/tests/onetop01.at +++ b/tests/onetop01.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2014-2017 Free Software Foundation, Inc. +# Copyright 2014-2019 Free Software Foundation, Inc. # # This file is part of GNU tar. # diff --git a/tests/onetop02.at b/tests/onetop02.at index 0ba91f88..98b5bc97 100644 --- a/tests/onetop02.at +++ b/tests/onetop02.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2014-2017 Free Software Foundation, Inc. +# Copyright 2014-2019 Free Software Foundation, Inc. # # This file is part of GNU tar. # diff --git a/tests/onetop03.at b/tests/onetop03.at index 52464a08..4c3597bb 100644 --- a/tests/onetop03.at +++ b/tests/onetop03.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2014-2017 Free Software Foundation, Inc. +# Copyright 2014-2019 Free Software Foundation, Inc. # # This file is part of GNU tar. # diff --git a/tests/onetop04.at b/tests/onetop04.at index 8f5809a1..3fb307ed 100644 --- a/tests/onetop04.at +++ b/tests/onetop04.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2014-2017 Free Software Foundation, Inc. +# Copyright 2014-2019 Free Software Foundation, Inc. # # This file is part of GNU tar. # diff --git a/tests/onetop05.at b/tests/onetop05.at index 954a65f0..23eea8d1 100644 --- a/tests/onetop05.at +++ b/tests/onetop05.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2015-2017 Free Software Foundation, Inc. +# Copyright 2015-2019 Free Software Foundation, Inc. # # This file is part of GNU tar. # diff --git a/tests/opcomp01.at b/tests/opcomp01.at index 68e28673..02c8cc03 100644 --- a/tests/opcomp01.at +++ b/tests/opcomp01.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/opcomp02.at b/tests/opcomp02.at index c8823b96..208f80f0 100644 --- a/tests/opcomp02.at +++ b/tests/opcomp02.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/opcomp03.at b/tests/opcomp03.at index 2bb355e0..bc67eaab 100644 --- a/tests/opcomp03.at +++ b/tests/opcomp03.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/opcomp04.at b/tests/opcomp04.at index a8837d15..3b34a43b 100644 --- a/tests/opcomp04.at +++ b/tests/opcomp04.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/opcomp05.at b/tests/opcomp05.at index e9e80504..56f6d183 100644 --- a/tests/opcomp05.at +++ b/tests/opcomp05.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/opcomp06.at b/tests/opcomp06.at index 54f4621b..08bc11f6 100644 --- a/tests/opcomp06.at +++ b/tests/opcomp06.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/options.at b/tests/options.at index fef6ad60..5223c687 100644 --- a/tests/options.at +++ b/tests/options.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/options02.at b/tests/options02.at index 420a8daf..9a2e1bbd 100644 --- a/tests/options02.at +++ b/tests/options02.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/options03.at b/tests/options03.at index 710f1086..8c3d8267 100644 --- a/tests/options03.at +++ b/tests/options03.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2016-2017 Free Software Foundation, Inc. +# Copyright 2016-2019 Free Software Foundation, Inc. # # This file is part of GNU tar. # diff --git a/tests/owner.at b/tests/owner.at index cd64e95c..ee1cc524 100644 --- a/tests/owner.at +++ b/tests/owner.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2011, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2011-2019 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/tests/package.m4 b/tests/package.m4 index 76a1252f..4cf10ec2 100644 --- a/tests/package.m4 +++ b/tests/package.m4 @@ -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.30]) -m4_define([AT_PACKAGE_STRING], [GNU tar 1.30]) +m4_define([AT_PACKAGE_VERSION], [1.32]) +m4_define([AT_PACKAGE_STRING], [GNU tar 1.32]) m4_define([AT_PACKAGE_BUGREPORT], [bug-tar@gnu.org]) diff --git a/tests/pipe.at b/tests/pipe.at index e8407c97..ea4f907c 100644 --- a/tests/pipe.at +++ b/tests/pipe.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004-2009, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/positional01.at b/tests/positional01.at index 79c4ec5d..b2783f7a 100644 --- a/tests/positional01.at +++ b/tests/positional01.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2016-2017 Free Software Foundation, Inc. +# Copyright 2016-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/positional02.at b/tests/positional02.at index 92cb90a4..64c5400c 100644 --- a/tests/positional02.at +++ b/tests/positional02.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2016-2017 Free Software Foundation, Inc. +# Copyright 2016-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/positional03.at b/tests/positional03.at index 11359e7e..3239925d 100644 --- a/tests/positional03.at +++ b/tests/positional03.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2016-2017 Free Software Foundation, Inc. +# Copyright 2016-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/recurs02.at b/tests/recurs02.at index ed35f246..7fb1f7ea 100644 --- a/tests/recurs02.at +++ b/tests/recurs02.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2014-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/recurse.at b/tests/recurse.at index 0126ab0f..92ad5f43 100644 --- a/tests/recurse.at +++ b/tests/recurse.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/remfiles01.at b/tests/remfiles01.at index 4b339598..9284590e 100644 --- a/tests/remfiles01.at +++ b/tests/remfiles01.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2009, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2009-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/remfiles02.at b/tests/remfiles02.at index cd861e1b..e5c090e8 100644 --- a/tests/remfiles02.at +++ b/tests/remfiles02.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2009, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2009-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/remfiles03.at b/tests/remfiles03.at index dc5048b9..9df0f47d 100644 --- a/tests/remfiles03.at +++ b/tests/remfiles03.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2009, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2009-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/remfiles04a.at b/tests/remfiles04a.at index 23c534d9..7014baf3 100644 --- a/tests/remfiles04a.at +++ b/tests/remfiles04a.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 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 diff --git a/tests/remfiles04b.at b/tests/remfiles04b.at index f690454b..95042d5e 100644 --- a/tests/remfiles04b.at +++ b/tests/remfiles04b.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 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 diff --git a/tests/remfiles04c.at b/tests/remfiles04c.at index 9c590f58..b523869a 100644 --- a/tests/remfiles04c.at +++ b/tests/remfiles04c.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 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 diff --git a/tests/remfiles05a.at b/tests/remfiles05a.at index 60f6651e..529f0b30 100644 --- a/tests/remfiles05a.at +++ b/tests/remfiles05a.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 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 diff --git a/tests/remfiles05b.at b/tests/remfiles05b.at index 6783ba36..7c1419ed 100644 --- a/tests/remfiles05b.at +++ b/tests/remfiles05b.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 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 diff --git a/tests/remfiles05c.at b/tests/remfiles05c.at index c314b1e8..35cdd477 100644 --- a/tests/remfiles05c.at +++ b/tests/remfiles05c.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 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 diff --git a/tests/remfiles06a.at b/tests/remfiles06a.at index 70d71db2..9e0be65a 100644 --- a/tests/remfiles06a.at +++ b/tests/remfiles06a.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 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 diff --git a/tests/remfiles06b.at b/tests/remfiles06b.at index 692b70b4..0f5eb606 100644 --- a/tests/remfiles06b.at +++ b/tests/remfiles06b.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 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 diff --git a/tests/remfiles06c.at b/tests/remfiles06c.at index bc66bb60..61a0c5df 100644 --- a/tests/remfiles06c.at +++ b/tests/remfiles06c.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 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 diff --git a/tests/remfiles07a.at b/tests/remfiles07a.at index b8194a8c..ac3922d0 100644 --- a/tests/remfiles07a.at +++ b/tests/remfiles07a.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 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 diff --git a/tests/remfiles07b.at b/tests/remfiles07b.at index 4a62de3c..6a00eda8 100644 --- a/tests/remfiles07b.at +++ b/tests/remfiles07b.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 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 diff --git a/tests/remfiles07c.at b/tests/remfiles07c.at index 4c312a55..41b196e0 100644 --- a/tests/remfiles07c.at +++ b/tests/remfiles07c.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 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 diff --git a/tests/remfiles08a.at b/tests/remfiles08a.at index 59248d6a..d044e8cc 100644 --- a/tests/remfiles08a.at +++ b/tests/remfiles08a.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 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 diff --git a/tests/remfiles08b.at b/tests/remfiles08b.at index 5aeb8ad6..1675108e 100644 --- a/tests/remfiles08b.at +++ b/tests/remfiles08b.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 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 diff --git a/tests/remfiles08c.at b/tests/remfiles08c.at index 1f5adab9..716b29c6 100644 --- a/tests/remfiles08c.at +++ b/tests/remfiles08c.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 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 diff --git a/tests/remfiles09a.at b/tests/remfiles09a.at index 02a31ff8..bc1504ab 100644 --- a/tests/remfiles09a.at +++ b/tests/remfiles09a.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 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 diff --git a/tests/remfiles09b.at b/tests/remfiles09b.at index aebaf545..2332a324 100644 --- a/tests/remfiles09b.at +++ b/tests/remfiles09b.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 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 diff --git a/tests/remfiles09c.at b/tests/remfiles09c.at index d03d66bf..984545a9 100644 --- a/tests/remfiles09c.at +++ b/tests/remfiles09c.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2013-2019 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 diff --git a/tests/remfiles10.at b/tests/remfiles10.at index 281939b6..39841071 100644 --- a/tests/remfiles10.at +++ b/tests/remfiles10.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2014-2019 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 diff --git a/tests/rename01.at b/tests/rename01.at index 07ccd06f..a388df32 100644 --- a/tests/rename01.at +++ b/tests/rename01.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2006-2007, 2009, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2006-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/rename02.at b/tests/rename02.at index f7e0f3a5..24f74127 100644 --- a/tests/rename02.at +++ b/tests/rename02.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2006-2007, 2009, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2006-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/rename03.at b/tests/rename03.at index 18cb7cdb..0bfc1889 100644 --- a/tests/rename03.at +++ b/tests/rename03.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2006-2007, 2009, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2006-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/rename04.at b/tests/rename04.at index 180cb147..8c549ca3 100644 --- a/tests/rename04.at +++ b/tests/rename04.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2008, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2008-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/rename05.at b/tests/rename05.at index 92d2ae5a..e51ead55 100644 --- a/tests/rename05.at +++ b/tests/rename05.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2008, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2008-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/same-order01.at b/tests/same-order01.at index b8f36472..9707cf64 100644 --- a/tests/same-order01.at +++ b/tests/same-order01.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/same-order02.at b/tests/same-order02.at index 3174509e..e82eded8 100644 --- a/tests/same-order02.at +++ b/tests/same-order02.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/selacl01.at b/tests/selacl01.at index c4145262..d7564a0a 100644 --- a/tests/selacl01.at +++ b/tests/selacl01.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2011, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2011-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/selnx01.at b/tests/selnx01.at index f4af605f..490b651a 100644 --- a/tests/selnx01.at +++ b/tests/selnx01.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2012-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2012-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/shortfile.at b/tests/shortfile.at index b59ed4f1..046a4fef 100644 --- a/tests/shortfile.at +++ b/tests/shortfile.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2007, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2007-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/shortrec.at b/tests/shortrec.at index c84663df..bdf2fbed 100644 --- a/tests/shortrec.at +++ b/tests/shortrec.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2005, 2007-2009, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2005-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/shortupd.at b/tests/shortupd.at index 6d5dd9bf..23657c23 100644 --- a/tests/shortupd.at +++ b/tests/shortupd.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2007, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2007-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/sigpipe.at b/tests/sigpipe.at index 3abe768c..79dd7854 100644 --- a/tests/sigpipe.at +++ b/tests/sigpipe.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/sparse01.at b/tests/sparse01.at index ffc2e265..d896e680 100644 --- a/tests/sparse01.at +++ b/tests/sparse01.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/sparse02.at b/tests/sparse02.at index 61a3372e..54167825 100644 --- a/tests/sparse02.at +++ b/tests/sparse02.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/sparse03.at b/tests/sparse03.at index 768ca2b8..61d2b487 100644 --- a/tests/sparse03.at +++ b/tests/sparse03.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2005-2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2005-2019 Free Software Foundation, Inc. # This file is part of GNU tar. @@ -20,7 +19,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. AT_SETUP([storing sparse files > 8G]) -AT_KEYWORDS([sparse sparse03]) +AT_KEYWORDS([sparse sparse03 largefile]) # Tar 1.15.1 incorrectly computed sparse member size if the extended # PAX header contained size keyword. @@ -28,6 +27,7 @@ AT_KEYWORDS([sparse sparse03]) # http://lists.gnu.org/archive/html/bug-tar/2005-06/msg00040.html AT_TAR_CHECK([ +AT_SKIP_LARGE_FILES genfile --length 1000 --file begin genfile --length 1000 --file end genfile --sparse --file sparsefile --block-size 512 8G A || AT_SKIP_TEST diff --git a/tests/sparse04.at b/tests/sparse04.at index 66627daf..38c661bc 100644 --- a/tests/sparse04.at +++ b/tests/sparse04.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/sparse05.at b/tests/sparse05.at index ed5db456..3e749cf5 100644 --- a/tests/sparse05.at +++ b/tests/sparse05.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2014-2019 Free Software Foundation, Inc. # This file is part of GNU tar. @@ -19,7 +19,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. AT_SETUP([listing sparse files bigger than 2^33 B]) -AT_KEYWORDS([sparse sparse05]) +AT_KEYWORDS([sparse sparse05 largefile]) # Description: If an archive in POSIX.1-2001 archive contained a sparse file # member whose real size (excluding zero blocks) is bigger than 2^33 bytes, @@ -29,6 +29,7 @@ AT_KEYWORDS([sparse sparse05]) # http://lists.gnu.org/archive/html/bug-tar/2013-01/msg00001.html AT_TAR_CHECK([ +AT_SKIP_LARGE_FILES AT_DATA([mapfile], [0 =2560 m4_for([i], 1, 999, 1, [10M =2560 diff --git a/tests/sparse06.at b/tests/sparse06.at index 530e2f8b..650b4f57 100644 --- a/tests/sparse06.at +++ b/tests/sparse06.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2014-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/sparse07.at b/tests/sparse07.at index 78596d70..33cca896 100644 --- a/tests/sparse07.at +++ b/tests/sparse07.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2016-2017 Free Software Foundation, Inc. +# Copyright 2016-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/sparsemv.at b/tests/sparsemv.at index 7aae74d2..b00d14e6 100644 --- a/tests/sparsemv.at +++ b/tests/sparsemv.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2005-2008, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2005-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/sparsemvp.at b/tests/sparsemvp.at index 2752bc89..f6ace3c1 100644 --- a/tests/sparsemvp.at +++ b/tests/sparsemvp.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2005-2009, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2005-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/spmvp00.at b/tests/spmvp00.at index 81cca8ad..90468fde 100644 --- a/tests/spmvp00.at +++ b/tests/spmvp00.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2006-2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2006-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/spmvp01.at b/tests/spmvp01.at index 50a33b0c..0a99c7d5 100644 --- a/tests/spmvp01.at +++ b/tests/spmvp01.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2006-2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2006-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/spmvp10.at b/tests/spmvp10.at index e4604425..08adfd4b 100644 --- a/tests/spmvp10.at +++ b/tests/spmvp10.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2006-2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2006-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/sptrcreat.at b/tests/sptrcreat.at new file mode 100644 index 00000000..2c730cc6 --- /dev/null +++ b/tests/sptrcreat.at @@ -0,0 +1,58 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- + +# Test suite for GNU tar. +# Copyright 2018-2019 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.30 would loop endlessly if a sparse file had been truncated +# while being archived (with --sparse flag). +# +# The bug has been assigned id CVE-2018-20482 (on the grounds that it is a +# denial of service possibility). +# +# Reported by: Chris Siebenmann <cks.gnutar-01@cs.toronto.edu> +# References: <20181226223948.781EB32008E@apps1.cs.toronto.edu>, +# <http://lists.gnu.org/archive/html/bug-tar/2018-12/msg00023.html> +# <https://utcc.utoronto.ca/~cks/space/blog/sysadmin/TarFindingTruncateBug> +# <https://nvd.nist.gov/vuln/detail/CVE-2018-20482> + +AT_SETUP([sparse file truncated while archiving]) +AT_KEYWORDS([truncate filechange sparse sptr sptrcreat]) + +AT_TAR_CHECK([ +genfile --sparse --block-size=1024 --file foo \ + 0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ +genfile --file baz +genfile --run --checkpoint 3 --length 200m --truncate foo -- \ + tar --sparse -vcf bar foo baz +echo Exit status: $? +echo separator +genfile --file foo --seek 200m --length 11575296 --pattern=zeros +tar dvf bar | sed '/foo: Mod time differs/d'], +[0], +[foo +baz +Exit status: 1 +separator +foo +baz +], +[tar: foo: File shrank by 11575296 bytes; padding with zeros +], +[],[],[posix, gnu, oldgnu]) + +AT_CLEANUP diff --git a/tests/sptrdiff00.at b/tests/sptrdiff00.at new file mode 100644 index 00000000..990c6fa4 --- /dev/null +++ b/tests/sptrdiff00.at @@ -0,0 +1,52 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- +# +# Test suite for GNU tar. +# Copyright 2018-2019 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/>. + +# While fixing CVE-2018-20482 (see sptrcreat.at) it has been discovered +# that similar bug exists in file checking code (tar d). +# This test case checks if tar correctly handles a short read condition +# appearing in check_sparse_region. + +AT_SETUP([file truncated in sparse region while comparing]) +AT_KEYWORDS([truncate filechange sparse sptr sptrdiff diff]) + +# This triggers short read in check_sparse_region. +AT_TAR_CHECK([ +genfile --sparse --block-size=1024 --file foo \ + 0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ +genfile --file baz +echo creating +tar --sparse -vcf bar foo baz +echo comparing +genfile --run --checkpoint 3 --length 200m --truncate foo -- \ + tar --sparse -vdf bar +], +[1], +[creating +foo +baz +comparing +foo +foo: Size differs +baz +], +[], +[],[],[posix, gnu, oldgnu]) + +AT_CLEANUP diff --git a/tests/sptrdiff01.at b/tests/sptrdiff01.at new file mode 100644 index 00000000..fcada14c --- /dev/null +++ b/tests/sptrdiff01.at @@ -0,0 +1,52 @@ +# Process this file with autom4te to create testsuite. -*- Autotest -*- +# +# Test suite for GNU tar. +# Copyright 2018-2019 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/>. + +# While fixing CVE-2018-20482 (see sptrcreat.at) it has been discovered +# that similar bug exists in file checking code (tar d). +# This test case checks if tar correctly handles a short read condition +# appearing in check_data_region. + +AT_SETUP([file truncated in data region while comparing]) +AT_KEYWORDS([truncate filechange sparse sptr sptrdiff diff]) + +# This triggers short read in check_data_region. +AT_TAR_CHECK([ +genfile --sparse --block-size=1024 --file foo \ + 0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ +genfile --file baz +echo creating +tar --sparse -vcf bar foo baz +echo comparing +genfile --run --checkpoint 5 --length 221278210 --truncate foo -- \ + tar --sparse -vdf bar +], +[1], +[creating +foo +baz +comparing +foo +foo: Size differs +baz +], +[], +[],[],[posix, gnu, oldgnu]) + +AT_CLEANUP diff --git a/tests/star/README b/tests/star/README index a8f128d5..554f122e 100644 --- a/tests/star/README +++ b/tests/star/README @@ -67,8 +67,7 @@ the example below: * Copying -Copyright 2004, 2006-2008, 2010, 2012-2014, 2016-2017 Free Software -Foundation, Inc. +Copyright 2004-2019 Free Software Foundation, Inc. This file is part of GNU tar. diff --git a/tests/star/gtarfail.at b/tests/star/gtarfail.at index e8199d12..339d5007 100644 --- a/tests/star/gtarfail.at +++ b/tests/star/gtarfail.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/star/gtarfail2.at b/tests/star/gtarfail2.at index fc6922cf..02d1217c 100644 --- a/tests/star/gtarfail2.at +++ b/tests/star/gtarfail2.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/star/multi-fail.at b/tests/star/multi-fail.at index 5622fcf0..c0d46dfb 100644 --- a/tests/star/multi-fail.at +++ b/tests/star/multi-fail.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/star/pax-big-10g.at b/tests/star/pax-big-10g.at index 4de14486..92e7158a 100644 --- a/tests/star/pax-big-10g.at +++ b/tests/star/pax-big-10g.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. @@ -20,11 +19,12 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. AT_SETUP([pax-big-10g]) -AT_KEYWORDS([star pax-big-10g]) +AT_KEYWORDS([star pax-big-10g largefile]) unset TAR_OPTIONS AT_CHECK([ +AT_SKIP_LARGE_FILES AT_GZIP_PREREQ([bzip2]) AT_STAR_PREREQ([pax-big-10g.tar.bz2],[ca15c23acc8d8bb1f27e60113a5f8bff]) diff --git a/tests/star/quicktest.sh b/tests/star/quicktest.sh index c7c8c3b4..9d481983 100755 --- a/tests/star/quicktest.sh +++ b/tests/star/quicktest.sh @@ -1,7 +1,6 @@ #! /bin/sh # This file is part of GNU tar testsuite. -# Copyright 2004-2005, 2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/star/ustar-big-2g.at b/tests/star/ustar-big-2g.at index 1d62bfa3..f44d6ed3 100644 --- a/tests/star/ustar-big-2g.at +++ b/tests/star/ustar-big-2g.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. @@ -20,11 +19,12 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. AT_SETUP([ustar-big-2g]) -AT_KEYWORDS([star ustar-big-2g]) +AT_KEYWORDS([star ustar-big-2g largefile]) unset TAR_OPTIONS AT_CHECK([ +AT_SKIP_LARGE_FILES AT_GZIP_PREREQ([bzip2]) AT_STAR_PREREQ([ustar-big-2g.tar.bz2],[b63979733629c8fcdf40b60065422767]) diff --git a/tests/star/ustar-big-8g.at b/tests/star/ustar-big-8g.at index 8caf8161..13bf7133 100644 --- a/tests/star/ustar-big-8g.at +++ b/tests/star/ustar-big-8g.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. @@ -20,11 +19,12 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. AT_SETUP([ustar-big-8g]) -AT_KEYWORDS([star ustar-big-8g]) +AT_KEYWORDS([star ustar-big-8g largefile]) unset TAR_OPTIONS AT_CHECK([ +AT_SKIP_LARGE_FILES AT_GZIP_PREREQ([bzip2]) AT_STAR_PREREQ([ustar-big-8g.tar.bz2],[60ff503fa4b8288bef7ada89e9c91b0f]) diff --git a/tests/testsuite b/tests/testsuite index 9b813a5f..a349094e 100755 --- a/tests/testsuite +++ b/tests/testsuite @@ -590,10 +590,10 @@ at_tested='tar' # numerical order. at_format='???' # Description of all the test groups. -at_help_all="1;version.at:20;tar version;; -2;pipe.at:30;decompressing from stdin;pipe; -3;options.at:25;mixing options;options options00; -4;options02.at:27;interspersed options;options options02; +at_help_all="1;version.at:19;tar version;; +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;options03.at:21;TAR_OPTIONS with string arguments;options options03; 6;opcomp01.at:21;occurrence compatibility;opcomp opcomp01; 7;opcomp02.at:21;occurrence compatibility;opcomp opcomp02; @@ -601,215 +601,229 @@ at_help_all="1;version.at:20;tar version;; 9;opcomp04.at:21;compress option compatibility;opcomp opcomp04; 10;opcomp05.at:21;--pax-option compatibility;opcomp opcomp05; 11;opcomp06.at:21;--pax-option compatibility;opcomp opcomp06; -12;positional01.at:21;Exclude;options positional positional01 exclude; -13;positional02.at:21;Directory;options positional positional02 directory chdir; -14;positional03.at:21;Several options;options positional positional03 chdir; -15;add-file.at:21;The --add-file option;add-file; -16;T-mult.at:21;multiple file lists;files-from t-mult; -17;T-nest.at:21;nested file lists;files-from t-nest; -18;T-rec.at:21;recursive file lists;files-from t-rec; -19;T-recurse.at:27;files-from & recurse: toggle;recurse t-recurse files-from; -20;T-recurse.at:66;toggle --recursion (not) from -T;recurse t-recurse t-recurse2 files-from; -21;T-cd.at:21;-C in file lists;files-from t-cd chdir; -22;T-empty.at:27;empty entries;files-from empty-line; -23;T-null.at:22;0-separated file without -0;files-from null t-null; -24;T-null2.at:17;--null enables verbatim reading;files-from null t-null2 t-verbatim; -25;T-zfile.at:26;empty file;files-from empty-file; -26;T-nonl.at:27;entries with missing newlines;files-from nonewline nonl t-nonl; -27;T-dir00.at:28;recursive extraction from --files-from;files-from extract t-dir t-dir00; -28;T-dir01.at:28;trailing slash in --files-from;files-from extract t-dir t-dir01; -29;indexfile.at:27;tar --index-file=FILE --file=-;stdout indexfile; -30;verbose.at:27;tar cvf -;stdout verbose; -31;gzip.at:24;gzip;gzip; -32;recurse.at:22;recurse;recurse; -33;recurs02.at:30;recurse: toggle;recurse options recurse02; -34;shortrec.at:26;short records;shortrec; -35;numeric.at:18;--numeric-owner basic tests;options numeric numeric-owner; -36;same-order01.at:27;working -C with --same-order;same-order same-order01 chdir; -37;same-order02.at:26;multiple -C options;same-order same-order02 chdir; -38;append.at:22;append;append append00; -39;append01.at:30;appending files with long names;append append01; -40;append02.at:55;append vs. create;append append02 append-gnu; -41;append03.at:21;append with name transformation;append append03; -42;append04.at:29;append with verify;append append04 verify append-verify; -43;append05.at:32;append after changed blocking;append append05 blocking; -44;xform-h.at:31;transforming hard links on create;transform xform xform-h; -45;xform01.at:26;transformations and GNU volume labels;transform xform xform01 volume; -46;xform02.at:21;transforming escaped delimiters on create;transform xform delimiter; -47;xform03.at:21;transforming hard link targets;transform xform link; -48;exclude.at:23;exclude;exclude; -49;exclude01.at:19;exclude wildcards;exclude exclude01; -50;exclude02.at:19;exclude: anchoring;exclude exclude02; -51;exclude03.at:19;exclude: wildcards match slash;exclude exclude03; -52;exclude04.at:19;exclude: case insensitive;exclude exclude04; -53;exclude05.at:22;exclude: lots of excludes;exclude exclude05; -54;exclude06.at:26;exclude: long files in pax archives;exclude exclude06 chdir; -55;exclude07.at:19;exclude: --exclude-backups option;exclude exclude07; -56;exclude08.at:36;--exclude-tag option;exclude exclude-tag exclude08; -57;exclude09.at:37;--exclude-tag option and --listed-incremental;exclude exclude-tag listed incremental exclude09; -58;exclude10.at:38;--exclude-tag option in incremental pass;exclude exclude-tag listed incremental exclude10; -59;exclude11.at:36;--exclude-tag-under option;exclude exclude-tag exclude-tag-under exclude11; -60;exclude12.at:37;--exclude-tag-under and --listed-incremental;exclude exclude-tag exclude-tag-under listed incremental exclude12; -61;exclude13.at:39;--exclude-tag-under option in incremental pass;exclude exclude-tag exclude-tag-under listed incremental exclude13; -62;exclude14.at:36;--exclude-tag-all option;exclude exclude-tag exclude-tag-all exclude14; -63;exclude15.at:36;--exclude-tag-all and --listed-incremental;exclude exclude-tag exclude-tag-all listed incremental exclude15; -64;exclude16.at:38;--exclude-tag-all option in incremental pass;exclude exclude-tag exclude-tag-all listed incremental exclude16; -65;delete01.at:24;deleting a member after a big one;delete delete01; -66;delete02.at:24;deleting a member from stdin archive;delete delete02; -67;delete03.at:22;deleting members with long names;delete delete03; -68;delete04.at:24;deleting a large last member;delete delete04; -69;delete05.at:28;deleting non-existing member;delete delete05; -70;extrac01.at:24;extract over an existing directory;extract extract01; -71;extrac02.at:24;extracting symlinks over an existing file;extract extract02 symlink; -72;extrac03.at:24;extraction loops;extract extract03; -73;extrac04.at:24;extract + fnmatch;extract extract04 fnmatch; -74;extrac05.at:31;extracting selected members from pax;extract extract05; -75;extrac06.at:35;mode of extracted directories;extract extract06 directory mode; -76;extrac07.at:28;extracting symlinks to a read-only dir;extract extract07 read-only symlink chdir; -77;extrac08.at:33;restoring mode on existing directory;extract extrac08; -78;extrac09.at:34;extracting even when . and .. are unreadable;extract extrac09 chdir; -79;extrac10.at:29;-C and delayed setting of metadata;extract extrac10 chdir; -80;extrac11.at:25;scarce file descriptors;extract extrac11 chdir; -81;extrac12.at:25;extract dot permissions;extract extrac12 chdir; -82;extrac13.at:26;extract over symlinks;extract extrac13 chdir; -83;extrac14.at:25;extract -C symlink;extract extrac14 chdir; -84;extrac15.at:25;extract parent mkdir failure;extract extrac15 chdir; -85;extrac16.at:26;extract empty directory with -C;extract extrac16 chdir; -86;extrac17.at:21;name matching/transformation ordering;extract extrac17 chdir; -87;extrac18.at:34;keep-old-files;extract extrac18 old-files keep-old-files; -88;extrac19.at:21;skip-old-files;extract extrac19 old-files skip-old-files; -89;extrac20.at:21;keep-directory-symlink;extrac20 extract old-files keep-old-files; -90;extrac21.at:31;delay-directory-restore;extract extract21 read-only symlink delay-directory-restore; -91;backup01.at:34;extracting existing dir with --backup;extract backup backup01; -92;difflink.at:17;link mismatch;diff difflink; -93;label01.at:21;single-volume label;label label01; -94;label02.at:21;multi-volume label;label label02 multi-label multivolume multiv; -95;label03.at:27;test-label option;label label03 test-label; -96;label04.at:27;label with non-create option;label label04; -97;label05.at:24;label with non-create option;label label05; -98;incremental.at:24;incremental;incremental listed incr00; -99;incr01.at:28;restore broken symlinks from incremental;incremental incr01; -100;incr02.at:33;restoring timestamps from incremental;incremental timestamp restore incr02; -101;listed01.at:27;--listed for individual files;listed incremental listed01; -102;listed02.at:29;working --listed;listed incremental listed02; -103;listed03.at:24;incremental dump when the parent directory is unreadable;listed incremental listed03; -104;listed04.at:26;--listed-incremental and --one-file-system;listed incremental listed04; -105;listed05.at:33;--listed-incremental and remounted directories;listed incremental listed05 chdir; -106;incr03.at:29;renamed files in incrementals;incremental incr03 rename; -107;incr04.at:30;proper icontents initialization;incremental incr04 icontents; -108;incr05.at:21;incremental dumps with -C;incremental incr05 chdir; -109;incr06.at:21;incremental dumps of nested directories;incremental incr06 chdir; -110;incr07.at:18;incremental restores with -C;incremental extract incr07 chdir; -111;incr08.at:38;filename normalization;incremental create incr08 chdir; -112;incr09.at:26;incremental with alternating -C;incremental create incr09 chdir; -113;incr10.at:18;concatenated incremental archives (deletes);incremental concat cat incr10 chdir; -114;incr11.at:25;concatenated incremental archives (renames);incremental concat cat incr11 chdir; -115;filerem01.at:36;file removed as we read it (ca. 22 seconds);create incremental listed filechange filerem filerem01; -116;filerem02.at:26;toplevel file removed (ca. 24 seconds);create incremental listed filechange filerem filerem02; -117;dirrem01.at:34;directory removed before reading;create incremental listed dirchange dirrem dirrem01; -118;dirrem02.at:31;explicitly named directory removed before reading;create incremental listed dirchange dirrem dirrem02; -119;rename01.at:25;renamed dirs in incrementals;incremental rename rename01; -120;rename02.at:25;move between hierarchies;incremental rename rename02; -121;rename03.at:24;cyclic renames;incremental rename rename03 cyclic-rename; -122;rename04.at:27;renamed directory containing subdirectories;incremental rename04 rename; -123;rename05.at:24;renamed subdirectories;incremental rename05 rename; -124;chtype.at:28;changed file types in incrementals;incremental listed chtype; -125;ignfail.at:24;ignfail;ignfail; -126;link01.at:34;link count gt 2;hardlinks link01; -127;link02.at:32;preserve hard links with --remove-files;hardlinks link02; -128;link03.at:24;working -l with --remove-files;hardlinks link03; -129;link04.at:29;link count is 1 but multiple occurrences;hardlinks link04; -130;longv7.at:25;long names in V7 archives;longname longv7; -131;long01.at:29;long file names divisible by block size;longname long512; -132;lustar01.at:22;ustar: unsplittable file name;longname ustar lustar01; -133;lustar02.at:22;ustar: unsplittable path name;longname ustar lustar02; -134;lustar03.at:22;ustar: splitting long names;longname ustar lustar03; -135;old.at:24;old archives;old; -136;time01.at:20;time: tricky time stamps;time time01; -137;time02.at:20;time: clamping mtime;time time02; -138;multiv01.at:24;multivolume dumps from pipes;multivolume multiv multiv01 chdir; -139;multiv02.at:29;skipping a straddling member;multivolume multiv multiv02; -140;multiv03.at:31;MV archive & long filenames;multivolume multiv multiv03; -141;multiv04.at:37;split directory members in a MV archive;multivolume multiv incremental listed multiv04; -142;multiv05.at:27;Restoring after an out of sync volume;multivolume multiv multiv05 sync; -143;multiv06.at:27;Multivolumes with L=record_size;multivolume multiv multiv06; -144;multiv07.at:28;volumes split at an extended header;multivolume multiv multiv07 xsplit; -145;multiv08.at:25;multivolume header creation;multivolume multiv multiv08; -146;multiv09.at:26;bad next volume;multivolume multiv multiv09; -147;multiv10.at:37;file start at the beginning of a posix volume;multivolume multiv multiv10; -148;owner.at:21;--owner and --group;owner; -149;map.at:21;--owner-map and --group-map;owner map; -150;sparse01.at:22;sparse files;sparse sparse01; -151;sparse02.at:22;extracting sparse file over a pipe;sparse sparse02; -152;sparse03.at:22;storing sparse files > 8G;sparse sparse03; -153;sparse04.at:21;storing long sparse file names;sparse sparse04; -154;sparse05.at:21;listing sparse files bigger than 2^33 B;sparse sparse05; -155;sparse06.at:21;storing sparse file using seek method;sparse sparse06 chdir; -156;sparse07.at:21;sparse files with unicode names;sparse sparse07 unicode; -157;sparsemv.at:22;sparse files in MV archives;sparse multiv sparsemv; -158;spmvp00.at:22;sparse files in PAX MV archives, v.0.0;sparse multivolume multiv sparsemvp sparsemvp00; -159;spmvp01.at:22;sparse files in PAX MV archives, v.0.1;sparse multiv sparsemvp sparsemvp01; -160;spmvp10.at:22;sparse files in PAX MV archives, v.1.0;sparse multivolume multiv sparsemvp sparsemvp10; -161;update.at:29;update unchanged directories;update update00; -162;update01.at:29;update directories;update update01; -163;update02.at:26;update changed files;update update02; -164;update03.at:20;update with chdir;update update03 chdir; -165;verify.at:25;verify;verify; -166;volume.at:24;volume;volume volcheck; -167;volsize.at:30;volume header size;volume volsize; -168;comprec.at:22;compressed format recognition;comprec; -169;shortfile.at:26;short input files;shortfile shortfile0; -170;shortupd.at:31;updating short archives;shortfile shortfile1 shortupd; -171;truncate.at:30;truncate;truncate filechange; -172;grow.at:25;grow;grow filechange; -173;sigpipe.at:21;sigpipe handling;sigpipe; -174;comperr.at:18;compressor program failure;compress comperr; -175;remfiles01.at:28;remove-files with compression;create remove-files remfiles01 gzip; -176;remfiles02.at:28;remove-files with compression: grand-child;create remove-files remfiles02 gzip; -177;remfiles03.at:28;remove-files with symbolic links;create remove-files remfiles03; -178;remfiles04a.at:25;remove-files with -C:rel in -c/non-incr. mode;create remove-files remfiles04 remfiles04a chdir; -179;remfiles04b.at:33;remove-files with -C:rel in -c/incr. mode;create incremental remove-files remfiles04 remfiles04b chdir; -180;remfiles04c.at:33;remove-files with -C:rel in -r mode;create append remove-files remfiles04 remfiles04c chdir; -181;remfiles05a.at:34;remove-files with -C:rel,rel in -c/non-incr. mode;create remove-files remfiles05 remfiles05a chdir; -182;remfiles05b.at:25;remove-files with -C:rel,rel in -c/incr. mode;create incremental remove-files remfiles05 remfiles05b chdir; -183;remfiles05c.at:25;remove-files with -C:rel,rel in -r mode;create append remove-files remfiles05 remfiles05c chdir; -184;remfiles06a.at:25;remove-files with -C:rel,abs in -c/non-incr. mode;create remove-files remfiles06 remfiles06a chdir; -185;remfiles06b.at:25;remove-files with -C:rel,abs in -c/incr. mode;create incremental remove-files remfiles06 remfiles06b chdir; -186;remfiles06c.at:25;remove-files with -C:rel,abs in -r mode;create append remove-files remfiles06 remfiles06c chdir; -187;remfiles07a.at:25;remove-files with -C:abs,rel in -c/non-incr. mode;create remove-files remfiles07 remfiles07a chdir; -188;remfiles07b.at:25;remove-files with -C:abs,rel in -c/incr. mode;create incremental remove-files remfiles07 remfiles07b chdir; -189;remfiles07c.at:25;remove-files with -C:abs,rel in -r mode;create append remove-files remfiles07 remfiles07c chdir; -190;remfiles08a.at:28;remove-files deleting two subdirs in -c/non-incr. mode;create remove-files remfiles08 remfiles08a chdir; -191;remfiles08b.at:31;remove-files deleting two subdirs in -c/incr. mode;create incremental remove-files remfiles08 remfiles08b chdir; -192;remfiles08c.at:28;remove-files deleting two subdirs in -r mode;create append remove-files remfiles08 remfiles08c chdir; -193;remfiles09a.at:25;remove-files on full directory in -c/non-incr. mode;create remove-files remfiles09 remfiles09a; -194;remfiles09b.at:29;remove-files on full directory in -c/incr. mode;create incremental remove-files remfiles09 remfiles09b; -195;remfiles09c.at:25;remove-files on full directory in -r mode;create append remove-files remfiles09 remfiles09c; -196;remfiles10.at:20;remove-files;create remove-files remfiles10; -197;xattr01.at:25;xattrs: basic functionality;xattrs xattr01; -198;xattr02.at:25;xattrs: change directory with -C option;xattrs xattr02 chdir; -199;xattr03.at:25;xattrs: trusted.* attributes;xattrs xattr03 chdir; -200;xattr04.at:26;xattrs: s/open/openat/ regression;xattrs xattr04 chdir; -201;xattr05.at:28;xattrs: keywords with '=' and '%';xattrs xattr05 chdir; -202;xattr06.at:27;xattrs: exclude xattrs on create ;xattrs xattr06; -203;xattr07.at:26;xattrs: xattrs and --skip-old-files;xattrs xattr07; -204;acls01.at:25;acls: basic functionality;xattrs acls acls01; -205;acls02.at:25;acls: work with -C;xattrs acls acls02 chdir; -206;acls03.at:30;acls: default ACLs;xattrs acls acls03 chdir; -207;selnx01.at:25;selinux: basic store/restore;xattrs selinux selnx01; -208;selacl01.at:25;acls/selinux: special files & fifos;xattrs selinux acls selacls01; -209;capabs_raw01.at:25;capabilities: binary store/restore;xattrs capabilities capabs_raw01; -210;onetop01.at:21;tar --one-top-level;extract onetop onetop01; -211;onetop02.at:21;tar --one-top-level --show-transformed;extract onetop onetop02; -212;onetop03.at:21;tar --one-top-level --transform;extract onetop onetop03; -213;onetop04.at:21;tar --one-top-level --transform;extract onetop onetop04; -214;onetop05.at:21;tar --one-top-level restoring permissions;extract onetop onetop05 chdir; -215;gtarfail.at:22;gtarfail;star gtarfail; -216;gtarfail2.at:22;gtarfail2;star gtarfail2; -217;multi-fail.at:22;multi-fail;star multivolume multiv multi-fail; -218;ustar-big-2g.at:22;ustar-big-2g;star ustar-big-2g; -219;ustar-big-8g.at:22;ustar-big-8g;star ustar-big-8g; -220;pax-big-10g.at:22;pax-big-10g;star pax-big-10g; +12;defaults.at:16;checkpoint defaults;checkpoint checkpoint/defaults; +13;interval.at:16;checkpoint interval;checkpoint checkpoint/interval; +14;dot.at:16;dot action;checkpoint checkpoint/dot; +15;dot-compat.at:16;dot action (compatibility syntax);checkpoint checkpoint/dot-compat; +16;dot-int.at:16;dot action and interval;checkpoint checkpoint/dot-int; +17;testsuite.at:242;compress: gzip;compression compress-gzip gzip; +18;testsuite.at:243;compress: bzip2;compression compress-bzip2 bzip2; +19;testsuite.at:244;compress: xz;compression compress-xz xz; +20;testsuite.at:246;compress: lzip;compression compress-lzip lzip; +21;testsuite.at:247;compress: lzop;compression compress-lzop lzop; +22;testsuite.at:248;compress: zstd;compression compress-zstd zstd; +23;positional01.at:21;Exclude;options positional positional01 exclude; +24;positional02.at:21;Directory;options positional positional02 directory chdir; +25;positional03.at:21;Several options;options positional positional03 chdir; +26;add-file.at:21;The --add-file option;add-file; +27;T-mult.at:21;multiple file lists;files-from t-mult; +28;T-nest.at:21;nested file lists;files-from t-nest; +29;T-rec.at:21;recursive file lists;files-from t-rec; +30;T-recurse.at:27;files-from & recurse: toggle;recurse t-recurse files-from; +31;T-recurse.at:66;toggle --recursion (not) from -T;recurse t-recurse t-recurse2 files-from; +32;T-cd.at:21;-C in file lists;files-from t-cd chdir; +33;T-empty.at:26;empty entries;files-from empty-line; +34;T-null.at:21;0-separated file without -0;files-from null t-null; +35;T-null2.at:17;--null enables verbatim reading;files-from null t-null2 t-verbatim; +36;T-zfile.at:26;empty file;files-from empty-file; +37;T-nonl.at:27;entries with missing newlines;files-from nonewline nonl t-nonl; +38;T-dir00.at:28;recursive extraction from --files-from;files-from extract t-dir t-dir00; +39;T-dir01.at:28;trailing slash in --files-from;files-from extract t-dir t-dir01; +40;indexfile.at:26;tar --index-file=FILE --file=-;stdout indexfile; +41;verbose.at:26;tar cvf -;stdout verbose; +42;gzip.at:23;gzip;gzip; +43;recurse.at:21;recurse;recurse; +44;recurs02.at:30;recurse: toggle;recurse options recurse02; +45;shortrec.at:25;short records;shortrec; +46;numeric.at:18;--numeric-owner basic tests;options numeric numeric-owner; +47;same-order01.at:26;working -C with --same-order;same-order same-order01 chdir; +48;same-order02.at:25;multiple -C options;same-order same-order02 chdir; +49;append.at:21;append;append append00; +50;append01.at:29;appending files with long names;append append01; +51;append02.at:54;append vs. create;append append02 append-gnu; +52;append03.at:21;append with name transformation;append append03; +53;append04.at:29;append with verify;append append04 verify append-verify; +54;append05.at:32;append after changed blocking;append append05 blocking; +55;xform-h.at:30;transforming hard links on create;transform xform xform-h; +56;xform01.at:26;transformations and GNU volume labels;transform xform xform01 volume; +57;xform02.at:21;transforming escaped delimiters on create;transform xform delimiter; +58;xform03.at:21;transforming hard link targets;transform xform link; +59;exclude.at:23;exclude;exclude; +60;exclude01.at:19;exclude wildcards;exclude exclude01; +61;exclude02.at:19;exclude: anchoring;exclude exclude02; +62;exclude03.at:19;exclude: wildcards match slash;exclude exclude03; +63;exclude04.at:19;exclude: case insensitive;exclude exclude04; +64;exclude05.at:21;exclude: lots of excludes;exclude exclude05; +65;exclude06.at:26;exclude: long files in pax archives;exclude exclude06 chdir; +66;exclude07.at:19;exclude: --exclude-backups option;exclude exclude07; +67;exclude08.at:36;--exclude-tag option;exclude exclude-tag exclude08; +68;exclude09.at:37;--exclude-tag option and --listed-incremental;exclude exclude-tag listed incremental exclude09; +69;exclude10.at:38;--exclude-tag option in incremental pass;exclude exclude-tag listed incremental exclude10; +70;exclude11.at:36;--exclude-tag-under option;exclude exclude-tag exclude-tag-under exclude11; +71;exclude12.at:37;--exclude-tag-under and --listed-incremental;exclude exclude-tag exclude-tag-under listed incremental exclude12; +72;exclude13.at:39;--exclude-tag-under option in incremental pass;exclude exclude-tag exclude-tag-under listed incremental exclude13; +73;exclude14.at:36;--exclude-tag-all option;exclude exclude-tag exclude-tag-all exclude14; +74;exclude15.at:36;--exclude-tag-all and --listed-incremental;exclude exclude-tag exclude-tag-all listed incremental exclude15; +75;exclude16.at:38;--exclude-tag-all option in incremental pass;exclude exclude-tag exclude-tag-all listed incremental exclude16; +76;delete01.at:23;deleting a member after a big one;delete delete01; +77;delete02.at:23;deleting a member from stdin archive;delete delete02; +78;delete03.at:21;deleting members with long names;delete delete03; +79;delete04.at:23;deleting a large last member;delete delete04; +80;delete05.at:27;deleting non-existing member;delete delete05; +81;extrac01.at:23;extract over an existing directory;extract extract01; +82;extrac02.at:23;extracting symlinks over an existing file;extract extract02 symlink; +83;extrac03.at:23;extraction loops;extract extract03; +84;extrac04.at:23;extract + fnmatch;extract extract04 fnmatch; +85;extrac05.at:30;extracting selected members from pax;extract extract05; +86;extrac06.at:34;mode of extracted directories;extract extract06 directory mode; +87;extrac07.at:27;extracting symlinks to a read-only dir;extract extract07 read-only symlink chdir; +88;extrac08.at:33;restoring mode on existing directory;extract extrac08; +89;extrac09.at:34;extracting even when . and .. are unreadable;extract extrac09 chdir; +90;extrac10.at:29;-C and delayed setting of metadata;extract extrac10 chdir; +91;extrac11.at:25;scarce file descriptors;extract extrac11 chdir; +92;extrac12.at:25;extract dot permissions;extract extrac12 chdir; +93;extrac13.at:26;extract over symlinks;extract extrac13 chdir; +94;extrac14.at:25;extract -C symlink;extract extrac14 chdir; +95;extrac15.at:25;extract parent mkdir failure;extract extrac15 chdir; +96;extrac16.at:26;extract empty directory with -C;extract extrac16 chdir; +97;extrac17.at:21;name matching/transformation ordering;extract extrac17 chdir; +98;extrac18.at:34;keep-old-files;extract extrac18 old-files keep-old-files; +99;extrac19.at:21;skip-old-files;extract extrac19 old-files skip-old-files; +100;extrac20.at:21;keep-directory-symlink;extrac20 extract old-files keep-old-files; +101;extrac21.at:31;delay-directory-restore;extract extract21 read-only symlink delay-directory-restore; +102;backup01.at:33;extracting existing dir with --backup;extract backup backup01; +103;difflink.at:17;link mismatch;diff difflink; +104;label01.at:21;single-volume label;label label01; +105;label02.at:21;multi-volume label;label label02 multi-label multivolume multiv; +106;label03.at:27;test-label option;label label03 test-label; +107;label04.at:27;label with non-create option;label label04; +108;label05.at:24;label with non-create option;label label05; +109;incremental.at:23;incremental;incremental listed incr00; +110;incr01.at:27;restore broken symlinks from incremental;incremental incr01; +111;incr02.at:32;restoring timestamps from incremental;incremental timestamp restore incr02; +112;listed01.at:26;--listed for individual files;listed incremental listed01; +113;listed02.at:28;working --listed;listed incremental listed02; +114;listed03.at:24;incremental dump when the parent directory is unreadable;listed incremental listed03; +115;listed04.at:26;--listed-incremental and --one-file-system;listed incremental listed04; +116;listed05.at:33;--listed-incremental and remounted directories;listed incremental listed05 chdir; +117;incr03.at:28;renamed files in incrementals;incremental incr03 rename; +118;incr04.at:29;proper icontents initialization;incremental incr04 icontents; +119;incr05.at:21;incremental dumps with -C;incremental incr05 chdir; +120;incr06.at:21;incremental dumps of nested directories;incremental incr06 chdir; +121;incr07.at:18;incremental restores with -C;incremental extract incr07 chdir; +122;incr08.at:38;filename normalization;incremental create incr08 chdir; +123;incr09.at:26;incremental with alternating -C;incremental create incr09 chdir; +124;incr10.at:18;concatenated incremental archives (deletes);incremental concat cat incr10 chdir; +125;incr11.at:25;concatenated incremental archives (renames);incremental concat cat incr11 chdir; +126;filerem01.at:36;file removed as we read it;create incremental listed filechange filerem filerem01; +127;filerem02.at:26;toplevel file removed;create incremental listed filechange filerem filerem02; +128;dirrem01.at:38;directory removed before reading;create incremental listed dirchange dirrem dirrem01; +129;dirrem02.at:31;explicitly named directory removed before reading;create incremental listed dirchange dirrem dirrem02; +130;rename01.at:24;renamed dirs in incrementals;incremental rename rename01; +131;rename02.at:24;move between hierarchies;incremental rename rename02; +132;rename03.at:23;cyclic renames;incremental rename rename03 cyclic-rename; +133;rename04.at:27;renamed directory containing subdirectories;incremental rename04 rename; +134;rename05.at:24;renamed subdirectories;incremental rename05 rename; +135;chtype.at:27;changed file types in incrementals;incremental listed chtype; +136;ignfail.at:23;ignfail;ignfail; +137;link01.at:33;link count gt 2;hardlinks link01; +138;link02.at:32;preserve hard links with --remove-files;hardlinks link02; +139;link03.at:24;working -l with --remove-files;hardlinks link03; +140;link04.at:29;link count is 1 but multiple occurrences;hardlinks link04; +141;longv7.at:24;long names in V7 archives;longname longv7; +142;long01.at:28;long file names divisible by block size;longname long512; +143;lustar01.at:21;ustar: unsplittable file name;longname ustar lustar01; +144;lustar02.at:21;ustar: unsplittable path name;longname ustar lustar02; +145;lustar03.at:21;ustar: splitting long names;longname ustar lustar03; +146;old.at:23;old archives;old; +147;time01.at:20;time: tricky time stamps;time time01; +148;time02.at:20;time: clamping mtime;time time02; +149;multiv01.at:23;multivolume dumps from pipes;multivolume multiv multiv01 chdir; +150;multiv02.at:28;skipping a straddling member;multivolume multiv multiv02; +151;multiv03.at:30;MV archive & long filenames;multivolume multiv multiv03; +152;multiv04.at:36;split directory members in a MV archive;multivolume multiv incremental listed multiv04; +153;multiv05.at:26;Restoring after an out of sync volume;multivolume multiv multiv05 sync; +154;multiv06.at:27;Multivolumes with L=record_size;multivolume multiv multiv06; +155;multiv07.at:28;volumes split at an extended header;multivolume multiv multiv07 xsplit; +156;multiv08.at:25;multivolume header creation;multivolume multiv multiv08; +157;multiv09.at:26;bad next volume;multivolume multiv multiv09; +158;multiv10.at:37;file start at the beginning of a posix volume;multivolume multiv multiv10; +159;owner.at:21;--owner and --group;owner; +160;map.at:21;--owner-map and --group-map;owner map; +161;sparse01.at:21;sparse files;sparse sparse01; +162;sparse02.at:21;extracting sparse file over a pipe;sparse sparse02; +163;sparse03.at:21;storing sparse files > 8G;sparse sparse03 largefile; +164;sparse04.at:21;storing long sparse file names;sparse sparse04; +165;sparse05.at:21;listing sparse files bigger than 2^33 B;sparse sparse05 largefile; +166;sparse06.at:21;storing sparse file using seek method;sparse sparse06 chdir; +167;sparse07.at:21;sparse files with unicode names;sparse sparse07 unicode; +168;sparsemv.at:21;sparse files in MV archives;sparse multiv sparsemv; +169;spmvp00.at:21;sparse files in PAX MV archives, v.0.0;sparse multivolume multiv sparsemvp sparsemvp00; +170;spmvp01.at:21;sparse files in PAX MV archives, v.0.1;sparse multiv sparsemvp sparsemvp01; +171;spmvp10.at:21;sparse files in PAX MV archives, v.1.0;sparse multivolume multiv sparsemvp sparsemvp10; +172;sptrcreat.at:33;sparse file truncated while archiving;truncate filechange sparse sptr sptrcreat; +173;sptrdiff00.at:26;file truncated in sparse region while comparing;truncate filechange sparse sptr sptrdiff diff; +174;sptrdiff01.at:26;file truncated in data region while comparing;truncate filechange sparse sptr sptrdiff diff; +175;update.at:28;update unchanged directories;update update00; +176;update01.at:29;update directories;update update01; +177;update02.at:26;update changed files;update update02; +178;update03.at:20;update with chdir;update update03 chdir; +179;verify.at:25;verify;verify; +180;volume.at:23;volume;volume volcheck; +181;volsize.at:29;volume header size;volume volsize; +182;comprec.at:21;compressed format recognition;comprec; +183;shortfile.at:26;short input files;shortfile shortfile0; +184;shortupd.at:31;updating short archives;shortfile shortfile1 shortupd; +185;truncate.at:29;truncate;truncate filechange; +186;grow.at:24;grow;grow filechange; +187;sigpipe.at:21;sigpipe handling;sigpipe; +188;comperr.at:18;compressor program failure;compress comperr; +189;remfiles01.at:28;remove-files with compression;create remove-files remfiles01 gzip; +190;remfiles02.at:28;remove-files with compression: grand-child;create remove-files remfiles02 gzip; +191;remfiles03.at:28;remove-files with symbolic links;create remove-files remfiles03; +192;remfiles04a.at:25;remove-files with -C:rel in -c/non-incr. mode;create remove-files remfiles04 remfiles04a chdir; +193;remfiles04b.at:33;remove-files with -C:rel in -c/incr. mode;create incremental remove-files remfiles04 remfiles04b chdir; +194;remfiles04c.at:33;remove-files with -C:rel in -r mode;create append remove-files remfiles04 remfiles04c chdir; +195;remfiles05a.at:34;remove-files with -C:rel,rel in -c/non-incr. mode;create remove-files remfiles05 remfiles05a chdir; +196;remfiles05b.at:25;remove-files with -C:rel,rel in -c/incr. mode;create incremental remove-files remfiles05 remfiles05b chdir; +197;remfiles05c.at:25;remove-files with -C:rel,rel in -r mode;create append remove-files remfiles05 remfiles05c chdir; +198;remfiles06a.at:25;remove-files with -C:rel,abs in -c/non-incr. mode;create remove-files remfiles06 remfiles06a chdir; +199;remfiles06b.at:25;remove-files with -C:rel,abs in -c/incr. mode;create incremental remove-files remfiles06 remfiles06b chdir; +200;remfiles06c.at:25;remove-files with -C:rel,abs in -r mode;create append remove-files remfiles06 remfiles06c chdir; +201;remfiles07a.at:25;remove-files with -C:abs,rel in -c/non-incr. mode;create remove-files remfiles07 remfiles07a chdir; +202;remfiles07b.at:25;remove-files with -C:abs,rel in -c/incr. mode;create incremental remove-files remfiles07 remfiles07b chdir; +203;remfiles07c.at:25;remove-files with -C:abs,rel in -r mode;create append remove-files remfiles07 remfiles07c chdir; +204;remfiles08a.at:28;remove-files deleting two subdirs in -c/non-incr. mode;create remove-files remfiles08 remfiles08a chdir; +205;remfiles08b.at:31;remove-files deleting two subdirs in -c/incr. mode;create incremental remove-files remfiles08 remfiles08b chdir; +206;remfiles08c.at:28;remove-files deleting two subdirs in -r mode;create append remove-files remfiles08 remfiles08c chdir; +207;remfiles09a.at:25;remove-files on full directory in -c/non-incr. mode;create remove-files remfiles09 remfiles09a; +208;remfiles09b.at:29;remove-files on full directory in -c/incr. mode;create incremental remove-files remfiles09 remfiles09b; +209;remfiles09c.at:25;remove-files on full directory in -r mode;create append remove-files remfiles09 remfiles09c; +210;remfiles10.at:20;remove-files;create remove-files remfiles10; +211;xattr01.at:25;xattrs: basic functionality;xattrs xattr01; +212;xattr02.at:25;xattrs: change directory with -C option;xattrs xattr02 chdir; +213;xattr03.at:25;xattrs: trusted.* attributes;xattrs xattr03 chdir; +214;xattr04.at:26;xattrs: s/open/openat/ regression;xattrs xattr04 chdir; +215;xattr05.at:28;xattrs: keywords with '=' and '%';xattrs xattr05 chdir; +216;xattr06.at:27;xattrs: exclude xattrs on create ;xattrs xattr06; +217;xattr07.at:26;xattrs: xattrs and --skip-old-files;xattrs xattr07; +218;acls01.at:25;acls: basic functionality;xattrs acls acls01; +219;acls02.at:25;acls: work with -C;xattrs acls acls02 chdir; +220;acls03.at:30;acls: default ACLs;xattrs acls acls03 chdir; +221;selnx01.at:25;selinux: basic store/restore;xattrs selinux selnx01; +222;selacl01.at:25;acls/selinux: special files & fifos;xattrs selinux acls selacls01; +223;capabs_raw01.at:25;capabilities: binary store/restore;xattrs capabilities capabs_raw01; +224;onetop01.at:21;tar --one-top-level;extract onetop onetop01; +225;onetop02.at:21;tar --one-top-level --show-transformed;extract onetop onetop02; +226;onetop03.at:21;tar --one-top-level --transform;extract onetop onetop03; +227;onetop04.at:21;tar --one-top-level --transform;extract onetop onetop04; +228;onetop05.at:21;tar --one-top-level restoring permissions;extract onetop onetop05 chdir; +229;gtarfail.at:21;gtarfail;star gtarfail; +230;gtarfail2.at:21;gtarfail2;star gtarfail2; +231;multi-fail.at:21;multi-fail;star multivolume multiv multi-fail; +232;ustar-big-2g.at:21;ustar-big-2g;star ustar-big-2g largefile; +233;ustar-big-8g.at:21;ustar-big-8g;star ustar-big-8g largefile; +234;pax-big-10g.at:21;pax-big-10g;star pax-big-10g largefile; " # List of the all the test groups. at_groups_all=`$as_echo "$at_help_all" | sed 's/;.*//'` @@ -823,7 +837,7 @@ at_fn_validate_ranges () for at_grp do eval at_value=\$$at_grp - if test $at_value -lt 1 || test $at_value -gt 220; then + if test $at_value -lt 1 || test $at_value -gt 234; then $as_echo "invalid test group: $at_value" >&2 exit 1 fi @@ -1122,7 +1136,7 @@ fi # List of tests. if $at_list_p; then cat <<_ATEOF || at_write_fail=1 -GNU tar 1.30 test suite test groups: +GNU tar 1.32 test suite test groups: NUM: FILE-NAME:LINE TEST-GROUP-NAME KEYWORDS @@ -1163,7 +1177,7 @@ _ATEOF exit $at_write_fail fi if $at_version_p; then - $as_echo "$as_me (GNU tar 1.30)" && + $as_echo "$as_me (GNU tar 1.32)" && cat <<\_ATEOF || at_write_fail=1 Copyright (C) 2012 Free Software Foundation, Inc. @@ -1180,96 +1194,105 @@ case $at_groups in #( * ) at_print_banners=false ;; esac # Text for banner N, set to a single space once printed. -# Banner 1. testsuite.at:209 +# Banner 1. testsuite.at:207 +# Category starts at test group 3. +at_banner_text_1="Options" +# Banner 2. testsuite.at:212 # Category starts at test group 6. -at_banner_text_1="Option compatibility" -# Banner 2. testsuite.at:217 +at_banner_text_2="Option compatibility" +# Banner 3. testsuite.at:220 # Category starts at test group 12. -at_banner_text_2="Positional options" -# Banner 3. testsuite.at:223 -# Category starts at test group 16. -at_banner_text_3="The -T option" -# Banner 4. testsuite.at:237 -# Category starts at test group 29. -at_banner_text_4="Various options" -# Banner 5. testsuite.at:246 -# Category starts at test group 36. -at_banner_text_5="The --same-order option" -# Banner 6. testsuite.at:250 -# Category starts at test group 38. -at_banner_text_6="Append" -# Banner 7. testsuite.at:258 -# Category starts at test group 44. -at_banner_text_7="Transforms" -# Banner 8. testsuite.at:264 -# Category starts at test group 48. -at_banner_text_8="Exclude" +at_banner_text_3="Checkpoints" +# Banner 4. testsuite.at:240 +# Category starts at test group 17. +at_banner_text_4="Compression" +# Banner 5. testsuite.at:250 +# Category starts at test group 23. +at_banner_text_5="Positional options" +# Banner 6. testsuite.at:256 +# Category starts at test group 27. +at_banner_text_6="The -T option" +# Banner 7. testsuite.at:270 +# Category starts at test group 40. +at_banner_text_7="Various options" +# Banner 8. testsuite.at:279 +# Category starts at test group 47. +at_banner_text_8="The --same-order option" # Banner 9. testsuite.at:283 -# Category starts at test group 65. -at_banner_text_9="Deletions" -# Banner 10. testsuite.at:290 -# Category starts at test group 70. -at_banner_text_10="Extracting" -# Banner 11. testsuite.at:315 -# Category starts at test group 92. -at_banner_text_11="Comparing" -# Banner 12. testsuite.at:318 -# Category starts at test group 93. -at_banner_text_12="Volume label operations" -# Banner 13. testsuite.at:325 -# Category starts at test group 98. -at_banner_text_13="Incremental archives" -# Banner 14. testsuite.at:344 -# Category starts at test group 115. -at_banner_text_14="Files removed while archiving" -# Banner 15. testsuite.at:348 -# Category starts at test group 117. -at_banner_text_15="Directories removed while archiving" -# Banner 16. testsuite.at:352 -# Category starts at test group 119. -at_banner_text_16="Renames" -# Banner 17. testsuite.at:360 -# Category starts at test group 125. -at_banner_text_17="Ignore failing reads" -# Banner 18. testsuite.at:363 +# Category starts at test group 49. +at_banner_text_9="Append" +# Banner 10. testsuite.at:291 +# Category starts at test group 55. +at_banner_text_10="Transforms" +# Banner 11. testsuite.at:297 +# Category starts at test group 59. +at_banner_text_11="Exclude" +# Banner 12. testsuite.at:316 +# Category starts at test group 76. +at_banner_text_12="Deletions" +# Banner 13. testsuite.at:323 +# Category starts at test group 81. +at_banner_text_13="Extracting" +# Banner 14. testsuite.at:348 +# Category starts at test group 103. +at_banner_text_14="Comparing" +# Banner 15. testsuite.at:351 +# Category starts at test group 104. +at_banner_text_15="Volume label operations" +# Banner 16. testsuite.at:358 +# Category starts at test group 109. +at_banner_text_16="Incremental archives" +# Banner 17. testsuite.at:377 # Category starts at test group 126. -at_banner_text_18="Link handling" -# Banner 19. testsuite.at:369 +at_banner_text_17="Files removed while archiving" +# Banner 18. testsuite.at:381 +# Category starts at test group 128. +at_banner_text_18="Directories removed while archiving" +# Banner 19. testsuite.at:385 # Category starts at test group 130. -at_banner_text_19="Specific archive formats" -# Banner 20. testsuite.at:380 -# Category starts at test group 138. -at_banner_text_20="Multivolume archives" -# Banner 21. testsuite.at:392 -# Category starts at test group 148. -at_banner_text_21="Owner and Groups" -# Banner 22. testsuite.at:396 -# Category starts at test group 150. -at_banner_text_22="Sparse files" -# Banner 23. testsuite.at:409 +at_banner_text_19="Renames" +# Banner 20. testsuite.at:393 +# Category starts at test group 136. +at_banner_text_20="Ignore failing reads" +# Banner 21. testsuite.at:396 +# Category starts at test group 137. +at_banner_text_21="Link handling" +# Banner 22. testsuite.at:402 +# Category starts at test group 141. +at_banner_text_22="Specific archive formats" +# Banner 23. testsuite.at:413 +# Category starts at test group 149. +at_banner_text_23="Multivolume archives" +# Banner 24. testsuite.at:425 +# Category starts at test group 159. +at_banner_text_24="Owner and Groups" +# Banner 25. testsuite.at:429 # Category starts at test group 161. -at_banner_text_23="Updates" -# Banner 24. testsuite.at:415 -# Category starts at test group 165. -at_banner_text_24="Verifying the archive" -# Banner 25. testsuite.at:418 -# Category starts at test group 166. -at_banner_text_25="Volume operations" -# Banner 26. testsuite.at:422 -# Category starts at test group 168. -at_banner_text_26="" -# Banner 27. testsuite.at:432 +at_banner_text_25="Sparse files" +# Banner 26. testsuite.at:445 # Category starts at test group 175. -at_banner_text_27="Removing files after archiving" -# Banner 28. testsuite.at:456 -# Category starts at test group 197. -at_banner_text_28="Extended attributes" -# Banner 29. testsuite.at:474 -# Category starts at test group 210. -at_banner_text_29="One top level" -# Banner 30. testsuite.at:481 -# Category starts at test group 215. -at_banner_text_30="Star tests" +at_banner_text_26="Updates" +# Banner 27. testsuite.at:451 +# Category starts at test group 179. +at_banner_text_27="Verifying the archive" +# Banner 28. testsuite.at:454 +# Category starts at test group 180. +at_banner_text_28="Volume operations" +# Banner 29. testsuite.at:458 +# Category starts at test group 182. +at_banner_text_29="" +# Banner 30. testsuite.at:468 +# Category starts at test group 189. +at_banner_text_30="Removing files after archiving" +# Banner 31. testsuite.at:492 +# Category starts at test group 211. +at_banner_text_31="Extended attributes" +# Banner 32. testsuite.at:510 +# Category starts at test group 224. +at_banner_text_32="One top level" +# Banner 33. testsuite.at:517 +# Category starts at test group 229. +at_banner_text_33="Star tests" # Take any -C into account. if $at_change_dir ; then @@ -1430,11 +1453,11 @@ exec 5>>"$at_suite_log" # Banners and logs. $as_echo "## ------------------------ ## -## GNU tar 1.30 test suite. ## +## GNU tar 1.32 test suite. ## ## ------------------------ ##" { $as_echo "## ------------------------ ## -## GNU tar 1.30 test suite. ## +## GNU tar 1.32 test suite. ## ## ------------------------ ##" echo @@ -1679,7 +1702,7 @@ IFS=$as_save_IFS esac if test -f "$at_program_"; then { - $as_echo "$at_srcdir/testsuite.at:197: $at_program_ --version" + $as_echo "$at_srcdir/testsuite.at:199: $at_program_ --version" "$at_program_" --version </dev/null echo } >&5 2>&1 @@ -2278,7 +2301,7 @@ _ASBOX $as_echo "Please send $at_msg and all information you think might help: To: <bug-tar@gnu.org> - Subject: [GNU tar 1.30] $as_me: $at_fail_list${at_fail_list:+ failed${at_xpass_list:+, }}$at_xpass_list${at_xpass_list:+ passed unexpectedly} + Subject: [GNU tar 1.32] $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 @@ -2293,7 +2316,7 @@ exit 0 ## Actual tests. ## ## ------------- ## #AT_START_1 -at_fn_group_banner 1 'version.at:20' \ +at_fn_group_banner 1 'version.at:19' \ "tar version" " " at_xfail=no ( @@ -2302,17 +2325,17 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/version.at:22: tar --version | sed 1q" -at_fn_check_prepare_notrace 'a shell pipeline' "version.at:22" +$as_echo "$at_srcdir/version.at:21: tar --version | sed 1q" +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.30 +echo >>"$at_stdout"; $as_echo "tar (GNU tar) 1.32 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/version.at:22" +at_fn_check_status 0 $at_status "$at_srcdir/version.at:21" if $at_failed; then : cat >$XFAILFILE <<'_EOT' @@ -2334,7 +2357,7 @@ $at_traceon; } read at_status <"$at_status_file" #AT_STOP_1 #AT_START_2 -at_fn_group_banner 2 'pipe.at:30' \ +at_fn_group_banner 2 'pipe.at:29' \ "decompressing from stdin" " " at_xfail=no test -f $XFAILFILE && at_xfail=yes @@ -2348,7 +2371,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/pipe.at:34: +$as_echo "$at_srcdir/pipe.at:33: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -2371,7 +2394,7 @@ echo \"separator\" cmp orig/file1 directory/file1 echo \"separator\" cmp orig/file2 directory/file2)" -at_fn_check_prepare_notrace 'a `...` command substitution' "pipe.at:34" +at_fn_check_prepare_notrace 'a `...` command substitution' "pipe.at:33" ( $at_check_trace; mkdir v7 (cd v7 @@ -2406,12 +2429,12 @@ separator separator " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/pipe.at:34" +at_fn_check_status 0 $at_status "$at_srcdir/pipe.at:33" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/pipe.at:34: +$as_echo "$at_srcdir/pipe.at:33: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -2434,7 +2457,7 @@ echo \"separator\" cmp orig/file1 directory/file1 echo \"separator\" cmp orig/file2 directory/file2)" -at_fn_check_prepare_notrace 'a `...` command substitution' "pipe.at:34" +at_fn_check_prepare_notrace 'a `...` command substitution' "pipe.at:33" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -2469,12 +2492,12 @@ separator separator " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/pipe.at:34" +at_fn_check_status 0 $at_status "$at_srcdir/pipe.at:33" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/pipe.at:34: +$as_echo "$at_srcdir/pipe.at:33: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -2497,7 +2520,7 @@ echo \"separator\" cmp orig/file1 directory/file1 echo \"separator\" cmp orig/file2 directory/file2)" -at_fn_check_prepare_notrace 'a `...` command substitution' "pipe.at:34" +at_fn_check_prepare_notrace 'a `...` command substitution' "pipe.at:33" ( $at_check_trace; mkdir ustar (cd ustar @@ -2532,12 +2555,12 @@ separator separator " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/pipe.at:34" +at_fn_check_status 0 $at_status "$at_srcdir/pipe.at:33" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/pipe.at:34: +$as_echo "$at_srcdir/pipe.at:33: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -2560,7 +2583,7 @@ echo \"separator\" cmp orig/file1 directory/file1 echo \"separator\" cmp orig/file2 directory/file2)" -at_fn_check_prepare_notrace 'a `...` command substitution' "pipe.at:34" +at_fn_check_prepare_notrace 'a `...` command substitution' "pipe.at:33" ( $at_check_trace; mkdir posix (cd posix @@ -2595,12 +2618,12 @@ separator separator " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/pipe.at:34" +at_fn_check_status 0 $at_status "$at_srcdir/pipe.at:33" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/pipe.at:34: +$as_echo "$at_srcdir/pipe.at:33: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -2623,7 +2646,7 @@ echo \"separator\" cmp orig/file1 directory/file1 echo \"separator\" cmp orig/file2 directory/file2)" -at_fn_check_prepare_notrace 'a `...` command substitution' "pipe.at:34" +at_fn_check_prepare_notrace 'a `...` command substitution' "pipe.at:33" ( $at_check_trace; mkdir gnu (cd gnu @@ -2658,7 +2681,7 @@ separator separator " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/pipe.at:34" +at_fn_check_status 0 $at_status "$at_srcdir/pipe.at:33" $at_failed && at_fn_log_failure $at_traceon; } @@ -2671,8 +2694,8 @@ $at_traceon; } read at_status <"$at_status_file" #AT_STOP_2 #AT_START_3 -at_fn_group_banner 3 'options.at:25' \ - "mixing options" " " +at_fn_group_banner 3 'options.at:24' \ + "mixing options" " " 1 at_xfail=no ( $as_echo "3. $at_setup_line: testing $at_desc ..." @@ -2681,12 +2704,12 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/options.at:28: +$as_echo "$at_srcdir/options.at:27: echo > file1 TAR_OPTIONS=--numeric-owner tar chof archive file1 tar tf archive " -at_fn_check_prepare_notrace 'an embedded newline' "options.at:28" +at_fn_check_prepare_notrace 'an embedded newline' "options.at:27" ( $at_check_trace; echo > file1 TAR_OPTIONS=--numeric-owner tar chof archive file1 @@ -2699,7 +2722,7 @@ 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/options.at:28" +at_fn_check_status 0 $at_status "$at_srcdir/options.at:27" $at_failed && at_fn_log_failure $at_traceon; } @@ -2710,8 +2733,8 @@ $at_traceon; } read at_status <"$at_status_file" #AT_STOP_3 #AT_START_4 -at_fn_group_banner 4 'options02.at:27' \ - "interspersed options" " " +at_fn_group_banner 4 'options02.at:26' \ + "interspersed options" " " 1 at_xfail=no ( $as_echo "4. $at_setup_line: testing $at_desc ..." @@ -2720,12 +2743,12 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/options02.at:30: +$as_echo "$at_srcdir/options02.at:29: echo > file1 tar c file1 -f archive tar tf archive " -at_fn_check_prepare_notrace 'an embedded newline' "options02.at:30" +at_fn_check_prepare_notrace 'an embedded newline' "options02.at:29" ( $at_check_trace; echo > file1 tar c file1 -f archive @@ -2738,7 +2761,7 @@ 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/options02.at:30" +at_fn_check_status 0 $at_status "$at_srcdir/options02.at:29" $at_failed && at_fn_log_failure $at_traceon; } @@ -2750,7 +2773,7 @@ read at_status <"$at_status_file" #AT_STOP_4 #AT_START_5 at_fn_group_banner 5 'options03.at:21' \ - "TAR_OPTIONS with string arguments" " " + "TAR_OPTIONS with string arguments" " " 1 at_xfail=no ( $as_echo "5. $at_setup_line: testing $at_desc ..." @@ -2803,7 +2826,7 @@ read at_status <"$at_status_file" #AT_STOP_5 #AT_START_6 at_fn_group_banner 6 'opcomp01.at:21' \ - "occurrence compatibility" " " 1 + "occurrence compatibility" " " 2 at_xfail=no ( $as_echo "6. $at_setup_line: testing $at_desc ..." @@ -2839,7 +2862,7 @@ read at_status <"$at_status_file" #AT_STOP_6 #AT_START_7 at_fn_group_banner 7 'opcomp02.at:21' \ - "occurrence compatibility" " " 1 + "occurrence compatibility" " " 2 at_xfail=no ( $as_echo "7. $at_setup_line: testing $at_desc ..." @@ -2875,7 +2898,7 @@ read at_status <"$at_status_file" #AT_STOP_7 #AT_START_8 at_fn_group_banner 8 'opcomp03.at:21' \ - "--verify compatibility" " " 1 + "--verify compatibility" " " 2 at_xfail=no ( $as_echo "8. $at_setup_line: testing $at_desc ..." @@ -2911,7 +2934,7 @@ read at_status <"$at_status_file" #AT_STOP_8 #AT_START_9 at_fn_group_banner 9 'opcomp04.at:21' \ - "compress option compatibility" " " 1 + "compress option compatibility" " " 2 at_xfail=no ( $as_echo "9. $at_setup_line: testing $at_desc ..." @@ -2959,7 +2982,7 @@ read at_status <"$at_status_file" #AT_STOP_9 #AT_START_10 at_fn_group_banner 10 'opcomp05.at:21' \ - "--pax-option compatibility" " " 1 + "--pax-option compatibility" " " 2 at_xfail=no ( $as_echo "10. $at_setup_line: testing $at_desc ..." @@ -2995,7 +3018,7 @@ read at_status <"$at_status_file" #AT_STOP_10 #AT_START_11 at_fn_group_banner 11 'opcomp06.at:21' \ - "--pax-option compatibility" " " 1 + "--pax-option compatibility" " " 2 at_xfail=no ( $as_echo "11. $at_setup_line: testing $at_desc ..." @@ -3080,14 +3103,802 @@ $at_traceon; } read at_status <"$at_status_file" #AT_STOP_11 #AT_START_12 -at_fn_group_banner 12 'positional01.at:21' \ - "Exclude" " " 2 +at_fn_group_banner 12 'defaults.at:16' \ + "checkpoint defaults" " " 3 at_xfail=no ( $as_echo "12. $at_setup_line: testing $at_desc ..." $at_traceon +{ set +x +$as_echo "$at_srcdir/defaults.at:18: +mkdir t +cd t +for i in 0 1 2 3 4 5 6 7 8 9 +do + genfile --length 10240 --file \$i +done +TAR_OPTIONS=-Hgnu +export TAR_OPTIONS + +tar --checkpoint -c -f ../a.tar . + +" +at_fn_check_prepare_notrace 'an embedded newline' "defaults.at:18" +( $at_check_trace; +mkdir t +cd t +for i in 0 1 2 3 4 5 6 7 8 9 +do + genfile --length 10240 --file $i +done +TAR_OPTIONS=-Hgnu +export TAR_OPTIONS + +tar --checkpoint -c -f ../a.tar . + + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "tar: Write checkpoint 10 +" | \ + $at_diff - "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/defaults.at:18" +$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_12 +#AT_START_13 +at_fn_group_banner 13 'interval.at:16' \ + "checkpoint interval" " " 3 +at_xfail=no +( + $as_echo "13. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/interval.at:18: +mkdir t +cd t +for i in 0 1 2 3 4 5 6 7 8 9 +do + genfile --length 10240 --file \$i +done +TAR_OPTIONS=-Hgnu +export TAR_OPTIONS + +tar --checkpoint=2 -c -f ../a.tar . + +" +at_fn_check_prepare_notrace 'an embedded newline' "interval.at:18" +( $at_check_trace; +mkdir t +cd t +for i in 0 1 2 3 4 5 6 7 8 9 +do + genfile --length 10240 --file $i +done +TAR_OPTIONS=-Hgnu +export TAR_OPTIONS + +tar --checkpoint=2 -c -f ../a.tar . + + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "tar: Write checkpoint 2 +tar: Write checkpoint 4 +tar: Write checkpoint 6 +tar: Write checkpoint 8 +tar: Write checkpoint 10 +" | \ + $at_diff - "$at_stderr" || at_failed=: +at_fn_diff_devnull "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/interval.at:18" +$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_13 +#AT_START_14 +at_fn_group_banner 14 'dot.at:16' \ + "dot action" " " 3 +at_xfail=no +( + $as_echo "14. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/dot.at:18: +mkdir t +cd t +for i in 0 1 2 3 4 5 6 7 8 9 +do + genfile --length 10240 --file \$i +done +TAR_OPTIONS=-Hgnu +export TAR_OPTIONS + +tar --checkpoint-action=dot -c -f ../a.tar . + +" +at_fn_check_prepare_notrace 'an embedded newline' "dot.at:18" +( $at_check_trace; +mkdir t +cd t +for i in 0 1 2 3 4 5 6 7 8 9 +do + genfile --length 10240 --file $i +done +TAR_OPTIONS=-Hgnu +export TAR_OPTIONS + +tar --checkpoint-action=dot -c -f ../a.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 "." | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/dot.at:18" +$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_14 +#AT_START_15 +at_fn_group_banner 15 'dot-compat.at:16' \ + "dot action (compatibility syntax)" " " 3 +at_xfail=no +( + $as_echo "15. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/dot-compat.at:18: +mkdir t +cd t +for i in 0 1 2 3 4 5 6 7 8 9 +do + genfile --length 10240 --file \$i +done +TAR_OPTIONS=-Hgnu +export TAR_OPTIONS + +tar --checkpoint=.2 -c -f ../a.tar . + +" +at_fn_check_prepare_notrace 'an embedded newline' "dot-compat.at:18" +( $at_check_trace; +mkdir t +cd t +for i in 0 1 2 3 4 5 6 7 8 9 +do + genfile --length 10240 --file $i +done +TAR_OPTIONS=-Hgnu +export TAR_OPTIONS + +tar --checkpoint=.2 -c -f ../a.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 "....." | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/dot-compat.at:18" +$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_15 +#AT_START_16 +at_fn_group_banner 16 'dot-int.at:16' \ + "dot action and interval" " " 3 +at_xfail=no +( + $as_echo "16. $at_setup_line: testing $at_desc ..." + $at_traceon + + +{ set +x +$as_echo "$at_srcdir/dot-int.at:18: +mkdir t +cd t +for i in 0 1 2 3 4 5 6 7 8 9 +do + genfile --length 10240 --file \$i +done +TAR_OPTIONS=-Hgnu +export TAR_OPTIONS + +tar --checkpoint-action=dot --checkpoint=2 -c -f ../a.tar . + +" +at_fn_check_prepare_notrace 'an embedded newline' "dot-int.at:18" +( $at_check_trace; +mkdir t +cd t +for i in 0 1 2 3 4 5 6 7 8 9 +do + genfile --length 10240 --file $i +done +TAR_OPTIONS=-Hgnu +export TAR_OPTIONS + +tar --checkpoint-action=dot --checkpoint=2 -c -f ../a.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 "....." | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/dot-int.at:18" +$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_16 +#AT_START_17 +at_fn_group_banner 17 'testsuite.at:242' \ + "compress: gzip" " " 4 +at_xfail=no +( + $as_echo "17. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +{ set +x +$as_echo "$at_srcdir/testsuite.at:242: + +cat /dev/null | gzip - > /dev/null 2>&1 || exit 77 + +unset TAR_OPTIONS + +touch empty +set -e +: create with --gzip +tar --gzip -cf k.tar.gz empty +tar tf k.tar.gz + + +echo testing .gz +tar -acf k2.tar.gz empty +cat k2.tar.gz | gzip -d > k.gz.tar +tar tf k.gz.tar + +echo testing .tgz +tar -acf k2.tar.tgz empty +cat k2.tar.tgz | gzip -d > k.tgz.tar +tar tf k.tgz.tar + + +# Extraction: ensure compressed format is correctly recognized +rm -f empty +tar xf k.tar.gz +test -f empty +" +at_fn_check_prepare_notrace 'an embedded newline' "testsuite.at:242" +( $at_check_trace; + +cat /dev/null | gzip - > /dev/null 2>&1 || exit 77 + +unset TAR_OPTIONS + +touch empty +set -e +: create with --gzip +tar --gzip -cf k.tar.gz empty +tar tf k.tar.gz + + +echo testing .gz +tar -acf k2.tar.gz empty +cat k2.tar.gz | gzip -d > k.gz.tar +tar tf k.gz.tar + +echo testing .tgz +tar -acf k2.tar.tgz empty +cat k2.tar.tgz | gzip -d > k.tgz.tar +tar tf k.tgz.tar + + +# Extraction: ensure compressed format is correctly recognized +rm -f empty +tar xf k.tar.gz +test -f empty + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "empty +testing .gz +empty +testing .tgz +empty +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:242" +$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_17 +#AT_START_18 +at_fn_group_banner 18 'testsuite.at:243' \ + "compress: bzip2" " " 4 +at_xfail=no +( + $as_echo "18. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +{ set +x +$as_echo "$at_srcdir/testsuite.at:243: + +cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77 + +unset TAR_OPTIONS + +touch empty +set -e +: create with --bzip2 +tar --bzip2 -cf k.tar.bz2 empty +tar tf k.tar.bz2 + + +echo testing .bz2 +tar -acf k2.tar.bz2 empty +cat k2.tar.bz2 | bzip2 -d > k.bz2.tar +tar tf k.bz2.tar + +echo testing .tbz2 +tar -acf k2.tar.tbz2 empty +cat k2.tar.tbz2 | bzip2 -d > k.tbz2.tar +tar tf k.tbz2.tar + + +# Extraction: ensure compressed format is correctly recognized +rm -f empty +tar xf k.tar.bz2 +test -f empty +" +at_fn_check_prepare_notrace 'an embedded newline' "testsuite.at:243" +( $at_check_trace; + +cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77 + +unset TAR_OPTIONS + +touch empty +set -e +: create with --bzip2 +tar --bzip2 -cf k.tar.bz2 empty +tar tf k.tar.bz2 + + +echo testing .bz2 +tar -acf k2.tar.bz2 empty +cat k2.tar.bz2 | bzip2 -d > k.bz2.tar +tar tf k.bz2.tar + +echo testing .tbz2 +tar -acf k2.tar.tbz2 empty +cat k2.tar.tbz2 | bzip2 -d > k.tbz2.tar +tar tf k.tbz2.tar + + +# Extraction: ensure compressed format is correctly recognized +rm -f empty +tar xf k.tar.bz2 +test -f empty + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "empty +testing .bz2 +empty +testing .tbz2 +empty +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:243" +$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_18 +#AT_START_19 +at_fn_group_banner 19 'testsuite.at:244' \ + "compress: xz" " " 4 +at_xfail=no +( + $as_echo "19. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +{ set +x +$as_echo "$at_srcdir/testsuite.at:244: + +cat /dev/null | xz - > /dev/null 2>&1 || exit 77 + +unset TAR_OPTIONS + +touch empty +set -e +: create with --xz +tar --xz -cf k.tar.xz empty +tar tf k.tar.xz + + +echo testing .xz +tar -acf k2.tar.xz empty +cat k2.tar.xz | xz -d > k.xz.tar +tar tf k.xz.tar + +echo testing .txz +tar -acf k2.tar.txz empty +cat k2.tar.txz | xz -d > k.txz.tar +tar tf k.txz.tar + + +# Extraction: ensure compressed format is correctly recognized +rm -f empty +tar xf k.tar.xz +test -f empty +" +at_fn_check_prepare_notrace 'an embedded newline' "testsuite.at:244" +( $at_check_trace; + +cat /dev/null | xz - > /dev/null 2>&1 || exit 77 + +unset TAR_OPTIONS + +touch empty +set -e +: create with --xz +tar --xz -cf k.tar.xz empty +tar tf k.tar.xz + + +echo testing .xz +tar -acf k2.tar.xz empty +cat k2.tar.xz | xz -d > k.xz.tar +tar tf k.xz.tar + +echo testing .txz +tar -acf k2.tar.txz empty +cat k2.tar.txz | xz -d > k.txz.tar +tar tf k.txz.tar + + +# Extraction: ensure compressed format is correctly recognized +rm -f empty +tar xf k.tar.xz +test -f empty + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "empty +testing .xz +empty +testing .txz +empty +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:244" +$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_19 +#AT_START_20 +at_fn_group_banner 20 'testsuite.at:246' \ + "compress: lzip" " " 4 +at_xfail=no +( + $as_echo "20. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +{ set +x +$as_echo "$at_srcdir/testsuite.at:246: + +cat /dev/null | lzip - > /dev/null 2>&1 || exit 77 + +unset TAR_OPTIONS + +touch empty +set -e +: create with --lzip +tar --lzip -cf k.tar.lz empty +tar tf k.tar.lz + + +echo testing .lz +tar -acf k2.tar.lz empty +cat k2.tar.lz | lzip -d > k.lz.tar +tar tf k.lz.tar + + +# Extraction: ensure compressed format is correctly recognized +rm -f empty +tar xf k.tar.lz +test -f empty +" +at_fn_check_prepare_notrace 'an embedded newline' "testsuite.at:246" +( $at_check_trace; + +cat /dev/null | lzip - > /dev/null 2>&1 || exit 77 + +unset TAR_OPTIONS + +touch empty +set -e +: create with --lzip +tar --lzip -cf k.tar.lz empty +tar tf k.tar.lz + + +echo testing .lz +tar -acf k2.tar.lz empty +cat k2.tar.lz | lzip -d > k.lz.tar +tar tf k.lz.tar + + +# Extraction: ensure compressed format is correctly recognized +rm -f empty +tar xf k.tar.lz +test -f empty + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "empty +testing .lz +empty +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:246" +$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_20 +#AT_START_21 +at_fn_group_banner 21 'testsuite.at:247' \ + "compress: lzop" " " 4 +at_xfail=no +( + $as_echo "21. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +{ set +x +$as_echo "$at_srcdir/testsuite.at:247: + +cat /dev/null | lzop - > /dev/null 2>&1 || exit 77 + +unset TAR_OPTIONS + +touch empty +set -e +: create with --lzop +tar --lzop -cf k.tar.lzo empty +tar tf k.tar.lzo + + +echo testing .lzo +tar -acf k2.tar.lzo empty +cat k2.tar.lzo | lzop -d > k.lzo.tar +tar tf k.lzo.tar + + +# Extraction: ensure compressed format is correctly recognized +rm -f empty +tar xf k.tar.lzo +test -f empty +" +at_fn_check_prepare_notrace 'an embedded newline' "testsuite.at:247" +( $at_check_trace; + +cat /dev/null | lzop - > /dev/null 2>&1 || exit 77 + +unset TAR_OPTIONS + +touch empty +set -e +: create with --lzop +tar --lzop -cf k.tar.lzo empty +tar tf k.tar.lzo + + +echo testing .lzo +tar -acf k2.tar.lzo empty +cat k2.tar.lzo | lzop -d > k.lzo.tar +tar tf k.lzo.tar + + +# Extraction: ensure compressed format is correctly recognized +rm -f empty +tar xf k.tar.lzo +test -f empty + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "empty +testing .lzo +empty +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:247" +$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_21 +#AT_START_22 +at_fn_group_banner 22 'testsuite.at:248' \ + "compress: zstd" " " 4 +at_xfail=no +( + $as_echo "22. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +{ set +x +$as_echo "$at_srcdir/testsuite.at:248: + +cat /dev/null | zstd - > /dev/null 2>&1 || exit 77 + +unset TAR_OPTIONS + +touch empty +set -e +: create with --zstd +tar --zstd -cf k.tar.zst empty +tar tf k.tar.zst + + +echo testing .zst +tar -acf k2.tar.zst empty +cat k2.tar.zst | zstd -d > k.zst.tar +tar tf k.zst.tar + +echo testing .tzst +tar -acf k2.tar.tzst empty +cat k2.tar.tzst | zstd -d > k.tzst.tar +tar tf k.tzst.tar + + +# Extraction: ensure compressed format is correctly recognized +rm -f empty +tar xf k.tar.zst +test -f empty +" +at_fn_check_prepare_notrace 'an embedded newline' "testsuite.at:248" +( $at_check_trace; + +cat /dev/null | zstd - > /dev/null 2>&1 || exit 77 + +unset TAR_OPTIONS + +touch empty +set -e +: create with --zstd +tar --zstd -cf k.tar.zst empty +tar tf k.tar.zst + + +echo testing .zst +tar -acf k2.tar.zst empty +cat k2.tar.zst | zstd -d > k.zst.tar +tar tf k.zst.tar + +echo testing .tzst +tar -acf k2.tar.tzst empty +cat k2.tar.tzst | zstd -d > k.tzst.tar +tar tf k.tzst.tar + + +# Extraction: ensure compressed format is correctly recognized +rm -f empty +tar xf k.tar.zst +test -f empty + +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +at_fn_diff_devnull "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "empty +testing .zst +empty +testing .tzst +empty +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/testsuite.at:248" +$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_22 +#AT_START_23 +at_fn_group_banner 23 'positional01.at:21' \ + "Exclude" " " 5 +at_xfail=no +( + $as_echo "23. $at_setup_line: testing $at_desc ..." + $at_traceon + + { set +x $as_echo "$at_srcdir/positional01.at:24: @@ -3149,13 +3960,13 @@ $at_traceon; } $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 'positional02.at:21' \ - "Directory" " " 2 +#AT_STOP_23 +#AT_START_24 +at_fn_group_banner 24 'positional02.at:21' \ + "Directory" " " 5 at_xfail=no ( - $as_echo "13. $at_setup_line: testing $at_desc ..." + $as_echo "24. $at_setup_line: testing $at_desc ..." $at_traceon @@ -3213,13 +4024,13 @@ $at_traceon; } $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 'positional03.at:21' \ - "Several options" " " 2 +#AT_STOP_24 +#AT_START_25 +at_fn_group_banner 25 'positional03.at:21' \ + "Several options" " " 5 at_xfail=no ( - $as_echo "14. $at_setup_line: testing $at_desc ..." + $as_echo "25. $at_setup_line: testing $at_desc ..." $at_traceon @@ -3274,14 +4085,14 @@ $at_traceon; } $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 'add-file.at:21' \ - "The --add-file option" " " 2 +#AT_STOP_25 +#AT_START_26 +at_fn_group_banner 26 'add-file.at:21' \ + "The --add-file option" " " 5 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "15. $at_setup_line: testing $at_desc ..." + $as_echo "26. $at_setup_line: testing $at_desc ..." $at_traceon @@ -3719,14 +4530,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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-mult.at:21' \ - "multiple file lists" " " 3 +#AT_STOP_26 +#AT_START_27 +at_fn_group_banner 27 'T-mult.at:21' \ + "multiple file lists" " " 6 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "16. $at_setup_line: testing $at_desc ..." + $as_echo "27. $at_setup_line: testing $at_desc ..." $at_traceon @@ -3808,14 +4619,14 @@ $at_traceon; } $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-nest.at:21' \ - "nested file lists" " " 3 +#AT_STOP_27 +#AT_START_28 +at_fn_group_banner 28 'T-nest.at:21' \ + "nested file lists" " " 6 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "17. $at_setup_line: testing $at_desc ..." + $as_echo "28. $at_setup_line: testing $at_desc ..." $at_traceon @@ -3899,14 +4710,14 @@ $at_traceon; } $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-rec.at:21' \ - "recursive file lists" " " 3 +#AT_STOP_28 +#AT_START_29 +at_fn_group_banner 29 'T-rec.at:21' \ + "recursive file lists" " " 6 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "18. $at_setup_line: testing $at_desc ..." + $as_echo "29. $at_setup_line: testing $at_desc ..." $at_traceon @@ -3988,14 +4799,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'T-recurse.at:27' \ - "files-from & recurse: toggle" " " 3 +#AT_STOP_29 +#AT_START_30 +at_fn_group_banner 30 'T-recurse.at:27' \ + "files-from & recurse: toggle" " " 6 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "19. $at_setup_line: testing $at_desc ..." + $as_echo "30. $at_setup_line: testing $at_desc ..." $at_traceon @@ -4479,14 +5290,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'T-recurse.at:66' \ - "toggle --recursion (not) from -T" " " 3 +#AT_STOP_30 +#AT_START_31 +at_fn_group_banner 31 'T-recurse.at:66' \ + "toggle --recursion (not) from -T" " " 6 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "20. $at_setup_line: testing $at_desc ..." + $as_echo "31. $at_setup_line: testing $at_desc ..." $at_traceon @@ -4845,14 +5656,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'T-cd.at:21' \ - "-C in file lists" " " 3 +#AT_STOP_31 +#AT_START_32 +at_fn_group_banner 32 'T-cd.at:21' \ + "-C in file lists" " " 6 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "21. $at_setup_line: testing $at_desc ..." + $as_echo "32. $at_setup_line: testing $at_desc ..." $at_traceon @@ -4932,14 +5743,14 @@ $at_traceon; } $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 'T-empty.at:27' \ - "empty entries" " " 3 +#AT_STOP_32 +#AT_START_33 +at_fn_group_banner 33 'T-empty.at:26' \ + "empty entries" " " 6 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "22. $at_setup_line: testing $at_desc ..." + $as_echo "33. $at_setup_line: testing $at_desc ..." $at_traceon @@ -4955,7 +5766,7 @@ _ATEOF { set +x -$as_echo "$at_srcdir/T-empty.at:37: +$as_echo "$at_srcdir/T-empty.at:36: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -4971,7 +5782,7 @@ genfile --file trzy tar cfvT archive ../file-list )" -at_fn_check_prepare_notrace 'an embedded newline' "T-empty.at:37" +at_fn_check_prepare_notrace 'an embedded newline' "T-empty.at:36" ( $at_check_trace; mkdir ustar (cd ustar @@ -4997,7 +5808,7 @@ dwa trzy " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/T-empty.at:37" +at_fn_check_status 0 $at_status "$at_srcdir/T-empty.at:36" $at_failed && at_fn_log_failure $at_traceon; } @@ -5008,14 +5819,14 @@ $at_traceon; } $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 'T-null.at:22' \ - "0-separated file without -0" " " 3 +#AT_STOP_33 +#AT_START_34 +at_fn_group_banner 34 'T-null.at:21' \ + "0-separated file without -0" " " 6 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "23. $at_setup_line: testing $at_desc ..." + $as_echo "34. $at_setup_line: testing $at_desc ..." $at_traceon @@ -5023,7 +5834,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/T-null.at:25: +$as_echo "$at_srcdir/T-null.at:24: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -5047,7 +5858,7 @@ genfile -f trzy tar cfTv archive file-list )" -at_fn_check_prepare_notrace 'a `...` command substitution' "T-null.at:25" +at_fn_check_prepare_notrace 'a `...` command substitution' "T-null.at:24" ( $at_check_trace; mkdir ustar (cd ustar @@ -5083,7 +5894,7 @@ dwa trzy " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/T-null.at:25" +at_fn_check_status 0 $at_status "$at_srcdir/T-null.at:24" $at_failed && at_fn_log_failure $at_traceon; } @@ -5094,14 +5905,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'T-null2.at:17' \ - "--null enables verbatim reading" " " 3 +#AT_STOP_34 +#AT_START_35 +at_fn_group_banner 35 'T-null2.at:17' \ + "--null enables verbatim reading" " " 6 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "24. $at_setup_line: testing $at_desc ..." + $as_echo "35. $at_setup_line: testing $at_desc ..." $at_traceon @@ -5183,14 +5994,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'T-zfile.at:26' \ - "empty file" " " 3 +#AT_STOP_35 +#AT_START_36 +at_fn_group_banner 36 'T-zfile.at:26' \ + "empty file" " " 6 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "25. $at_setup_line: testing $at_desc ..." + $as_echo "36. $at_setup_line: testing $at_desc ..." $at_traceon @@ -5269,14 +6080,14 @@ $at_traceon; } $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 'T-nonl.at:27' \ - "entries with missing newlines" " " 3 +#AT_STOP_36 +#AT_START_37 +at_fn_group_banner 37 'T-nonl.at:27' \ + "entries with missing newlines" " " 6 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "26. $at_setup_line: testing $at_desc ..." + $as_echo "37. $at_setup_line: testing $at_desc ..." $at_traceon @@ -5294,9 +6105,8 @@ export TAR_OPTIONS rm -rf * genfile --length=0 --file empty -\$as_echo_n c > 1.nonl -echo d > 2.nonl -\$as_echo_n e >> 2.nonl +printf c > 1.nonl +printf 'd\\ne' > 2.nonl touch a b c d e cat >filelist <<'_ATEOF' a @@ -5321,9 +6131,8 @@ export TAR_OPTIONS rm -rf * genfile --length=0 --file empty -$as_echo_n c > 1.nonl -echo d > 2.nonl -$as_echo_n e >> 2.nonl +printf c > 1.nonl +printf 'd\ne' > 2.nonl touch a b c d e cat >filelist <<'_ATEOF' a @@ -5365,14 +6174,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'T-dir00.at:28' \ - "recursive extraction from --files-from" " " 3 +#AT_STOP_37 +#AT_START_38 +at_fn_group_banner 38 'T-dir00.at:28' \ + "recursive extraction from --files-from" " " 6 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "27. $at_setup_line: testing $at_desc ..." + $as_echo "38. $at_setup_line: testing $at_desc ..." $at_traceon @@ -5659,14 +6468,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'T-dir01.at:28' \ - "trailing slash in --files-from" " " 3 +#AT_STOP_38 +#AT_START_39 +at_fn_group_banner 39 'T-dir01.at:28' \ + "trailing slash in --files-from" " " 6 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "28. $at_setup_line: testing $at_desc ..." + $as_echo "39. $at_setup_line: testing $at_desc ..." $at_traceon @@ -5953,14 +6762,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'indexfile.at:27' \ - "tar --index-file=FILE --file=-" " " 4 +#AT_STOP_39 +#AT_START_40 +at_fn_group_banner 40 'indexfile.at:26' \ + "tar --index-file=FILE --file=-" " " 7 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "29. $at_setup_line: testing $at_desc ..." + $as_echo "40. $at_setup_line: testing $at_desc ..." $at_traceon @@ -5968,7 +6777,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/indexfile.at:30: +$as_echo "$at_srcdir/indexfile.at:29: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -5987,7 +6796,7 @@ 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:30" +at_fn_check_prepare_notrace 'an embedded newline' "indexfile.at:29" ( $at_check_trace; mkdir v7 (cd v7 @@ -6017,12 +6826,12 @@ directory/ directory/a " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/indexfile.at:30" +at_fn_check_status 0 $at_status "$at_srcdir/indexfile.at:29" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/indexfile.at:30: +$as_echo "$at_srcdir/indexfile.at:29: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -6041,7 +6850,7 @@ 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:30" +at_fn_check_prepare_notrace 'an embedded newline' "indexfile.at:29" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -6071,12 +6880,12 @@ directory/ directory/a " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/indexfile.at:30" +at_fn_check_status 0 $at_status "$at_srcdir/indexfile.at:29" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/indexfile.at:30: +$as_echo "$at_srcdir/indexfile.at:29: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -6095,7 +6904,7 @@ 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:30" +at_fn_check_prepare_notrace 'an embedded newline' "indexfile.at:29" ( $at_check_trace; mkdir ustar (cd ustar @@ -6125,12 +6934,12 @@ directory/ directory/a " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/indexfile.at:30" +at_fn_check_status 0 $at_status "$at_srcdir/indexfile.at:29" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/indexfile.at:30: +$as_echo "$at_srcdir/indexfile.at:29: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -6149,7 +6958,7 @@ 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:30" +at_fn_check_prepare_notrace 'an embedded newline' "indexfile.at:29" ( $at_check_trace; mkdir posix (cd posix @@ -6179,12 +6988,12 @@ directory/ directory/a " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/indexfile.at:30" +at_fn_check_status 0 $at_status "$at_srcdir/indexfile.at:29" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/indexfile.at:30: +$as_echo "$at_srcdir/indexfile.at:29: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -6203,7 +7012,7 @@ 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:30" +at_fn_check_prepare_notrace 'an embedded newline' "indexfile.at:29" ( $at_check_trace; mkdir gnu (cd gnu @@ -6233,7 +7042,7 @@ directory/ directory/a " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/indexfile.at:30" +at_fn_check_status 0 $at_status "$at_srcdir/indexfile.at:29" $at_failed && at_fn_log_failure $at_traceon; } @@ -6244,14 +7053,14 @@ $at_traceon; } $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 'verbose.at:27' \ - "tar cvf -" " " 4 +#AT_STOP_40 +#AT_START_41 +at_fn_group_banner 41 'verbose.at:26' \ + "tar cvf -" " " 7 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "30. $at_setup_line: testing $at_desc ..." + $as_echo "41. $at_setup_line: testing $at_desc ..." $at_traceon @@ -6259,7 +7068,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/verbose.at:30: +$as_echo "$at_srcdir/verbose.at:29: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -6274,7 +7083,7 @@ tar cvf - file > archive echo Testing the archive tar tf archive )" -at_fn_check_prepare_notrace 'an embedded newline' "verbose.at:30" +at_fn_check_prepare_notrace 'an embedded newline' "verbose.at:29" ( $at_check_trace; mkdir v7 (cd v7 @@ -6301,12 +7110,12 @@ Testing the archive file " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/verbose.at:30" +at_fn_check_status 0 $at_status "$at_srcdir/verbose.at:29" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/verbose.at:30: +$as_echo "$at_srcdir/verbose.at:29: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -6321,7 +7130,7 @@ tar cvf - file > archive echo Testing the archive tar tf archive )" -at_fn_check_prepare_notrace 'an embedded newline' "verbose.at:30" +at_fn_check_prepare_notrace 'an embedded newline' "verbose.at:29" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -6348,12 +7157,12 @@ Testing the archive file " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/verbose.at:30" +at_fn_check_status 0 $at_status "$at_srcdir/verbose.at:29" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/verbose.at:30: +$as_echo "$at_srcdir/verbose.at:29: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -6368,7 +7177,7 @@ tar cvf - file > archive echo Testing the archive tar tf archive )" -at_fn_check_prepare_notrace 'an embedded newline' "verbose.at:30" +at_fn_check_prepare_notrace 'an embedded newline' "verbose.at:29" ( $at_check_trace; mkdir ustar (cd ustar @@ -6395,12 +7204,12 @@ Testing the archive file " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/verbose.at:30" +at_fn_check_status 0 $at_status "$at_srcdir/verbose.at:29" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/verbose.at:30: +$as_echo "$at_srcdir/verbose.at:29: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -6415,7 +7224,7 @@ tar cvf - file > archive echo Testing the archive tar tf archive )" -at_fn_check_prepare_notrace 'an embedded newline' "verbose.at:30" +at_fn_check_prepare_notrace 'an embedded newline' "verbose.at:29" ( $at_check_trace; mkdir posix (cd posix @@ -6442,12 +7251,12 @@ Testing the archive file " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/verbose.at:30" +at_fn_check_status 0 $at_status "$at_srcdir/verbose.at:29" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/verbose.at:30: +$as_echo "$at_srcdir/verbose.at:29: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -6462,7 +7271,7 @@ tar cvf - file > archive echo Testing the archive tar tf archive )" -at_fn_check_prepare_notrace 'an embedded newline' "verbose.at:30" +at_fn_check_prepare_notrace 'an embedded newline' "verbose.at:29" ( $at_check_trace; mkdir gnu (cd gnu @@ -6489,7 +7298,7 @@ Testing the archive file " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/verbose.at:30" +at_fn_check_status 0 $at_status "$at_srcdir/verbose.at:29" $at_failed && at_fn_log_failure $at_traceon; } @@ -6500,13 +7309,13 @@ $at_traceon; } $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 'gzip.at:24' \ - "gzip" " " 4 +#AT_STOP_41 +#AT_START_42 +at_fn_group_banner 42 'gzip.at:23' \ + "gzip" " " 7 at_xfail=no ( - $as_echo "31. $at_setup_line: testing $at_desc ..." + $as_echo "42. $at_setup_line: testing $at_desc ..." $at_traceon @@ -6514,7 +7323,7 @@ at_xfail=no unset TAR_OPTIONS { set +x -$as_echo "$at_srcdir/gzip.at:29: +$as_echo "$at_srcdir/gzip.at:28: cat /dev/null | gzip - > /dev/null 2>&1 || exit 77 @@ -6523,7 +7332,7 @@ RC=\$? sed -n '/^tar:/p' err >&2 exit \$RC " -at_fn_check_prepare_notrace 'an embedded newline' "gzip.at:29" +at_fn_check_prepare_notrace 'an embedded newline' "gzip.at:28" ( $at_check_trace; cat /dev/null | gzip - > /dev/null 2>&1 || exit 77 @@ -6541,7 +7350,7 @@ 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:29" +at_fn_check_status 2 $at_status "$at_srcdir/gzip.at:28" $at_failed && at_fn_log_failure $at_traceon; } @@ -6550,14 +7359,14 @@ $at_traceon; } $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 'recurse.at:22' \ - "recurse" " " 4 +#AT_STOP_42 +#AT_START_43 +at_fn_group_banner 43 'recurse.at:21' \ + "recurse" " " 7 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "32. $at_setup_line: testing $at_desc ..." + $as_echo "43. $at_setup_line: testing $at_desc ..." $at_traceon @@ -6565,7 +7374,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/recurse.at:25: +$as_echo "$at_srcdir/recurse.at:24: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -6579,7 +7388,7 @@ 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:25" +at_fn_check_prepare_notrace 'an embedded newline' "recurse.at:24" ( $at_check_trace; mkdir v7 (cd v7 @@ -6601,12 +7410,12 @@ 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:25" +at_fn_check_status 0 $at_status "$at_srcdir/recurse.at:24" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/recurse.at:25: +$as_echo "$at_srcdir/recurse.at:24: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -6620,7 +7429,7 @@ 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:25" +at_fn_check_prepare_notrace 'an embedded newline' "recurse.at:24" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -6642,12 +7451,12 @@ 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:25" +at_fn_check_status 0 $at_status "$at_srcdir/recurse.at:24" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/recurse.at:25: +$as_echo "$at_srcdir/recurse.at:24: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -6661,7 +7470,7 @@ 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:25" +at_fn_check_prepare_notrace 'an embedded newline' "recurse.at:24" ( $at_check_trace; mkdir ustar (cd ustar @@ -6683,12 +7492,12 @@ 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:25" +at_fn_check_status 0 $at_status "$at_srcdir/recurse.at:24" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/recurse.at:25: +$as_echo "$at_srcdir/recurse.at:24: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -6702,7 +7511,7 @@ 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:25" +at_fn_check_prepare_notrace 'an embedded newline' "recurse.at:24" ( $at_check_trace; mkdir posix (cd posix @@ -6724,12 +7533,12 @@ 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:25" +at_fn_check_status 0 $at_status "$at_srcdir/recurse.at:24" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/recurse.at:25: +$as_echo "$at_srcdir/recurse.at:24: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -6743,7 +7552,7 @@ 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:25" +at_fn_check_prepare_notrace 'an embedded newline' "recurse.at:24" ( $at_check_trace; mkdir gnu (cd gnu @@ -6765,7 +7574,7 @@ 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:25" +at_fn_check_status 0 $at_status "$at_srcdir/recurse.at:24" $at_failed && at_fn_log_failure $at_traceon; } @@ -6776,14 +7585,14 @@ $at_traceon; } $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 'recurs02.at:30' \ - "recurse: toggle" " " 4 +#AT_STOP_43 +#AT_START_44 +at_fn_group_banner 44 'recurs02.at:30' \ + "recurse: toggle" " " 7 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "33. $at_setup_line: testing $at_desc ..." + $as_echo "44. $at_setup_line: testing $at_desc ..." $at_traceon @@ -7087,14 +7896,14 @@ $at_traceon; } $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 'shortrec.at:26' \ - "short records" " " 4 +#AT_STOP_44 +#AT_START_45 +at_fn_group_banner 45 'shortrec.at:25' \ + "short records" " " 7 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "34. $at_setup_line: testing $at_desc ..." + $as_echo "45. $at_setup_line: testing $at_desc ..." $at_traceon @@ -7102,7 +7911,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/shortrec.at:29: +$as_echo "$at_srcdir/shortrec.at:28: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -7120,7 +7929,7 @@ tar -t -f - < archive > /dev/null rm -r directory )" -at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:29" +at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:28" ( $at_check_trace; mkdir v7 (cd v7 @@ -7144,12 +7953,12 @@ 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:29" +at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:28" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/shortrec.at:29: +$as_echo "$at_srcdir/shortrec.at:28: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -7167,7 +7976,7 @@ tar -t -f - < archive > /dev/null rm -r directory )" -at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:29" +at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:28" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -7191,12 +8000,12 @@ 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:29" +at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:28" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/shortrec.at:29: +$as_echo "$at_srcdir/shortrec.at:28: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -7214,7 +8023,7 @@ tar -t -f - < archive > /dev/null rm -r directory )" -at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:29" +at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:28" ( $at_check_trace; mkdir ustar (cd ustar @@ -7238,12 +8047,12 @@ 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:29" +at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:28" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/shortrec.at:29: +$as_echo "$at_srcdir/shortrec.at:28: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -7261,7 +8070,7 @@ tar -t -f - < archive > /dev/null rm -r directory )" -at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:29" +at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:28" ( $at_check_trace; mkdir posix (cd posix @@ -7285,12 +8094,12 @@ 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:29" +at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:28" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/shortrec.at:29: +$as_echo "$at_srcdir/shortrec.at:28: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -7308,7 +8117,7 @@ tar -t -f - < archive > /dev/null rm -r directory )" -at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:29" +at_fn_check_prepare_notrace 'an embedded newline' "shortrec.at:28" ( $at_check_trace; mkdir gnu (cd gnu @@ -7332,7 +8141,7 @@ 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:29" +at_fn_check_status 0 $at_status "$at_srcdir/shortrec.at:28" $at_failed && at_fn_log_failure $at_traceon; } @@ -7343,14 +8152,14 @@ $at_traceon; } $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 'numeric.at:18' \ - "--numeric-owner basic tests" " " 4 +#AT_STOP_45 +#AT_START_46 +at_fn_group_banner 46 'numeric.at:18' \ + "--numeric-owner basic tests" " " 7 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "35. $at_setup_line: testing $at_desc ..." + $as_echo "46. $at_setup_line: testing $at_desc ..." $at_traceon @@ -7369,14 +8178,17 @@ TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * -mkdir dir -genfile --file dir/file - MYUID=\$(id -u) || exit 77 MYGID=\$(id -g) || exit 77 MYUSR=\$(id -un) || exit 77 MYGRP=\$(id -gn) || exit 77 +mkdir dir +# Ensure correct group id on BSDs. +chown :\$MYGID dir >/dev/null 2>/dev/null +genfile --file dir/file + + decho --create tar --create -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}' @@ -7408,14 +8220,17 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * -mkdir dir -genfile --file dir/file - MYUID=$(id -u) || exit 77 MYGID=$(id -g) || exit 77 MYUSR=$(id -un) || exit 77 MYGRP=$(id -gn) || exit 77 +mkdir dir +# Ensure correct group id on BSDs. +chown :$MYGID dir >/dev/null 2>/dev/null +genfile --file dir/file + + decho --create tar --create -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}' @@ -7482,14 +8297,17 @@ TAR_OPTIONS=\"-H gnu\" export TAR_OPTIONS rm -rf * -mkdir dir -genfile --file dir/file - MYUID=\$(id -u) || exit 77 MYGID=\$(id -g) || exit 77 MYUSR=\$(id -un) || exit 77 MYGRP=\$(id -gn) || exit 77 +mkdir dir +# Ensure correct group id on BSDs. +chown :\$MYGID dir >/dev/null 2>/dev/null +genfile --file dir/file + + decho --create tar --create -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}' @@ -7521,14 +8339,17 @@ TAR_OPTIONS="-H gnu" export TAR_OPTIONS rm -rf * -mkdir dir -genfile --file dir/file - MYUID=$(id -u) || exit 77 MYGID=$(id -g) || exit 77 MYUSR=$(id -un) || exit 77 MYGRP=$(id -gn) || exit 77 +mkdir dir +# Ensure correct group id on BSDs. +chown :$MYGID dir >/dev/null 2>/dev/null +genfile --file dir/file + + decho --create tar --create -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}' @@ -7595,14 +8416,17 @@ TAR_OPTIONS=\"-H ustar\" export TAR_OPTIONS rm -rf * -mkdir dir -genfile --file dir/file - MYUID=\$(id -u) || exit 77 MYGID=\$(id -g) || exit 77 MYUSR=\$(id -un) || exit 77 MYGRP=\$(id -gn) || exit 77 +mkdir dir +# Ensure correct group id on BSDs. +chown :\$MYGID dir >/dev/null 2>/dev/null +genfile --file dir/file + + decho --create tar --create -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}' @@ -7634,14 +8458,17 @@ TAR_OPTIONS="-H ustar" export TAR_OPTIONS rm -rf * -mkdir dir -genfile --file dir/file - MYUID=$(id -u) || exit 77 MYGID=$(id -g) || exit 77 MYUSR=$(id -un) || exit 77 MYGRP=$(id -gn) || exit 77 +mkdir dir +# Ensure correct group id on BSDs. +chown :$MYGID dir >/dev/null 2>/dev/null +genfile --file dir/file + + decho --create tar --create -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}' @@ -7708,14 +8535,17 @@ TAR_OPTIONS=\"-H oldgnu\" export TAR_OPTIONS rm -rf * -mkdir dir -genfile --file dir/file - MYUID=\$(id -u) || exit 77 MYGID=\$(id -g) || exit 77 MYUSR=\$(id -un) || exit 77 MYGRP=\$(id -gn) || exit 77 +mkdir dir +# Ensure correct group id on BSDs. +chown :\$MYGID dir >/dev/null 2>/dev/null +genfile --file dir/file + + decho --create tar --create -vvf a dir --numeric-owner | awk '$2==\"'\"\$MYUID/\$MYGID\"'\" {print \"OK\"; next} {print}' @@ -7747,14 +8577,17 @@ TAR_OPTIONS="-H oldgnu" export TAR_OPTIONS rm -rf * -mkdir dir -genfile --file dir/file - MYUID=$(id -u) || exit 77 MYGID=$(id -g) || exit 77 MYUSR=$(id -un) || exit 77 MYGRP=$(id -gn) || exit 77 +mkdir dir +# Ensure correct group id on BSDs. +chown :$MYGID dir >/dev/null 2>/dev/null +genfile --file dir/file + + decho --create tar --create -vvf a dir --numeric-owner | awk '$2=="'"$MYUID/$MYGID"'" {print "OK"; next} {print}' @@ -7818,14 +8651,14 @@ $at_traceon; } $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 'same-order01.at:27' \ - "working -C with --same-order" " " 5 +#AT_STOP_46 +#AT_START_47 +at_fn_group_banner 47 'same-order01.at:26' \ + "working -C with --same-order" " " 8 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "36. $at_setup_line: testing $at_desc ..." + $as_echo "47. $at_setup_line: testing $at_desc ..." $at_traceon @@ -7833,7 +8666,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/same-order01.at:30: +$as_echo "$at_srcdir/same-order01.at:29: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -7855,7 +8688,7 @@ 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:30" +at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:29" ( $at_check_trace; mkdir v7 (cd v7 @@ -7886,12 +8719,12 @@ 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:30" +at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:29" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/same-order01.at:30: +$as_echo "$at_srcdir/same-order01.at:29: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -7913,7 +8746,7 @@ 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:30" +at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:29" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -7944,12 +8777,12 @@ 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:30" +at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:29" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/same-order01.at:30: +$as_echo "$at_srcdir/same-order01.at:29: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -7971,7 +8804,7 @@ 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:30" +at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:29" ( $at_check_trace; mkdir ustar (cd ustar @@ -8002,12 +8835,12 @@ 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:30" +at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:29" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/same-order01.at:30: +$as_echo "$at_srcdir/same-order01.at:29: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -8029,7 +8862,7 @@ 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:30" +at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:29" ( $at_check_trace; mkdir posix (cd posix @@ -8060,12 +8893,12 @@ 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:30" +at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:29" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/same-order01.at:30: +$as_echo "$at_srcdir/same-order01.at:29: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -8087,7 +8920,7 @@ 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:30" +at_fn_check_prepare_notrace 'a `...` command substitution' "same-order01.at:29" ( $at_check_trace; mkdir gnu (cd gnu @@ -8118,7 +8951,7 @@ 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:30" +at_fn_check_status 0 $at_status "$at_srcdir/same-order01.at:29" $at_failed && at_fn_log_failure $at_traceon; } @@ -8129,14 +8962,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'same-order02.at:26' \ - "multiple -C options" " " 5 +#AT_STOP_47 +#AT_START_48 +at_fn_group_banner 48 'same-order02.at:25' \ + "multiple -C options" " " 8 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "37. $at_setup_line: testing $at_desc ..." + $as_echo "48. $at_setup_line: testing $at_desc ..." $at_traceon @@ -8144,7 +8977,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/same-order02.at:29: +$as_echo "$at_srcdir/same-order02.at:28: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -8169,7 +9002,7 @@ ls en echo separator ls to )" -at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:29" +at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:28" ( $at_check_trace; mkdir v7 (cd v7 @@ -8204,12 +9037,12 @@ separator file2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:29" +at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:28" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/same-order02.at:29: +$as_echo "$at_srcdir/same-order02.at:28: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -8234,7 +9067,7 @@ ls en echo separator ls to )" -at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:29" +at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:28" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -8269,12 +9102,12 @@ separator file2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:29" +at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:28" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/same-order02.at:29: +$as_echo "$at_srcdir/same-order02.at:28: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -8299,7 +9132,7 @@ ls en echo separator ls to )" -at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:29" +at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:28" ( $at_check_trace; mkdir ustar (cd ustar @@ -8334,12 +9167,12 @@ separator file2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:29" +at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:28" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/same-order02.at:29: +$as_echo "$at_srcdir/same-order02.at:28: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -8364,7 +9197,7 @@ ls en echo separator ls to )" -at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:29" +at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:28" ( $at_check_trace; mkdir posix (cd posix @@ -8399,12 +9232,12 @@ separator file2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:29" +at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:28" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/same-order02.at:29: +$as_echo "$at_srcdir/same-order02.at:28: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -8429,7 +9262,7 @@ ls en echo separator ls to )" -at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:29" +at_fn_check_prepare_notrace 'a `...` command substitution' "same-order02.at:28" ( $at_check_trace; mkdir gnu (cd gnu @@ -8464,7 +9297,7 @@ separator file2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:29" +at_fn_check_status 0 $at_status "$at_srcdir/same-order02.at:28" $at_failed && at_fn_log_failure $at_traceon; } @@ -8475,14 +9308,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'append.at:22' \ - "append" " " 6 +#AT_STOP_48 +#AT_START_49 +at_fn_group_banner 49 'append.at:21' \ + "append" " " 9 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "38. $at_setup_line: testing $at_desc ..." + $as_echo "49. $at_setup_line: testing $at_desc ..." $at_traceon @@ -8490,7 +9323,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/append.at:25: +$as_echo "$at_srcdir/append.at:24: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -8503,7 +9336,7 @@ touch file1 tar cf archive file1 tar rf archive file2 tar tf archive)" -at_fn_check_prepare_notrace 'an embedded newline' "append.at:25" +at_fn_check_prepare_notrace 'an embedded newline' "append.at:24" ( $at_check_trace; mkdir v7 (cd v7 @@ -8525,12 +9358,12 @@ echo >>"$at_stdout"; $as_echo "file1 file2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/append.at:25" +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:25: +$as_echo "$at_srcdir/append.at:24: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -8543,7 +9376,7 @@ touch file1 tar cf archive file1 tar rf archive file2 tar tf archive)" -at_fn_check_prepare_notrace 'an embedded newline' "append.at:25" +at_fn_check_prepare_notrace 'an embedded newline' "append.at:24" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -8565,12 +9398,12 @@ echo >>"$at_stdout"; $as_echo "file1 file2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/append.at:25" +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:25: +$as_echo "$at_srcdir/append.at:24: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -8583,7 +9416,7 @@ touch file1 tar cf archive file1 tar rf archive file2 tar tf archive)" -at_fn_check_prepare_notrace 'an embedded newline' "append.at:25" +at_fn_check_prepare_notrace 'an embedded newline' "append.at:24" ( $at_check_trace; mkdir ustar (cd ustar @@ -8605,12 +9438,12 @@ echo >>"$at_stdout"; $as_echo "file1 file2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/append.at:25" +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:25: +$as_echo "$at_srcdir/append.at:24: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -8623,7 +9456,7 @@ touch file1 tar cf archive file1 tar rf archive file2 tar tf archive)" -at_fn_check_prepare_notrace 'an embedded newline' "append.at:25" +at_fn_check_prepare_notrace 'an embedded newline' "append.at:24" ( $at_check_trace; mkdir posix (cd posix @@ -8645,12 +9478,12 @@ echo >>"$at_stdout"; $as_echo "file1 file2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/append.at:25" +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:25: +$as_echo "$at_srcdir/append.at:24: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -8663,7 +9496,7 @@ touch file1 tar cf archive file1 tar rf archive file2 tar tf archive)" -at_fn_check_prepare_notrace 'an embedded newline' "append.at:25" +at_fn_check_prepare_notrace 'an embedded newline' "append.at:24" ( $at_check_trace; mkdir gnu (cd gnu @@ -8685,7 +9518,7 @@ echo >>"$at_stdout"; $as_echo "file1 file2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/append.at:25" +at_fn_check_status 0 $at_status "$at_srcdir/append.at:24" $at_failed && at_fn_log_failure $at_traceon; } @@ -8696,14 +9529,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'append01.at:30' \ - "appending files with long names" " " 6 +#AT_STOP_49 +#AT_START_50 +at_fn_group_banner 50 'append01.at:29' \ + "appending files with long names" " " 9 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "39. $at_setup_line: testing $at_desc ..." + $as_echo "50. $at_setup_line: testing $at_desc ..." $at_traceon @@ -8713,7 +9546,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/append01.at:35: +$as_echo "$at_srcdir/append01.at:34: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -8728,7 +9561,7 @@ tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_pr 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:35" +at_fn_check_prepare_notrace 'an embedded newline' "append01.at:34" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -8752,12 +9585,12 @@ echo >>"$at_stdout"; $as_echo "This_is_a_very_long_file_name_prefix_that_is_desi 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:35" +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:35: +$as_echo "$at_srcdir/append01.at:34: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -8772,7 +9605,7 @@ tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_pr 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:35" +at_fn_check_prepare_notrace 'an embedded newline' "append01.at:34" ( $at_check_trace; mkdir ustar (cd ustar @@ -8796,12 +9629,12 @@ echo >>"$at_stdout"; $as_echo "This_is_a_very_long_file_name_prefix_that_is_desi 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:35" +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:35: +$as_echo "$at_srcdir/append01.at:34: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -8816,7 +9649,7 @@ tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_pr 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:35" +at_fn_check_prepare_notrace 'an embedded newline' "append01.at:34" ( $at_check_trace; mkdir posix (cd posix @@ -8840,12 +9673,12 @@ echo >>"$at_stdout"; $as_echo "This_is_a_very_long_file_name_prefix_that_is_desi 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:35" +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:35: +$as_echo "$at_srcdir/append01.at:34: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -8860,7 +9693,7 @@ tar cf archive This_is_a_very_long_file_name_prefix_that_is_designed_to_cause_pr 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:35" +at_fn_check_prepare_notrace 'an embedded newline' "append01.at:34" ( $at_check_trace; mkdir gnu (cd gnu @@ -8884,7 +9717,7 @@ echo >>"$at_stdout"; $as_echo "This_is_a_very_long_file_name_prefix_that_is_desi 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:35" +at_fn_check_status 0 $at_status "$at_srcdir/append01.at:34" $at_failed && at_fn_log_failure $at_traceon; } @@ -8896,14 +9729,14 @@ $at_traceon; } $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 'append02.at:55' \ - "append vs. create" " " 6 +#AT_STOP_50 +#AT_START_51 +at_fn_group_banner 51 'append02.at:54' \ + "append vs. create" " " 9 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "40. $at_setup_line: testing $at_desc ..." + $as_echo "51. $at_setup_line: testing $at_desc ..." $at_traceon @@ -8911,7 +9744,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/append02.at:58: +$as_echo "$at_srcdir/append02.at:57: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -8943,7 +9776,7 @@ tar \$MTIME -rf archive.2 file2 echo Comparing archives cmp archive.1 archive.2 )" -at_fn_check_prepare_notrace 'an embedded newline' "append02.at:58" +at_fn_check_prepare_notrace 'an embedded newline' "append02.at:57" ( $at_check_trace; mkdir v7 (cd v7 @@ -8985,12 +9818,12 @@ Creating archive.2 Comparing archives " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/append02.at:58" +at_fn_check_status 0 $at_status "$at_srcdir/append02.at:57" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/append02.at:58: +$as_echo "$at_srcdir/append02.at:57: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -9022,7 +9855,7 @@ tar \$MTIME -rf archive.2 file2 echo Comparing archives cmp archive.1 archive.2 )" -at_fn_check_prepare_notrace 'an embedded newline' "append02.at:58" +at_fn_check_prepare_notrace 'an embedded newline' "append02.at:57" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -9064,12 +9897,12 @@ Creating archive.2 Comparing archives " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/append02.at:58" +at_fn_check_status 0 $at_status "$at_srcdir/append02.at:57" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/append02.at:58: +$as_echo "$at_srcdir/append02.at:57: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -9101,7 +9934,7 @@ tar \$MTIME -rf archive.2 file2 echo Comparing archives cmp archive.1 archive.2 )" -at_fn_check_prepare_notrace 'an embedded newline' "append02.at:58" +at_fn_check_prepare_notrace 'an embedded newline' "append02.at:57" ( $at_check_trace; mkdir ustar (cd ustar @@ -9143,12 +9976,12 @@ Creating archive.2 Comparing archives " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/append02.at:58" +at_fn_check_status 0 $at_status "$at_srcdir/append02.at:57" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/append02.at:58: +$as_echo "$at_srcdir/append02.at:57: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -9180,7 +10013,7 @@ tar \$MTIME -rf archive.2 file2 echo Comparing archives cmp archive.1 archive.2 )" -at_fn_check_prepare_notrace 'an embedded newline' "append02.at:58" +at_fn_check_prepare_notrace 'an embedded newline' "append02.at:57" ( $at_check_trace; mkdir posix (cd posix @@ -9222,12 +10055,12 @@ Creating archive.2 Comparing archives " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/append02.at:58" +at_fn_check_status 0 $at_status "$at_srcdir/append02.at:57" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/append02.at:58: +$as_echo "$at_srcdir/append02.at:57: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -9259,7 +10092,7 @@ tar \$MTIME -rf archive.2 file2 echo Comparing archives cmp archive.1 archive.2 )" -at_fn_check_prepare_notrace 'an embedded newline' "append02.at:58" +at_fn_check_prepare_notrace 'an embedded newline' "append02.at:57" ( $at_check_trace; mkdir gnu (cd gnu @@ -9301,7 +10134,7 @@ Creating archive.2 Comparing archives " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/append02.at:58" +at_fn_check_status 0 $at_status "$at_srcdir/append02.at:57" $at_failed && at_fn_log_failure $at_traceon; } @@ -9312,14 +10145,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'append03.at:21' \ - "append with name transformation" " " 6 +#AT_STOP_51 +#AT_START_52 +at_fn_group_banner 52 'append03.at:21' \ + "append with name transformation" " " 9 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "41. $at_setup_line: testing $at_desc ..." + $as_echo "52. $at_setup_line: testing $at_desc ..." $at_traceon @@ -9605,14 +10438,14 @@ $at_traceon; } $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 'append04.at:29' \ - "append with verify" " " 6 +#AT_STOP_52 +#AT_START_53 +at_fn_group_banner 53 'append04.at:29' \ + "append with verify" " " 9 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "42. $at_setup_line: testing $at_desc ..." + $as_echo "53. $at_setup_line: testing $at_desc ..." $at_traceon @@ -9986,14 +10819,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'append05.at:32' \ - "append after changed blocking" " " 6 +#AT_STOP_53 +#AT_START_54 +at_fn_group_banner 54 'append05.at:32' \ + "append after changed blocking" " " 9 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "43. $at_setup_line: testing $at_desc ..." + $as_echo "54. $at_setup_line: testing $at_desc ..." $at_traceon @@ -10537,14 +11370,14 @@ $at_traceon; } $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 'xform-h.at:31' \ - "transforming hard links on create" " " 7 +#AT_STOP_54 +#AT_START_55 +at_fn_group_banner 55 'xform-h.at:30' \ + "transforming hard links on create" " " 10 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "44. $at_setup_line: testing $at_desc ..." + $as_echo "55. $at_setup_line: testing $at_desc ..." $at_traceon @@ -10554,7 +11387,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/xform-h.at:40: +$as_echo "$at_srcdir/xform-h.at:39: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -10583,7 +11416,7 @@ tar cf archive --transform=\"s,^basedir/,,H\" basedir/test basedir/test_link tar tvf archive | sed -n 's/.*test_link link to //p' )" -at_fn_check_prepare_notrace 'an embedded newline' "xform-h.at:40" +at_fn_check_prepare_notrace 'an embedded newline' "xform-h.at:39" ( $at_check_trace; mkdir v7 (cd v7 @@ -10625,12 +11458,12 @@ Not transforming hard links basedir/test " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/xform-h.at:40" +at_fn_check_status 0 $at_status "$at_srcdir/xform-h.at:39" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/xform-h.at:40: +$as_echo "$at_srcdir/xform-h.at:39: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -10659,7 +11492,7 @@ tar cf archive --transform=\"s,^basedir/,,H\" basedir/test basedir/test_link tar tvf archive | sed -n 's/.*test_link link to //p' )" -at_fn_check_prepare_notrace 'an embedded newline' "xform-h.at:40" +at_fn_check_prepare_notrace 'an embedded newline' "xform-h.at:39" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -10701,12 +11534,12 @@ Not transforming hard links basedir/test " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/xform-h.at:40" +at_fn_check_status 0 $at_status "$at_srcdir/xform-h.at:39" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/xform-h.at:40: +$as_echo "$at_srcdir/xform-h.at:39: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -10735,7 +11568,7 @@ tar cf archive --transform=\"s,^basedir/,,H\" basedir/test basedir/test_link tar tvf archive | sed -n 's/.*test_link link to //p' )" -at_fn_check_prepare_notrace 'an embedded newline' "xform-h.at:40" +at_fn_check_prepare_notrace 'an embedded newline' "xform-h.at:39" ( $at_check_trace; mkdir ustar (cd ustar @@ -10777,12 +11610,12 @@ Not transforming hard links basedir/test " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/xform-h.at:40" +at_fn_check_status 0 $at_status "$at_srcdir/xform-h.at:39" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/xform-h.at:40: +$as_echo "$at_srcdir/xform-h.at:39: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -10811,7 +11644,7 @@ tar cf archive --transform=\"s,^basedir/,,H\" basedir/test basedir/test_link tar tvf archive | sed -n 's/.*test_link link to //p' )" -at_fn_check_prepare_notrace 'an embedded newline' "xform-h.at:40" +at_fn_check_prepare_notrace 'an embedded newline' "xform-h.at:39" ( $at_check_trace; mkdir posix (cd posix @@ -10853,12 +11686,12 @@ Not transforming hard links basedir/test " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/xform-h.at:40" +at_fn_check_status 0 $at_status "$at_srcdir/xform-h.at:39" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/xform-h.at:40: +$as_echo "$at_srcdir/xform-h.at:39: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -10887,7 +11720,7 @@ tar cf archive --transform=\"s,^basedir/,,H\" basedir/test basedir/test_link tar tvf archive | sed -n 's/.*test_link link to //p' )" -at_fn_check_prepare_notrace 'an embedded newline' "xform-h.at:40" +at_fn_check_prepare_notrace 'an embedded newline' "xform-h.at:39" ( $at_check_trace; mkdir gnu (cd gnu @@ -10929,7 +11762,7 @@ Not transforming hard links basedir/test " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/xform-h.at:40" +at_fn_check_status 0 $at_status "$at_srcdir/xform-h.at:39" $at_failed && at_fn_log_failure $at_traceon; } @@ -10942,14 +11775,14 @@ $at_traceon; } $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 'xform01.at:26' \ - "transformations and GNU volume labels" " " 7 +#AT_STOP_55 +#AT_START_56 +at_fn_group_banner 56 'xform01.at:26' \ + "transformations and GNU volume labels" " " 10 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "45. $at_setup_line: testing $at_desc ..." + $as_echo "56. $at_setup_line: testing $at_desc ..." $at_traceon @@ -11003,14 +11836,14 @@ $at_traceon; } $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 'xform02.at:21' \ - "transforming escaped delimiters on create" " " 7 +#AT_STOP_56 +#AT_START_57 +at_fn_group_banner 57 'xform02.at:21' \ + "transforming escaped delimiters on create" " " 10 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "46. $at_setup_line: testing $at_desc ..." + $as_echo "57. $at_setup_line: testing $at_desc ..." $at_traceon @@ -11229,20 +12062,22 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'xform03.at:21' \ - "transforming hard link targets" " " 7 +#AT_STOP_57 +#AT_START_58 +at_fn_group_banner 58 'xform03.at:21' \ + "transforming hard link targets" " " 10 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "47. $at_setup_line: testing $at_desc ..." + $as_echo "58. $at_setup_line: testing $at_desc ..." $at_traceon + + { set +x $as_echo "$at_srcdir/xform03.at:24: mkdir v7 @@ -11256,8 +12091,8 @@ rm -rf * mkdir d mkdir d/a genfile --file d/a/b -dir=\$(pwd|sed s,^/,,)/d -tar -cf a.tar --xform=\"s|^\$dir/a|dir/c|\" /\$dir/a/b /\$dir/a/b +dir=\$(pwd|sed s,^//*,,)/d +tar -cf a.tar --xform=\"s|^\$dir/a|dir/c|\" /\$dir/a/b /\$dir/a/b 2>err mkdir t tar -C t -xf a.tar find t -type f @@ -11275,8 +12110,8 @@ rm -rf * mkdir d mkdir d/a genfile --file d/a/b -dir=$(pwd|sed s,^/,,)/d -tar -cf a.tar --xform="s|^$dir/a|dir/c|" /$dir/a/b /$dir/a/b +dir=$(pwd|sed s,^//*,,)/d +tar -cf a.tar --xform="s|^$dir/a|dir/c|" /$dir/a/b /$dir/a/b 2>err mkdir t tar -C t -xf a.tar find t -type f @@ -11284,10 +12119,7 @@ find t -type f ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter -echo >>"$at_stderr"; $as_echo "tar: Removing leading \`/' from member names -tar: Removing leading \`/' from hard link targets -" | \ - $at_diff - "$at_stderr" || at_failed=: +echo stderr:; tee stderr <"$at_stderr" echo >>"$at_stdout"; $as_echo "t/dir/c/b " | \ $at_diff - "$at_stdout" || at_failed=: @@ -11296,6 +12128,18 @@ $at_failed && at_fn_log_failure $at_traceon; } { set +x +$as_echo "$at_srcdir/xform03.at:24: sed \"/tar: Removing leading \\\`\\/*\\/' from/d\" stderr" +at_fn_check_prepare_notrace 'a `...` command substitution' "xform03.at:24" +( $at_check_trace; sed "/tar: Removing leading \`\/*\/' from/d" stderr +) >>"$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/xform03.at:24" +$at_failed && at_fn_log_failure +$at_traceon; } +{ set +x $as_echo "$at_srcdir/xform03.at:24: mkdir oldgnu (cd oldgnu @@ -11308,8 +12152,8 @@ rm -rf * mkdir d mkdir d/a genfile --file d/a/b -dir=\$(pwd|sed s,^/,,)/d -tar -cf a.tar --xform=\"s|^\$dir/a|dir/c|\" /\$dir/a/b /\$dir/a/b +dir=\$(pwd|sed s,^//*,,)/d +tar -cf a.tar --xform=\"s|^\$dir/a|dir/c|\" /\$dir/a/b /\$dir/a/b 2>err mkdir t tar -C t -xf a.tar find t -type f @@ -11327,8 +12171,8 @@ rm -rf * mkdir d mkdir d/a genfile --file d/a/b -dir=$(pwd|sed s,^/,,)/d -tar -cf a.tar --xform="s|^$dir/a|dir/c|" /$dir/a/b /$dir/a/b +dir=$(pwd|sed s,^//*,,)/d +tar -cf a.tar --xform="s|^$dir/a|dir/c|" /$dir/a/b /$dir/a/b 2>err mkdir t tar -C t -xf a.tar find t -type f @@ -11336,10 +12180,7 @@ find t -type f ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter -echo >>"$at_stderr"; $as_echo "tar: Removing leading \`/' from member names -tar: Removing leading \`/' from hard link targets -" | \ - $at_diff - "$at_stderr" || at_failed=: +echo stderr:; tee stderr <"$at_stderr" echo >>"$at_stdout"; $as_echo "t/dir/c/b " | \ $at_diff - "$at_stdout" || at_failed=: @@ -11348,6 +12189,18 @@ $at_failed && at_fn_log_failure $at_traceon; } { set +x +$as_echo "$at_srcdir/xform03.at:24: sed \"/tar: Removing leading \\\`\\/*\\/' from/d\" stderr" +at_fn_check_prepare_notrace 'a `...` command substitution' "xform03.at:24" +( $at_check_trace; sed "/tar: Removing leading \`\/*\/' from/d" stderr +) >>"$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/xform03.at:24" +$at_failed && at_fn_log_failure +$at_traceon; } +{ set +x $as_echo "$at_srcdir/xform03.at:24: mkdir ustar (cd ustar @@ -11360,8 +12213,8 @@ rm -rf * mkdir d mkdir d/a genfile --file d/a/b -dir=\$(pwd|sed s,^/,,)/d -tar -cf a.tar --xform=\"s|^\$dir/a|dir/c|\" /\$dir/a/b /\$dir/a/b +dir=\$(pwd|sed s,^//*,,)/d +tar -cf a.tar --xform=\"s|^\$dir/a|dir/c|\" /\$dir/a/b /\$dir/a/b 2>err mkdir t tar -C t -xf a.tar find t -type f @@ -11379,8 +12232,8 @@ rm -rf * mkdir d mkdir d/a genfile --file d/a/b -dir=$(pwd|sed s,^/,,)/d -tar -cf a.tar --xform="s|^$dir/a|dir/c|" /$dir/a/b /$dir/a/b +dir=$(pwd|sed s,^//*,,)/d +tar -cf a.tar --xform="s|^$dir/a|dir/c|" /$dir/a/b /$dir/a/b 2>err mkdir t tar -C t -xf a.tar find t -type f @@ -11388,10 +12241,7 @@ find t -type f ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter -echo >>"$at_stderr"; $as_echo "tar: Removing leading \`/' from member names -tar: Removing leading \`/' from hard link targets -" | \ - $at_diff - "$at_stderr" || at_failed=: +echo stderr:; tee stderr <"$at_stderr" echo >>"$at_stdout"; $as_echo "t/dir/c/b " | \ $at_diff - "$at_stdout" || at_failed=: @@ -11400,6 +12250,18 @@ $at_failed && at_fn_log_failure $at_traceon; } { set +x +$as_echo "$at_srcdir/xform03.at:24: sed \"/tar: Removing leading \\\`\\/*\\/' from/d\" stderr" +at_fn_check_prepare_notrace 'a `...` command substitution' "xform03.at:24" +( $at_check_trace; sed "/tar: Removing leading \`\/*\/' from/d" stderr +) >>"$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/xform03.at:24" +$at_failed && at_fn_log_failure +$at_traceon; } +{ set +x $as_echo "$at_srcdir/xform03.at:24: mkdir posix (cd posix @@ -11412,8 +12274,8 @@ rm -rf * mkdir d mkdir d/a genfile --file d/a/b -dir=\$(pwd|sed s,^/,,)/d -tar -cf a.tar --xform=\"s|^\$dir/a|dir/c|\" /\$dir/a/b /\$dir/a/b +dir=\$(pwd|sed s,^//*,,)/d +tar -cf a.tar --xform=\"s|^\$dir/a|dir/c|\" /\$dir/a/b /\$dir/a/b 2>err mkdir t tar -C t -xf a.tar find t -type f @@ -11431,8 +12293,8 @@ rm -rf * mkdir d mkdir d/a genfile --file d/a/b -dir=$(pwd|sed s,^/,,)/d -tar -cf a.tar --xform="s|^$dir/a|dir/c|" /$dir/a/b /$dir/a/b +dir=$(pwd|sed s,^//*,,)/d +tar -cf a.tar --xform="s|^$dir/a|dir/c|" /$dir/a/b /$dir/a/b 2>err mkdir t tar -C t -xf a.tar find t -type f @@ -11440,10 +12302,7 @@ find t -type f ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter -echo >>"$at_stderr"; $as_echo "tar: Removing leading \`/' from member names -tar: Removing leading \`/' from hard link targets -" | \ - $at_diff - "$at_stderr" || at_failed=: +echo stderr:; tee stderr <"$at_stderr" echo >>"$at_stdout"; $as_echo "t/dir/c/b " | \ $at_diff - "$at_stdout" || at_failed=: @@ -11452,6 +12311,18 @@ $at_failed && at_fn_log_failure $at_traceon; } { set +x +$as_echo "$at_srcdir/xform03.at:24: sed \"/tar: Removing leading \\\`\\/*\\/' from/d\" stderr" +at_fn_check_prepare_notrace 'a `...` command substitution' "xform03.at:24" +( $at_check_trace; sed "/tar: Removing leading \`\/*\/' from/d" stderr +) >>"$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/xform03.at:24" +$at_failed && at_fn_log_failure +$at_traceon; } +{ set +x $as_echo "$at_srcdir/xform03.at:24: mkdir gnu (cd gnu @@ -11464,8 +12335,8 @@ rm -rf * mkdir d mkdir d/a genfile --file d/a/b -dir=\$(pwd|sed s,^/,,)/d -tar -cf a.tar --xform=\"s|^\$dir/a|dir/c|\" /\$dir/a/b /\$dir/a/b +dir=\$(pwd|sed s,^//*,,)/d +tar -cf a.tar --xform=\"s|^\$dir/a|dir/c|\" /\$dir/a/b /\$dir/a/b 2>err mkdir t tar -C t -xf a.tar find t -type f @@ -11483,8 +12354,8 @@ rm -rf * mkdir d mkdir d/a genfile --file d/a/b -dir=$(pwd|sed s,^/,,)/d -tar -cf a.tar --xform="s|^$dir/a|dir/c|" /$dir/a/b /$dir/a/b +dir=$(pwd|sed s,^//*,,)/d +tar -cf a.tar --xform="s|^$dir/a|dir/c|" /$dir/a/b /$dir/a/b 2>err mkdir t tar -C t -xf a.tar find t -type f @@ -11492,10 +12363,7 @@ find t -type f ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter -echo >>"$at_stderr"; $as_echo "tar: Removing leading \`/' from member names -tar: Removing leading \`/' from hard link targets -" | \ - $at_diff - "$at_stderr" || at_failed=: +echo stderr:; tee stderr <"$at_stderr" echo >>"$at_stdout"; $as_echo "t/dir/c/b " | \ $at_diff - "$at_stdout" || at_failed=: @@ -11503,20 +12371,34 @@ at_fn_check_status 0 $at_status "$at_srcdir/xform03.at:24" $at_failed && at_fn_log_failure $at_traceon; } + { set +x +$as_echo "$at_srcdir/xform03.at:24: sed \"/tar: Removing leading \\\`\\/*\\/' from/d\" stderr" +at_fn_check_prepare_notrace 'a `...` command substitution' "xform03.at:24" +( $at_check_trace; sed "/tar: Removing leading \`\/*\/' from/d" stderr +) >>"$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/xform03.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_47 -#AT_START_48 -at_fn_group_banner 48 'exclude.at:23' \ - "exclude" " " 8 +#AT_STOP_58 +#AT_START_59 +at_fn_group_banner 59 'exclude.at:23' \ + "exclude" " " 11 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "48. $at_setup_line: testing $at_desc ..." + $as_echo "59. $at_setup_line: testing $at_desc ..." $at_traceon @@ -11726,14 +12608,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'exclude01.at:19' \ - "exclude wildcards" " " 8 +#AT_STOP_59 +#AT_START_60 +at_fn_group_banner 60 'exclude01.at:19' \ + "exclude wildcards" " " 11 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "49. $at_setup_line: testing $at_desc ..." + $as_echo "60. $at_setup_line: testing $at_desc ..." $at_traceon @@ -12307,14 +13189,14 @@ $at_traceon; } $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 'exclude02.at:19' \ - "exclude: anchoring" " " 8 +#AT_STOP_60 +#AT_START_61 +at_fn_group_banner 61 'exclude02.at:19' \ + "exclude: anchoring" " " 11 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "50. $at_setup_line: testing $at_desc ..." + $as_echo "61. $at_setup_line: testing $at_desc ..." $at_traceon @@ -12948,14 +13830,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'exclude03.at:19' \ - "exclude: wildcards match slash" " " 8 +#AT_STOP_61 +#AT_START_62 +at_fn_group_banner 62 'exclude03.at:19' \ + "exclude: wildcards match slash" " " 11 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "51. $at_setup_line: testing $at_desc ..." + $as_echo "62. $at_setup_line: testing $at_desc ..." $at_traceon @@ -13549,14 +14431,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'exclude04.at:19' \ - "exclude: case insensitive" " " 8 +#AT_STOP_62 +#AT_START_63 +at_fn_group_banner 63 'exclude04.at:19' \ + "exclude: case insensitive" " " 11 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "52. $at_setup_line: testing $at_desc ..." + $as_echo "63. $at_setup_line: testing $at_desc ..." $at_traceon @@ -14165,14 +15047,14 @@ $at_traceon; } $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 'exclude05.at:22' \ - "exclude: lots of excludes" " " 8 +#AT_STOP_63 +#AT_START_64 +at_fn_group_banner 64 'exclude05.at:21' \ + "exclude: lots of excludes" " " 11 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "53. $at_setup_line: testing $at_desc ..." + $as_echo "64. $at_setup_line: testing $at_desc ..." $at_traceon @@ -14180,7 +15062,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/exclude05.at:25: +$as_echo "$at_srcdir/exclude05.at:24: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -14215,7 +15097,7 @@ tar tf archive | sort rm -rf testdir exclfile )" -at_fn_check_prepare_notrace 'a `...` command substitution' "exclude05.at:25" +at_fn_check_prepare_notrace 'a `...` command substitution' "exclude05.at:24" ( $at_check_trace; mkdir v7 (cd v7 @@ -14266,12 +15148,12 @@ testdir/file11 testdir/file9 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/exclude05.at:25" +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:25: +$as_echo "$at_srcdir/exclude05.at:24: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -14306,7 +15188,7 @@ tar tf archive | sort rm -rf testdir exclfile )" -at_fn_check_prepare_notrace 'a `...` command substitution' "exclude05.at:25" +at_fn_check_prepare_notrace 'a `...` command substitution' "exclude05.at:24" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -14357,12 +15239,12 @@ testdir/file11 testdir/file9 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/exclude05.at:25" +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:25: +$as_echo "$at_srcdir/exclude05.at:24: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -14397,7 +15279,7 @@ tar tf archive | sort rm -rf testdir exclfile )" -at_fn_check_prepare_notrace 'a `...` command substitution' "exclude05.at:25" +at_fn_check_prepare_notrace 'a `...` command substitution' "exclude05.at:24" ( $at_check_trace; mkdir ustar (cd ustar @@ -14448,12 +15330,12 @@ testdir/file11 testdir/file9 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/exclude05.at:25" +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:25: +$as_echo "$at_srcdir/exclude05.at:24: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -14488,7 +15370,7 @@ tar tf archive | sort rm -rf testdir exclfile )" -at_fn_check_prepare_notrace 'a `...` command substitution' "exclude05.at:25" +at_fn_check_prepare_notrace 'a `...` command substitution' "exclude05.at:24" ( $at_check_trace; mkdir posix (cd posix @@ -14539,12 +15421,12 @@ testdir/file11 testdir/file9 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/exclude05.at:25" +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:25: +$as_echo "$at_srcdir/exclude05.at:24: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -14579,7 +15461,7 @@ tar tf archive | sort rm -rf testdir exclfile )" -at_fn_check_prepare_notrace 'a `...` command substitution' "exclude05.at:25" +at_fn_check_prepare_notrace 'a `...` command substitution' "exclude05.at:24" ( $at_check_trace; mkdir gnu (cd gnu @@ -14630,7 +15512,7 @@ testdir/file11 testdir/file9 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/exclude05.at:25" +at_fn_check_status 0 $at_status "$at_srcdir/exclude05.at:24" $at_failed && at_fn_log_failure $at_traceon; } @@ -14641,14 +15523,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'exclude06.at:26' \ - "exclude: long files in pax archives" " " 8 +#AT_STOP_64 +#AT_START_65 +at_fn_group_banner 65 'exclude06.at:26' \ + "exclude: long files in pax archives" " " 11 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "54. $at_setup_line: testing $at_desc ..." + $as_echo "65. $at_setup_line: testing $at_desc ..." $at_traceon @@ -14716,14 +15598,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'exclude07.at:19' \ - "exclude: --exclude-backups option" " " 8 +#AT_STOP_65 +#AT_START_66 +at_fn_group_banner 66 'exclude07.at:19' \ + "exclude: --exclude-backups option" " " 11 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "55. $at_setup_line: testing $at_desc ..." + $as_echo "66. $at_setup_line: testing $at_desc ..." $at_traceon @@ -14977,14 +15859,14 @@ $at_traceon; } $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 'exclude08.at:36' \ - "--exclude-tag option" " " 8 +#AT_STOP_66 +#AT_START_67 +at_fn_group_banner 67 'exclude08.at:36' \ + "--exclude-tag option" " " 11 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "56. $at_setup_line: testing $at_desc ..." + $as_echo "67. $at_setup_line: testing $at_desc ..." $at_traceon @@ -15238,14 +16120,14 @@ $at_traceon; } $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 'exclude09.at:37' \ - "--exclude-tag option and --listed-incremental" " " 8 +#AT_STOP_67 +#AT_START_68 +at_fn_group_banner 68 'exclude09.at:37' \ + "--exclude-tag option and --listed-incremental" " " 11 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "57. $at_setup_line: testing $at_desc ..." + $as_echo "68. $at_setup_line: testing $at_desc ..." $at_traceon @@ -15309,14 +16191,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'exclude10.at:38' \ - "--exclude-tag option in incremental pass" " " 8 +#AT_STOP_68 +#AT_START_69 +at_fn_group_banner 69 'exclude10.at:38' \ + "--exclude-tag option in incremental pass" " " 11 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "58. $at_setup_line: testing $at_desc ..." + $as_echo "69. $at_setup_line: testing $at_desc ..." $at_traceon @@ -15403,14 +16285,14 @@ $at_traceon; } $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 'exclude11.at:36' \ - "--exclude-tag-under option" " " 8 +#AT_STOP_69 +#AT_START_70 +at_fn_group_banner 70 'exclude11.at:36' \ + "--exclude-tag-under option" " " 11 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "59. $at_setup_line: testing $at_desc ..." + $as_echo "70. $at_setup_line: testing $at_desc ..." $at_traceon @@ -15659,14 +16541,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'exclude12.at:37' \ - "--exclude-tag-under and --listed-incremental" " " 8 +#AT_STOP_70 +#AT_START_71 +at_fn_group_banner 71 'exclude12.at:37' \ + "--exclude-tag-under and --listed-incremental" " " 11 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "60. $at_setup_line: testing $at_desc ..." + $as_echo "71. $at_setup_line: testing $at_desc ..." $at_traceon @@ -15729,14 +16611,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'exclude13.at:39' \ - "--exclude-tag-under option in incremental pass" " " 8 +#AT_STOP_71 +#AT_START_72 +at_fn_group_banner 72 'exclude13.at:39' \ + "--exclude-tag-under option in incremental pass" " " 11 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "61. $at_setup_line: testing $at_desc ..." + $as_echo "72. $at_setup_line: testing $at_desc ..." $at_traceon @@ -15822,14 +16704,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'exclude14.at:36' \ - "--exclude-tag-all option" " " 8 +#AT_STOP_72 +#AT_START_73 +at_fn_group_banner 73 'exclude14.at:36' \ + "--exclude-tag-all option" " " 11 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "62. $at_setup_line: testing $at_desc ..." + $as_echo "73. $at_setup_line: testing $at_desc ..." $at_traceon @@ -16073,14 +16955,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'exclude15.at:36' \ - "--exclude-tag-all and --listed-incremental" " " 8 +#AT_STOP_73 +#AT_START_74 +at_fn_group_banner 74 'exclude15.at:36' \ + "--exclude-tag-all and --listed-incremental" " " 11 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "63. $at_setup_line: testing $at_desc ..." + $as_echo "74. $at_setup_line: testing $at_desc ..." $at_traceon @@ -16142,14 +17024,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'exclude16.at:38' \ - "--exclude-tag-all option in incremental pass" " " 8 +#AT_STOP_74 +#AT_START_75 +at_fn_group_banner 75 'exclude16.at:38' \ + "--exclude-tag-all option in incremental pass" " " 11 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "64. $at_setup_line: testing $at_desc ..." + $as_echo "75. $at_setup_line: testing $at_desc ..." $at_traceon @@ -16234,14 +17116,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'delete01.at:24' \ - "deleting a member after a big one" " " 9 +#AT_STOP_75 +#AT_START_76 +at_fn_group_banner 76 'delete01.at:23' \ + "deleting a member after a big one" " " 12 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "65. $at_setup_line: testing $at_desc ..." + $as_echo "76. $at_setup_line: testing $at_desc ..." $at_traceon @@ -16249,7 +17131,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/delete01.at:27: +$as_echo "$at_srcdir/delete01.at:26: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -16263,7 +17145,7 @@ 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:27" +at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:26" ( $at_check_trace; mkdir v7 (cd v7 @@ -16285,12 +17167,12 @@ 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:27" +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:27: +$as_echo "$at_srcdir/delete01.at:26: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -16304,7 +17186,7 @@ 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:27" +at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:26" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -16326,12 +17208,12 @@ 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:27" +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:27: +$as_echo "$at_srcdir/delete01.at:26: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -16345,7 +17227,7 @@ 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:27" +at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:26" ( $at_check_trace; mkdir ustar (cd ustar @@ -16367,12 +17249,12 @@ 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:27" +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:27: +$as_echo "$at_srcdir/delete01.at:26: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -16386,7 +17268,7 @@ 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:27" +at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:26" ( $at_check_trace; mkdir posix (cd posix @@ -16408,12 +17290,12 @@ 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:27" +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:27: +$as_echo "$at_srcdir/delete01.at:26: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -16427,7 +17309,7 @@ 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:27" +at_fn_check_prepare_notrace 'an embedded newline' "delete01.at:26" ( $at_check_trace; mkdir gnu (cd gnu @@ -16449,7 +17331,7 @@ 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:27" +at_fn_check_status 0 $at_status "$at_srcdir/delete01.at:26" $at_failed && at_fn_log_failure $at_traceon; } @@ -16460,14 +17342,14 @@ $at_traceon; } $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 'delete02.at:24' \ - "deleting a member from stdin archive" " " 9 +#AT_STOP_76 +#AT_START_77 +at_fn_group_banner 77 'delete02.at:23' \ + "deleting a member from stdin archive" " " 12 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "66. $at_setup_line: testing $at_desc ..." + $as_echo "77. $at_setup_line: testing $at_desc ..." $at_traceon @@ -16475,7 +17357,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/delete02.at:27: +$as_echo "$at_srcdir/delete02.at:26: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -16492,7 +17374,7 @@ tar tf archive cat archive | tar f - --delete 2 > archive2 echo separator tar tf archive2)" -at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:27" +at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:26" ( $at_check_trace; mkdir v7 (cd v7 @@ -16522,12 +17404,12 @@ separator 3 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:27" +at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:26" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/delete02.at:27: +$as_echo "$at_srcdir/delete02.at:26: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -16544,7 +17426,7 @@ tar tf archive cat archive | tar f - --delete 2 > archive2 echo separator tar tf archive2)" -at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:27" +at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:26" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -16574,12 +17456,12 @@ separator 3 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:27" +at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:26" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/delete02.at:27: +$as_echo "$at_srcdir/delete02.at:26: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -16596,7 +17478,7 @@ tar tf archive cat archive | tar f - --delete 2 > archive2 echo separator tar tf archive2)" -at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:27" +at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:26" ( $at_check_trace; mkdir ustar (cd ustar @@ -16626,12 +17508,12 @@ separator 3 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:27" +at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:26" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/delete02.at:27: +$as_echo "$at_srcdir/delete02.at:26: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -16648,7 +17530,7 @@ tar tf archive cat archive | tar f - --delete 2 > archive2 echo separator tar tf archive2)" -at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:27" +at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:26" ( $at_check_trace; mkdir posix (cd posix @@ -16678,12 +17560,12 @@ separator 3 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:27" +at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:26" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/delete02.at:27: +$as_echo "$at_srcdir/delete02.at:26: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -16700,7 +17582,7 @@ tar tf archive cat archive | tar f - --delete 2 > archive2 echo separator tar tf archive2)" -at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:27" +at_fn_check_prepare_notrace 'an embedded newline' "delete02.at:26" ( $at_check_trace; mkdir gnu (cd gnu @@ -16730,7 +17612,7 @@ separator 3 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:27" +at_fn_check_status 0 $at_status "$at_srcdir/delete02.at:26" $at_failed && at_fn_log_failure $at_traceon; } @@ -16741,14 +17623,14 @@ $at_traceon; } $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 'delete03.at:22' \ - "deleting members with long names" " " 9 +#AT_STOP_77 +#AT_START_78 +at_fn_group_banner 78 'delete03.at:21' \ + "deleting members with long names" " " 12 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "67. $at_setup_line: testing $at_desc ..." + $as_echo "78. $at_setup_line: testing $at_desc ..." $at_traceon @@ -16758,7 +17640,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/delete03.at:27: +$as_echo "$at_srcdir/delete03.at:26: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -16777,7 +17659,7 @@ tar -cf archive ./\$prefix* && tar --delete -f archive ./\${prefix}5 && tar -tf archive )" -at_fn_check_prepare_notrace 'a ${...} parameter expansion' "delete03.at:27" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "delete03.at:26" ( $at_check_trace; mkdir gnu (cd gnu @@ -16811,12 +17693,12 @@ echo >>"$at_stdout"; $as_echo "./This_is_a_very_long_file_name_prefix_that_is_de ./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:27" +at_fn_check_status 0 $at_status "$at_srcdir/delete03.at:26" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/delete03.at:27: +$as_echo "$at_srcdir/delete03.at:26: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -16835,7 +17717,7 @@ tar -cf archive ./\$prefix* && tar --delete -f archive ./\${prefix}5 && tar -tf archive )" -at_fn_check_prepare_notrace 'a ${...} parameter expansion' "delete03.at:27" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "delete03.at:26" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -16869,12 +17751,12 @@ echo >>"$at_stdout"; $as_echo "./This_is_a_very_long_file_name_prefix_that_is_de ./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:27" +at_fn_check_status 0 $at_status "$at_srcdir/delete03.at:26" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/delete03.at:27: +$as_echo "$at_srcdir/delete03.at:26: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -16893,7 +17775,7 @@ tar -cf archive ./\$prefix* && tar --delete -f archive ./\${prefix}5 && tar -tf archive )" -at_fn_check_prepare_notrace 'a ${...} parameter expansion' "delete03.at:27" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "delete03.at:26" ( $at_check_trace; mkdir posix (cd posix @@ -16927,7 +17809,7 @@ echo >>"$at_stdout"; $as_echo "./This_is_a_very_long_file_name_prefix_that_is_de ./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:27" +at_fn_check_status 0 $at_status "$at_srcdir/delete03.at:26" $at_failed && at_fn_log_failure $at_traceon; } @@ -16939,14 +17821,14 @@ $at_traceon; } $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 'delete04.at:24' \ - "deleting a large last member" " " 9 +#AT_STOP_78 +#AT_START_79 +at_fn_group_banner 79 'delete04.at:23' \ + "deleting a large last member" " " 12 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "68. $at_setup_line: testing $at_desc ..." + $as_echo "79. $at_setup_line: testing $at_desc ..." $at_traceon @@ -16954,7 +17836,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/delete04.at:27: +$as_echo "$at_srcdir/delete04.at:26: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -16977,7 +17859,7 @@ 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:27" +at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:26" ( $at_check_trace; mkdir v7 (cd v7 @@ -17016,12 +17898,12 @@ file8 file9 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:27" +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:27: +$as_echo "$at_srcdir/delete04.at:26: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -17044,7 +17926,7 @@ 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:27" +at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:26" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -17083,12 +17965,12 @@ file8 file9 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:27" +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:27: +$as_echo "$at_srcdir/delete04.at:26: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -17111,7 +17993,7 @@ 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:27" +at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:26" ( $at_check_trace; mkdir ustar (cd ustar @@ -17150,12 +18032,12 @@ file8 file9 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:27" +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:27: +$as_echo "$at_srcdir/delete04.at:26: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -17178,7 +18060,7 @@ 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:27" +at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:26" ( $at_check_trace; mkdir posix (cd posix @@ -17217,12 +18099,12 @@ file8 file9 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:27" +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:27: +$as_echo "$at_srcdir/delete04.at:26: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -17245,7 +18127,7 @@ 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:27" +at_fn_check_prepare_notrace 'an embedded newline' "delete04.at:26" ( $at_check_trace; mkdir gnu (cd gnu @@ -17284,7 +18166,7 @@ file8 file9 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:27" +at_fn_check_status 0 $at_status "$at_srcdir/delete04.at:26" $at_failed && at_fn_log_failure $at_traceon; } @@ -17295,14 +18177,14 @@ $at_traceon; } $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 'delete05.at:28' \ - "deleting non-existing member" " " 9 +#AT_STOP_79 +#AT_START_80 +at_fn_group_banner 80 'delete05.at:27' \ + "deleting non-existing member" " " 12 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "69. $at_setup_line: testing $at_desc ..." + $as_echo "80. $at_setup_line: testing $at_desc ..." $at_traceon @@ -17310,7 +18192,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/delete05.at:31: +$as_echo "$at_srcdir/delete05.at:30: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -17328,7 +18210,7 @@ tar cf archive en to tar --file archive --blocking-factor=20 --delete tre tar tf archive )" -at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:31" +at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:30" ( $at_check_trace; mkdir v7 (cd v7 @@ -17358,12 +18240,12 @@ echo >>"$at_stdout"; $as_echo "en to " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:31" +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:31: +$as_echo "$at_srcdir/delete05.at:30: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -17381,7 +18263,7 @@ tar cf archive en to tar --file archive --blocking-factor=20 --delete tre tar tf archive )" -at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:31" +at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:30" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -17411,12 +18293,12 @@ echo >>"$at_stdout"; $as_echo "en to " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:31" +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:31: +$as_echo "$at_srcdir/delete05.at:30: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -17434,7 +18316,7 @@ tar cf archive en to tar --file archive --blocking-factor=20 --delete tre tar tf archive )" -at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:31" +at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:30" ( $at_check_trace; mkdir ustar (cd ustar @@ -17464,12 +18346,12 @@ echo >>"$at_stdout"; $as_echo "en to " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:31" +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:31: +$as_echo "$at_srcdir/delete05.at:30: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -17487,7 +18369,7 @@ tar cf archive en to tar --file archive --blocking-factor=20 --delete tre tar tf archive )" -at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:31" +at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:30" ( $at_check_trace; mkdir posix (cd posix @@ -17517,12 +18399,12 @@ echo >>"$at_stdout"; $as_echo "en to " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:31" +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:31: +$as_echo "$at_srcdir/delete05.at:30: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -17540,7 +18422,7 @@ tar cf archive en to tar --file archive --blocking-factor=20 --delete tre tar tf archive )" -at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:31" +at_fn_check_prepare_notrace 'an embedded newline' "delete05.at:30" ( $at_check_trace; mkdir gnu (cd gnu @@ -17570,7 +18452,7 @@ echo >>"$at_stdout"; $as_echo "en to " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:31" +at_fn_check_status 0 $at_status "$at_srcdir/delete05.at:30" $at_failed && at_fn_log_failure $at_traceon; } @@ -17581,14 +18463,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'extrac01.at:24' \ - "extract over an existing directory" " " 10 +#AT_STOP_80 +#AT_START_81 +at_fn_group_banner 81 'extrac01.at:23' \ + "extract over an existing directory" " " 13 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "70. $at_setup_line: testing $at_desc ..." + $as_echo "81. $at_setup_line: testing $at_desc ..." $at_traceon @@ -17596,7 +18478,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/extrac01.at:27: +$as_echo "$at_srcdir/extrac01.at:26: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -17610,7 +18492,7 @@ 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:27" +at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:26" ( $at_check_trace; mkdir v7 (cd v7 @@ -17630,12 +18512,12 @@ 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:27" +at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:26" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/extrac01.at:27: +$as_echo "$at_srcdir/extrac01.at:26: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -17649,7 +18531,7 @@ 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:27" +at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:26" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -17669,12 +18551,12 @@ 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:27" +at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:26" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/extrac01.at:27: +$as_echo "$at_srcdir/extrac01.at:26: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -17688,7 +18570,7 @@ 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:27" +at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:26" ( $at_check_trace; mkdir ustar (cd ustar @@ -17708,12 +18590,12 @@ 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:27" +at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:26" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/extrac01.at:27: +$as_echo "$at_srcdir/extrac01.at:26: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -17727,7 +18609,7 @@ 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:27" +at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:26" ( $at_check_trace; mkdir posix (cd posix @@ -17747,12 +18629,12 @@ 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:27" +at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:26" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/extrac01.at:27: +$as_echo "$at_srcdir/extrac01.at:26: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -17766,7 +18648,7 @@ 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:27" +at_fn_check_prepare_notrace 'an embedded newline' "extrac01.at:26" ( $at_check_trace; mkdir gnu (cd gnu @@ -17786,7 +18668,7 @@ 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:27" +at_fn_check_status 0 $at_status "$at_srcdir/extrac01.at:26" $at_failed && at_fn_log_failure $at_traceon; } @@ -17797,14 +18679,14 @@ $at_traceon; } $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 'extrac02.at:24' \ - "extracting symlinks over an existing file" " " 10 +#AT_STOP_81 +#AT_START_82 +at_fn_group_banner 82 'extrac02.at:23' \ + "extracting symlinks over an existing file" " " 13 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "71. $at_setup_line: testing $at_desc ..." + $as_echo "82. $at_setup_line: testing $at_desc ..." $at_traceon @@ -17814,7 +18696,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/extrac02.at:29: +$as_echo "$at_srcdir/extrac02.at:28: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -17830,7 +18712,7 @@ rm link touch link tar xf archive )" -at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:29" +at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:28" ( $at_check_trace; mkdir v7 (cd v7 @@ -17852,12 +18734,12 @@ 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:29" +at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:28" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/extrac02.at:29: +$as_echo "$at_srcdir/extrac02.at:28: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -17873,7 +18755,7 @@ rm link touch link tar xf archive )" -at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:29" +at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:28" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -17895,12 +18777,12 @@ 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:29" +at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:28" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/extrac02.at:29: +$as_echo "$at_srcdir/extrac02.at:28: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -17916,7 +18798,7 @@ rm link touch link tar xf archive )" -at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:29" +at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:28" ( $at_check_trace; mkdir ustar (cd ustar @@ -17938,12 +18820,12 @@ 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:29" +at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:28" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/extrac02.at:29: +$as_echo "$at_srcdir/extrac02.at:28: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -17959,7 +18841,7 @@ rm link touch link tar xf archive )" -at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:29" +at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:28" ( $at_check_trace; mkdir posix (cd posix @@ -17981,12 +18863,12 @@ 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:29" +at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:28" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/extrac02.at:29: +$as_echo "$at_srcdir/extrac02.at:28: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -18002,7 +18884,7 @@ rm link touch link tar xf archive )" -at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:29" +at_fn_check_prepare_notrace 'an embedded newline' "extrac02.at:28" ( $at_check_trace; mkdir gnu (cd gnu @@ -18024,7 +18906,7 @@ 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:29" +at_fn_check_status 0 $at_status "$at_srcdir/extrac02.at:28" $at_failed && at_fn_log_failure $at_traceon; } @@ -18035,14 +18917,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'extrac03.at:24' \ - "extraction loops" " " 10 +#AT_STOP_82 +#AT_START_83 +at_fn_group_banner 83 'extrac03.at:23' \ + "extraction loops" " " 13 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "72. $at_setup_line: testing $at_desc ..." + $as_echo "83. $at_setup_line: testing $at_desc ..." $at_traceon @@ -18050,7 +18932,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/extrac03.at:27: +$as_echo "$at_srcdir/extrac03.at:26: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -18063,7 +18945,7 @@ 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:27" +at_fn_check_prepare_notrace 'an embedded newline' "extrac03.at:26" ( $at_check_trace; mkdir v7 (cd v7 @@ -18086,12 +18968,12 @@ separator directory/../directory/ " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/extrac03.at:27" +at_fn_check_status 0 $at_status "$at_srcdir/extrac03.at:26" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/extrac03.at:27: +$as_echo "$at_srcdir/extrac03.at:26: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -18104,7 +18986,7 @@ 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:27" +at_fn_check_prepare_notrace 'an embedded newline' "extrac03.at:26" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -18127,12 +19009,12 @@ separator directory/../directory/ " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/extrac03.at:27" +at_fn_check_status 0 $at_status "$at_srcdir/extrac03.at:26" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/extrac03.at:27: +$as_echo "$at_srcdir/extrac03.at:26: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -18145,7 +19027,7 @@ 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:27" +at_fn_check_prepare_notrace 'an embedded newline' "extrac03.at:26" ( $at_check_trace; mkdir ustar (cd ustar @@ -18168,12 +19050,12 @@ separator directory/../directory/ " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/extrac03.at:27" +at_fn_check_status 0 $at_status "$at_srcdir/extrac03.at:26" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/extrac03.at:27: +$as_echo "$at_srcdir/extrac03.at:26: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -18186,7 +19068,7 @@ 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:27" +at_fn_check_prepare_notrace 'an embedded newline' "extrac03.at:26" ( $at_check_trace; mkdir posix (cd posix @@ -18209,12 +19091,12 @@ separator directory/../directory/ " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/extrac03.at:27" +at_fn_check_status 0 $at_status "$at_srcdir/extrac03.at:26" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/extrac03.at:27: +$as_echo "$at_srcdir/extrac03.at:26: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -18227,7 +19109,7 @@ 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:27" +at_fn_check_prepare_notrace 'an embedded newline' "extrac03.at:26" ( $at_check_trace; mkdir gnu (cd gnu @@ -18250,7 +19132,7 @@ separator directory/../directory/ " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/extrac03.at:27" +at_fn_check_status 0 $at_status "$at_srcdir/extrac03.at:26" $at_failed && at_fn_log_failure $at_traceon; } @@ -18261,14 +19143,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'extrac04.at:24' \ - "extract + fnmatch" " " 10 +#AT_STOP_83 +#AT_START_84 +at_fn_group_banner 84 'extrac04.at:23' \ + "extract + fnmatch" " " 13 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "73. $at_setup_line: testing $at_desc ..." + $as_echo "84. $at_setup_line: testing $at_desc ..." $at_traceon @@ -18276,7 +19158,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/extrac04.at:27: +$as_echo "$at_srcdir/extrac04.at:26: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -18301,7 +19183,7 @@ tar -tf archive \\ --exclude='d*/*1' \\ --exclude='d*/s*/*2' | sort )" -at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:27" +at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:26" ( $at_check_trace; mkdir v7 (cd v7 @@ -18336,12 +19218,12 @@ directory/file2 directory/subdirectory/ " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:27" +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:27: +$as_echo "$at_srcdir/extrac04.at:26: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -18366,7 +19248,7 @@ tar -tf archive \\ --exclude='d*/*1' \\ --exclude='d*/s*/*2' | sort )" -at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:27" +at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:26" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -18401,12 +19283,12 @@ directory/file2 directory/subdirectory/ " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:27" +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:27: +$as_echo "$at_srcdir/extrac04.at:26: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -18431,7 +19313,7 @@ tar -tf archive \\ --exclude='d*/*1' \\ --exclude='d*/s*/*2' | sort )" -at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:27" +at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:26" ( $at_check_trace; mkdir ustar (cd ustar @@ -18466,12 +19348,12 @@ directory/file2 directory/subdirectory/ " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:27" +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:27: +$as_echo "$at_srcdir/extrac04.at:26: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -18496,7 +19378,7 @@ tar -tf archive \\ --exclude='d*/*1' \\ --exclude='d*/s*/*2' | sort )" -at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:27" +at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:26" ( $at_check_trace; mkdir posix (cd posix @@ -18531,12 +19413,12 @@ directory/file2 directory/subdirectory/ " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:27" +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:27: +$as_echo "$at_srcdir/extrac04.at:26: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -18561,7 +19443,7 @@ tar -tf archive \\ --exclude='d*/*1' \\ --exclude='d*/s*/*2' | sort )" -at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:27" +at_fn_check_prepare_notrace 'a `...` command substitution' "extrac04.at:26" ( $at_check_trace; mkdir gnu (cd gnu @@ -18596,7 +19478,7 @@ directory/file2 directory/subdirectory/ " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:27" +at_fn_check_status 0 $at_status "$at_srcdir/extrac04.at:26" $at_failed && at_fn_log_failure $at_traceon; } @@ -18607,14 +19489,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'extrac05.at:31' \ - "extracting selected members from pax" " " 10 +#AT_STOP_84 +#AT_START_85 +at_fn_group_banner 85 'extrac05.at:30' \ + "extracting selected members from pax" " " 13 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "74. $at_setup_line: testing $at_desc ..." + $as_echo "85. $at_setup_line: testing $at_desc ..." $at_traceon @@ -18628,7 +19510,7 @@ _ATEOF { set +x -$as_echo "$at_srcdir/extrac05.at:39: +$as_echo "$at_srcdir/extrac05.at:38: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -18652,7 +19534,7 @@ tar xvfT ../archive ../../list --warning=no-timestamp || exit 1 cd .. )" -at_fn_check_prepare_notrace 'an embedded newline' "extrac05.at:39" +at_fn_check_prepare_notrace 'an embedded newline' "extrac05.at:38" ( $at_check_trace; mkdir posix (cd posix @@ -18685,7 +19567,7 @@ echo >>"$at_stdout"; $as_echo "jeden cztery " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/extrac05.at:39" +at_fn_check_status 0 $at_status "$at_srcdir/extrac05.at:38" $at_failed && at_fn_log_failure $at_traceon; } @@ -18696,14 +19578,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'extrac06.at:35' \ - "mode of extracted directories" " " 10 +#AT_STOP_85 +#AT_START_86 +at_fn_group_banner 86 'extrac06.at:34' \ + "mode of extracted directories" " " 13 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "75. $at_setup_line: testing $at_desc ..." + $as_echo "86. $at_setup_line: testing $at_desc ..." $at_traceon @@ -18711,7 +19593,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/extrac06.at:38: +$as_echo "$at_srcdir/extrac06.at:37: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -18748,7 +19630,7 @@ genfile --stat=mode:777 directory # After both restores, the directory mode should be 755 )" -at_fn_check_prepare_notrace 'an embedded newline' "extrac06.at:38" +at_fn_check_prepare_notrace 'an embedded newline' "extrac06.at:37" ( $at_check_trace; mkdir v7 (cd v7 @@ -18796,12 +19678,12 @@ echo >>"$at_stdout"; $as_echo "777 755 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/extrac06.at:38" +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:38: +$as_echo "$at_srcdir/extrac06.at:37: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -18838,7 +19720,7 @@ genfile --stat=mode:777 directory # After both restores, the directory mode should be 755 )" -at_fn_check_prepare_notrace 'an embedded newline' "extrac06.at:38" +at_fn_check_prepare_notrace 'an embedded newline' "extrac06.at:37" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -18886,12 +19768,12 @@ echo >>"$at_stdout"; $as_echo "777 755 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/extrac06.at:38" +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:38: +$as_echo "$at_srcdir/extrac06.at:37: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -18928,7 +19810,7 @@ genfile --stat=mode:777 directory # After both restores, the directory mode should be 755 )" -at_fn_check_prepare_notrace 'an embedded newline' "extrac06.at:38" +at_fn_check_prepare_notrace 'an embedded newline' "extrac06.at:37" ( $at_check_trace; mkdir ustar (cd ustar @@ -18976,12 +19858,12 @@ echo >>"$at_stdout"; $as_echo "777 755 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/extrac06.at:38" +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:38: +$as_echo "$at_srcdir/extrac06.at:37: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -19018,7 +19900,7 @@ genfile --stat=mode:777 directory # After both restores, the directory mode should be 755 )" -at_fn_check_prepare_notrace 'an embedded newline' "extrac06.at:38" +at_fn_check_prepare_notrace 'an embedded newline' "extrac06.at:37" ( $at_check_trace; mkdir posix (cd posix @@ -19066,12 +19948,12 @@ echo >>"$at_stdout"; $as_echo "777 755 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/extrac06.at:38" +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:38: +$as_echo "$at_srcdir/extrac06.at:37: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -19108,7 +19990,7 @@ genfile --stat=mode:777 directory # After both restores, the directory mode should be 755 )" -at_fn_check_prepare_notrace 'an embedded newline' "extrac06.at:38" +at_fn_check_prepare_notrace 'an embedded newline' "extrac06.at:37" ( $at_check_trace; mkdir gnu (cd gnu @@ -19156,7 +20038,7 @@ echo >>"$at_stdout"; $as_echo "777 755 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/extrac06.at:38" +at_fn_check_status 0 $at_status "$at_srcdir/extrac06.at:37" $at_failed && at_fn_log_failure $at_traceon; } @@ -19167,14 +20049,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'extrac07.at:28' \ - "extracting symlinks to a read-only dir" " " 10 +#AT_STOP_86 +#AT_START_87 +at_fn_group_banner 87 'extrac07.at:27' \ + "extracting symlinks to a read-only dir" " " 13 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "76. $at_setup_line: testing $at_desc ..." + $as_echo "87. $at_setup_line: testing $at_desc ..." $at_traceon @@ -19182,7 +20064,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/extrac07.at:31: +$as_echo "$at_srcdir/extrac07.at:30: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -19217,7 +20099,7 @@ echo Extract mkdir out tar -C out -xvf archive )" -at_fn_check_prepare_notrace 'an embedded newline' "extrac07.at:31" +at_fn_check_prepare_notrace 'an embedded newline' "extrac07.at:30" ( $at_check_trace; mkdir ustar (cd ustar @@ -19264,7 +20146,7 @@ dir/ dir/foo " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/extrac07.at:31" +at_fn_check_status 0 $at_status "$at_srcdir/extrac07.at:30" $at_failed && at_fn_log_failure $at_traceon; } @@ -19275,14 +20157,14 @@ $at_traceon; } $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 'extrac08.at:33' \ - "restoring mode on existing directory" " " 10 +#AT_STOP_87 +#AT_START_88 +at_fn_group_banner 88 'extrac08.at:33' \ + "restoring mode on existing directory" " " 13 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "77. $at_setup_line: testing $at_desc ..." + $as_echo "88. $at_setup_line: testing $at_desc ..." $at_traceon @@ -19551,14 +20433,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'extrac09.at:34' \ - "extracting even when . and .. are unreadable" " " 10 +#AT_STOP_88 +#AT_START_89 +at_fn_group_banner 89 'extrac09.at:34' \ + "extracting even when . and .. are unreadable" " " 13 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "78. $at_setup_line: testing $at_desc ..." + $as_echo "89. $at_setup_line: testing $at_desc ..." $at_traceon @@ -19651,14 +20533,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'extrac10.at:29' \ - "-C and delayed setting of metadata" " " 10 +#AT_STOP_89 +#AT_START_90 +at_fn_group_banner 90 'extrac10.at:29' \ + "-C and delayed setting of metadata" " " 13 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "79. $at_setup_line: testing $at_desc ..." + $as_echo "90. $at_setup_line: testing $at_desc ..." $at_traceon @@ -19719,14 +20601,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'extrac11.at:25' \ - "scarce file descriptors" " " 10 +#AT_STOP_90 +#AT_START_91 +at_fn_group_banner 91 'extrac11.at:25' \ + "scarce file descriptors" " " 13 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "80. $at_setup_line: testing $at_desc ..." + $as_echo "91. $at_setup_line: testing $at_desc ..." $at_traceon @@ -19879,14 +20761,14 @@ $at_traceon; } $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 'extrac12.at:25' \ - "extract dot permissions" " " 10 +#AT_STOP_91 +#AT_START_92 +at_fn_group_banner 92 'extrac12.at:25' \ + "extract dot permissions" " " 13 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "81. $at_setup_line: testing $at_desc ..." + $as_echo "92. $at_setup_line: testing $at_desc ..." $at_traceon @@ -19949,14 +20831,14 @@ $at_traceon; } $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 'extrac13.at:26' \ - "extract over symlinks" " " 10 +#AT_STOP_92 +#AT_START_93 +at_fn_group_banner 93 'extrac13.at:26' \ + "extract over symlinks" " " 13 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "82. $at_setup_line: testing $at_desc ..." + $as_echo "93. $at_setup_line: testing $at_desc ..." $at_traceon @@ -20045,14 +20927,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'extrac14.at:25' \ - "extract -C symlink" " " 10 +#AT_STOP_93 +#AT_START_94 +at_fn_group_banner 94 'extrac14.at:25' \ + "extract -C symlink" " " 13 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "83. $at_setup_line: testing $at_desc ..." + $as_echo "94. $at_setup_line: testing $at_desc ..." $at_traceon @@ -20109,14 +20991,14 @@ $at_traceon; } $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 'extrac15.at:25' \ - "extract parent mkdir failure" " " 10 +#AT_STOP_94 +#AT_START_95 +at_fn_group_banner 95 'extrac15.at:25' \ + "extract parent mkdir failure" " " 13 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "84. $at_setup_line: testing $at_desc ..." + $as_echo "95. $at_setup_line: testing $at_desc ..." $at_traceon @@ -20201,14 +21083,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'extrac16.at:26' \ - "extract empty directory with -C" " " 10 +#AT_STOP_95 +#AT_START_96 +at_fn_group_banner 96 'extrac16.at:26' \ + "extract empty directory with -C" " " 13 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "85. $at_setup_line: testing $at_desc ..." + $as_echo "96. $at_setup_line: testing $at_desc ..." $at_traceon @@ -20263,14 +21145,14 @@ $at_traceon; } $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 'extrac17.at:21' \ - "name matching/transformation ordering" " " 10 +#AT_STOP_96 +#AT_START_97 +at_fn_group_banner 97 'extrac17.at:21' \ + "name matching/transformation ordering" " " 13 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "86. $at_setup_line: testing $at_desc ..." + $as_echo "97. $at_setup_line: testing $at_desc ..." $at_traceon @@ -20539,14 +21421,14 @@ $at_traceon; } $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 'extrac18.at:34' \ - "keep-old-files" " " 10 +#AT_STOP_97 +#AT_START_98 +at_fn_group_banner 98 'extrac18.at:34' \ + "keep-old-files" " " 13 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "87. $at_setup_line: testing $at_desc ..." + $as_echo "98. $at_setup_line: testing $at_desc ..." $at_traceon @@ -20885,14 +21767,14 @@ $at_traceon; } $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 'extrac19.at:21' \ - "skip-old-files" " " 10 +#AT_STOP_98 +#AT_START_99 +at_fn_group_banner 99 'extrac19.at:21' \ + "skip-old-files" " " 13 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "88. $at_setup_line: testing $at_desc ..." + $as_echo "99. $at_setup_line: testing $at_desc ..." $at_traceon @@ -21216,14 +22098,14 @@ $at_traceon; } $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 'extrac20.at:21' \ - "keep-directory-symlink" " " 10 +#AT_STOP_99 +#AT_START_100 +at_fn_group_banner 100 'extrac20.at:21' \ + "keep-directory-symlink" " " 13 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "89. $at_setup_line: testing $at_desc ..." + $as_echo "100. $at_setup_line: testing $at_desc ..." $at_traceon @@ -22322,14 +23204,14 @@ $at_traceon; } $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 'extrac21.at:31' \ - "delay-directory-restore" " " 10 +#AT_STOP_100 +#AT_START_101 +at_fn_group_banner 101 'extrac21.at:31' \ + "delay-directory-restore" " " 13 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "90. $at_setup_line: testing $at_desc ..." + $as_echo "101. $at_setup_line: testing $at_desc ..." $at_traceon @@ -22418,14 +23300,14 @@ $at_traceon; } $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 'backup01.at:34' \ - "extracting existing dir with --backup" " " 10 +#AT_STOP_101 +#AT_START_102 +at_fn_group_banner 102 'backup01.at:33' \ + "extracting existing dir with --backup" " " 13 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "91. $at_setup_line: testing $at_desc ..." + $as_echo "102. $at_setup_line: testing $at_desc ..." $at_traceon @@ -22433,7 +23315,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/backup01.at:37: +$as_echo "$at_srcdir/backup01.at:36: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -22448,7 +23330,7 @@ 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:37" +at_fn_check_prepare_notrace 'an embedded newline' "backup01.at:36" ( $at_check_trace; mkdir v7 (cd v7 @@ -22474,12 +23356,12 @@ Renaming 'dir1/file1' to 'dir1/file1~' dir2/ " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/backup01.at:37" +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:37: +$as_echo "$at_srcdir/backup01.at:36: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -22494,7 +23376,7 @@ 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:37" +at_fn_check_prepare_notrace 'an embedded newline' "backup01.at:36" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -22520,12 +23402,12 @@ Renaming 'dir1/file1' to 'dir1/file1~' dir2/ " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/backup01.at:37" +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:37: +$as_echo "$at_srcdir/backup01.at:36: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -22540,7 +23422,7 @@ 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:37" +at_fn_check_prepare_notrace 'an embedded newline' "backup01.at:36" ( $at_check_trace; mkdir ustar (cd ustar @@ -22566,12 +23448,12 @@ Renaming 'dir1/file1' to 'dir1/file1~' dir2/ " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/backup01.at:37" +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:37: +$as_echo "$at_srcdir/backup01.at:36: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -22586,7 +23468,7 @@ 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:37" +at_fn_check_prepare_notrace 'an embedded newline' "backup01.at:36" ( $at_check_trace; mkdir posix (cd posix @@ -22612,12 +23494,12 @@ Renaming 'dir1/file1' to 'dir1/file1~' dir2/ " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/backup01.at:37" +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:37: +$as_echo "$at_srcdir/backup01.at:36: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -22632,7 +23514,7 @@ 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:37" +at_fn_check_prepare_notrace 'an embedded newline' "backup01.at:36" ( $at_check_trace; mkdir gnu (cd gnu @@ -22658,7 +23540,7 @@ Renaming 'dir1/file1' to 'dir1/file1~' dir2/ " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/backup01.at:37" +at_fn_check_status 0 $at_status "$at_srcdir/backup01.at:36" $at_failed && at_fn_log_failure $at_traceon; } @@ -22669,14 +23551,14 @@ $at_traceon; } $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 'difflink.at:17' \ - "link mismatch" " " 11 +#AT_STOP_102 +#AT_START_103 +at_fn_group_banner 103 'difflink.at:17' \ + "link mismatch" " " 14 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "92. $at_setup_line: testing $at_desc ..." + $as_echo "103. $at_setup_line: testing $at_desc ..." $at_traceon @@ -22695,8 +23577,8 @@ rm -rf * mkdir a genfile -f a/x ln -s x a/y -ln a/y a/z -tar cf a.tar a +ln a/x a/z +tar cf a.tar a/x a/y a/z rm a/z ln -s x a/z tar df a.tar @@ -22714,8 +23596,8 @@ rm -rf * mkdir a genfile -f a/x ln -s x a/y -ln a/y a/z -tar cf a.tar a +ln a/x a/z +tar cf a.tar a/x a/y a/z rm a/z ln -s x a/z tar df a.tar @@ -22724,7 +23606,7 @@ tar df a.tar at_status=$? at_failed=false $at_check_filter at_fn_diff_devnull "$at_stderr" || at_failed=: -echo >>"$at_stdout"; $as_echo "a/z: Not linked to a/y +echo >>"$at_stdout"; $as_echo "a/z: Not linked to a/x " | \ $at_diff - "$at_stdout" || at_failed=: at_fn_check_status 1 $at_status "$at_srcdir/difflink.at:19" @@ -22737,14 +23619,14 @@ $at_traceon; } $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 'label01.at:21' \ - "single-volume label" " " 12 +#AT_STOP_103 +#AT_START_104 +at_fn_group_banner 104 'label01.at:21' \ + "single-volume label" " " 15 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "93. $at_setup_line: testing $at_desc ..." + $as_echo "104. $at_setup_line: testing $at_desc ..." $at_traceon @@ -22887,14 +23769,14 @@ $at_traceon; } $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 'label02.at:21' \ - "multi-volume label" " " 12 +#AT_STOP_104 +#AT_START_105 +at_fn_group_banner 105 'label02.at:21' \ + "multi-volume label" " " 15 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "94. $at_setup_line: testing $at_desc ..." + $as_echo "105. $at_setup_line: testing $at_desc ..." $at_traceon @@ -23052,14 +23934,14 @@ $at_traceon; } $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 'label03.at:27' \ - "test-label option" " " 12 +#AT_STOP_105 +#AT_START_106 +at_fn_group_banner 106 'label03.at:27' \ + "test-label option" " " 15 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "95. $at_setup_line: testing $at_desc ..." + $as_echo "106. $at_setup_line: testing $at_desc ..." $at_traceon @@ -23397,14 +24279,14 @@ $at_traceon; } $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 'label04.at:27' \ - "label with non-create option" " " 12 +#AT_STOP_106 +#AT_START_107 +at_fn_group_banner 107 'label04.at:27' \ + "label with non-create option" " " 15 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "96. $at_setup_line: testing $at_desc ..." + $as_echo "107. $at_setup_line: testing $at_desc ..." $at_traceon @@ -23592,14 +24474,14 @@ $at_traceon; } $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 'label05.at:24' \ - "label with non-create option" " " 12 +#AT_STOP_107 +#AT_START_108 +at_fn_group_banner 108 'label05.at:24' \ + "label with non-create option" " " 15 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "97. $at_setup_line: testing $at_desc ..." + $as_echo "108. $at_setup_line: testing $at_desc ..." $at_traceon @@ -23787,14 +24669,14 @@ $at_traceon; } $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 'incremental.at:24' \ - "incremental" " " 13 +#AT_STOP_108 +#AT_START_109 +at_fn_group_banner 109 'incremental.at:23' \ + "incremental" " " 16 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "98. $at_setup_line: testing $at_desc ..." + $as_echo "109. $at_setup_line: testing $at_desc ..." $at_traceon @@ -23802,7 +24684,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/incremental.at:27: +$as_echo "$at_srcdir/incremental.at:26: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -23840,7 +24722,7 @@ sleep 2 echo y >structure/file tar cfv archive --listed=list structure )" -at_fn_check_prepare_notrace 'an embedded newline' "incremental.at:27" +at_fn_check_prepare_notrace 'an embedded newline' "incremental.at:26" ( $at_check_trace; mkdir gnu (cd gnu @@ -23889,12 +24771,12 @@ structure/ structure/file " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/incremental.at:27" +at_fn_check_status 0 $at_status "$at_srcdir/incremental.at:26" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/incremental.at:27: +$as_echo "$at_srcdir/incremental.at:26: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -23932,7 +24814,7 @@ sleep 2 echo y >structure/file tar cfv archive --listed=list structure )" -at_fn_check_prepare_notrace 'an embedded newline' "incremental.at:27" +at_fn_check_prepare_notrace 'an embedded newline' "incremental.at:26" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -23981,12 +24863,12 @@ structure/ structure/file " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/incremental.at:27" +at_fn_check_status 0 $at_status "$at_srcdir/incremental.at:26" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/incremental.at:27: +$as_echo "$at_srcdir/incremental.at:26: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -24024,7 +24906,7 @@ sleep 2 echo y >structure/file tar cfv archive --listed=list structure )" -at_fn_check_prepare_notrace 'an embedded newline' "incremental.at:27" +at_fn_check_prepare_notrace 'an embedded newline' "incremental.at:26" ( $at_check_trace; mkdir posix (cd posix @@ -24073,7 +24955,7 @@ structure/ structure/file " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/incremental.at:27" +at_fn_check_status 0 $at_status "$at_srcdir/incremental.at:26" $at_failed && at_fn_log_failure $at_traceon; } @@ -24084,14 +24966,14 @@ $at_traceon; } $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 'incr01.at:28' \ - "restore broken symlinks from incremental" " " 13 +#AT_STOP_109 +#AT_START_110 +at_fn_group_banner 110 'incr01.at:27' \ + "restore broken symlinks from incremental" " " 16 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "99. $at_setup_line: testing $at_desc ..." + $as_echo "110. $at_setup_line: testing $at_desc ..." $at_traceon @@ -24099,7 +24981,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/incr01.at:31: +$as_echo "$at_srcdir/incr01.at:30: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -24123,7 +25005,7 @@ 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:31" +at_fn_check_prepare_notrace 'an embedded newline' "incr01.at:30" ( $at_check_trace; mkdir gnu (cd gnu @@ -24159,12 +25041,12 @@ directory/ tar: Deleting 'directory/bar' " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/incr01.at:31" +at_fn_check_status 0 $at_status "$at_srcdir/incr01.at:30" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/incr01.at:31: +$as_echo "$at_srcdir/incr01.at:30: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -24188,7 +25070,7 @@ 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:31" +at_fn_check_prepare_notrace 'an embedded newline' "incr01.at:30" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -24224,12 +25106,12 @@ directory/ tar: Deleting 'directory/bar' " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/incr01.at:31" +at_fn_check_status 0 $at_status "$at_srcdir/incr01.at:30" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/incr01.at:31: +$as_echo "$at_srcdir/incr01.at:30: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -24253,7 +25135,7 @@ 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:31" +at_fn_check_prepare_notrace 'an embedded newline' "incr01.at:30" ( $at_check_trace; mkdir posix (cd posix @@ -24289,7 +25171,7 @@ directory/ tar: Deleting 'directory/bar' " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/incr01.at:31" +at_fn_check_status 0 $at_status "$at_srcdir/incr01.at:30" $at_failed && at_fn_log_failure $at_traceon; } @@ -24300,14 +25182,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'incr02.at:33' \ - "restoring timestamps from incremental" " " 13 +#AT_STOP_110 +#AT_START_111 +at_fn_group_banner 111 'incr02.at:32' \ + "restoring timestamps from incremental" " " 16 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "100. $at_setup_line: testing $at_desc ..." + $as_echo "111. $at_setup_line: testing $at_desc ..." $at_traceon @@ -24315,7 +25197,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/incr02.at:36: +$as_echo "$at_srcdir/incr02.at:35: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -24361,7 +25243,7 @@ tar -xf archive dir # Check the timestamp genfile --stat=mtime dir/subdir1 | diff ts - )" -at_fn_check_prepare_notrace 'an embedded newline' "incr02.at:36" +at_fn_check_prepare_notrace 'an embedded newline' "incr02.at:35" ( $at_check_trace; mkdir gnu (cd gnu @@ -24413,12 +25295,12 @@ 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:36" +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:36: +$as_echo "$at_srcdir/incr02.at:35: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -24464,7 +25346,7 @@ tar -xf archive dir # Check the timestamp genfile --stat=mtime dir/subdir1 | diff ts - )" -at_fn_check_prepare_notrace 'an embedded newline' "incr02.at:36" +at_fn_check_prepare_notrace 'an embedded newline' "incr02.at:35" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -24516,12 +25398,12 @@ 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:36" +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:36: +$as_echo "$at_srcdir/incr02.at:35: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -24567,7 +25449,7 @@ tar -xf archive dir # Check the timestamp genfile --stat=mtime dir/subdir1 | diff ts - )" -at_fn_check_prepare_notrace 'an embedded newline' "incr02.at:36" +at_fn_check_prepare_notrace 'an embedded newline' "incr02.at:35" ( $at_check_trace; mkdir posix (cd posix @@ -24619,7 +25501,7 @@ 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:36" +at_fn_check_status 0 $at_status "$at_srcdir/incr02.at:35" $at_failed && at_fn_log_failure $at_traceon; } @@ -24630,14 +25512,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'listed01.at:27' \ - "--listed for individual files" " " 13 +#AT_STOP_111 +#AT_START_112 +at_fn_group_banner 112 'listed01.at:26' \ + "--listed for individual files" " " 16 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "101. $at_setup_line: testing $at_desc ..." + $as_echo "112. $at_setup_line: testing $at_desc ..." $at_traceon @@ -24645,7 +25527,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/listed01.at:30: +$as_echo "$at_srcdir/listed01.at:29: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -24681,7 +25563,7 @@ tar --create \\ tar tf archive.2 || exit 1 )" -at_fn_check_prepare_notrace 'an embedded newline' "listed01.at:30" +at_fn_check_prepare_notrace 'an embedded newline' "listed01.at:29" ( $at_check_trace; mkdir gnu (cd gnu @@ -24727,12 +25609,12 @@ separator directory/file2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/listed01.at:30" +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:30: +$as_echo "$at_srcdir/listed01.at:29: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -24768,7 +25650,7 @@ tar --create \\ tar tf archive.2 || exit 1 )" -at_fn_check_prepare_notrace 'an embedded newline' "listed01.at:30" +at_fn_check_prepare_notrace 'an embedded newline' "listed01.at:29" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -24814,7 +25696,7 @@ separator directory/file2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/listed01.at:30" +at_fn_check_status 0 $at_status "$at_srcdir/listed01.at:29" $at_failed && at_fn_log_failure $at_traceon; } @@ -24825,14 +25707,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'listed02.at:29' \ - "working --listed" " " 13 +#AT_STOP_112 +#AT_START_113 +at_fn_group_banner 113 'listed02.at:28' \ + "working --listed" " " 16 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "102. $at_setup_line: testing $at_desc ..." + $as_echo "113. $at_setup_line: testing $at_desc ..." $at_traceon @@ -24840,7 +25722,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/listed02.at:32: +$as_echo "$at_srcdir/listed02.at:31: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -24909,7 +25791,7 @@ 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:32" +at_fn_check_prepare_notrace 'a `...` command substitution' "listed02.at:31" ( $at_check_trace; mkdir gnu (cd gnu @@ -25049,12 +25931,12 @@ tart/c2/ca2 tart/c2/ca3 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/listed02.at:32" +at_fn_check_status 0 $at_status "$at_srcdir/listed02.at:31" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/listed02.at:32: +$as_echo "$at_srcdir/listed02.at:31: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -25123,7 +26005,7 @@ 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:32" +at_fn_check_prepare_notrace 'a `...` command substitution' "listed02.at:31" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -25263,7 +26145,7 @@ tart/c2/ca2 tart/c2/ca3 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/listed02.at:32" +at_fn_check_status 0 $at_status "$at_srcdir/listed02.at:31" $at_failed && at_fn_log_failure $at_traceon; } @@ -25274,14 +26156,14 @@ $at_traceon; } $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 'listed03.at:24' \ - "incremental dump when the parent directory is unreadable" "" 13 +#AT_STOP_113 +#AT_START_114 +at_fn_group_banner 114 'listed03.at:24' \ + "incremental dump when the parent directory is unreadable" "" 16 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "103. $at_setup_line: testing $at_desc ..." + $as_echo "114. $at_setup_line: testing $at_desc ..." $at_traceon @@ -25381,14 +26263,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'listed04.at:26' \ - "--listed-incremental and --one-file-system" " " 13 +#AT_STOP_114 +#AT_START_115 +at_fn_group_banner 115 'listed04.at:26' \ + "--listed-incremental and --one-file-system" " " 16 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "104. $at_setup_line: testing $at_desc ..." + $as_echo "115. $at_setup_line: testing $at_desc ..." $at_traceon @@ -25456,14 +26338,14 @@ $at_traceon; } $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 'listed05.at:33' \ - "--listed-incremental and remounted directories" " " 13 +#AT_STOP_115 +#AT_START_116 +at_fn_group_banner 116 'listed05.at:33' \ + "--listed-incremental and remounted directories" " " 16 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "105. $at_setup_line: testing $at_desc ..." + $as_echo "116. $at_setup_line: testing $at_desc ..." $at_traceon @@ -25586,14 +26468,14 @@ $at_traceon; } $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 'incr03.at:29' \ - "renamed files in incrementals" " " 13 +#AT_STOP_116 +#AT_START_117 +at_fn_group_banner 117 'incr03.at:28' \ + "renamed files in incrementals" " " 16 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "106. $at_setup_line: testing $at_desc ..." + $as_echo "117. $at_setup_line: testing $at_desc ..." $at_traceon @@ -25601,7 +26483,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/incr03.at:32: +$as_echo "$at_srcdir/incr03.at:31: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -25641,7 +26523,7 @@ 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:32" +at_fn_check_prepare_notrace 'a `...` command substitution' "incr03.at:31" ( $at_check_trace; mkdir gnu (cd gnu @@ -25703,12 +26585,12 @@ directory/y directory/z " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/incr03.at:32" +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:32: +$as_echo "$at_srcdir/incr03.at:31: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -25748,7 +26630,7 @@ 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:32" +at_fn_check_prepare_notrace 'a `...` command substitution' "incr03.at:31" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -25810,12 +26692,12 @@ directory/y directory/z " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/incr03.at:32" +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:32: +$as_echo "$at_srcdir/incr03.at:31: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -25855,7 +26737,7 @@ 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:32" +at_fn_check_prepare_notrace 'a `...` command substitution' "incr03.at:31" ( $at_check_trace; mkdir posix (cd posix @@ -25917,7 +26799,7 @@ directory/y directory/z " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/incr03.at:32" +at_fn_check_status 0 $at_status "$at_srcdir/incr03.at:31" $at_failed && at_fn_log_failure $at_traceon; } @@ -25928,14 +26810,14 @@ $at_traceon; } $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 'incr04.at:30' \ - "proper icontents initialization" " " 13 +#AT_STOP_117 +#AT_START_118 +at_fn_group_banner 118 'incr04.at:29' \ + "proper icontents initialization" " " 16 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "107. $at_setup_line: testing $at_desc ..." + $as_echo "118. $at_setup_line: testing $at_desc ..." $at_traceon @@ -25945,7 +26827,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/incr04.at:35: +$as_echo "$at_srcdir/incr04.at:34: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -25970,7 +26852,7 @@ 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:35" +at_fn_check_prepare_notrace 'an embedded newline' "incr04.at:34" ( $at_check_trace; mkdir gnu (cd gnu @@ -26154,12 +27036,12 @@ a/ a/c/ " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/incr04.at:35" +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:35: +$as_echo "$at_srcdir/incr04.at:34: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -26184,7 +27066,7 @@ 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:35" +at_fn_check_prepare_notrace 'an embedded newline' "incr04.at:34" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -26368,12 +27250,12 @@ a/ a/c/ " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/incr04.at:35" +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:35: +$as_echo "$at_srcdir/incr04.at:34: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -26398,7 +27280,7 @@ 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:35" +at_fn_check_prepare_notrace 'an embedded newline' "incr04.at:34" ( $at_check_trace; mkdir posix (cd posix @@ -26582,7 +27464,7 @@ a/ a/c/ " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/incr04.at:35" +at_fn_check_status 0 $at_status "$at_srcdir/incr04.at:34" $at_failed && at_fn_log_failure $at_traceon; } @@ -26594,14 +27476,14 @@ $at_traceon; } $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 'incr05.at:21' \ - "incremental dumps with -C" " " 13 +#AT_STOP_118 +#AT_START_119 +at_fn_group_banner 119 'incr05.at:21' \ + "incremental dumps with -C" " " 16 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "108. $at_setup_line: testing $at_desc ..." + $as_echo "119. $at_setup_line: testing $at_desc ..." $at_traceon @@ -26810,14 +27692,14 @@ $at_traceon; } $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 'incr06.at:21' \ - "incremental dumps of nested directories" " " 13 +#AT_STOP_119 +#AT_START_120 +at_fn_group_banner 120 'incr06.at:21' \ + "incremental dumps of nested directories" " " 16 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "109. $at_setup_line: testing $at_desc ..." + $as_echo "120. $at_setup_line: testing $at_desc ..." $at_traceon @@ -27143,14 +28025,14 @@ $at_traceon; } $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 'incr07.at:18' \ - "incremental restores with -C" " " 13 +#AT_STOP_120 +#AT_START_121 +at_fn_group_banner 121 'incr07.at:18' \ + "incremental restores with -C" " " 16 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "110. $at_setup_line: testing $at_desc ..." + $as_echo "121. $at_setup_line: testing $at_desc ..." $at_traceon @@ -27591,20 +28473,22 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'incr08.at:38' \ - "filename normalization" " " 13 +#AT_STOP_121 +#AT_START_122 +at_fn_group_banner 122 'incr08.at:38' \ + "filename normalization" " " 16 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "111. $at_setup_line: testing $at_desc ..." + $as_echo "122. $at_setup_line: testing $at_desc ..." $at_traceon + + { set +x $as_echo "$at_srcdir/incr08.at:41: mkdir gnu @@ -27631,9 +28515,7 @@ 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 +tar -cvf ../foo.tar --listed-incremental=../foo.snar -C foo . \$DIR )" at_fn_check_prepare_notrace 'a `...` command substitution' "incr08.at:41" ( $at_check_trace; @@ -27661,24 +28543,31 @@ 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 +tar -cvf ../foo.tar --listed-incremental=../foo.snar -C foo . $DIR ) ) >>"$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 stderr:; tee stderr <"$at_stderr" +echo stdout:; tee stdout <"$at_stdout" +at_fn_check_status 0 $at_status "$at_srcdir/incr08.at:41" +$at_failed && at_fn_log_failure +$at_traceon; } + + { set +x +$as_echo "$at_srcdir/incr08.at:41: +DIR=\`pwd\`/gnu/tartest +sed \"s|\$DIR|ABSPATH|\" stdout +" +at_fn_check_prepare_notrace 'a `...` command substitution' "incr08.at:41" +( $at_check_trace; +DIR=`pwd`/gnu/tartest +sed "s|$DIR|ABSPATH|" stdout + +) >>"$at_stdout" 2>>"$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 . ./foo @@ -27700,20 +28589,48 @@ $at_failed && at_fn_log_failure $at_traceon; } +{ set +x +$as_echo "$at_srcdir/incr08.at:41: +DIR=\`pwd\`/gnu/tartest +sed \"/tar: Removing leading \\\`\\/*\\/' from/d;s|\$DIR|ABSPATH|\" stderr" +at_fn_check_prepare_notrace 'a `...` command substitution' "incr08.at:41" +( $at_check_trace; +DIR=`pwd`/gnu/tartest +sed "/tar: Removing leading \`\/*\/' from/d;s|$DIR|ABSPATH|" stderr +) >>"$at_stdout" 2>>"$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 +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 +" | \ + $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_111 -#AT_START_112 -at_fn_group_banner 112 'incr09.at:26' \ - "incremental with alternating -C" " " 13 +#AT_STOP_122 +#AT_START_123 +at_fn_group_banner 123 'incr09.at:26' \ + "incremental with alternating -C" " " 16 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "112. $at_setup_line: testing $at_desc ..." + $as_echo "123. $at_setup_line: testing $at_desc ..." $at_traceon @@ -27810,14 +28727,14 @@ $at_traceon; } $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 'incr10.at:18' \ - "concatenated incremental archives (deletes)" " " 13 +#AT_STOP_123 +#AT_START_124 +at_fn_group_banner 124 'incr10.at:18' \ + "concatenated incremental archives (deletes)" " " 16 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "113. $at_setup_line: testing $at_desc ..." + $as_echo "124. $at_setup_line: testing $at_desc ..." $at_traceon @@ -27916,14 +28833,14 @@ $at_traceon; } $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 'incr11.at:25' \ - "concatenated incremental archives (renames)" " " 13 +#AT_STOP_124 +#AT_START_125 +at_fn_group_banner 125 'incr11.at:25' \ + "concatenated incremental archives (renames)" " " 16 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "114. $at_setup_line: testing $at_desc ..." + $as_echo "125. $at_setup_line: testing $at_desc ..." $at_traceon @@ -28034,14 +28951,14 @@ $at_traceon; } $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 'filerem01.at:36' \ - "file removed as we read it (ca. 22 seconds)" " " 14 +#AT_STOP_125 +#AT_START_126 +at_fn_group_banner 126 'filerem01.at:36' \ + "file removed as we read it" " " 17 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "115. $at_setup_line: testing $at_desc ..." + $as_echo "126. $at_setup_line: testing $at_desc ..." $at_traceon @@ -28064,8 +28981,7 @@ 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 \\ + tar --blocking-factor=1 -c -f archive.tar \\ --listed-incremental db -v dir >/dev/null )" at_fn_check_prepare_notrace 'an embedded newline' "filerem01.at:39" @@ -28084,8 +29000,7 @@ 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 \ + tar --blocking-factor=1 -c -f archive.tar \ --listed-incremental db -v dir >/dev/null ) ) >>"$at_stdout" 2>>"$at_stderr" 5>&- @@ -28117,8 +29032,7 @@ 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 \\ + tar --blocking-factor=1 -c -f archive.tar \\ --listed-incremental db -v dir >/dev/null )" at_fn_check_prepare_notrace 'an embedded newline' "filerem01.at:39" @@ -28137,8 +29051,7 @@ 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 \ + tar --blocking-factor=1 -c -f archive.tar \ --listed-incremental db -v dir >/dev/null ) ) >>"$at_stdout" 2>>"$at_stderr" 5>&- @@ -28206,14 +29119,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'filerem02.at:26' \ - "toplevel file removed (ca. 24 seconds)" " " 14 +#AT_STOP_126 +#AT_START_127 +at_fn_group_banner 127 'filerem02.at:26' \ + "toplevel file removed" " " 17 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "116. $at_setup_line: testing $at_desc ..." + $as_echo "127. $at_setup_line: testing $at_desc ..." $at_traceon @@ -28238,8 +29151,7 @@ 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 \\ + tar --blocking-factor=1 -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" @@ -28260,8 +29172,7 @@ 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 \ + tar --blocking-factor=1 -c -f archive.tar \ --listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null ) ) >>"$at_stdout" 2>>"$at_stderr" 5>&- @@ -28291,8 +29202,7 @@ 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 \\ + tar --blocking-factor=1 -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" @@ -28313,8 +29223,7 @@ 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 \ + tar --blocking-factor=1 -c -f archive.tar \ --listed-incremental db -v --warning=no-new-dir dir dir2 >/dev/null ) ) >>"$at_stdout" 2>>"$at_stderr" 5>&- @@ -28338,14 +29247,14 @@ $at_traceon; } $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 'dirrem01.at:34' \ - "directory removed before reading" " " 15 +#AT_STOP_127 +#AT_START_128 +at_fn_group_banner 128 'dirrem01.at:38' \ + "directory removed before reading" " " 18 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "117. $at_setup_line: testing $at_desc ..." + $as_echo "128. $at_setup_line: testing $at_desc ..." $at_traceon @@ -28353,7 +29262,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/dirrem01.at:37: +$as_echo "$at_srcdir/dirrem01.at:41: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -28374,11 +29283,12 @@ gnu) CPT=3;; esac genfile --run --checkpoint=\$CPT --unlink dir/sub/file2 --unlink dir/sub -- \\ - tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \\ - --checkpoint-action='echo' -c -f archive.tar \\ - --listed-incremental db -v dir >/dev/null + tar --blocking-factor=1 -c -f archive.tar \\ + --listed-incremental db \\ + --warning=no-file-changed \\ + -v dir >/dev/null )" -at_fn_check_prepare_notrace 'an embedded newline' "dirrem01.at:37" +at_fn_check_prepare_notrace 'an embedded newline' "dirrem01.at:41" ( $at_check_trace; mkdir gnu (cd gnu @@ -28400,9 +29310,10 @@ gnu) CPT=3;; esac genfile --run --checkpoint=$CPT --unlink dir/sub/file2 --unlink dir/sub -- \ - tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \ - --checkpoint-action='echo' -c -f archive.tar \ - --listed-incremental db -v dir >/dev/null + tar --blocking-factor=1 -c -f archive.tar \ + --listed-incremental db \ + --warning=no-file-changed \ + -v dir >/dev/null ) ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false @@ -28413,12 +29324,12 @@ tar: dir/sub: 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/dirrem01.at:37" +at_fn_check_status 1 $at_status "$at_srcdir/dirrem01.at:41" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/dirrem01.at:37: +$as_echo "$at_srcdir/dirrem01.at:41: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -28439,11 +29350,12 @@ gnu) CPT=3;; esac genfile --run --checkpoint=\$CPT --unlink dir/sub/file2 --unlink dir/sub -- \\ - tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \\ - --checkpoint-action='echo' -c -f archive.tar \\ - --listed-incremental db -v dir >/dev/null + tar --blocking-factor=1 -c -f archive.tar \\ + --listed-incremental db \\ + --warning=no-file-changed \\ + -v dir >/dev/null )" -at_fn_check_prepare_notrace 'an embedded newline' "dirrem01.at:37" +at_fn_check_prepare_notrace 'an embedded newline' "dirrem01.at:41" ( $at_check_trace; mkdir posix (cd posix @@ -28465,9 +29377,10 @@ gnu) CPT=3;; esac genfile --run --checkpoint=$CPT --unlink dir/sub/file2 --unlink dir/sub -- \ - tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \ - --checkpoint-action='echo' -c -f archive.tar \ - --listed-incremental db -v dir >/dev/null + tar --blocking-factor=1 -c -f archive.tar \ + --listed-incremental db \ + --warning=no-file-changed \ + -v dir >/dev/null ) ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false @@ -28478,7 +29391,7 @@ tar: dir/sub: 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/dirrem01.at:37" +at_fn_check_status 1 $at_status "$at_srcdir/dirrem01.at:41" $at_failed && at_fn_log_failure $at_traceon; } @@ -28489,14 +29402,14 @@ $at_traceon; } $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 'dirrem02.at:31' \ - "explicitly named directory removed before reading" "" 15 +#AT_STOP_128 +#AT_START_129 +at_fn_group_banner 129 'dirrem02.at:31' \ + "explicitly named directory removed before reading" "" 18 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "118. $at_setup_line: testing $at_desc ..." + $as_echo "129. $at_setup_line: testing $at_desc ..." $at_traceon @@ -28525,9 +29438,10 @@ gnu) CPT=3;; esac genfile --run --checkpoint=\$CPT --unlink dir/sub/file2 --unlink dir/sub -- \\ - tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \\ - --checkpoint-action='echo' -c -f archive.tar \\ - --listed-incremental db -v dir dir/sub >/dev/null + tar --blocking-factor=1 -c -f archive.tar \\ + --listed-incremental db \\ + --warning=no-file-changed \\ + -v dir dir/sub >/dev/null )" at_fn_check_prepare_notrace 'an embedded newline' "dirrem02.at:34" ( $at_check_trace; @@ -28551,9 +29465,10 @@ gnu) CPT=3;; esac genfile --run --checkpoint=$CPT --unlink dir/sub/file2 --unlink dir/sub -- \ - tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \ - --checkpoint-action='echo' -c -f archive.tar \ - --listed-incremental db -v dir dir/sub >/dev/null + tar --blocking-factor=1 -c -f archive.tar \ + --listed-incremental db \ + --warning=no-file-changed \ + -v dir dir/sub >/dev/null ) ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false @@ -28591,9 +29506,10 @@ gnu) CPT=3;; esac genfile --run --checkpoint=\$CPT --unlink dir/sub/file2 --unlink dir/sub -- \\ - tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \\ - --checkpoint-action='echo' -c -f archive.tar \\ - --listed-incremental db -v dir dir/sub >/dev/null + tar --blocking-factor=1 -c -f archive.tar \\ + --listed-incremental db \\ + --warning=no-file-changed \\ + -v dir dir/sub >/dev/null )" at_fn_check_prepare_notrace 'an embedded newline' "dirrem02.at:34" ( $at_check_trace; @@ -28617,9 +29533,10 @@ gnu) CPT=3;; esac genfile --run --checkpoint=$CPT --unlink dir/sub/file2 --unlink dir/sub -- \ - tar --blocking-factor=1 --checkpoint=1 --checkpoint-action='sleep=1' \ - --checkpoint-action='echo' -c -f archive.tar \ - --listed-incremental db -v dir dir/sub >/dev/null + tar --blocking-factor=1 -c -f archive.tar \ + --listed-incremental db \ + --warning=no-file-changed \ + -v dir dir/sub >/dev/null ) ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false @@ -28642,14 +29559,14 @@ $at_traceon; } $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 'rename01.at:25' \ - "renamed dirs in incrementals" " " 16 +#AT_STOP_129 +#AT_START_130 +at_fn_group_banner 130 'rename01.at:24' \ + "renamed dirs in incrementals" " " 19 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "119. $at_setup_line: testing $at_desc ..." + $as_echo "130. $at_setup_line: testing $at_desc ..." $at_traceon @@ -28657,7 +29574,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/rename01.at:28: +$as_echo "$at_srcdir/rename01.at:27: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -28697,7 +29614,7 @@ echo Begin directory listing 2 find foo | sort echo End directory listing 2 )" -at_fn_check_prepare_notrace 'a `...` command substitution' "rename01.at:28" +at_fn_check_prepare_notrace 'a `...` command substitution' "rename01.at:27" ( $at_check_trace; mkdir gnu (cd gnu @@ -28771,12 +29688,12 @@ foo/file2 End directory listing 2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/rename01.at:28" +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:28: +$as_echo "$at_srcdir/rename01.at:27: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -28816,7 +29733,7 @@ echo Begin directory listing 2 find foo | sort echo End directory listing 2 )" -at_fn_check_prepare_notrace 'a `...` command substitution' "rename01.at:28" +at_fn_check_prepare_notrace 'a `...` command substitution' "rename01.at:27" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -28890,12 +29807,12 @@ foo/file2 End directory listing 2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/rename01.at:28" +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:28: +$as_echo "$at_srcdir/rename01.at:27: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -28935,7 +29852,7 @@ echo Begin directory listing 2 find foo | sort echo End directory listing 2 )" -at_fn_check_prepare_notrace 'a `...` command substitution' "rename01.at:28" +at_fn_check_prepare_notrace 'a `...` command substitution' "rename01.at:27" ( $at_check_trace; mkdir posix (cd posix @@ -29009,7 +29926,7 @@ foo/file2 End directory listing 2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/rename01.at:28" +at_fn_check_status 0 $at_status "$at_srcdir/rename01.at:27" $at_failed && at_fn_log_failure $at_traceon; } @@ -29020,14 +29937,14 @@ $at_traceon; } $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 'rename02.at:25' \ - "move between hierarchies" " " 16 +#AT_STOP_130 +#AT_START_131 +at_fn_group_banner 131 'rename02.at:24' \ + "move between hierarchies" " " 19 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "120. $at_setup_line: testing $at_desc ..." + $as_echo "131. $at_setup_line: testing $at_desc ..." $at_traceon @@ -29035,7 +29952,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/rename02.at:28: +$as_echo "$at_srcdir/rename02.at:27: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -29079,7 +29996,7 @@ echo Begin directory listing 2 find foo | sort echo End directory listing 2 )" -at_fn_check_prepare_notrace 'a `...` command substitution' "rename02.at:28" +at_fn_check_prepare_notrace 'a `...` command substitution' "rename02.at:27" ( $at_check_trace; mkdir gnu (cd gnu @@ -29168,12 +30085,12 @@ foo/file2 End directory listing 2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/rename02.at:28" +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:28: +$as_echo "$at_srcdir/rename02.at:27: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -29217,7 +30134,7 @@ echo Begin directory listing 2 find foo | sort echo End directory listing 2 )" -at_fn_check_prepare_notrace 'a `...` command substitution' "rename02.at:28" +at_fn_check_prepare_notrace 'a `...` command substitution' "rename02.at:27" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -29306,12 +30223,12 @@ foo/file2 End directory listing 2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/rename02.at:28" +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:28: +$as_echo "$at_srcdir/rename02.at:27: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -29355,7 +30272,7 @@ echo Begin directory listing 2 find foo | sort echo End directory listing 2 )" -at_fn_check_prepare_notrace 'a `...` command substitution' "rename02.at:28" +at_fn_check_prepare_notrace 'a `...` command substitution' "rename02.at:27" ( $at_check_trace; mkdir posix (cd posix @@ -29444,7 +30361,7 @@ foo/file2 End directory listing 2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/rename02.at:28" +at_fn_check_status 0 $at_status "$at_srcdir/rename02.at:27" $at_failed && at_fn_log_failure $at_traceon; } @@ -29455,14 +30372,14 @@ $at_traceon; } $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 'rename03.at:24' \ - "cyclic renames" " " 16 +#AT_STOP_131 +#AT_START_132 +at_fn_group_banner 132 'rename03.at:23' \ + "cyclic renames" " " 19 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "121. $at_setup_line: testing $at_desc ..." + $as_echo "132. $at_setup_line: testing $at_desc ..." $at_traceon @@ -29470,7 +30387,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/rename03.at:27: +$as_echo "$at_srcdir/rename03.at:26: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -29526,7 +30443,7 @@ echo Begin directory listing 2 find foo | sort echo End directory listing 2 )" -at_fn_check_prepare_notrace 'a `...` command substitution' "rename03.at:27" +at_fn_check_prepare_notrace 'a `...` command substitution' "rename03.at:26" ( $at_check_trace; mkdir gnu (cd gnu @@ -29640,12 +30557,12 @@ foo/file2 End directory listing 2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/rename03.at:27" +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:27: +$as_echo "$at_srcdir/rename03.at:26: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -29701,7 +30618,7 @@ echo Begin directory listing 2 find foo | sort echo End directory listing 2 )" -at_fn_check_prepare_notrace 'a `...` command substitution' "rename03.at:27" +at_fn_check_prepare_notrace 'a `...` command substitution' "rename03.at:26" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -29815,12 +30732,12 @@ foo/file2 End directory listing 2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/rename03.at:27" +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:27: +$as_echo "$at_srcdir/rename03.at:26: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -29876,7 +30793,7 @@ echo Begin directory listing 2 find foo | sort echo End directory listing 2 )" -at_fn_check_prepare_notrace 'a `...` command substitution' "rename03.at:27" +at_fn_check_prepare_notrace 'a `...` command substitution' "rename03.at:26" ( $at_check_trace; mkdir posix (cd posix @@ -29990,7 +30907,7 @@ foo/file2 End directory listing 2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/rename03.at:27" +at_fn_check_status 0 $at_status "$at_srcdir/rename03.at:26" $at_failed && at_fn_log_failure $at_traceon; } @@ -30001,14 +30918,14 @@ $at_traceon; } $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 'rename04.at:27' \ - "renamed directory containing subdirectories" " " 16 +#AT_STOP_132 +#AT_START_133 +at_fn_group_banner 133 'rename04.at:27' \ + "renamed directory containing subdirectories" " " 19 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "122. $at_setup_line: testing $at_desc ..." + $as_echo "133. $at_setup_line: testing $at_desc ..." $at_traceon @@ -30340,14 +31257,14 @@ $at_traceon; } $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 'rename05.at:24' \ - "renamed subdirectories" " " 16 +#AT_STOP_133 +#AT_START_134 +at_fn_group_banner 134 'rename05.at:24' \ + "renamed subdirectories" " " 19 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "123. $at_setup_line: testing $at_desc ..." + $as_echo "134. $at_setup_line: testing $at_desc ..." $at_traceon @@ -30685,14 +31602,14 @@ $at_traceon; } $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 'chtype.at:28' \ - "changed file types in incrementals" " " 16 +#AT_STOP_134 +#AT_START_135 +at_fn_group_banner 135 'chtype.at:27' \ + "changed file types in incrementals" " " 19 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "124. $at_setup_line: testing $at_desc ..." + $as_echo "135. $at_setup_line: testing $at_desc ..." $at_traceon @@ -30700,7 +31617,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/chtype.at:31: +$as_echo "$at_srcdir/chtype.at:30: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -30740,7 +31657,7 @@ 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:31" +at_fn_check_prepare_notrace 'a `...` command substitution' "chtype.at:30" ( $at_check_trace; mkdir gnu (cd gnu @@ -30796,12 +31713,12 @@ directory/a/b directory/b " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/chtype.at:31" +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:31: +$as_echo "$at_srcdir/chtype.at:30: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -30841,7 +31758,7 @@ 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:31" +at_fn_check_prepare_notrace 'a `...` command substitution' "chtype.at:30" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -30897,12 +31814,12 @@ directory/a/b directory/b " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/chtype.at:31" +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:31: +$as_echo "$at_srcdir/chtype.at:30: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -30942,7 +31859,7 @@ 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:31" +at_fn_check_prepare_notrace 'a `...` command substitution' "chtype.at:30" ( $at_check_trace; mkdir posix (cd posix @@ -30998,7 +31915,7 @@ directory/a/b directory/b " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/chtype.at:31" +at_fn_check_status 0 $at_status "$at_srcdir/chtype.at:30" $at_failed && at_fn_log_failure $at_traceon; } @@ -31009,14 +31926,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'ignfail.at:24' \ - "ignfail" " " 17 +#AT_STOP_135 +#AT_START_136 +at_fn_group_banner 136 'ignfail.at:23' \ + "ignfail" " " 20 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "125. $at_setup_line: testing $at_desc ..." + $as_echo "136. $at_setup_line: testing $at_desc ..." $at_traceon @@ -31024,7 +31941,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/ignfail.at:27: +$as_echo "$at_srcdir/ignfail.at:26: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -31075,7 +31992,7 @@ status=\$? chmod 700 directory test \$status = 0 )" -at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:27" +at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:26" ( $at_check_trace; mkdir v7 (cd v7 @@ -31143,12 +32060,12 @@ 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:27" +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:27: +$as_echo "$at_srcdir/ignfail.at:26: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -31199,7 +32116,7 @@ status=\$? chmod 700 directory test \$status = 0 )" -at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:27" +at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:26" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -31267,12 +32184,12 @@ 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:27" +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:27: +$as_echo "$at_srcdir/ignfail.at:26: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -31323,7 +32240,7 @@ status=\$? chmod 700 directory test \$status = 0 )" -at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:27" +at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:26" ( $at_check_trace; mkdir ustar (cd ustar @@ -31391,12 +32308,12 @@ 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:27" +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:27: +$as_echo "$at_srcdir/ignfail.at:26: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -31447,7 +32364,7 @@ status=\$? chmod 700 directory test \$status = 0 )" -at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:27" +at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:26" ( $at_check_trace; mkdir posix (cd posix @@ -31515,12 +32432,12 @@ 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:27" +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:27: +$as_echo "$at_srcdir/ignfail.at:26: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -31571,7 +32488,7 @@ status=\$? chmod 700 directory test \$status = 0 )" -at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:27" +at_fn_check_prepare_notrace 'an embedded newline' "ignfail.at:26" ( $at_check_trace; mkdir gnu (cd gnu @@ -31639,7 +32556,7 @@ 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:27" +at_fn_check_status 0 $at_status "$at_srcdir/ignfail.at:26" $at_failed && at_fn_log_failure $at_traceon; } @@ -31650,14 +32567,14 @@ $at_traceon; } $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 'link01.at:34' \ - "link count gt 2" " " 18 +#AT_STOP_136 +#AT_START_137 +at_fn_group_banner 137 'link01.at:33' \ + "link count gt 2" " " 21 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "126. $at_setup_line: testing $at_desc ..." + $as_echo "137. $at_setup_line: testing $at_desc ..." $at_traceon @@ -31665,7 +32582,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/link01.at:37: +$as_echo "$at_srcdir/link01.at:36: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -31688,7 +32605,7 @@ tar xf archive --warning=no-timestamp ls directory/test1 )" -at_fn_check_prepare_notrace 'an embedded newline' "link01.at:37" +at_fn_check_prepare_notrace 'an embedded newline' "link01.at:36" ( $at_check_trace; mkdir v7 (cd v7 @@ -31719,12 +32636,12 @@ 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:37" +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:37: +$as_echo "$at_srcdir/link01.at:36: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -31747,7 +32664,7 @@ tar xf archive --warning=no-timestamp ls directory/test1 )" -at_fn_check_prepare_notrace 'an embedded newline' "link01.at:37" +at_fn_check_prepare_notrace 'an embedded newline' "link01.at:36" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -31778,12 +32695,12 @@ 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:37" +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:37: +$as_echo "$at_srcdir/link01.at:36: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -31806,7 +32723,7 @@ tar xf archive --warning=no-timestamp ls directory/test1 )" -at_fn_check_prepare_notrace 'an embedded newline' "link01.at:37" +at_fn_check_prepare_notrace 'an embedded newline' "link01.at:36" ( $at_check_trace; mkdir ustar (cd ustar @@ -31837,12 +32754,12 @@ 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:37" +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:37: +$as_echo "$at_srcdir/link01.at:36: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -31865,7 +32782,7 @@ tar xf archive --warning=no-timestamp ls directory/test1 )" -at_fn_check_prepare_notrace 'an embedded newline' "link01.at:37" +at_fn_check_prepare_notrace 'an embedded newline' "link01.at:36" ( $at_check_trace; mkdir posix (cd posix @@ -31896,12 +32813,12 @@ 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:37" +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:37: +$as_echo "$at_srcdir/link01.at:36: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -31924,7 +32841,7 @@ tar xf archive --warning=no-timestamp ls directory/test1 )" -at_fn_check_prepare_notrace 'an embedded newline' "link01.at:37" +at_fn_check_prepare_notrace 'an embedded newline' "link01.at:36" ( $at_check_trace; mkdir gnu (cd gnu @@ -31955,7 +32872,7 @@ 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:37" +at_fn_check_status 0 $at_status "$at_srcdir/link01.at:36" $at_failed && at_fn_log_failure $at_traceon; } @@ -31966,14 +32883,14 @@ $at_traceon; } $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 'link02.at:32' \ - "preserve hard links with --remove-files" " " 18 +#AT_STOP_137 +#AT_START_138 +at_fn_group_banner 138 'link02.at:32' \ + "preserve hard links with --remove-files" " " 21 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "127. $at_setup_line: testing $at_desc ..." + $as_echo "138. $at_setup_line: testing $at_desc ..." $at_traceon @@ -32222,14 +33139,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'link03.at:24' \ - "working -l with --remove-files" " " 18 +#AT_STOP_138 +#AT_START_139 +at_fn_group_banner 139 'link03.at:24' \ + "working -l with --remove-files" " " 21 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "128. $at_setup_line: testing $at_desc ..." + $as_echo "139. $at_setup_line: testing $at_desc ..." $at_traceon @@ -32621,14 +33538,14 @@ $at_traceon; } $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 'link04.at:29' \ - "link count is 1 but multiple occurrences" " " 18 +#AT_STOP_139 +#AT_START_140 +at_fn_group_banner 140 'link04.at:29' \ + "link count is 1 but multiple occurrences" " " 21 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "129. $at_setup_line: testing $at_desc ..." + $as_echo "140. $at_setup_line: testing $at_desc ..." $at_traceon @@ -33067,14 +33984,14 @@ $at_traceon; } $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 'longv7.at:25' \ - "long names in V7 archives" " " 19 +#AT_STOP_140 +#AT_START_141 +at_fn_group_banner 141 'longv7.at:24' \ + "long names in V7 archives" " " 22 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "130. $at_setup_line: testing $at_desc ..." + $as_echo "141. $at_setup_line: testing $at_desc ..." $at_traceon @@ -33085,7 +34002,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/longv7.at:31: +$as_echo "$at_srcdir/longv7.at:30: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -33101,7 +34018,7 @@ 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:31" +at_fn_check_prepare_notrace 'an embedded newline' "longv7.at:30" ( $at_check_trace; mkdir v7 (cd v7 @@ -33129,7 +34046,7 @@ 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:31" +at_fn_check_status 0 $at_status "$at_srcdir/longv7.at:30" $at_failed && at_fn_log_failure $at_traceon; } @@ -33142,14 +34059,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'long01.at:29' \ - "long file names divisible by block size" " " 19 +#AT_STOP_141 +#AT_START_142 +at_fn_group_banner 142 'long01.at:28' \ + "long file names divisible by block size" " " 22 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "131. $at_setup_line: testing $at_desc ..." + $as_echo "142. $at_setup_line: testing $at_desc ..." $at_traceon @@ -33161,7 +34078,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/long01.at:37: +$as_echo "$at_srcdir/long01.at:36: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -33176,7 +34093,7 @@ 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_fn_check_prepare_notrace 'an embedded newline' "long01.at:37" +at_fn_check_prepare_notrace 'an embedded newline' "long01.at:36" ( $at_check_trace; mkdir gnu (cd gnu @@ -33200,12 +34117,12 @@ echo >>"$at_stdout"; $as_echo "0123456789abcde/0123456789abcde/0123456789abcde/0 endfile " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/long01.at:37" +at_fn_check_status 0 $at_status "$at_srcdir/long01.at:36" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/long01.at:37: +$as_echo "$at_srcdir/long01.at:36: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -33220,7 +34137,7 @@ 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_fn_check_prepare_notrace 'an embedded newline' "long01.at:37" +at_fn_check_prepare_notrace 'an embedded newline' "long01.at:36" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -33244,7 +34161,7 @@ echo >>"$at_stdout"; $as_echo "0123456789abcde/0123456789abcde/0123456789abcde/0 endfile " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/long01.at:37" +at_fn_check_status 0 $at_status "$at_srcdir/long01.at:36" $at_failed && at_fn_log_failure $at_traceon; } @@ -33257,14 +34174,14 @@ $at_traceon; } $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 'lustar01.at:22' \ - "ustar: unsplittable file name" " " 19 +#AT_STOP_142 +#AT_START_143 +at_fn_group_banner 143 'lustar01.at:21' \ + "ustar: unsplittable file name" " " 22 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "132. $at_setup_line: testing $at_desc ..." + $as_echo "143. $at_setup_line: testing $at_desc ..." $at_traceon @@ -33274,7 +34191,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/lustar01.at:28: +$as_echo "$at_srcdir/lustar01.at:27: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -33286,7 +34203,7 @@ 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:28" +at_fn_check_prepare_notrace 'an embedded newline' "lustar01.at:27" ( $at_check_trace; mkdir ustar (cd ustar @@ -33307,7 +34224,7 @@ 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/lustar01.at:28" +at_fn_check_status 2 $at_status "$at_srcdir/lustar01.at:27" $at_failed && at_fn_log_failure $at_traceon; } @@ -33319,14 +34236,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'lustar02.at:22' \ - "ustar: unsplittable path name" " " 19 +#AT_STOP_143 +#AT_START_144 +at_fn_group_banner 144 'lustar02.at:21' \ + "ustar: unsplittable path name" " " 22 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "133. $at_setup_line: testing $at_desc ..." + $as_echo "144. $at_setup_line: testing $at_desc ..." $at_traceon @@ -33340,7 +34257,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/lustar02.at:33: +$as_echo "$at_srcdir/lustar02.at:32: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -33353,7 +34270,7 @@ 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_fn_check_prepare_notrace 'an embedded newline' "lustar02.at:33" +at_fn_check_prepare_notrace 'an embedded newline' "lustar02.at:32" ( $at_check_trace; mkdir ustar (cd ustar @@ -33375,7 +34292,7 @@ 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:33" +at_fn_check_status 2 $at_status "$at_srcdir/lustar02.at:32" $at_failed && at_fn_log_failure $at_traceon; } @@ -33390,14 +34307,14 @@ $at_traceon; } $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 'lustar03.at:22' \ - "ustar: splitting long names" " " 19 +#AT_STOP_144 +#AT_START_145 +at_fn_group_banner 145 'lustar03.at:21' \ + "ustar: splitting long names" " " 22 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "134. $at_setup_line: testing $at_desc ..." + $as_echo "145. $at_setup_line: testing $at_desc ..." $at_traceon @@ -33409,7 +34326,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/lustar03.at:30: +$as_echo "$at_srcdir/lustar03.at:29: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -33424,7 +34341,7 @@ 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:30" +at_fn_check_prepare_notrace 'an embedded newline' "lustar03.at:29" ( $at_check_trace; mkdir ustar (cd ustar @@ -33450,7 +34367,7 @@ this_is_a_very_long_name_for_a_file_designed_to_test_generation/of_ustar_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/file " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/lustar03.at:30" +at_fn_check_status 0 $at_status "$at_srcdir/lustar03.at:29" $at_failed && at_fn_log_failure $at_traceon; } @@ -33463,25 +34380,25 @@ $at_traceon; } $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 'old.at:24' \ - "old archives" " " 19 +#AT_STOP_145 +#AT_START_146 +at_fn_group_banner 146 'old.at:23' \ + "old archives" " " 22 at_xfail=no ( - $as_echo "135. $at_setup_line: testing $at_desc ..." + $as_echo "146. $at_setup_line: testing $at_desc ..." $at_traceon unset TAR_OPTIONS { set +x -$as_echo "$at_srcdir/old.at:28: +$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:28" +at_fn_check_prepare_notrace 'an embedded newline' "old.at:27" ( $at_check_trace; mkdir directory tar cfvo archive directory || exit 1 @@ -33495,7 +34412,7 @@ echo >>"$at_stdout"; $as_echo "directory/ directory/ " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/old.at:28" +at_fn_check_status 0 $at_status "$at_srcdir/old.at:27" $at_failed && at_fn_log_failure $at_traceon; } @@ -33504,14 +34421,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'time01.at:20' \ - "time: tricky time stamps" " " 19 +#AT_STOP_146 +#AT_START_147 +at_fn_group_banner 147 'time01.at:20' \ + "time: tricky time stamps" " " 22 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "136. $at_setup_line: testing $at_desc ..." + $as_echo "147. $at_setup_line: testing $at_desc ..." $at_traceon @@ -33638,14 +34555,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'time02.at:20' \ - "time: clamping mtime" " " 19 +#AT_STOP_147 +#AT_START_148 +at_fn_group_banner 148 'time02.at:20' \ + "time: clamping mtime" " " 22 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "137. $at_setup_line: testing $at_desc ..." + $as_echo "148. $at_setup_line: testing $at_desc ..." $at_traceon @@ -33719,14 +34636,14 @@ $at_traceon; } $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 'multiv01.at:24' \ - "multivolume dumps from pipes" " " 20 +#AT_STOP_148 +#AT_START_149 +at_fn_group_banner 149 'multiv01.at:23' \ + "multivolume dumps from pipes" " " 23 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "138. $at_setup_line: testing $at_desc ..." + $as_echo "149. $at_setup_line: testing $at_desc ..." $at_traceon @@ -33738,7 +34655,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/multiv01.at:31: +$as_echo "$at_srcdir/multiv01.at:30: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -33776,7 +34693,7 @@ PATH=\$PATH \${TRUSS} tar -f t1-pipe.tar -f - \\ cmp file1 extract-dir-pipe/file1 cmp file2 extract-dir-pipe/file2 )" -at_fn_check_prepare_notrace 'a ${...} parameter expansion' "multiv01.at:31" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "multiv01.at:30" ( $at_check_trace; mkdir gnu (cd gnu @@ -33820,12 +34737,12 @@ 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:31" +at_fn_check_status 0 $at_status "$at_srcdir/multiv01.at:30" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/multiv01.at:31: +$as_echo "$at_srcdir/multiv01.at:30: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -33863,7 +34780,7 @@ PATH=\$PATH \${TRUSS} tar -f t1-pipe.tar -f - \\ cmp file1 extract-dir-pipe/file1 cmp file2 extract-dir-pipe/file2 )" -at_fn_check_prepare_notrace 'a ${...} parameter expansion' "multiv01.at:31" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "multiv01.at:30" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -33907,12 +34824,12 @@ 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:31" +at_fn_check_status 0 $at_status "$at_srcdir/multiv01.at:30" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/multiv01.at:31: +$as_echo "$at_srcdir/multiv01.at:30: mkdir pax (cd pax TEST_TAR_FORMAT=pax @@ -33950,7 +34867,7 @@ PATH=\$PATH \${TRUSS} tar -f t1-pipe.tar -f - \\ cmp file1 extract-dir-pipe/file1 cmp file2 extract-dir-pipe/file2 )" -at_fn_check_prepare_notrace 'a ${...} parameter expansion' "multiv01.at:31" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "multiv01.at:30" ( $at_check_trace; mkdir pax (cd pax @@ -33994,7 +34911,7 @@ 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:31" +at_fn_check_status 0 $at_status "$at_srcdir/multiv01.at:30" $at_failed && at_fn_log_failure $at_traceon; } @@ -34005,14 +34922,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'multiv02.at:29' \ - "skipping a straddling member" " " 20 +#AT_STOP_149 +#AT_START_150 +at_fn_group_banner 150 'multiv02.at:28' \ + "skipping a straddling member" " " 23 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "139. $at_setup_line: testing $at_desc ..." + $as_echo "150. $at_setup_line: testing $at_desc ..." $at_traceon @@ -34020,7 +34937,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/multiv02.at:32: +$as_echo "$at_srcdir/multiv02.at:31: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -34040,7 +34957,7 @@ 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:32" +at_fn_check_prepare_notrace 'an embedded newline' "multiv02.at:31" ( $at_check_trace; mkdir gnu (cd gnu @@ -34069,12 +34986,12 @@ echo >>"$at_stdout"; $as_echo "separator en " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/multiv02.at:32" +at_fn_check_status 0 $at_status "$at_srcdir/multiv02.at:31" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/multiv02.at:32: +$as_echo "$at_srcdir/multiv02.at:31: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -34094,7 +35011,7 @@ 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:32" +at_fn_check_prepare_notrace 'an embedded newline' "multiv02.at:31" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -34123,12 +35040,12 @@ echo >>"$at_stdout"; $as_echo "separator en " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/multiv02.at:32" +at_fn_check_status 0 $at_status "$at_srcdir/multiv02.at:31" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/multiv02.at:32: +$as_echo "$at_srcdir/multiv02.at:31: mkdir pax (cd pax TEST_TAR_FORMAT=pax @@ -34148,7 +35065,7 @@ 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:32" +at_fn_check_prepare_notrace 'an embedded newline' "multiv02.at:31" ( $at_check_trace; mkdir pax (cd pax @@ -34177,7 +35094,7 @@ echo >>"$at_stdout"; $as_echo "separator en " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/multiv02.at:32" +at_fn_check_status 0 $at_status "$at_srcdir/multiv02.at:31" $at_failed && at_fn_log_failure $at_traceon; } @@ -34188,14 +35105,14 @@ $at_traceon; } $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 'multiv03.at:31' \ - "MV archive & long filenames" " " 20 +#AT_STOP_150 +#AT_START_151 +at_fn_group_banner 151 'multiv03.at:30' \ + "MV archive & long filenames" " " 23 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "140. $at_setup_line: testing $at_desc ..." + $as_echo "151. $at_setup_line: testing $at_desc ..." $at_traceon @@ -34203,7 +35120,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/multiv03.at:34: +$as_echo "$at_srcdir/multiv03.at:33: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -34243,7 +35160,7 @@ 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:34" +at_fn_check_prepare_notrace 'a `...` command substitution' "multiv03.at:33" ( $at_check_trace; mkdir gnu (cd gnu @@ -34289,12 +35206,12 @@ 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:34" +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:34: +$as_echo "$at_srcdir/multiv03.at:33: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -34334,7 +35251,7 @@ 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:34" +at_fn_check_prepare_notrace 'a `...` command substitution' "multiv03.at:33" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -34380,7 +35297,7 @@ 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:34" +at_fn_check_status 0 $at_status "$at_srcdir/multiv03.at:33" $at_failed && at_fn_log_failure $at_traceon; } @@ -34391,14 +35308,14 @@ $at_traceon; } $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 'multiv04.at:37' \ - "split directory members in a MV archive" " " 20 +#AT_STOP_151 +#AT_START_152 +at_fn_group_banner 152 'multiv04.at:36' \ + "split directory members in a MV archive" " " 23 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "141. $at_setup_line: testing $at_desc ..." + $as_echo "152. $at_setup_line: testing $at_desc ..." $at_traceon @@ -34406,7 +35323,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/multiv04.at:40: +$as_echo "$at_srcdir/multiv04.at:39: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -34432,7 +35349,7 @@ tar --listed-incremental=list -c --record-size 1024 -L 16 -f arc.1 -f arc.2 -v d echo separator tar -MRt -f arc.1 -f arc.2)" -at_fn_check_prepare_notrace 'an embedded newline' "multiv04.at:40" +at_fn_check_prepare_notrace 'an embedded newline' "multiv04.at:39" ( $at_check_trace; mkdir gnu (cd gnu @@ -34469,12 +35386,12 @@ 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:40" +at_fn_check_status 0 $at_status "$at_srcdir/multiv04.at:39" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/multiv04.at:40: +$as_echo "$at_srcdir/multiv04.at:39: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -34500,7 +35417,7 @@ tar --listed-incremental=list -c --record-size 1024 -L 16 -f arc.1 -f arc.2 -v d echo separator tar -MRt -f arc.1 -f arc.2)" -at_fn_check_prepare_notrace 'an embedded newline' "multiv04.at:40" +at_fn_check_prepare_notrace 'an embedded newline' "multiv04.at:39" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -34537,7 +35454,7 @@ 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:40" +at_fn_check_status 0 $at_status "$at_srcdir/multiv04.at:39" $at_failed && at_fn_log_failure $at_traceon; } @@ -34548,14 +35465,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'multiv05.at:27' \ - "Restoring after an out of sync volume" " " 20 +#AT_STOP_152 +#AT_START_153 +at_fn_group_banner 153 'multiv05.at:26' \ + "Restoring after an out of sync volume" " " 23 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "142. $at_setup_line: testing $at_desc ..." + $as_echo "153. $at_setup_line: testing $at_desc ..." $at_traceon @@ -34564,7 +35481,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/multiv05.at:31: +$as_echo "$at_srcdir/multiv05.at:30: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -34602,7 +35519,7 @@ echo Diffing piec echo Diffing szesc cmp bak/szesc szesc || exit 1 )" -at_fn_check_prepare_notrace 'an embedded newline' "multiv05.at:31" +at_fn_check_prepare_notrace 'an embedded newline' "multiv05.at:30" ( $at_check_trace; mkdir gnu (cd gnu @@ -34663,7 +35580,7 @@ Diffing piec Diffing szesc " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/multiv05.at:31" +at_fn_check_status 0 $at_status "$at_srcdir/multiv05.at:30" $at_failed && at_fn_log_failure $at_traceon; } @@ -34675,14 +35592,14 @@ $at_traceon; } $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 'multiv06.at:27' \ - "Multivolumes with L=record_size" " " 20 +#AT_STOP_153 +#AT_START_154 +at_fn_group_banner 154 'multiv06.at:27' \ + "Multivolumes with L=record_size" " " 23 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "143. $at_setup_line: testing $at_desc ..." + $as_echo "154. $at_setup_line: testing $at_desc ..." $at_traceon @@ -34800,14 +35717,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'multiv07.at:28' \ - "volumes split at an extended header" " " 20 +#AT_STOP_154 +#AT_START_155 +at_fn_group_banner 155 'multiv07.at:28' \ + "volumes split at an extended header" " " 23 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "144. $at_setup_line: testing $at_desc ..." + $as_echo "155. $at_setup_line: testing $at_desc ..." $at_traceon @@ -34860,14 +35777,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'multiv08.at:25' \ - "multivolume header creation" " " 20 +#AT_STOP_155 +#AT_START_156 +at_fn_group_banner 156 'multiv08.at:25' \ + "multivolume header creation" " " 23 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "145. $at_setup_line: testing $at_desc ..." + $as_echo "156. $at_setup_line: testing $at_desc ..." $at_traceon @@ -34933,14 +35850,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'multiv09.at:26' \ - "bad next volume" " " 20 +#AT_STOP_156 +#AT_START_157 +at_fn_group_banner 157 'multiv09.at:26' \ + "bad next volume" " " 23 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "146. $at_setup_line: testing $at_desc ..." + $as_echo "157. $at_setup_line: testing $at_desc ..." $at_traceon @@ -35192,14 +36109,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'multiv10.at:37' \ - "file start at the beginning of a posix volume" " " 20 +#AT_STOP_157 +#AT_START_158 +at_fn_group_banner 158 'multiv10.at:37' \ + "file start at the beginning of a posix volume" " " 23 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "147. $at_setup_line: testing $at_desc ..." + $as_echo "158. $at_setup_line: testing $at_desc ..." $at_traceon @@ -35267,14 +36184,14 @@ $at_traceon; } $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 'owner.at:21' \ - "--owner and --group" " " 21 +#AT_STOP_158 +#AT_START_159 +at_fn_group_banner 159 'owner.at:21' \ + "--owner and --group" " " 24 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "148. $at_setup_line: testing $at_desc ..." + $as_echo "159. $at_setup_line: testing $at_desc ..." $at_traceon @@ -35346,14 +36263,14 @@ $at_traceon; } $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 'map.at:21' \ - "--owner-map and --group-map" " " 21 +#AT_STOP_159 +#AT_START_160 +at_fn_group_banner 160 'map.at:21' \ + "--owner-map and --group-map" " " 24 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "149. $at_setup_line: testing $at_desc ..." + $as_echo "160. $at_setup_line: testing $at_desc ..." $at_traceon @@ -35477,14 +36394,14 @@ $at_traceon; } $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 'sparse01.at:22' \ - "sparse files" " " 22 +#AT_STOP_160 +#AT_START_161 +at_fn_group_banner 161 'sparse01.at:21' \ + "sparse files" " " 25 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "150. $at_setup_line: testing $at_desc ..." + $as_echo "161. $at_setup_line: testing $at_desc ..." $at_traceon @@ -35492,7 +36409,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/sparse01.at:25: +$as_echo "$at_srcdir/sparse01.at:24: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -35514,7 +36431,7 @@ 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:25" +at_fn_check_prepare_notrace 'an embedded newline' "sparse01.at:24" ( $at_check_trace; mkdir posix (cd posix @@ -35542,12 +36459,12 @@ 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:25" +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:25: +$as_echo "$at_srcdir/sparse01.at:24: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -35569,7 +36486,7 @@ 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:25" +at_fn_check_prepare_notrace 'an embedded newline' "sparse01.at:24" ( $at_check_trace; mkdir gnu (cd gnu @@ -35597,12 +36514,12 @@ 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:25" +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:25: +$as_echo "$at_srcdir/sparse01.at:24: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -35624,7 +36541,7 @@ 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:25" +at_fn_check_prepare_notrace 'an embedded newline' "sparse01.at:24" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -35652,7 +36569,7 @@ 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:25" +at_fn_check_status 0 $at_status "$at_srcdir/sparse01.at:24" $at_failed && at_fn_log_failure $at_traceon; } @@ -35681,14 +36598,14 @@ done $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 'sparse02.at:22' \ - "extracting sparse file over a pipe" " " 22 +#AT_STOP_161 +#AT_START_162 +at_fn_group_banner 162 'sparse02.at:21' \ + "extracting sparse file over a pipe" " " 25 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "151. $at_setup_line: testing $at_desc ..." + $as_echo "162. $at_setup_line: testing $at_desc ..." $at_traceon @@ -35700,7 +36617,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/sparse02.at:29: +$as_echo "$at_srcdir/sparse02.at:28: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -35716,7 +36633,7 @@ echo separator tar xfO archive | cat - > sparsecopy || exit 1 cmp sparsefile sparsecopy )" -at_fn_check_prepare_notrace 'an embedded newline' "sparse02.at:29" +at_fn_check_prepare_notrace 'an embedded newline' "sparse02.at:28" ( $at_check_trace; mkdir posix (cd posix @@ -35740,12 +36657,12 @@ 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:29" +at_fn_check_status 0 $at_status "$at_srcdir/sparse02.at:28" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/sparse02.at:29: +$as_echo "$at_srcdir/sparse02.at:28: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -35761,7 +36678,7 @@ echo separator tar xfO archive | cat - > sparsecopy || exit 1 cmp sparsefile sparsecopy )" -at_fn_check_prepare_notrace 'an embedded newline' "sparse02.at:29" +at_fn_check_prepare_notrace 'an embedded newline' "sparse02.at:28" ( $at_check_trace; mkdir gnu (cd gnu @@ -35785,12 +36702,12 @@ 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:29" +at_fn_check_status 0 $at_status "$at_srcdir/sparse02.at:28" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/sparse02.at:29: +$as_echo "$at_srcdir/sparse02.at:28: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -35806,7 +36723,7 @@ echo separator tar xfO archive | cat - > sparsecopy || exit 1 cmp sparsefile sparsecopy )" -at_fn_check_prepare_notrace 'an embedded newline' "sparse02.at:29" +at_fn_check_prepare_notrace 'an embedded newline' "sparse02.at:28" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -35830,7 +36747,7 @@ 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:29" +at_fn_check_status 0 $at_status "$at_srcdir/sparse02.at:28" $at_failed && at_fn_log_failure $at_traceon; } @@ -35841,14 +36758,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'sparse03.at:22' \ - "storing sparse files > 8G" " " 22 +#AT_STOP_162 +#AT_START_163 +at_fn_group_banner 163 'sparse03.at:21' \ + "storing sparse files > 8G" " " 25 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "152. $at_setup_line: testing $at_desc ..." + $as_echo "163. $at_setup_line: testing $at_desc ..." $at_traceon @@ -35861,7 +36778,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/sparse03.at:30: +$as_echo "$at_srcdir/sparse03.at:29: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -35870,6 +36787,7 @@ TAR_OPTIONS=\"-H posix\" export TAR_OPTIONS rm -rf * +test \"\${TARTEST_SKIP_LARGE_FILES:-0}\" != 0 && exit 77 genfile --length 1000 --file begin genfile --length 1000 --file end genfile --sparse --file sparsefile --block-size 512 8G A || exit 77 @@ -35883,7 +36801,7 @@ tar Cxf directory archive genfile --stat=name,size sparsefile cmp sparsefile directory/sparsefile )" -at_fn_check_prepare_notrace 'an embedded newline' "sparse03.at:30" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "sparse03.at:29" ( $at_check_trace; mkdir posix (cd posix @@ -35893,6 +36811,7 @@ TAR_OPTIONS="-H posix" export TAR_OPTIONS rm -rf * +test "${TARTEST_SKIP_LARGE_FILES:-0}" != 0 && exit 77 genfile --length 1000 --file begin genfile --length 1000 --file end genfile --sparse --file sparsefile --block-size 512 8G A || exit 77 @@ -35911,7 +36830,7 @@ 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:30" +at_fn_check_status 0 $at_status "$at_srcdir/sparse03.at:29" $at_failed && at_fn_log_failure $at_traceon; } @@ -35940,14 +36859,14 @@ done $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 'sparse04.at:21' \ - "storing long sparse file names" " " 22 +#AT_STOP_163 +#AT_START_164 +at_fn_group_banner 164 'sparse04.at:21' \ + "storing long sparse file names" " " 25 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "153. $at_setup_line: testing $at_desc ..." + $as_echo "164. $at_setup_line: testing $at_desc ..." $at_traceon @@ -36009,14 +36928,14 @@ $at_traceon; } $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 'sparse05.at:21' \ - "listing sparse files bigger than 2^33 B" " " 22 +#AT_STOP_164 +#AT_START_165 +at_fn_group_banner 165 'sparse05.at:21' \ + "listing sparse files bigger than 2^33 B" " " 25 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "154. $at_setup_line: testing $at_desc ..." + $as_echo "165. $at_setup_line: testing $at_desc ..." $at_traceon @@ -36040,6 +36959,7 @@ TAR_OPTIONS=\"-H pax\" export TAR_OPTIONS rm -rf * +test \"\${TARTEST_SKIP_LARGE_FILES:-0}\" != 0 && exit 77 cat >mapfile <<'_ATEOF' 0 =2560 10M =2560 @@ -37056,6 +37976,7 @@ TAR_OPTIONS="-H pax" export TAR_OPTIONS rm -rf * +test "${TARTEST_SKIP_LARGE_FILES:-0}" != 0 && exit 77 cat >mapfile <<'_ATEOF' 0 =2560 10M =2560 @@ -38080,14 +39001,14 @@ $at_traceon; } $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 'sparse06.at:21' \ - "storing sparse file using seek method" " " 22 +#AT_STOP_165 +#AT_START_166 +at_fn_group_banner 166 'sparse06.at:21' \ + "storing sparse file using seek method" " " 25 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "155. $at_setup_line: testing $at_desc ..." + $as_echo "166. $at_setup_line: testing $at_desc ..." $at_traceon @@ -38256,14 +39177,14 @@ $at_traceon; } $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 'sparse07.at:21' \ - "sparse files with unicode names" " " 22 +#AT_STOP_166 +#AT_START_167 +at_fn_group_banner 167 'sparse07.at:21' \ + "sparse files with unicode names" " " 25 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "156. $at_setup_line: testing $at_desc ..." + $as_echo "167. $at_setup_line: testing $at_desc ..." $at_traceon @@ -38400,14 +39321,14 @@ $at_traceon; } $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 'sparsemv.at:22' \ - "sparse files in MV archives" " " 22 +#AT_STOP_167 +#AT_START_168 +at_fn_group_banner 168 'sparsemv.at:21' \ + "sparse files in MV archives" " " 25 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "157. $at_setup_line: testing $at_desc ..." + $as_echo "168. $at_setup_line: testing $at_desc ..." $at_traceon @@ -38422,7 +39343,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/sparsemv.at:32: +$as_echo "$at_srcdir/sparsemv.at:31: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -38451,7 +39372,7 @@ 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:32" +at_fn_check_prepare_notrace 'an embedded newline' "sparsemv.at:31" ( $at_check_trace; mkdir gnu (cd gnu @@ -38497,12 +39418,12 @@ sparsefile Compare archive " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/sparsemv.at:32" +at_fn_check_status 0 $at_status "$at_srcdir/sparsemv.at:31" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/sparsemv.at:32: +$as_echo "$at_srcdir/sparsemv.at:31: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -38531,7 +39452,7 @@ 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:32" +at_fn_check_prepare_notrace 'an embedded newline' "sparsemv.at:31" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -38577,7 +39498,7 @@ sparsefile Compare archive " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/sparsemv.at:32" +at_fn_check_status 0 $at_status "$at_srcdir/sparsemv.at:31" $at_failed && at_fn_log_failure $at_traceon; } @@ -38588,14 +39509,14 @@ $at_traceon; } $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 'spmvp00.at:22' \ - "sparse files in PAX MV archives, v.0.0" " " 22 +#AT_STOP_168 +#AT_START_169 +at_fn_group_banner 169 'spmvp00.at:21' \ + "sparse files in PAX MV archives, v.0.0" " " 25 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "158. $at_setup_line: testing $at_desc ..." + $as_echo "169. $at_setup_line: testing $at_desc ..." $at_traceon @@ -38604,7 +39525,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/spmvp00.at:25: +$as_echo "$at_srcdir/spmvp00.at:24: mkdir pax (cd pax TEST_TAR_FORMAT=pax @@ -38633,7 +39554,7 @@ 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:25" +at_fn_check_prepare_notrace 'an embedded newline' "spmvp00.at:24" ( $at_check_trace; mkdir pax (cd pax @@ -38679,7 +39600,7 @@ sparsefile Compare archive " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/spmvp00.at:25" +at_fn_check_status 0 $at_status "$at_srcdir/spmvp00.at:24" $at_failed && at_fn_log_failure $at_traceon; } @@ -38690,14 +39611,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'spmvp01.at:22' \ - "sparse files in PAX MV archives, v.0.1" " " 22 +#AT_STOP_169 +#AT_START_170 +at_fn_group_banner 170 'spmvp01.at:21' \ + "sparse files in PAX MV archives, v.0.1" " " 25 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "159. $at_setup_line: testing $at_desc ..." + $as_echo "170. $at_setup_line: testing $at_desc ..." $at_traceon @@ -38706,7 +39627,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/spmvp01.at:25: +$as_echo "$at_srcdir/spmvp01.at:24: mkdir pax (cd pax TEST_TAR_FORMAT=pax @@ -38735,7 +39656,7 @@ 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:25" +at_fn_check_prepare_notrace 'an embedded newline' "spmvp01.at:24" ( $at_check_trace; mkdir pax (cd pax @@ -38781,7 +39702,7 @@ sparsefile Compare archive " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/spmvp01.at:25" +at_fn_check_status 0 $at_status "$at_srcdir/spmvp01.at:24" $at_failed && at_fn_log_failure $at_traceon; } @@ -38792,14 +39713,14 @@ $at_traceon; } $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 'spmvp10.at:22' \ - "sparse files in PAX MV archives, v.1.0" " " 22 +#AT_STOP_170 +#AT_START_171 +at_fn_group_banner 171 'spmvp10.at:21' \ + "sparse files in PAX MV archives, v.1.0" " " 25 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "160. $at_setup_line: testing $at_desc ..." + $as_echo "171. $at_setup_line: testing $at_desc ..." $at_traceon @@ -38808,7 +39729,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/spmvp10.at:25: +$as_echo "$at_srcdir/spmvp10.at:24: mkdir pax (cd pax TEST_TAR_FORMAT=pax @@ -38837,7 +39758,7 @@ 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:25" +at_fn_check_prepare_notrace 'an embedded newline' "spmvp10.at:24" ( $at_check_trace; mkdir pax (cd pax @@ -38883,7 +39804,7 @@ sparsefile Compare archive " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/spmvp10.at:25" +at_fn_check_status 0 $at_status "$at_srcdir/spmvp10.at:24" $at_failed && at_fn_log_failure $at_traceon; } @@ -38894,22 +39815,585 @@ $at_traceon; } $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 'update.at:29' \ - "update unchanged directories" " " 23 +#AT_STOP_171 +#AT_START_172 +at_fn_group_banner 172 'sptrcreat.at:33' \ + "sparse file truncated while archiving" " " 25 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "161. $at_setup_line: testing $at_desc ..." + $as_echo "172. $at_setup_line: testing $at_desc ..." + $at_traceon + + + + + + { set +x +$as_echo "$at_srcdir/sptrcreat.at:36: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H posix\" +export TAR_OPTIONS +rm -rf * + +genfile --sparse --block-size=1024 --file foo \\ + 0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ +genfile --file baz +genfile --run --checkpoint 3 --length 200m --truncate foo -- \\ + tar --sparse -vcf bar foo baz +echo Exit status: \$? +echo separator +genfile --file foo --seek 200m --length 11575296 --pattern=zeros +tar dvf bar | sed '/foo: Mod time differs/d')" +at_fn_check_prepare_notrace 'an embedded newline' "sptrcreat.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 * + +genfile --sparse --block-size=1024 --file foo \ + 0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ +genfile --file baz +genfile --run --checkpoint 3 --length 200m --truncate foo -- \ + tar --sparse -vcf bar foo baz +echo Exit status: $? +echo separator +genfile --file foo --seek 200m --length 11575296 --pattern=zeros +tar dvf bar | sed '/foo: Mod time differs/d') +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "tar: foo: File shrank by 11575296 bytes; padding with zeros +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +baz +Exit status: 1 +separator +foo +baz +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/sptrcreat.at:36" +$at_failed && at_fn_log_failure +$at_traceon; } + + { set +x +$as_echo "$at_srcdir/sptrcreat.at:36: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * + +genfile --sparse --block-size=1024 --file foo \\ + 0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ +genfile --file baz +genfile --run --checkpoint 3 --length 200m --truncate foo -- \\ + tar --sparse -vcf bar foo baz +echo Exit status: \$? +echo separator +genfile --file foo --seek 200m --length 11575296 --pattern=zeros +tar dvf bar | sed '/foo: Mod time differs/d')" +at_fn_check_prepare_notrace 'an embedded newline' "sptrcreat.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 * + +genfile --sparse --block-size=1024 --file foo \ + 0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ +genfile --file baz +genfile --run --checkpoint 3 --length 200m --truncate foo -- \ + tar --sparse -vcf bar foo baz +echo Exit status: $? +echo separator +genfile --file foo --seek 200m --length 11575296 --pattern=zeros +tar dvf bar | sed '/foo: Mod time differs/d') +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "tar: foo: File shrank by 11575296 bytes; padding with zeros +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +baz +Exit status: 1 +separator +foo +baz +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/sptrcreat.at:36" +$at_failed && at_fn_log_failure +$at_traceon; } + + { set +x +$as_echo "$at_srcdir/sptrcreat.at:36: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H oldgnu\" +export TAR_OPTIONS +rm -rf * + +genfile --sparse --block-size=1024 --file foo \\ + 0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ +genfile --file baz +genfile --run --checkpoint 3 --length 200m --truncate foo -- \\ + tar --sparse -vcf bar foo baz +echo Exit status: \$? +echo separator +genfile --file foo --seek 200m --length 11575296 --pattern=zeros +tar dvf bar | sed '/foo: Mod time differs/d')" +at_fn_check_prepare_notrace 'an embedded newline' "sptrcreat.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 * + +genfile --sparse --block-size=1024 --file foo \ + 0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ +genfile --file baz +genfile --run --checkpoint 3 --length 200m --truncate foo -- \ + tar --sparse -vcf bar foo baz +echo Exit status: $? +echo separator +genfile --file foo --seek 200m --length 11575296 --pattern=zeros +tar dvf bar | sed '/foo: Mod time differs/d') +) >>"$at_stdout" 2>>"$at_stderr" 5>&- +at_status=$? at_failed=false +$at_check_filter +echo >>"$at_stderr"; $as_echo "tar: foo: File shrank by 11575296 bytes; padding with zeros +" | \ + $at_diff - "$at_stderr" || at_failed=: +echo >>"$at_stdout"; $as_echo "foo +baz +Exit status: 1 +separator +foo +baz +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 0 $at_status "$at_srcdir/sptrcreat.at:36" +$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_172 +#AT_START_173 +at_fn_group_banner 173 'sptrdiff00.at:26' \ + "file truncated in sparse region while comparing" "" 25 +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +( + $as_echo "173. $at_setup_line: testing $at_desc ..." $at_traceon +# This triggers short read in check_sparse_region. { set +x -$as_echo "$at_srcdir/update.at:32: +$as_echo "$at_srcdir/sptrdiff00.at:30: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H posix\" +export TAR_OPTIONS +rm -rf * + +genfile --sparse --block-size=1024 --file foo \\ + 0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ +genfile --file baz +echo creating +tar --sparse -vcf bar foo baz +echo comparing +genfile --run --checkpoint 3 --length 200m --truncate foo -- \\ + tar --sparse -vdf bar +)" +at_fn_check_prepare_notrace 'an embedded newline' "sptrdiff00.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 * + +genfile --sparse --block-size=1024 --file foo \ + 0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ +genfile --file baz +echo creating +tar --sparse -vcf bar foo baz +echo comparing +genfile --run --checkpoint 3 --length 200m --truncate foo -- \ + tar --sparse -vdf bar +) +) >>"$at_stdout" 2>>"$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 +foo +baz +comparing +foo +foo: Size differs +baz +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/sptrdiff00.at:30" +$at_failed && at_fn_log_failure +$at_traceon; } + + { set +x +$as_echo "$at_srcdir/sptrdiff00.at:30: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * + +genfile --sparse --block-size=1024 --file foo \\ + 0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ +genfile --file baz +echo creating +tar --sparse -vcf bar foo baz +echo comparing +genfile --run --checkpoint 3 --length 200m --truncate foo -- \\ + tar --sparse -vdf bar +)" +at_fn_check_prepare_notrace 'an embedded newline' "sptrdiff00.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 --sparse --block-size=1024 --file foo \ + 0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ +genfile --file baz +echo creating +tar --sparse -vcf bar foo baz +echo comparing +genfile --run --checkpoint 3 --length 200m --truncate foo -- \ + tar --sparse -vdf bar +) +) >>"$at_stdout" 2>>"$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 +foo +baz +comparing +foo +foo: Size differs +baz +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/sptrdiff00.at:30" +$at_failed && at_fn_log_failure +$at_traceon; } + + { set +x +$as_echo "$at_srcdir/sptrdiff00.at:30: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H oldgnu\" +export TAR_OPTIONS +rm -rf * + +genfile --sparse --block-size=1024 --file foo \\ + 0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ +genfile --file baz +echo creating +tar --sparse -vcf bar foo baz +echo comparing +genfile --run --checkpoint 3 --length 200m --truncate foo -- \\ + tar --sparse -vdf bar +)" +at_fn_check_prepare_notrace 'an embedded newline' "sptrdiff00.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 * + +genfile --sparse --block-size=1024 --file foo \ + 0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ +genfile --file baz +echo creating +tar --sparse -vcf bar foo baz +echo comparing +genfile --run --checkpoint 3 --length 200m --truncate foo -- \ + tar --sparse -vdf bar +) +) >>"$at_stdout" 2>>"$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 +foo +baz +comparing +foo +foo: Size differs +baz +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/sptrdiff00.at:30" +$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_173 +#AT_START_174 +at_fn_group_banner 174 'sptrdiff01.at:26' \ + "file truncated in data region while comparing" " " 25 +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +( + $as_echo "174. $at_setup_line: testing $at_desc ..." + $at_traceon + + + +# This triggers short read in check_data_region. + + + { set +x +$as_echo "$at_srcdir/sptrdiff01.at:30: +mkdir posix +(cd posix +TEST_TAR_FORMAT=posix +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H posix\" +export TAR_OPTIONS +rm -rf * + +genfile --sparse --block-size=1024 --file foo \\ + 0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ +genfile --file baz +echo creating +tar --sparse -vcf bar foo baz +echo comparing +genfile --run --checkpoint 5 --length 221278210 --truncate foo -- \\ + tar --sparse -vdf bar +)" +at_fn_check_prepare_notrace 'an embedded newline' "sptrdiff01.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 * + +genfile --sparse --block-size=1024 --file foo \ + 0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ +genfile --file baz +echo creating +tar --sparse -vcf bar foo baz +echo comparing +genfile --run --checkpoint 5 --length 221278210 --truncate foo -- \ + tar --sparse -vdf bar +) +) >>"$at_stdout" 2>>"$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 +foo +baz +comparing +foo +foo: Size differs +baz +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/sptrdiff01.at:30" +$at_failed && at_fn_log_failure +$at_traceon; } + + { set +x +$as_echo "$at_srcdir/sptrdiff01.at:30: +mkdir gnu +(cd gnu +TEST_TAR_FORMAT=gnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H gnu\" +export TAR_OPTIONS +rm -rf * + +genfile --sparse --block-size=1024 --file foo \\ + 0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ +genfile --file baz +echo creating +tar --sparse -vcf bar foo baz +echo comparing +genfile --run --checkpoint 5 --length 221278210 --truncate foo -- \\ + tar --sparse -vdf bar +)" +at_fn_check_prepare_notrace 'an embedded newline' "sptrdiff01.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 --sparse --block-size=1024 --file foo \ + 0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ +genfile --file baz +echo creating +tar --sparse -vcf bar foo baz +echo comparing +genfile --run --checkpoint 5 --length 221278210 --truncate foo -- \ + tar --sparse -vdf bar +) +) >>"$at_stdout" 2>>"$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 +foo +baz +comparing +foo +foo: Size differs +baz +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/sptrdiff01.at:30" +$at_failed && at_fn_log_failure +$at_traceon; } + + { set +x +$as_echo "$at_srcdir/sptrdiff01.at:30: +mkdir oldgnu +(cd oldgnu +TEST_TAR_FORMAT=oldgnu +export TEST_TAR_FORMAT +TAR_OPTIONS=\"-H oldgnu\" +export TAR_OPTIONS +rm -rf * + +genfile --sparse --block-size=1024 --file foo \\ + 0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ +genfile --file baz +echo creating +tar --sparse -vcf bar foo baz +echo comparing +genfile --run --checkpoint 5 --length 221278210 --truncate foo -- \\ + tar --sparse -vdf bar +)" +at_fn_check_prepare_notrace 'an embedded newline' "sptrdiff01.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 * + +genfile --sparse --block-size=1024 --file foo \ + 0 ABCDEFGHIJ 1M ABCDEFGHIJ 10M ABCDEFGHIJ 200M ABCDEFGHIJ +genfile --file baz +echo creating +tar --sparse -vcf bar foo baz +echo comparing +genfile --run --checkpoint 5 --length 221278210 --truncate foo -- \ + tar --sparse -vdf bar +) +) >>"$at_stdout" 2>>"$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 +foo +baz +comparing +foo +foo: Size differs +baz +" | \ + $at_diff - "$at_stdout" || at_failed=: +at_fn_check_status 1 $at_status "$at_srcdir/sptrdiff01.at:30" +$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_174 +#AT_START_175 +at_fn_group_banner 175 'update.at:28' \ + "update unchanged directories" " " 26 +at_xfail=no + test -f $XFAILFILE && at_xfail=yes +( + $as_echo "175. $at_setup_line: testing $at_desc ..." + $at_traceon + + + + + + { set +x +$as_echo "$at_srcdir/update.at:31: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -38931,7 +40415,7 @@ tar uf archive directory || exit 1 echo separator tar tf archive | sort || exit 1 )" -at_fn_check_prepare_notrace 'a `...` command substitution' "update.at:32" +at_fn_check_prepare_notrace 'a `...` command substitution' "update.at:31" ( $at_check_trace; mkdir v7 (cd v7 @@ -38965,12 +40449,12 @@ directory/file1 directory/file2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/update.at:32" +at_fn_check_status 0 $at_status "$at_srcdir/update.at:31" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/update.at:32: +$as_echo "$at_srcdir/update.at:31: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -38992,7 +40476,7 @@ tar uf archive directory || exit 1 echo separator tar tf archive | sort || exit 1 )" -at_fn_check_prepare_notrace 'a `...` command substitution' "update.at:32" +at_fn_check_prepare_notrace 'a `...` command substitution' "update.at:31" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -39026,12 +40510,12 @@ directory/file1 directory/file2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/update.at:32" +at_fn_check_status 0 $at_status "$at_srcdir/update.at:31" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/update.at:32: +$as_echo "$at_srcdir/update.at:31: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -39053,7 +40537,7 @@ tar uf archive directory || exit 1 echo separator tar tf archive | sort || exit 1 )" -at_fn_check_prepare_notrace 'a `...` command substitution' "update.at:32" +at_fn_check_prepare_notrace 'a `...` command substitution' "update.at:31" ( $at_check_trace; mkdir ustar (cd ustar @@ -39087,12 +40571,12 @@ directory/file1 directory/file2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/update.at:32" +at_fn_check_status 0 $at_status "$at_srcdir/update.at:31" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/update.at:32: +$as_echo "$at_srcdir/update.at:31: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -39114,7 +40598,7 @@ tar uf archive directory || exit 1 echo separator tar tf archive | sort || exit 1 )" -at_fn_check_prepare_notrace 'a `...` command substitution' "update.at:32" +at_fn_check_prepare_notrace 'a `...` command substitution' "update.at:31" ( $at_check_trace; mkdir posix (cd posix @@ -39148,12 +40632,12 @@ directory/file1 directory/file2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/update.at:32" +at_fn_check_status 0 $at_status "$at_srcdir/update.at:31" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/update.at:32: +$as_echo "$at_srcdir/update.at:31: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -39175,7 +40659,7 @@ tar uf archive directory || exit 1 echo separator tar tf archive | sort || exit 1 )" -at_fn_check_prepare_notrace 'a `...` command substitution' "update.at:32" +at_fn_check_prepare_notrace 'a `...` command substitution' "update.at:31" ( $at_check_trace; mkdir gnu (cd gnu @@ -39209,7 +40693,7 @@ directory/file1 directory/file2 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/update.at:32" +at_fn_check_status 0 $at_status "$at_srcdir/update.at:31" $at_failed && at_fn_log_failure $at_traceon; } @@ -39220,14 +40704,14 @@ $at_traceon; } $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 'update01.at:29' \ - "update directories" " " 23 +#AT_STOP_175 +#AT_START_176 +at_fn_group_banner 176 'update01.at:29' \ + "update directories" " " 26 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "162. $at_setup_line: testing $at_desc ..." + $as_echo "176. $at_setup_line: testing $at_desc ..." $at_traceon @@ -39591,14 +41075,14 @@ $at_traceon; } $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 'update02.at:26' \ - "update changed files" " " 23 +#AT_STOP_176 +#AT_START_177 +at_fn_group_banner 177 'update02.at:26' \ + "update changed files" " " 26 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "163. $at_setup_line: testing $at_desc ..." + $as_echo "177. $at_setup_line: testing $at_desc ..." $at_traceon @@ -39962,14 +41446,14 @@ $at_traceon; } $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 'update03.at:20' \ - "update with chdir" " " 23 +#AT_STOP_177 +#AT_START_178 +at_fn_group_banner 178 'update03.at:20' \ + "update with chdir" " " 26 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "164. $at_setup_line: testing $at_desc ..." + $as_echo "178. $at_setup_line: testing $at_desc ..." $at_traceon @@ -40297,14 +41781,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'verify.at:25' \ - "verify" " " 24 +#AT_STOP_178 +#AT_START_179 +at_fn_group_banner 179 'verify.at:25' \ + "verify" " " 27 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "165. $at_setup_line: testing $at_desc ..." + $as_echo "179. $at_setup_line: testing $at_desc ..." $at_traceon @@ -40508,14 +41992,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'volume.at:24' \ - "volume" " " 25 +#AT_STOP_179 +#AT_START_180 +at_fn_group_banner 180 'volume.at:23' \ + "volume" " " 28 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "166. $at_setup_line: testing $at_desc ..." + $as_echo "180. $at_setup_line: testing $at_desc ..." $at_traceon @@ -40523,7 +42007,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/volume.at:27: +$as_echo "$at_srcdir/volume.at:26: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -40548,7 +42032,7 @@ echo 1>&2 ----- tar xfV archive babel test \$? = 2 )" -at_fn_check_prepare_notrace 'an embedded newline' "volume.at:27" +at_fn_check_prepare_notrace 'an embedded newline' "volume.at:26" ( $at_check_trace; mkdir gnu (cd gnu @@ -40589,12 +42073,12 @@ 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:27" +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:27: +$as_echo "$at_srcdir/volume.at:26: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -40619,7 +42103,7 @@ echo 1>&2 ----- tar xfV archive babel test \$? = 2 )" -at_fn_check_prepare_notrace 'an embedded newline' "volume.at:27" +at_fn_check_prepare_notrace 'an embedded newline' "volume.at:26" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -40660,7 +42144,7 @@ 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:27" +at_fn_check_status 0 $at_status "$at_srcdir/volume.at:26" $at_failed && at_fn_log_failure $at_traceon; } @@ -40671,14 +42155,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'volsize.at:30' \ - "volume header size" " " 25 +#AT_STOP_180 +#AT_START_181 +at_fn_group_banner 181 'volsize.at:29' \ + "volume header size" " " 28 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "167. $at_setup_line: testing $at_desc ..." + $as_echo "181. $at_setup_line: testing $at_desc ..." $at_traceon @@ -40686,7 +42170,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/volsize.at:33: +$as_echo "$at_srcdir/volsize.at:32: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -40710,7 +42194,7 @@ echo Extracted directory tar xf \$TEST_DATA_DIR/abc.tar find abc|sort )" -at_fn_check_prepare_notrace 'a `...` command substitution' "volsize.at:33" +at_fn_check_prepare_notrace 'a `...` command substitution' "volsize.at:32" ( $at_check_trace; mkdir v7 (cd v7 @@ -40750,12 +42234,12 @@ abc abc/CCC " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/volsize.at:33" +at_fn_check_status 0 $at_status "$at_srcdir/volsize.at:32" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/volsize.at:33: +$as_echo "$at_srcdir/volsize.at:32: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -40779,7 +42263,7 @@ echo Extracted directory tar xf \$TEST_DATA_DIR/abc.tar find abc|sort )" -at_fn_check_prepare_notrace 'a `...` command substitution' "volsize.at:33" +at_fn_check_prepare_notrace 'a `...` command substitution' "volsize.at:32" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -40819,12 +42303,12 @@ abc abc/CCC " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/volsize.at:33" +at_fn_check_status 0 $at_status "$at_srcdir/volsize.at:32" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/volsize.at:33: +$as_echo "$at_srcdir/volsize.at:32: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -40848,7 +42332,7 @@ echo Extracted directory tar xf \$TEST_DATA_DIR/abc.tar find abc|sort )" -at_fn_check_prepare_notrace 'a `...` command substitution' "volsize.at:33" +at_fn_check_prepare_notrace 'a `...` command substitution' "volsize.at:32" ( $at_check_trace; mkdir ustar (cd ustar @@ -40888,12 +42372,12 @@ abc abc/CCC " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/volsize.at:33" +at_fn_check_status 0 $at_status "$at_srcdir/volsize.at:32" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/volsize.at:33: +$as_echo "$at_srcdir/volsize.at:32: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -40917,7 +42401,7 @@ echo Extracted directory tar xf \$TEST_DATA_DIR/abc.tar find abc|sort )" -at_fn_check_prepare_notrace 'a `...` command substitution' "volsize.at:33" +at_fn_check_prepare_notrace 'a `...` command substitution' "volsize.at:32" ( $at_check_trace; mkdir posix (cd posix @@ -40957,12 +42441,12 @@ abc abc/CCC " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/volsize.at:33" +at_fn_check_status 0 $at_status "$at_srcdir/volsize.at:32" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/volsize.at:33: +$as_echo "$at_srcdir/volsize.at:32: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -40986,7 +42470,7 @@ echo Extracted directory tar xf \$TEST_DATA_DIR/abc.tar find abc|sort )" -at_fn_check_prepare_notrace 'a `...` command substitution' "volsize.at:33" +at_fn_check_prepare_notrace 'a `...` command substitution' "volsize.at:32" ( $at_check_trace; mkdir gnu (cd gnu @@ -41026,7 +42510,7 @@ abc abc/CCC " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/volsize.at:33" +at_fn_check_status 0 $at_status "$at_srcdir/volsize.at:32" $at_failed && at_fn_log_failure $at_traceon; } @@ -41037,14 +42521,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'comprec.at:22' \ - "compressed format recognition" " " 26 +#AT_STOP_181 +#AT_START_182 +at_fn_group_banner 182 'comprec.at:21' \ + "compressed format recognition" " " 29 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "168. $at_setup_line: testing $at_desc ..." + $as_echo "182. $at_setup_line: testing $at_desc ..." $at_traceon @@ -41053,7 +42537,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/comprec.at:26: +$as_echo "$at_srcdir/comprec.at:25: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -41073,7 +42557,7 @@ mv file1 orig tar xfv archive --warning=no-timestamp cmp orig file1 )" -at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:26" +at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:25" ( $at_check_trace; mkdir v7 (cd v7 @@ -41103,12 +42587,12 @@ separator file1 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:26" +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:26: +$as_echo "$at_srcdir/comprec.at:25: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -41128,7 +42612,7 @@ mv file1 orig tar xfv archive --warning=no-timestamp cmp orig file1 )" -at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:26" +at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:25" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -41158,12 +42642,12 @@ separator file1 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:26" +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:26: +$as_echo "$at_srcdir/comprec.at:25: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -41183,7 +42667,7 @@ mv file1 orig tar xfv archive --warning=no-timestamp cmp orig file1 )" -at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:26" +at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:25" ( $at_check_trace; mkdir ustar (cd ustar @@ -41213,12 +42697,12 @@ separator file1 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:26" +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:26: +$as_echo "$at_srcdir/comprec.at:25: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -41238,7 +42722,7 @@ mv file1 orig tar xfv archive --warning=no-timestamp cmp orig file1 )" -at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:26" +at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:25" ( $at_check_trace; mkdir posix (cd posix @@ -41268,12 +42752,12 @@ separator file1 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:26" +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:26: +$as_echo "$at_srcdir/comprec.at:25: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -41293,7 +42777,7 @@ mv file1 orig tar xfv archive --warning=no-timestamp cmp orig file1 )" -at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:26" +at_fn_check_prepare_notrace 'an embedded newline' "comprec.at:25" ( $at_check_trace; mkdir gnu (cd gnu @@ -41323,7 +42807,7 @@ separator file1 " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:26" +at_fn_check_status 0 $at_status "$at_srcdir/comprec.at:25" $at_failed && at_fn_log_failure $at_traceon; } @@ -41334,14 +42818,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'shortfile.at:26' \ - "short input files" " " 26 +#AT_STOP_182 +#AT_START_183 +at_fn_group_banner 183 'shortfile.at:26' \ + "short input files" " " 29 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "169. $at_setup_line: testing $at_desc ..." + $as_echo "183. $at_setup_line: testing $at_desc ..." $at_traceon @@ -41393,14 +42877,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'shortupd.at:31' \ - "updating short archives" " " 26 +#AT_STOP_183 +#AT_START_184 +at_fn_group_banner 184 'shortupd.at:31' \ + "updating short archives" " " 29 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "170. $at_setup_line: testing $at_desc ..." + $as_echo "184. $at_setup_line: testing $at_desc ..." $at_traceon @@ -41589,14 +43073,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'truncate.at:30' \ - "truncate" " " 26 +#AT_STOP_184 +#AT_START_185 +at_fn_group_banner 185 'truncate.at:29' \ + "truncate" " " 29 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "171. $at_setup_line: testing $at_desc ..." + $as_echo "185. $at_setup_line: testing $at_desc ..." $at_traceon @@ -41604,7 +43088,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/truncate.at:33: +$as_echo "$at_srcdir/truncate.at:32: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -41615,12 +43099,13 @@ 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 +genfile --run --checkpoint 10 --length 195k --truncate foo -- \\ + tar -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:33" +tar dvf bar|sed '/foo: Mod time differs/d')" +at_fn_check_prepare_notrace 'an embedded newline' "truncate.at:32" ( $at_check_trace; mkdir v7 (cd v7 @@ -41632,11 +43117,12 @@ 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 +genfile --run --checkpoint 10 --length 195k --truncate foo -- \ + tar -vcf bar foo baz echo Exit status: $? echo separator genfile --file foo --seek 195k --length 5k --pattern=zeros -tar dvf bar) +tar dvf bar|sed '/foo: Mod time differs/d') ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -41648,16 +43134,15 @@ 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:33" +at_fn_check_status 0 $at_status "$at_srcdir/truncate.at:32" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/truncate.at:33: +$as_echo "$at_srcdir/truncate.at:32: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -41668,12 +43153,13 @@ 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 +genfile --run --checkpoint 10 --length 195k --truncate foo -- \\ + tar -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:33" +tar dvf bar|sed '/foo: Mod time differs/d')" +at_fn_check_prepare_notrace 'an embedded newline' "truncate.at:32" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -41685,11 +43171,12 @@ 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 +genfile --run --checkpoint 10 --length 195k --truncate foo -- \ + tar -vcf bar foo baz echo Exit status: $? echo separator genfile --file foo --seek 195k --length 5k --pattern=zeros -tar dvf bar) +tar dvf bar|sed '/foo: Mod time differs/d') ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -41701,16 +43188,15 @@ 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:33" +at_fn_check_status 0 $at_status "$at_srcdir/truncate.at:32" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/truncate.at:33: +$as_echo "$at_srcdir/truncate.at:32: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -41721,12 +43207,13 @@ 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 +genfile --run --checkpoint 10 --length 195k --truncate foo -- \\ + tar -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:33" +tar dvf bar|sed '/foo: Mod time differs/d')" +at_fn_check_prepare_notrace 'an embedded newline' "truncate.at:32" ( $at_check_trace; mkdir ustar (cd ustar @@ -41738,11 +43225,12 @@ 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 +genfile --run --checkpoint 10 --length 195k --truncate foo -- \ + tar -vcf bar foo baz echo Exit status: $? echo separator genfile --file foo --seek 195k --length 5k --pattern=zeros -tar dvf bar) +tar dvf bar|sed '/foo: Mod time differs/d') ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -41754,16 +43242,15 @@ 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:33" +at_fn_check_status 0 $at_status "$at_srcdir/truncate.at:32" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/truncate.at:33: +$as_echo "$at_srcdir/truncate.at:32: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -41774,12 +43261,13 @@ 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 +genfile --run --checkpoint 10 --length 195k --truncate foo -- \\ + tar -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:33" +tar dvf bar|sed '/foo: Mod time differs/d')" +at_fn_check_prepare_notrace 'an embedded newline' "truncate.at:32" ( $at_check_trace; mkdir posix (cd posix @@ -41791,11 +43279,12 @@ 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 +genfile --run --checkpoint 10 --length 195k --truncate foo -- \ + tar -vcf bar foo baz echo Exit status: $? echo separator genfile --file foo --seek 195k --length 5k --pattern=zeros -tar dvf bar) +tar dvf bar|sed '/foo: Mod time differs/d') ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -41807,16 +43296,15 @@ 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:33" +at_fn_check_status 0 $at_status "$at_srcdir/truncate.at:32" $at_failed && at_fn_log_failure $at_traceon; } { set +x -$as_echo "$at_srcdir/truncate.at:33: +$as_echo "$at_srcdir/truncate.at:32: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -41827,12 +43315,13 @@ 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 +genfile --run --checkpoint 10 --length 195k --truncate foo -- \\ + tar -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:33" +tar dvf bar|sed '/foo: Mod time differs/d')" +at_fn_check_prepare_notrace 'an embedded newline' "truncate.at:32" ( $at_check_trace; mkdir gnu (cd gnu @@ -41844,11 +43333,12 @@ 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 +genfile --run --checkpoint 10 --length 195k --truncate foo -- \ + tar -vcf bar foo baz echo Exit status: $? echo separator genfile --file foo --seek 195k --length 5k --pattern=zeros -tar dvf bar) +tar dvf bar|sed '/foo: Mod time differs/d') ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false $at_check_filter @@ -41860,11 +43350,10 @@ 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:33" +at_fn_check_status 0 $at_status "$at_srcdir/truncate.at:32" $at_failed && at_fn_log_failure $at_traceon; } @@ -41875,14 +43364,14 @@ $at_traceon; } $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 'grow.at:25' \ - "grow" " " 26 +#AT_STOP_185 +#AT_START_186 +at_fn_group_banner 186 'grow.at:24' \ + "grow" " " 29 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "172. $at_setup_line: testing $at_desc ..." + $as_echo "186. $at_setup_line: testing $at_desc ..." $at_traceon @@ -41890,7 +43379,7 @@ at_xfail=no { set +x -$as_echo "$at_srcdir/grow.at:28: +$as_echo "$at_srcdir/grow.at:27: mkdir v7 (cd v7 TEST_TAR_FORMAT=v7 @@ -41901,9 +43390,9 @@ rm -rf * genfile --file foo --length 50000k genfile --file baz -genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz +genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz )" -at_fn_check_prepare_notrace 'an embedded newline' "grow.at:28" +at_fn_check_prepare_notrace 'an embedded newline' "grow.at:27" ( $at_check_trace; mkdir v7 (cd v7 @@ -41915,7 +43404,7 @@ rm -rf * genfile --file foo --length 50000k genfile --file baz -genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz +genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz ) ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false @@ -41927,12 +43416,12 @@ echo >>"$at_stdout"; $as_echo "foo baz " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 1 $at_status "$at_srcdir/grow.at:28" +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:28: +$as_echo "$at_srcdir/grow.at:27: mkdir oldgnu (cd oldgnu TEST_TAR_FORMAT=oldgnu @@ -41943,9 +43432,9 @@ rm -rf * genfile --file foo --length 50000k genfile --file baz -genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz +genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz )" -at_fn_check_prepare_notrace 'an embedded newline' "grow.at:28" +at_fn_check_prepare_notrace 'an embedded newline' "grow.at:27" ( $at_check_trace; mkdir oldgnu (cd oldgnu @@ -41957,7 +43446,7 @@ rm -rf * genfile --file foo --length 50000k genfile --file baz -genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz +genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz ) ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false @@ -41969,12 +43458,12 @@ echo >>"$at_stdout"; $as_echo "foo baz " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 1 $at_status "$at_srcdir/grow.at:28" +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:28: +$as_echo "$at_srcdir/grow.at:27: mkdir ustar (cd ustar TEST_TAR_FORMAT=ustar @@ -41985,9 +43474,9 @@ rm -rf * genfile --file foo --length 50000k genfile --file baz -genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz +genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz )" -at_fn_check_prepare_notrace 'an embedded newline' "grow.at:28" +at_fn_check_prepare_notrace 'an embedded newline' "grow.at:27" ( $at_check_trace; mkdir ustar (cd ustar @@ -41999,7 +43488,7 @@ rm -rf * genfile --file foo --length 50000k genfile --file baz -genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz +genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz ) ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false @@ -42011,12 +43500,12 @@ echo >>"$at_stdout"; $as_echo "foo baz " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 1 $at_status "$at_srcdir/grow.at:28" +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:28: +$as_echo "$at_srcdir/grow.at:27: mkdir posix (cd posix TEST_TAR_FORMAT=posix @@ -42027,9 +43516,9 @@ rm -rf * genfile --file foo --length 50000k genfile --file baz -genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz +genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz )" -at_fn_check_prepare_notrace 'an embedded newline' "grow.at:28" +at_fn_check_prepare_notrace 'an embedded newline' "grow.at:27" ( $at_check_trace; mkdir posix (cd posix @@ -42041,7 +43530,7 @@ rm -rf * genfile --file foo --length 50000k genfile --file baz -genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz +genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz ) ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false @@ -42053,12 +43542,12 @@ echo >>"$at_stdout"; $as_echo "foo baz " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 1 $at_status "$at_srcdir/grow.at:28" +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:28: +$as_echo "$at_srcdir/grow.at:27: mkdir gnu (cd gnu TEST_TAR_FORMAT=gnu @@ -42069,9 +43558,9 @@ rm -rf * genfile --file foo --length 50000k genfile --file baz -genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz +genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz )" -at_fn_check_prepare_notrace 'an embedded newline' "grow.at:28" +at_fn_check_prepare_notrace 'an embedded newline' "grow.at:27" ( $at_check_trace; mkdir gnu (cd gnu @@ -42083,7 +43572,7 @@ rm -rf * genfile --file foo --length 50000k genfile --file baz -genfile --run --checkpoint 10 --length 1024 --append foo -- tar --checkpoint -vcf bar foo baz +genfile --run=10 --checkpoint 10 --length 1024 --append foo -- tar -vcf bar foo baz ) ) >>"$at_stdout" 2>>"$at_stderr" 5>&- at_status=$? at_failed=false @@ -42095,7 +43584,7 @@ echo >>"$at_stdout"; $as_echo "foo baz " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 1 $at_status "$at_srcdir/grow.at:28" +at_fn_check_status 1 $at_status "$at_srcdir/grow.at:27" $at_failed && at_fn_log_failure $at_traceon; } @@ -42106,13 +43595,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'sigpipe.at:21' \ - "sigpipe handling" " " 26 +#AT_STOP_186 +#AT_START_187 +at_fn_group_banner 187 'sigpipe.at:21' \ + "sigpipe handling" " " 29 at_xfail=no ( - $as_echo "173. $at_setup_line: testing $at_desc ..." + $as_echo "187. $at_setup_line: testing $at_desc ..." $at_traceon @@ -42171,14 +43660,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'comperr.at:18' \ - "compressor program failure" " " 26 +#AT_STOP_187 +#AT_START_188 +at_fn_group_banner 188 'comperr.at:18' \ + "compressor program failure" " " 29 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "174. $at_setup_line: testing $at_desc ..." + $as_echo "188. $at_setup_line: testing $at_desc ..." $at_traceon @@ -42404,13 +43893,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'remfiles01.at:28' \ - "remove-files with compression" " " 27 +#AT_STOP_188 +#AT_START_189 +at_fn_group_banner 189 'remfiles01.at:28' \ + "remove-files with compression" " " 30 at_xfail=no ( - $as_echo "175. $at_setup_line: testing $at_desc ..." + $as_echo "189. $at_setup_line: testing $at_desc ..." $at_traceon @@ -42530,13 +44019,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'remfiles02.at:28' \ - "remove-files with compression: grand-child" " " 27 +#AT_STOP_189 +#AT_START_190 +at_fn_group_banner 190 'remfiles02.at:28' \ + "remove-files with compression: grand-child" " " 30 at_xfail=no ( - $as_echo "176. $at_setup_line: testing $at_desc ..." + $as_echo "190. $at_setup_line: testing $at_desc ..." $at_traceon @@ -42608,13 +44097,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'remfiles03.at:28' \ - "remove-files with symbolic links" " " 27 +#AT_STOP_190 +#AT_START_191 +at_fn_group_banner 191 'remfiles03.at:28' \ + "remove-files with symbolic links" " " 30 at_xfail=no ( - $as_echo "177. $at_setup_line: testing $at_desc ..." + $as_echo "191. $at_setup_line: testing $at_desc ..." $at_traceon @@ -42651,14 +44140,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'remfiles04a.at:25' \ - "remove-files with -C:rel in -c/non-incr. mode" " " 27 +#AT_STOP_191 +#AT_START_192 +at_fn_group_banner 192 'remfiles04a.at:25' \ + "remove-files with -C:rel in -c/non-incr. mode" " " 30 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "178. $at_setup_line: testing $at_desc ..." + $as_echo "192. $at_setup_line: testing $at_desc ..." $at_traceon @@ -42727,14 +44216,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'remfiles04b.at:33' \ - "remove-files with -C:rel in -c/incr. mode" " " 27 +#AT_STOP_192 +#AT_START_193 +at_fn_group_banner 193 'remfiles04b.at:33' \ + "remove-files with -C:rel in -c/incr. mode" " " 30 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "179. $at_setup_line: testing $at_desc ..." + $as_echo "193. $at_setup_line: testing $at_desc ..." $at_traceon @@ -42803,14 +44292,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 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 'remfiles04c.at:33' \ - "remove-files with -C:rel in -r mode" " " 27 +#AT_STOP_193 +#AT_START_194 +at_fn_group_banner 194 'remfiles04c.at:33' \ + "remove-files with -C:rel in -r mode" " " 30 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "180. $at_setup_line: testing $at_desc ..." + $as_echo "194. $at_setup_line: testing $at_desc ..." $at_traceon @@ -42891,14 +44380,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_180 -#AT_START_181 -at_fn_group_banner 181 'remfiles05a.at:34' \ - "remove-files with -C:rel,rel in -c/non-incr. mode" "" 27 +#AT_STOP_194 +#AT_START_195 +at_fn_group_banner 195 'remfiles05a.at:34' \ + "remove-files with -C:rel,rel in -c/non-incr. mode" "" 30 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "181. $at_setup_line: testing $at_desc ..." + $as_echo "195. $at_setup_line: testing $at_desc ..." $at_traceon @@ -42980,14 +44469,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_181 -#AT_START_182 -at_fn_group_banner 182 'remfiles05b.at:25' \ - "remove-files with -C:rel,rel in -c/incr. mode" " " 27 +#AT_STOP_195 +#AT_START_196 +at_fn_group_banner 196 'remfiles05b.at:25' \ + "remove-files with -C:rel,rel in -c/incr. mode" " " 30 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "182. $at_setup_line: testing $at_desc ..." + $as_echo "196. $at_setup_line: testing $at_desc ..." $at_traceon @@ -43069,14 +44558,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_182 -#AT_START_183 -at_fn_group_banner 183 'remfiles05c.at:25' \ - "remove-files with -C:rel,rel in -r mode" " " 27 +#AT_STOP_196 +#AT_START_197 +at_fn_group_banner 197 'remfiles05c.at:25' \ + "remove-files with -C:rel,rel in -r mode" " " 30 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "183. $at_setup_line: testing $at_desc ..." + $as_echo "197. $at_setup_line: testing $at_desc ..." $at_traceon @@ -43173,14 +44662,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_183 -#AT_START_184 -at_fn_group_banner 184 'remfiles06a.at:25' \ - "remove-files with -C:rel,abs in -c/non-incr. mode" "" 27 +#AT_STOP_197 +#AT_START_198 +at_fn_group_banner 198 'remfiles06a.at:25' \ + "remove-files with -C:rel,abs in -c/non-incr. mode" "" 30 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "184. $at_setup_line: testing $at_desc ..." + $as_echo "198. $at_setup_line: testing $at_desc ..." $at_traceon @@ -43264,14 +44753,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_184 -#AT_START_185 -at_fn_group_banner 185 'remfiles06b.at:25' \ - "remove-files with -C:rel,abs in -c/incr. mode" " " 27 +#AT_STOP_198 +#AT_START_199 +at_fn_group_banner 199 'remfiles06b.at:25' \ + "remove-files with -C:rel,abs in -c/incr. mode" " " 30 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "185. $at_setup_line: testing $at_desc ..." + $as_echo "199. $at_setup_line: testing $at_desc ..." $at_traceon @@ -43355,14 +44844,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_185 -#AT_START_186 -at_fn_group_banner 186 'remfiles06c.at:25' \ - "remove-files with -C:rel,abs in -r mode" " " 27 +#AT_STOP_199 +#AT_START_200 +at_fn_group_banner 200 'remfiles06c.at:25' \ + "remove-files with -C:rel,abs in -r mode" " " 30 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "186. $at_setup_line: testing $at_desc ..." + $as_echo "200. $at_setup_line: testing $at_desc ..." $at_traceon @@ -43461,14 +44950,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_186 -#AT_START_187 -at_fn_group_banner 187 'remfiles07a.at:25' \ - "remove-files with -C:abs,rel in -c/non-incr. mode" "" 27 +#AT_STOP_200 +#AT_START_201 +at_fn_group_banner 201 'remfiles07a.at:25' \ + "remove-files with -C:abs,rel in -c/non-incr. mode" "" 30 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "187. $at_setup_line: testing $at_desc ..." + $as_echo "201. $at_setup_line: testing $at_desc ..." $at_traceon @@ -43552,14 +45041,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_187 -#AT_START_188 -at_fn_group_banner 188 'remfiles07b.at:25' \ - "remove-files with -C:abs,rel in -c/incr. mode" " " 27 +#AT_STOP_201 +#AT_START_202 +at_fn_group_banner 202 'remfiles07b.at:25' \ + "remove-files with -C:abs,rel in -c/incr. mode" " " 30 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "188. $at_setup_line: testing $at_desc ..." + $as_echo "202. $at_setup_line: testing $at_desc ..." $at_traceon @@ -43643,14 +45132,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_188 -#AT_START_189 -at_fn_group_banner 189 'remfiles07c.at:25' \ - "remove-files with -C:abs,rel in -r mode" " " 27 +#AT_STOP_202 +#AT_START_203 +at_fn_group_banner 203 'remfiles07c.at:25' \ + "remove-files with -C:abs,rel in -r mode" " " 30 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "189. $at_setup_line: testing $at_desc ..." + $as_echo "203. $at_setup_line: testing $at_desc ..." $at_traceon @@ -43749,14 +45238,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_189 -#AT_START_190 -at_fn_group_banner 190 'remfiles08a.at:28' \ - "remove-files deleting two subdirs in -c/non-incr. mode" "" 27 +#AT_STOP_203 +#AT_START_204 +at_fn_group_banner 204 'remfiles08a.at:28' \ + "remove-files deleting two subdirs in -c/non-incr. mode" "" 30 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "190. $at_setup_line: testing $at_desc ..." + $as_echo "204. $at_setup_line: testing $at_desc ..." $at_traceon @@ -43829,14 +45318,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_190 -#AT_START_191 -at_fn_group_banner 191 'remfiles08b.at:31' \ - "remove-files deleting two subdirs in -c/incr. mode" "" 27 +#AT_STOP_204 +#AT_START_205 +at_fn_group_banner 205 'remfiles08b.at:31' \ + "remove-files deleting two subdirs in -c/incr. mode" "" 30 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "191. $at_setup_line: testing $at_desc ..." + $as_echo "205. $at_setup_line: testing $at_desc ..." $at_traceon @@ -43911,14 +45400,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_191 -#AT_START_192 -at_fn_group_banner 192 'remfiles08c.at:28' \ - "remove-files deleting two subdirs in -r mode" " " 27 +#AT_STOP_205 +#AT_START_206 +at_fn_group_banner 206 'remfiles08c.at:28' \ + "remove-files deleting two subdirs in -r mode" " " 30 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "192. $at_setup_line: testing $at_desc ..." + $as_echo "206. $at_setup_line: testing $at_desc ..." $at_traceon @@ -44011,14 +45500,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_192 -#AT_START_193 -at_fn_group_banner 193 'remfiles09a.at:25' \ - "remove-files on full directory in -c/non-incr. mode" "" 27 +#AT_STOP_206 +#AT_START_207 +at_fn_group_banner 207 'remfiles09a.at:25' \ + "remove-files on full directory in -c/non-incr. mode" "" 30 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "193. $at_setup_line: testing $at_desc ..." + $as_echo "207. $at_setup_line: testing $at_desc ..." $at_traceon @@ -44085,14 +45574,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_193 -#AT_START_194 -at_fn_group_banner 194 'remfiles09b.at:29' \ - "remove-files on full directory in -c/incr. mode" "" 27 +#AT_STOP_207 +#AT_START_208 +at_fn_group_banner 208 'remfiles09b.at:29' \ + "remove-files on full directory in -c/incr. mode" "" 30 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "194. $at_setup_line: testing $at_desc ..." + $as_echo "208. $at_setup_line: testing $at_desc ..." $at_traceon @@ -44160,14 +45649,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_194 -#AT_START_195 -at_fn_group_banner 195 'remfiles09c.at:25' \ - "remove-files on full directory in -r mode" " " 27 +#AT_STOP_208 +#AT_START_209 +at_fn_group_banner 209 'remfiles09c.at:25' \ + "remove-files on full directory in -r mode" " " 30 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "195. $at_setup_line: testing $at_desc ..." + $as_echo "209. $at_setup_line: testing $at_desc ..." $at_traceon @@ -44252,14 +45741,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_195 -#AT_START_196 -at_fn_group_banner 196 'remfiles10.at:20' \ - "remove-files" " " 27 +#AT_STOP_209 +#AT_START_210 +at_fn_group_banner 210 'remfiles10.at:20' \ + "remove-files" " " 30 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "196. $at_setup_line: testing $at_desc ..." + $as_echo "210. $at_setup_line: testing $at_desc ..." $at_traceon @@ -44331,14 +45820,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_196 -#AT_START_197 -at_fn_group_banner 197 'xattr01.at:25' \ - "xattrs: basic functionality" " " 28 +#AT_STOP_210 +#AT_START_211 +at_fn_group_banner 211 'xattr01.at:25' \ + "xattrs: basic functionality" " " 31 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "197. $at_setup_line: testing $at_desc ..." + $as_echo "211. $at_setup_line: testing $at_desc ..." $at_traceon @@ -44892,14 +46381,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_197 -#AT_START_198 -at_fn_group_banner 198 'xattr02.at:25' \ - "xattrs: change directory with -C option" " " 28 +#AT_STOP_211 +#AT_START_212 +at_fn_group_banner 212 'xattr02.at:25' \ + "xattrs: change directory with -C option" " " 31 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "198. $at_setup_line: testing $at_desc ..." + $as_echo "212. $at_setup_line: testing $at_desc ..." $at_traceon @@ -45528,14 +47017,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_198 -#AT_START_199 -at_fn_group_banner 199 'xattr03.at:25' \ - "xattrs: trusted.* attributes" " " 28 +#AT_STOP_212 +#AT_START_213 +at_fn_group_banner 213 'xattr03.at:25' \ + "xattrs: trusted.* attributes" " " 31 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "199. $at_setup_line: testing $at_desc ..." + $as_echo "213. $at_setup_line: testing $at_desc ..." $at_traceon @@ -46244,14 +47733,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_199 -#AT_START_200 -at_fn_group_banner 200 'xattr04.at:26' \ - "xattrs: s/open/openat/ regression" " " 28 +#AT_STOP_213 +#AT_START_214 +at_fn_group_banner 214 'xattr04.at:26' \ + "xattrs: s/open/openat/ regression" " " 31 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "200. $at_setup_line: testing $at_desc ..." + $as_echo "214. $at_setup_line: testing $at_desc ..." $at_traceon @@ -46810,14 +48299,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_200 -#AT_START_201 -at_fn_group_banner 201 'xattr05.at:28' \ - "xattrs: keywords with '=' and '%'" " " 28 +#AT_STOP_214 +#AT_START_215 +at_fn_group_banner 215 'xattr05.at:28' \ + "xattrs: keywords with '=' and '%'" " " 31 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "201. $at_setup_line: testing $at_desc ..." + $as_echo "215. $at_setup_line: testing $at_desc ..." $at_traceon @@ -47366,14 +48855,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_201 -#AT_START_202 -at_fn_group_banner 202 'xattr06.at:27' \ - "xattrs: exclude xattrs on create " " " 28 +#AT_STOP_215 +#AT_START_216 +at_fn_group_banner 216 'xattr06.at:27' \ + "xattrs: exclude xattrs on create " " " 31 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "202. $at_setup_line: testing $at_desc ..." + $as_echo "216. $at_setup_line: testing $at_desc ..." $at_traceon @@ -47982,14 +49471,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_202 -#AT_START_203 -at_fn_group_banner 203 'xattr07.at:26' \ - "xattrs: xattrs and --skip-old-files" " " 28 +#AT_STOP_216 +#AT_START_217 +at_fn_group_banner 217 'xattr07.at:26' \ + "xattrs: xattrs and --skip-old-files" " " 31 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "203. $at_setup_line: testing $at_desc ..." + $as_echo "217. $at_setup_line: testing $at_desc ..." $at_traceon @@ -48703,14 +50192,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_203 -#AT_START_204 -at_fn_group_banner 204 'acls01.at:25' \ - "acls: basic functionality" " " 28 +#AT_STOP_217 +#AT_START_218 +at_fn_group_banner 218 'acls01.at:25' \ + "acls: basic functionality" " " 31 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "204. $at_setup_line: testing $at_desc ..." + $as_echo "218. $at_setup_line: testing $at_desc ..." $at_traceon @@ -49469,14 +50958,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_204 -#AT_START_205 -at_fn_group_banner 205 'acls02.at:25' \ - "acls: work with -C" " " 28 +#AT_STOP_218 +#AT_START_219 +at_fn_group_banner 219 'acls02.at:25' \ + "acls: work with -C" " " 31 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "205. $at_setup_line: testing $at_desc ..." + $as_echo "219. $at_setup_line: testing $at_desc ..." $at_traceon @@ -50295,14 +51784,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_205 -#AT_START_206 -at_fn_group_banner 206 'acls03.at:30' \ - "acls: default ACLs" " " 28 +#AT_STOP_219 +#AT_START_220 +at_fn_group_banner 220 'acls03.at:30' \ + "acls: default ACLs" " " 31 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "206. $at_setup_line: testing $at_desc ..." + $as_echo "220. $at_setup_line: testing $at_desc ..." $at_traceon @@ -52545,14 +54034,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_206 -#AT_START_207 -at_fn_group_banner 207 'selnx01.at:25' \ - "selinux: basic store/restore" " " 28 +#AT_STOP_220 +#AT_START_221 +at_fn_group_banner 221 'selnx01.at:25' \ + "selinux: basic store/restore" " " 31 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "207. $at_setup_line: testing $at_desc ..." + $as_echo "221. $at_setup_line: testing $at_desc ..." $at_traceon @@ -53721,14 +55210,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_207 -#AT_START_208 -at_fn_group_banner 208 'selacl01.at:25' \ - "acls/selinux: special files & fifos" " " 28 +#AT_STOP_221 +#AT_START_222 +at_fn_group_banner 222 'selacl01.at:25' \ + "acls/selinux: special files & fifos" " " 31 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "208. $at_setup_line: testing $at_desc ..." + $as_echo "222. $at_setup_line: testing $at_desc ..." $at_traceon @@ -54887,14 +56376,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_208 -#AT_START_209 -at_fn_group_banner 209 'capabs_raw01.at:25' \ - "capabilities: binary store/restore" " " 28 +#AT_STOP_222 +#AT_START_223 +at_fn_group_banner 223 'capabs_raw01.at:25' \ + "capabilities: binary store/restore" " " 31 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "209. $at_setup_line: testing $at_desc ..." + $as_echo "223. $at_setup_line: testing $at_desc ..." $at_traceon @@ -55713,14 +57202,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_209 -#AT_START_210 -at_fn_group_banner 210 'onetop01.at:21' \ - "tar --one-top-level" " " 29 +#AT_STOP_223 +#AT_START_224 +at_fn_group_banner 224 'onetop01.at:21' \ + "tar --one-top-level" " " 32 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "210. $at_setup_line: testing $at_desc ..." + $as_echo "224. $at_setup_line: testing $at_desc ..." $at_traceon @@ -56024,14 +57513,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_210 -#AT_START_211 -at_fn_group_banner 211 'onetop02.at:21' \ - "tar --one-top-level --show-transformed" " " 29 +#AT_STOP_224 +#AT_START_225 +at_fn_group_banner 225 'onetop02.at:21' \ + "tar --one-top-level --show-transformed" " " 32 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "211. $at_setup_line: testing $at_desc ..." + $as_echo "225. $at_setup_line: testing $at_desc ..." $at_traceon @@ -56350,14 +57839,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_211 -#AT_START_212 -at_fn_group_banner 212 'onetop03.at:21' \ - "tar --one-top-level --transform" " " 29 +#AT_STOP_225 +#AT_START_226 +at_fn_group_banner 226 'onetop03.at:21' \ + "tar --one-top-level --transform" " " 32 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "212. $at_setup_line: testing $at_desc ..." + $as_echo "226. $at_setup_line: testing $at_desc ..." $at_traceon @@ -56661,14 +58150,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_212 -#AT_START_213 -at_fn_group_banner 213 'onetop04.at:21' \ - "tar --one-top-level --transform" " " 29 +#AT_STOP_226 +#AT_START_227 +at_fn_group_banner 227 'onetop04.at:21' \ + "tar --one-top-level --transform" " " 32 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "213. $at_setup_line: testing $at_desc ..." + $as_echo "227. $at_setup_line: testing $at_desc ..." $at_traceon @@ -56937,14 +58426,14 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_213 -#AT_START_214 -at_fn_group_banner 214 'onetop05.at:21' \ - "tar --one-top-level restoring permissions" " " 29 +#AT_STOP_227 +#AT_START_228 +at_fn_group_banner 228 'onetop05.at:21' \ + "tar --one-top-level restoring permissions" " " 32 at_xfail=no test -f $XFAILFILE && at_xfail=yes ( - $as_echo "214. $at_setup_line: testing $at_desc ..." + $as_echo "228. $at_setup_line: testing $at_desc ..." $at_traceon @@ -57507,13 +58996,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_214 -#AT_START_215 -at_fn_group_banner 215 'gtarfail.at:22' \ - "gtarfail" " " 30 +#AT_STOP_228 +#AT_START_229 +at_fn_group_banner 229 'gtarfail.at:21' \ + "gtarfail" " " 33 at_xfail=no ( - $as_echo "215. $at_setup_line: testing $at_desc ..." + $as_echo "229. $at_setup_line: testing $at_desc ..." $at_traceon @@ -57521,7 +59010,7 @@ at_xfail=no unset TAR_OPTIONS { set +x -$as_echo "$at_srcdir/gtarfail.at:27: +$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 @@ -57529,7 +59018,7 @@ tarball_prereq gtarfail.tar bf7612e401aaa679edbb07ae1183811b \$STAR_TESTSCRIPTS tar --utc -tvf \$STAR_TESTSCRIPTS/gtarfail.tar " -at_fn_check_prepare_notrace 'an embedded newline' "gtarfail.at:27" +at_fn_check_prepare_notrace 'an embedded newline' "gtarfail.at:26" ( $at_check_trace; test -z "$STAR_TESTSCRIPTS" && exit 77 @@ -57550,7 +59039,7 @@ 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_fn_check_status 0 $at_status "$at_srcdir/gtarfail.at:27" +at_fn_check_status 0 $at_status "$at_srcdir/gtarfail.at:26" $at_failed && at_fn_log_failure $at_traceon; } @@ -57559,13 +59048,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_215 -#AT_START_216 -at_fn_group_banner 216 'gtarfail2.at:22' \ - "gtarfail2" " " 30 +#AT_STOP_229 +#AT_START_230 +at_fn_group_banner 230 'gtarfail2.at:21' \ + "gtarfail2" " " 33 at_xfail=no ( - $as_echo "216. $at_setup_line: testing $at_desc ..." + $as_echo "230. $at_setup_line: testing $at_desc ..." $at_traceon @@ -57573,14 +59062,14 @@ at_xfail=no unset TAR_OPTIONS { set +x -$as_echo "$at_srcdir/gtarfail2.at:27: +$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 tar --utc -tvf \$STAR_TESTSCRIPTS/gtarfail2.tar " -at_fn_check_prepare_notrace 'an embedded newline' "gtarfail2.at:27" +at_fn_check_prepare_notrace 'an embedded newline' "gtarfail2.at:26" ( $at_check_trace; test -z "$STAR_TESTSCRIPTS" && exit 77 @@ -57604,7 +59093,7 @@ 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_fn_check_status 0 $at_status "$at_srcdir/gtarfail2.at:27" +at_fn_check_status 0 $at_status "$at_srcdir/gtarfail2.at:26" $at_failed && at_fn_log_failure $at_traceon; } @@ -57613,13 +59102,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_216 -#AT_START_217 -at_fn_group_banner 217 'multi-fail.at:22' \ - "multi-fail" " " 30 +#AT_STOP_230 +#AT_START_231 +at_fn_group_banner 231 'multi-fail.at:21' \ + "multi-fail" " " 33 at_xfail=no ( - $as_echo "217. $at_setup_line: testing $at_desc ..." + $as_echo "231. $at_setup_line: testing $at_desc ..." $at_traceon @@ -57627,7 +59116,7 @@ at_xfail=no unset TAR_OPTIONS { set +x -$as_echo "$at_srcdir/multi-fail.at:27: +$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 @@ -57640,7 +59129,7 @@ tarball_prereq gnu-multi-fail-volume2.gtar b5d41c4c3ec440687d4a44957b5079a8 \$ST tar --utc -tvM -f \$STAR_TESTSCRIPTS/gnu-multi-fail-volume1.gtar \\ -f \$STAR_TESTSCRIPTS/gnu-multi-fail-volume2.gtar <&- " -at_fn_check_prepare_notrace 'an embedded newline' "multi-fail.at:27" +at_fn_check_prepare_notrace 'an embedded newline' "multi-fail.at:26" ( $at_check_trace; test -z "$STAR_TESTSCRIPTS" && exit 77 @@ -57712,7 +59201,7 @@ 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_fn_check_status 0 $at_status "$at_srcdir/multi-fail.at:27" +at_fn_check_status 0 $at_status "$at_srcdir/multi-fail.at:26" $at_failed && at_fn_log_failure $at_traceon; } @@ -57721,13 +59210,13 @@ $at_traceon; } $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_217 -#AT_START_218 -at_fn_group_banner 218 'ustar-big-2g.at:22' \ - "ustar-big-2g" " " 30 +#AT_STOP_231 +#AT_START_232 +at_fn_group_banner 232 'ustar-big-2g.at:21' \ + "ustar-big-2g" " " 33 at_xfail=no ( - $as_echo "218. $at_setup_line: testing $at_desc ..." + $as_echo "232. $at_setup_line: testing $at_desc ..." $at_traceon @@ -57735,7 +59224,8 @@ at_xfail=no unset TAR_OPTIONS { set +x -$as_echo "$at_srcdir/ustar-big-2g.at:27: +$as_echo "$at_srcdir/ustar-big-2g.at:26: +test \"\${TARTEST_SKIP_LARGE_FILES:-0}\" != 0 && exit 77 cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77 @@ -57746,8 +59236,9 @@ tarball_prereq ustar-big-2g.tar.bz2 b63979733629c8fcdf40b60065422767 \$STAR_TEST tar --utc -tvjf \$STAR_TESTSCRIPTS/ustar-big-2g.tar.bz2 " -at_fn_check_prepare_notrace 'an embedded newline' "ustar-big-2g.at:27" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ustar-big-2g.at:26" ( $at_check_trace; +test "${TARTEST_SKIP_LARGE_FILES:-0}" != 0 && exit 77 cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77 @@ -57766,7 +59257,7 @@ echo >>"$at_stdout"; $as_echo "-rw------- jes/glone 2147483647 2002-06-15 14:53 -rw-r--r-- jes/glone 0 2002-06-15 14:53 file " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/ustar-big-2g.at:27" +at_fn_check_status 0 $at_status "$at_srcdir/ustar-big-2g.at:26" $at_failed && at_fn_log_failure $at_traceon; } @@ -57788,13 +59279,13 @@ done $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_218 -#AT_START_219 -at_fn_group_banner 219 'ustar-big-8g.at:22' \ - "ustar-big-8g" " " 30 +#AT_STOP_232 +#AT_START_233 +at_fn_group_banner 233 'ustar-big-8g.at:21' \ + "ustar-big-8g" " " 33 at_xfail=no ( - $as_echo "219. $at_setup_line: testing $at_desc ..." + $as_echo "233. $at_setup_line: testing $at_desc ..." $at_traceon @@ -57802,7 +59293,8 @@ at_xfail=no unset TAR_OPTIONS { set +x -$as_echo "$at_srcdir/ustar-big-8g.at:27: +$as_echo "$at_srcdir/ustar-big-8g.at:26: +test \"\${TARTEST_SKIP_LARGE_FILES:-0}\" != 0 && exit 77 cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77 @@ -57813,8 +59305,9 @@ tarball_prereq ustar-big-8g.tar.bz2 60ff503fa4b8288bef7ada89e9c91b0f \$STAR_TEST tar --utc -tvjf \$STAR_TESTSCRIPTS/ustar-big-8g.tar.bz2 " -at_fn_check_prepare_notrace 'an embedded newline' "ustar-big-8g.at:27" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "ustar-big-8g.at:26" ( $at_check_trace; +test "${TARTEST_SKIP_LARGE_FILES:-0}" != 0 && exit 77 cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77 @@ -57833,7 +59326,7 @@ echo >>"$at_stdout"; $as_echo "-rw------- jes/glone 8589934591 2002-06-15 15:08 -rw-r--r-- jes/glone 0 2002-06-15 14:53 file " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/ustar-big-8g.at:27" +at_fn_check_status 0 $at_status "$at_srcdir/ustar-big-8g.at:26" $at_failed && at_fn_log_failure $at_traceon; } @@ -57855,13 +59348,13 @@ done $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_219 -#AT_START_220 -at_fn_group_banner 220 'pax-big-10g.at:22' \ - "pax-big-10g" " " 30 +#AT_STOP_233 +#AT_START_234 +at_fn_group_banner 234 'pax-big-10g.at:21' \ + "pax-big-10g" " " 33 at_xfail=no ( - $as_echo "220. $at_setup_line: testing $at_desc ..." + $as_echo "234. $at_setup_line: testing $at_desc ..." $at_traceon @@ -57869,7 +59362,8 @@ at_xfail=no unset TAR_OPTIONS { set +x -$as_echo "$at_srcdir/pax-big-10g.at:27: +$as_echo "$at_srcdir/pax-big-10g.at:26: +test \"\${TARTEST_SKIP_LARGE_FILES:-0}\" != 0 && exit 77 cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77 @@ -57880,8 +59374,9 @@ tarball_prereq pax-big-10g.tar.bz2 ca15c23acc8d8bb1f27e60113a5f8bff \$STAR_TESTS tar --utc -tvjf \$STAR_TESTSCRIPTS/pax-big-10g.tar.bz2 " -at_fn_check_prepare_notrace 'an embedded newline' "pax-big-10g.at:27" +at_fn_check_prepare_notrace 'a ${...} parameter expansion' "pax-big-10g.at:26" ( $at_check_trace; +test "${TARTEST_SKIP_LARGE_FILES:-0}" != 0 && exit 77 cat /dev/null | bzip2 - > /dev/null 2>&1 || exit 77 @@ -57900,7 +59395,7 @@ echo >>"$at_stdout"; $as_echo "-rw------- jes/glone 10737418240 2002-06-15 21:18 -rw-r--r-- jes/glone 0 2002-06-15 14:53 file " | \ $at_diff - "$at_stdout" || at_failed=: -at_fn_check_status 0 $at_status "$at_srcdir/pax-big-10g.at:27" +at_fn_check_status 0 $at_status "$at_srcdir/pax-big-10g.at:26" $at_failed && at_fn_log_failure $at_traceon; } @@ -57922,4 +59417,4 @@ done $at_times_p && times >"$at_times_file" ) 5>&1 2>&1 7>&- | eval $at_tee_pipe read at_status <"$at_status_file" -#AT_STOP_220 +#AT_STOP_234 diff --git a/tests/testsuite.at b/tests/testsuite.at index 2a837576..6b804d58 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004-2008, 2010-2017 Free Software Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. @@ -60,6 +60,8 @@ done m4_define([AT_SKIP_TEST],[exit 77]) +m4_define([AT_SKIP_LARGE_FILES],[test "${TARTEST_SKIP_LARGE_FILES:-0}" != 0 && AT_SKIP_TEST]) + dnl AT_TARBALL_PREREQ(tarball, md5sum) - Check if test tarball exists dnl in $TEST_DATA_DIR. If it does not, try to download it from dnl $TEST_DATA_URL. If download fails, or it the file's md5 sum does not @@ -202,6 +204,7 @@ m4_include([version.at]) m4_include([pipe.at]) +AT_BANNER([Options]) m4_include([options.at]) m4_include([options02.at]) m4_include([options03.at]) @@ -214,6 +217,36 @@ m4_include([opcomp04.at]) m4_include([opcomp05.at]) m4_include([opcomp06.at]) +AT_BANNER([Checkpoints]) +m4_pushdef([CPT_CHECK], +[AT_CHECK([ +mkdir t +cd t +for i in 0 1 2 3 4 5 6 7 8 9 +do + genfile --length 10240 --file $i +done +TAR_OPTIONS=-Hgnu +export TAR_OPTIONS +$1 +],m4_shift($@))]) +m4_include([checkpoint/defaults.at]) +m4_include([checkpoint/interval.at]) +m4_include([checkpoint/dot.at]) +m4_include([checkpoint/dot-compat.at]) +m4_include([checkpoint/dot-int.at]) +m4_popdef([CPT_CHECK]) + +AT_BANNER([Compression]) +m4_include([compress.m4]) +TAR_CHECK_COMPRESS(gzip, gz, tgz) +TAR_CHECK_COMPRESS(bzip2, bz2, tbz2) +TAR_CHECK_COMPRESS(xz, xz, txz) +dnl: omit lzma, because it would fail due to magic number mismatch +TAR_CHECK_COMPRESS(lzip, lz) +TAR_CHECK_COMPRESS(lzop, lzo) +TAR_CHECK_COMPRESS(zstd, zst, tzst) + AT_BANNER([Positional options]) m4_include([positional01.at]) m4_include([positional02.at]) @@ -405,6 +438,9 @@ m4_include([sparsemv.at]) m4_include([spmvp00.at]) m4_include([spmvp01.at]) m4_include([spmvp10.at]) +m4_include([sptrcreat.at]) +m4_include([sptrdiff00.at]) +m4_include([sptrdiff01.at]) AT_BANNER([Updates]) m4_include([update.at]) @@ -488,4 +524,3 @@ m4_include([star/ustar-big-2g.at]) m4_include([star/ustar-big-8g.at]) m4_include([star/pax-big-10g.at]) - diff --git a/tests/time01.at b/tests/time01.at index 5846ad07..758c6013 100644 --- a/tests/time01.at +++ b/tests/time01.at @@ -1,6 +1,6 @@ # Test time stamps for GNU tar. -*- Autotest -*- # -# Copyright 2012-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2012-2019 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/tests/time02.at b/tests/time02.at index 5285b9ef..be6c600b 100644 --- a/tests/time02.at +++ b/tests/time02.at @@ -1,6 +1,6 @@ # Test clamping mtime GNU tar. -*- Autotest -*- # -# Copyright 2016-2017 Free Software Foundation, Inc. +# Copyright 2016-2019 Free Software Foundation, Inc. # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by diff --git a/tests/truncate.at b/tests/truncate.at index a743e4b7..823545d8 100644 --- a/tests/truncate.at +++ b/tests/truncate.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2005, 2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2005-2019 Free Software Foundation, Inc. # This file is part of GNU tar. @@ -33,18 +32,18 @@ AT_KEYWORDS([truncate filechange]) AT_TAR_CHECK([ 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 +genfile --run --checkpoint 10 --length 195k --truncate foo -- \ + tar -vcf bar foo baz echo Exit status: $? echo separator genfile --file foo --seek 195k --length 5k --pattern=zeros -tar dvf bar], -[1], +tar dvf bar|sed '/foo: Mod time differs/d'], +[0], [foo baz Exit status: 1 separator foo -foo: Mod time differs baz ], [tar: foo: File shrank by 5120 bytes; padding with zeros diff --git a/tests/update.at b/tests/update.at index 95a3bd1c..5ea5373d 100644 --- a/tests/update.at +++ b/tests/update.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2005-2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2005-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/update01.at b/tests/update01.at index 9a2f5b01..0bdea898 100644 --- a/tests/update01.at +++ b/tests/update01.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2009, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2009-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/update02.at b/tests/update02.at index 43e90dc1..b8cddafc 100644 --- a/tests/update02.at +++ b/tests/update02.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2009, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2009-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/update03.at b/tests/update03.at index 1171581a..192134f4 100644 --- a/tests/update03.at +++ b/tests/update03.at @@ -1,6 +1,6 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2016-2017 Free Software Foundation, Inc. +# Copyright 2016-2019 Free Software Foundation, Inc. # # This file is part of GNU tar. # diff --git a/tests/verbose.at b/tests/verbose.at index 82da8827..ea7d1beb 100644 --- a/tests/verbose.at +++ b/tests/verbose.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2006-2007, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2006-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/verify.at b/tests/verify.at index b3503522..2590c797 100644 --- a/tests/verify.at +++ b/tests/verify.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/version.at b/tests/version.at index 2d497523..c166307d 100644 --- a/tests/version.at +++ b/tests/version.at @@ -1,6 +1,5 @@ # Checking tar version -*- Autotest -*- -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/volsize.at b/tests/volsize.at index 9587cb0a..764a7810 100644 --- a/tests/volsize.at +++ b/tests/volsize.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2006-2009, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2006-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/volume.at b/tests/volume.at index e7c12aca..0cc8987d 100644 --- a/tests/volume.at +++ b/tests/volume.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2004, 2006-2007, 2013-2014, 2016-2017 Free Software -# Foundation, Inc. +# Copyright 2004-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/xattr01.at b/tests/xattr01.at index a53d3d0d..2276d7c8 100644 --- a/tests/xattr01.at +++ b/tests/xattr01.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2011, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2011-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/xattr02.at b/tests/xattr02.at index c0ea1943..4dc5efa2 100644 --- a/tests/xattr02.at +++ b/tests/xattr02.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2011, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2011-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/xattr03.at b/tests/xattr03.at index b637705b..71d24867 100644 --- a/tests/xattr03.at +++ b/tests/xattr03.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2012-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2012-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/xattr04.at b/tests/xattr04.at index d9dc201a..520ddce4 100644 --- a/tests/xattr04.at +++ b/tests/xattr04.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2012-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2012-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/xattr05.at b/tests/xattr05.at index 462bd328..6c2762b1 100644 --- a/tests/xattr05.at +++ b/tests/xattr05.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2012-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2012-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/xattr06.at b/tests/xattr06.at index c314fcfc..7ecf9d39 100644 --- a/tests/xattr06.at +++ b/tests/xattr06.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2012-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2012-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/xattr07.at b/tests/xattr07.at index 3a97118d..f7f3a6d4 100644 --- a/tests/xattr07.at +++ b/tests/xattr07.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2011, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2011-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/xform-h.at b/tests/xform-h.at index 3ca2b32e..8729dbf8 100644 --- a/tests/xform-h.at +++ b/tests/xform-h.at @@ -1,8 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2009-2010, 2013-2014, 2016-2017 Free Software Foundation, -# Inc. +# Copyright 2009-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/xform01.at b/tests/xform01.at index 83a3e551..6f4d3bac 100644 --- a/tests/xform01.at +++ b/tests/xform01.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2010, 2013-2014, 2016-2017 Free Software Foundation, Inc. +# Copyright 2010-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/xform02.at b/tests/xform02.at index e7ea1a03..85d1df57 100644 --- a/tests/xform02.at +++ b/tests/xform02.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # Test suite for GNU tar. -# Copyright 2009-2010, 2013-2017 Free Software Foundation, Inc. +# Copyright 2009-2019 Free Software Foundation, Inc. # This file is part of GNU tar. diff --git a/tests/xform03.at b/tests/xform03.at index 47f52f14..e8f358c0 100644 --- a/tests/xform03.at +++ b/tests/xform03.at @@ -1,7 +1,7 @@ # Process this file with autom4te to create testsuite. -*- Autotest -*- # # Test suite for GNU tar. -# Copyright 2017 Free Software Foundation, Inc. +# Copyright 2017-2019 Free Software Foundation, Inc. # # This file is part of GNU tar. # @@ -21,12 +21,14 @@ AT_SETUP([transforming hard link targets]) AT_KEYWORDS([transform xform link]) -AT_TAR_CHECK([ +AT_TAR_WITH_HOOK( +[AT_CHECK([sed "/tar: Removing leading \`\/*\/' from/d" stderr])], +[AT_TAR_CHECK([ mkdir d mkdir d/a genfile --file d/a/b -dir=$(pwd|sed s,^/,,)/d -tar -cf a.tar --xform="s|^$dir/a|dir/c|" /$dir/a/b /$dir/a/b +dir=$(pwd|sed s,^//*,,)/d +tar -cf a.tar --xform="s|^$dir/a|dir/c|" /$dir/a/b /$dir/a/b 2>err mkdir t tar -C t -xf a.tar find t -type f @@ -34,8 +36,6 @@ find t -type f [0], [t/dir/c/b ], -[tar: Removing leading `/' from member names -tar: Removing leading `/' from hard link targets -]) +[stderr])]) AT_CLEANUP -- GitLab