X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=src%2Fextract.c;h=f348b822ed6620c2dcdd3854cdd460e9dc1166eb;hb=c6834baaf6738471a0f317a3578ea3d44c6a19d0;hp=1fe4276e352cdbee0be62c674b1a5aaf2c884c56;hpb=9ae5a981fc0aae7307578ee82e9f65416fe09da4;p=chaz%2Ftar diff --git a/src/extract.c b/src/extract.c index 1fe4276..f348b82 100644 --- a/src/extract.c +++ b/src/extract.c @@ -19,7 +19,7 @@ with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -#include "system.h" +#include #include #include #include @@ -114,7 +114,6 @@ extr_init (void) we_are_root = geteuid () == 0; same_permissions_option += we_are_root; same_owner_option += we_are_root; - xalloc_fail_func = extract_finish; /* Save 'root device' to avoid purging mount points. FIXME: Should the same be done after handling -C option ? */ @@ -463,7 +462,9 @@ prepare_to_extract (char const *file_name) switch (old_files_option) { case UNLINK_FIRST_OLD_FILES: - if (!remove_any_file (file_name, recursive_unlink_option) + if (!remove_any_file (file_name, + recursive_unlink_option ? RECURSIVE_REMOVE_OPTION + : ORDINARY_REMOVE_OPTION) && errno && errno != ENOENT) { unlink_error (file_name); @@ -520,7 +521,7 @@ maybe_recoverable (char *file_name, int *interdir_made) case NO_OVERWRITE_DIR_OLD_FILES: case OVERWRITE_OLD_FILES: { - int r = remove_any_file (file_name, 0); + int r = remove_any_file (file_name, ORDINARY_REMOVE_OPTION); errno = EEXIST; return r; } @@ -1210,3 +1211,10 @@ fatal_exit (void) error (TAREXIT_FAILURE, 0, _("Error is not recoverable: exiting now")); abort (); } + +void +xalloc_die (void) +{ + error (0, 0, "%s", _("memory exhausted")); + fatal_exit (); +}