Files
tar/gnulib.modules
Paul Eggert 9447e799ab tar: use more-accurate diagnostic when intermediate mkdir fails
Without this change, if tar tried to extract a file A/B/C, noticed
that A/B didn't exist, attempted to mkdir A/B, and the mkdir
failed, it did not diagnose the mkdir failure, but simply reported
the failure to open A/B/C.  This sometimes led to confusion
because it wasn't clear what tar was trying to do, in particular
that tar tried to mkdir A/B.  With this patch, tar issues two
diagnostics in this case: one for A/B and the other for A/B/C.
Problem reported by Hauke Laging in
<http://lists.gnu.org/archive/html/bug-tar/2010-10/msg00020.html>.
* gnulib.modules: Remove faccessat.
* src/extract.c (make_directories): New arg INTERDIR_MADE.
Diagnose mkdir failure.  Return 0 on success, nonzero on failure,
as opposed to nonzero iff some directory was created.  All callers
changed.  Simplify the code when mkdir fails, by checking whether
the desired file exists unless errno==EEXIST: this is more robust.
* tests/extrac15.at: New test, to check this.
* tests/Makefile.am (TESTSUITE_AT): Add it.
* tests/testsuite.at: Include it.
2010-10-15 22:26:43 -07:00

71 lines
742 B
Plaintext

# List of gnulib modules needed for GNU tar.
# A module name per line. Empty lines and comments are ignored.
alloca
argmatch
argp
argp-version-etc
backupfile
closeout
configmake
dirname
error
exclude
exitfail
fdopendir
fdutimensat
fileblocks
fnmatch-gnu
fseeko
full-write
futimens
getline
getopt-gnu
getpagesize
gettext
gettime
gitlog-to-changelog
hash
human
inttostr
inttypes
lchown
linkat
localcharset
mkdtemp
mkfifoat
modechange
obstack
openat
parse-datetime
priv-set
progname
quote
quotearg
readlinkat
renameat
rpmatch
safe-read
savedir
setenv
snprintf
stat-time
stdbool
stdint
stpcpy
strdup-posix
strerror
strtol
strtoul
symlinkat
timespec
unlinkdir
unlocked-io
utimensat
version-etc-fsf
xalloc
xalloc-die
xgetcwd
xstrtoumax
xvasprintf