mirror of
https://github.com/python/cpython.git
synced 2025-08-04 00:48:58 +00:00
Will backport to 2.4.
This commit is contained in:
parent
9e34c04732
commit
5dbdc59577
3 changed files with 49 additions and 14 deletions
|
@ -1179,17 +1179,16 @@ class TarFile(object):
|
|||
|
||||
# Fill the TarInfo object with all
|
||||
# information we can get.
|
||||
tarinfo.name = arcname
|
||||
tarinfo.mode = stmd
|
||||
tarinfo.uid = statres.st_uid
|
||||
tarinfo.gid = statres.st_gid
|
||||
if stat.S_ISDIR(stmd):
|
||||
# For a directory, the size must be 0
|
||||
tarinfo.size = 0
|
||||
else:
|
||||
tarinfo.name = arcname
|
||||
tarinfo.mode = stmd
|
||||
tarinfo.uid = statres.st_uid
|
||||
tarinfo.gid = statres.st_gid
|
||||
if stat.S_ISREG(stmd):
|
||||
tarinfo.size = statres.st_size
|
||||
else:
|
||||
tarinfo.size = 0L
|
||||
tarinfo.mtime = statres.st_mtime
|
||||
tarinfo.type = type
|
||||
tarinfo.type = type
|
||||
tarinfo.linkname = linkname
|
||||
if pwd:
|
||||
try:
|
||||
|
@ -1280,16 +1279,15 @@ class TarFile(object):
|
|||
self.addfile(tarinfo, f)
|
||||
f.close()
|
||||
|
||||
if tarinfo.type in (LNKTYPE, SYMTYPE, FIFOTYPE, CHRTYPE, BLKTYPE):
|
||||
tarinfo.size = 0L
|
||||
self.addfile(tarinfo)
|
||||
|
||||
if tarinfo.isdir():
|
||||
elif tarinfo.isdir():
|
||||
self.addfile(tarinfo)
|
||||
if recursive:
|
||||
for f in os.listdir(name):
|
||||
self.add(os.path.join(name, f), os.path.join(arcname, f))
|
||||
|
||||
else:
|
||||
self.addfile(tarinfo)
|
||||
|
||||
def addfile(self, tarinfo, fileobj=None):
|
||||
"""Add the TarInfo object `tarinfo' to the archive. If `fileobj' is
|
||||
given, tarinfo.size bytes are read from it and added to the archive.
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue