~bzr-pqm/bzr/bzr.dev

« back to all changes in this revision

Viewing changes to bzrlib/revfile.py

  • Committer: mbp at sourcefrog
  • Date: 2005-04-09 05:14:33 UTC
  • Revision ID: mbp@sourcefrog.net-20050409051433-575f8625dcbb37fb63b09236
Revfile: handle decompression 

Show diffs side-by-side

added added

removed removed

Lines of Context:
284
284
 
285
285
 
286
286
    def _get_raw(self, idx, idxrec):
 
287
        flags = idxrec[I_FLAGS]
 
288
        if flags & ~FL_GZIP:
 
289
            raise RevfileError("unsupported index flags %#x on index %d"
 
290
                               % (flags, idx))
 
291
        
287
292
        l = idxrec[I_LEN]
288
293
        if l == 0:
289
294
            return ''
296
301
                               "getting text for record %d in %r"
297
302
                               % (len(data), l, idx, self.basename))
298
303
 
 
304
        if flags & FL_GZIP:
 
305
            data = zlib.decompress(data)
 
306
 
299
307
        return data
300
308
        
301
309
 
302
310
    def _get_full_text(self, idx, idxrec):
303
 
        assert idxrec[I_FLAGS] == 0
304
311
        assert idxrec[I_BASE] == _NO_RECORD
305
312
 
306
313
        text = self._get_raw(idx, idxrec)
309
316
 
310
317
 
311
318
    def _get_patched(self, idx, idxrec):
312
 
        assert idxrec[I_FLAGS] == 0
313
319
        base = idxrec[I_BASE]
314
320
        assert base >= 0
315
321
        assert base < idx    # no loops!