+2005-08-17 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * src/incremen.c (read_directory_file): Use strtoumax to read
+ snapshot file contents.
+ (write_directory_file_entry): Use umaxtostr().
+
+2005-07-31 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * src/create.c (file_dumpable_p,dump_file0): Fix handling of
+ sparse files to /dev/null with --totals option.
+ * tests/update.at: Remove dependency on file order.
+
+2005-07-08 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * doc/tar.texi: Fix typo.
+
+2005-07-07 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * tests/pipe.at: Pipe the output from `tar xfv' through sort.
+
+2005-06-25 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/sparse.c (tar_sparse_init): Fill structure with zeros. Call
+ sparse_select_optab(). All callers updated.
+ (sparse_member_p, sparse_fixup_header): Use tar_sparse_init().
+
+2005-06-23 Sergey Poznyakoff <gray@Mirddin.farlep.net>
+
+ * src/sparse.c (pax_sparse_member_p): Checking member size
+ vs. file size is not reliable enough. Use sparse_map_avail.
+
+ * tests/star/gtarfail.at: Adapt to the new output format
+ * tests/star/gtarfail2.at: Likewise
+ * tests/star/multi-fail.at: Likewise
+ * tests/star/pax-big-10g.at: Likewise
+ * tests/star/ustar-big-2g.at: Likewise
+ * tests/star/ustar-big-8g.at: Likewise
+
+ * 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
* 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
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
* 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.
+ * 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
(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 unneded references to files_from_option
+ Remove unneeded references to files_from_option
* doc/tar.texi: Document new options.
Moved rendition macros and option value definitions into
* 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
2004-12-17 Sergey Poznyakoff <gray@Mirddin.farlep.net>
* src/delete.c (delete_archive_members): Bugfix: when
- attempting to delete an unexisting member, the last
+ attempting to delete an nonexistent member, the last
blocking_factor blocks were zeroed.
2004-12-14 Paul Eggert <eggert@cs.ucla.edu>
* 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 accodingly.
- Set reading_from_pipe. This fixes contraversial set of changes
+ (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().
* configure.ac: Raised version number to 1.14
* NEWS: Updated.
* tests/after: Added copyleft statement
- * tests/before: Added copyleft statemente
+ * tests/before: Added copyleft statement
* tests/preset.in: Added copyleft statement
Tar 1.14 is released. Sources up to this point are tagged
2004-04-20 Sergey Poznyakoff <gray@Mirddin.farlep.net>
* configure.ac: Fixed test for iconv_t
- * src/rmt.h: Bugfix by Jürgen Weigert
- * THANKS: Add Jürgen Weigert
+ * src/rmt.h: Bugfix by Jürgen Weigert
+ * THANKS: Add Jürgen Weigert
* tests/star/README: Fixed typo
2004-04-04 Paul Eggert <eggert@twinsun.com>
* tests/after: Rewritten
* tests/before: Rewritten
* tests/preset.in: Rewritten
- * tests/delete03.sh: Accomodate for the new testsuite logic
+ * tests/delete03.sh: Accommodate for the new testsuite logic
* tests/gzip.sh: Likewise
* tests/incremen.sh: Likewise
* tests/listed01.sh: Likewise
* TODO: Updated
* src/common.h (strip_path_elements): New variable.
* src/extract.c (extract_archive): Implemented --strip-path
- * src/names.c (cut_path_elements): New functon.
+ * src/names.c (cut_path_elements): New function.
* src/tar.c: New option --strip-path=NUM.
(decode_options) Assign boolean values to bool variables.
* m4/mbstate_t.m4: Include stdio.h before wchar.h, to work around
a bug in glibc 2.1.3.
- * lib/xmalloc.c: Fix inaccorate comment for xrealloc.
+ * lib/xmalloc.c: Fix inaccurate comment for xrealloc.
2000-06-19 Paul Eggert <eggert@twinsun.com>
You should have received a copy of the GNU General Public License
along with GNU tar; see the file COPYING. If not, write to
-the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-Boston, MA 02111-1307, USA.
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+Boston, MA 02110-1301, USA.
\f
Local Variables:
mode: change-log