1.1 --- a/iixr.py Sat Sep 12 01:32:19 2009 +0200
1.2 +++ b/iixr.py Sat Sep 12 01:52:23 2009 +0200
1.3 @@ -263,16 +263,22 @@
1.4
1.5 s = self.cache[:n]
1.6 self.cache = self.cache[n:]
1.7 - self.cache_length -= len(s)
1.8 + self.cache_length = len(self.cache)
1.9 return s
1.10
1.11 def tell(self):
1.12 return self.f.tell() - self.cache_length
1.13
1.14 def seek(self, offset):
1.15 + current = self.tell()
1.16 self.f.seek(offset)
1.17 - self.cache = ""
1.18 - self.cache_length = 0
1.19 + if offset >= current:
1.20 + discarded = offset - current
1.21 + self.cache = self.cache[discarded:]
1.22 + self.cache_length = len(self.cache)
1.23 + else:
1.24 + self.cache = ""
1.25 + self.cache_length = 0
1.26
1.27 class FileOpener:
1.28