# HG changeset patch # User Paul Boddie # Date 1252713143 -7200 # Node ID 0cd36671c34eaafa644a3186437ededc50dcd4a9 # Parent 628c5c3881099d567d1232ed5bcc6a04df3682b2 Made the seek method slightly more efficient at reusing cached data. diff -r 628c5c388109 -r 0cd36671c34e iixr.py --- a/iixr.py Sat Sep 12 01:32:19 2009 +0200 +++ b/iixr.py Sat Sep 12 01:52:23 2009 +0200 @@ -263,16 +263,22 @@ s = self.cache[:n] self.cache = self.cache[n:] - self.cache_length -= len(s) + self.cache_length = len(self.cache) return s def tell(self): return self.f.tell() - self.cache_length def seek(self, offset): + current = self.tell() self.f.seek(offset) - self.cache = "" - self.cache_length = 0 + if offset >= current: + discarded = offset - current + self.cache = self.cache[discarded:] + self.cache_length = len(self.cache) + else: + self.cache = "" + self.cache_length = 0 class FileOpener: