re-mark 1.29b-2 as not yet uploaded (merge madness!)
[debian/tar] / ChangeLog
index 3dbd67a7c62b6e45de5e00e1abb3e07adb2dbda8..7c7865dc7baba80169d7d3a71908b8beeb3404c0 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
-2013-10-06  Sergey Poznyakoff  <gray@gnu.org.ua>
+2016-05-16  Sergey Poznyakoff  <gray@gnu.org.ua>
 
-       Version 1.27
+       Version 1.29
 
+       Minor fix
+       * src/names.c (new_name): rename to make_file_name. All uses
+       changed.
+
+2016-04-14  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix argument handling when running external commands.
+       * src/system.c (xexec): Use sh -c to run the command.  This fixed
+       bug introduced by 7b5e80396 (tar 1.27)
+       * doc/tar.texi: Fix checkpoint examples: (1) $TAR_FILENAME
+       is not available when creating archive and (2) --checkpoint
+       can't be used as abbreviation of --checkpoint-action
+
+2016-04-06  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Remove iotty test
+       The auxiliary utility ttyemu proved to be unreliable.
+       Given existing
+       differences between pty implementations and termios ioctls
+       on various
+       platforms, writing it in a portable way requires effort
+       disproportional
+       to its actual purpose.
+       * configure.ac: Remove check for grantpt
+       * gnulib.modules: Remove posix_openpt, ptsname, and unlockpt
+       * tests/Makefile.am (TESTSUITE_AT): Remove iotty.at
+       (check_PROGRAMS): Remove ttyemu.
+       * tests/testsuite.at: Remove iotty.at
+       * tests/iotty.at: Remove.
+       * tests/ttyemu.c: Remove.
+
+2016-04-05  Pavel Raiskup  <praiskup@redhat.com>
+
+       xattrs: fix build on Darwin
+       Be careful to define HAVE_XATTRS when not all needed xattr-related
+       functions are properly defined either in libc or libattr.
+       Reported independently by Denis Excoffier and Dominyk Tille.
+       * acinclude.m4 (TAR_HEADERS_ATTR_XATTR_H): Check for each xattr
+       function separately.  Don't AC_CHECK_LIB (LIBS is filled by
+       AC_SEARCH_LIBS when necessary).
+       * src/Makefile.am: The LDADD -lattr was redundant.
+
+2016-03-24  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Remove --preserve option
+       * src/tar.c: Remove --preserve option
        * NEWS: Update.
-       * configure.ac: Update.
+       * doc/tar.texi: Update.
 
-2013-10-06  Sergey Poznyakoff  <gray@gnu.org.ua>
+       Fix testcase
+       * tests/time02.at: Sort tar -d output
+
+       Update THANKS file
+
+2016-03-24  Jeremy Bobbio  <lunar@debian.org>
+
+       New option --clamp-mtime
+       The new `--clamp-mtime` option will change the behavior of
+       `--mtime` to only
+       use the time specified if the file mtime is newer than the
+       given time.
+       The `--clamp-mtime` option can only be used together with
+       `--mtime`.
+       Typical use case is to make builds reproducible: to loose less
+       information, it's better to keep the original date of an archive,
+       except for
+       files modified during the build process. In that case, using
+       a reference
+       (and thus reproducible) timestamps for the latter is good
+       enough. See
+       <https://wiki.debian.org/ReproducibleBuilds> for more information.
+       Patch submitted by Jeremy Bobbio and
+       Daniel Kahn Gillmor <dkg@fifthhorseman.net>
+       * doc/tar.1: Document --clamp-mtime
+       * doc/tar.texi: Likewise.
+       * src/common.h (set_mtime_option_mode): New enum
+       (set_mtime_option): Change type to enum set_mtime_option_mode.
+       (NEWER_OPTION_INITIALIZED): Rename to NEWER_OPTION_INITIALIZED.
+       * src/create.c (start_header): Set mtime depending on
+       set_mtime_option.
+       * src/tar.c (options,parse_opt): New option --clamp-mtime
+       (decode_options): Initialize mtime_option
+       * tests/time02.at: New testcase.
+       * tests/Makefile.am: Add new testcase
+       * tests/testsuite.at: Likewise.
+
+2016-03-21  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Acknowledgments
+       * THANKS: Add Dagobert Michelsen
+
+       Fix the testsuite
+       * tests/sparse06.at: Don't use timeout: depending on the
+       filesystem
+       mounted, current LA and lots of other factors, creation of
+       archive can
+       take much more time than the expected 2 seconds.
+
+       Fix ckmtime
+       * gnulib.modules: Use timespec-sub
+       * tests/ckmtime.c: Use second resolution.
+
+2016-03-20  Sergey Poznyakoff  <gray@gnu.org>
+
+       Fix the testsuite
+       * tests/sparse05.at: Use autom4te magic to generate mapfile,
+       instead of the shell command seq, which is not always available.
+       * tests/listed03.at: Skip the test if xgetcwd fails.
+       * tests/ckmtime.c: New file.
+       * tests/Makefile.am: Build ckmtime
+       * tests/testsuite.at (AT_CHECK_TIMESTAMP): Check whether newly
+       created
+       files have timestamps consistent with the creation time.
+       Skip the test
+       if not.
+       * tests/incr01.at: Use AT_CHECK_TIMESTAMP
+       * tests/incr02.at: Likewise.
+       * tests/incr03.at: Likewise.
+       * tests/incr04.at: Likewise.
+       * tests/incr05.at: Likewise.
+       * tests/incr06.at: Likewise.
+       * tests/incr07.at: Likewise.
+       * tests/incr08.at: Likewise.
+       * tests/incr09.at: Likewise.
+       * tests/incr10.at: Likewise.
+       * tests/incr11.at: Likewise.
+       * tests/incremental.at: Likewise.
+       * tests/listed01.at: Likewise.
+       * tests/listed02.at: Likewise.
+       * tests/listed04.at: Likewise.
+       * tests/listed05.at: Likewise.
+
+2016-03-18  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Testsuite fixes.
+       * paxutils: Update.
+       * src/unlink.c (flush_deferred_unlinks): OpenSolaris sets EEXIST
+       instead of ENOTEMPTY if trying to remove a non-empty directory.
+       * tests/numeric.at: Avoid using awk -v: some older awks don't
+       support
+       that option.  Also fix environment variable usage.
+       * tests/onetop05.at: Skip test if unable to set initial directory
+       mode bits.
+       * tests/sparse06.at: Use --quiet option.
+
+       Revise docs
+
+       Fix build with --enable-gcc-warnings
+       * configure.ac: Disable stack-protector warnings
+
+2016-03-17  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Improve testsuite
+       * tests/iotty.at: Skip test if ttyemu can't do its job
+
+2016-03-16  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Document xattrs, ACL and SELinux-related options.
+       * doc/tar.1: Document all options.
+       * doc/tar.texi: Likewise.
+
+2016-03-15  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix appending to archive with changed blocking factor.
+       * src/buffer.c (flush_archive): If previous reading attempt
+       resulted
+       in short read, correctly use the remaining record space.
+       (backspace_output): Fix position calculation (still has to be
+       improved).
+       * tests/append05.at: New test case.
+       * tests/Makefile.am: Add new test.
+       * tests/testsuite.at: Likewise.
+
+2016-03-14  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix coredump on parsing invalid traditional option
+       * src/tar.c (find_argp_option): Fix loop termination condition.
+
+2016-01-20  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Update copyright years
+
+       Allow escaped delimiters in transform expressions.
+       Patch provided by Charles McGarvey and Flavio Poletti.
+       * src/transform.c (parse_transform_expr): Allow escaped delimiters
+       in transform expressions.
+       * tests/xform02.at: New test case.
+       * tests/Makefile.am: Add xform02.at
+       * tests/testsuite.at: Include xform02.at
+       * THANKS: Update.
+
+2015-12-17  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix eventual dereference of uninitialized pointer.
+       * src/exclist.c (hg_initfn): Initialize hgopt.
+
+2015-12-17  Pavel Raiskup  <praiskup@redhat.com>
+
+       sparse: fix use of indeterminate value
+       * src/xheader.c (sparse_map_decoder): Move 'e' up from loop-block.
+
+2015-12-11  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       fix a typo
+       * doc/tar.texi (Incremental Dumps): Add missing --file to the
+       '--list' example.
 
        Minor fixes.
+       * doc/tar.texi: Document position-sensitive options in a
+       separate subsection.
+       * src/names.c (names_argp,names_argp_children): Explicitly
+       initialize
+       all members.
+
+2015-12-11  Sergey Poznyakoff  <gray@gnu.org>
+
+       Minor fix
+
+       Fix handling of filename-selection options.
+       Filename-selection options are --wildcards, --recursive, etc. (see
+       names.c for a complete list).  These options are
+       position-sensitive,
+       i.e. each such option affects all filenames and filename-selection
+       options that appear after it until eventually cancelled by a
+       corresponding counterpart option.
+       These options can appear in "file-from" file lists, which
+       means that
+       they cannot be handled right away, but instead should be put on
+       the "name_elt" list and processed sequentionally, as file name
+       arguments
+       are.
+       * src/common.h (warn_regex_usage): Remove.
+       (name_add_name): Change signature.
+       (name_add_dir, name_add_file): Remove prototypes.
+       * src/names.c (name_add_option, name_add_dir)
+       (name_add_file): Static functions.
+       (names_options, is_file_selection_option, names_parse_opt):
+       Static functions.
+       (names_argp_children): New variable.
+       (NELT_NAME, NELT_CHDIR)
+       (NELT_FILE, NELT_NOOP): Redefine as enum nelt_type.
+       (NELT_FMASK): Remove.
+       (NELT_OPTION): New constant.
+       (name_elt) <type>: Change type.
+       <v.opt>: New member.
+       (name_elt_alloc_matflags): Remove.
+       (name_add_name): Take one argument.
+       (name_add_option): New static function.
+       (name_add_file): Take one argument.
+       (read_next_name): Use filename_terminator and
+       verbatim_files_from_option to initialize file.term and
+       file.verbatim.
+       * src/tar.c: Move handling of filename-selection options to
+       names.c
+       * tests/T-dir00.at: Fix typo.
+       * tests/T-recurse.at: Remove expected failure.
+
+2015-12-10  Pavel Raiskup  <praiskup@redhat.com>
+
+       better test --{,no-}recursion options
+       * tests/recurs02.at: Also test --list mode.
+       * tests/T-recurse.at: New test case.  Test that -T option works
+       correctly together with --{,no-}recursion.
+       * tests/Makefile.am: Mention new test T-recurse.at.
+       * tests/testsuite.at: Likewise.
+
+2015-12-06  Pavel Raiskup  <praiskup@redhat.com>
+
+       Bugfix
+       * src/buffer.c (try_new_volume): Warn if user supplied malformed
+       tar archive.
+       Consistently use WARN (instead of ERROR) when reporting.
+
+2015-12-06  Sergey Poznyakoff  <gray@gnu.org>
+
+       Fix segfault when extracting from a multi-volume archive.
+       Fix suggested by Pavel Raiskup.
+       * src/buffer.c (try_new_volume): Fix dereferencing NULL pointer.
+       * tests/multiv09.at: New testcase.
+       * tests/Makefile.am: Add new testcase.
+       * tests/testsuite.at: Likewise.
+
+       Fix NEWS
+
+2015-12-06  Pavel Raiskup  <praiskup@redhat.com>
+
+       numeric-owner: print big UID/GID correctly
+       * src/list.c (simple_print_header): Do not parse ustar header
+       for UID/GID again (tar_stat_info has already been correctly
+       filled with respect to possible uid/gid extended headers).
+       * tests/numeric.at: New testcase for --numeric-owner option.
+       * tests/Makefile.am: Add new testcase.
+       * tests/testsuite.at: Likewise.
+
+2015-12-06  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Use SEEK_HOLE for hole detection
+       Based on patch by Pavel Raiskup.
+       Use SEEK_HOLE/SEEK_DATA feature of lseek on systems that support
+       it.  This can make archiving of sparse files much faster.
+       Implement the --hole-detection option to allow users to select
+       hole-detection method.
+       * src/common.h (hole_detection_method): New enum.
+       (hole_detection): New global.
+       * src/sparse.c  (sparse_scan_file_wholesparse): New function as a
+       method for detecting sparse files without any data.
+       (sparse_scan_file_raw): Rename from sparse_scan_file; with edits.
+       (sparse_scan_file_seek): New function.
+       (sparse_scan_file): Reimplement function.
+       * src/tar.c: New option --hole-detection
+       * tests/checkseekhole.c: New file.
+       * tests/.gitignore: Mention two test binaries.
+       * tests/Makefile.am: Add new tests.
+       * tests/testsuite.at (AT_SEEKHOLE_PREREQ): New macro.
+       Include sparse06.at.
+       * tests/sparse06.at: New test case.
+       * tests/sparse02.at: Force raw hole-detection method.
+       * tests/sparsemv.at: Likewise.
+       * tests/sparsemvp.at: Likewise.
+       * doc/tar.1: Document --hole-detection option.
+       * doc/tar.texi: Document hole-detection algorithms and
+       command-line options.
+       * NEWS: Document hole-detection.
+
+2015-12-05  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Catch compressor execution errors.
+       * src/misc.c (write_fatal_details): Move to buffer.c
+       * src/buffer.c (write_fatal_details): Close the archive and
+       wait for
+       the compressor program to terminate in order to catch eventual
+       execution
+       errors.
+       * src/system.c (sys_child_open_for_compress): Ignore SIGPIPE so
+       tar will
+       not silently terminate when unable to write to the compressor.
+       * tests/comperr.at: New file.
+       * tests/Makefile.am: Add comperr.at
+       * tests/testsuite.at: Include comperr.at
+
+       Upgrade paxutils
+
+2015-11-29  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix extraction from concatenated incremental archives with
+       renamed directories.
+       Complements 15c02c2b.
+       * src/extract.c (delayed_set_stat): Change type of file_name.
+       (delay_set_stat): Allocate file_name member.
+       (free_delayed_set_stat): Free file_name.
+       (fixup_delayed_set_stat): New function.
+       (rename_directory): Call fixup_delayed_set_stat on success.
+       * tests/incr11.at: New testcase.
+       * tests/incr10.at: Improve description.
+       * tests/Makefile.am: Add incr11.at
+       * tests/testsuite.at: Add incr11.at
+
+2015-11-21  Sergey Poznyakoff  <gray@gnu.org>
+
+       Fix bug in the inplementation of --one-top-level.
+       When extracting an archive that contains './' with the
+       --one-top-level option,
+       the mode and ownership of '.' would be incorrectly applied to
+       the current
+       working directory, instead of the requested top-level directory.
+       * src/list.c (enforce_one_top_level): Map '.' to the top-level
+       directory.
+       * tests/Makefile.am: Add onetop05.at
+       * tests/testsuite.at: Include onetop05.at.
+       * tests/onetop05.at: New file.
+       * tests/onetop01.at: Fix keywords.
+       * tests/onetop02.at: Likewise.
+       * tests/onetop03.at: Likewise.
+       * tests/onetop04.at: Likewise.
+
+2015-11-11  Sergey Poznyakoff  <gray@gnu.org>
+
+       Work around unlinkat bug on FreeBSD and GNU/Hurd
+       * src/unlink.c (dunlink_insert): New function.
+       (flush_deferred_unlinks): Skip cwds and nonempty directories
+       at the first pass.  If force is requested, run a second pass
+       removing them.
+       (queue_deferred_unlink): Make sure current working directory
+       entries are sorted in descending order by the value of dir_idx.
+       This makes sure they will be removed in right order, which works
+       around unlinkat bug on FreeBSD and GNU/Hurd.
+       * tests/remfiles08b.at: Remove expected failure.
+       * tests/remfiles09b.at: Likewise.
+
+2015-11-10  Sergey Poznyakoff  <gray@gnu.org>
+
+       Fix coredump on FreeBSD when TAR_OPTIONS is set
+       * src/tar.c (parse_default_options): Use program_name instead of
+       program_invocation_short_name.  On some systems the latter is
+       NULL when
+       the function is called, which causes coredumps.
+       (tar_set_quoting_style): Likewise.
+       * src/names.c: Likewise.
+
+2015-11-02  Sergey Poznyakoff  <gray@gnu.org>
+
+       Use sort in T-dir tests.
+
+       Fix distclean in tests/
+       * tests/Makefile.am: Remove "download"
+
+       New options: --owner-map and --group-map.
+       * NEWS: Update.
+       * doc/tar.1: Document --owner-map and --group-map
+       * doc/tar.texi: Likewise.
+       * src/map.c: New file.
+       * src/Makefile.am: Add map.c
+       * src/common.h (owner_map_read, owner_map_translate)
+       (group_map_read, group_map_translate): New protos.
+       * src/create.c (start_header): Use owner_map_translate
+       and group_map_translate to optionally translate user/group
+       names/ids.
+       * src/tar.c: New options --owner-map and --group-map.
+       * tests/map.at: New file.
+       * tests/Makefile.am: Add map.at
+       * tests/testsuite.at: Include map.at.
+
+2015-09-24  Kir Kolyshkin  <kir@openvz.org>  (tiny change)
+
+       doc: fix font and spelling typos
+       * doc/tar.1: Fix font and spelling typos in man page.
+
+2015-09-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix problems caught by static checking
+       Most of these can be caught by configuring with
+       --enable-gcc-warnings.
+       Problem reported by Pavel Raiskup in:
+       http://lists.gnu.org/archive/html/bug-tar/2015-09/msg00001.html
+       * src/buffer.c (format_total_stats):
+       Prefer pointer to const when it’s OK to use const.
+       (default_total_format): Now const.
+       * src/buffer.c (default_total_format):
+       * src/exclist.c (excfile_head, excfile_tail, vcs_ignore_files):
+       * src/misc.c (namebuf_add_dir, namebuf_finish):
+       * src/tar.c (verbatim_files_from_option, option_set_in_cl)
+       (optloc_eq, set_old_files_option):
+       Now static.
+       * src/common.h: Adjust to match the other changes described here.
+       * src/exclist.c (info_cleanup_exclist):
+       * src/tar.c (argp_program_version, argp_program_bug_address):
+       Remove; unused.
+       (parse_default_options): Define via prototype instead of old
+       style.
+       (parse_default_options, decode_options):
+       Fill out incomplete initializers.
+
+2015-08-31  Sergey Poznyakoff  <gray@gnu.org>
+
+       Improve option sanity checking
+       Any two conflicting options are reported only if they both
+       occur in
+       the command line.  Otherwise, options defined in the command line
+       silently override those set in the TAR_OPTIONS environment
+       variable.
+       * src/common.h (option_source): New enum.
+       (option_locus): New struct.
+       * src/names.c (name_elt): New member: line.
+       (name_add_file): Initialize line.
+       (read_name_from_file): Keep track of input line number for
+       diagnostic
+       purposes.
+       (handle_option): Take a pointer to struct name_elt as 2nd
+       parameter;
+       pass locus info to more_options().
+       * src/tar.c (tar_args): New member: loc.
+       (option_class): New enum.
+       (optloc_save,optloc_lookup)
+       (option_set_in_cl,optloc_eq): New functions.
+       (set_use_compress_program_option): Take into account option
+       location.
+       (set_old_files_option): New function.
+       (parse_opt): Keep track of option locations.
+       (more_options): Improve error reporting.
+       (parse_default_options): New function.
+       (decode_options): Parse TAR_OPTION and command line separately.
+       Options from the latter silently override those from the former.
+       * lib/prepargs.c: Remove.
+       * lib/prepargs.h: Remove.
+       * lib/Makefile.am: Update.
+
+2015-08-24  Sergey Poznyakoff  <gray@gnu.org>
+
+       Improve check-full
+       * tests/atlocal.in: Download external archives to
+       $abs_builddir/download.
+       (tarball_prereq): Create destination directory if necessary.
+       * tests/.gitignore: Add download
+
+       Fix check-full
+       * tests/atlocal.in (TAR_DATA_URL): Berlios is dead.  Get
+       test archives from gnu.org.ua
+
+       Include gnulib and paxutils as submodules.
+       * .gitmodules: New file.
+       * README-alpha: Update.
+       * README-hacking: Update.
+       * bootstrap: Install slightly modified version from the gnulib
+       repo.
+       * bootstrap.conf: Add paxutils-related stuff.
+       * .gitignore: Update.
+       * doc/.gitignore: Update.
+       * po/.gitignore: Update.
+       * gnu/Makefile.am
+
+       Update docs.
+       * doc/tar.1: Document --verbatim-files-from option.
+
+2015-08-20  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Add missing VCS files to --exclude-vcs list
+       * src/tar.c (vcs_file_table): Add .gitmodules and .gitattributes
+       * doc/tar.texi: Update.
+
+2015-08-03  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Options to control option handling in file lists.
+       The --verbatim-files-from option disables option handling in
+       file lists.  The --no-verbatim-files-from reverts its effect.
+       The --null option implies --verbatim-files-from.  This restores
+       the documented behavior, broken by 26538c9b.
+       * src/common.h (verbatim_files_from_option): New global.
+       * src/names.c (name_elt): New member: file.verbatim
+       (name_add_file): Take 'verbatim' state as its third parameter.
+       (read_next_name): Don't call handle_option if file.verbatim
+       is set.
+       * src/tar.c: New options --verbatim-files-from and
+       --no-verbatim-files-from.
+       * doc/tar.texi: Document --verbatim-files-from and
+       --no-verbatim-files-from options.
+       * NEWS: Update.
+       * configure.ac: Version 1.28.90
+       * tests/T-null2.at: New testcase.
+       * tests/Makefile.am: Update.
+       * tests/testsuite.at: Update.
+
+2015-07-25  Anders Jonsson  <anders.jonsson@norsjovallen.se>  (tiny
+change)
+
+       Fix typos (preceeded etc.)
+
+2015-07-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: fix symlink race and symlink transform bug
+       Problem reported by Tobias Stoeckmann in:
+       http://lists.gnu.org/archive/html/bug-tar/2015-07/msg00004.html
+       * gnulib.modules: Add areadlinkat-with-size.
+       * src/create.c: Include areadlink.h.
+       (dump_file0): Use areadlinkat_with_size, rather than trying to do
+       it by hand, incorrectly.  This also avoids assumption that
+       the symlink contents fit on the stack.  Also, use the transformed
+       link name, not the original link name, when deciding whether the
+       name is long enough to require writing a long link.
+
+       tar: port -d to longer symlinks
+       * src/compare.c (diff_symlink):
+       Don't use alloca on symlink length; it might be too big for
+       the stack.
+       Don't assume that readlinkat's return value fits in 'int'.
+       Prefer memcmp to strncmp where either will do.
+
+       tar: port to recent gnulib
+       * gnulib.modules: Remove 'acl' and add 'file-has-acl'.
+
+       tar: pacify GCC 5.1 -Wformat-signedness
+       * lib/wordsplit.c (struct wordsplit_node.flags):
+       Now unsigned, so that 'printf ("%x", p->flags)' doesn't provoke
+       GCC.
+       * src/incremen.c (read_num, dumpdir_ok):
+       Don't printf an int with %x or %o.
+
+2015-04-16  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix extraction from concatenated incremental archives.
+       * src/common.h (remove_delayed_set_stat): New proto.
+       * src/extract.c (free_delayed_set_stat)
+       (remove_delayed_set_stat): New function.
+       (apply_nonancestor_delayed_set_stat): Use free_delayed_set_stat.
+       * src/misc.c (safer_rmdir): Remove delayed_set_stat entry
+       corresponding to the removed directory.
+       * tests/incr10.at: New test case.
+       * tests/Makefile.am: Add new test.
+       * tests/testsuite.at: Likewise.
+
+2015-04-10  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix make installcheck
+       Make installcheck would fail unless make check had been run
+       before it.
+       Reported by Erik Brangs <erik.brangs@gmx.de>
+       * tests/Makefile.am (installcheck-local): Depend on
+       $(check_PROGRAMS)
+
+2015-03-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: don't assume GZIP
+       * Makefile.am (dist-hook): Port to gzip implementations that
+       warn about nontrivial settings in the GZIP environment var.
+
+2015-03-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: don't suggest GZIP
+       * doc/tar.texi (gzip): Don't suggest using the GZIP environment
+       variable, as it will be deprecated in the next gzip release.
+
+2015-02-19  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Improve compression format recognition
+       Some comressed archives can pass the checksum test, which
+       makes tar
+       treat them as uncompressed archives.
+       * src/buffer.c (check_compressed_archive): Test the checksum only
+       if the block we read looks like a valid tar header (i.e. has
+       a magic string).
+
+2015-01-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: port xattr-at.c to Solaris 10
+       * lib/xattr-at.c (setxattrat, lsetxattrat, getxattrat,
+       lgetxattrat)
+       (listxattrat, llistxattrat): Compile only if HAVE_XATTRS, so that
+       the code doesn't call functions that are not declared.
+
+       tar: port wordsplit attribute to Sun C
+       Reported by Ted Carr in:
+       http://lists.gnu.org/archive/html/bug-tar/2015-01/msg00002.html
+       * lib/wordsplit.h (__WORDSPLIT_ATTRIBUTE_FORMAT):
+       New macro, taken from Gnulib.
+       (struct wordsplit): Use it.
+       * lib/wordsplit.c (_wsplt_error): Use it.
+
+2014-12-17  Sergey Poznyakoff  <gray@gnu.org>
+
+       Silent a cc warning
+       * src/xheader.c (xheader_string_end): Make sure pointer
+       arithmetics applies on char*.
+
+2014-12-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: port ISFOUND, WASFOUND to C89
+       Problem reported by Romano Maspero in:
+       http://lists.gnu.org/archive/html/bug-tar/2014-12/msg00010.html
+       * src/common.h (ISFOUND, WASFOUND): Port to C89.
+
+2014-12-10  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix tar -c -l file file
+       When the same file is added several times to the archive, count
+       correctly the number of hard links.  See also 37ddfb0b.
+       * src/create.c (dump_hard_link): Don't decrease nlink if it is 0.
+       * tests/link04.at: Test -cl options.
+
+2014-11-07  Sergey Poznyakoff  <gray@gnu.org>
+
+       Honor the pax-option overrides when creating archive.
+       Changes proposed by Denis Excoffier.
+       * NEWS: Fix typos.
+       * doc/tar.texi: Fix typos.  Improve recipe for creation of binary
+       equivalent archives.
+       * src/create.c (write_extended): Use the value of the
+       --mtime option (if specified) as the default for exthdr.mtime.
+       * src/xheader.c (xheader_store): Create the header if at least
+       one override is supplied in --pax-option.
+
+       Add testcase for the previous commit.
+       * tests/sparse05.at: New file.
+       * tests/Makefile.am: Add sparse05.at
+       * tests/testsuite.at: Include sparse05.at
+
+2014-11-07  Pavel Raiskup  <praiskup@redhat.com>
+
+       Fix bug in sparse file listing
+       List posix archives containing sparse files >8GB correctly and
+       do not fail.
+       This fixes also bug in format of listing for sparse files >8GB -
+       now the
+       real size is printed instead of the effective one (this is
+       not strictly
+       posix format related).
+       * src/list.c: Remove redundant assignment.
+       * src/tar.h: Add new 'real_size' and 'real_size_set' fields in
+         tar_stat_info struct.
+       * src/xheader.c: Correctly handle (especially sparse) file sizes
+       directly in
+         xheader_decode().
+
+2014-10-15  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix a typo
+
+2014-10-01  Sergey Poznyakoff  <gray@gnu.org>
+
+       Fix README
+       Remove the reference to PORTS
+
+2014-09-25  Sergey Poznyakoff  <gray@gnu.org>
+
+       Bugfixes.
+       * doc/tar.1: Fix typo in font spec.
+       * src/tar.c (sort_mode_arg, sort_mode_flag): Protect "inode"
+       (SAVEDIR_SORT_INODE) with D_INO_IN_DIRENT
+
+2014-09-18  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Bugfix: entries read from the -T file did not get proper
+       matching_flag.
+       * src/common.h (name_add_file): Change signature.
+       * src/names.c (name_elt_alloc_matflags): New function.
+       (name_add_name): Use name_elt_alloc_matflags.
+       (name_add_file): Take matching flags as third argument.
+       (read_next_name): Remove trailing slashes.
+       * src/tar.c (parse_opt): Pass matching_flags to name_add_file.
+       * tests/T-dir00.at: New file.
+       * tests/T-dir01.at: New file.
+       * tests/Makefile.am: Add new testcases.
+       * tests/testsuite.at: Likewise.
+
+2014-08-16  Sergey Poznyakoff  <gray@gnu.org>
+
+       Improve documentation.
+       * doc/tar.1: Document --skip-old-files and --warning=existing-file
+       * doc/tar.texi: Document --warning=existing-file
+
+2014-07-27  Sergey Poznyakoff  <gray@gnu.org>
+
+       Version 1.28
+
+2014-07-27  Nathan Stratton Treadway  <nathanst@ontko.com>
 
+       Minor change in docstrings. nor ch#
+
+       Restructure the remfiles testsuite.
+
+2014-07-22  Sergey Poznyakoff  <gray@gnu.org>
+
+       Don't build ttyemu and run tty I/O test if grantpt is not
+       available.
+       * configure.ac (TAR_COND_GRANTPT): Define conditional depending
+       on whether grantpt is available.
+       * gnulib.modules: Remove grantpt. It relies upon a helper binary
+       pt_chown which it installs and which is useless in the testsuite.
+       * tests/Makefile.am [TAR_COND_GRANTPT]: Build ttyemu
+       * tests/iotty.at: Skip test if ttyemu is not build.
+       * tests/ttyemu.c (noecho): Fix error message
+       (main): Use TIOCSCTTY if it is defined.
+
+2014-07-22  Benno Schulenberg  <bensberg@justemail.net>
+
+       Fix a typo and some wordings in the documentation.
+       * doc/tar.texi: Fix some missing articles, and make it clearer
+       that "any" does not mean "anything" but "either of the two".
+
+2014-07-22  Nathan Stratton Treadway  <nathanst@ontko.com>
+
+       Fix the testsuite
+       * tests/incr07.at: Don't assume case-sensitive filesystem.
+
+2014-07-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: minor fixups related to recent checkpoint.c change
+       * src/checkpoint.c (getwidth, format_checkpoint_string):
+       Use long and strtol, not int, to avoid overflow issues.
+       (getwidth): Don't assume termios.h defines TIOCGWINSZ,
+       as it doesn't on some older hosts.
+
+2014-07-11  Sergey Poznyakoff  <gray@gnu.org>
+
+       Bugfixes
+       * gnulib.modules: Add faccessat
+       * src/checkpoint.c: Include termios.h
+
+2014-06-29  Nathan Stratton Treadway  <nathanst@ontko.com>
+
+       tar: document xgetcwd test case better
+       * src/misc.c (normalize_filename): Add commentary for clarity.
+       * tests/extrac09.at: Retitle test case and add comments for
+       clarity.
+
+2014-06-24  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix typos in ChangeLog
+       * ChangeLog.CVS: Fix typos.
+       * ChangeLog.amend: New file.
+       * Makefile.am: Define changelog_amend_file.
+
+2014-04-30  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: do not dereference NULL pointer with '--remove-files .'
+       Problem reported by Thorsten Hirsch in:
+       http://lists.gnu.org/archive/html/bug-tar/2014-04/msg00011.html
+       * src/unlink.c (flush_deferred_unlinks):
+       Do not attempt to find the parent of "." when "." is
+       at the top level.
+       * tests/remfiles10.at: New file.
+       * tests/Makefile.am (TESTSUITE_AT):
+       * tests/testsuite.at: Add it.
+
+2014-03-27  Sergey Poznyakoff  <gray@gnu.org>
+
+       Refuse to write archive contents to a tty.
+       * NEWS: Update.
+       * src/buffer.c (_open_archive): Refuse to write to a tty.
+       * tests/iotty.at: Test output to a tty.
+
+2014-03-26  Vitezslav Cizek  <vcizek@suse.cz>
+
+       fix an eternal loop in handle_option
+       * src/names.c (handle_option): increment loop counter
+
+2014-03-20  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fail if archive comes from a terminal.
+       Based on patch from Pavel Raiskup <praiskup@redhat.com>.
+       * gnulib.modules: Add new modules.
+       * src/buffer.c (_open_archive): Refuse to read archive from a tty.
+       * tests/Makefile.am (TESTSUITE_AT): Add iotty.at
+       (check_PROGRAMS): New program ttyemu
+       * tests/testsuite.at: Include iotty.at
+       * tests/iotty.at: New file.
+       * tests/ttyemu.c: New file.
+
+2014-03-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: port to Solaris 9
+       Problem reported by Jesse C in:
+       http://lists.gnu.org/archive/html/bug-tar/2014-03/msg00034.html
+       * gnulib.modules: Add strtoimax and strtoumax, since tar invokes
+       these functions directly and they don't exist on Solaris 9.
+
+2014-02-25  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Test the --[no-]recursive options (see commit 2bd9c153).
+       * tests/recurs02.at: New test case.
+       * tests/Makefile.am: Add new file.
+       * tests/testsuite.at: Add new file.
+
+2014-02-22  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Support exclusion patterns from various VCS ignore lists.
+       * src/Makefile.am (tar_SOURCES): Add exclist.c
+       * src/common.h (EXCL_DEFAULT, EXCL_RECURSIVE)
+       (EXCL_NON_RECURSIVE): New flags.
+       (excfile_add, info_attach_exclist)
+       (info_cleanup_exclist,info_free_exclist)
+       (exclude_vcs_ignores): New prototypes.
+       * src/create.c (dump_dir0): Call info_attach_exclist.
+       * src/exclist.c: New file.
+       * src/incremen.c (scan_directory): Call info_attach_exclist.
+       * src/names.c (excluded_name): Moved to exclist.c. Change
+       signature.
+       All uses updated.
+       * src/tar.c: New options: --exclude-ignore,
+       --exclude-ignore-recursive
+       and --exclude-vcs-ignores.
+       (tar_stat_destroy): Free exclist.
+       * src/tar.h (tar_stat_info): New member exclude_list.
+       * NEWS: Document new exclusion options.
+       * doc/tar.texi: Likewise.
+       * doc/tar.1: Likewise.
+
+2014-02-14  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix in testsuite
+       * acls03.at: Fix improper invocation of setfacl.
+
+2014-02-14  Pavel Raiskup  <praiskup@redhat.com>
+
+       testsuite: add test for buggy default ACLs
+       * tests/Makefile.am: Mention acls03.at.
+       * tests/testsuite.at: Likewise.
+       * tests/acls03.at: New testcase.
+
+       acls: bugfix for default ACLs extraction
+       When --acls option is on (regardless of tarball contents or
+       tarball format), we should explicitly set OR delete default ACLs
+       for extracted directories.  Prior to this update, we always
+       created arbitrary default ACLs based standard file permissions.
+       * configure.ac (with_posix_acls): Check also for acl_free and
+       acl_delete_def_file to mark IEEE 1003.1e ACLs as supported.
+       * src/xattrs.c (acl_delete_def_file_at): New function.
+       (xattrs__acls_set): Do not treat acls_option at all;  Delete
+       default ACLs if appropriate.
+       References:
+       http://www.mail-archive.com/bug-tar@gnu.org/msg04355.html
+       Thanks: Juan J. MartĂ­nez and Mark Steinborn
+
+       tar: imply --xattrs when --xattrs-{inc,exc}lude used
+       Options --xattrs-include=MASK and --xattrs-exclude=MASK now turn
+       on the --xattrs option.
+       Fix also bug in printing in xattrs.c - don't print when option is
+       negative.
+       * src/tar.c (set_xattr_option): New static function.
+       (parse_opt): Call new function when --xatrrs, --xattrs-include or
+       --xattrs-exclude option is used.
+       * src/xattrs.c (xattrs_print, xattrs_print_char): Expect positive
+       values in options.
+
+2014-02-14  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       THANKS: Add Anthony G. Basile.
+
+       Use correct headers/libraries when providing xattr support
+       See https://savannah.gnu.org/patch/index.php?8252. Patch provided
+       by Anthony G. Basile.
+       * acinclude.m4 (TAR_HEADERS_ATTR_XATTR_H): Look for <sys/xattr.h>
+       first and then for <attr/xattr.h>.  Link against libattr.so if
+       needed.
+       * lib/xattr-at.h: Include sys/xattr.h or attr/xattr.h, depending
+       on which one is detected.
+       * src/Makefile.am [TAR_LIB_ATTR] (tar_LDADD): Link against -lattr.
+
+       Minor change
+       * src/tar.c (decode_options): Silently ignore --one-top-level
+       if used with a non-reading command.
+
+2014-02-14  Sergey Poznyakoff  <gray@gnu.org>
+
+       New option --sort=ORDER
+       This option makes tar sort the entries of directories that will be
+       added to an archive according to ORDER (none, name, or inode).
+       Based on proposition by Dick Streefland
+       (https://savannah.gnu.org/patch/?7892).
+       * src/common.h (savedir_sort_order): New global.
+       * src/create.c: Pass savedir_sort_order to streamsavedir.
+       * src/misc.c: Likewise.
+       * src/tar.c: New option --sort.
+       * NEWS: Update.
+       * doc/tar.texi: Document the --sort option.
+       * doc/tar.1: Likewise.
+
+2014-02-13  Sergey Poznyakoff  <gray@gnu.org>
+
+       Fix the testsuite
+       * tests/opcomp01.at: Update expected error messages.
+       * tests/opcomp03.at: Likewise.
+
+2014-02-13  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix --one-top-level used together with --list.
+       * src/extract.c: Move one_top_level stuff to tar.c
+       (decode_options).
+       * src/tar.c (option_conflict_error): New function.
+       (decode_options): Use option_conflict_error to complain about
+       conflicting options in a uniform manner.
+       Process one_top_level options here.
+       (request_stdin): Fix error message.
+       * tests/onetop04.at: New testcase: check --one-top-level with
+       --list.
+       * tests/Makefile.am: Add new testcase.
+       * tests/testsuite.at: Add new testcase.
+
+       Fix NEWS
+       * NEWS: Remove duplicate description of the --one-top-level
+       option.
+
+2014-02-12  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       configure.ac: look for host-prefixed ar
+       See https://savannah.gnu.org/patch/?8183
+
+2014-02-10  Sergey Poznyakoff  <gray@gnu.org>
+
+       Bugfix
+       * src/suffix.c (find_compression_suffix): Fix eventual coredump.
+
+2014-02-10  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Fix docs.
+
+       Update docs.
+       * NEWS: Document --one-top-level
+       * THANKS: Mention Connor Behan
+
+2014-01-30  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Update copyright years.
+
+2014-01-28  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Improve one-top-level functionality
+       Make sure the changes become visible with
+       --show-transformed-names.
+       * src/common.h (strip_compression_suffix): New function.
+       (one_top_level): Rename to one_top_level_dir. All uses changed.
+       * src/extract.c (extr_init): Use strip_compression_suffix.
+       Bail out if unable to determine top-level directory.
+       (maybe_prepend_name): Remove. All uses removed.
+       * src/tar.c (options): --one-top-level takes optional argument.
+       (parse_opt): Handle it.
+       * src/list.c (enforce_one_top_level): New function.
+       (transform_stat_info): Call enforce_one_top_level if required.
+       * src/suffix.c (compression_suffixes): List "tar" (no
+       compression);
+       terminate with NULL entry.
+       (find_compression_suffix): New static.
+       (strip_compression_suffix): New function.
+       * doc/tar.1: Update.
+       * doc/tar.texi: Update.
+       * tests/onetop01.at: New testcase.
+       * tests/onetop02.at: New testcase.
+       * tests/onetop03.at: New testcase.
+       * tests/Makefile.am: Add new testcases.
+       * tests/testsuite.at: Likewise.
+
+2014-01-27  Connor Behan  <connor.behan@gmail.com>
+
+       Detect tarbombs while extracting
+       * src/common.h (one_top_level_option): New global.
+       (one_top_level): New global.
+       * src/extract.c (extr_init): If one_top_level_option is set,
+       determine
+       the name one_top_level that might have to be prepended.
+       (extract_archive): If one_top_level_option is set, prepend
+       one_top_level
+       to all names that don't already start with it.
+       * src/tar.c (ONE_TOP_LEVEL_OPTION): New content.
+       (options): New option --one-top-level.
+       (parse_opt): Handle this option.
+       (decode_options): Make it conflict with --absolute-names.
+
+2014-01-27  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Don't install rmt.8 if rmt is not built.
+       * doc/Makefile.am [PU_RMT_COND]: Define RMT_8
+       (dist_man_MANS): use RMT_8 instead of the hardcoded rmt.8
+
+       Provide tar(1) and rmt(8) manpages.
+       * NEWS: Update.
+       * doc/Makefile.am: Add manpages.
+       * doc/tar.1: New file.
+       * src/tar.c (tar_help_filter): Handle LZOP_OPTION.
+
+2014-01-23  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Make sure transformed file names retain trailing slash in listing.
+       * src/list.c (simple_print_header): Print trailing slash
+       if using the transformed name.
+       Use had_trailing_slash instead of analyzing last byte if temp_name
+
+2014-01-22  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       checkpoint actions: further improvements.
+       * NEWS: Update.
+       * doc/tar.texi: Update.
+       * src/buffer.c (print_stats): Avoid use of additional string
+       buffer.
+       Allow for text to be NULL.
+       Call gettext if it is not.
+       (format_total_stats): Don't use gettext when calling print_stats.
+       * src/checkpoint.c (def_format): Change default format.
+       (format_checkpoint_string): Implement optional arguments for
+       T conversion.
+       (finish_checkpoint_actions): Rename to checkpoint_flush_actions,
+       make extern.  All uses changed.
+       * src/common.h (checkpoint_flush_actions): New proto.
+       * src/tar.c (main): Set error_hook
+
+2014-01-22  Sergey Poznyakoff  <gray@gnu.org>
+
+       Improve checkpoint interface.
+       * src/buffer.c (format_total_stats): The format arg is const
+       All uses updated.
+       (default_total_format): const
+       * src/checkpoint.c (tty, tty_cleanup): New static.
+       (format_checkpoint_string): New "canned" format %c
+       (checkpoint_finish): New function.
+       * src/common.h (checkpoint_finish): New proto.
+       * src/tar.c (main): Call checkpoint_finish.`
+
+2014-01-21  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Implement statistics display in checkpoint actions.
+       * NEWS: Update.
+       * configure.ac: Version 1.27.90
+       * gnulib.modules: Add fprintftime.
+       * doc/tar.texi: Document the "totals" action and new format
+       specifiers
+       for echo and ttyout checkpoint actions.
+       * src/buffer.c (compute_duration): Return computed value.
+       (print_stats): Don't print trailing newline.  Return number of
+       characters output.
+       (format_total_stats): New function.
+       (print_total_stats): Rewrite via format_total_stats.
+       * src/checkpoint.c (checkpoint_opcode) <cop_totals>: New opcode.
+       (checkpoint_compile_action): Handle cop_totals.
+       (expand_checkpoint_string): Remove.
+       (format_checkpoint_string): New function to be used instead of
+       expand_checkpoint_string.  All callers updated.
+       * src/common.h (TF_READ,TF_WRITE)
+       (TF_DELETED): New constants.
+       (format_total_stats,print_total_stats): New protos.
+
+2014-01-10  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Remove shar archives from distribution.
+       These are going to phase out in automake 2.0
+
+2014-01-10  Sergey Poznyakoff  <gray@gnu.org>
+
+       Fix the use of --no-recursion and --recursion options.
+       Each option remains in effect until cancelled by the next
+       occurrence
+       of its counterpart, as stated in the documentation.
+       * src/names.c (name_next_elt): Restore recursion_option from the
+       value of matching_flags.
+
+2014-01-09  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Minor bugfixes
+       * src/compare.c (diff_dumpdir): Close descriptor if fstat failed.
+       (diff_multivol): Make sure the descriptor is closed and eventual
+       errors reported if lseek fails.
+       Both reported by Jiri Kukacka.
+
+2014-01-07  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: work around IBM XL C bug
+       * src/incremen.c (show_snapshot_field_ranges)
+       (write_directory_file_entry): Use simpler array size expression,
+       one that evaluates to the same value.  This works around
+       a compiler
+       bug with IBM XL C.  Problem reported by Yannick Bergeron in
+       <http://lists.gnu.org/archive/html/bug-tar/2014-01/msg00009.html>.
+
+2014-01-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       tar: update ancient configure cruft
+       * configure.ac: Use AC_PROG_CC_STDC, not just AC_PROG_CC.
+       Remove obsolete macros AC_ISC_POSIX, AC_HEADER_SYS_WAIT,
+       AC_HEADER_DIRENT, AC_HEADER_STAT, AC_HEADER_STDC, AC_TYPE_SIGNAL,
+       AC_TYPE_SIZE_T.
+       * lib/prepargs.c (IN_CTYPE_DOMAIN): Remove.  All uses removed.
+       * src/list.c (from_header): Use isspace, not ISSPACE.
+       * src/system.c (pipe_handler, sys_exec_info_script):
+       * src/tar.c (sigstat):
+       Use void, not RETSIGTYPE.
+
+2013-11-17  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Version 1.27.1
+
+       Fix star compatibility (sparse headers)
+       * src/sparse.c (star_get_sparse_info): Update file->dumped_size
+
+       Fix GNU long link header.
+       * src/create.c (write_gnu_long_link): Set timestamp to
+       0 for backward compatibility.  Bug reported by David Barri.
+       * THANKS: Update.
+
+       Fix unquoting of input file names.
+       * src/names.c (read_next_name): Unquote file names coming from the
+       -T argument.  Bug reported by Nicolas Dudebout.
+       * THANKS: Update.
+
+2013-10-24  Paul Eggert  <eggert@cs.ucla.edu>
+
+       build: fix bug where 'configure --with-posix-acls' disables ACLs
+       Reported by Lars Wendler in
+       <http://lists.gnu.org/archive/html/bug-tar/2013-10/msg00022.html>.
+       * configure.ac (with_posix_acls): Fix typo.
+
+2013-10-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Fix core dump on Solaris 10 when "." isn't readable.
+       Reported by Peter Kruse in
+       <http://lists.gnu.org/archive/html/bug-tar/2013-10/msg00017.html>.
+       This doesn't fix all the Solaris 10 test failures, just the
+       core dump.
+       * src/common.h, src/misc.c (tar_getcdpath): Now static.
+       * src/misc.c (normalize_filename): Report a fatal error
+       if cdpath is null, since we don't know the absolute name
+       of the working directory in that case.  FIXME: there should
+       be no need to know absolute file names.
+       (chdir_arg): Simplify wd allocation.
+       Don't assume that xgetcwd returns non-null.
+
+2013-10-06  Sergey Poznyakoff  <gray@gnu.org.ua>
+
+       Version 1.27
+       * NEWS: Update.
+       * configure.ac: Update.
+
+       Minor fixes.
        * src/names.c: Include argp.h
        * tests/testsuite.at (AT_XATTRS_UTILS_PREREQ)
        (AT_SELINUX_UTILS_PREREQ,AT_ACLS_UTILS_PREREQ)
 2013-10-05  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Xfail the remfiles09b test.
-
        * tests/remfiles09b.at: Turn into expected failure.
 
 2013-10-05  Nathan Stratton Treadway  <nathanst@ontko.com>
 
        Tiny change
-
        * scripts/tar-snapshot-edit: Mention --show-snapshot-field-ranges
        option
 
 2013-10-05  Pavel Raiskup  <praiskup@redhat.com>
 
        Tiny change
-
        * configure.ac (RSH): Define as AC_ARG_VAR.
 
 2013-10-05  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix namespace contamination in testsuite.
-
        * tests/append01.at: Use m4_pushdef/m4_popdef to define local
        macros.
        * tests/delete03.at: Likewise.
 2013-10-05  Nathan Stratton Treadway  <nathanst@ontko.com>
 
        Provide comprehensive testcases for various file removal modes.
-
        * tests/Makefile.am: Add new testcases.
        * tests/testsuite.at: Likewise.
        * tests/incr09.at: Add description.
 2013-10-03  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Tiny changes.
-
        * src/misc.c: Fix comments, rename wd.cwd to wd.abspath (Nathan
        Stratton
        Treadway);
 2013-10-01  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Revamp tar_getcwd/normalize_filename stuff.
-
        The changes are based on the discussion with Nathan.
-
        * src/common.h (normalize_filename): Take two arguments. All
        callers updated.
        (tar_getcwd): Replaced with ..
        structure.
        (tar_getcwd): Removed.
        (tar_getcdpath): New function.
-
        * tests/incr09.at: New test case.
        * tests/Makefile.am: Add new tests.
        * tests/testsuite.at: Likewise.
 2013-09-27  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Bugfix
-
        * tests/remfiles08.at: Restore missing find
 
 2013-09-26  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Use relative addressing in deferred unlinks.
-
        * src/common.h (tar_dirname): New function.
        * src/misc.c (normalize_filename_x): Make extern.
        (tar_dirname): New function.
-       (tar_getcwd): Take into account absoulte pathnames.
+       (tar_getcwd): Take into account absolute pathnames.
        * src/unlink.c (deferred_unlink) <dir_idx>: New member; keeps the
        value of chdir_current at the moment of structure allocation.
        (flush_deferred_unlinks): Use chdir_do and relative addressing.
 2013-09-25  Nathan Stratton Treadway  <nathanst@ontko.com>
 
        Improve tar-snapshot-edit
-
        Support architecture-specific field ranges for the "-c" function.
        Better handle negative or larger-than-32-bit field values even
        when running in 32-bit Perl (for the default "print a summary"
 2013-09-25  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Improve tar_getcwd
-
        * src/common.h (tar_getcwd): Return pointer is const.
        * src/misc.c (wd) <cwd>: New member.
        (chdir_arg): Initialize cwd.
        * src/names.c (name_next_elt): Remove leftover call chdir().
        * tests/Makefile.am: Add new tests.
        * tests/testsuite.at: Likewise.
-
        * tests/incr08.at: New testcase.
        * tests/remfiles04.at: New testcase.
        * tests/remfiles05.at: New testcase.
 2013-09-24  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix normalize_filename.
-
        The function did not take into account eventual -C options, which
        in particular led to various problems when using -C and
        --remove-files
        together.
-
        * src/common.h (namebuf_add_dir,namebuf_finish)
        (tar_getcwd): New prototypes.
        * src/misc.c (namebuf_add_dir,namebuf_finish)
 2013-09-23  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Changes for compatibility with Slackware installation scripts.
-
        * src/buffer.c (short_read): the "Record size" message
        is controlled by the WARN_RECORD_SIZE warning_option bit.
        * src/common.h (keep_directory_symlink_option): New global.
        (options): New option --keep-directory-symlink.
        (parse_opt): Handle this option.
        * src/warning.c: Implement "record-size" warning control.
-
        * NEWS: Update.
        * doc/tar.texi: Document new features.
 
 2013-09-21  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix error message (complements 0ea6e686)
-
        * src/tar.c (set_subcommand_option): Mention --delete in the
        error message.
 
 2013-09-15  Nathan Stratton Treadway  <nathanst@ontko.com>
 
        Implement the --show-snapshot-field-ranges option
-
        * src/common.h (show_snapshot_field_ranges): New prototype.
        * src/incremen.c (show_snapshot_field_ranges): New function.
        * src/tar.c: New option --show-snapshot-field-ranges.
 2013-09-15  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Take into account chdir_fd when extracting from incremental dumps.
-
        * src/common.h (tar_savedir): New prototype.
        * src/misc.c (tar_savedir): New function.
        (remove_any_file): Use tar_savedir.
        * tests/testsuite.at: Likewise.
        * THANKS: Updated.
 
-2013-09-15  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Minor fix
-
        * src/tar.c (main): Mention --delete in the error message.
        * THANKS: Update
 
 
        * src/names.c (file_list_name): Properly prototype.
 
-2013-09-13  Paul Eggert  <eggert@cs.ucla.edu>
-
        tar: don't warn about zero timestamps
-
-       * src/extract.c (check_time): Suppress warniing when t.tv_sec
-       == 0.
+       * src/extract.c (check_time): Suppress warning when t.tv_sec == 0.
        Problem reported by Denis Excoffier.
 
 2013-08-19  Pavel Raiskup  <praiskup@redhat.com>
 
        Minor fix in the testsuite.
-
        * tests/T-cd.at: sort the 'tar cf' output.
 
 2013-08-17  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Improve error diagnostics
-
        * src/names.c (file_list_name): New static function.
        (add_file_id): If a filelist is being read twice, print the names
        of the files that caused it.
 
        Revamp initial name collection functions to ensure proper
        argument ordering.
-
        * src/names.c (NELT_NOOP): New constant
        (name_elt) <next,prev>: New members.
        (name_array,allocated_entries,entries,scanned): Remove.
        * tests/Makefile.am: Add new testcases.
        * tests/testsuite.at: Likewise.
 
-2013-08-16  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Don't treat attempts to read an already read file list as
        fatal errors.
-
        * src/names.c (add_file_id): Report error and return 1 if the file
        has already been read.
        (read_next_name): Don't try to open file if add_file_id returns 1.
        (name_next_elt): Simplify conditional.
 
-2013-08-16  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Minor change.
-
        * src/names.c (name_next_elt): Simplify conditional.
 
 2013-08-15  Pavel Raiskup  <praiskup@redhat.com>
 
        Fix use of uninitialized memory
-
        * src/names.c (name_add_file): Initialize the ep->v.file.fp
        pointer
        after structure allocation.
 2013-08-05  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor changes
-
        * src/names.c (handle_option): Use program_invocation_short_name
        instead of the constant string.
        (read_next_name): Remove unused variable.
 2013-08-04  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Update the docs.
-
        * doc/tar.texi: Parsing of the options found in the file list
        follows the same rules as for command line.  Remove the obsolete
        description.  This complements 26538c9b.
 
-2013-08-04  Sergey Poznyakoff  <gray@gnu.org.ua>
-
-       Fix interacton of --verbose and --append.
-
+       Fix interaction of --verbose and --append.
        * src/buffer.c (_open_archive): don't overwrite existing archive
        if given the --verify option.
        * tests/append04.at: New file.
        * tests/testsuite.at: Add new testcase.
        * THANKS: Update.
 
-2013-08-04  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Bugfix.
-
        * src/names.c (read_name_from_file): Fix a typo. Remove
        unused variable.
 
-2013-08-04  Sergey Poznyakoff  <gray@gnu.org.ua>
-
-       Reduce memory consuption when handling the -T option.
-
+       Reduce memory consumption when handling the -T option.
        The commit cdb27293 made the -T option more flexible, but
        incurred a very considerable memory overhead by storing
        all file names in the argument array.  In case of very
        was reported by Christian Wetzel <wetzel@phoenix-pacs.de>
        on March 14, 2013
        (http://lists.gnu.org/archive/html/bug-tar/2013-03/msg00018.html).
-
-       On the other hand, Michal Å½eidl discovered that tar misfunctioned
+       On the other hand, Michal Å½eidl discovered that tar malfunctioned
        when given empty file lists or lists with the trailing newline
-       misssing in the last entry.  This was reported by Pavel Raiskup
+       missing in the last entry.  This was reported by Pavel Raiskup
        on July 23
        (http://lists.gnu.org/archive/html/bug-tar/2013-07/msg00009.html
        and
        msg00010.html).
-
        This change fixes both issues.
-
        * src/common.h (name_add_file,request_stdin): New prototype.
        (more_options): New prototype.
        * src/names.c (NELT_FILE): New entry type.
        (update_argv): Removed.
        (parse_opt): Change handling of the -T option.
        (more_options): New function.
-
        * tests/T-null.at: Rewrite test.
        * tests/T-zfile.at: New file.
        * tests/T-nonl.at: New file.
        * tests/Makefile.am: Add new testcases.
        * tests/testsuite.at: Likewise.
-
        * THANKS: Update.
 
 2013-06-29  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix the compatibility check for the --occurrence option.
-
        * src/tar.c (SUBCL_OCCUR): New class.
        (subcommand_class): Update.
        (decode_options): Accept the --occurrence option
 2013-06-29  Pavel Raiskup  <praiskup@redhat.com>
 
        testsuite: do not resist on file order in archive
-
        On my Fedora 19 box, the exclude08 & exclude11 tests failed before
        this fix.  The reason was that the directory traversing chosen the
        file order differently than the testsuite expected.
-
        * tests/exclude08.at: Sort the tarball content output.
        * tests/exclude09.at: Likewise.
        * tests/exclude10.at: Likewise.
 2013-06-29  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Improve checks for incompatible options.
-
        * src/common.h (READ_LIKE_SUBCOMMAND): Remove define.
        * src/tar.c (IS_SUBCOMMAND_CLASS): New macro.
        (decode_options): Use IS_SUBCOMMAND_CLASS in checking
        option compatibility.
        Accept the --verify option only with subcommands that
        write to the archive.
-
        * tests/opcomp01.at: New test case.
        * tests/opcomp02.at: New test case.
        * tests/opcomp03.at: New test case.
 2013-06-28  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: port to Mingw Shell
-
        * src/extract.c (extract_symlink) [!HAVE_SYMLINK]:
        Fix typo by replacing WARN_SYMBOLIC_CAST with WARN_SYMLINK_CAST.
        Problem reported by kaka in
 2013-05-06  Paul Eggert  <eggert@cs.ucla.edu>
 
        maint: revert previous change
-
        It wasn't actually needed.  Reported by Stefano Lattarini in
        <http://lists.gnu.org/archive/html/bug-tar/2013-04/msg00041.html>.
        * configure.ac (AM_GNU_GETTEXT_VERSION): Decrease from 0.18.2
 2013-04-25  Paul Eggert  <eggert@cs.ucla.edu>
 
        maint: port to bleeding-edge Automake by assuming Gettext 0.18.2
-
        Reported by Stefano Lattarini in
        <http://lists.gnu.org/archive/html/bug-tar/2013-04/msg00009.html>.
        * configure.ac (AM_GNU_GETTEXT_VERSION): Increase from 0.16
        README-alpha says that we do not make any efforts to accommodate
        older versions of Gettext.
 
-2013-04-25  Paul Eggert  <eggert@cs.ucla.edu>
-
        tar: port to --without-xattrs --enable-gcc-warnings
-
        Reported by Pavel Raiskup in
        <http://lists.gnu.org/archive/html/bug-tar/2013-03/msg00029.html>.
        * src/xattrs.c (xattrs__fd_set) [!HAVE_XATTRS]: Omit.
 
-2013-04-25  Paul Eggert  <eggert@cs.ucla.edu>
-
        doc: port to texinfo 5
-
        * doc/tar.texi (Reports, assumptions, Mixing):
        Put FIXMEs at line start.
 
 
        Continue extracting from a separate volume after skipping a
        partial member.
-
        Reported by Göran Udeborg on 2013-03-09.
-
        * src/extract.c (extract_skip): New function.
        (prepare_to_extract): Set extractor to extract_skip if starting
        at a partial member.
 
-2013-03-12  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Fix interaction of various --exclude-tag options with
        --listed-incremental.
-
        * src/incremen.c (procdir): Set directory->tagfile in
        the exclusion_tag_contents case.
        (makedumpdir): Mark all entries as ignored if directory->tagfile
        (scan_directory): If directory->children is set to
        NO_CHILDREN and directory->tagfile is set, create a
        dumpdir consisting of the tagfile only.
-
        * tests/exclude08.at: New testcase.
        * tests/exclude09.at: New testcase.
        * tests/exclude10.at: New testcase.
 2013-02-20  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: remove lint
-
        * lib/wordsplit.c (_wsplit_error): Mark with printf attribute.
        (expvar): "Use" defstr to pacify GCC.
        * src/system.c (xexec): Now _Noreturn, to pacify GCC.
 2013-02-10  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Pass command line arguments to external commands.
-
        Any option taking a command name as its argument accepts
        additional arguments as well.
-
        * lib/wordsplit.c: New file.
        * lib/wordsplit.h: New file.
        * lib/Makefile.am: Add new files.
        (sys_exec_info_script)
        (sys_exec_checkpoint_script): Use xexec to invoke external
        command.
-
        * NEWS: Update.
        * doc/tar.texi: Update.
 
 2013-01-29  Nathan Stratton Treadway  <nathanst@ontko.com>
 
        tar: improve compile-time diagnostics
-
        * src/misc.c (sysinttostr, strtosysint): Improve #error wording.
 
 2013-01-27  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: improve quality of diagnostics with incrementals
-
        Inspired by a prototype by Nathan Stratton Treadway in
        <http://lists.gnu.org/archive/html/bug-tar/2013-01/msg00000.html>.
        * src/incremen.c (read_num): Rewrite by merging read_negative_num
 
        tar: fix bug with sparse files with effective size of 8 GiB
        or more
-
        Reported by Pavel Raiskup in
        <http://lists.gnu.org/archive/html/bug-tar/2013-01/msg00001.html>.
        * NEWS: Document the fix.
 
        maint: update copyrights for 2013 and as per current GNU standards
 
-2012-12-31  Paul Eggert  <eggert@cs.ucla.edu>
-
        maint: remove unnecessary file
-
        * src/configure.in: Remove.  This file has been obsolete for
        a while.
 
 2012-12-24  Paul Eggert  <eggert@cs.ucla.edu>
 
        maint: don't enable warnings by default unless GCC 4.6 or later
-
        * configure.ac (gl_GCC_VERSION_IFELSE): New macro, from coreutils.
        (gl_gcc_warnings): By default, disable warnings for GCC versions
        before 4.6.  This works around a failure when building from git on
 2012-12-23  Paul Eggert  <eggert@cs.ucla.edu>
 
        Handle incremental format 2 with negative numbers, too.
-
        * src/incremen.c (read_unsigned_num): Last arg is intmax_t *, not
        uintmax_t, for consistency with other readers.  All callers
        changed.
        Avoid signed integer overflow.
        (read_num):
 
-2012-12-23  Paul Eggert  <eggert@cs.ucla.edu>
-
        Fix some problems with negative and out-of-range integers.
-
        Original problem reported for HP-UX LVM v2.2 by Michael White in
        <http://lists.gnu.org/archive/html/bug-tar/2012-10/msg00000.html>.
        This patch fixes some other gotchas that I noticed.
 2012-12-22  Paul Eggert  <eggert@cs.ucla.edu>
 
        Port use of mkdirat etc. to Solaris 10.
-
        * gnulib.modules (fchmodat, fchownat, fstatat, mkdirat, unlinkat):
        Add.  These were split out in gnulib, so we now need to request
        them separately.  mkdirat, for example, is not in Solaris 10.
 
-2012-12-22  Paul Eggert  <eggert@cs.ucla.edu>
-
        Port ACL configuration to Solaris 10.
-
        * configure.ac (with_posix_acls): Fix misspellings.
        Stop checking at the first failure, to speed up 'configure'.
 
 2012-12-19  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: remove unused externs, or make them static
-
        * src/buffer.c (record_buffer_aligned, flush_write_ptr,
        flush_read_ptr)
        (duration):
        * src/tar.c (check_links_option, allocated_archive_names):
        Move decls here from common.h; these are now static.
 
-2012-12-19  Paul Eggert  <eggert@cs.ucla.edu>
-
        * .gitignore: Regenerate.
 
-2012-12-19  Paul Eggert  <eggert@cs.ucla.edu>
-
        build: new configure option --enable-gcc-warnings
-
        This has a similar meaning as in other GNU applications
        such as coreutils and Emacs.
        * NEWS: Document it.
        * src/xheader.c (xheader_format_name): Initialize pptr to null,
        to pacify GCC.  Remove unnecessary test of nptr versus null.
 
-2012-12-19  Paul Eggert  <eggert@cs.ucla.edu>
-
        tar: don't truncate diagnostic
-
        * src/list.c (from_header): Fix buffer size calculation when
        generating a diagnostic.
 
 2012-12-03  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Bugfix.
-
        * tests/Makefile.am: Fix double AM_CPPFLAGS
 
 2012-12-01  Sergey Poznyakoff  <gray@gnu.org.ua>
 2012-11-19  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Housekeeping.
-
        * NEWS: Mention the support for POSIX ACLs, extended
        attributes and SELinux context.
        * THANKS: List James Antill and Pavel Raiskup.
 
-2012-11-19  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Fix indentation.
 
 2012-11-19  Pavel Raiskup  <praiskup@redhat.com>
 
        Allow to store/extract '=' character in xattr keyword
-
        * src/xheader.c (xattr_decode_keyword)
        (xattr_encode_keyword): New functions.
        (xheader_print_n,xattr_decoder): Use them.
        * tests/Makefile.am: Add new test case.
        * tests/testsuite.at: Likewise.
 
-2012-11-19  Pavel Raiskup  <praiskup@redhat.com>
-
        Bugfixes.
-
        * configure.ac: Avoid linking against -lacl when
        --without-posix-acls is given.
        * tests/selacl01.at: Call restorecon
        * tests/testsuite.at (AT_SELINUX_UTILS_PREREQ): Likewise.
        (AT_SELINUX_PREREQ,AT_ACLS_PREREQ): Use the right _PREREQ macros.
 
-2012-11-19  Pavel Raiskup  <praiskup@redhat.com>
-
        Fix bootstrapping.
-
        * bootstrap (gnulib_extra_files): Remove $build_aux/missing
 
 2012-11-19  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Various fixes.
-
        * src/xattrs.c: Don't mix variable declarations and statements.
        Use proper data types.  Remove improper use of const qualifiers.
        Use x2nrealloc to reallocate memory buffers.
 2012-11-18  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor change.
-
        * src/xattrs.c: Fix indentation. Fix copyleft statement, promote
        to GPLv3+.
        * src/xattrs.h: Likewise
 2012-11-18  Pavel Raiskup  <praiskup@redhat.com>
 
        Add SELinux context store/restore/list support.
-
        * gnulib.modules: Add selinux-at.
        * src/Makefile.am (tar_LDADD): Add LIB_SELINUX.
-
        * src/create.c (start_header, dump_file0): Handle selinux
        contexts.
        * src/extract.c (delayed_set_stat) <cntx_name>: New member.
        * tests/selacl01.at: New test.
        * tests/selnx01.at: New test.
 
-2012-11-18  Pavel Raiskup  <praiskup@redhat.com>
-
        Support for POSIX ACLs
-
        * configure.ac: Check whether ACLs are available on the
        host system.
        * gnulib.modules: Add acl
        * tests/acls01.at: New test.
        * tests/acls02.at: New test.
 
-2012-11-18  Pavel Raiskup  <praiskup@redhat.com>
-
-       Add basic suuport for extended attributes.
-
+       Add basic support for extended attributes.
        * src/Makefile.am: Add xattrs.[ch]
        * src/xattrs.c: New file.
        * src/xattrs.h: New file.
 2012-11-18  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Prepare for implementing extended attribute support.
-
        This patch adds *xattr() stubs in case extended attribute
        support is
        not present and implements the *attrat() family of functions.
        Based
        on the patch by Pavel Raiskup <pavel@raiskup.cz> for gnulib.
-
        * acinclude.m4 (TAR_HEADERS_ATTR_XATTR_H): New defun.
        * configure.ac: Call TAR_HEADERS_ATTR_XATTR_H
        * lib/Makefile.am: Add xattr-at.[ch], distribute attr-xattr.in.h
 
        Fix creation of incremental archives when a subdirectory becomes
        a mountpoint.
-
-       When used with --listed-incrfental and --one-file-system, tar
+       When used with --listed-incremental and --one-file-system, tar
        was unable to cope with directories that had once been part of the
-       dumped system and became separate mount points afterwards.
-       The bug
+       dumped system and became separate mount points afterward.  The bug
        has been reported and a fix proposed by Nathan Stratton Treadway.
-
        * src/incremen.c (procdir): If one_file_system_option is in
        effect,
        clear out dumpdir info from the directory.
 2012-07-27  Jim Meyering  <jim@meyering.net>
 
        maint: try to avoid unwanted chatter in ChangeLog
-
        * bootstrap.conf: Do not alter ChangeLog if it already exists.
 
 2012-07-26  Paul Eggert  <eggert@cs.ucla.edu>
 
        doc: improve discussion of compressed archives
-
        * doc/tar.texi (gzip): Don't claim that -I 'gzip --best' works.
        Problem reported by Davide Brini in
        <http://lists.gnu.org/archive/html/bug-tar/2012-07/msg00025.html>.
        Also, improve some of the surrounding text.
-
        This file is a placeholder. It will be replaced with the actual
        ChangeLog
        by make dist.  Run make ChangeLog if you wish to create it
 2012-06-27  Paul Eggert  <eggert@cs.ucla.edu>
 
        tests: fix permissions-assumption bug in test
-
        * tests/owner.at: Don't assume umask is 022.
        Reported by Pavel Raiskup in
        <http://lists.gnu.org/archive/html/bug-tar/2012-06/msg00015.html>.
 
-2012-06-27  Paul Eggert  <eggert@cs.ucla.edu>
-
        tar: don't assume root is uid 0
-
        This is not true for Tandem NonStop Kernel.  See Joachim Schmitz's
        comment in <http://bugs.gnu.org/10305#111>.
        * gnulib.modules: Add root-uid.
 
        * src/compare.c (diff_dumpdir): Omit useless 'stat'.
 
-2012-04-25  Paul Eggert  <eggert@cs.ucla.edu>
-
        * doc/tar.texi (Option Summary): Fix xref typo.
-
        Reported by Nathan Stratton Treadway in
        <http://lists.gnu.org/archive/html/bug-tar/2012-04/msg00035.html>.
-
        This file is a placeholder. It will be replaced with the actual
        ChangeLog
        by make dist.  Run make ChangeLog if you wish to create it
 2012-03-29  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix unrecognized option.
-
        * src/tar.c (parse_opt): Handle OLD_ARCHIVE_OPTION.
 
 2012-03-11  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: remove lint
-
        This lint was found by GCC 4.6.2 on Fedora 15 x86-64.
        * src/buffer.c (buffer_write_global_xheader, mv_end,
        set_start_time)
 2012-02-14  Paul Eggert  <eggert@cs.ucla.edu>
 
        doc: suggest Bash for large-fd script
-
        * doc/tar.texi (Multi-Volume Archives): Suggest Bash for shell
        script that might use >&10.  Problem reported by Edward F
        Eaglehouse in
 2012-01-18  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: quote 'like this', not `like this'
-
        This fixes some test failures recently introduced by gnulib
        updates
        prompted by recent changes to the GNU coding standards,
        * tests/volume.at:
        Adjust tests to match new quoting behavior.
 
-2012-01-18  Paul Eggert  <eggert@cs.ucla.edu>
-
        tar: port --overwrite symlink test to GNU/Hurd
-
        Problem reported by Pino Toscano in
        <http://lists.gnu.org/archive/html/bug-tar/2012-01/msg00040.html>.
        * gnulib.modules: Add fcntl-h, which defines
        HAVE_WORKING_O_NOFOLLOW.
        * src/extract.c (open_output_file): Use HAVE_WORKING_O_NOFOLLOW,
        not O_NOFOLLOW, when testing whther O_NOFOLLOW works.
-
        This file is a placeholder. It will be replaced with the actual
        ChangeLog
        by make dist.  Run make ChangeLog if you wish to create it
 2012-01-11  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: fix core dump with --index-file=bad_path
-
        * src/tar.c (decode_options): Exit cleanly if index file won't
        open.
        Problem reported by Khanh-Dang Nguyen Thu Lam in
 2012-01-06  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: don't assume O_NONBLOCK is benign on regular files
-
-       On Data Migration Facility (DMF), High Peformance Storage System
+       On Data Migration Facility (DMF), High Performance Storage System
        (HPSS),
        and presumably other file systems based on hierarchical storage,
        opening
 2011-11-26  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix --keep-old-files option.
-
        The regression was introduced by 8f390db9.  This patch implements
        additional
        option --skip-old-files, which silently skips members which
        writing over existing files, and restores --keep-old-files to
        its traditional
        behavior.
-
        * NEWS: Update.
        * configure.ac: Update.
        * doc/tar.texi: Document the changes.
 
        Warn about existing files in keep-old-files mode (complements
        8f390db9).
-
        This is controlled by "existing-file" warning code, which is off
        by default.
-
        * src/common.h (WARN_EXISTING_FILE): New warning code.
        (WARN_VERBOSE_WARNINGS): Add WARN_EXISTING_FILE.
        * src/extract.c (maybe_recoverable): warn about existing file
        if WARN_EXISTING_FILE is set.
        * src/warning.c: New warning type: "existing-file"
 
-2011-11-17  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Fix the "Creating directory:" output
-
        * src/list.c (print_for_mkdir): don't use unquoted name length for
        computing its output width.
 
 2011-11-15  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix operation of --verify in conjunction with --listed-incremental
-
        * src/common.h (clear_directory_table): New proto.
        * src/incremen.c (clear_directory_table): New function.
        * src/compare.c (diff_dumpdir): Take a pointer to struct
 2011-10-18  Paul Eggert  <eggert@cs.ucla.edu>
 
        * doc/tar.texi (Option Summary, absolute): Document -P better,
-
        by describing how it deals with symbolic links on extraction.
 
 2011-09-28  Paul Eggert  <eggert@cs.ucla.edu>
 
        2011-09-27 Paul Eggert <eggert@cs.ucla.edu>
-
        * src/tar.c (stat_on_signal): Use SA_RESTART if available.
 
 2011-09-20  Paul Eggert  <eggert@cs.ucla.edu>
 
        * doc/tar.texi: Remove front- and back-cover texts.
-
        These are no longer needed for this manual, according to the
        GNU maintainers guide.  Update copyright date to 2011.
 
 2011-09-19  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor changes.
-
        * scripts/tar-snapshot-edit: License under GPLv3+.
        Remove trailing whitespace.
 
 2011-09-19  Nathan Stratton Treadway  <nathanst+bugtar@ontko.com>
 
        Minor changes.
-
        * doc/snapshot.texi: Clarify the use of nfs field in 0 and
        1 formats.
        Give more precise information about which versions of tar
        used each
        format.
 
-2011-09-19  Nathan Stratton Treadway  <nathanst+bugtar@ontko.com>
-
        Upgrade tar-snapshot-edit script.
-
        * scripts/tar-snapshot-edit: Update Perl syntax to work
        correctly with more recent versions of Perl.  (The original
        code worked with in the v5.8 timeframe but not with
 2011-08-13  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: --owner and --group names and numbers
-
        The --owner and --group options now accept operands of the form
        NAME:NUM, so that you can specify both symbolic name and numeric
        ID for owner and group.  Also, in these options, NAME no longer
        * tests/Makefile.am (TESTSUITE_AT): Add it.
        * tests/testsuite.at: Include it.
 
-2011-08-13  Paul Eggert  <eggert@cs.ucla.edu>
-
        .gitignore: update
-
        * .gitignore: Add rmt.
        * lib/.gitignore: New file.
 
 2011-07-30  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix the --exclude-backups option.
-
-       * src/tar.c (add_exclude_array): Take exclude option filags in its
+       * src/tar.c (add_exclude_array): Take exclude option flags in its
        second argument.
        (parse_opt): Register backup_file_table with the EXCLUDE_WILDCARDS
        flag.
 2011-06-08  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: simplify birthtime calculations
-
        * src/extract.c (same_birthtime): Remove.
        (extract_link, apply_delayed_links): Go back to using
        timestamp_cmp
        relies
        on an up-to-date gnulib.
 
-2011-06-08  Paul Eggert  <eggert@cs.ucla.edu>
-
        tar: use birthtime rather than ctime when checking identity
-
        Without this fix, tar would sometimes mishandle the extraction of
        hard links to symbolic links.  Problem reported in
        <http://lists.gnu.org/archive/html/bug-tar/2011-06/msg00000.html>
 
        * doc/tar.texi (Old Options): Clarify distinction from short
        options.
-
        Adjust other parts of the manual to use examples that parse the
        same regardless of whether "-" is in front of the option clump.
        See
 2011-03-12  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Testsuite fix.
-
        * tests/sparse04.at: Use the -f option.
 
-2011-03-12  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Version 1.26
-
        * NEWS, configure.ac: Update.
        * po/POTFILES.in: Remove paxexit.c (see bb971a1e).
 
 2011-03-08  Paul Eggert  <eggert@cs.ucla.edu>
 
        --atime-preserve=replace: fix correctness and performance bugs
-
        reported by Eric Blake in
        <http://lists.gnu.org/archive/html/bug-tar/2011-03/msg00000.html>.
        * src/compare.c (diff_file): Do not restore atime of size-zero
 2011-02-23  Paul Eggert  <eggert@cs.ucla.edu>
 
        * doc/tar.texi: Adjust example commands and output for accuracy.
-
        The original problem was reported by Michael Witten in
        <http://lists.gnu.org/archive/html/bug-tar/2011-02/msg00033.html>.
 
 2011-02-16  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: if (p) free (p); -> free (p);
-
        There is no longer (since SunOS 4) any need to guard against
        free (NULL), so replace each "if (p) free (p);" with "free (p);".
        From Jim Meyering in
 2010-12-14  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Correctly store long sparse file names in PAX archives.
-
        * src/sparse.c (pax_dump_header_1): Make sure the created header
        name is
        shorter than NAME_FIELD_SIZE bytes.
 2010-12-07  Paul Eggert  <eggert@cs.ucla.edu>
 
        tests: make the truncate test smaller and less buggy (tiny change)
-
        Reported by Solar Designer in
        <http://lists.gnu.org/archive/html/bug-tar/2010-12/msg00003.html>.
        * tests/truncate.at: Use a smaller test case, and make its
 
        tests: skip SIGPIPE-dependent tests in environments ignoring
        SIGPIPE
-
        Problem reported by Sven Joachim in
        <http://lists.gnu.org/archive/html/bug-tar/2010-11/msg00043.html>.
        * tests/remfiles01.at: Use AT_SIGPIPE_PREREQ.
 
        tar: work around NetBSD and Tru64 symlink incompatibility
        with POSIX
-
        Problem reported by Bruno Haible in
        <http://lists.gnu.org/archive/html/bug-gnulib/2010-11/msg00306.html>.
        * src/extract.c (maybe_recoverable):  Also treat EFTYPE (if
 2010-11-24  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: adjust to paxutils change: paxexit.c -> paxexit-status.c
-
        * lib/Makefile.am (libtar_a_SOURCES): paxexit.c renamed to
        paxexit-status.c.
 
-2010-11-24  Paul Eggert  <eggert@cs.ucla.edu>
-
        tar: remove unused function dir_removed_diag
-
        * src/common.h (dir_removed_diag): Remove unused decl.
        * src/misc.c (dir_removed_diag): Remove unused function.
 
 2010-11-23  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: work around FreeBSD symlink incompatibility with POSIX
-
        * src/extract.c (maybe_recoverable): Treat EMLINK like ELOOP, for
        FreeBSD.  Problem reported by Christian Weisgerber in
        <http://lists.gnu.org/archive/html/bug-tar/2010-11/msg00080.html>.
 
-2010-11-23  Paul Eggert  <eggert@cs.ucla.edu>
-
        * src/names.c: tar: fix bug with --one-file-system
        --listed-incremental
-
        Problem (and idea for fix) reported by Martin Weigel
        <http://lists.gnu.org/archive/html/bug-tar/2010-11/msg00071.html>.
        * src/common.h (is_individual_file): Remove decl.
        * src/names.c (individual_file_table, register_individual_file):
        (is_individual_file): Remove.  All uses removed.
 
-2010-11-23  Paul Eggert  <eggert@cs.ucla.edu>
-
        tests: new test listed04 for --one-file-system
        --listed-incremental
-
        * tests/Makefile.am (TESTSUITE_AT): Add listed04.at.
        * tests/listed04.at: New file.
        * tests/testsuite.at: Include it.
 
-2010-11-23  Paul Eggert  <eggert@cs.ucla.edu>
-
        scripts: fix option parsing
-
        Problem reported by Dennis Wydra in
        <http://lists.gnu.org/archive/html/bug-tar/2010-11/msg00082.html>.
        * scripts/backup.in: Accept "-l LEVEL".  Be more systematic about
 
 2010-11-15  Sergey Poznyakoff  <gray@gnu.org.ua>
 
-       Issue a warning if the archive being compared contais transformed
+       Issue a warning if the archive being compared contains transformed
        file names.
-
        * src/common.h (transform_program_p): New proto.
        * src/transform.c (transform_program_p): New function.
        * src/compare.c (verify_volume): Warn if the archive contains
        transformed file names.
 
-2010-11-15  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Minor change.
-
        * doc/tar.texi: Reword the description of decompress-program.
 
 2010-11-15  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: fix --verify option, which broke in 1.24
-
        * NEWS: Document this.
        * src/compare.c (verify_volume): Decode the header before invoking
        diff_archive, as diff_archive no longer does this as of the
 2010-11-08  Jim Meyering  <meyering@redhat.com>
 
        tests: avoid spurious failure when VERSION_CONTROL envvar is set
-
        * tests/backup01.at: Unset VERSION_CONTROL.  Otherwise,
        when set to e.g., 'always', it would cause this test to fail.
 
 2010-11-07  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Version 1.25
-
        * configure.ac: Version 1.25
        * NEWS: Describe the changes.
 
 
        Run alternative decompression programs if the principal one is
        not available.
-
        Some compression programs are able to handle various compression
        formats
        (e.g. `gzip' can decompress files created by `compress', `xz'
        to handle lzma, etc.)  Tar tries to use such programs for
        decompression
        if the principal decompressor cannot be started.
-
        * src/buffer.c (compress_type): Swap ct_none and ct_tar.
        (archive_compression_type): New static variable.
        (zip_magic): Remove program and option fields.
 2010-11-02  Paul Eggert  <eggert@cs.ucla.edu>
 
        tests: fix some issues with signals, timestamps, "test" typo
-
        * tests/extrac17.at: Add --warning=no-timestamp, to avoid
        bogus warning due to NFS clock skew.
        * tests/remfiles01.at: Discard diagnostics that some shells
 2010-11-01  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix extraction of device nodes.
-
        * src/extract.c (extract_node): Do not mask out node type.
        The bug was introduced in commit ea964cce.
 
 2010-10-28  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: don't cross struct member boundaries with OLDGNU_MAGIC
-
        * src/create.c (write_gnu_long_link, start_header): Access
        header->buffer + offsetof (struct posix_header, magic), instead of
        header->header.magic, when reading or writing the OLDGNU_MAGIC
        <http://lists.gnu.org/archive/html/bug-tar/2010-04/msg00023.html>.
        * src/list.c (decode_header): Likewise.
 
-2010-10-28  Paul Eggert  <eggert@cs.ucla.edu>
-
        tests: port to sh variants that squirrel away file descriptors
-
        OpenBSD /bin/sh, and some other sh variants, squirrel away file
        descriptors before closing them.  For example, for "cat 3<&-" they
        first dup file descriptor 3 to a fd that is 10 or greater, then
        <http://lists.gnu.org/archive/html/bug-tar/2010-10/msg00041.html>;
        solution suggested by Jilles Tjoelker in
        <http://article.gmane.org/gmane.comp.shells.dash/415>.
-
        * tests/extrac11.at (scarce file descriptors): Close file
        descriptors before invoking ulimit -n.
 
 2010-10-27  Sergey Poznyakoff  <gray@gnu.org.ua>
 
-       Transform file names when updating and appendig to archives.
-
+       Transform file names when updating and appending to archives.
        This complements 28e91b48.
-
        * src/common.h (transform_stat_info): New prototype.
        * src/list.c (transform_stat_info): Remove static qualifier.
        * src/update.c (update_archive): Call transform_stat_info.
 2010-10-27  Paul Eggert  <eggert@cs.ucla.edu>
 
        tests: port to Solaris diff
-
        * tests/extrac13.at: Don't assume that "diff -c" outputs nothing
        when there are no differences.  This is not true on Solaris,
-       where it outputs "No differences encounted".
-
-2010-10-27  Paul Eggert  <eggert@cs.ucla.edu>
+       where it outputs "No differences encountered".
 
        tar: fix -x --overwrite bug (no --dereference, ! O_NOFOLLOW)
-
        This bug was discovered on Solaris 8.  On older hosts lacking
        O_NOFOLLOW, tar -x --overwrite (without --dereference) follows
        symbolic links, causing the "extract over symlinks" test to fail.
-
        * src/extract.c (open_output_file): If O_NOFOLLOW is needed but
        does not work, check for a symlink separately.
 
-2010-10-27  Paul Eggert  <eggert@cs.ucla.edu>
-
        tar: don't use "((" in shell scripts
-
        * tests/extrac11.at: Replace "((" with "( (" in shell scripts, as
        "((" is not portable to the Korn shell, and POSIX 1003.1-2008 says
        that "((" is not portable.
 2010-10-26  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Make sure name matching occurs before name transformation.
-
        The commit 9c194c99 altered that order.
-
        * src/list.c (transform_stat_info): New function.  Split off from
        decode_header.
        (read_and): Call transform_stat_info right before do_something,
        and after deciding if we should proceed with this member name,
        so that name matching occurs before name transformation.
-
        * tests/extrac17.at: New file.
        * tests/Makefile.am (TESTSUITE_AT): Add extrac17.at
        * tests/testsuite.at: Include extrac17.at.
 2010-10-26  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: don't assume stdin is open when testing fd limits
-
        * tests/extrac11.at: Redirect stdin from /dev/null, in case
        the parent 'make' is running with stdin closed.
 
 2010-10-26  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Further fixes in bootstrap.
-
        * bootstrap: Restore the default for gnulib_path
        (symlink_to_dir): Re-apply 67cad07.
 
 2010-10-26  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: fix bug with -C and extracting directories
-
        Problem reported by Denis Excoffier in
        <http://lists.gnu.org/archive/html/bug-tar/2010-10/msg00034.html>.
-
        * src/extract.c (extract_dir): Use mkdirat, not mkdir.
        * tests/extrac16.at: New file, to test for this bug.
        * tests/Makefile.am (TESTSUITE_AT): Add it.
        * tests/testsuite.at: Include it.
-
        This file is a placeholder. It will be replaced with the actual
        ChangeLog
        by make dist.  Run make ChangeLog if you wish to create it
 2010-10-25  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Version 1.24
-
        * configure.ac, NEWS: Version 1.24
        * bootstrap: Restore tar-specific code lost during last
        sync from gnulib (241b72ffad).
 2010-10-16  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: use more-accurate diagnostic when intermediate mkdir fails
-
        Without this change, if tar tried to extract a file A/B/C, noticed
        that A/B didn't exist, attempted to mkdir A/B, and the mkdir
        failed, it did not diagnose the mkdir failure, but simply reported
        * tests/Makefile.am (TESTSUITE_AT): Add it.
        * tests/testsuite.at: Include it.
 
-2010-10-16  Paul Eggert  <eggert@cs.ucla.edu>
-
        tests: port to NFS file servers with clock skew
-
        Several of the tests assumed that a newly created file cannot
        have a time stamp dated in the future.  This assumption is not
        true when files are served by a remote host whose clock is
        slightly in advance of ours.  Fix the problems that I observed
        when running "make check" a couple of times on such a server.
-
        * tests/backup01.at: Use --warning=no-timestamp to suppress
        clock-skew warnings.
        * tests/chtype.at, tests/comprec.at, tests/exclude06.at:
 
        gnulib: sync from latest gnulib, notably bootstrap and
        parse-datetime
-
        * bootstrap: Sync from gnulib.
        * doc/.gitignore: Rename getdate.texi to parse-datetime.texi.
        * doc/Makefile.am (tar_TEXINFOS): Likewise.
 2010-09-24  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: -x -C symlink fix
-
        * src/misc.c (chdir_do): Don't use O_NOFOLLOW when opening the
        argument to -C.  This is for consistency with "tar -c -C FOO", and
        matches the new documentation.
        * tests/Makefile.am (TESTSUITE_AT): Add it.
        * tests/testsuite.at: Include it.
 
-2010-09-24  Paul Eggert  <eggert@cs.ucla.edu>
-
        tar: --dereference consistency
-
        This closes another race condition, that occurs when overwriting a
        symlink with a regular file.
        * NEWS (--dereference consistency): New section.
 2010-09-20  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: do not crash with --listed-incremental
-
        Problem reported by Frantisek Hanzlik in
        <https://bugzilla.redhat.com/635318> via Kamil Dudka in
        <http://lists.gnu.org/archive/html/bug-tar/2010-09/msg00066.html>.
 2010-09-19  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: prefer openat-style functions
-
        This change replaces traditional functions like 'open' with the
        POSIX.1-2008 functions like 'openat'.  Mostly this is an internal
        refactoring change, in preparation for further changes to close
        to date.  This code won't scale well, but is good enough for now.
        * src/update.c (update_archive): Use openat + fdopendir +
        streamsavedir rather than savedir.
-
        This file is a placeholder. It will be replaced with the actual
        ChangeLog
        by make dist.  Run make ChangeLog if you wish to create it
 2010-09-18  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: add utimens.h includes
-
        * src/extract.c: Include <utimens.h>, needed for fdutimens
        prototype.
        * src/misc.c: Likewise.
 
-2010-09-18  Paul Eggert  <eggert@cs.ucla.edu>
-
        tar: switch to gnulib fdutimensat module
-
        * gnulib.modules: Add fdutimensat.
        * src/common.h (fd_utimensat): Remove decl.
        * src/extract.c (set_stat): Call fdutimensat, not fd_utimensat.
 2010-09-17  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: extract permissions for . last
-
        * src/common.h (must_be_dot_or_slash): New decl.
        * src/extract.c (mark_after_links): New function, taking code
        that used to be in create_placeholder_file.
        * tests/Makefile.am (TESTSUITE_AT): Add it.
        * tests/testsuite.at: Likewise.
 
-2010-09-17  Paul Eggert  <eggert@cs.ucla.edu>
-
        tar: don't check for getdtablesize; use AC_CHECK_FUNCS_ONCE
-
        * configure.ac: Don't check for getdtablesize; no longer needed.
        Use AC_CHECK_FUNCS_ONCE rather than AC_CHECK_FUNCS, for
        efficiency.
 
-2010-09-17  Paul Eggert  <eggert@cs.ucla.edu>
-
        tar: extract symlink attributes, close some symlink-related races
-
        * NEWS: Describe symlink-extraction improvements.
        * src/extract.c (enum permstatus): Remove.
        (fchmod, fchown): Define dummy replacement macros if the system
 2010-09-16  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: tar -x without --incremental no longer sets atime again
-
        * src/extract.c (set_stat): Use UTIME_OMIT rather than UTIME_NOW.
        The UTIME_NOW was there only to emulate the previous behavior of
        using the current time, and the previous behavior was there only
        because before we started assuming POSIX.1-2008 there was no
        portable way to get the effect of UTIME_NOW.
 
-2010-09-16  Paul Eggert  <eggert@cs.ucla.edu>
-
        tar: another --atime-preserve race fix
-
        * src/common.h (set_file_atime): Add parentfd arg.
        * src/compare.c (diff_file): Use it.
        * src/create.c (dump_file0): Likewise.  This closes yet another
        race condition with symbolic links.
        * src/misc.c (set_file_atime): Add parentfd arg.
 
-2010-09-16  Paul Eggert  <eggert@cs.ucla.edu>
-
        tar: --atime-preserve fixes for races etc.
-
        This patch fixes a race condition in the --atime-preserve=replace
        option, which might cause tar to improperly follow a symbolic
        link.
-
        It also drops the use of the _FIOSATIME ioctl of Solaris 2.x
        and later, which loses resolution on time stamps.  Modern Solaris
        systems support full-resolution time stamps in the kernel, and
        it's not worth the hassle of testing this call, useful only in
        no-longer-supported Solaris variants.
-
        Also, it undoes a change I recently introduced to the --compare
        option, which caused it to not follow symbolic links unless the
        --dereference option was also used.  Quite possibly this change is
        a good idea, but the old behavior was documented and the change
        should not have been installed casually.
-
        * configure.ac: Don't check for stropts.h and sys/filio.h.
        * gnulib.modules: Add futimens, utimensat.  Remove futimens.
        * src/common.h (fd_utimensat): New decl.
        Don't use open_read_flags: those are for --create only.
        * src/create.c (dump_file0): Adjust to set_file_atime changes.
        Pass fstatat_flags to set_file_atime, so that symbolic links are
-       not followed inadvertantly.
+       not followed inadvertently.
        * src/extract.c: Don't include utimens.h.
        (set_stat): Use fd_utimensat ant UTIME_NOW rather than fdutimens.
        * src/misc.c: Don't include utimens.h, stropts.h, sys/filio.h.
 2010-09-14  Paul Eggert  <eggert@cs.ucla.edu>
 
        * configure.ac: tar: close some race conditions when extracting
-
        * configure.ac: Check for fchmod and fchown.  Don't check
        for utimes.
        * src/extract.c (fdchmod, fdchown, fdstat): New functions.
 2010-09-13  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: don't worry about fdopendir closing its argument
-
        * NEWS: Don't mention dirfd; no longer needed.
        * gnulib.modules: Remove dirfd.
        * src/create.c (get_directory_entries): Remove the code dealing
        <http://lists.gnu.org/archive/html/bug-gnulib/2010-09/msg00208.html>
        and gnulib commit 970c9038e4cca46e1b037ae0a6d574dfae6a7327.
 
-2010-09-13  Paul Eggert  <eggert@cs.ucla.edu>
-
        * NEWS: Fix wording typo in previous change.
-
        Reported by Jim Meyering.
 
-2010-09-13  Paul Eggert  <eggert@cs.ucla.edu>
-
        tar: live within system-supplied limits on file descriptors
-
        * NEWS: Note the change.  Mention dirfd and fdopendir.
        * gnulib.modules: Add dirfd and fdopendir.  The code was already
        using fdopendir; dirfd is a new need.
 2010-09-08  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: improve documentation of reliability and security issues
-
        * doc/tar.texi (Reliability and security, Reliability):
        (Permissions problems, Data corruption and repair, Race
        conditions):
 2010-09-06  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: more reliable directory traversal when creating archives
-
        * NEWS: Document this.
        * gnulib.modules: Add openat, readlinkat.
        * src/common.h (open_read_flags, fstatat_flags): New global
 2010-09-05  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: remove lint discovered by Sun C compiler
-
        * src/common.h (WARN_ALL): Don't mask with 0xffffffff; on a 32-bit
        host, 0xffffffff is of type 'unsigned int', which makes WARN_ALL
        an unsigned int value that is too large to fit into an int, and
 2010-09-04  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: restore macros that are used in some cases
-
        * src/tar.c (LOW_DENSITY_NUM, MID_DENSITY_NUM, HIGH_DENSITY_NUM):
        Restore these macros, undoing the previous change to this file.
        The macros are used after all, in some cases.  Sorry about that.
 2010-09-03  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: remove unused macros
-
        * src/create.c (UINTMAX_TO_CHARS): Remove; no longer used.
        * src/tar.c (LOW_DENSITY_NUM, MID_DENSITY_NUM, HIGH_DENSITY_NUM):
        Likewise.
 2010-08-27  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix --remove-files in update/append mode.
-
        * src/update.c (update_archive): Call finish_deferred_unlinks when
        done.
 
 
        tar: avoid assumptions about root access and chmod -w in test
        cases
-
        * tests/extrac07.at, tests/extrac09.at, tests/listed03.at: Use
        AT_UNPRIVILEGED_PREREQ, since this test requires non-root
        privileges.
        portable to start a chmod permissions-list with "-" as it may be
        confused with an option.  Use "chmod a-w" instead.
 
-2010-08-26  Paul Eggert  <eggert@cs.ucla.edu>
-
        tar: fix bug with -C and delayed setting of metadata
-
        * src/common.h (chdir_current): New decl.
        * src/extract.c (struct delayed_set_stat, struct delayed_link):
        New member change_dir.
 2010-08-25  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Don't apply file transformations to volume names.
-
        * src/list.c (decode_header): Don't apply file transformations
        to volume names.
        * tests/xform01.at: New testcase.
 2010-08-25  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: optimize -c --sparse when file is entirely sparse
-
        * src/sparse.c (sparse_scan_file): If the file is entirely sparse,
        that is, if ST_NBLOCKS is zero, don't bother scanning for nonzero
        blocks.  Idea by Kit Westneat, communicated by Bernd Schubert in
        <http://lists.gnu.org/archive/html/bug-tar/2010-08/msg00038.html>.
        Also, omit unnecessary lseek at start of file.
 
-2010-08-25  Paul Eggert  <eggert@cs.ucla.edu>
-
        tar: don't assume size of a sparse file chunk fits in size_t
-
        * src/tar.h (struct sp_array): Change numbytes from size_t
        to off_t.
        All uses changed.
        * src/xheader.c (sparse_numbytes_decoder, sparse_map_decoder):
        Likewise.
 
-2010-08-25  Paul Eggert  <eggert@cs.ucla.edu>
-
        tar: use ctime, not mtime, when checking placeholders
-
        * src/extract.c (struct delayed_link): Rename member mtime
        to ctime.
        All uses changed to use ctime rather than mtime.
 2010-08-24  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: add comment to link04.at test
-
        * tests/link04.at: Add explanatory comment at head.
 
-2010-08-24  Paul Eggert  <eggert@cs.ucla.edu>
-
        tar: fix 1.23 Solaris regression related to PRIV_SYS_LINKDIR
-
        The idea was suggested by Petr Sumbera in the thread starting
        here:
        http://lists.gnu.org/archive/html/bug-tar/2010-08/msg00000.html
        Invoke priv_set_restore_linkdir before execv or execlp, so that
        the subprocess has the same privileges that tar originally did.
 
-2010-08-24  Paul Eggert  <eggert@cs.ucla.edu>
-
        tar: handle files that occur multiple times but have link count 1
-
        This patch was inspired by the following patch that addressed a
        similar problem in GNU coreutils du:
        http://git.savannah.gnu.org/gitweb/?p=coreutils.git;h=efe53cc72b599979ea292754ecfe8abf7c839d22
 2010-08-23  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: use nlink_t for link counts
-
        * src/create.c (struct link): nlink is now of type nlink_t,
        not size_t.
 
-2010-08-23  Paul Eggert  <eggert@cs.ucla.edu>
-
        tar: don't export names that aren't used elsewhere
-
        * src/common.h (file_dumpable_p, gid_to_chars, major_to_chars):
        (minor_to_chars, mode_to_chars, uid_to_chars, uintmax_to_chars):
        (string_to_chars, dumpdir_creat0, dumpdir_create, dumpdir_free):
        * src/tar.c (request_stdin): Now static.
        * src/xheader.c (xheader_init): Now static.
 
-2010-08-23  Paul Eggert  <eggert@cs.ucla.edu>
-
        tar: fix misspelled identifier "set_comression_program_by_suffix"
-
        * src/suffix.c (set_compression_program_by_suffix): Renamed from
        set_comression_program_by_suffix.
        * src/buffer.c, src/common.h, src/tar.c: All uses changed.
 2010-08-20  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: change interdir_made from int to bool
-
        * src/extract.c (maybe_recoverable, create_placeholder_file):
        Change interdir_made from int * to bool *, since the flag has just
        two values 0 and 1.  All uses changed.  This does not affect tar's
        behavior.
 
-2010-08-20  Paul Eggert  <eggert@cs.ucla.edu>
-
        tar: remove trailing white space from source files
-
        * ChangeLog.1, ChangeLog.CVS, Makefile.am, NEWS, README:
        * README-hacking, directory, doc/Makefile.am, doc/dumpdir.texi:
        * doc/gendocs_template, doc/intern.texi, doc/mastermenu.el:
 2010-08-19  Paul Eggert  <eggert@cs.ucla.edu>
 
        tar: update licenses to latest versions from www.gnu.org
-
        * COPYING: Update to latest version; this is just minor
        formatting.
        * doc/fdl.texi: Update from GFDL 1.2 to 1.3.
 2010-07-18  Paul R. Eggert  <eggert@cs.ucla.edu>
 
        tar: no need to report getcwd error if never using the result
-
        * src/misc.c (struct wd): Rename 'saved' to 'err', with new
        semantics.
        (chdir_arg, chdir_do): Adjust to new semantics.  Do not report an
        * tests/testsuite.at: Include it.
        * tests/Makefile.am (TESTSUITE_AT): Add it.
 
-2010-07-18  Paul R. Eggert  <eggert@cs.ucla.edu>
-
        tar: go back to absolutifying filenames in normalize_filename
        for now
-
        * src/misc.c (normalize_filename): For now, go back to making
        filenames absolute, even though this causes 'tar' to fail when
        getcwd fails.  However, do not attempt to resolve ".." as this
 2010-07-17  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Allow for size suffixes in -L and --record-size options.
-
        * src/tar.c (TAR_SIZE_SUFFIXES): New define.
        (parse_opt): Allow for size suffixes in arguments to
        -L and --record-size options.
 2010-07-15  Paul R. Eggert  <eggert@cs.ucla.edu>
 
        tar: don't crash if getcwd fails
-
        * src/extract.c: Don't include xgetcwd.h.
        (extract_dir): stat "." rather than statting getcwd's output.
        * src/misc.c (normalize_filename_x): Rewrite so as not to resolve
 
        Keep a detailed map of archive members stored in the record
        buffer.
-
        A separate map (bufmap) provides information for creating
        multi-volume continuation headers.
-
        * src/buffer.c (bufmap): New struct.
        (bufmap_head, bufmap_tail, inhibit_map): New variables.
        (mv_begin_write): New function.
        (mv_size_left): Update bufmap_head.
        (mv_end): Rewrite.
        (multi_volume_sync): Remove.
-
        * src/common.h (mv_begin_write): New prototype.
        (mv_begin): Rename to mv_begin_read.
        * src/create.c: Use mv_begin_write instead of mv_begin.
        Remove calls to mv_size_left and mv_end.
        * src/sparse.c: Likewise.
-
        * tests/multiv07.at: Close stdin.
        * tests/spmvp00.at: Update AT_KEYWORDS.
        * tests/spmvp10.at: Likewise.
-
        * tests/multiv08.at: New testcase.
        * tests/Makefile.am, tests/testsuite.at: Add multiv08.at.
 
-2010-07-11  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Version 1.23.90
-
        * NEWS, configure.ac: Version 1.23.90
        * doc/tar.texi: Document the use of lbzip2.
 
 
        Fix exclusion of long file names when extracting from pax format
        archives.
-
        * src/list.c (read_and): Call decode_header before attempting
        name_match.
        (list_archive): Remove call to decode_header.
-
        * src/compare.c (diff_archive): Remove call to decode_header.
        * src/extract.c (extract_archive): Likewise.
-
        * test/exclude06.at: New test case.
        * tests/testsuite.at: Include exclude06.at.
        * tests/Makefile.am (TESTSUITE_AT): Add exclude06.at.
 
-2010-06-28  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Minor fix.
-
        * src/buffer.c (magic): Split the character constant to help
        cc recognize character boundaries (7 is a valid hex character).
 
 2010-06-27  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fix.
-
        * src/buffer.c (magic): Fix xz magic.
 
 2010-06-16  Paul Eggert  <eggert@cs.ucla.edu>
 
        Remove some lint, found by gcc -W etc.
-
        * src/common.h (label_notfound): New decl.
        * src/buffer.c (set_volume_start_time, compress_type):
        (guess_seekable_archive, open_compressed_archive, init_buffer):
        _single_transform_name_to_obstack):
        (_transform_name_to_obstack): Likewise.
        * src/unlink.c (dunlink_alloc): Likewise.
-
        * src/buffer.c (struct zip_magic): Use const when appropriate.
        * src/incremen.c (obstack_code_rename,
        write_directory_file_entry):
        * src/system.c (dec_to_env, time_to_env, oct_to_env, str_to_env):
        (chr_to_env): Likewise.
        * src/tar.c (tar_list_quoting_style, set_stat_signal): Likewise.
-
        * src/extract.c (extract_node): Don't return garbage.
-
        * src/names.c: Remove old-style declarations of getgrnam etc.
        All modern systems declare these, and it's not worth the hassle
        of ignoring the warnings on modern systems for old-style decls.
 2010-05-17  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Bugfix.
-
        * src/incremen.c (make_directory): Retain the slash if it is the
        only character in a filename.
 
 2010-04-01  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix the gzip.at test case.
-
        * tests/gzip.at: Suppress gzip error output, as it can differ
        depending on its version etc. Bug reported by Ludovic Courtès.
 
 2010-03-28  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        New option --full-time.
-
        * src/common.h (full_time_option): New global.
        * src/tar.c (FULL_TIME_OPTION): New constant.
        (options): New option --full-time.
 2010-03-27  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fixes in the testsuite.
-
        * tests/extrac07.at: Fix a typo (invalid number
        of arguments before format list).
        * tests/link02.at: Use `ln' instead of `link'.
        * tests/link03.at: Likewise.
 
-2010-03-27  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Fix coredump.
-
        * src/names.c (collect_and_sort_names): Remove
        entry from the table before freeing it.
 
-2010-03-27  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Fix dead loop on extracting existing symlinks with the -k option.
-
        * src/extract.c (create_placeholder_file)
        (extract_link, extract_symlink)
        (extract_node, extract_fifo): Handle all possible
 2010-03-20  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix undesired error exit on receiving SIGPIPE.
-
        * src/tar.c: Do not ignore SIGPIPE.
        * tests/sigpipe.at: New testcase.
        * tests/Makefile.am, tests/testsuite.at: Add sigpipe.at
 2010-03-17  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix --remove-files.
-
        Tar --remove-files relied on canonicalize_file_name,
        which replaces symlinks in file name components with
        the directories they point to. Due to this, tar
        effectively ignored existence of symbolic links and
        was unable to remove a directory that contained any
        (Alexander Kozlov <akozlov@nada.kth.se>, 2010-03-15).
-
        * gnulib.modules: Remove canonicalize.
        * src/misc.c (normalize_filename): Rewrite
        from scratch. The function operates only on
 2010-03-12  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Bugfixes.
-
        * src/buffer.c (check_label_pattern): Initialize result.
        * tests/remfiles01.at: Skip if run with root privileges.
 
 2010-03-11  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix `--test-label' and `--label -r' behavior.
-
        * doc/tar.texi (Including a Label in the Archive): Revise
        the section.
        * NEWS: Update
-
        * src/buffer.c (open_archive): Check volume label on
        ACCESS_UPDATE as well.
        * src/list.c (test_archive_label): Rewrite to match the
        * src/names.c (regex_usage_warning): Return int.
        (names_notfound): Rewrite the conditional.
        (label_notfound): New function.
-
        * tests/label03.at: New testcase.
        * tests/label04.at: New testcase.
        * tests/label05.at: New testcase.
        * tests/Makefile.am: Add new testcases.
        * tests/testsuite.at: Likewise.
 
-2010-03-11  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Doc fixes.
-
        * doc/tar.texi: Consistently use lowercase `see' within sentences.
        More fixes spotted by Denis Excoffier.
        * THANKS: Update.
 
-2010-03-11  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Shut up a gcc warning message.
-
        * src/tar.c (tar_help_filter): Use a separate const
        variable to hold returns from gettext. Reported by
        Peter Breitenlohner.
 
-2010-03-11  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Bugfix.
-
        * src/names.c (collect_and_sort_names): Initialize prev_name.
        Reported by Dmitry V. Levin.
 
 2010-03-10  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Version 1.23
-
        * configure.ac, NEWS: Update version number.
 
-2010-03-10  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Doc changes.
-
        * NEWS: Update.
        * THANKS: Update.
        * doc/snapshot.texi, doc/snapshot.texi,
 2010-03-08  Kamil Dudka  <kdudka@redhat.com>
 
        Fix possible overflow in code_timespec (tiny change)
-
        * src/misc.c (code_timespec): ignore invalid values of ns
 
 2010-03-08  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fix in the testsuite.
-
        * tests/extrac05.at: Skip test if creating
        sparse file fails.
 
-2010-03-08  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Fix eventual memory override and fd exhaustion in create.c Both
        bugs reported by Kamil Dudka.
-
        * src/create.c (check_exclusion_tags): Do not keep
        pointer to a location within tagname: it may change
        after xrealloc. Use byte offset instead.
 2010-03-02  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor change.
-
        * doc/tar.texi: Improve some wording.
 
 2010-03-02  Antonio Diaz Diaz  <ant_diaz@teleline.es>
 
        Add Lzip support
-
        * configure.ac: Add TAR_COMPR_PROGRAM(lzip)
        * doc/tar.texi: Reflect lzip support.
        * src/buffer.c (compress_type) <ct_lzip>: New constant.
 2010-03-02  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fix.
-
        * tests/exclude05.at: Rewrite awk invocation to avoid
        overflowing awk's file table on Solaris.
 
 2010-03-02  Eric Blake <ebb9@byu.net>
 
        Fix large file support.
-
        * scripts/xsparse.c (read_map): Use fseeko.
        * src/incremen.c (write_directory_file): Likewise.
 
 2010-03-02  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Bugfix
-
        * src/buffer.c (seek_archive): Rewrite size computation
        to prevent it from reaching negative values. Based on
        report by Denis Excoffier <Denis.Excoffier@free.fr>.
 2010-02-25  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Supply more information to the --to-command script.
-
        * src/system.c (stat_to_env): Pass information about the current
        volume in variables TAR_ARCHIVE, TAR_VOLUME, TAR_BLOCKING_FACTOR,
        TAR_FORMAT.
 2010-02-17  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor change.
-
        * src/names.c (regex_usage_warning): Fix warning message.
 
 2010-02-05  Sergey Poznyakoff  <gray@gnu.org.ua>
 2010-02-05  OndÅ™ej VaÅ¡Ă­k  <ovasik@redhat.com>
 
        Bugfix (tiny change)
-
        * src/xheader.c (xheader_read): Remove unnecessary call
        to xheader_init.
 
 2010-01-26  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Enable silent build mode.
-
        * configure.ac: Require automake 1.11, autoconf 2.63. Enable
        silent rules.
        * NEWS: Update.
 2010-01-25  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Read POSIX multivolume archives split at the header boundary.
-
        * src/common.h (read_header_mode): New enum.
        (read_header): Change type of the 3rd argument.
        * src/list.c (read_header): Change type of the 3rd argument.
        * src/buffer.c (try_new_volume): Allow for volumes split at the
        extended/ustar header boundary. This is against POSIX specs, but
        we must be able to read such archives anyway.
-
        * tests/multiv07.at: New test case.
        * tests/Makefile.am: Add multiv07.at
        * tests/testsuite.at: Likewise.
-
        * src/compare.c: Update calls to read_header.
        * src/delete.c: Likewise.
        * src/update.c: Likewise.
 2010-01-24  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor change.
-
        * NEWS: Update.
        * doc/tar.texi: Update.
        * src/create.c (finish_header): Minor change.
 2010-01-24  Rob Vermaas  <rob.vermaas@gmail.com>
 
        Bugfix (tiny change).
-
        * src/tar.c (format_default_settings)[REMOTE_SHELL]: Fix
        misplaced comma.
 
 2010-01-24  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fix.
-
        * src/incremen.c (read_incr_db_01)
        (read_directory_file): Initialize bufsize to 0.
        Suggested by noordsij@cs.helsinki.fi.
 
-2010-01-24  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Improve handling of --test-label.
-
        * src/list.c (print_volume_label): New function.
        (print_header): Call print_volume_label.
        (test_archive_label): New function.
        (parse_opt): Set subcommand if --test-label is given.
        (main): Handle TEST_LABEL_SUBCOMMAND.
 
-2010-01-24  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Fix listing of volume labels (in particular in PAX archives).
-
        * src/buffer.c (match_volume_label): Call set_volume_label.
        (check_label_pattern): Get label string
        as argument.
        updated.
        (decg): If XHDR_GLOBAL bit is set, call the keyword's decode
        method instead of adding it to `kwl'.
-
        * src/compare.c: Update calls to read_header.
        * src/create.c: Likewise.
        * src/delete.c: Likewise.
        because
        it is inconsistent: it is not printed if the volume begins with a
        member continued from the previous volume.
-
        * tests/label01.at: New testcase.
        * tests/label02.at: New testcase.
        * tests/Makefile.am, tests/testsuite.at: Add new testcases.
 2010-01-22  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix prefix length calculation in ustar mode.
-
        * src/create.c (split_long_name): Fix prefix length
        calculation.
        (write_ustar_long_name): Improve ustar mode compatibility
 2009-10-14  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Rewrite update algorithm.
-
        * src/common.h (namebuf_t): New typedef.
        (namebuf_create, namebuf_free)
        (namebuf_name): New prototypes.
        Instead of adding unmodified files to the avoided_name
        table, create namelist so that it contains only
        modified files.
-
        * tests/Makefile.am: Add update01.at, update02.at
        * tests/testsuite.at: Likewise.
        * tests/update.at (AT_KEYWORDS): Add update00.
 
-2009-10-14  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Minor changes.
-
        * src/tar.c (main): Ignore SIGPIPE.
        * src/system.c (sys_child_open_for_compress)
        (sys_child_open_for_uncompress): Reset SIGPIPE
        * tests/remfiles01.at: Avoid race conditions.
        * tests/remfiles02.at: Likewise.
 
-2009-10-14  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Bugfix.
-
        * src/buffer.c (_open_archive): Call guess_seekable_archive
        only if the call to open_compressed_archive succeeded.
 
 2009-10-10  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Improve previous changes.
-
        * acinclude.m4: Fix typos.
        * gnulib.modules: Add xvasprintf.
        * src/common.h: Include xvasprintf.h.
        (parse_opt): Use *_PROGRAM defines instead of hardcoded
        program names.
 
-2009-10-10  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Allow installers to specify alternative program names for
        compression programs.
-
        This adds --with-gzip, --with-bzip2 etc. switches to the
        configure, so that
        one can do, e.g. ./configure --with-bzip2=lbzip2 and have
        lbzip2 executed
        whenever user calls `tar --bzip2'.
-
        * acinclude.m4: New file.
        * configure.ac: Add TAR_COMPR_PROGRAM invocations for
        the supported compressors.
 2009-10-09  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fix.
-
        * src/buffer.c (magic): Fix `xz' entry: add the name of the
        program.
        * src/suffix.c (compression_suffixes, nsuffixes): Mark as static.
 
        Provide a way to explicitly set mtime for extended header
        ustar blocks.
-
        * src/tar.c (struct textual_date): ts is a copy of the structure,
        not a pointer to it. Date is a copy as well, hence the `const' is
        taken away.
        * NEWS: Update
        * doc/tar.texi: Document the changes.
 
-2009-10-07  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Use file's mtime as mtime for its extended header.
-
        This makes two pax archives binary equivalent if they
        have the same contents and care is taken to make extended
        headers otherwise reproducible, e.g. by using:
-
          --pax-option=exthdr.name=%d/PaxHeaders/%f,atime:=0
-
        Proposed by Michael D. Adams <mdmkolbe@gmail.com>.
-
        * src/common.h (start_private_header): Take time_t as 3rd param.
        (xheader_write): Likewise.
        * src/create.c (start_private_header): Take time_t as 3rd param.
        Use current time stamp as mtime for global headers.
        (xheader_write): Take time_t as 3rd param.
 
-2009-10-07  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Fix bugs in handling the --remove-files option.
-
-       Make sure the files are deleted only if they were succesfully
+       Make sure the files are deleted only if they were successfully
        stored
        to the archive.
-
        * src/exit.c: New file.
        * src/unlink.c: New file.
        * src/Makefile.am (tar_SOURCES): Add exit.c and unlink.c.
        instead of setting program_name directly.
        * src/tar.c (main): Use set_program_name,
        instead of setting program_name directly.
-
        * tests/Makefile.am (TESTSUITE_AT): Add remfiles01.at
        and remfiles02.at.
        * tests/testsuite.at: Likewise.
 2009-10-04  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix bug in OLDGNU format creation.
-
        See tests/append02.at for a detailed description
-
        * src/common.h (MODE_FROM_HEADER): Take additional argument.
        (mode_from_header): Likewise.
        * src/create.c (mode_to_chars): Store all mode bits if
 2009-09-16  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Restore extra help output.
-
        * src/tar.c (tar_list_quoting_styles): Change first argument to
        struct obstack.
        (format_default_settings): New function.
 2009-09-08  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Improve command line option handling.
-
        * gnulib.modules: Add argp-version-etc and progname,
        use getopt-gnu instead of getopt.
        * src/tar.c (HANG_OPTION, USAGE_OPTION)
        (decode_options): Call argp_version_setup.
        Do not use ARGP_NO_HELP flag in the call to argp_parse.
 
-2009-09-08  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Avoid overwriting exit_status with a value indicating less
        important condition.
-
        * src/tar.c (set_exit_status): New function.
        * src/common.h (set_exit_status): New prototype.
        * src/compare.c: Use set_exit_status instead of
        exit_status assignments.
        * src/create.c: Likewise.
        * src/misc.c: Likewise.
-
        * src/system.c (wait_for_grandchild): Use auto variable
        instead of the global exit_status.
        * src/incremen.c (scan_directory): Use file_removed_diag
        instead of stat_diag.
 
-2009-09-08  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Automatic detection of seekable archives.
-
        * src/buffer.c (guess_seekable_archive): New function.
        (_open_archive): Call guess_seekable_archive for archives
        open for reading.
        (parse_opt): --seek and --no-seek set seek_option,
        not seekable_archive.
        (decode_options): Initialize seek_option to -1.
-
        * NEWS: Update.
        * doc/tar.texi: Update.
 
 2009-08-27  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix testcases.
-
        * tests/extrac08.at: Ensure a predictable umask value.
        * tests/xform-h.at (xform): do not depend on file name
        ordering.
 2009-08-13  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix interaction between --listed-incremental and -C
-
        * src/incremen.c (read_directory_file): Execute eventual -C dir
        after opening the snapshot file.
        (collect_and_sort_names): Remove call to chdir_do
 
        Update for new exclude module from gnulib. Add testcases by
        Phil Proudman.
-
        * src/names.c (is_pattern): Remove.
        (regex_usage_warning): Use fnmatch_pattern_has_wildcards
        instead of
 2009-08-09  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fixes.
-
        * src/misc.c (file_removed_diag): Set exit code to
        TAREXIT_DIFFERS.
 
 
        Minor fixes
 
-2009-08-08  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Fix handling of files removed during incremental dumps.
-
        Changes to src/create.c and src/incremen.c are partially
        based on patch from Alexander Peslyak <solar at openwall.com>.
-
        The new testcases require paxutils commit f653a2b or later.
-
        * src/common.h (struct name): New member `cmdline'.
        (dump_file): Change type of the 2nd argument to bool.
        (file_removed_diag, dir_removed_diag): New prototypes.
        * src/names.c (name_gather): Set ->cmdname.
        (addname): Likewise. All uses updated.
        (name_from_list): Return struct name const *. All uses updated.
-
        * tests/filerem01.at: New testcase.
        * tests/filerem02.at: New testcase.
        * tests/Makefile.am, tests/testsuite.at: Add filerem01.at,
        filerem02.at
        * tests/grow.at, test/truncate.at: Use new syntax for genfile
        --run.
-
        * NEWS: Update.
        * doc/tar.texi: Minor fix.
 
-2009-08-08  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Optimize searches for directory structures by keeping a pointer
        to struct directory in struct name.
-
        * src/common.h (struct name): New member `directory' replaces
        dir_contents. Rearrange members.
        (rebase_directory): Change signature.
        directory_contents.
        (rebase_child_list): Update call to rebase_directory.
        (collect_and_sort_names): Optimize
-
        * src/misc.c (replace_prefix): New function.
        * src/names.c (add_hierarchy_to_namelist): Use new
        get_directory_contents.
-
        * tests/incr05.at: New test case.
        * tests/incr06.at: New test case.
        * tests/Makefile.am, test/testsuite.at: Add incr05.at and
        incr06.at.
-
        * doc/Makefile.am (check-options): Improve rule.
        * doc/tar.texi, NEWS: Update.
 
 2009-08-07  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fixes.
-
        * src/common.h (rebase_directory): New prototype.
        * src/incremen.c (rebase_directory): Use replace_prefix.
        * src/names.c (collect_and_sort_names): Abort if
        hash_insert fails.
 
-2009-08-07  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Improve listed incremental dumps.
-
        The modified algorithm tries to avoid dumping the same
        directory twice and ensures the order of the directories
        in the resulting archive is the same, whatever their order
        on the command line.  It also fixes the operation of
        --listed-incremental -C.
-
        * gnulib.modules: Add canonicalize
        * src/common.h (incremental_level): New global.
        (check_exclusion_tags): first argument is const.
        get_directory_contents.
        * src/create.c (check_exclusion_tags): First argument is const.
        Use ISSLASH and DIRECTORY_SEPARATOR instead of referring to '/'.
-
        * src/incremen.c (struct directory): New member `caname'.
        (hash_directory_name): Rename to
        hash_directory_canonical_name. Operate
        Avoid adding the same directory under different pathnames to
        the list.
        * src/tar.c: New option --level.
-
        * tests/incr03.at, tests/incr04.at, tests/listed01.at,
        tests/listed02.at, tests/rename01.at, tests/rename02.at,
        tests/rename03.at: Update for new tar behavior.
 
        Forgotten to push src/warning.c
 
-2009-08-05  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Implement the --warning option.
-
        * src/warning.c: New file.
        * src/Makefile.am: Add warning.c
        * src/common.h: Provide definitions for warning classes.
        * src/extract.c: Likewise.
        * src/incremen.c: Likewise.
        * src/list.c: Likewise.
-
        * NEWS, doc/tar.texi: Update.
 
 2009-08-05  Carl Worth <cworth@cworth.org>
 
        Fix backup handling and restoring file modes of existing
        directories
-
        * NEWS, THANKS: Update
        * src/extract.c (extract_dir): reset status to 0 if the
        directory already exists.
 2009-07-30  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix hard links recognition with -c --remove-files
-
        * src/create.c (dump_hard_link): Always look up in the link table
        if remove_files_option is set. Patch suggested by Theodore Ts'o
        <tytso@mit.edu>.
        * tests/Makefile.am (TESTSUITE_AT): Add link02.at and link03.at
        * tests/testsuite.at: Include link02.at and link03.at
 
-2009-07-30  Sergey Poznyakoff  <gray@gnu.org.ua>
-
        Fix handling of hard link targets by -c --transform
-
        * src/create.c (file_count_links): Transform link target
        before the look up.
        * tests/xform-h.at: New test case.
 2009-06-23  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Minor fix.
-
        * src/extract.c (file_newer_p): Do not report error on ENOENT
 
 2009-06-19  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix Solaris bug where chmod fails if we don't have
        PRIV_SYS_LINKDIR
-
        * gnulib.modules: Add priv-set.
        * src/extract.c (set_mode, extract_archive): Restore
        PRIV_SYS_LINKDIR on chmod failure.
 2009-06-18  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Ensure default behavior for SIGPIPE
-
        * src/tar.c (main): Install default handler for SIGPIPE.
        Proposed by Bastian Blank.
 
 2009-06-18  Eric Blake <ebb9@byu.net>
 
        Follow autoconf recommendation for TESTSUITEFLAGS.
-
        * tests/Makefile.am (check-local, installcheck-local): Honor
        TESTSUITEFLAGS.
 
 2009-06-18  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Fix handling of sub-subprocess returns.
-
        * src/system.c (wait_for_grandchild): New function.
        (sys_child_open_for_compress)
        (sys_child_open_for_uncompress): Use wait_for_grandchild
 2009-05-25  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Report record size only if the archive refers to a device.
-
        * Makefile.am (INCLUDES): Add ../lib, for rmt-command.h
        * src/buffer.c (short_read): Report the actual record size
        only if the archive descriptor refers to a device.
 2009-05-14  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Do not issue errors on existing files when given the -k option
-
        * Makefile.am (dist-hook): Fix rule.
        * src/extract.c (maybe_recoverable): Return three-state value.
        (extract_dir): Skip extraction if maybe_recoverable indicates so.
 2009-05-12  Eric Blake <ebb9@byu.net>
 
        Avoid undefined behavior
-
        * src/xheader.c (xheader_set_keyword_equal): Pass correct type to
        ctype macros.
        * src/transform.c (run_case_conv): Likewise.
 2009-03-12  Sergey Poznyakoff  <gray@gnu.org.ua>
 
        Bugfixes.
-
        * bootstrap (symlink_to_dir): Fix symlink calculation.
        * doc/tar.texi: Minor fixes by Victor Villa and Stepan Kasal.
 
@@ -4727,7 +5430,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
        this has undefined behavior.  Likewise for assigning arbitrary
        uintmax_t values to other types.
        (read_negative_num, read_unsigned_num, read_timespec):
-       New functions, to check input values a bit more carefuly.
+       New functions, to check input values a bit more carefully.
        (read_num): Use read_unsigned_num.  New arg MAX_VAL;
        all callers changed.
        (read_incr_db_2): Use these new functions.
@@ -4907,7 +5610,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
        * src/delete.c: Remove second argument from calls to name_scan
        * src/update.c: Likewise
        * src/incremen.c (procdir): Use is_individual_file to check for
-       files explicitely specified in the command line. Fixes bug
+       files explicitly specified in the command line. Fixes bug
        reported by Dat Head on 19 Jun 2006 (descending into mountpoints
        with --one-file-system in use)
        * src/misc.c (maybe_backup_file): Second argument is bool
@@ -4966,7 +5669,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
        * src/delete.c (records_skipped): Remove static qualifier, the
        variable is used by print_total_stats in buffer.c
        * src/extract.c (check_time): Use volume_start_time when checking
-       for timestamp plausability.
+       for timestamp plausibility.
        * src/tar.c: (options, parse_opt): Allow for optional argument to
        the --totals option, which specifies a signal upon delivery of which
        the statistics must be output.
@@ -5024,7 +5727,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
        * src/transform.c (set_transform_expr,_transform_name_to_obstack):
        Implement NUMBER flag.
-       (add_char_segment): Fix length assignement
+       (add_char_segment): Fix length assignment
 
        * doc/tar.texi: Update
 
@@ -5081,7 +5784,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
        * doc/tar.texi: Update
        * configure.ac (AM_INIT_AUTOMAKE): Use tar-ustar option. Raise
        version requirement to 1.9
-       * src/common.h (struct name): Refactured
+       * src/common.h (struct name): Refactored
        (warn_regex_usage): New variable.
        (dump_file): First argument is const char*.
        (name_init,name_add): Removed
@@ -5456,13 +6159,13 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
        * src/common.h (struct name): New member `explicit'. Remove unused
        member `isdir'.
        * src/incremen.c (procdir): If name_scan() returns something,
-       check if it was explicitely given in the command line
+       check if it was explicitly given in the command line
        * src/names.c (addname,add_hierarchy_to_namelist): Initialize
        explicit member appropriately.
 
        * src/incremen.c (procdir): If --one-file-system is given and a
        directory is found to be on another device, *and* this directory
-       is explicitely given in the command line, then do not omit it.
+       is explicitly given in the command line, then do not omit it.
 
 2005-12-11  Sergey Poznyakoff  <gray@gnu.org.ua>
 
@@ -5497,7 +6200,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
        (mode_to_chars, off_to_chars, size_to_chars, time_to_chars)
        (uid_to_chars, uintmax_to_chars): Return bool
        (to_chars): Return bool
-       (start_header): Check return values of convertion routines. Fail
+       (start_header): Check return values of conversion routines. Fail
        if unable to store data in the header.
 
 2005-12-07  Sergey Poznyakoff  <gray@gnu.org.ua>
@@ -5797,13 +6500,13 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
        archives.
        * src/incremen.c (dumpdir_size, get_gnu_dumpdir): New functions.
        (purge_directory): Use stat_info.dumpdir instead of getting its
-       value explicitely.
+       value explicitly.
        * src/list.c (list_archive): Handle incremental backups in pax
        format.
        (decode_header): Initialize stat_info.dumpdir
        * src/sparse.c (sparse_diff_file): Bugfix: set seekable.
        (pax_dump_header): Store sparse map in GNU.sparse.map. If this
-       variable has been explicitely deleted, use GNU.sparse.offset/
+       variable has been explicitly deleted, use GNU.sparse.offset/
        GNU.sparse.numbytes variables.
        * src/tar.c (decode_options): Incremental options are allowed with
        --format=pax
@@ -5881,7 +6584,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
        * bootstrap: Fix quoting in help output.
        (update_po): Use backward-compatible wget option --cache instead
-       of deprecated -C to accomodate for wget 1.10.
+       of deprecated -C to accommodate for wget 1.10.
        Changes proposed by Eric Blake
        * THANKS: Add Eric Blake
 
@@ -6432,7 +7135,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
        * src/list.c: Likewise
 
        * tests/multiv03.at: Modified to match the new behavior
-       * tests/multiv04.at: New file. Test splittind directory members between
+       * tests/multiv04.at: New file. Test splitting directory members between
        the archive volumes.
        * tests/Makefile.am: Add multiv04.at
        * tests/testsuite.at: Likewise.
@@ -8186,7 +8889,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
        * src/create.c: Do not zero-terminate name field if
        the name is exactly 100 characters long.
-       (write_ustar_long_name): Fixed cheking for unsplittable
+       (write_ustar_long_name): Fixed checking for unsplittable
        names.
 
 2003-11-14  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
@@ -8883,7 +9586,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
        interface.
        (child_open_for_compress): Do not increase size to BLOCKSIZE.
        (open_archive): Open index file name.
-       Strip trailing slahes from file names.
+       Strip trailing slashes from file names.
        (flush_write): Set size to 0 if not saving names.
        (flush_write, flush_read): Use safer_name_suffix rather than
        inline code.
@@ -9716,7 +10419,7 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
        (decode_options): Dates that look like an absolute path name,
        or that start with '.', are presumed to be file names whose
        dates are taken.
-       Remove 'I' as an aliase for 'T'.
+       Remove 'I' as an alias for 'T'.
        Update copyright.
 
        * src/extract.c (<time.h>): Do not include; system.h now does this.