Commit Graph

873 Commits

Author SHA1 Message Date
Sergey Poznyakoff
588f444efe (add_chunk_header): Free st.orig_file_name after calling finish_header() 2006-02-19 20:36:31 +00:00
Sergey Poznyakoff
36f41eabf4 (dump_file0): Restore file_count_links,accidentally removed on 2005-11-29. 2006-02-19 19:27:28 +00:00
Sergey Poznyakoff
780cf6f079 (tar_set_quoting_style): Provide second argument to the format spec: program_invocation_short_name. Reported by Jim Meyering. 2006-02-08 21:34:15 +00:00
Paul Eggert
84378fa99a * 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.
2006-02-07 23:51:37 +00:00
Paul Eggert
78b078b455 * 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.
2006-02-07 22:18:36 +00:00
Paul Eggert
e86e864544 Update copyright year to 2006. 2006-02-07 20:55:49 +00:00
Sergey Poznyakoff
cf1e8b086b (sparse_map_decoder): Fix misleading diagnostic. 2006-02-07 13:57:41 +00:00
Sergey Poznyakoff
6c28751ca7 (struct tar_stat_info): New members is_dumpdir and skipped. 2006-01-31 11:28:45 +00:00
Sergey Poznyakoff
0e848e7b2c (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
2006-01-31 11:28:32 +00:00
Sergey Poznyakoff
ab8a184336 (get_gnu_dumpdir): Static
(is_dumpdir): New function
(purge_directory): Use is_dumpdir
2006-01-31 11:28:07 +00:00
Sergey Poznyakoff
48ce2946d9 (prepare_to_extract): Use is_dumpdir member to check for dumpdirs. 2006-01-31 11:27:41 +00:00
Sergey Poznyakoff
dde5c2391b (get_gnu_dumpdir): Remove prototype
(is_dumpdir): New function
2006-01-31 11:27:14 +00:00
Sergey Poznyakoff
a349bd80b9 (decode_options): Refuse using --delete with compression options 2006-01-21 23:39:20 +00:00
Sergey Poznyakoff
514ea6ead4 Implement new options --quoting-style, --quote-chars and --no-quote-chars. 2006-01-18 15:36:15 +00:00
Sergey Poznyakoff
288315211a Update invocations of name_scan. 2005-12-14 12:58:56 +00:00
Sergey Poznyakoff
dacac1b6be (name_scan): Change prototype. 2005-12-14 12:58:34 +00:00
Sergey Poznyakoff
85cf996677 (name_scan): Take an additional argument requesting the exact matching. 2005-12-14 12:58:22 +00:00
Sergey Poznyakoff
b794387cba (addname,add_hierarchy_to_namelist): Initialize explicit member appropriately. 2005-12-13 13:32:29 +00:00
Sergey Poznyakoff
91abd3da82 (procdir): If name_scan() returns something, check if it was explicitely given in the command line 2005-12-13 13:32:14 +00:00
Sergey Poznyakoff
5b3dc9e3dd (struct name): New member explicit'. Remove unused member isdir' 2005-12-13 13:31:56 +00:00
Sergey Poznyakoff
86ef91adff 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-12 22:55:39 +00:00
Sergey Poznyakoff
1cdb7823ae (options,parse_opt): New options --delay-directory-restore and --no-delay-directory-restore 2005-12-11 14:12:12 +00:00
Sergey Poznyakoff
e73e4428e2 (directories_first): Replaced by delay_directory_restore_option. All uses changed. 2005-12-11 14:11:41 +00:00
Sergey Poznyakoff
d2dd096f1d (delay_directory_restore_option): New global. 2005-12-11 14:11:16 +00:00
Sergey Poznyakoff
f03fc1e078 (read_directory_file): Fix format string 2005-12-09 10:05:02 +00:00
Sergey Poznyakoff
273810a9f7 (to_chars_subst): Remove unused variable
Make sure useful result code is returned.
2005-12-09 10:04:52 +00:00
Sergey Poznyakoff
69abc76d13 (set_file_atime): Add prototype. 2005-12-09 10:04:38 +00:00
Sergey Poznyakoff
12cd9cea81 (open_archive): Add default case to shut up gcc. 2005-12-09 10:04:26 +00:00
Sergey Poznyakoff
a169d65b94 (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-08 15:41:28 +00:00
Sergey Poznyakoff
89e65f936d (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
2005-12-08 15:41:11 +00:00
Sergey Poznyakoff
2e7a943d0e (options): Add --restrict option. Use macros for option grouping.
(license): Print full list of copyright years
2005-12-06 23:15:41 +00:00
Sergey Poznyakoff
4ba3b41e2e (sys_exec_info_script): The script can supply new
archive name to use by writing it to file descriptor 3.
2005-12-06 23:15:14 +00:00
Sergey Poznyakoff
4669306854 (sys_exec_info_script): Update delaration
(restrict_option): New global
2005-12-06 23:14:56 +00:00
Sergey Poznyakoff
ffc4fb7bdd (new_volume): Update invocation
(change_tape_menu): New function. Disable '!' command if given
--restrict option.
2005-12-06 23:14:44 +00:00
Sergey Poznyakoff
f018d69aac (archive_format_string): Remove static qualifier.
(subcommand_string): New function.
2005-12-06 16:32:37 +00:00
Sergey Poznyakoff
ea019af0cc (sys_exec_info_script): New function. 2005-12-06 16:32:17 +00:00
Sergey Poznyakoff
0251059267 (archive_format_string,subcommand_string,sys_exec_info_script): New prototypes. 2005-12-06 16:32:05 +00:00
Sergey Poznyakoff
13d43c302f (new_volume): Use sys_exec_info_script() instead of system(). 2005-12-06 16:31:49 +00:00
Sergey Poznyakoff
ca43ee9769 Obtain root_device here, to make sure it works correctly with -C. 2005-12-01 14:50:57 +00:00
Sergey Poznyakoff
ae00dc0d37 (purge_directory): Skip the member and return if the archive is not in incremental format. 2005-12-01 12:51:20 +00:00
Sergey Poznyakoff
5249a99377 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
2005-12-01 12:50:58 +00:00
Paul Eggert
f8f4f49011 (parse_opt): Remove bogus \n in new atime diagnostic. 2005-11-29 19:41:34 +00:00
Paul Eggert
aa976a5170 * NEWS: New option --atime-preserve=system, which uses O_NOATIME.
* 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.

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 19:14:21 +00:00
Sergey Poznyakoff
d543d2dbbd Remove prematurely introduced parts of new MV format support 2005-11-27 11:59:34 +00:00
Sergey Poznyakoff
9590e781c0 (xheader_format_name): Fix memory leak. 2005-11-26 19:31:02 +00:00
Sergey Poznyakoff
b5775215d7 (confirm): Rewritten using rpmatch.
(decode_options): Minor optimizations
(main): Call stdopen() to ensure the first three descriptors are
open.
2005-11-11 12:17:10 +00:00
Sergey Poznyakoff
1ebdd88caf (xheader_format_name): Remove static
qualifier. Change last argument.
Correct buffer size calculation (allocated too much space).
(xheader_write): Increase global_header_count here ...
(xheader_write_global): ... instead of here
2005-11-11 00:26:09 +00:00
Sergey Poznyakoff
b6d3432810 (write_extended): Change type and meaning of the first argument. All callers updated 2005-11-11 00:25:41 +00:00
Sergey Poznyakoff
1e8f6d41c4 (flush_read,flush_write): Functions, again.
(write_extended): Changed declaration
(xheader_format_name): New declaration
2005-11-11 00:25:20 +00:00
Sergey Poznyakoff
5b1df7b55e (flush_write,flush_read): Change data type.
(flush_archive): Compute actual buffer fill level before calling
low level function.
(close_archive): Call flush_archive again if the first call
resulted in partially filled buffer.
(try_new_volume): Rewritten handling of initial headers.
(add_chunk_header): New function. Write an additional header
before the continuation chunk. The purpose of the header is to
allow third-party tars to extract the member.
(simple_flush_write): Take an argument.
(_gnu_flush_write): Correctly handle partially filled buffers.
2005-11-11 00:24:52 +00:00