]> Dogcows Code - chaz/tar/blobdiff - ChangeLog
Carefully crafted invalid headers can cause buffer overrun.
[chaz/tar] / ChangeLog
index 0be0c7d0a305c53e028abb50c679f653ac0ed1bc..14e01a7a69a6abb2c9a6b0f586c00eb15bb94344 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
+2005-06-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Further improvements inspired by Jim Meyering's fixes.
+
+       * NEWS: Better support for full-resolution time stamps.
+       The -v option now prints time stamps only to 1-minute resolution.
+       * gnulib.modules: Add utimens.
+       * lib/.cvsignore: Add imaxtostr.c, inttostr.c, inttostr.h,
+       offtostr.c, umaxtostr.c, utimens.c, utimens.h.  Remove paxconvert.c.
+       * lib/Makefile.tmpl (libtar_a_SOURCES): Remove paxconvert.c.
+       * lib/paxconvert.c: Remove; superseded by umaxtostr.c.
+       * po/POTFILES.in: Remove lib/paxconvert.c.  Add lib/xalloc-die.c,
+       lib/obstack.c.
+       * src/buffer.c (set_start_time, compute_duration, start_time):
+       Use gettime rather than rolling our own code.
+       * src/common.h (OLDGNU_NAME_FIELD_SIZE, MAXOCTAL11, MAXOCTAL7): Remove.
+       (newer_ctime_option): Remove.
+       (timespec_lt): New function.
+       (OLDER_STAT_TIME): Use it.
+       (string_to_chars): First arg is char const *, not char *.
+       (tartime): Time arg is now struct timespec.  New bool arg.
+       All callers changed.
+       (code_ns_fraction): New decl.
+       (sys_stat_nanoseconds): Remove decl.
+       (get_stat_atime, get_stat_ctime, get_stat_mtime): New functions.
+       (set_stat_atime, set_stat_ctime, set_stat_mtime): New functions.
+       * src/compare.c: Include utimens.h rather than rolling our own.
+       (diff_dir, diff_file, diff_link, diff_symlink, diff_special):
+       Prototype.
+       (diff_dumpdir, diff_multivol): Prototype.
+       (diff_file): Support higher-resolution time stamps.
+       * src/create.c: Include utimens.h rather than rolling our own.
+       (MAX_OCTAL_VAL): New macro.
+       (tar_copy_str, string_to_chars): Don't bother to zero-fill;
+       the destination is already zeroed.
+       (string_to_chars): First arg is char const *.
+       (start_private_header): Use MINOR_TO_CHARS, not MAJOR_TO_CHARS,
+       for minor device number.
+       (write_header_name, dump_hard_link, dump_file0):
+       Simplify test for old GNU format.
+       (start_header): Put in placeholders for uid, etc., even when
+       using extended headers, for benefit of older "tar" implementations.
+       Don't assume uintmax_t is wider than 32 bits.
+       Output extended header for mtime if needed.
+       (dump_regular_finish, dump_file0):
+       Support extended time stamp resolution.
+       * src/extract.c: Include utimens.h rather than rolling our own.
+       (check_time): Support extended time stamp resolution.
+       * src/list.c: Include <inttostr.h>.
+       (tartime): Use umaxtostr rather than stringify_uintmax_t_backwards.
+       * src/xheader.c: Include <inttostr.h>.
+       Do not include <xstrtol.h>.
+       (strtoimax) [!HAVE_DECL_STRTOIMAX && !defined strtoimax]: New decl.
+       (strtoumax) [!HAVE_DECL_STRTOUMAX && !defined strtoumax]: New decl.
+       (BILLION, LOG10_BILLION): New constants.
+       (to_decimal): Remove; superseded by inttostr.  All callers changed
+       to use umaxtostr.
+       (xheader_format_name): Don't assume pids and uintmax_t values
+       fit in 63 bytes (!) when printed.
+       (decode_record): Don't bother to check for ERANGE; an out of range
+       value must be treater than len_max anyway.
+       If the length is out of range, output it in the diagnostic.
+       (format_uintmax): Remove; all callers changed to use umaxtostr.
+       (xheader_print): Don't assume sizes can be printed in 99 bytes (!).
+       (out_of_range_header): New function.
+       (decode_time): Use it.
+       (code_time): Accept struct timespec, not time_t and unsigned long.
+       All callers changed.  Size sbuf properly, and remove unnecessary check.
+       Don't assume time stamps can fit in 199 bytes.
+       Handle negative time stamps.  Handle fractional time stamps
+       more consistently.  Don't output unnecessary trailing zeros.
+       (decode_time): Yield struct timespec, not time_t and unsigned long.
+       All callers changed.
+       Handle negative time stamps.  Truncate towards minus infinity
+       consistently.  Improve overflow checks, and output a better
+       diagnostic on overflow.
+       (code_num): Don't assume uintmax_t can be printed in 99 bytes (!).
+       (decode_num): New function, for better diagnostics.
+       (atime_coder, atime_decoder, gid_decoder, ctime_coder):
+       (ctime_decoder, mtime_coder, mtime_decoder, size_decoder):
+       (uid_decoder, sparse_size_decoder, sparse_numblocks_decoder):
+       (sparse_offset_decoder, sparse_numbytes_decoder):
+       Use decode_num, etc., instead of xstrtoumax, etc.
+
+2005-06-21  Jim Meyering  <jim@meyering.net>
+
+       Carefully crafted invalid headers can cause buffer overrun.
+       Invalid header fields go undiagnosed.
+       Some valid time strings are ignored.
+
+       * src/xheader.c (sparse_numblocks_decoder): Remove unchecked use
+       of `calloc'.  Use xcalloc instead.
+       (decode_time, gid_decoder, size_decoder, uid_decoder):
+       (sparse_size_decoder, sparse_offset_decoder, sparse_numblocks_decoder):
+       Ensure that the result of calling xstrtoumax is no larger than
+       the maximum value for the target type.  Upon any failure, exit with
+       a diagnostic.
+       (sparse_numblocks_decoder): Avoid buffer overrun/heap corruption:
+       use x2nrealloc, rather than `n *= 2' and xrealloc(p, n,....
+       (decode_time): Rewrite to accept time strings like
+       1119018481.000000000.  Before, such strings were always ignored.
+
+2005-06-13  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/create.c (dump_file0): Check for is_avoided_name()
+       first. Fixes bug reported by Martin Lohmeier
+       <martin@mein-horde.de>
+       * tests/update.at: New file
+       * tests/Makefile.am (TESTSUITE_AT): Add update.at
+       * tests/testsuite.at: Likewise
+
+2005-06-13  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * configure.ac (AC_STRUCT_ST_BLKSIZE)
+       (AC_STRUCT_ST_BLOCKS): Removed. Handled by system.m4.
+
+2005-06-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/names.c (excluded_name): excluded_filename ->
+       excluded_file_name, because the name was changed in gnulib.
+
+2005-05-30  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/tar.c (read_name_from_file,update_argv): Automatically
+       detect nul-terminated list files.
+       * NEWS: Updated
+
+2005-05-27  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * scripts/backup.sh.in: Bugfixes.
+
+2005-05-26  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * scripts/backup.in: Minor fixes
+       * scripts/backup.sh.in (mt_begin,mt_rewind)
+       (mt_offline,mt_status): Use $MT to invoke mt
+       (init_common): Set --rsh-command option for mt if TAPE_FILE is a
+       remote archive.
+       * doc/tar.texi: Document new backup scripts behavior
+
+2005-05-22  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * lib/.cvsignore: Updated
+       * lib/Makefile.tmpl: Add new paxutils files
+       * po/POTFILES.in: Likewise
+       * src/buffer.c: Update invocations of safer_name_suffix()
+       * src/create.c: Likewise
+       * src/extract.c: Likewise
+       * src/xheader.c: Likewise
+       * src/common.h: Include paxlib.h instead of paxerror.h
+       (safer_name_suffix,removed_prefixes_p): Removed. The functions are
+       imported from paxutils
+       * src/names.c (hash_string_hasher,hash_string_compare)
+       (hash_string_insert,hash_string_lookup,removed_prefixes_p)
+       (safer_name_suffix): Moved to paxutils
+
+2005-05-19  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * bootstrap (copy_files): Accept optional third argument: a prefix
+       to be appended to destination file names.
+       Import paxutils/paxlib files.
+       * configure.ac: Remove checking for LIB_SETSOCKOPT, it is handled
+       by paxutils.
+       * lib/Makefile.tmpl (libtar_a_SOURCES): Add paxerror.c paxexit.c
+       paxconvert.c
+       * po/POTFILES.in: Likewise.
+       * src/common.h: Remove defines and declarations imported from
+       paxutils
+       * src/misc.c: Likewise
+       * src/list.c (stringify_uintmax_t_backwards): Moved to paxutils
+
+2005-05-17  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/misc.c (remove_any_file): Fix typo in previous change.
+
+2005-05-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Port to Solaris 10's treatment of unlinking directories.
+       * gnulib-modules: Add unlinkdir.
+       * lib/.cvsignore: Add unlinkdir.h, unlinkdir.c.
+       * src/common.h (we_are_root): Remove extern decl; it's now static.
+       * src/extract.c (we_are_root): Now static.
+       * src/misc.c: Include <unlinkdir.h>.
+       (remove_any_file): Use cannot_unlink_dir () rather than we_are_root.
+
+       * ChangeLog, ChangeLog.1, Makefile.am, NEWS, PORTS, README,
+       README-alpha, TODO, bootstrap, configure.ac, doc/Makefile.am,
+       doc/convtexi.pl, doc/fdl.texi, doc/gendocs_template,
+       lib/Makefile.tmpl, lib/prepargs.c, lib/waitpid.c, po/POTFILES.in,
+       scripts/Makefile.am, scripts/backup-specs, scripts/backup.in,
+       scripts/backup.sh.in, scripts/restore.in, src/Makefile.am,
+       src/arith.h, src/buffer.c, src/common.h, src/compare.c,
+       src/create.c, src/delete.c, src/extract.c, src/incremen.c,
+       src/list.c, src/mangle.c, src/misc.c, src/names.c, src/sparse.c,
+       src/system.c, src/tar.c, src/tar.h, src/update.c, src/utf8.c,
+       src/xheader.c, tests/Makefile.am, tests/append.at,
+       tests/append01.at, tests/comprec.at, tests/delete01.at,
+       tests/delete02.at, tests/delete03.at, tests/delete04.at,
+       tests/delete05.at, tests/extrac01.at, tests/extrac02.at,
+       tests/extrac03.at, tests/extrac04.at, tests/extrac05.at,
+       tests/gzip.at, tests/ignfail.at, tests/incremental.at,
+       tests/link01.at, tests/listed01.at, tests/listed02.at,
+       tests/long01.at, tests/longv7.at, tests/multiv01.at,
+       tests/multiv02.at, tests/multiv03.at, tests/multiv04.at,
+       tests/old.at, tests/options.at, tests/options02.at, tests/pipe.at,
+       tests/recurse.at, tests/same-order01.at, tests/same-order02.at,
+       tests/shortrec.at, tests/sparse01.at, tests/sparse02.at,
+       tests/testsuite.at, tests/truncate.at, tests/version.at,
+       tests/volume.at, tests/star/gtarfail.at, tests/star/gtarfail2.at,
+       tests/star/multi-fail.at, tests/star/pax-big-10g.at,
+       tests/star/quicktest.sh, tests/star/ustar-big-2g.at,
+       tests/star/ustar-big-8g.at:
+       Update FSF postal mail address.
+
+2005-05-12  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * NEWS: Updated
+       * THANKS: Updated
+       * bootstrap: Install files from paxutils/doc
+       * doc/Makefile.am (tar_TEXINFOS): Add genfile.texi
+       * doc/tar.texi (Genfile): New appendix
+       * src/compare.c (diff_file): diff_handle was not initialized
+       * src/create.c (dump_regular_file): Correctly pad archive members
+       that shrunk during archiving. Repored by Frank Heckenbach.
+       * src/extract.c (file_newer_p): Return false if file does not
+       exist
+       (prepare_to_extract): Correct warning wording.
+       * tests/truncate.at: New test case
+       * tests/Makefile.am: Add truncate.at
+       * tests/testsuite.at: Likewise.
+
+       * doc/.cvsignore: Updated
+       * lib/.cvsignore: Updated
+       * tests/.cvsignore: Updated
+
+2005-05-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * tests/multivol04.at: Tell awk to read from /dev/null.
+
+       Adjust to recent gnulib changes.
+       * lib/.cvsignore: Add dup-safer.c, fd-safer.c, unistd-safer.h.
+       * src/common.h (initial_umask): New var.
+       * src/create.c (start_ueader): Use it, and adjust to new modechange
+       API.
+       (hash_link): unsigned -> size_t parameters and result.
+       * src/incremen.c (hash_directory): Likewise.
+       * src/names.c (hash_string_hasher): Likewise.
+       * src/tar.c (parse_opt): Set it, and adjust to new modechange API.
+
+2005-04-19  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * tests/Makefile.am: Add shortrec.at.
+
+2005-04-18  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/buffer.c (reading_from_pipe): Remove.  All uses removed.
+       (short_read): Don't warn about short reads; they're normal.
+       * tests/shortrec.at: New file.
+       * tests/testsuite.at: Include it.
+
+       * bootstrap (gnulib_modules): Don't create a file modlist.tmp, as
+       it is sometimes left behind as a garbage file (maybe due to the
+       multiple traps?).
+
+2005-04-14  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/list.c: Handle Solaris 'X' type flag
+       * src/tar.h (SOLARIS_XHDTYPE): New define
+
+2005-04-06  Sergey Poznyakoff  <gray@mirddin.farlep.net>
+
+       * src/tar.c: Minor fixes to text messages. Proposed by Benno
+       Schulenberg.
+       * src/extract.c: Likewise
+       (extract_file): Assign orig_file_name
+       to save_name uniformly over the program. This fixes matching
+       directory names at the start of an archive volume.
+       * src/buffer.c (flush_write): Warn when the name of the archive
+       straddling volume boundary is longer than 100 characters. Earlier
+       behavior was to issue a fatal error.
+       (struct zip_magic): Reverted part of changes from 2005-04-04.
+       They make the maintenance too costly. Removing `unsigned'
+       qualifier from `magic' member should be enough.
+       * src/compare.c (diff_init): Read directory file if in listed
+       incremental. This prevents spurious 'Contents differ' diagnostics.
+       (diff_archive): Minor fixes to text messages
+       (diff_file,diff_dumpdir,diff_multivol): Assign orig_file_name
+       to save_name uniformly over the program. This fixes matching
+       directory names at the start of an archive volume.
+       * src/create.c: Assign orig_file_name
+       to save_name uniformly over the program. This fixes matching
+       directory names at the start of an archive volume.
+       * src/list.c: Likewise
+
+       * tests/multiv03.at: Modified to match the new behavior
+       * tests/multiv04.at: New file. Test splittind directory members between
+       the archive volumes.
+       * tests/Makefile.am: Add multiv04.at
+       * tests/testsuite.at: Likewise.
+
+2005-04-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * configure.ac (AC_CONFIG_AUX_DIR): Rename from config to build-aux,
+       for reasons discussed in the thread beginning at
+       <http://lists.gnu.org/archive/html/bug-gnulib/2005-03/msg00119.html>.
+       * .cvsignore: Remove config; add build-aux.
+
+       * src/buffer.c (struct zip_magic): Use char arrays, not pointers.
+       The unsigned char * pointer ran afoul of pedantic C compilers, and
+       we didn't need pointers anyway.  Put the size field before the
+       data to avoid unnecessary padding.  All uses changed.
+       (magic) Make it const, since it doesn't change.  All uses changed.
+
+2005-04-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/xheader.c (decode_record): Don't dump core when given
+       a corrupted extended header.  Problem reported by Jim Meyering.
+       Also, check for other ways that the header might be invalid,
+       e.g., missing newline at end.  Do not allow keys with nulls.
+       Allow blanks before and after length, as POSIX requires.
+       Do not allow leading "-" in length.  Check for length overflow.
+       (xheader_decode, xheader_decode_global): Let decode_record
+       check for exhaustion of record.
+       (xheader_read): Null-terminate the extended record;
+       decode_record relies on this.
+
+2005-03-21  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * bootstrap (TP_URL): Change from
+       <http://www2.iro.umontreal.ca/~gnutra/po/maint/tar/> to
+       <http://www.iro.umontreal.ca/translation/maint/tar/> to avoid
+       some redirection glitches.
+       Use "trap - 0" rather than "trap 0" to fix a POSIX-conformance bug.
+       * doc/.cvsignore: Change "tar.info" to "tar.info*".  Sort.
+       * lib/.cvsignore: Add intprops.h (new gnulib file).
+
+2005-03-04  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/list.c (print_header): Print UID/GID in case of
+       empty user/group name. This could occur when dumping
+       files belonging to non-existing users and when listing
+       broken archives.
+       Reported by Igor Lautar.
+
+       * src/create.c: Correctly parse empty uname/gname
+       * src/sparse.c (sparse_scan_file): Bugfix. offset had
+       incorrect type.
+
+       * scripts/backup.in: Use `head -n 1'. Provide missing
+       argument to ${MT_STATUS}. Proposed by Jan Merka.
+       * scripts/backup.sh.in: Likewise. Fixed typo in
+       MT_OFFLINE assignment.
+       * scripts/restore.in (restore_fs): Use root_fs
+
+2005-02-15  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/create.c: Replace strdup with xstrdup
+       * src/names.c: Likewise
+       * src/tar.c: Likewise
+
+       * tests/append01.at: Added reference to bug-tar archive
+       * tests/listed02.at: Use -print with find.
+
+2005-02-11  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * THANKS: Added Tim Adye. Fixed UTF.
+       * src/list.c (read_header): Removed assignment to
+       oldgnu_header.isextended. It was breaking append mode.
+
+       * tests/append01.at: New test.
+       * tests/Makefile.am: Added append01.at
+       * tests/testsuite.at: Likewise
+
+2005-02-06  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * gnulib.modules: New file. List of required gnulib
+       modules.
+       * bootstrap: Merge list of required modules from
+       paxutils with that from tar proper.
+       * src/tar.c: Various fixes in help and diagnostic messages.
+
+2005-02-05  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/common.h (EXTRACT_OVER_PIPE): New macro
+       * src/compare.c: Code clean up.
+       * src/extract.c (extract_archive): Do not check for
+       EXTRACT_OVER_PIPE, decode_options() does this.
+       * src/misc.c (exec_error,fork_error,dup2_error)
+       (pipe_error): Removed unneeded functions.
+       * src/system.c (sys_exec_command): Use xclose, xpipe,
+       xfork, xdup2 and exec_fatal.
+       * src/tar.c (options): Improved sorting. Document --backup=off.
+       (decode_options): Clear backup_option if necessary.
+
+2005-02-05  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       Initial implementation of --to-command option proposed
+       by Hansjoerg Lipp.
+
+       * bootstrap: Get setenv module from gnulib
+       * src/buffer.c: Do not use 8-bit chars in comments
+       * src/common.h (to_command_option)
+       (ignore_command_error_option): New globals
+       (sys_exec_command,sys_wait_command): New commands
+       * src/extract.c (extract_file): Handle to_command_option
+       Fix error recovery: decrease `size' by `written', not
+       by `count', otherwise tar misses the next header
+       Do not diagnose write error if to_command_option
+       is set, since the command may have exited prematurely.
+       It would be better to check for sigpipe, though.
+       (prepare_to_extract): Handle to_command_option
+       * src/misc.c (exec_error, fork_error, dup_error)
+       (pipe_error): New functions
+       * src/system.c (sys_exec_command)
+       (sys_wait_command): New functions
+       * src/tar.c: Handle new options --to-command,
+       --ignore-command-error
+       * THANKS: Added Hansjoerg Lipp
+
+2005-02-03  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/list.c (from_header): New arg OCTAL_ONLY, normally false.
+       All uses changed.  Fix typo that sometimes suppressed all "Archive
+       contains obsolescent base-64 headers" warnings, not just the first
+       one.
+       (tar_checksum): Accept only octal checksums, since they aren't
+       supposed to overflow into weird formats.
+
+       Adjust to gnulib changes.
+       * lib/.cvsignore: Add chdir-long.c, chdir-long.h, memrchr.c,
+       memrchr.h, openat.c, openat.h.  Remove pathmax.h (added by
+       mistake, perhaps?), sysexit.h (my typo), xstrdup.c (gnulib removed
+       this file).  Sort entries.
+
+2005-02-04  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/extract.c: Further rewrite.
+       * src/buffer.c: Removed unused variables.
+       * src/list.c: Likewise
+       * src/tar.c (update_argv): Changed type to void
+
+       * src/common.h (OLDGNU_NAME_FIELD_SIZE): New constant
+       * src/create.c (start_private_header,write_header_name)
+       (dump_hard_link): Restore compatibility with 1.13.25
+       * src/extract.c (extract_archive): Rewritten
+       * src/list.c: Add translators' comments
+       * src/tar.c (options) Minor spelling fix
+       * tests/star/quicktest.sh: Determine path to the tar executable.
+
+2005-02-03  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * po/POTFILES.in: Added tests/genfile.c
+       * src/buffer.c (short_read): Use ngettext()
+       (new_volume): use quote().
+       * src/create.c: Use quote()
+       * src/extract.c: Likewise
+       * src/xheader.c: Likewise
+       * src/misc.c: Add comments to translators
+
+       * tests/same-order01.at: sort ls output
+       * tests/sparse01.at (RE_CHECK): Added missing space
+
+       * tests/sparse02.at: Test extracting sparse files over a pipe.
+       * tests/Makefile.am: Added sparse02.at
+       * tests/testsuite.at: Likewise
+       * tests/listed02.at: Skip the test on filesystems that do not
+       update ctime of a file when renaming it. To be reverted when
+       the new incremental mode is ready.
+       * tests/sparse01.at: Extract and compare sparse file
+
+2005-02-02  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/sparse.c: Extract sparse files even if the output
+       fd is not seekable.
+
+2005-02-01  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * bootstrap: Add a comment to lib/Makefile.am saying that this
+       is an autogenerated file.
+       Exit with code 1 if any of autotools fails.
+       * lib/Makefile.tmpl: Insert Emacs magic to the first line.
+       * tests/Makefile.am: Add append.at
+
+       * m4/.cvsignore: Ignore all *.m4 files
+
+2005-01-18  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       Rewritten handling of -T (--files-from) option. Now it
+       inserts the file names immediately into argv array which allows
+       for:
+       1) any valid tar options (including another -T) to be used in the file
+       2) any number of -T options to be given in command line
+
+       * configure.ac: Raised version number to 1.15.2
+       * src/common.h: Include obstack.h
+       (files_from_option): Removed
+       (unquote_option): New variable
+       (stat_fatal): New function
+       (name_close): Removed function.
+       * src/incremen.c: Remove inclusion of obstack.h
+       * src/xheader.c: Likewise.
+       * src/misc.c (stat_fatal): New function
+       * src/names.c (name_file): Removed variable.
+       (read_name_from_file): Removed function. All callers changed.
+       (name_close): Removed function. All callers changed.
+       * src/tar.c: New options --unquote (--no-unquote) and
+       --add-file
+       (add_file_id,read_name_from_file,update_argv): New functions
+       (parse_opt): Rewritten handling of -T option. Handle hidden
+       --HANG option for debugging purposes.
+       (decode_options): Init unquote_option to true. Init argv_stk.
+       Remove unneeded references to files_from_option
+
+       * doc/tar.texi: Document new options.
+       Moved rendition macros and option value definitions into
+       separate files
+       * doc/rendition.texi: New file
+       * doc/value.texi: New file
+       * doc/Makefile.am: Updated
+
+2005-01-13  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * tests/testsuite.at (RE_CHECK): Use "join - file", not
+       "join file -", to work around a bug in Solaris 8 join.
+       Problem reported by Tomohiro Suzuki.
+
+2005-01-13  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/list.c (read_header): Fixed calculation of the
+       size for GNU long name/link. Tar was reading one block
+       more if name_size was divisible by 512. Thanks Josef
+       Bauer.
+       * tests/long01.at: New file. Test listing of GNU long names
+       divisible by 512.
+       * tests/pipe.at: Sort tar output.
+       * tests/Makefile.am: Added long01.at
+       * tests/testsuite.at: Likewise.
+       * THANKS: Added Josef Bauer
+       * lib/.cvsignore: Updated
+       * m4/.cvsignore: Updated
+       * NEWS: Updated
+
+2005-01-11  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * directory: Updated for 1.15.1
+       * doc/Makefile.am: Use gendocs.sh to generate web documentation
+       * doc/gendocs_template: Template file for gendocs.sh
+       * doc/tar.texi: Updated docs for --[no-]same-permissions
+       * src/tar.c: Reworded docstrings for --[no-]same-permissions
+
+2005-01-06  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * bootstrap: Create m4/paxutils.m4
+       * configure.ac: Call tar_PAXUTILS
+       * tests/options02.at: Test that tar correctly handles non-option
+       arguments interspersed with options.
+       * tests/Makefile.am: Add options02.at
+       * tests/testsuite.at: Likewise
+       * tests/listed02.at: Do not create useless directory
+
+2005-01-05  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/tar.c (parse_opt): Bugfix: Use ARGP_KEY_ARG. Thanks
+       Mike Frysinger <vapier@gentoo.org> for reporting.
+
+2005-01-04  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * lib/Makefile.tmpl (localedir.h): Omit needless quotes and a
+       needless sed command.  Problem reported by Paul Jarc.
+
+2004-12-23  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Accommodate latest gnulib.
+       * doc/.cvsignore: Add getdate.texi.
+       * bootstrap: Do not treat alloca-opt specially; this is no
+       longer needed (and breaks builds) with latest gnulib.
+
+2004-12-22  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/tar.c (main): Reverted recent changes (#ifdef).
+
+2004-12-21  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * configure.ac: Raise version number to 1.15.1
+       Check for locale.h
+       * NEWS: Entry for 1.15.1
+       * src/buffer.c: Bugfix. Changes introduced 2004-11-26
+       broke extraction from stdin.
+       * src/list.c (from_header, tar_checksum): Changed declaration.
+       All callers updated.
+       * src/common.h: Likewise
+       * src/tar.c (main): Protect invocation of setlocale by
+       ifdef.
+
+       * tests/comprec.at: New test
+       * tests/pipe.at: New test
+       * tests/Makefile.am (comprec.at,pipe.at): New tests
+       * tests/testsuite.at: Likewise
+       * tests/gzip.at: Use AT_GZIP_PREREQ
+       * tests/star/pax-big-10g.at: Likewise
+       * tests/star/ustar-big-2g.at: Likewise
+       * tests/star/ustar-big-8g.at: Likewise
+
+       * tests/extrac04.at: Discard stderr from sort, on some
+       systems it spits out lots of irrelevant info.
+       * tests/listed02.at: Likewise
+
+       * doc/index.html.in: Rewritten in xhtml to follow recent
+       GNU site standards.
+       * THANKS: Updated
+
+2004-12-20  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       Released version 1.15. Sources up to this point are
+       tagged release_1_15.
+
+       * configure.ac: Raised version number to 1.15
+       * NEWS: Likewise
+       * directory: Updated
+       * bootstrap (update_po): Give -r to wget. Always remove index.html
+       Ignore alloca-opt module (it duplicates alloca)
+
+       * tests/Makefile.am: Distribute star/quicktest.sh
+       * tests/star/README: Document quicktest.sh
+       * tests/star/qucktest.sh: Removed.
+       * tests/star/quicktest.sh: New file.
+
+2004-12-18  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * NEWS: Updated
+       * doc/tar.texi: Document auto-detection of compressed archive
+       formats.
+       * src/tar.c (decode_options): Ignore --seek if used with --delete.
+       Delete.c is based on the assumption that the archive is being
+       actually read, not lseeked.
+
+       * tests/delete05.at: New file
+       * tests/extrac02.at: Fixed typo in AT_SETUP
+       * tests/Makefile.am: Added delete05.at
+       * tests/testsuite.at: Likewise.
+
+2004-12-17  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/delete.c (delete_archive_members): Bugfix: when
+       attempting to delete an nonexistent member, the last
+       blocking_factor blocks were zeroed.
+
+2004-12-14  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * TODO: Mention sub-second resolution, lutimes, lchmod.
+
+2004-11-27  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Adjust to recent gnulib changes.
+       * doc/getdate.texi: Remove, since bootstrap gets it from gnulib now.
+       * .cvsignore: Add rmt, rmt/*, rmt/*/*.
+       * lib/.cvsignore: Add allocsa.c, allocsa.h, allocsa.valgrind,
+       charset.alias, config.charset, getcwd.c, getcwd.h, localcharset.c,
+       localcharset.h, ref-add.sed, ref-add.sin, ref-del.sed,
+       ref-del.sin, setenv.c, setenv.h, unsetenv.c.  Remove pathmax.h,
+       xstrdup.c.
+       * m4/.cvsignore: Add allocsa.m4, eealloc.m4, getcwd-path-max.m4,
+       localcharset.m4, realloc.m4, setenv.m4.  Remove malloc.m4,
+       pathmax.m4, realloc.m4.
+
+2004-11-26  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * configure.ac: Raised version number to 1.14.91
+       * scripts/tarcat: New file
+       * scripts/Makefile.am: Added tarcat
+       * src/buffer.c (hit_eof): Changed type to boolean
+       (read_full_records,reading_from_pipe): New variables
+       (check_compressed_archive,open_compressed_archive): New functions
+       (open_archive): Autodetect compressed archives and act accordingly.
+       Set reading_from_pipe. This fixes controversial set of changes
+       introduced 2004-05-11,2004-03-22.
+       * src/list.c (tar_checksum): New function
+       (read_header): Use tar_checksum().
+       * src/common.h (tar_checksum): New function
+
+       * tests/star/README: Updated
+       * NEWS: Updated
+       * PORTS: Updated
+
+2004-11-16  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/tar.c (decode_options): Fixed -o semantics. Thanks
+       Jean Delvare <khali@linux-fr.org>
+
+2004-10-25  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * bootstrap: Add localcharset
+       * lib/Makefile.tmpl: Initialize SUFFIXES and CLEANFILES since the
+       makefile snippet from localcharset uses '+=' on them.
+       * src/Makefile.am (LDADD): Add LIBICONV
+       * src/list.c (decode_header): Set uname/gname to NULL if their
+       header counterparts are empty
+       * src/tar.c (options): Use OPTION_NO_TRANS
+       * src/utf8.c: Use locale_charset() from gnulib
+
+       * tests/star/README: Updated
+
+       * NEWS: Updated
+       * TODO: Minor fix
+
+2004-10-04  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * THANKS: Added Bryan Ford
+       * doc/Makefile.am (.text): Fixed rule
+       * po/POTFILES.in: Added argp-help.c
+
+2004-10-04  Bryan Ford  <baford@mit.edu>
+
+       * src/tar.c: New option --exclude-caches, to exclude
+       cache directories automatically on archive creation.
+       Cache directories are directories containing a
+       standardized tag file, as specified at:
+               http://www.brynosaurus.com/cachedir/spec.html
+       * src/common.h: New variable exclude_caches_option.
+       * src/create.c: New function check_cache_directory(),
+       called from dump_dir0() if exclude_caches_option is set,
+       to check for a cache directory tag and exclude the directory
+       if such a tag is found.
+       * doc/tar.texi: Updated accordingly.
+
+2004-09-16  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * doc/tar.texi: Minor fix
+       * src/tar.c (options): Minor fix
+
+2004-09-12  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * TODO: Updated
+       * lib/Makefile.tmpl: Added 'rtapelib.o: localedir.h' dependency
+       * src/common.h: Comment WANT_DIRECTORY_REMOVE_OPTION.
+       * src/extract.c: Normalized use of remove_any_file().
+       * src/misc.c: Likewise.
+       * src/tar.c (parse_opt): Emit warning if -l option is used.
+       (show_default_settings): REMOTE_SHELL may be undefined
+
+2004-09-07  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       Test suite rewritten in autotest.
+
+       * configure.ac: Updated for autotest
+       * src/tar.c (argp_program_version): Modified.
+       * tests/Makefile.am: Rewritten for autotest.
+
+       * tests/.cvsignore: Updated
+       * tests/append.at: New file
+       * tests/atlocal.in: New file
+       * tests/delete01.at: New file
+       * tests/delete02.at: New file
+       * tests/delete03.at: New file
+       * tests/delete04.at: New file
+       * tests/extrac01.at: New file
+       * tests/extrac02.at: New file
+       * tests/extrac03.at: New file
+       * tests/extrac04.at: New file
+       * tests/extrac05.at: New file
+       * tests/gzip.at: New file
+       * tests/ignfail.at: New file
+       * tests/incremental.at: New file
+       * tests/link01.at: New file
+       * tests/listed01.at: New file
+       * tests/listed02.at: New file
+       * tests/longv7.at: New file
+       * tests/multiv01.at: New file
+       * tests/multiv02.at: New file
+       * tests/multiv03.at: New file
+       * tests/old.at: New file
+       * tests/options.at: New file
+       * tests/recurse.at: New file
+       * tests/same-order01.at: New file
+       * tests/same-order02.at: New file
+       * tests/sparse01.at: New file
+       * tests/testsuite.at: New file
+       * tests/version.at: New file
+       * tests/volume.at: New file
+       * tests/star/gtarfail.at: New file
+       * tests/star/gtarfail2.at: New file
+       * tests/star/multi-fail.at: New file
+       * tests/star/pax-big-10g.at: New file
+       * tests/star/ustar-big-2g.at: New file
+       * tests/star/ustar-big-8g.at: New file
+
+       * tests/preset.in: Removed
+       * tests/before: Removed
+       * tests/after: Removed
+       * tests/version.sh: Removed.
+       * tests/append.sh: Removed.
+       * tests/delete01.sh: Removed.
+       * tests/delete02.sh: Removed.
+       * tests/delete03.sh: Removed.
+       * tests/delete04.sh: Removed.
+       * tests/extrac01.sh: Removed.
+       * tests/extrac02.sh: Removed.
+       * tests/extrac03.sh: Removed.
+       * tests/extrac04.sh: Removed.
+       * tests/extrac05.sh: Removed.
+       * tests/gzip.sh: Removed.
+       * tests/incremen.sh: Removed.
+       * tests/ignfail.sh: Removed.
+       * tests/link01.sh: Removed.
+       * tests/listed01.sh: Removed.
+       * tests/listed02.sh: Removed.
+       * tests/longv7.sh: Removed.
+       * tests/multiv01.sh: Removed.
+       * tests/multiv02.sh: Removed.
+       * tests/multiv03.sh: Removed.
+       * tests/old.sh: Removed.
+       * tests/options.sh: Removed.
+       * tests/same-order01.sh: Removed.
+       * tests/same-order02.sh: Removed.
+       * tests/volume.sh: Removed.
+       * tests/recurse.sh: Removed.
+       * tests/sparse01.sh: Removed.
+       * tests/star/gtarfail.sh: Removed.
+       * tests/star/gtarfail2.sh: Removed.
+       * tests/star/multi-fail.sh: Removed.
+       * tests/star/ustar-big-2g.sh: Removed.
+       * tests/star/ustar-big-8g.sh: Removed.
+       * tests/star/pax-big-10g.sh: Removed.
+
+2004-09-07  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * bootstrap: Install genfile.c from paxutils
+       * tests/genfile.c: Removed. Integrated into
+       paxutils.
+       * tests/mksparse.c: Removed. Integrated into
+       (paxutils) genfile.c
+       * tests/Makefile.am: Removed mksparse
+       * tests/sparse01.sh: Use genfile instead of mksparse
+
+2004-09-06  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       Started merging with cpio into paxutils. Sources before
+       this point are tagged alpha-1_14_90
+
+       * Makefile.am: Updated for use with paxutils
+       * README-alpha: Likewise
+       * bootstrap: Likewise
+       * configure.ac: Likewise
+       * lib/Makefile.tmpl: Likewise
+       * po/POTFILES.in: Likewise
+       * src/Makefile.am: Likewise
+       * src/buffer.c: Likewise
+       * src/common.h: Likewise
+       * src/compare.c: Likewise
+       * src/create.c: Likewise
+       * src/delete.c: Likewise
+       * src/extract.c: Likewise
+       * src/incremen.c: Likewise
+       * src/list.c: Likewise
+       * src/mangle.c: Likewise
+       * src/misc.c: Likewise
+       * src/names.c: Likewise
+       * src/sparse.c: Likewise
+       * src/system.c: Likewise
+       * src/tar.c: Likewise
+       * src/update.c: Likewise
+       * src/utf8.c: Likewise
+       * src/xheader.c: Likewise
+
+       * src/system.h: Removed
+       * src/rmt.c: Removed
+       * src/rmt.h: Removed
+       * src/rtapelib.c: Removed
+
+2004-09-03  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * tests/listed02.sh: Do not depend on any particular ordering
+       of output.
+
+2004-09-02  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * doc/tar.texi: Document the use of -C option in
+       file lists. Document --seek option.
+       * configure.ac: New option --with-rmt. New configuration variable
+       DEFAULT_RMT_DIR. Removed DEFAULT_RMT_COMMAND.
+       * src/Makefile.am: Install rmt into rmtdir
+       * src/tar.c (usage): Minor fix.
+       * NEWS: Updated.
+       * README: Updated.
+
+2004-09-01  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * configure.ac: Raised version number to 1.14.90
+       * src/common.h (is_individual_file): New prototype
+       * src/create.c (dump_file0): Fix bug introduced
+       2004-02-21.
+       * src/names.c (register_individual_file)
+       (is_individual_file): New functions.
+       * tests/listed01.sh: Use genfile instead of dd.
+       * tests/listed02.sh: New file.
+       * tests/Makefile.am: Added listed02.sh
+
+       * NEWS: Updated
+
+2004-08-31  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/sparse.c (sparse_add_map): Fixed improper initializations
+       of sparse_map_size. We assume that whatever number it contains
+       describes adequately the current size of sparse_map. The only
+       number we need to reset is sparse_map_avail.
+       * src/compare.c (verify_volume): Call set_next_block_after
+       if read_header returns HEADER_FAILURE
+       Destroy and reinitialize content of current_stat_info and
+       extended_header after each iteration (bug reported by
+       John L. Males <jlmales@yahoo.com>).
+       Issue a warning if the created archive contains some members
+       whose file names were stripped off their leading prefixes.
+       This is a temporary fix of the issue reported by Bdale Garbee
+       <bdale@gag.com> (Refs: Debian bug 230064, Message-Id
+       <87n07kyzhi.fsf@rover.gag.com>, Sun, 15 Feb 2004 11:22:17 -0700)
+
+       * src/names.c (removed_prefixes_p): New function.
+
+       * src/buffer.c: When computing write rate do not take
+       into account the time needed to verify the archive(s).
+       The bug reported by John L. Males <jlmales@yahoo.com>
+       (set_start_time,compute_duration): New functions.
+       (print_total_written): Use the result of compute_duration().
+       (close_archive): Call compute_duration.
+       * src/common.h (set_start_time, removed_prefixes_p): New prototypes.
+       * src/list.c (decode_header): Fixed initialization
+       of stat_info->is_sparse
+       * src/tar.c (main): Call set_start_time().
+
+       * src/misc.c (unquote_string): Unquote '\a' and '\v'.
+       Reported by Helmut Waitzmann <helmut.waitzmann@web.de>.
+
+       * NEWS: Updated
+       * THANKS: Updated
+
+2004-08-30  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/tar.c: Fix copy-n-paste errors in the license
+
+2004-08-19  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * scripts/backup.in: Renamed LIBPATH to LIBDIR.
+       Use ROOT_FS with -C option. Do not send mail
+       if ADMINISTRATOR is set to NONE.
+       * scripts/backup.sh.in (test_root): Append / to
+       ROOT_FS if it does not already end in it.
+       * scripts/restore.in: Renamed LIBPATH to LIBDIR.
+       New option -a (--all). Do not start restore unless
+       -a or patterns are given.
+       (restore_fs,restore_files): Fixed use of --listed option.
+       * doc/tar.texi: Updated
+       * NEWS: Updated
+
+2004-08-17  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/tar.c (find_argp_option): Fixed typo
+
+2004-08-12  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Merge argp, getopt, xalloc changes from gnulib.
+       * bootstrap (gnulib_modules): Add xalloc-die.
+       Remove code to test for patches; we don't have patches now.
+       Set LC_ALL=C so that file names sort consistently.
+       Prefer the gnulib copies of gettext.m4, glibc21.m4,
+       lib-ld.m4, lib-prefix.m4, po.m4 too.
+
+       * patches/getopt.diff: Remove; gnulib now works unpatched.
+       * configure.ac (_getopt_long_only_r): Remove check.
+       gl_ARGP now does this for us.
+       * lib/.cvsignore: Add fnmatch.h, getopt_.h, sysexit.h,
+       xalloc-die.c.
+       * src/extract.c: Adjust to changes to gnulib xalloc module.
+       (extr_init): Remove assignment to xalloc_fail_func; no longer needed.
+       (xalloc_die): New function.
+
+2004-08-10  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * NEWS: Updated
+
+       * src/buffer.c (flush_write): Limit filenames
+       of the members that straddle multivolume archive
+       boundary to 100 characters.
+       (flush_read): Use strncmp when comparing multivolume member
+       names.
+       * tests/multiv03.sh: New file
+       * tests/Makefile.am: Added multiv03.sh
+
+2004-08-09  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * src/list.c (read_and): Call decode_header before
+       calling skip_member()
+       (skip_member): Use is_sparse field to determine if the
+       member is a sparse file.
+
+       * tests/Makefile.am: Added extrac05.sh
+       * tests/extrac05.sh: New file
+       * tests/append.sh: Rearranged leading comments. Added explicit
+       references to report messages wherever available.
+       * tests/delete01.sh: Likewise
+       * tests/delete02.sh: Likewise
+       * tests/delete03.sh: Likewise
+       * tests/delete04.sh: Likewise
+       * tests/extrac01.sh: Likewise
+       * tests/extrac02.sh: Likewise
+       * tests/extrac03.sh: Likewise
+       * tests/extrac04.sh: Likewise
+       * tests/gzip.sh: Likewise
+       * tests/ignfail.sh: Likewise
+       * tests/incremen.sh: Likewise
+       * tests/link01.sh: Likewise
+       * tests/listed01.sh: Likewise
+       * tests/longv7.sh: Likewise
+       * tests/multiv01.sh: Likewise
+       * tests/multiv02.sh: Likewise
+       * tests/old.sh: Likewise
+       * tests/options.sh: Likewise
+       * tests/recurse.sh: Likewise
+       * tests/same-order01.sh: Likewise
+       * tests/same-order02.sh: Likewise
+       * tests/sparse01.sh: Likewise
+       * tests/version.sh: Likewise
+       * tests/volume.sh: Likewise
+
+2004-08-08  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * bootstrap: Extended --update-po option to take an
+       optional argument specifying the po file to update.
+       * src/create.c: Improved compatibility with 1.13.25
+       * tests/link01.sh: New file.
+       * tests/Makefile.am: Added link01.sh
+
+2004-08-06  Paul Eggert  <eggert@cs.ucla.edu>
+
+       Merge from gnulib.
+
+       * patches/argp.diff: Remove; no longer needed.
+
+       * lib/.cvsignore: Add stat-macros.h.
+       Remove addext.c, malloc.c, realloc.c.
+
+       * src/extract.c: Include <getcwd.h>.
+       (extract_archive): Rewrite with new macro IS_ABSOLUTE_FILE_NAME.
+       * src/extract.c (make_directories):
+       FILESYSTEM_PREFIX_LEN -> FILE_SYSTEM_PREFIX_LEN.
+       * src/misc.c (must_be_dot_or_slash): Likewise.
+       * src/names.c (excluded_name, safer_name_suffix, stripped_prefix_len):
+       Likewise.
+       * src/tar.c (parse_opt): Likewise.
+       * src/incremen.c (purge_directory): Fix format buffer typos in warning
+       strings.
+       * src/tar.c (options): Add missing initializers to pacify gcc.
+       (decode_options): Remove unused var.
+
+2004-08-02  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * bootstrap (gnulib_modules): Add getpagesize.
+       * configure.ac (valloc): Remove check; valloc no longer used.
+       * lib/.cvsignore: Add getpagesize.h.
+       * m4/.cvsignore: Add getpagesize.m4.
+       * src/buffer.c (record_buffer): New var.
+       (open_archive): Don't use valloc; on older or buggy hosts, you can't
+       free the result.  Use page_aligned_alloc instead.
+       * src/compare.c (diff_init): Likewise.
+       * src/buffer.c (open_archive): Record the pointer to be freed
+       into record_buffer.
+       (close_archive): Free record_buffer.
+       * src/common.h (page_aligned_alloc): New decl.
+       * src/misc.c (quote_n, quote): Remove these redundant functions.
+       (ptr_align): New function, from coreutils/src/system.h.
+       (page_aligned_alloc): New function.
+       * src/system.h (valloc): Remove.
+
+2004-07-09  Paul Eggert  <eggert@cs.ucla.edu>
+
+       * src/extract.c (extract_archive): Do not report an error
+       when hard-linking X to X when X exists.  Problem reported by
+       Toby Peterson.
+       * lib/.cvsignore: Add fchown-stub.c.
+
+2004-06-29  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * NEWS: Updated
+       * src/common.h (root_device): New global.
+       (gnu_restore): Renamed to purge_directory().
+       * src/extract.c (extr_init): Save the device number
+       of the root device.
+       (extract_archive): Renamed gnu_restore() to purge_directory().
+       * src/incremen.c (gnu_restore): Renamed to purge_directory().
+       Do not attempt to purge the directory if it is on a different
+       device and one_file_system_option is set.
+
+2004-06-25  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * doc/tar.texi: The actual default for exclude patterns
+       is --no-anchored. Fixed.
+       * src/tar.c (options): Likewise.
+       Thanks "Felix Natter" <felix.natter@ldc.de> for noticing.
+
+2004-06-22  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
+
+       * doc/tar.texi: Fixed several inconsistencies.
+       * src/tar.c: Fixed docstring for --checkpoint option.
+
 2004-05-19  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
 
        * src/buffer.c (seek_archive): New function
        (options): New option -n (--seek).
        * src/update.c: Determine type of the archive before
        appending to it.
-       
+
        * TODO: Updated.
 
 2004-05-19  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
-       
+
        * bootstrap: New option --update-po
        * src/tar.c: New option -H (short alias to --format)
        * doc/tar.texi: Document -H option
        dated 2004-03-22.
        * src/buffer.c (open_archive): Removed assignment to
        read_full_records_option.
-       
+
        * src/names.c (safer_name_suffix): (safer_name_suffix): Use "%s"
        as the format argument, rather than a possibly-translated variable
        string. Patch provided by Jim Meyering  <jim@meyering.net>
        * src/tar.c (decode_options): Fixed typo in the comment.
        * tests/star/README: Minor correction
-       
+
 2004-05-11  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
-       
+
        * directory: New file. GNU directory entry for tar.
        * doc/Makefile.am: Rewritten. Added rules for generating
        documentation for the project's website.
        * doc/.cvsignore: Updated
        * doc/index.html.in: New file.
-       
+
 2004-05-11  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
-       
+
        * configure.ac: Raised version number to 1.14
        * NEWS: Updated.
        * tests/after: Added copyleft statement
-       * tests/before: Added copyleft statemente
+       * tests/before: Added copyleft statement
        * tests/preset.in: Added copyleft statement
 
        Tar 1.14 is released. Sources up to this point are tagged
        release_1_14
-       
+
 2004-05-10  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
 
        * configure.ac: Fixed prerequisite headers for sys/buf.h
        * src/list.c (read_and): Print block number before
        issuing 'Skipping to next header' diagnostics, if
        requested by block_number_option.
-       * src/rtapelib.c: Use rmt_command_option instead of 
+       * src/rtapelib.c: Use rmt_command_option instead of
        hardcoded "/etc/rmt".
        * src/tar.c: New option --rmt-command.
        (decode_options): Handle --rmt-command. Initialize
        * tests/star/ustar-big-8g.sh: Likewise
 
        * doc/.cvsignore: Updated
-       
+
 2004-05-06  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
 
        * configure.ac: Check whether date accepts +format argument
        * scripts/backup-specs: Updated
        * scripts/Makefile.am: Updated for new directory contents.
        * scripts/.cvsignore: Updated
-       
+
 2004-05-05  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
 
        * TODO: Updated
        * lib/.cvsignore: Updated
        * m4/.cvsignore: Updated
        * src/xheader.c: Include stpcpy.h
-       
+
        * src/create.c: Produce an error, not warning, if the
        filename is too long.
        * tests/longv7.sh: Synchronized with the recent changes.
 2004-04-20  Sergey Poznyakoff  <gray@Mirddin.farlep.net>
 
        * configure.ac: Fixed test for iconv_t
-       * src/rmt.h: Bugfix by Jürgen Weigert 
-       * THANKS: Add Jürgen Weigert
+       * src/rmt.h: Bugfix by Jürgen Weigert
+       * THANKS: Add Jürgen Weigert
        * tests/star/README: Fixed typo
 
 2004-04-04  Paul Eggert  <eggert@twinsun.com>
        * tests/after: Rewritten
        * tests/before: Rewritten
        * tests/preset.in: Rewritten
-       * tests/delete03.sh: Accomodate for the new testsuite logic
+       * tests/delete03.sh: Accommodate for the new testsuite logic
        * tests/gzip.sh: Likewise
        * tests/incremen.sh: Likewise
        * tests/listed01.sh: Likewise
        * TODO: Updated
        * src/common.h (strip_path_elements): New variable.
        * src/extract.c (extract_archive): Implemented --strip-path
-       * src/names.c (cut_path_elements): New functon.
+       * src/names.c (cut_path_elements): New function.
        * src/tar.c: New option --strip-path=NUM.
        (decode_options) Assign boolean values to bool variables.
 
        * m4/mbstate_t.m4: Include stdio.h before wchar.h, to work around
        a bug in glibc 2.1.3.
 
-       * lib/xmalloc.c: Fix inaccorate comment for xrealloc.
+       * lib/xmalloc.c: Fix inaccurate comment for xrealloc.
 
 2000-06-19  Paul Eggert  <eggert@twinsun.com>
 
@@ -5283,7 +6386,7 @@ See ChangeLog.1 for earlier changes.
 
 
 \f
-Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004 Free Software
+Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 Free Software
 Foundation, Inc.
 
 This file is part of GNU tar.
@@ -5300,8 +6403,8 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with GNU tar; see the file COPYING.  If not, write to
-the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.
 \f
 Local Variables:
 mode: change-log
This page took 0.043571 seconds and 4 git commands to generate.