Make sure the files are deleted only if they were succesfully stored to the archive. * src/exit.c: New file. * src/unlink.c: New file. * src/Makefile.am (tar_SOURCES): Add exit.c and unlink.c. * src/common.h: Include progname.h (program_name): Remove global. (records_written): New extern. (queue_deferred_unlink, finish_deferred_unlinks): New prototypes. (fatal_exit_hook): New extern. * src/create.c (create_archive): Call finish_deferred_unlinks. (dump_hard_link, dump_file0): Don't actually unlink the file, queue it to deferred_unlinks instead. * src/delete.c (records_written): Remove extern: declared in common.h. * src/extract.c (extract_archive): Set fatal_exit_hook. (fatal_exit, xalloc_die): Move to exit.c * src/system.c (sys_wait_for_child): Exit immediately if the child dies or exits with a non-zero status. (sys_child_open_for_compress) (sys_child_open_for_uncompress): Use set_program_name, instead of setting program_name directly. * src/tar.c (main): Use set_program_name, instead of setting program_name directly. * tests/Makefile.am (TESTSUITE_AT): Add remfiles01.at and remfiles02.at. * tests/testsuite.at: Likewise. * tests/gzip.at: Reflect the above changes.
52 lines
1.3 KiB
Makefile
52 lines
1.3 KiB
Makefile
# Makefile for GNU tar sources.
|
|
|
|
# Copyright (C) 1994, 1995, 1996, 1997, 1999, 2000, 2001, 2003, 2006,
|
|
# 2007, 2009 Free Software Foundation, Inc.
|
|
|
|
## This program is free software; you can redistribute it and/or modify
|
|
## it under the terms of the GNU General Public License as published by
|
|
## the Free Software Foundation; either version 3, or (at your option)
|
|
## any later version.
|
|
|
|
## This program is distributed in the hope that it will be useful,
|
|
## but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
## GNU General Public License for more details.
|
|
|
|
## You should have received a copy of the GNU General Public License
|
|
## along with this program; if not, write to the Free Software
|
|
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
|
|
## 02110-1301, USA.
|
|
|
|
bin_PROGRAMS = tar
|
|
|
|
noinst_HEADERS = arith.h common.h tar.h
|
|
tar_SOURCES = \
|
|
buffer.c\
|
|
checkpoint.c\
|
|
compare.c\
|
|
create.c\
|
|
delete.c\
|
|
exit.c\
|
|
extract.c\
|
|
xheader.c\
|
|
incremen.c\
|
|
list.c\
|
|
misc.c\
|
|
names.c\
|
|
sparse.c\
|
|
suffix.c\
|
|
system.c\
|
|
tar.c\
|
|
transform.c\
|
|
unlink.c\
|
|
update.c\
|
|
utf8.c\
|
|
warning.c
|
|
|
|
INCLUDES = -I$(top_srcdir)/gnu -I../ -I../gnu -I$(top_srcdir)/lib -I../lib
|
|
|
|
LDADD = ../lib/libtar.a ../gnu/libgnu.a $(LIBINTL) $(LIBICONV)
|
|
|
|
tar_LDADD = $(LDADD) $(LIB_CLOCK_GETTIME)
|