+2006-08-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * bootstrap: Don't exclude ja.po; it is working again.
+ Don't remove all old .po files if we're merely updating one.
+ * po/.cvsignore: Add Makevars.
+
+2006-08-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * src/tar.c: Work around limitation imposed by gettext 0.15
+ by concatenating strings with "\v" after translation.
+ (doc): Remove, splitting into:
+ (doc0, doc1): New constants.
+ (argp): Don't use doc; just initialize to NULL.
+ (initialize_argp_doc): New function.
+ (decode_options): Use it.
+
+ * bootstrap: Redo po file retrieval to match Bison's method,
+ since the translation project changed its index format.
+ Don't use --assume-autoconf; it's now replaced
+ by looking in configure.ac.
+ (m4/codeset.m4, m4/intdiv.m4, m4/inttypes-pri.m4, m4/isc-posix.m4):
+ (m4/lcmessage.m4, m4/onceonly_2_57.m4, m4/gettext.m4, m4/glibc21.m4):
+ (m4/inttypes_h.m4, m4/lib-ld.m4, m4/lib-prefix.m4, m4/po.m4):
+ (m4/stdint_h.m4, m4/uintmax_t.m4, m4/ulonglong.m4):
+ Don't rename to ..._gl.m4, as this is no longer needed.
+ (m4/geteext.m4): Patch to remove the need for intl/*.
+ Use autopoint manually, then remove the intl files,
+ then undo changes to gnulib files that autoreconf made,
+ and then run aclocal/autoconf/autoheader/automake.
+ This makes our bootstrap procedure closer to Bison's.
+ (po/Makevars): Generate automatically.
+ * configure.ac (AC_PREREQ): Update from 2.59 to 2.60.
+ (gl_AC_TYPE_INTMAX_T, jm_AC_TYPE_UINTMAX_T): Remove.
+ * gnulib.modules: Add inttypes, stdint.
+ * lib/.cvsignore: Add close-stream.c, close-stream.h,
+ stdint.h, stdint_.h.
+ * po/Makefile: Remove; now automatically generated.
+
+ * src/incremen.c (read_incr_db_01): Check input strings more
+ carefully. Do not pass arbitrary char values to isspace, as
+ this has undefined behavior. Likewise for assigning arbitrary
+ uintmax_t values to other types.
+ (read_negative_num, read_unsigned_num, read_timespec):
+ New functions, to check input values a bit more carefuly.
+ (read_num): Use read_unsigned_num. New arg MAX_VAL;
+ all callers changed.
+ (read_incr_db_2): Use these new functions.
+ Use a consistent diagnostic for unexpected EOF.
+ (read_directory_file): Do not assign arbitrary uintmax_t value
+ to int.
+ (read_timespec, write_directory_file_entry, write_directory_file):
+ Handle negative time_t values correctly. We don't bother to do
+ this with pre-2 formats, since presumably the time stamps were
+ output incorrectly.
+
+ * src/tar.c (doc): Don't use \v in an argument to gettext;
+ gettext 0.15 rejects this.
+
+2006-07-24 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * src/tar.c (decode_options): Do not require -L with -M -Hpax.
+ It could be needed in future, but currently it is not.
+ * src/create.c (to_chars_subst): Update comment regarding OLDGNU
+ vs. GNU format differences.
+ (mode_to_chars): Treat OLDGNU_FORMAT same as GNU_FORMAT. Fixes bug
+ reported by TAMUKI Shoichi <tamuki@linet.gr.jp>, which caused
+ equivalent `tar cf ...' and `tar rf ...' commands to produce
+ different archives.
+
+ * tests/append02.at: New test case
+ * tests/Makefile.am, tests/testsuite.at: Add append02.at
+
+2006-07-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ * bootstrap: Adjust to today's change to gnulib-tool by invoking
+ it with --assume-autoconf='latest-stable'.
+
+2006-07-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ Adjust to recent gnulib changes.
+ * lib/.cvsignore: Remove atexit.c, exit.c, getndelim2.c, getndelim2.h,
+ pathmax.h, paxconvert.c, paxerror.h, xstrdup.c.
+ Add inttypes.h, mktime.c, wcwidth.h, xstrndup.c, xstrndup.h.
+ * src/create.c (start_header): Adjust to API change to mode_adjust.
+
+2006-07-09 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * THANKS: Add Ralf Wildenhues
+ * NEWS: Update
+
+2006-07-09 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * doc/dumpdir.texi, doc/snapshot.texi, doc/sparse.texi,
+ doc/tar.texi: Fix some typos.
+
+2006-07-06 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ tar --index-file=FILE --file=- sent the archive to FILE, and
+ the listing to stderr. Bug reported by Marcin Gryszkalis
+ <mg@fork.pl>
+
+ * src/buffer.c (_open_archive): Remove stdlis initialization
+ * src/tar.c (decode_options): Initialize stdlis
+ * tests/indexfile.at: New test case
+ * tests/testsuite.at: Include indexfile.at
+ * tests/Makefile.am (TESTSUITE_AT): Add indexfile.at
+
+2006-07-05 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * doc/Makefile.am (manual): Fix TEXINPUTS
+ * doc/rendition.texi (FIXME): Do not use deprecated @quote-args.
+ Do not use @allow-recursion. In its current form the macro is not
+ recursive.
+
+2006-07-03 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * bootstrap (update_po): Fix single translation update
+
+2006-07-03 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * configure.ac (AC_CHECK_FUNCS): Check for getdtablesize
+ * src/common.h (closeopen): New function
+ * src/misc.c (chdir_arg): Use x2nrealloc to reallocate wd.
+ (get_max_open_files,closeopen): New functions
+ (chdir_do): Do not use save_cwd if it was already used more than
+ max_open_files-4 times to avoid running off the file
+ descriptors.
+ * src/tar.c (main): Call closeopen
+ * doc/tar.texi: Update --directory description
+ * NEWS: Update
+
+2006-06-26 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * doc/tar.texi: Update. Add cross-references.
+ * doc/sparse.texi: Add cross-references.
+
+2006-06-25 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * scripts/xsparse.c: A sample utility to expand sparse files
+ extracted by third-party tars. It is not meant to be installed nor
+ to be included in the distribution. It is here, so that it can be
+ obtained either from CVS or from the tar web site.
+ * doc/Makefile.am (tar_TEXINFOS): Sorted
+ * doc/tar.texi (Other Tars): New node describing how to extract
+ GNU-specific member formats using third-party tars.
+ * src/common.h (sparse_file_p): Remove
+ * src/sparse.c: Likewise
+ * src/create.c: Use ST_IS_SPARSE instead of sparse_file_p (update
+ paxutils first)
+ * src/tar.c: --sparse-version turns on --sparse
+
+2006-06-24 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * src/buffer.c (print_total_stats): Add default case.
+ * src/common.h (name_init): New prototype.
+ (xheader_string_end): Return bool.
+ * src/extract.c (extract_volhdr): Add missing return
+ * src/incremen.c: Remove not used variables
+ * src/sparse.c (pax_dump_header_0): Return false if
+ xheader_string_end fails (for 0.1 formats).
+ (pax_dump_header): Return meaningful value
+ * src/transform.c (segm_count): Change type to size_t
+ * src/xheader.c (xhdr_tab.decoder): pass keyword as a second
+ argument. All callers changed.
+ (decode_record): Check for numeric overflow
+ (xheader_string_end): Return boolean value. Check for possible
+ numeric overflow
+
+2006-06-23 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * doc/sparse.texi: New file
+ * doc/Makefile.am (tar_TEXINFOS): Add sparse.texi
+ * doc/intern.texi (Sparse Formats): New node
+ * doc/tar.texi: Update master menu
+
+ * src/common.h (tar_sparse_major,tar_sparse_minor): New globals.
+ * src/sparse.c: Implement sparse format versioning. Implement new
+ version (1.0) of PAX sparse format.
+ (pax_sparse_member_p): Fix condition
+ (pax_dump_header): A dispatcher function
+ (pax_dump_header_0,pax_dump_header_1): New functions.
+ (pax_optab): Update
+ (oldgnu_dump_header): Minor fix: make sure
+ sparse_header.isextended is set before calling
+ set_next_block_after
+ * src/tar.c: New option --sparse-version
+ * src/tar.h (struct tar_stat_info.sparse_major,sparse_minor): New
+ members.
+ * src/xheader.c: Implement new keywords: GNU.sparse.name,
+ GNU.sparse.major, GNU.sparse.minor, GNU.sparse.realsize
+
+ * tests/spmpv00.at, tests/spmvp01.at, tests/spmvp10.at: New
+ testcases.
+
+ * tests/Makefile.am: Add spmvp00.at, spmpv01.at, spmpv10.at
+ * tests/shortrec.at: Explicitely give `-f -' to the tar invocation
+ * tests/sparsemvp.at: Rewritten as an include file.
+ (TAR_MVP_TEST): New macro
+ * tests/testsuite.at: Include sparsemvp.at, spmvp00.at,
+ spmvp01.at, spmvp10.at
+
+2006-06-21 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * doc/tar.texi (Overriding File Metadata): New node
+ Document --mtime option.
+ * src/common.h (set_mtime_option,mtime_option): New globals
+ * src/create.c (start_header): Override mtime if requested
+ * src/tar.c: Implement new option, --mtime, allowing to set
+ modification times for all archive members during creation.
+ (struct tar_args): textual_date_option replaced with a linked list
+ textual_date. All references updated.
+ (get_date_or_file,report_textual_dates): New functions.
+ * configure.ac: Raise version number to 1.15.92
+ * NEWS: Update
+
+2006-06-20 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * src/common.h (struct name.explicit): Remove
+ Use variable names in all declarations
+ (name_scan): Remove second argument
+ * src/delete.c: Remove second argument from calls to name_scan
+ * src/update.c: Likewise
+ * src/incremen.c (procdir): Use is_individual_file to check for
+ files explicitely specified in the command line. Fixes bug
+ reported by Dat Head on 19 Jun 2006 (descending into mountpoints
+ with --one-file-system in use)
+ * src/misc.c (maybe_backup_file): Second argument is bool
+ * src/names.c (name_next_elt): Call register_individual_file
+ (namelist_match): Remove third argument
+ (name_match): Change return type to bool
+ (name_scan): Remove second argument
+ * src/sparse.c (pax_dump_header): Store original sparse file name
+ in GNU.sparse.name variable. The name field in the ustar header
+ now contains generated name (%d/GNUSparseFile.%p/%f), so that
+ non-pax-aware tars won't extract the file under the original
+ filename.
+ * src/xheader.c (GNU.sparse.name): New variable for storing sparse
+ file name.
+
+2006-06-13 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * doc/Makefile.am (check-options): Expand macros before grepping
+ in $(info_TEXINFOS)
+ * doc/rendition.texi (FIXME) [!PROOF_FOOTNOTED]: Enclose in a
+ cartouche
+ * doc/tar.texi: Define op as codeindex. Use special macros to
+ populate it
+ Consequently prefer @dfn{long options} over @dfn{mnemonic
+ options}.
+ Document --unquote, --no-unquote
+ (Short Option Summary): Build a table of cross-references to the
+ corresponding long options.
+ (Using Multiple Tapes,Multi-Volume Archives): Rewritten
+
+ * doc/value.texi (xopindex,opsummary): New macros
+
+ * doc/Makefile.am (check-options): New goal
+ * doc/tar.texi: Update
+ * src/tar.c: Implement --overwrite-dir option (long ago
+ documented).
+
+2006-06-12 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * doc/tar.texi: Document better the --totals option
+ * NEWS: Update
+ * src/buffer.c (total_blocks_deleted): New variable
+ (set_start_time): Set volume_start_time and last_stat_time as well
+ (set_volume_start_time): New function
+ (compute_duration): Do not call set_start_time, update
+ last_stat_time instead. Use it in calculation instead of
+ start_time, which is now set only once, upon startup.
+ (print_total_written): Removed.
+ (print_total_stats): New function for printing byte/speed statistics.
+ (_open_archive): Detect attempts to update compressed archives.
+ (_gnu_flush_write): Always update prev_written.
+ (open_archive): Call set_volume_start_time.
+ * src/common.h (volume_start_time,last_stat_time): New globals
+ (print_total_written): Replaced with:
+ (print_total_stats): New function
+ * src/delete.c (records_skipped): Remove static qualifier, the
+ variable is used by print_total_stats in buffer.c
+ * src/extract.c (check_time): Use volume_start_time when checking
+ for timestamp plausability.
+ * src/tar.c: (options, parse_opt): Allow for optional argument to
+ the --totals option, which specifies a signal upon delivery of which
+ the statistics must be output.
+ (main): Call print_total_stats if total_option is set.
+
+2006-06-11 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * src/xheader.c (xheader_set_single_keyword): Fix typo.
+ (decode_time): Avoid using gotos.
+
+ * doc/mastermenu.el: New file
+ * doc/Makefile.am (master-menu): New goal
+ * doc/tar.texi: Update master menu
+
+2006-06-10 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * doc/tar.texi: Remove leftover include
+
+2006-06-09 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * doc/Makefile.am (tar_TEXINFOS): Add intern.texi
+ (EXTRA_DIST): Remove convtexi.pl, add texify.sed
+ * doc/intern.texi: New file
+ * doc/convtexi.pl: Remove
+ * doc/texify.sed: Auxiliary script to convert ../src/tar.h to
+ header.texi
+ * doc/rendition.texi: Fix typo
+ * doc/tar.texi: Update
+ * src/tar.h: Fix indentation, introduce end-of-format marker for
+ texify.sed
+
+ * THANKS: Add Jason Armistead
+ * doc/tar.texi: Update
+ * NEWS: Update
+ * src/buffer.c: Implement more flexible checkpoint style
+ * src/common.h (checkpoint_option): Change type to unsigned
+ (checkpoint_style): New variable.
+ * src/tar.c: --checkpoint takes an optional argument specifying
+ number of records between two successive checkpoints (proposed
+ by Jason Armistead on 2004-06-22). Optional dot starting the
+ argument means "print dots instead of textual checkpoints".
+ (tar_help): New function
+ * src/transform.c: Minor fixes.
+
+2006-06-08 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * gnulib.modules: Add mkdtemp
+ * doc/dumpdir.texi: New file
+ * doc/Makefile.am (tar_TEXINFOS): Add dumpdir.texi
+ * doc/tar.texi: Document dumpdir format
+ * src/incremen.c (dumpdir_locate,obstack_code_rename):
+ (purge_directory): Re-implement renaming. Introduce
+ 'X' control code.
+ (make_tmp_dir_name): Remove
+
+ * src/transform.c (set_transform_expr,_transform_name_to_obstack):
+ Implement NUMBER flag.
+ (add_char_segment): Fix length assignement
+
+ * doc/tar.texi: Update
+
+2006-06-07 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * src/transform.c (transform_name_fp): Run fun even if
+ _transform_name_to_obstack returns false.
+ (_transform_name_to_obstack,set_transform_expr): Implement GNU
+ extension case conversion operations.
+
+ * doc/tar.texi (transform): Document the option.
+
+2006-06-02 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * NEWS: Update
+ * src/common.h (set_transform_expr): New function
+ * tests/Makefile.am: Add incr04.at
+ * tests/testsuite.at: Likewise
+ * tests/incr04.at: New test case
+ * tests/long01.at: Fix typo in the comment
+ * tests/multiv04.at: Use genfile --files-from
+
+ (Above changes need new genfile.c from paxutils)
+
+ * TODO: Update
+ * NEWS: Update
+ * doc/tar.texi: Update
+ * src/transform.c: New file
+ * src/Makefile.am (tar_SOURCES): New module transform.c
+ * src/common.h (transform_name, transform_name_fp): New functions
+ (show_stored_names_option): Renamed to
+ show_transformed_names_option. All uses changed
+ * src/create.c (dump_file0): Transform file name
+ * src/extract.c (extract_archive): safer_name_suffix and
+ stripped_prefix_len are now called by decode_header
+ * src/list.c (print_header): Update displayable name selection.
+ * src/tar.c: New option --transform
+ New option --show-transformed-names generalizes
+ --show-stored-names. The latter is retained as an alias.
+
+2006-05-31 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * src/incremen.c (make_directory): Fix initialization of struct
+ directory.
+
+2006-05-25 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * doc/tar.texi: Document use of globbing patterns.
+ * src/tar.c (parse_opt): Add comment before --preserve case.
+
+2006-05-24 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * NEWS: Update
+ * doc/tar.texi: Update
+ * configure.ac (AM_INIT_AUTOMAKE): Use tar-ustar option. Raise
+ version requirement to 1.9
+ * src/common.h (struct name): Refactured
+ (warn_regex_usage): New variable.
+ (dump_file): First argument is const char*.
+ (name_init,name_add): Removed
+ (name_add_name,name_add_dir): New functions
+ (name_next): Return const char*.
+ * src/create.c: (dump_file,dump_file0): First argument is const
+ char*. All callers updated.
+ * src/names.c: Rewritten handling of member names in the command
+ line. Tar no longer attempts to guess globbing patterns, instead
+ it relies on --wildcard option.
+ (init_names): Removed.
+ (struct name_elt): New structure.
+ (name_array): Change type to struct name_elt. All references updated
+ (name_add_name,name_add_dir): New functions
+ (name_next_elt): New function
+ (name_next): Rewritten using name_next_elt.
+ (namelist_match): Rewritten pattern matching using
+ exclude_fnmatch.
+ (names_notfound): Warn if globbing patterns were used without
+ --wildcards option
+ * src/tar.c (options): Move globbing-related options into a
+ separate group. Set -l as an alias to --check-links, as required
+ by UNIX98
+ (struct tar_args): New fields
+ wildcards,matching_flags,include_anchored
+ (MAKE_EXCL_OPTIONS,MAKE_INCL_OPTIONS): New macros
+ (parse_opt): Use x2nrealloc to grow archive_name_array.
+ Use MAKE_EXCL_OPTIONS,MAKE_INCL_OPTIONS to create appropriate
+ fnmatch options, and name_add_name,name_add_dir to handle member
+ name and -C arguments.
+ (decode_options): Likewise
+ (main): Remove call to init_names.
+
+ * tests/append.at, tests/append01.at, tests/extrac01.at,
+ tests/options.at, tests/options02.at, tests/same-order01.at,
+ tests/same-order02.at: Make AT_SETUP more readable.
+
+2006-05-23 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * src/buffer.c (change_tape_menu): Fix typo (uninitialized
+ variable) introduced yesterday.
+
+2006-05-22 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * doc/tar.texi: Use @var{file_name} instead of @var{file name}
+ * src/buffer.c (change_tape_menu): Break the loop after obtaining
+ new archive name. Check for empty input line.
+
+2006-05-15 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * tests/atlocal.in (XFAILFILE): New variable
+ * tests/version.at: Create $XFAILFILE on failure
+ * tests/testsuite.at (AT_TAR_CHECK): Declare expected failure if
+ $XFAILFILE exists.
+
+2006-05-13 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * THANKS: Update
+ * src/buffer.c (read_header0): Use read_header_primitive to avoid
+ clubbering current_tar_info. All callers updated.
+ * src/common.h (read_header_primitive): New function
+ * src/extract.c (extract_volhdr): New function
+ (prepare_to_extract): Use extract_volhdr as extractor for volume
+ names.
+ * src/list.c (read_header_primitive): New function
+ (read_header): Front end for read_header_primitive
+ * tests/chtype.at: New file
+ * tests/volsize.at: New file
+ * tests/Makefile.am (TESTSUITE_AT): Add chtype.at, volsize.at
+ (check-full): New target.
+ * tests/atlocal.in (TEST_DATA_URL,STAR_DATA_URL)
+ (STAR_TESTSCRIPTS): Provide default values.
+ (tarball_prereq): New function
+ * tests/testsuite.at (AT_TARBALL_PREREQ): New defun
+ (AT_STAR_PREREQ): Rewrite using tarball_prereq
+ Include chtype.at and volsize.at
+ * tests/volume.at: Add keywords.
+
+ * tests/star/gtarfail.at, tests/star/gtarfail2.at,
+ tests/star/multi-fail.at, tests/star/pax-big-10g.at,
+ tests/star/ustar-big-2g.at, tests/star/ustar-big-8g.at
+ (AT_STAR_PREREQ): Provide md5 sum.
+
+ * lib/.cvsignore: Update
+
+2006-05-08 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * tests/testsuite.at (AT_SORT_PREREQ, AT_UNPRIVILEGED_PREREQ): New
+ defines
+
+ * tests/extrac04.at, tests/incr03.at, tests/listed02.at,
+ tests/pipe.at, tests/rename01.at, tests/rename02.at,
+ tests/rename03.at, tests/same-order01.at: Call
+ AT_SORT_PREREQ. Remove fd 2 redirection after calls to sort
+ * ignfail.at: Call AT_UNPRIVILEGED_PREREQ
+
+2006-05-08 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ Listed incremental backups: keep more information about
+ directories. Handle renamed directories more effectively
+ (initial implementation, more updates to follow).
+ Source tree before this point is tagged
+ alpha_1_15_90_incremental_1.
+
+ * NEWS: Update
+ * configure.ac: Raise version number to 1.15.91
+ * src/common.h (rename_directory,append_incremental_renames): New
+ functions.
+ * src/extract.c (rename_directory): New function
+ * src/incremen.c (struct directory.contents, flags): New members
+ (nfs,found,new): Remove. Replaced by appropriate bitmask values in
+ `flags' field. All uses updated.
+ (directory_meta_table): New table.
+ (hash_directory): Rename to hash_directory_name
+ (compare_directories): Rename to compare_directory_names
+ (hash_directory_meta,compare_directory_meta,find_directory_meta):
+ New functions
+ (compare_dirents): Removed
+ (note_directory): Get 7th argument: directory contents.
+ All callers updated
+ (dumpdir_locate,makedumpdir): New functions
+ (scan_directory): Rewritten. Use makedumpdir to create a sorted
+ dumpdir array. This makes the obstack argument unnecessary. Besides,
+ ALL_CHILDREN flag is set only for new directories.
+ (procdir): Change return type to struct directory. Return
+ immediately if the directory was already initialized. Discover
+ directory renames using directory_meta_table.
+ (append_incremental_renames): New function.
+ (read_directory_file, write_directory_file): Use new snapshot file
+ format.
+ * src/names.c (collect_and_sort_names): Update dir_contents of the
+ first non-fake name entry when in listed incremental mode.
+
+ * tests/incr03.at: New testcase
+ * tests/rename01.at: New testcase
+ * tests/rename02.at: New testcase
+ * tests/rename03.at: New testcase
+ * tests/Makefile.am: Add
+ incr03.at,rename01.at,rename02.at,rename03.at
+ * tests/testsuite.at: Likewise.
+ * tests/listed02.at: Update for the new behavior
+ * tests/multiv04.at (AT_KEYWORDS): Add missing incremental kw.
+
+2006-05-02 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * src/buffer.c (try_new_volume): Attempt to continue if the name
+ is apparently truncated in a GNU format volume.
+
+ * tests/comprec.at, tests/delete01.at, tests/delete02.at,
+ tests/delete04.at, tests/delete05.at, tests/extrac05.at,
+ tests/listed01.at, tests/multiv01.at, tests/multiv02.at,
+ tests/pipe.at, tests/same-order01.at, tests/same-order02.at,
+ tests/sparse01.at, tests/sparse03.at: Always use genfile --file,
+ this enables extra error checking.
+
+ * tests/multiv03.at: Attempt to extract a member with truncated
+ file name from the archive.
+
+ * src/buffer.c (_open_archive): Remove unnecessary argument to
+ check_compressed_archive.
+
+2006-04-25 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * tests/sparse01.at, tests/sparse02.at, tests/sparse03.at,
+ tests/sparsemv.at, tests/sparsemvp.at: Skip the test if the file
+ system does not support sparse files.
+ * doc/tar.texi (@copying): Remove the reference to not existing
+ invariant section.
+
+2006-04-11 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * src/extract.c (extract_dir): Fix toggling existing directory
+ permissions (Debian bug #361077). Use parts of patch provided by
+ Ian Jackson <iwj@ubuntu.com>.
+ * src/compare.c: Minor changes
+ * src/incremen.c (directory.new): New member
+ (note_directory,find_directory: Use make_directory to create
+ struct directory entries
+ (procdir): Avoid duplicating directories in the incremental
+ backup map.
+ * tests/Makefile.am (TESTSUITE_AT): Add extrac06.at
+ * tests/testsuite.at: Include extrac06.at
+
+2006-03-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de> (trivial change)
+
+ * tests/atlocal.in (PATH): Add build-aux from the source tree,
+ not the build tree.
+
+2006-03-13 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * THANKS: Add Benno Schulenberg
+
+2006-03-13 Jim Meyering <jim@meyering.net>
+
+ * tests/listed02.at: Sort the two lines of stderr from the
+ first `tar -v --listed-incremental'. They would come out
+ reversed and provoke a test failure on a tmpfs
+ file system.
+
+2006-03-13 Benno Schulenberg <benno@nietvergeten.nl>
+
+ * doc/tar.texi: Minor fixes.
+ * src/tar.c (options): Consistently begin help messages with a
+ lowercase letter.
+
+2006-03-12 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * tests/Makefile.am (AM_CPPFLAGS): Define LOCALEDIR
+
+2006-03-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * src/buffer.c (record_buffer_aligned): New var.
+ (init_buffer): Use it to ensure that the buffer is aligned.
+ This doesn't result in any measurable performance improvement
+ on my host (Debian GNU/Linux 3.1 stable, with default block size),
+ but I assume it does help on some hosts.
+
+ * lib/.cvsignore: Sort.
+
+2006-03-04 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * tests/shortrec.at: Use -f - to read from stdin.
+
+2006-02-21 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * doc/tar.texi: Fix typo: --to-command instead of --to-program
+
+2006-02-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ * tests/multiv04.at (split directory members in a MV archive):
+ Don't use %X in an awk printf format; this doesn't work with
+ Solaris 10 /usr/bin/awk. Use %x instead.
+
+2006-02-20 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * src/create.c (split_long_name): Fix maximum length estimation.
+ Patch by Jim Lowe.
+ * tests/Makefile.am (lustar01.at,lustar02.at,lustar03.at): New
+ tests.
+ * tests/atlocal.in: Add build-aux to the PATH
+ * tests/long01.at: Remove mkhier, use AT_TAR_MKHIER instead
+ * tests/longv7.at: Reword test title
+ * tests/lustar01.at: New test
+ * tests/lustar02.at: New test
+ * tests/lustar03.at: New test
+ * tests/testsuite.at (AT_TAR_MKHIER): New macro
+ (lustar01.at,lustar02.at,lustar03.at): New tests.
+
+2006-02-20 Paul Eggert <eggert@cs.ucla.edu>
+
+ * bootstrap: Don't claim lib/Makefile.am is generated automatically
+ from itself.
+
+ Avoid installation glitches on Solaris 8 with Sun C 5.4.
+ * lib/.cvsignore: Add system-ioctl.h.
+ * lib/Makefile.tmpl (noinst_HEADERS): Add system-ioctl.h.
+ * src/buffer.c: Include system-ioctl.h.
+ * src/compare.c: Likewise.
+ * src/delete.c: Likewise.
+ * src/system.c: Include <getline.h>, <setenv.h>.
+ * src/tar.c: Include <getline.h>.
+
+2006-02-19 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * src/buffer.c (add_chunk_header): Free st.orig_file_name after
+ calling finish_header().
+ (new_volume): Prompt the user for archive name if unable to open
+ next archive.
+
+ * src/create.c (dump_file0): Restore file_count_links,
+ accidentally removed on 2005-11-29.
+ * configure.ac: Raise version number to 1.15.90
+ * NEWS: Likewise.
+
+2006-02-08 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * src/tar.c (tar_set_quoting_style): Provide second argument to
+ the format spec: program_invocation_short_name. Reported by Jim
+ Meyering.
+
+2006-02-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * gnulib.modules: Add closeout, exitfial.
+ * lib/.cvsignore: Add __fpending.c, __fpending.h, closeout.c,
+ closeout.h.
+ * src/buffer.c: Incluse closeout.h.
+ (_open_archive): Use freopen rather than fopen, so
+ that stdlis is always either stdout or stderr. Use
+ close_stdout_set_file_name to report its name.
+ * src/tar.c: Include closeout.h and exitfail.h.
+ (parse_opt, usage): Call close_stdout as appropriate, to check for
+ write errors.
+ (decode_options): Exit with status TAREXIT_FAILURE, not 1.
+ (main): Set exit_failure, to exit with proper status on memory
+ allocation failure and the like.
+ Use close_stdout rather than rolling our own test.
+
+ * NEWS: --version now outputs copyright etc., to conform to the
+ GNU coding standards. Remove --license.
+ * gnulib.modules: Add version-etc-fsf.
+ * doc/tar.texi: Document the change.
+ * lib/.cvsignore: Add version-etc-fsf.c, version-etc.c, version-etc.h.
+ * scripts/Makefile.am (SED_CMD): Update PAKCAGE_NAME, not PACKAGE.
+ * scripts/backup.in: Remove --license. Change --version to conform
+ to GCS.
+ * scripts/restore.in: Likewise.
+ * scripts/backup.sh.in (license): Output briefer license in the
+ style of coreutils, for consistency with other changes.
+ * src/tar.c: Include <version-etc.h>.
+ (LICENSE_OPTION): Remove.
+ (options): Remove --license.
+ (license): Remove.
+ (parse_opt): Use version_etc instead of rolling it ourselves.
+ Remove --license.
+ * tests/version.at (tar --version): Check only the first line of
+ output.
+
+ * ChangeLog, NEWS, src/common.h, src/extract.c, src/incremen.c:
+ * src/list.c, src/names.c, src/tar.h, src/xheader.c:
+ Update copyright year to 2006.
+
+2006-02-07 Jim Meyering <jim@meyering.net>
+
+ * src/xheader.c (sparse_map_decoder): Fix misleading diagnostic.
+
+2006-01-31 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * src/common.h (get_gnu_dumpdir): Remove prototype
+ (is_dumpdir): New function
+ * src/extract.c (prepare_to_extract): Use is_dumpdir member to
+ check for dumpdirs.
+ * src/incremen.c (get_gnu_dumpdir): Static
+ (is_dumpdir): New function
+ (purge_directory): Use is_dumpdir
+ * src/list.c (list_archive): Use is_dumpdir
+ Do not wrap skip_member in mv_begin/mv_end, the function itself
+ takes care of it.
+ (decode_header): Set stat_info->is_dumpdir
+ (skip_member): Do nothing if skipped is true
+ * src/tar.h (struct tar_stat_info): New members is_dumpdir and skipped.
+
+2006-01-22 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * src/tar.c (decode_options): Refuse using --delete with
+ compression options.
+
+2006-01-18 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * NEWS: Updated.
+ * configure.ac (DEFAULT_QUOTING_STYLE): New configuration variable
+ * doc/tar.texi: Initial documentation for --quoting-style,
+ --quote-chars and --no-quote-chars option.
+ * src/tar.c: Implement new options --quoting-style, --quote-chars
+ and --no-quote-chars.
+
+2006-01-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ * bootstrap: Default to pserver, and switch to cvs.sv.gnu.org,
+ to accommodate recent changes to the GNU CVS server.
+ * lib/.cvsignore: Add argp-pin.c, mkdirat.c, openat-priv.h.
+
+2005-12-14 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * src/names.c (name_scan): Take an additional argument requesting
+ exact matching.
+ * src/common.h (name_scan): Change prototype.
+ * src/delete.c, src/incremen.c, src/update.c: Update invocations
+ of name_scan.
+
+2005-12-13 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * src/common.h (struct name): New member `explicit'. Remove unused
+ member `isdir'.
+ * src/incremen.c (procdir): If name_scan() returns something,
+ check if it was explicitely given in the command line
+ * src/names.c (addname,add_hierarchy_to_namelist): Initialize
+ explicit member appropriately.
+
+ * src/incremen.c (procdir): If --one-file-system is given and a
+ directory is found to be on another device, *and* this directory
+ is explicitely given in the command line, then do not omit it.
+
+2005-12-11 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * NEWS: Update
+ * doc/tar.texi: Document --delay-directory-restore option.
+ (Configuring Help Summary): Document usage of ARGP_HELP_FMT
+ variable to customize help output.
+ * src/common.h (delay_directory_restore_option): New global.
+ * src/extract.c (directories_first): Replaced by
+ delay_directory_restore_option. All uses changed.
+ * src/tar.c (options,parse_opt): New options
+ --delay-directory-restore and --no-delay-directory-restore
+
+2005-12-09 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * src/buffer.c (open_archive): Add default case to shut up gcc.
+ * src/common.h (set_file_atime): Add prototype.
+ * src/create.c (to_chars_subst): Remove unused variable
+ Make sure useful result code is returned.
+ * src/incremen.c (read_directory_file): Fix format string
+ Thanks Eric Blake for reporting.
+
+2005-12-08 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * doc/tar.texi (Current status): Renamed to 'Changes' and moved to
+ appendices.
+ (Large or Negative Values): Rewritten
+ * src/common.h (gid_to_chars, major_to_chars, minor_to_chars)
+ (mode_to_chars, off_to_chars, size_to_chars, time_to_chars)
+ (uid_to_chars, uintmax_to_chars): Return bool
+ * src/create.c (gid_to_chars, major_to_chars, minor_to_chars)
+ (mode_to_chars, off_to_chars, size_to_chars, time_to_chars)
+ (uid_to_chars, uintmax_to_chars): Return bool
+ (to_chars): Return bool
+ (start_header): Check return values of convertion routines. Fail
+ if unable to store data in the header.
+
+2005-12-07 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * doc/tar.texi: Following the discussion with Karl Berry,
+ discontinue using @value{} substitutions for Texinfo commands.
+ Properly index all long options. Print a
+ separate long option index.
+ * doc/value.texi: Remove @set's
+
+ * doc/tar.texi: Update --info-script documentation
+ Resolve some more FIXMEs.
+ * scripts/dump-remind.in: Use TAR_VOLUME instead of reading volno
+ file.
+ * src/buffer.c (new_volume): Update invocation
+ (change_tape_menu): New function. Disable '!' command if given
+ --restrict option.
+ * src/common.h (sys_exec_info_script): Update declaration
+ (restrict_option): New global
+ * src/system.c (sys_exec_info_script): The script can supply new
+ archive name to use by writing it to file descriptor 3.
+ * src/tar.c (options): Add --restrict option. Use macros for
+ option grouping.
+ (license): Print full list of copyright years
+ * NEWS: Update
+
+2005-12-06 Eric Blake <ebb9@byu.net> (trivial changes)
+
+ * configure.ac (DENSITY_LETTER): Fix m4 overquoting.
+ * .cvsignore: Ignore .bootstrap.
+
+2005-12-06 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * doc/tar.texi: Document --to-command and --info-script
+ options. Add missing xrefs.
+ * src/buffer.c (new_volume): Use sys_exec_info_script() instead of
+ system().
+ * src/common.h (archive_format_string,subcommand_string)
+ (sys_exec_info_script): New prototypes.
+ * src/system.c (sys_exec_info_script): New function.
+ * src/tar.c (archive_format_string): Remove static qualifier.
+ (subcommand_string): New function.
+
+2005-12-01 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * src/extract.c: Fix restoring of directory timestamps from
+ incremental archives.
+ (directories_first): New variable.
+ (prepare_to_extract): Set directories_first
+ (extract_archive): Call apply_nonancestor_delayed_set_stat() only
+ if not extracting from an incremental archive
+ (extract_dir): Obtain root_device here, to make sure it works
+ correctly with -C.
+
+ * src/incremen.c (purge_directory): Skip the member and return if
+ the archive is not in incremental format.
+ * tests/incr02.at: New testcase
+ * tests/Makefile.am: Add incr02.at
+ * tests/testsuite.at: Likewise
+
+ * THANKS: Add Guerkan Karaman.
+ * NEWS: Update
+
+2005-11-30 Paul Eggert <eggert@cs.ucla.edu>
+
+ * doc/tar.texi (Option Summary): Rewrite the
+ --atime-preserve=system description in response to Ian Turner's
+ proposed patch.
+
+2005-11-30 Ian Turner <ian@zmanda.com>
+
+ * doc/tar.texi (Extracting Specific Files): Remove obsolescent
+ FIXME.
+
+2005-11-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ * NEWS: New option --atime-preserve=system, which uses O_NOATIME.
+ * THANKS: Add Ian Turner.
+
+ * configure.ac: Prefer AC_CHECK_HEADERS_ONCE to AC_CHECK_HEADERS.
+ Check for stropts.h and sys/filio.h too, for _FIOSATIME.
+ * doc/tar.texi: Change "modification time" to "data modification
+ time", "change time" to "status change time", and "filesystem" to
+ "file system", so that we use terminology consistent with POSIX.
+ Use American spacing rather than French for sentence ends.
+ "non-dependable" -> "undependable".
+ (Option Summary, Attributes): Explain better the pitfalls of the
+ --atime-preserve option, and suggest read-only mounts,loopback
+ mounts, and noatime mounts for older systems.
+ * doc/value.texi (op-atime-preserve-system): Renamed from
+ op-atime-preserver-system to fix a misspelling.
+ * src/common.h (enum atime_preserve): Use lower case for enum values.
+ * src/compare.c: Don't include utimens.h; no longer needed.
+ (diff_file): Use set_file_atime rather than utimens; avoid closing
+ diff_handle until after this, so that we can set the file time stamp
+ via the file descriptor rather than via its name.
+ * src/create.c: Don't include utimens.h; no longer needed.
+ (dump_regular_finish): Remove. All callers now do its work inline.
+ (dump_dir): New arg FD. All callers changed.
+ Use fdsavedir rather than savedir.
+ (unknown_file_error): Arg is a const pointer now.
+ (dump_file0): 2nd arg is a const pointer now.
+ Treat directories more like files, with respect to --atime-preserve.
+ For example, also warn if a directory changes while we are dumping it.
+ Prefer file descriptors to file names when retrieving/setting file
+ attributes; this saves path-resolution time and allows us to avoid
+ changing mtime/ctime on Solaris when restoring atime as root.
+ Use O_DIRECTORY when opening directories, to avoid some race conditions.
+ Do not reset atime if mtime has changed. Report an error if
+ we cannot reset atime.
+
+ * lib/.cvsignore: Add malloc.h, regcomp.c, regex.c, regex.h,
+ regex_internal.c, regex_internal.h, regexc.c; used by rpmatch.
+
+2005-11-29 Ian Turner <ian@zmanda.com>
+
+ First cut at adding support for --atime-preserve=system.
+ * doc/tar.texi (Option Summary): First cut at documenting it.
+ All other uses of --atime-preserve changed to --atime-preserve=replace.
+ * doc/value.texi (op-atime-preserve-replace, op-atime-preserver-system):
+ New.
+ (op-atime-preserve): Mention METHOD.
+ * src/common.h (atime_preserve): New enum.
+ (atime_preserve_option): Now of the enum type rather than bool.
+ All uses changed.
+ * src/compare.c (diff_file): Read with O_NOATIME if asked for.
+ * src/create.c (dump_file0): Read regular and CTG files with O_NOATIME
+ if asked for.
+ * src/tar.c (usage): Mention new usage.
+ (parse_opt): Parse new usage.
+
+2005-11-29 Paul Eggert <eggert@cs.ucla.edu>
+
+ * THANKS: Convert back to UTF-8, sort (using LC_ALL=C on Debian
+ stable), and consistently use tabs rather than spaces.
+
+2005-11-27 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * src/xheader.c: Remove parts of code prematurely introduced
+ yesterday. Thanks Eric Blake.
+
+2005-11-26 Sergey Poznyakoff <gray@gnu.org.ua>
+
+ * src/xheader.c (xheader_format_name): Fix memory leak.
+
2005-11-11 Sergey Poznyakoff <gray@gnu.org.ua>
* gnulib.modules: Add rpmatch
tests/star/multi-fail.at: Close stdin so that if something fails
causing tar to ask for the next volume, it won't hang the
testsuite.
-
+
* src/buffer.c (flush_write,flush_read): Change data type.
(flush_archive): Compute actual buffer fill level before calling
low level function.
Correct buffer size calculation (allocated too much space).
(xheader_write): Increase global_header_count here ...
(xheader_write_global): ... instead of here
-
+
* tests/testsuite.at (AT_TAR_CHECK): Define TEST_TAR_FORMAT
* tests/multiv01.at: Update
* tests/multiv02.at: Update
* tests/multiv03.at: Update
* tests/sparsemvp.at: Update
* tests/star/multi-fail.at: Update
-
+
* scripts/tarcat: Handle archives in pax format. Improve handling
of traditional archives.
* doc/tar.texi (Tarcat): New node
-
+
2005-11-10 Sergey Poznyakoff <gray@gnu.org.ua>
Fix splitting of sparse files between the volumes.
-
+
* src/buffer.c (try_new_volume): Bugfix. Always check
continued_file_name. If it is absent, the volume is out
of sync.
on the extended header boundary) are still not solved, others
(splitting a sparse file between the volume) require additional
testing. Wait for the next commit.
-
+
(volume_label,continued_file_name,continued_file_size)
(continued_file_offset): New globals.
(save_name,save_totsize,save_sizeleft): Make static
(mv_begin,mv_end,mv_total_size,mv_size_left): New functions
(open_archive,flush_write,flush_read): Rewritten
-
+
* src/common.h (save_name,save_sizeleft,save_totsize): Remove
globals.
(volume_label,continued_file_name,continued_file_size): New
of related tests in groups.
* doc/tar.texi: Update
-
+
+2005-11-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ * src/xheader.c (struct xhdr_tab.coder): Last arg is void const *,
+ not void *, to avoid create.c warning from GCC "passing argument 3
+ of 'xheader_store' discards qualifiers from pointer target type".
+ (dummy_coder, atime_coder, gid_coder, gname_coder, linkpath_coder):
+ (ctime_coder, mtime_coder, path_coder, size_coder, uid_coder):
+ (uname_coder, sparse_size_coder, sparse_numblocks_coder):
+ (sparse_offset_coder, sparse_numbytes_coder, dumpdir_coder):
+ (xheader_store): Likewise.
+ * src/common.h (xheader_store): Likewise.
+
2005-11-07 Sergey Poznyakoff <gray@gnu.org.ua>
and Paul Eggert <eggert@cs.ucla.edu>
2005-11-06 Paul Eggert <eggert@cs.ucla.edu>
+ * NEWS: Minor language and white space fixes.
+
+ * tests/truncate.at: Create files whose time stamps must fall on
+ 1-second boundaries. This prevents tests from failing on hosts
+ like Solaris 8 that have nanosecond-resolution file time stamps.
+ * tests/update.at: Likewise.
+
* src/xheader.c (strtoimax, strtoumax): Remove decls; now done
in system.h.
\f
-Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005 Free Software
-Foundation, Inc.
+Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006
+Free Software Foundation, Inc.
This file is part of GNU tar.