summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/multifile.py13
1 files changed, 11 insertions, 2 deletions
diff --git a/Lib/multifile.py b/Lib/multifile.py
index 71e0dd0..247b010 100644
--- a/Lib/multifile.py
+++ b/Lib/multifile.py
@@ -44,8 +44,17 @@ class MultiFile:
return self.lastpos
return self.fp.tell() - self.start
#
- def seek(self, pos):
- if not 0 <= pos <= self.tell() or \
+ def seek(self, pos, whence=0):
+ here = self.tell()
+ if whence:
+ if whence == 1:
+ pos = pos + here
+ elif whence == 2:
+ if self.level > 0:
+ pos = pos + self.lastpos
+ else:
+ raise Error, "can't use whence=2 yet"
+ if not 0 <= pos <= here or \
self.level > 0 and pos > self.lastpos:
raise Error, 'bad MultiFile.seek() call'
self.fp.seek(pos + self.start)