Commit Graph

435 Commits

Author SHA1 Message Date
Sergey Poznyakoff
5be0f2ba49 New file 2003-08-31 22:35:35 +00:00
Sergey Poznyakoff
a687cf05b7 Removed support for the obsolete command line options. 2003-07-28 11:40:35 +00:00
Sergey Poznyakoff
d52a1bb366 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-27 12:01:59 +00:00
Sergey Poznyakoff
2adfef0149 (print_header): Use orig_file_name. 2003-07-27 12:01:04 +00:00
Sergey Poznyakoff
bee35fc152 /tmp/F 2003-07-27 12:00:31 +00:00
Sergey Poznyakoff
1fef6258aa (check_links_option): New variable
(orig_file_name): New variable
(check_links): New proto.
2003-07-27 11:59:58 +00:00
Sergey Poznyakoff
7219c538eb (print_header): Revised 2003-07-25 15:05:41 +00:00
Sergey Poznyakoff
4f48e61fcf (print_header): Print trailing slash if
current_trailing_slash was set (extrac03.sh,extrac04.sh tests).
2003-07-24 14:48:08 +00:00
Sergey Poznyakoff
eb66edaa9f (flush_read): Fixed behavior on short
reads right after opening the new archive (multiv01.sh test).
(new_volume): Special handling for "-".
2003-07-24 14:45:29 +00:00
Sergey Poznyakoff
31d9c7e2a4 (chdir_do): Fixed call to restore_cwd 2003-07-24 14:44:51 +00:00
Sergey Poznyakoff
4dc30d7397 Added to the repository 2003-07-24 14:43:30 +00:00
Paul Eggert
4c690508bd Add comment about what other letters are used. 2003-07-05 08:19:48 +00:00
Paul Eggert
42d05fcb6e Do not include <print-copyr.h>.
Include <getdate.h>.
(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.
2003-07-05 08:18:46 +00:00
Paul Eggert
40835c2c55 Use newer form for bug report and version. 2003-07-05 07:55:34 +00:00
Paul Eggert
1722082cfe Remove PARAMS. 2003-07-05 07:21:49 +00:00
Paul Eggert
45dd602433 Don't include print-copyr.h.
(prepare_input_buffer): Renamed from prepare_record_buffer.
New arg FD.  All uses changed.
Do not read more than INT_MAX bytes at once,
since it breaks on some brain damaged Tru64 hosts.
Do not mix int and size_t pointers.  Divide size by two
when retrying instead of subtracting 1024; for speed.
(main): Use gettext to translate (C), not print_copyright.
2003-07-05 07:21:19 +00:00
Paul Eggert
935cd4f515 (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.
2003-07-05 07:17:20 +00:00
Paul Eggert
f29b54b237 (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 specifing block ordinal.  All uses changed.
Print link as 'h' type.  Give labels for long links and names.
2003-07-05 07:00:54 +00:00
Paul Eggert
675c5a2f24 (we_are_root): Now bool, not int.
(check_time): Warn about implausibly old time stamps.
(set_stat): Use utimbuf, not stat_info.
(preprare_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.
2003-07-05 06:53:31 +00:00
Paul Eggert
ea202e1adf (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.
2003-07-05 06:43:30 +00:00
Paul Eggert
664f2dbdd9 (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 trailng 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.
2003-07-05 06:19:54 +00:00
Paul Eggert
7f1bf2e09f just ignore them silently. 2001-09-26 20:53:42 +00:00
Paul Eggert
dd83d5dd9d (read_header): Don't keep around extended name and link info
indefinitely; keep it only for the next file.  This fixes a bug
introduced in 1.13.24, and remove the need for some static variables.
Set recent_long_name and recent_long_link to zero if there were no
long links; this avoids a violation of ANSI C rules for pointers in
delete.c.
2001-09-26 20:15:52 +00:00
Paul Eggert
02a275c6ac (maybe_recoverable): Treat OVERWRITE_OLD_DIRS like DEFAULT_OLD_FILES. 2001-09-24 18:58:52 +00:00
Paul Eggert
e6e72bf7ed Allocate one more byte than the size would indicate, since we're
null-terminating.
2001-09-23 06:18:20 +00:00
Paul Eggert
9a15fcf491 (write_archive_buffer, close_archive): If an archive is a socket,
treat it like a FIFO.
2001-09-23 05:03:42 +00:00
Paul Eggert
e2b5f1e918 Put copyright notice into documentation. 2001-09-22 00:47:09 +00:00
Paul Eggert
63db9071d2 Include print-copyr.h, not copysym.h.
(main): Use print_copyright, not copyright_symbol.
2001-09-22 00:47:09 +00:00
Paul Eggert
5a5f4d06e7 Include print-copyr.h, not copysym.h.
(decode_options): Use print_copyright, not copyright_symbol.
(OVERWRITE_DIR_OPTION): New constant.
(long_options, usage, decode_options): Add --overwrite-dir.
2001-09-22 00:47:09 +00:00
Paul Eggert
ec63030958 (update_archive): Pass 0 to read_header. 2001-09-22 00:47:09 +00:00
Paul Eggert
0e041a7bfe (records_read, records_written): New vars.
(write_archive_to_stdout): Now bool, not int.
(open_archive, flush_write, flush_read): Keep records_read and
records_written up to date.
2001-09-22 00:47:09 +00:00
Paul Eggert
85f651c8c6 (recent_long_name, recent_long_link, recent_long_name_blocks,
recent_long_link_blocks): New vars.
(read_and): Pass 0 to read_header.
(read_header): New arg RAW_EXTENDED_HEADERS.  Store away extended headers
into new vars.  Null-terminate incoming symbolic links.
2001-09-22 00:47:09 +00:00
Paul Eggert
6c9e824ce5 (extract_archive): When marking a directory to be updated after
symlinks, stat all directories after it in the delayed-set-stat
list too, since they will be checked after symlinks.
Add support for --overwrite-dir.
2001-09-22 00:47:09 +00:00
Paul Eggert
8267e6ed02 Fix bug: statement before decl. 2001-09-14 02:05:00 +00:00
Paul Eggert
135a24714f Include copysym.h.
(main): Use copyright_symbol to translate copyright notice,
instead of gettext.
2001-09-14 00:27:39 +00:00
Paul Eggert
8571998faa Include copysym.h.
(decode_options): Use copyright_symbol to translate copyright notice,
instead of gettext.
2001-09-14 00:27:39 +00:00
Paul Eggert
95dda72cc6 (struct delayed_set_stat): New member 'after_symlinks'.
(delay_set_stat): Initialize it to 0.
(set_mode): New arg current_stat_info.  Use it (if nonnull) to avoid
taking an extra stat ourselves.  All callers changed.
(set_stat): Likewise.
(apply_nonancestor_delayed_set_stat): New arg 'after_symlinks'.
If false, stop when encountering a struct whose 'after_symlinks' member is
true.  Otherwise, go through all structures but check them more carefully.
All callers changed.
(extract_archive): When extracting a deferred symlink, if its parent
directory's status needs fixing, then mark the directory as needing
to be fixed after symlinks.
(extract_finish): Fix status of ordinary directories, then apply delayed
symlinks, then fix the status of directories that are ancestors
of delayed symlinks.
2001-09-12 06:46:23 +00:00
Paul Eggert
172dc3e72b Remove rexec declaration; it ran afoul of prototypes on Crays. 2001-09-12 06:37:02 +00:00
Paul Eggert
421568c002 (name_gather, addname): Use offsetof when computing sizes for
struct hack; this avoids wasted space in some cases.
(name_gather): Use strcpy, not memcpy.
for consistency with other code that does similar things.
(read_name_from_file, name_next, name_gather, add_hierarchy_to_namelist):
Avoid quadratic behavior when reallocating buffers.
Check for buffer size overflow.
(addname): Avoid unnecessary clearing of memory.
2001-08-29 21:37:27 +00:00
Paul Eggert
eb5c8f4b8b (dump_file): Relativize link names before dumping.
This fixes a bug reported by Jose Pedro Oliveira.
(dump_file): Use offsetof when computing sizes for
struct hack; this avoids wasted space in some cases.
2001-08-29 21:37:27 +00:00
Paul Eggert
4bb7c67e04 (delay_set_stat): Fix off-by-one error in file
name size allocation that caused core dumps.
From Jan.Djarv@mbox200.swipnet.se.
(extract_archive): Use strcpy, not memcpy,
for consistency with other code that does similar things.
2001-08-29 21:37:27 +00:00
Paul Eggert
68867c0103 (main): Use "Copyright %d" to simplify the translator's job in the future.
Advise translator about circle-C.
2001-08-29 06:55:23 +00:00
Paul Eggert
8f207b89cf (decode_options):
Use "Copyright %d" to simplify the translator's job in the future.
Advise translator about circle-C.
2001-08-29 06:55:23 +00:00
Paul Eggert
17afd0438f (ANCHORED_OPTION, IGNORE_CASE_OPTION, NO_ANCHORED_OPTION,
NO_IGNORE_CASE_OPTION, NO_WILDCARDS_OPTION, NO_WILDCARDS_MATCH_SLASH_OPTION,
WILDCARDS_OPTION, WILDCARDS_MATCH_SLASH_OPTION): New enum values.

(long_options, usage, decode_options): Add support for --anchored,
--ignore-case, --no-anchored, --no-ignore-case, --no-wildcards,
--no-wildcards-match-slash, --recursion, --wildcards,
--wildcards-match-slash.

(decode_options): Implement the new way of interpreting exclude patterns.

(usage): --newer-mtime takes a DATE operand.  DATE may be a file name.

(OPTION_STRING, decode_options): Add -I, -y.  Currently these options
just print error messages suggesting alternatives.

(add_filtered_exclude): Remove.
2001-08-27 14:41:56 +00:00
Paul Eggert
998ecf08c0 (base_name): Remove decl, as system.h now declares it. 2001-08-27 14:35:06 +00:00
Paul Eggert
4f07b06506 (collect_and_sort_names): If ignore_failed_read_option, only warn about
stat errors.

(excluded_name): Now returns bool.  Simplify, as the fancy features are
now all in excluded_filename.
2001-08-27 14:34:24 +00:00
Paul Eggert
a52396de9b (from_header): Do not issue a diagnostic if TYPE is zero.
However, check for error even for '-' or '+' case.

(print_header): Try parsing uids and gids as unsigned integers first,
and as a uid_t or gid_t only if that fails.  This adds support for
listing positive uids and gids that are greater than UID_MAX and
GID_MAX.
2001-08-27 14:32:51 +00:00
Paul Eggert
a7cd57a91d (struct delayed_symlinks, extract_archive, apply_delayed_symlinks):
Support hard links to symbolic links.

(struct delayed_symlink): Remove 'names' member, replacing it with
'sources' and 'target' member.  All uses changed.

(struct string_list): New type.

(delayed_set_stat, extract_archive): Use offsetof when computing sizes
for struct hack; this avoids wasted space in some cases.

(extract_archive): Fix test for absolute pathnames and/or "..".
Use link_error to report errors for links.
Remove redundant trailing '/' at "really_dir", for all uses, not
just before invoking mkdir.
If overwriting old files, do not worry so much about existing directories.
Fix mode computation in the case where the directory exists.

(apply_delayed_symlinks): If we can't make a hard link to a symbolic
link, make a copy of the symbolic link.
2001-08-27 14:27:54 +00:00
Paul Eggert
58e97f92d3 (new_volume): Stop if the script exits with an error. 2001-08-27 14:14:17 +00:00
Paul Eggert
8bfa7852ec system.h now does time.h stuff. 2001-01-13 05:59:29 +00:00