X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=ChangeLog;h=c8fee010be540b8252dabbc9d13ad56265dfe329;hb=005449337c9bc6c513fc0ccbfe642f263ad27bb7;hp=05906815bb6942f50d4f3a0c2dfa6a43d0b189d8;hpb=9c93a32114dc61d91b2aa4090445cafb032d8885;p=chaz%2Ftar diff --git a/ChangeLog b/ChangeLog index 0590681..c8fee01 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,1510 @@ +2004-04-20 Sergey Poznyakoff + + * 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 + + 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 + + * NEWS: Updated + * configure.ac: Raised version number to 1.13.94 + * src/system.h: Protect inclusion of + 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 + 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 and 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 + (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 + + * 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 + + * 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 + + * 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 + + * src/rtapelib.c (rmt_lseek__,rmt_ioctl__): Bugfix. The + conversion buffer was not null terminated. Fix provided + by Leland Lucius + * THANKS: Added Leland Lucius + * src/utf8.c (utf8_convert): Indentation fix. + +2004-02-29 Sergey Poznyakoff + + * 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 + + * 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: Accomodate 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 + + * doc/tar.texi (dircategory Individual utilities): Append period, + as suggested by Karl Berry. + +2004-02-24 Sergey Poznyakoff + + * src/list.c (decode_header): Call xheader_decode before + the assignment to current_stat_info.archive_file_size. + +2004-02-23 Paul Eggert + + * configure.ac: Invoke AM_ICONV, to define ICONV_CONST if needed. + +2004-02-23 Sergey Poznyakoff + + 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 + + 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 + + * src/create.c (dump_file0): The conditional at line + 1296 prevented incremental backups on individual files + from working, as reported by Andreas Schuldei + . + + 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 + + * 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 + + * 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 + + * 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 + + * 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 + + Fix Debian bug 230872, originally reported by Jeff King in + . + + * 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 + + * 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 + + * bootstrap: Bugfix by Marco Gerards : + Use $option instead of $1 so all options will be parsed. + +2004-01-04 Sergey Poznyakoff + + 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 + + * src/sparse.c (sparse_diff_file): Bugfix. Thanks + Martin Simmons for the patch. + * src/create.c (dump_dir0): Bugfix. Thanks Piotr Czerwinski + for the patch. + +2003-12-26 Paul Eggert + + 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 + to + 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 + + Synchronized with the backup repository on Mirddin + +2003-12-19 Sergey Poznyakoff + + * 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 + + * 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 + + * 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 + + * 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 + + * 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 + + * configure.ac: Check for setlocale. Thanks Bruno Haible for + reporting. + +2003-11-25 Sergey Poznyakoff + + * src/create.c (write_gnu_long_link): Use oldgnu + magic with @LongLink blocks. + +2003-11-17 Sergey Poznyakoff + + * src/tar.h: Support for star sparse format. + * src/sparse.c: Likewise. + +2003-11-17 Sergey Poznyakoff + + * 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 + + 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 + + * 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 + + * 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 + + * 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 + + * 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 + + 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 + + * src/list.c (decode_header): Initialize st_atime and + st_ctime. + +2003-11-11 Sergey Poznyakoff + + * configure.ac (tar_save_LIBS): Bugfix. Thanks Adrian + Bunk for reporting. + * doc/tar.texi: Fixed spelling. Thanks Martin Buchholz + for spotting. + +2003-11-04 Paul Eggert + + * src/xheader.c (xhdr_tab): Make it extern, not static, as C89 and + C99 require this. + +2003-10-26 Paul Eggert + + * src/system.c (sys_spawn_shell): Cast trailing null to (char *). + Bug reported by Christian Weisgerber. + +2003-10-19 Sergey Poznyakoff + + * 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 + + * 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 + + * 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 + + 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 + + * src/tar.c: Removed extra precaution regarding + subcommand_option == CAT_SUBCOMMAND + * lib/Makefile.am: Updated + +2003-10-02 Sergey Poznyakoff + + * 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 + + * 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 + + * 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 + + * 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 + + * bootstrap: Don't use "for option; do"; + Solaris 8 /bin/sh doesn't like that. + +2003-09-17 Sergey Poznyakoff + + * README-alpha: Updated + * bootstrap: Updated + +2003-09-17 Sergey Poznyakoff + + * 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 + + * 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 + + * .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 functon. + * src/tar.c: New option --strip-path=NUM. + (decode_options) Assign boolean values to bool variables. + +2003-09-04 Sergey Poznyakoff + + * 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 + + * src/create.c: Support for "linkpath" extended keyword. + * src/xheader.c (decode_record): Reversed the return + condition. + +2003-09-03 Sergey Poznyakoff + + * 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 + + * 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 + + * 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 + + 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 + + * 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 + + * 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. + +2003-07-27 Sergey Poznyakoff + + * TODO: Updated + * NEWS: Updated + * doc/tar.texi: Updated + * src/common.h (check_links_option): New variable + (orig_file_name): New variable + (check_links): New proto. + * src/create.c (struct link.nlink): New member + (link_table): Static for the module. + (dump_file): Update `link' member when adding new links + to the link_table. + (check_links): New function. + * src/list.c (print_header): Use orig_file_name. + * src/tar.c: New option --check-links. Changed semantics of + -o to comply to UNIX98 when extracting and to its previous + semantics otherwise. + (main): Call check_links if --check-links. was given. + +2003-07-25 Sergey Poznyakoff + + * src/list.c (print_header): Revised + * NEWS: Started the entry for 1.13.26 + * doc/Makefile.am (tar.dvi): Fixed TEXINPUTS value. + +2003-07-24 Sergey Poznyakoff + + * .cvsignore: Added to the repository. + * doc/.cvsignore: Likewise. + * lib/.cvsignore: Likewise. + * m4/.cvsignore: Likewise. + * po/.cvsignore: Likewise. + * scripts/.cvsignore: Likewise. + * src/.cvsignore: Likewise. + * tests/.cvsignore: Likewise. + + * lib/Makefile.am: Added exitfail.[hc] + * src/misc.c (chdir_do): Fixed call to restore_cwd + * src/buffer.c (flush_read): Fixed behavior on short + reads right after opening the new archive (multiv01.sh test). + (new_volume): Special handling for "-". + * src/list.c (print_header): Print trailing slash if + current_trailing_slash was set (extrac03.sh,extrac04.sh tests). + * tests/multiv01.sh: Minor changes. + * m4/Makefile.am: Added missing files. + +2003-07-05 Paul Eggert + + Finish the checkin begin yesterday. + + * NEWS: Document the user-visible changes installed in the last + two days. + + * TODO: New file (actually, resurrected; but with new contents). + + * src/list.c (read_and): Give full type for procedure arg. + (read_header): Strip trailing slashes, setting current_trailing_slash. + (tartime): Avoid int overflow when printing year (!). + (print_header): New arg specifying block ordinal. All uses changed. + Print link as 'h' type. Give labels for long links and names. + + * src/misc.c (contains_dot_dot): Moved to names.c + (must_be_dot_or_slash): New function. + (safer_rmdir): Use it. + (remove_any_file): Now takes enum as option, not boolean. + Check for (Linux) EISDIR as well as (POSIX) EPERM when attempting + to unlink a directory. + (deref_stat): Accept bool, not int. + + * src/names.c (namelist_match): Allow partial matches only if + recursive. + (hash_string_hasher): Renamed from hash_avoided_name. + (hash_string_compare): Renamed from compare_avoided_anames. + (hash_string_insert, hash_string_lookup): New functions. + (add_avoided_name, is_avoided_name): Use them. + (safer_name_suffix): New function. + (contains_dot_dot): Moved here from misc.c. Now returns bool, not int. + + * src/rmt.c: Don't include print-copyr.h. + (prepare_input_buffer): New arg FD. + Do not read more than INT_MAX bytes at once, + since it breaks on some brain damaged Tru64 hosts. + Divide size by two + when retrying instead of subtracting 1024; for speed. + (main): Use gettext to translate (C), not print_copyright. + + * src/system.h: Include and unconditionally, + now that gnulib handles this. + Include and unconditionally, now that we assume + C89 or better. + Assume that offsetof is defined in stddef.h. + Do not include . + (realloc, lseek): Do not declare. + (HAVE_DECL_VALLOC): Renamed from HAVE_VALLOC. + (CHAR_BIT, CHAR_MAX, UCHAR_MAX, LONG_MAX): Remove + declarations, since we now assume C89 or better. + (PARAMS): Remove, as we now assume C89. All uses changed. + (bindtextdomain, textdomain): Include to define. + Include . + (valloc): Define if not defined, and if valloc is not declared. + (xstrdup): Remove decl. + + * src/tar.c: Do not include . + Include . + (get_date): Remove decl. + (ATIME_PRESERVE_OPTION, CHECKPOINT_OPTION, FORCE_LOCAL_OPTION, + IGNORE_FAILED_READ_OPTION, INDEX_FILE_OPTION, NO_OVERWRITE_DIR_OPTION, + NUMERIC_OWNER_OPTION, RECURSIVE_UNLINK_OPTION, REMOVE_FILES_OPTION, + SHOW_OMITTED_DIRS_OPTION, TOTALS_OPTION): New constants. + (long_options, decode_options): Use them. + (OVERWRITE_DIR_OPTION): Remove. + (long_options): New options --index-file, --no-overwrite-dir. + Remove --overwrite-dir option. + (usage): Use PACKAGE_BUGREPORT. + (decode_options): Terminate new argv properly. + Use PACKAGE_NAME, PACKAGE_VERSION. + If verbose, report how we grokked any textual date option. + (main): Add support for index-file. + + * tests/Makefile.am: Convert to UTF-8. + (AUTOMAKE_OPTIONS): Remove. + (TESTS): Add delete04.sh, multiv01.sh, options.sh. + (INCLUDES): Remove ../intl. + (LDADD): Don't link libtar.a twice. + + * tests/genfile.c: Convert to UTF-8. + Don't include . + (DEFAULT_PATTERN): Renamed from DEFAULT. + (ZEROS_PATTERN): Renamed from ZEROS. + (main): Use gettext to translate (C), not print_copyright. + +2003-07-04 Paul Eggert + + Revamp to meet current standards of autoconf, automake, + gettext, and gnulib, and incorporate new translations. + + * config/config.guess, config/config.sub, config/depcomp, + config/install-sh, config/mdate-sh, config/missing, + config/mkinstalldirs, config/texinfo.texi: + Moved here from parent directory, or from doc. + * config.hin: Renamed from config.h.in. + * config/config.rpath: New file. + + * intl: Remove this subdirectory. + + * lib/fnmatch_.h: Renamed from lib/fnmatch.hin. + + * lib/getstr.c, lib/getstr.h, lib/msleep.c, lib/print-copyr.c, + lib/print-copyr.h, lib/readutmp.c, lib/rename.c, lib/stpcpy.c, + lib/strstr.c, lib/strtoimax.c, lib/strtoll.c, lib/strtoull.c, + lib/strtoumax.c, lib/unicodeio.c, lib/unicodeio.h, + lib/xstrtoimax.c, m4/c-bs-a.m4, m4/ccstdc.m4, m4/check-decl.m4, + m4/decl.m4, m4/jm-mktime.m4, m4/prereq.m4, m4/xstrtoimax.m4, + stamp-h.in: Remove. + + * lib/alloca_.h, lib/fnmatch_loop.c, lib/gettext.h, lib/pathmax.h, + lib/safe-write.c, lib/safe-write.h, lib/stdbool_.h, lib/strcase.h, + lib/stripslash.c, lib/unlocked-io.h, lib/xgetcwd.h, m4/alloca.m4, + m4/backupfile.m4, m4/bison.m4, m4/chown.m4, m4/dirname.m4, + m4/dos.m4, m4/exclude.m4, m4/fileblocks.m4, m4/ftruncate.m4, + m4/getdate.m4, m4/getopt.m4, m4/hash.m4, m4/human.m4, + m4/intdiv0.m4, m4/intmax_t.m4, m4/inttypes-pri.m4, + m4/inttypes_h.m4, m4/isc-posix.m4, m4/lchown.m4, m4/lib-ld.m4, + m4/lib-link.m4, m4/lib-prefix.m4, m4/memset.m4, m4/mktime.m4, + m4/modechange.m4, m4/nls.m4, m4/onceonly.m4, m4/pathmax.m4, + m4/po.m4, m4/quote.m4, m4/quotearg.m4, m4/rmdir.m4, + m4/safe-read.m4, m4/safe-write.m4, m4/save-cwd.m4, m4/savedir.m4, + m4/ssize_t.m4, m4/stdbool.m4, m4/stdint_h.m4, m4/strcase.m4, + m4/strtoimax.m4, m4/strtol.m4, m4/strtoll.m4, m4/strtoul.m4, + m4/strtoull.m4, m4/strtoumax.m4, m4/tm_gmtoff.m4, m4/uintmax_t.m4, + m4/unlocked-io.m4, m4/xalloc.m4, m4/xgetcwd.m4, m4/xstrtol.m4, + po/LINGUAS, po/Makevars, po/Rules-quot, po/boldquot.sed, + po/en@boldquot.header, po/en@quot.header, po/en_GB.po, + po/insert-header.sin, po/remove-potcdate.sin, po/stamp-po: New files. + + * ABOUT-NLS, INSTALL, lib/addext.c, lib/alloca.c, lib/argmatch.c, + lib/argmatch.h, lib/backupfile.c, lib/backupfile.h, lib/dirname.c, + lib/dirname.h, lib/error.c, lib/exclude.c, lib/exclude.h, + lib/fnmatch.h, lib/full-write.c, lib/full-write.h, lib/getdate.h, + lib/getdate.y, lib/getline.c, lib/getline.h, lib/getopt.c, + lib/getopt.h, lib/getopt1.c, lib/hash.c, lib/hash.h, lib/human.c, + lib/human.h, lib/lchown.c, lib/malloc.c, lib/mktime.c, + lib/modechange.c, lib/modechange.h, lib/quote.c, lib/quote.h, + lib/quotearg.c, lib/quotearg.h, lib/realloc.c, lib/safe-read.c, + lib/safe-read.h, lib/save-cwd.c, lib/save-cwd.h, lib/savedir.c, + lib/savedir.h, lib/strcasecmp.c, lib/utime.c, lib/xalloc.h, + lib/xgetcwd.c, lib/xmalloc.c, lib/xstrdup.c, lib/xstrtol.c, + lib/xstrtol.h, lib/xstrtoumax.c, m4/codeset.m4, m4/d-ino.m4, + m4/error.m4, m4/fnmatch.m4, m4/getcwd.m4, m4/getline.m4, m4/gettext.m4, + m4/glibc21.m4, m4/iconv.m4, m4/inttypes.m4, m4/lcmessage.m4, + m4/longlong.m4, m4/malloc.m4, m4/mbrtowc.m4, m4/mbstate_t.m4, + m4/progtest.m4, m4/realloc.m4, m4/strerror_r.m4, m4/ulonglong.m4, + m4/utimbuf.m4, m4/utime.m4, m4/utimes.m4, m4/xstrtoumax.m4, + po/Makefile.in.in: + Upgrade to latest version from external source. The file "bootstrap" + now grabs these automatically, so we needn't keep track of them + in this change long any longer. + + * Makefile.am (AUTOMAKE_OPTIONS): Remove. Now done by configure.ac. + (SUBDIRS): Remove intl. + * PORTS: Update for star, Macintosh. + * README, README-alpha: Suggest Autoconf 2.57, Automake 1.7.5, + Bison 1.875, gettext 0.12.1. + * THANKS: Add Bernhard Rosenkraenzer, Solar Designer. + * configure.ac (AC_INIT, AM_INIT_AUTOMAKE): Convert to modern form. + (AC_CONFIG_AUX_DIR): New. + (AC_CONFIG_HEADERS): Rename config.h.in to config.hin, to be more + like coreutils. + (AC_PREREQ): Bump from 2.52 to 2.57. + (AC_GNU_SOURCE): New. + (AC_PROG_GCC_TRADITIONAL, AM_C_PROTOTYPES, AC_C_CONST): Remove; + we no longer support K&R C. + (YACC): Remove. + (AC_CHECK_HEADERS): Remove limits.h, poll.h, stdbool.h, stropts.h, + sys/ioccom.h, sys/param.h, sys/time.h, sys/timeb.h, wchar.h, wctype.h. + (AC_MBSTATE_T): Remove. + (HAVE_UTIME_H, HAVE_DECL_FREE, HAVE_DECL_GETGRGID, HAVE_DECL_GETPWUID, + HAVE_DECL_GETENV, HAVE_DECL_MALLOC, HAVE_DECL_STRTOUL, + HAVE_DECL_STRTOULL, HAVE_MKNOD): Remove our special code. + (AM_STDBOOL_H): Add. + (AC_HEADER_TIME, AC_STRUCT_TIMEZONE, + jm_CHECK_TYPE_STRUCT_DIRENT_D_INO): Remove. + (AC_CHECK_TYPE): Remove ssize_t. + (gt_TYPE_SSIZE_T): Add. + (jm_AC_PREREQ_XSTRTOUMAX, jm_PREREQ_ADDEXT, jm_PREREQ_ERROR, + jm_PREREQ_HUMAN, jm_PREREQ_QUOTEARG, jm_PREREQ_XGETCWD, + AC_FUNC_ALLOCA, AC_FUNC_CLOSEDIR_VOID, AC_FUNC_STRERROR_R, + AC_FUNC_FNMATCH, AC_FUNC_VPRINTF, AM_FUNC_GETLINE, jm_FUNC_MALLOC, + jm_FUNC_MKTIME, jm_FUNC_REALLOC): + Remove. Switch to gnulib macros like gl_BACKUPFILE instead. + (tar_LDADD): Rename to LIB_CLOCK_GETTIME. All uses changed. + (rmt_LDADD): Rename to LIB_SETSOCKOPT. All uses changed. + (AC_CHECK_FUNCS): Remove fchdir, ftime, getcwd, isascii, nap, + napms, poll, select, strstr, usleep. + (AC_REPLACE_FUNCS): Remove ftruncate, lchown, memset, rename, + rmdir, strcasecmp, strncasecmp, strtol, strtoul. + (AM_GNU_GETTEXT): Use external and need-ngettext options. + (AM_GNU_GETTEXT_VERSION): New. + (AC_OUTPUT): Remove intl/Makefile. + + * doc/Makefile.am (AUTOMAKE_OPTIONS): Remove. + ($(srcdir)/tar.info, tar.dvi): Remove obsolete warnings. + * doc/fdl.texi: Update to current GNU version. + * doc/gettext.texi: Update to current coreutils version, + plus a copyright notice. + * doc/tar.texi: Switch to new method for doing copyright notices. + Use @acronym instead of @sc where appropriate. + Remove empty examples. Give a few more examples. + + * lib/Makefile.am (AUTOMAKE_OPTIONS): Remove. + (EXTRA_DIST, libtar_a_SOURCES): Switch to gnulib, so that they + are built up in pieces with +=. + (noinst_HEADERS, INCLUDES): Remove. + (BUILT_SOURCES, MAINTAINERCLEANFILES, MOSTLYCLEANFILES): New. + (libtar_a_LIBADD): Use $ rather than @. + (all-local, alloca.h, fnmatch.h, stdbool.h): New rules, from gnulib. + + * m4/Makefile.am (EXTRA_DIST): Add alloca.m4, backupfile.m4, + bison.m4, chown.m4, dirname.m4, dos.m4, exclude.m4, fileblocks.m4, + ftruncate.m4, getdate.m4, getopt.m4, hash.m4, human.m4, + intdiv0.m4, intmax_t.m4, inttypes_h.m4, inttypes-pri.m4, + isc-posix.m4, lcown.m4, lib-ld.m4, lib-link.m4, lib-prefix.m4, + memset.m4, mktime.m4, modechange.m4, nls.m4, onceonly.m4, + pathmax.m4, po.m4, quotearg.m4, quote.m4, rmdir.m4, safe-read.m4, + safe-write.m4, save-cwd.m4, savedir.m4, ssize_t.m4, stdbool.m4, + stdint_h.m4, strcase.m4, strtoimax.m4, strtoll.m4, strtol.m4, + strtoull.m4, strtoul.m4, strtoumax.m4, tm_gmtoff.m4, uintmax_t.m4, + unlocked-io.m4, xalloc.m4, xgetcwd.m4, xstrtol.m4. + Remove c-bs-a.m4, ccstdc.m4, check-decl.m4, decl.m4, jm-mktime.m4, + prereq.m4, xstrtoimax.m4. + + * po/POTFILES.in: Remove tests/genfile.c; it doesn't need to + be translated, since it's not a user-visible tool. + + * scripts/Makefile.am (AUTOMAKE_OPTIONS): Remove. + + * src/Makefile.am (AUTOMAKE_OPTIONS): Remove. + (INCLUDES): Remove ../intl. Put top-srcdir before ., for + consistency with coreutils. + (LDADD): Link LIBINTL after libtar.a, since + it's now external and should stand by itself. + + * src/buffer.c (print_total_written): Adjust to new human.h + interface. + (child_open_for_compress): Do not increase size to BLOCKSIZE. + (open_archive): Open index file name. + Strip trailing slahes from file names. + (flush_write): Set size to 0 if not saving names. + (flush_write, flush_read): Use safer_name_suffix rather than + inline code. + + * src/common.h: Include . + (absolute_names_option, atime_preserve_option, backup_option, + block_number_option, checkpoint_option, dereference_option, + force_local_option, ignore_failed_read_option, ignore_zeros_option, + incremental_option, interactive_option, multi_volume_option, + numeric_owner_option, one_file_system_option, recursive_unlink_option, + read_full_records_option, remove_files_option, same_order_option, + show_omitted_dirs_option, sparse_option, starting_file_option, + to_stdout_option, totals_option, touch_option, verify_option, + dev_null_output, now_verifying, we_are_root): Now bool, not int. + (current_trailing_slash, index_file_name, recent_long_name_blocks, + recent_long_link_blocks): New vars. + (NO_OVERWRITE_DIR_OLD_FILES): New constant. + (OVERWRITE_OLD_DIRS): Remove. + (enum remove_option): New enum. + (remove_any_file): Use it as option arg, not int. + (is_avoided_name, contains_dot_dot): Return bool, not int. + (safer_name_suffix): New decl. + + * src/compare.c (now_verifying): Now bool, not int. + (fill_in_sparse_array): Move to extract.c. Now returns bool; + all callers changed to test for failure. + (diff_sparse_files): Take size from current_stat, not from param. + (diff_archive): Do not count trailing slashes in archives. + (verify_volume): Test for header failure after loop, not before. + + * src/create.c (relativize): Remove; replaced by safer_name_suffix. + All callers changed. + (start_header): Clear devmajor and devminor fields, too. + (finish_header): New arg block_ordinal. + (init_sparsearray): Now extern. Set sp_array_size to + SPARSES_IN_OLDGNU_HEADER if it is zero. + (dump_file): Keep link table as a hash. + Do not count "file changed as we read it" as a failure. + + * src/delete.c (recent_long_name_blocks, recent_long_link_blocks): + Move extern decl to common.h. + + * src/extract.c (we_are_root): Now bool, not int. + (check_time): Warn about implausibly old time stamps. + (set_stat): Use utimbuf, not stat_info. + (prepare_to_extract): New arg DIRECTORY. + (fill_in_sparse_array): Moved here from compare.c. + (extract_sparse_file): Now returns off_t, giving size left. + Truncate file at end. + (extract_archive): Use safer_name_suffix rather than rolling our own. + Use fill_in_sparse_array rather than rolling our own. + Strip trailing slashes more effectively. + Check for unsafe names. + + * src/incremen.c (struct directory): nfs and found are now of type + bool, not int. + (gnu_restore): Now takes directory name as argument, not offset + of directory name in a global. All uses changed. + (CURRENT_FILE_NAME): Remove. + + New tests. + * tests/delete04.sh, tests/multiv01.sh, tests/options.sh: New + files. + +2002-09-30 Paul Eggert + + * src/rmt.c (prepare_input_buffer): Renamed form + prepare_record_buffer. All uses changed. Do not assume that + size_t is the same width as int. + +2002-03-29 Paul Eggert + + * src/incremen.c (get_directory_contents): + If ignore_failed_read_option, only warn about + get_directory_contents failures. Fix suggested by + Mark Costlow. + +2002-01-31 Mark W. Eichin + + * src/buffer.c (child_open_for_compress): Don't try to read + past the end of the buffer. + +2001-10-11 Jim Meyering + + * argmatch.c (argmatch_invalid): Use quotearg_n_style (0, ... + and quote_n (1, ... to avoid clobbering a buffer. + 2001-09-26 Paul Eggert * NEWS, configure.ac (AM_INIT_AUTOMAKE): Version 1.13.25. @@ -2521,7 +4028,7 @@ component, when deciding whether to exclude it. * src/list.c (): Do not include. - (from_chars): Renamed from from_oct. New parameter specifing + (from_chars): Renamed from from_oct. New parameter specifying the negative of the minimum allowed value. Support negative and base-64 values. (base64_map): New var. @@ -3551,7 +5058,9 @@ See ChangeLog.1 for earlier changes. -Copyright (C) 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. + +Copyright (C) 1997, 1998, 1999, 2000, 2001, 2003, 2004 Free Software +Foundation, Inc. This file is part of GNU tar.