# HG changeset patch # User Oleg Oshmyan # Date 1299095523 0 # Node ID 62a96d51bf94d55372f884edb3a40d250231e8bb # Parent bbf9c434fa57f066dcaec95345849ff31ac7d890 Fixed ZipArchive.extract with relative paths on Windows diff -r bbf9c434fa57 -r 62a96d51bf94 files.py --- a/files.py Wed Mar 02 19:00:57 2011 +0000 +++ b/files.py Wed Mar 02 19:52:03 2011 +0000 @@ -108,16 +108,16 @@ self.file = zipfile.ZipFile(path) def extract(self, name, target): + member = self.file.getinfo(name) + # FIXME: 2.5 lacks ZipFile.extract if os.path.isabs(target): # To my knowledge, this is as portable as it gets path = os.path.join(os.path.splitdrive(target)[0], os.path.sep) + member.filename = os.path.relpath(target, path) + self.file.extract(member, path) else: - path = None - - member = self.file.getinfo(name) - member.filename = os.path.relpath(target, path) - # FIXME: 2.5 lacks ZipFile.extract - self.file.extract(member, path) + member.filename = os.path.relpath(target) + self.file.extract(member) def open(self, name): return self.file.open(name, 'rU')