+2005-06-23 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * tests/sparse03.at: New test.
+ * tests/Makefile.am: Add sparse03.at
+ * tests/testsuite.at: Likewise
+
+ * src/xheader.c (size_decoder): Do not set archive_file_size.
+
+ Fix bugs introduced yesterday:
+
+ * src/sparse.c (tar_sparse_init): Initialize
+ dimped_size to 0.
+ (sparse_scan_file): Initialize archive_file_size to 0. The
+ variable keeps size of the file *as stored in the archive*, not
+ the size reported by stat.
+
+2005-06-22 Paul Eggert <eggert@cs.ucla.edu>
+
+ A sweep of the sparse code prompted by a bug report by Jim Meyering.
+ * src/sparse.c: Include <inttostr.h>.
+ (struct tar_sparse_file): offset and dumped_size are off_t, not
+ size_t. optab is now const *.
+ (dump_zeros): Return bool success flag, not off_t.
+ All callers changed.
+ Use a constant-zero buffer rather than clearing a buffer each time.
+ Don't mess up if write fails.
+ (dump_zeros, check_sparse_region):
+ Don't assume off_t is no wider than size_t.
+ (tar_sparse_init): Don't bother clearing a field that is already clear.
+ (zero_block_p): First arg is const *, not *.
+ (clear_block, SPARSES_INIT_COUNT): Remove.
+ (sparse_add_map): First arg is now struct start_stat_info *, not
+ struct tar_sparse_file *. All callers changed.
+ Use x2nrealloc to check for size_t overflow.
+ (parse_scan_file): Cache commonly-used parts of file.
+ Use an auto buffer, not a static one.
+ Don't bother clearing the buffer; not needed.
+ Don't bother clearing items that are already clear.
+ (oldgnu_optab, star_optab, pax_optab): Now const.
+ (sparse_dump_region): Don't bother clearing the buffer before
+ reading into it; just clear the parts that aren't read into.
+ (sparse_dump_file): Clear the whole local variable 'file'.
+ (diff_buffer): Remove; now a local var.
+ (check_sparse_region): Don't bother clearing buffer before
+ reading into it. Don't assume off_t is promoted to long.
+ (oldgnu_get_sparse_info, star_get_sparse_info):
+ Use an auto status, not static.
+ * src/tar.h (struct tar_stat_info): had_trailing_slash is
+ now bool, not int.
+ * src/xheader.c (sparse_offset_coder, sparse_numbytes_coder):
+ Rewrite to avoid cast.
+ (sparse_offset_decoder, sparse_numbytes_decoder):
+ Diagnose excess entries rather than crashing.
+
+2005-06-22 Jim Meyering <jim@meyering.net>
+
+ * src/common.h (timespec_lt): Add a return type: bool.
+
+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
+ * src/common.h (seek_archive): New function
+ (seekable_archive): New global.
+ * src/list.c (skip_file): Use seek_archive() if
+ possible.
+ * src/tar.c (struct fmttab): Accept 'pax' as alias
+ for 'posix'
+ (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
+ * src/names.c (safer_name_suffix): Fixed bug introduced
+ 2004-05-11.
+
+2004-05-16 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * bootstrap: Apply patches from patch subdirectory
+ * patches: New dir
+ * patches/argp.diff: New file
+ * patches/getopt.diff: New file
+ * configure.ac: Check for _getopt_long_only_r and
+ force using included version of getopt if the function
+ is not available.
+ * src/tar.c: Use argp for command line parsing.
+ * src/system.h: Minor formatting fix
+ * m4/.cvsignore: Updated
+ * lib/.cvsignore: Updated
+ * doc/tar.texi: Minor fix.
+ * src/extract.c: Fix improper use of 'path' term
+ * src/incremen.c: Likewise
+ * src/list.c: Likewise
+ * src/misc.c: Likewise
+ * src/names.c: Likewise
+ * src/rmt.h: Likewise
+ * src/rtapelib.c: Likewise
+ * src/update.c: Likewise
+ * src/xheader.c: Likewise
+ * tests/star/README: Minor fix
+
+2004-05-13 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * configure.ac: Raised version number to 1.14.1
+ * src/tar.c: Renamed --strip-path to --strip-components
+ Changed improper use of _() to ngettext().
+ * src/extract.c: Renamed strip_path_option to strip_components_option
+ * src/common.h: Likewise.
+ * NEWS: Updated.
+ * doc/tar.texi: Updated
+
+2004-05-11 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/system.c (sys_child_open_for_uncompress): Do not
+ set read_full_records_option: the compressed archive is
+ likely not to contain integer number of records. Should
+ the user wish to use reblocking, he may always give tar
+ -B option. This is a minor improvement over the change
+ 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 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
+ (needed on FreeBSD)
+ * src/system.h: Likewise.
+ * tests/after (compare): Fixed argument quoting under eval
+ * tests/before: Quote TAR_ARCHIVE_FORMATS
+
+2004-05-10 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * NEWS: Updated
+ * README: Updated
+ * PORTS: Updated
+ * configure.ac: Call gl_AC_TYPE_INTMAX_T. Document
+ DEFAULT_.* variables. Use DEFAULT_RMT_COMMAND to set
+ the pathname of the rmt utility.
+ New option --enable-backup-scripts.
+ * doc/tar.texi: Updated
+ * scripts/Makefile.am: Install the scripts only if requested
+ by the configure.
+ * scripts/backup.in: Fixed --version output.
+ Fixed initialization of the listing files and printing
+ the time of the last previous level dump.
+ * scripts/restore.in: Fixed --version output.
+ * src/Makefile.am (localedir.h rule): Generate correct
+ DEFAULT_RMT_COMMAND variable.
+ * src/common.h (rmt_command_option): New variable.
+ * 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
+ hardcoded "/etc/rmt".
+ * src/tar.c: New option --rmt-command.
+ (decode_options): Handle --rmt-command. Initialize
+ rmt_command_option to DEFAULT_RMT_COMMAND.
+
+2004-05-09 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * doc/tar.texi: Further update.
+
+2004-05-08 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * configure.ac: Minor fix
+ * scripts/Makefile.am: Updated
+ * scripts/backup-specs: Updated
+ * scripts/backup.in: Minor fixes
+ * scripts/backup.sh: Removed
+ * scripts/backup.sh.in: New file. Source for backup.sh
+ * scripts/restore.in: New file
+ * scripts/.cvsignore: Updated
+ * scripts/WARNING: Removed
+ * doc/tar.texi: Updated
+ * NEWS: Updated
+
+2004-05-07 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/names.c (name_gather): Bugfix: Honor single -C with
+ --same-order.
+ * tests/same-order01.sh: New file
+ * tests/same-order02.sh: New file
+ * tests/Makefile.am: Updated
+
+ * tests/append.sh: Added copyleft header
+ * tests/delete01.sh: Likewise
+ * tests/delete02.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/multiv01.sh: Likewise
+ * tests/old.sh: Likewise
+ * tests/options.sh: Likewise
+ * tests/recurse.sh: Likewise
+ * tests/version.sh: Likewise
+ * tests/volume.sh: Likewise
+ * tests/star/gtarfail.sh: Likewise
+ * tests/star/gtarfail2.sh: Likewise
+ * tests/star/multi-fail.sh: Likewise
+ * tests/star/pax-big-10g.sh: Likewise
+ * tests/star/qucktest.sh: Likewise
+ * tests/star/ustar-big-2g.sh: Likewise
+ * 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
+ (for backup scripts).
+ * scripts/level-0: Removed
+ * scripts/level-1: Removed
+ * scripts/weekly.new: Removed
+ * scripts/dump-remind: Removed
+ * scripts/backup.in: New file
+ * scripts/backup.sh: New file
+ * scripts/dump-remind.in: New file
+ * 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
+ * doc/tar.texi: Updated
+ * src/tar.c: --utc implies -vv
+
+2004-04-28 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/utf8.c: Make sure ICONV_CONST is defined. AM_ICONV
+ does not define it if it fails to find iconv.h.
+
+2004-04-26 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * bootstrap: Use gnulib-tool to generate lib/Makefile.am
+ and parts of configure.ac
+ * configure.ac: Invoke tar_GNULIB to configure gnulib stuff.
+ * lib/Makefile.am: Removed
+ * lib/Makefile.tmpl: New file.
+ * 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
+ * tests/star/README: Fixed typo
+
+2004-04-04 Paul Eggert <eggert@twinsun.com>
+
+ Merge getdate documentation changes from coreutils.
+
+ * doc/getdate.texi: Update from coreutils CVS.
+ * doc/tar.texi: Fix getdate menu to match getdate.texi's.
+
+ Merge recent gnulib changes, and remove some lint.
+
+ Improve support for nanosecond-resolution time stamps.
+ * bootstrap: Add gettime, timespec modules.
+ * configure.ac (gl_GETTIME, gl_TIMESPEC): Add.
+ * lib/.cvsignore (getopt_int.h, gettime.c, gettimeofday.c,
+ timespec.h): Add.
+ * lib/Makefile.am (libtar_a_SOURCES): Add gettime.c, timespec.h.
+ * m4/.cvsignore: Add clock_time.m4, gettime.m4, gettimeofday.m4,
+ st_mtim.m4, timespec.m4. Remove malloc.m4, realloc.m4.
+ * src/common.h (newer_mtime_option): Now a struct timespec, not
+ time_t. All uses changed.
+ (NEWER_OPTION_INITIALIZED, OLDER_STAT_MTIME): New macros.
+ * src/create.c (dump_file0): Use OLDER_STAT_TIME to compare times.
+ * src/incremen.c (scan_path): Likewise.
+ * src/list.c (read_and): Likewise.
+ * src/list.c (read_and): Use NEWER_OPTION_INITIALIZED to decide
+ whether newer_mtime_option is initialized.
+ * src/tar.c (decode_options): Likewise.
+ * src/tar.c (decode_options): Adjust to new signature for get_date.
+
+ * src/buffer.c (short_read, flush_read): Use size_t, not ssize_t, for
+ result of safe_read, full_write, and similar functions.
+ Detect safe_read error by comparing to SAFE_READ_ERROR;
+ detect full_write error by comparing to 0.
+ All uses changed.
+ * src/common.h (write_error_details, sys_write_archive_buffer):
+ Likewise.
+ * src/misc.c (write_error_details): Likewise.
+ * src/rmt.c (main): Likewise.
+ * src/rmt.h (rmt_read__, rmt_write__): Likewise.
+ * src/rtapelib.c (rmt_read__, rmt_write__, rmt_ioctl__): Likewise.
+ * src/sparse.c (sparse_scan_file, sparse_dump_region,
+ check_sparse_region, check_data_region): Likewise.
+ * src/system.c (sys_write_archive_buffer, sys_drain_input_pipe,
+ sys_child_open_for_compress, sys_child_open_for_uncompress): Likewise.
+ * src/update.c (append_file): Likewise.
+
+ * src/buffer.c (clear_read_error_count): Use explicit (void)
+ to indicate a function with no arguments.
+ * src/create.c (check_links): Likewise.
+ * src/system.c (sys_get_archive_stat, sys_save_archive_dev_ino,
+ sys_detect_dev_null_output, sys_drain_input_pipe, sys_spawn_shell,
+ sys_reset_uid_gid, sys_get_archive_stat, sys_save_archive_dev_ino,
+ sys_detect_dev_null_output, sys_drain_input_pipe, sys_spawn_shell):
+ Likewise.
+ * src/utf8.c (get_input_charset): Likewise.
+ * src/xheader.c (xheader_ghdr_name, xheader_write_global,
+ xheader_decode_global, extended_header_init): Likewise.
+ * tests/mksparse.c (usage): Likewise.
+
+ * src/buffer.c (new_volume): Rename local variables to avoid
+ shadowing warnings.
+ * src/common.h (file_dumpable_p, sys_stat_nanoseconds,
+ sparse_file_p, sparse_member_p, sparse_fixup_header,
+ sparse_dump_file, sparce_extract_file, sparse_skip_file,
+ sparse_diff_file): Likewise.
+ * src/compare.c (diff_archive): Likewise.
+ * src/create.c (file_dumpable_p, dump_regular_file, dump_dir0,
+ dump_dir, dump_hard_link, file_count_links, dump_file0, dump_file):
+ Likewise.
+ * src/extract.c (repair_delayed_set_stat): Likewise.
+ * src/misc.c (maybe_backup_file, add_hierarchy_to_namelist):
+ Likewise.
+ * src/sparse.c (struct tar_sparse_optab, tar_sparse_dump_region,
+ tar_sparse_extract_region, sparse_dump_region, sparse_extract_region,
+ sparse_dump_file, sparse_file_p, sparse_member_p,
+ sparse_fixup_header, sparse_extract_file, sparse_skip_file,
+ check_data_region, sparse_diff_file): Likewise.
+ * src/system.c (sys_stat_nanoseconds): Likewise.
+ * src/xheader.c (xheader_format_name): Likewise.
+
+ * src/common.h (enum old_files): Remove comma before }; not portable.
+
+ * src/common.h (read_fatal_details): Add __attribute__ ((noreturn)).
+ * src/rmt.c (usage): Likewise.
+ * src/xheader.c (xheader_set_single_keyword): Likewise.
+ * tests/genfile.c (usage): Likewise.
+ * tests/mksparse.c (die, usage): Likewise. Also add printf attribute
+ to die.
+
+ * src/common.h (gname_to_gid, uname_to_uid): Add const to avoid
+ some gcc warnings.
+ * src/names.c (uname_to_uid, gname_to_gid): Likewise.
+ * src/utf8.c (struct langtab.lang, struct langtab.terr, struct
+ langtab.charset, charset_lookup): Likewise.
+
+ * src/common.h (name_init): Remove unused args. All callers changed.
+ * src/names.c (name_init): Likewise.
+
+ * src/common.h (usage, xheader_write, xheader_write_global,
+ sys_reset_uid_gid): New decls.
+
+ * src/compare.c (report_difference, process_noop): Add
+ __attribute__ ((unused)) for unused attributes.
+ * src/sparse.c (oldgnu_sparse_member_p, star_sparse_member_p):
+ Likewise.
+ * src/xheader.c (dummy_coder, dummy_decoder, atime_coder,
+ gid_coder, gname_coder, linkpath_coder, ctime_coder, mtime_coder,
+ path_coder, size_coder, uid_coder, uname_coder,
+ sparse_numblocks_coder): Likewise.
+
+ * src/create.c (dump_regular_finish, dump_dir0, dump_dir,
+ dump_file0): Now static.
+ * src/utf8.c (charset_lookup): Likewise.
+ * src/xheader.c (xheader_protected_pattern_p,
+ xheader_protected_keyword_p, xheader_set_single_keyword,
+ xheader_keyword_deleted_p, xheader_keyword_override_p,
+ xheader_list_append, xheader_list_destroy, xheader_set_keyword_equal):
+ Likewise.
+ * tests/genfile.c (usage): Likewise.
+ * tests/mksparse.c (die, mkhole, mksparse, usage, xlat_suffix):
+ Likewise.
+
+ * src/create.c (hash_link): Rewrite to avoid cast.
+
+ * src/extract.c (file_newer_p): Use parameter, not global var.
+ * src/misc.c (write_error_details): Likewise.
+
+ * src/extract.c (prepare_to_extract): Remove directory arg; not
+ used. All callers changed.
+
+ * src/misc.c (close_fatal): Remove; not used.
+ * src/system.c (sys_utimes): Likewise.
+
+ * src/rmt.c (get_string): Avoid buffer overrun (off by 1 error).
+
+ * src/rmt.c (main): Update copyright date to 2004.
+ * src/tar.c (decode_options): Likewise.
+
+ * src/rtapelib.c (get_status_string): Don't lose errno when
+ skipping the error messages.
+ (get_status): Report an error if atol returns a negative number.
+
+ * src/utf8.c (struct langtab, langtab, charset_lookup,
+ get_input_charset) [!defined HAVE_LIBCONV]: Omit unused
+ definitions.
+ (iconv_open, iconv, iconv_close) [!defined HAVE_LIBCONV]:
+ Use macros, not definitions, to avoid type clashes with system
+ headers.
+ (charset_lookup): Local var is now auto, not static.
+ (utf8_convert): Use ICONV_CONST instead of const, to avoid
+ type clashes.
+
+ * src/utf8.c (langtab): Initialize all elements of struct, to
+ avoid gcc warning.
+ * src/xheader.c (xhdr_tab): Likewise.
+
+ * src/xheader.c: Include fnmatch.h, since we use fnmatch.
+
+ * tests/mksparse.c (mkhole): Fix typo: bool was assigned to off_t.
+
+2004-04-04 Sergey Poznyakoff <gray@Noldor.runasimi.org>
+
+ * NEWS: Updated
+ * configure.ac: Raised version number to 1.13.94
+ * src/system.h: Protect inclusion of <sys/time.h>
+ by ifdef.
+ Declare time() if HAVE_DECL_TIME is 0
+ * tests/.cvsignore: Added mksparse
+
+ * tests/sparse01.sh: New file
+ * tests/multiv02.sh: New file
+ * tests/Makefile.am: Add sparse01.sh and multiv02.sh
+ * tests/longv7.sh: Added missing call to 'after'
+
+ * src/common.h: Added missing prototypes
+ * src/compare.c (diff_archive): Use is_sparse member
+ instead of GNUTYPE_SPARSE.
+ * src/create.c: Removed unused variables
+ * src/extract.c (extract_archive): Use sparse_member_p instead
+ of GNUTYPE_SPARSE.
+ Removed unused variables
+ * src/list.c (decode_header): Use sparse_fixup_header to correct
+ the st_size value.
+ (print_header): Do not rely on GNUTYPE_SPARSE type.
+ Use st->stat.st_size to print real file size.
+ (skip_member): Assign stat_info.file_name to save_name. This fixes
+ bug reported by Mads Martin Joergensen <mmj@suse.de>
+ Use sparse_skip_file() to skip sparse members.
+ * src/rtapelib.c: include "common.h"
+ * src/sparse.c (struct tar_sparse_optab.sparse_member_p)
+ (struct tar_sparse_optab.fixup_header): New member
+ (tar_sparse_member_p): New function.
+ (tar_sparse_init): Return true if decode_header is not provided
+ (tar_sparse_fixup_header)
+ (sparse_member_p,sparse_fixup_header)
+ (sparse_skip_file)
+ (oldgnu_sparse_member_p,oldgnu_fixup_header,star_sparse_member_p)
+ (star_fixup_header, pax_sparse_member_p): New function
+ (pax_decode_header): Remove
+ * src/system.h: Include <sys/time.h> and <utime.h> when available
+ * src/tar.c (usage): Prototype moved to common.h
+ * src/tar.h (struct tar_stat_info.is_sparse): New member
+ * src/utf8.c (utf8_convert): Changed prototype
+ (get_input_charset): Removed unused variable
+ * src/xheader.c: include <fnmatch.h>
+ (size_decoder): Assign to both st->archive_file_size and
+ st->stat.st_size.
+ (st->stat.st_size): Assign to st->stat.st_size
+ (sparse_numbytes_decoder): Removed unused variable
+ * src/.cvsignore: Added .gdbinit
+ * THANKS: Added Mads Martin Joergensen
+
+2004-03-26 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/create.c (write_long_name): Do not allow more than
+ NAME_FIELD_SIZE-1 characters in a file name for V7 format
+ archives.
+ * tests/longv7.sh: New file.
+ * tests/Makefile.am: Add longv7.sh
+
+2004-03-22 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/buffer.c (open_archive): Clear read_full_records_option
+ if reading from a pipe.
+ (short_read): Display warning about the deduced record size
+ if version > 1
+ * tests/star/pax-big-10g.sh: Updated to match the above changes.
+ * tests/star/ustar-big-2g.sh: Likewise.
+ * tests/star/ustar-big-8g.sh: Likewise.
+
+ * configure.ac: Added gl_FUNC_STRTOULL
+ * src/create.c (start_header): Check for GNU_FORMAT
+ if incremental_option is set.
+ * src/xheader.c (to_decimal): New function.
+ (xheader_format_name): Use to_decimal() instead of snprintf.
+ * tests/listed01.sh: Use genfile instead of dd
+ * tests/multiv01.sh: Likewise.
+
+2004-03-12 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/list.c (read_and): Stop processing the archive after
+ encountering a single zero record. Many old archives contain
+ arbitrary garbage after it.
+ The warning is issued anyway.
+
+2004-03-02 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/rtapelib.c (rmt_lseek__,rmt_ioctl__): Bugfix. The
+ conversion buffer was not null terminated. Fix provided
+ by Leland Lucius <llucius@tiny.net>
+ * THANKS: Added Leland Lucius
+ * src/utf8.c (utf8_convert): Indentation fix.
+
+2004-02-29 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/buffer.c (flush_read): Bugfix: the
+ condition at line 714 included
+
+ || (status > 0 && !read_full_records_option)
+
+ which is grossly wrong, since even if new_volume() below succeeds,
+ the subsequent call to rmtread will overwrite the chunk of data
+ already read in the buffer and thus spoil everything.
+ * src/system.c (sys_child_open_for_uncompress): Minor stylistic
+ fix.
+ * tests/star/multi-fail.sh: New test.
+ * tests/Makefile.am: Added multi-fail.sh
+ * tests/star/README: Updated
+
+2004-02-29 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * NEWS: Updated
+ * configure.ac: Removed spurious AC_CHECK_LIB(iconv)
+ * src/common.h (utc_option): new global
+ (enum old_files.KEEP_NEWER_FILES): New element
+ * src/extract.c: Handle --keep-newer-files option
+ * src/list.c (tartime): Print UTC if --utc was given.
+ * src/tar.c: New options: --utc and keep-newer-files
+
+ * tests/Makefile.am: Added new tests
+ * tests/after: Rewritten
+ * tests/before: Rewritten
+ * tests/preset.in: Rewritten
+ * tests/delete03.sh: Accommodate for the new testsuite logic
+ * tests/gzip.sh: Likewise
+ * tests/incremen.sh: Likewise
+ * tests/listed01.sh: Likewise
+ * tests/multiv01.sh: Likewise
+ * tests/old.sh: Likewise
+ * tests/options.sh: Likewise
+ * tests/version.sh: Likewise
+ * tests/volume.sh: Likewise
+
+ * tests/star: New directory
+ * tests/star/README: New file
+ * tests/star/gtarfail.sh: New file
+ * tests/star/gtarfail2.sh: New file
+ * tests/star/pax-big-10g.sh: New file
+ * tests/star/qucktest.sh: New file
+ * tests/star/ustar-big-2g.sh: New file
+ * tests/star/ustar-big-8g.sh: New file
+
+2004-02-26 Paul Eggert <eggert@twinsun.com>
+
+ * doc/tar.texi (dircategory Individual utilities): Append period,
+ as suggested by Karl Berry.
+
+2004-02-24 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/list.c (decode_header): Call xheader_decode before
+ the assignment to current_stat_info.archive_file_size.
+
+2004-02-23 Paul Eggert <eggert@twinsun.com>
+
+ * configure.ac: Invoke AM_ICONV, to define ICONV_CONST if needed.
+
+2004-02-23 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ 1.13.93 released.
+
+ * NEWS: Updated
+ * tests/before: Move testing of the prerequisite archive formats
+ to the separate function 'prereq'. Do not expect any arguments
+ * tests/delete03.sh: Use prereq() instead of passing arguments
+ to 'before'.
+ * tests/incremen.sh: Likewise.
+ * tests/listed01.sh: Likewise.
+ * tests/multiv01.sh: Likewise.
+
+2004-02-22 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ Added UTF-8 support. Finished global extended header
+ support.
+
+ * NEWS: Minor fix
+ * configure.ac: Detect libiconv
+ * src/utf8.c: New file. Conversions to and from utf-8.
+ * src/Makefile.am: Added utf8.c
+ * src/create.c (write_header_name) In pax format, use
+ "path" keyword if the file name is not ASCII
+ (start_header): Likewise for uname and gname.
+ * src/list.c: Decode encountered global headers.
+ * src/xheader.c: Use keywords from the global
+ headers.
+ Correctly handle UTF-8 conversions.
+ (xheader_list_destroy): New function.
+ (xheader_set_single_keyword,xheader_set_keyword_equal): Added
+ missing gettext markers
+ (decode_record): Rewritten using caller-provided handler and
+ data closure.
+ * tests/listed01.sh: Give credit to Andreas Schuldei.
+
+2004-02-21 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/create.c (dump_file0): The conditional at line
+ 1296 prevented incremental backups on individual files
+ from working, as reported by Andreas Schuldei
+ <andreas@schuldei.org>.
+
+ This is due to the condition
+
+ (0 < top_level || !incremental_option)
+
+ Removing it makes incremental backups work for individual
+ files as well as for directories. On the other hand, it does
+ not affect other functionality, as shown by the reasoning below:
+
+ To begin with, the two parts of this condition are mutually
+ superfluous, because
+
+ 1) when top_level < 0, incremental_option == 1
+ so the condition yields false
+ 2) when top_level >= 0, incremental_option == 0
+ so the condition yields true.
+
+ In other words, it is completely equivalent to
+
+ (!incremental_option)
+
+ Now, let's consider the effect of its removal. There are two cases:
+
+ 1) when incremental_option==1
+ This means incremental backup in progress. In this case dump_file
+ is invoked only for directories or for files marked with 'Y' by
+ get_directory_contents. The latter are those that did not meet the
+ condition in incremen.c:242, which is exactly the same condition
+ as this at create.c:1296. So, for these files the check
+ (!incremental_option) is useless, since the rest of the
+ conditional will yield false anyway. On the other hand, if
+ dump_file is invoked on a directory, the conditional will yield
+ false due to !S_ISDIR assertion, so these will be processed as usual.
+
+ Thus, for this case the extra condition (!incremental_option) is
+ irrelevant, and its removal won't alter the behavior of tar,
+ *except* that it will enable incremental backups on individual
+ files, which is the wanted effect.
+
+ 2) when incremental_option==0
+ In this case the condition yields true and its removal does not
+ affect the functionality.
+
+ * THANKS: Updated
+ * configure.ac: Raised patchlevel to 93
+ * src/incremen.c: Minor stylistic fixes.
+ * tests/listed01.sh: New test. Check listed incremental
+ backups on individual files.
+ * tests/Makefile.am: Added listed01.sh
+
+2004-02-20 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/common.h (simple_finish_header,start_private_header): New
+ declarations
+ (xheader_ghdr_name): Changed declaration
+ * src/create.c (start_private_header): Removed static qualifier.
+ (write_extended): Removed superfluous last argument. Use
+ xheader_write()
+ (simple_finish_header): New function.
+ (finish_header): Use simple_finish_header() to break recursive
+ dependency between this function and write_extended().
+ * src/tar.c (assert_format): Do not bail out if several
+ --format arguments are given. This is a common case when
+ TAR_OPTIONS are used.
+ (decode_options): New option --show-defaults displays the
+ compiled-in defaults.
+ Use POSIX format if no --format option was given and
+ --pax-option was specified.
+ Do not allow to use --pax-option unless the archive format is
+ set to POSIX (or reading subcommand is requested).
+
+ * src/update.c (update_archive): Write global extended header if
+ constructed.
+ * src/xheader.c (xheader_format_name): Bugfix.
+ (xheader_xhdr_name): Changed the default extended header name
+ to '%d/PaxHeaders.%p/%f', as POSIX requires.
+ (xheader_ghdr_name): Removed unused argument.
+ (xheader_write,xheader_write_global): New function.
+ (xheader_decode): Modified to honor overrides whatever
+ the current archive format is.
+
+ * src/delete.c (delete_archive_members): Call xheader_decode
+ unconditionally.
+ * src/list.c (decode_header): Likewise.
+ * src/incremen.c (sort_obstack): Fixed typo in the comment
+
+ * doc/tar.texi: Document new default for extended
+ header names.
+
+ * tests/before: Accept an optional list of allowed archive
+ formats. Exit with the status 77 if the current archive
+ format does not match any of them.
+ * tests/delete03.sh: Require gnu, oldgnu or posix format
+ * tests/incremen.sh: Require gnu or oldgnu format
+ * tests/multiv01.sh: Likewise
+
+2004-02-20 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * doc/tar.texi (Option Summary): Documented --pax-option
+ * src/tar.c: Likewise.
+ * NEWS: Likewise.
+ * src/create.c (to_chars): Added a comment.
+ * src/tar.h: Comment to GNU_FORMAT
+
+2004-02-18 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * README: Updated
+ * configure.ac: Added stpcpy
+ * bootstrap: Likewise
+ * lib/Makefile.am: Likewise
+ * src/common.h (xheader_xhdr_name,xheader_ghdr_name): New
+ functions
+ * src/create.c (write_extended): Call xheader_xhdr_name
+ instead of using hardcoded "././@PaxHeader" name.
+ * src/tar.c: New option --pax-option (equivalent to -o option
+ of pax).
+ * src/xheader.c: Implement pax -o option. Fixed misleading
+ heading comment (introduced 2003-09-02).
+ * src/incremen.c: Minor fixes
+ * m4/.cvsignore: Updated
+
+2004-02-17 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/incremen.c: Removed accumulator stuff in favor of obstack.
+ (get_directory_contents): Split into two functions
+ * src/update.c: Minor changes
+ * doc/tar.texi: Fixed typo
+
+2004-02-15 Paul Eggert <eggert@twinsun.com>
+
+ Fix Debian bug 230872, originally reported by Jeff King in
+ <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=230872>.
+
+ * doc/tar.texi (posix compliance): Remove. The whole section
+ was a misunderstanding of what POSIXLY_CORRECT is supposed to
+ mean. The GNU Coding Standards says that POSIXLY_CORRECT
+ is for disabling extensions that are incompatible with POSIX:
+ it is not for disabling compatible extensions. All references
+ to this section removed.
+ (posix): This format is created only if the posix format is
+ specified; it is no longer created if gnu format is specified
+ and POSIXLY_CORRECT is set.
+ * src/tar.c (decode_options): Ignore POSIXLY_CORRECT.
+ POSIX does not specify the behavior of tar, so we should
+ not worry about POSIXLY_CORRECT here.
+
+2004-01-21 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * Makefile.am: Removed m4
+ * configure.ac: Require automake-1.8/autoconf-2.59. Removed
+ m4/Makefile.
+ * README-alpha: Updated
+ * bootstrap: Updated TP URL, improved help output. Default
+ to :ext:anoncvs and set CVS_RSH, unless already set.
+ * m4/Makefile.am: Removed
+
+2004-01-21 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * bootstrap: Bugfix by Marco Gerards <metgerards@student.han.nl>:
+ Use $option instead of $1 so all options will be parsed.
+
+2004-01-04 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ Started rewriting buffer.c ...
+
+ * bootstrap: New option --no-po
+ * src/buffer.c (new_volume,check_label_pattern): Changed return type.
+ (time_to_start_writing): Changed data type
+ (file_to_switch_to): Removed. Variable never assigned to.
+ (open_archive) Moved option compatibility checks to tar.c
+ Other minor changes.
+ * src/common.h (maybe_backup_file): Changed return type
+ * src/misc.c: Likewise.
+ * src/create.c: Updated invocations of safer_name_suffix
+ * src/extract.c: Likewise
+ * src/delete.c: Updated assignment to write_archive_to_stdout
+ * src/tar.c (decode_options): More option compatibility checks
+ (moved from buffer.c)
+ * src/update.c (time_to_start_writing): Changed data type.
+ * tests/recurse.sh: New test case.
+ * tests/mksparse.c: New file.
+ * tests/Makefile.am: Added recurse.sh and mksparse.c
+
+2004-01-02 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/sparse.c (sparse_diff_file): Bugfix. Thanks
+ Martin Simmons for the patch.
+ * src/create.c (dump_dir0): Bugfix. Thanks Piotr Czerwinski
+ <pius@pld-linux.org> for the patch.
+
+2003-12-26 Paul Eggert <eggert@twinsun.com>
+
+ Synchronize with Gettext 0.13.1, Automake 1.8, Autoconf 2.59,
+ and translation website.
+
+ * bootstrap: Don't bother skipping codeset.m4, glibc21.m4,
+ intdiv0.m4, inttypes_h.m4, inttypes.m4, inttypes-pri.m4,
+ isc-posix.m4, and lcmessage.m4 from gnulib. This list of files is
+ a bit obsolete anyway, now that gettext 0.13.1 is out. Also, the
+ files are replaced by autoreconf. Also, there seems to be a bug
+ in gettext/autoconf/automake if we try to omit these files after
+ autoreconf has replaced them, even though the gettext manual says
+ they're optional. So give up and just include them for now, even
+ though they make 'configure' longer and slower.
+
+ Change translation URL from
+ <http://www.iro.umontreal.ca/contrib/po/maint/tar/> to
+ <http://www2.iro.umontreal.ca/~gnutra/po/maint/tar/> to
+ accommodate translator website revamp.
+
+ Fail if autoreconf fails.
+
+ * m4/.cvsignore: Add intmax.m4, longdouble.m4, printf-posix.m4,
+ signed.m4, size_max.m4, wchar_t.m4, wint_t.m4, xsize.m4, to
+ ignore files now supplied by gettext 0.13.1.
+
+2003-12-25 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ Synchronized with the backup repository on Mirddin
+
+2003-12-19 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * configure.ac: Check for varios members of struct stat
+ that may represent file modification times with a subsecond
+ precision.
+ Check for utimes (for future use)
+ * src/buffer.c (short_read): Issue a warning on short reads.
+ * src/common.h (sys_stat_nanoseconds): New function
+ * src/create.c (dump_file0): Use sys_stat_nanoseconds().
+ * src/list.c (read_and): Treat only two successive zero
+ filled blocks as an EOF indicator. Issue a warning if
+ a single one is encountered.
+ * src/system.c (sys_stat_nanoseconds): New function
+ * src/tar.h (tar_stat_info.atime_nsec,mtime_nsec,ctime_nsec): New
+ members.
+ * src/xheader.c (code_time,decode_time): Support for subsecond
+ precision.
+ (atime_coder,atime_decoder,ctime_coder,ctime_decoder)
+ (mtime_coder,mtime_decoder): Update invocations of code_time and
+ decode_time.
+ (gid_decoder,size_decoder,uid_decoder,sparse_size_decoder)
+ (sparse_numblocks_decoder,sparse_offset_decoder)
+ (sparse_numbytes_decoder): Updated
+
+2003-12-18 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/names.c (safer_name_suffix): Reverted change made
+ 2003-11-14. Reason: Discussion with Paul Eggert and
+ Jean-Louis Martineau. See also ChangeLog entry from
+ 1999-08-14.
+ * tests/delete03.sh: Likewise.
+ * tests/extrac04.sh: Likewise.
+ * tests/multiv01.sh: Likewise.
+
+2003-12-12 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/incremen.c (write_directory_file): Use sys_truncate
+ * src/list.c (print_header): Use archive_file_size member
+ when printing real file size.
+ * src/sparse.c (sparse_scan_file): Correctly handle files with
+ a hole at the end.
+ (sparse_dump_region,sparse_extract_region): Allow for zero size
+ trailing blocks
+
+2003-12-12 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * configure.ac: Raised version number to 1.13.92
+ * src/list.c (decode_header): Discern between pax and ustar
+ formats
+ Initialize current_stat_info.archive_file_size.
+
+ NOTE: Modifications from this date on are temporarily
+ stored on local CVS on mirddin. This repository will
+ be synchronized with Savannah as soon as the latter
+ becomes operational again.
+
+2003-12-01 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * TODO: Updated
+ * src/sparse.c: Initial implementation of GNU/pax sparse
+ file format.
+ * src/common.h (xheader_store): Changed prototype.
+ * src/create.c: Update calls to xheader_store
+ * src/extract.c (extract_archive): Check reported size vs.
+ archive file size to determine if we have to do with a
+ sparse file.
+ * src/tar.c (usage): Cleaned up the sample argument to --newer
+ option.
+ (decode_options): Allow --sparse for POSIX_FORMAT archives.
+ * src/xheader.c (struct xhdr_tab.coder; all coder function): Added
+ extra argument
+ Implemented GNU.sparse.* keywords.
+
+2003-11-30 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * configure.ac: Check for setlocale. Thanks Bruno Haible for
+ reporting.
+
+2003-11-25 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/create.c (write_gnu_long_link): Use oldgnu
+ magic with @LongLink blocks.
+
+2003-11-17 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/tar.h: Support for star sparse format.
+ * src/sparse.c: Likewise.
+
+2003-11-17 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/sparse.c (sparse_diff_file): New function
+ * src/common.h (sys_compare_uid,sys_compare_gid): New functions
+ (sys_compare_uid_gid): Removed.
+ (sys_compare_links,report_difference): Changed prototype
+ (sparse_diff_file): New function
+ * src/system.c (sys_compare_uid,sys_compare_gid): New functions
+ (sys_compare_uid_gid): Removed.
+ (sys_compare_links): Changed declaration
+ * src/compare.c (diff_archive): Use sparse_diff_file.
+
+2003-11-16 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ Rewritten sparse file handling.
+
+ * src/sparse.c: New file. Provides a universal framework
+ for various methods for sparse files handling.
+ * src/Makefile.am: Added sparse.c
+ * src/common.h (struct sp_array,sparsearray,sp_array_size)
+ (init_sparsearray,fill_in_sparse_array): Removed
+ (enum dump_status): New data type
+ (pad_archive,close_diag,open_diag,read_diag_details)
+ (readlink_diag,savedir_diag,seek_diag_details,stat_diag): New
+ functions.
+ (sparse_file_p,sparse_dump_file,sparse_extract_file): New
+ functions.
+ (print_header): Changed prototype declaration.
+ * src/tar.h (struct sp_array): Declaration from common.h
+ (struct tar_stat_info): New members archive_file_size,
+ sparse_map_avail,sparse_map.
+ * src/create.c: Major rewrite.
+ * src/extract.c: Use new sparse file interface.
+ * src/compare.c (diff_sparse_files): Temporary placeholder.
+
+ * src/buffer.c: Minor changes
+ * src/tar.c: Likewise.
+ * src/list.c: Likewise.
+ * src/misc.c (close_diag,open_diag,read_diag_details)
+ (readlink_diag,savedir_diag,seek_diag_details,stat_diag): New
+ diagnostics functions.
+ * src/incremen.c: Use new diagnostics functions.
+ * src/names.c: Likewise.
+
+2003-11-14 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * configure.ac: Fixed check for setsockopt
+
+ * 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
+ names.
+
+2003-11-14 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/create.c (start_header): Removed debugging hook
+ (dump_file): Fixed handling of linkname field.
+ * src/names.c (safer_name_suffix): If the input
+ file name ends with a slash, output one should do so
+ as well.
+ * doc/tar.texi: Documented --format=ustar
+
+2003-11-14 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/tar.h (archive_format): USTAR_FORMAT: New type.
+ * src/create.c: Added POSIX.1-1988 support.
+ * src/names.c (safer_name_suffix): Skip leading ./
+ * src/tar.c: New option --format=ustar forces
+ POSIX.1-1988 archive format.
+ * tests/delete03.sh: Updated.
+ * tests/extrac04.sh: Updated.
+ * tests/multiv01.sh: Updated.
+
+2003-11-13 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/list.c (read_and): Initialize current_stat_info
+ and extended_header at the start of the loop.
+ * src/names.c (all_names_found): Check if the argument
+ contains valid filename. Fixes coredump on `not_a_tar_file'
+ * src/xheader.c (atime_decoder,gid_decoder,ctime_decoder)
+ (mtime_decoder,size_decoder,uid_decoder): Use xstrtoumax.
+ Fixes `pax-big-10g' bug.
+
+2003-11-12 Paul Eggert <eggert@twinsun.com>
+
+ Fix some C compatibility bugs reported by Joerg Schilling.
+
+ * src/common.h (stripped_prefix_len): Fix misspelling
+ "stripped_path_len" in declaration.
+ * src/rmt.c (main): Use "return FOO;" rather than
+ "exit (FOO);"; we no longer have to worry about
+ pre-ANSI hosts that mishandled returned values from "main".
+ * src/tar.c (main): Likewise. This avoids warnings on some
+ compilers.
+ * src/system.c: Include signal.h, for 'kill'.
+ * src/system.h (DEV_BSIZE): Remove.
+ (DEFAULT_ST_BLKSIZE): New macro.
+ (ST_BLKSIZE): Use it, instead of DEV_BSIZE.
+ * src/tar.c (enum): Remove comma just before }.
+
+2003-11-12 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/list.c (decode_header): Initialize st_atime and
+ st_ctime.
+
+2003-11-11 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * configure.ac (tar_save_LIBS): Bugfix. Thanks Adrian
+ Bunk <bunk@fs.tum.de> for reporting.
+ * doc/tar.texi: Fixed spelling. Thanks Martin Buchholz
+ <martin@xemacs.org> for spotting.
+
+2003-11-04 Paul Eggert <eggert@twinsun.com>
+
+ * src/xheader.c (xhdr_tab): Make it extern, not static, as C89 and
+ C99 require this.
+
+2003-10-26 Paul Eggert <eggert@twinsun.com>
+
+ * src/system.c (sys_spawn_shell): Cast trailing null to (char *).
+ Bug reported by Christian Weisgerber.
+
+2003-10-19 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * AUTHORS: Updated
+ * NEWS: Updated
+ * src/tar.c (decode_options): Removed superfluous archive format
+ check
+ * doc/tar.texi: Documented new features.
+
+2003-10-08 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * NEWS: Updated
+ * THANKS: Added Wojciech Polak
+ * configure.ac: Added checks for missing functions. Raised
+ version number to indicate alpha release.
+ * lib/Makefile.am: Added missing headers
+ * lib/waitpid.c: Added missing includes.
+ * src/extract.c: Likewise.
+ * src/names.c: Removed spurious includes.
+ * src/xheader.c: Likewise.
+ * src/system.h [MSDOS]: Fixed spelling of EACCES. Added
+ macro overriding broken mkdir prototypes.
+
+2003-10-04 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * configure.ac: Check for dev_t and ino_t.
+ * m4/Makefile.am: Added missing files.
+ * src/system.c: New file.
+ * src/Makefile.am: Added system.c
+ * src/common.h: Prototypes for functions from system.c
+ * src/system.h (SET_BINARY_MODE, ERRNO_IS_EACCESS): New defines
+ * src/buffer.c: Moved system dependencies to system.c
+ * src/compare.c: Likewise.
+ * src/create.c: Likewise.
+ * src/delete.c: Likewise.
+ * src/extract.c: Likewise.
+ * src/rtapelib.c: Likewise.
+
+2003-10-04 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ Implemented --occurrence option.
+
+ * NEWS: Updated.
+ * src/tar.c: New option --occurrence.
+ * src/common.h (occurrence_option): New global
+ (struct name): Changed `found' member to `uintmax_t
+ found_count'.
+ (names_done): Removed
+ (all_names_found): Changed prototype.
+ (ISFOUND,WASFOUND): New macros
+ * src/delete.c (delete_archive_members): Honor --occurrence
+ option.
+ * src/list.c (read_and): Likewise.
+ * src/names.c: Count number of occurrences of each name in the
+ archive.
+ (name_match): Honor --occurrence option.
+ (names_done): Removed
+ (all_names_found,names_notfound): Rewritten.
+
+2003-10-02 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/tar.c: Removed extra precaution regarding
+ subcommand_option == CAT_SUBCOMMAND
+ * lib/Makefile.am: Updated
+
+2003-10-02 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/common.h (names_done): New function.
+ * src/names.c: Likewise.
+ * src/list.c (read_and): Use all_names_found() as `while'
+ condition.
+ * src/tar.c: New option --first-copy
+ * NEWS: Updated
+
+2003-09-24 Paul Eggert <eggert@twinsun.com>
+
+ * src/rmt.c (main): Don't translate Copyright string; international
+ law says the word "Copyright" should be in English.
+ * src/tar.c (decode_options): Likewise.
+
+2003-09-22 Paul Eggert <eggert@twinsun.com>
+
+ * doc/tar.texi (extracting untrusted archives): New section.
+
+ * src/common.h (stripped_path_len): Renamed from cut_path_elements.
+ Return size_t, not pointer, so that we don't have to worry about
+ violating the C standard by converting char const * to char *.
+ All callers changed.
+ * src/names.c (stripped_path_len): Likewise. Strip file system
+ prefix, too. Count adjacent slashes as if they were one slash;
+ that is the POSIX standard.
+
+2003-09-17 Paul Eggert <eggert@twinsun.com>
+
+ * README-alpha: Document maintainer tool assumptions a bit. GNU
+ 'sed' is no longer required. For GNU m4 1.4, suggest the patch in
+ Debian bug 211447. Fix minor misspellings/whitespace nits.
+
+ * configure.ac (AC_AIX, AC_MINIX): Remove; subsumed by
+ gl_USE_SYSTEM_EXTENSIONS.
+
+ * lib/.cvsignore: Add exit.h, time_r.c, time_r.h.
+ * m4/.cvsignore: Add restrict.m4, time_r.m4.
+
+2003-09-17 Paul Eggert <eggert@twinsun.com>
+
+ * bootstrap: Don't use "for option; do";
+ Solaris 8 /bin/sh doesn't like that.
+
+2003-09-17 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * README-alpha: Updated
+ * bootstrap: Updated
+
+2003-09-17 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * README-alpha: Updated
+ * bootstrap: Updated
+ * po/POTFILES.in: Added src/xheader.c
+ * src/common.h (cut_path_elements): Added proto.
+
+2003-09-05 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/buffer.c: Use ngettext where appropriate.
+ * src/compare.c: Likewise.
+ * src/create.c: Likewise.
+ * src/misc.c: Likewise.
+ * src/tar.c: Likewise.
+ * src/update.c: Likewise.
+
+2003-09-04 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * .cvsignore: Added *.shar.gz
+ * NEWS: Updated
+ * 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 function.
+ * src/tar.c: New option --strip-path=NUM.
+ (decode_options) Assign boolean values to bool variables.
+
+2003-09-04 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/delete.c: Fixed deletion from the POSIX archives.
+ * src/list.c (read_header): Minor change.
+ * src/tar.c (main): Do not check for volume_label_option
+ if subcommand_option is not CREATE_SUBCOMMAND.
+ * src/xheader.c (xheader_decode): Store the header as
+ well (for eventual delete).
+
+ * tests/incremen.sh: Explicitly request GNU format. This will
+ disappear when GNU extended header keywords are working.
+ * tests/multiv01.sh: Likewise
+ * tests/volume.sh: Likewise
+
+2003-09-04 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/create.c: Support for "linkpath" extended keyword.
+ * src/xheader.c (decode_record): Reversed the return
+ condition.
+
+2003-09-03 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * configure.ac: Allow to redefine the default output format.
+ * src/tar.c: Use DEFAULT_ARCHIVE_FORMAT macro
+ (archive_format_string): New function.
+ (usage): Updated help output.
+ * README: Updated.
+ * NEWS: Updated.
+ * TODO: Updated.
+
+2003-09-02 Paul Eggert <eggert@twinsun.com>
+
+ * src/common.h (destroy_stat, xheader_decode, xheader_store,
+ xheader_read, xheader_finish, xheader_destroy): Add decls;
+ C99 requires this.
+
+ * src/create.c (write_extended): Remove unused local 'bufsize'.
+
+ * src/delete.c (delete_archive_members): Handle case of
+ HEADER_SUCCESS_EXTENDED followed by HEADER_FAILURE.
+ * src/list.c (read_and): Abort if HEADER_SUCCESS_EXTENDED
+ occurs, as it's not possible.
+ * src/update.c (update_archive): Likewise.
+
+ Use "const" when possible in new code.
+ * src/tar.c (struct fmttab.name): Now char const *. All uses changed.
+ (fmttab): Now const. All uses changed.
+ * src/xheader.c (struct xhdr_tab.keyword): Now pointer to const.
+ (struct xhdr_tab.coder, struct xhdr_tab.decoder, locate_handler,
+ decode_record, xheader_store, xheader_print, code_string, code_time,
+ code_num, dummy_coder, dummy_decoder, atime_coder, atime_decoder,
+ gid_coder, gid_decoder, gname_coder, gname_decoder, linkpath_coder,
+ linkpath_decoder, ctime_coder, ctime_decoder, mtime_coder,
+ mtime_decoder, path_coder, path_decoder, size_coder, size_decoder,
+ uid_coder, uid_decoder, uname_coder, uname_decoder):
+ Use pointers to const when possible.
+ (xhdr_tab): Now const.
+
+ * src/tar.c (fmttab): Avoid GCC warning by not eliding initializers.
+ (set_archive_format): Report an error if no format name matches,
+ instead of returning an undefined value.
+
+ * src/xheader.c (struct xhdr_tab.decoder, dummy_decoder,
+ atime_decoder, gid_decoder, gname_decoder, linkpath_decoder,
+ ctime_decoder, mtime_decoder, path_decoder, size_decoder,
+ uid_decoder, uname_decoder): Remove unused keyword arg.
+ All uses changed.
+
+ * src/tar.c (set_archive_format): Now static.
+ * src/xheader.c (xhdr_tab, format_uintmax): Now static.
+
+ * src/xheader.c (dummy_coder, dummy_decoder, atime_coder,
+ atime_decoder, gid_coder, gid_decoder, gname_coder, gname_decoder,
+ linkpath_coder, linkpath_decoder, mtime_coder, mtime_decoder,
+ ctime_coder, ctime_decoder, path_coder, path_decoder, size_coder,
+ size_decoder, uid_coder, uid_decoder, uname_coder, uname_decoder):
+ Remove forward decls; no longer needed.
+ (xhdr_tab): Move to end, so that the forward decls aren't needed.
+ Add a forward declaration.
+
+ Use 'bool' in new code, when appropriate.
+ * src/xheader.c (decode_record): Return bool, not int.
+ * src/common.h (read_header): Since it accepts bool, change
+ all callers to use false and true rather than 0 and 1.
+
+ * src/xheader.c (decode_record): Fix misspelling in diagnostic
+ "extended headed" -> "extended header".
+
+ GNU coding style fixes.
+ * src/xheader.c (decode_record, xheader_decode):
+ Do not use decls like "char *p, *q;".
+
+ Minor style fixes.
+ (xheader_store): Avoid parentheses around object operand of sizeof.
+
+2003-09-03 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/create.c (start_header): Store long file names
+ in "path" keyword of an extended header if in POSIX
+ mode.
+ (finish_header): print header before calling write_extended().
+ * src/list.c (list_archive): Always decode the header. This
+ is necessary so the extended header is processed and the correct
+ filename is printed no matter what the state of verbose_option.
+ * src/xheader.c (xhdr_tab): Reserved GNU keywords (commented out
+ for the time being).
+
+2003-09-01 Paul Eggert <eggert@twinsun.com>
+
+ Update from gnulib, and correct fnmatch to fnmatch-gnu.
+ * bootstrap (gnulib_modules): Change fnmatch to fnmatch-gnu.
+ Sort.
+ * configure.ac (gl_USE_SYSTEM_EXTENSIONS): Use this instead
+ of AC_GNU_SOURCE.
+ * lib/.cvsignore: Add alloca.h, stdbool.h. Sort. Append newline.
+ * lib/Makefile.am (lib_OBJECTS): New macro, for convenience when
+ copying rules from gnulib module descriptions.
+ (BUILT_SOURCES, EXTRA_DIST, all-local, alloca.h):
+ Update from gnulib modules alloca, fnmatch, getline, stdbool.
+ * m4/.cvsignore: Add utimes-null.m4. Sort.
+
+2003-09-01 Sergey Poznyakoff
+
+ Added initial support for creating POSIX headers.
+
+ * src/common.h (MAXOCTAL11,MAXOCTAL7): New defines
+ (string_to_chars): New functions
+ (struct xheader): Changed structure
+ (gid_to_gname,gname_to_gid,uid_to_uname,uname_to_uid): Changed
+ prototypes.
+ * src/create.c (string_to_chars): New function.
+ (write_extended): New function
+ (start_header): Create extended POSIX headers if necessary.
+ (finish_header): Likewise.
+ * src/list.c (print_header): Take user/group from
+ current_stat_info.
+ * src/names.c (gid_to_gname,gname_to_gid)
+ (uid_to_uname,uname_to_uid): Changed prototypes.
+ * src/tar.c: New option --format.
+ * src/tar.h (OLDGNU_COMPATIBILITY): Removed
+ (struct extra_header): Removed unused structure.
+ (union block.extra_header): Removed unused member.
+ * src/xheader.c: Implemented coder functions.
+ * bootstrap: Added obstack.
+ * lib/.cvsignore: Likewise.
+ * configure.ac: Added 'gl_OBSTACK'
+ * m4/Makefile.am: Added new files.
+ * m4/.cvsignore: Likewise.
+ * TODO: Minor formatting change
+
+2003-08-31 Sergey Poznyakoff
+
+ Added initial support for POSIX extended and STAR headers
+ (only for listing/extracting).
+
+ * src/xheader.c: New file.
+ * src/Makefile.am: Added xheader.c
+ * src/tar.h (struct star_header): New datatype
+ (XHDTYPE,XGLTYPE): New defines
+ (enum archive_format:STAR_FORMAT): New member
+ (struct tar_stat_info): New datatype.
+ (union block.star_header): New member.
+ * src/common.h (orig_file_name,current_file_name)
+ (current_trailing_slash,current_link_name): Removed variables.
+ (current_stat_info): New variable
+ (current_stat): Removed
+ (extended_header): New variable
+ (decode_header): Changed prototype.
+ * src/list.c (decode_header): Added initial support for POSIX extended
+ and STAR headers.
+ (skip_member): Check oldgnu_header only if current_format is set
+ to OLDGNU_FORMAT.
+ * src/buffer.c: Use current_stat_info
+ * src/compare.c: Likewise.
+ * src/create.c: Likewise.
+ * src/delete.c: Likewise.
+ * src/incremen.c: Likewise.
+ * src/mangle.c: Likewise.
+ * src/update.c: Likewise.
+ * src/extract.c: Likewise.
+ (make_directories): Improved check for the existence of the directory
+ * src/tar.c (destroy_stat): New function.
+
+2003-08-29 Paul Eggert <eggert@twinsun.com>
+
+ * NEWS, bootstrap: Drop en_GB locale; it was more trouble than it
+ was worth (e.g., different users in en_GB disagree about -ize
+ versus -ise).
+ * po/en_GB.po: Remove.
+
+2003-07-28 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * TODO: Updated
+ * NEWS: Updated
+ * src/tar.c: Removed support for the obsolete command line
+ options.
+ * doc/tar.texi: Removed references to the obsolete command
+ line options.
+