[Python-checkins] python/dist/src/Lib tarfile.py,1.30,1.31
loewis@users.sourceforge.net
loewis at users.sourceforge.net
Wed Aug 24 08:43:19 CEST 2005
Update of /cvsroot/python/python/dist/src/Lib
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13637/Lib
Modified Files:
tarfile.py
Log Message:
Revert previous checkin.
Index: tarfile.py
===================================================================
RCS file: /cvsroot/python/python/dist/src/Lib/tarfile.py,v
retrieving revision 1.30
retrieving revision 1.31
diff -u -d -r1.30 -r1.31
--- tarfile.py 24 Aug 2005 06:06:52 -0000 1.30
+++ tarfile.py 24 Aug 2005 06:43:09 -0000 1.31
@@ -849,7 +849,7 @@
can be determined, `mode' is overridden by `fileobj's mode.
`fileobj' is not closed, when TarFile is closed.
"""
- self.name = os.path.abspath(name)
+ self.name = name
if len(mode) > 1 or mode not in "raw":
raise ValueError, "mode must be 'r', 'a' or 'w'"
@@ -861,7 +861,7 @@
self._extfileobj = False
else:
if self.name is None and hasattr(fileobj, "name"):
- self.name = os.path.abspath(fileobj.name)
+ self.name = fileobj.name
if hasattr(fileobj, "mode"):
self.mode = fileobj.mode
self._extfileobj = True
@@ -998,18 +998,22 @@
raise CompressionError, "gzip module is not available"
pre, ext = os.path.splitext(name)
+ pre = os.path.basename(pre)
if ext == ".tgz":
ext = ".tar"
if ext == ".gz":
ext = ""
- tarname = os.path.basename(pre + ext)
+ tarname = pre + ext
if fileobj is None:
fileobj = file(name, mode + "b")
+ if mode != "r":
+ name = tarname
+
try:
- t = cls.taropen(name, mode,
- gzip.GzipFile(tarname, mode, compresslevel, fileobj)
+ t = cls.taropen(tarname, mode,
+ gzip.GzipFile(name, mode, compresslevel, fileobj)
)
except IOError:
raise ReadError, "not a gzip file"
@@ -1029,11 +1033,19 @@
except ImportError:
raise CompressionError, "bz2 module is not available"
+ pre, ext = os.path.splitext(name)
+ pre = os.path.basename(pre)
+ if ext == ".tbz2":
+ ext = ".tar"
+ if ext == ".bz2":
+ ext = ""
+ tarname = pre + ext
+
if fileobj is not None:
raise ValueError, "no support for external file objects"
try:
- t = cls.taropen(name, mode, bz2.BZ2File(name, mode, compresslevel=compresslevel))
+ t = cls.taropen(tarname, mode, bz2.BZ2File(name, mode, compresslevel=compresslevel))
except IOError:
raise ReadError, "not a bzip2 file"
t._extfileobj = False
@@ -1238,7 +1250,8 @@
arcname = name
# Skip if somebody tries to archive the archive...
- if self.name is not None and os.path.samefile(name, self.name):
+ if self.name is not None \
+ and os.path.abspath(name) == os.path.abspath(self.name):
self._dbg(2, "tarfile: Skipped %r" % name)
return
More information about the Python-checkins
mailing list