Mercurial > public > mercurial-scm > hg
comparison mercurial/util.py @ 26479:46143f31290e
util.chunkbuffer: refactor chunk handling logic
This will make the next patch easier to read. It provides no benefit on
its own.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Mon, 05 Oct 2015 16:34:47 -0700 |
parents | a3f7e5461dbd |
children | 6ae14d1ca3aa |
comparison
equal
deleted
inserted
replaced
26478:a3f7e5461dbd | 26479:46143f31290e |
---|---|
1308 if target <= 0: | 1308 if target <= 0: |
1309 break | 1309 break |
1310 if not queue: | 1310 if not queue: |
1311 break | 1311 break |
1312 | 1312 |
1313 chunk = queue.popleft() | 1313 chunk = queue[0] |
1314 left -= len(chunk) | 1314 chunkl = len(chunk) |
1315 if left < 0: | 1315 |
1316 # Use full chunk. | |
1317 if left >= chunkl: | |
1318 left -= chunkl | |
1319 queue.popleft() | |
1320 buf.append(chunk) | |
1321 # Partial chunk needed. | |
1322 else: | |
1323 left -= chunkl | |
1324 queue.popleft() | |
1316 queue.appendleft(chunk[left:]) | 1325 queue.appendleft(chunk[left:]) |
1317 buf.append(chunk[:left]) | 1326 buf.append(chunk[:left]) |
1318 else: | |
1319 buf.append(chunk) | |
1320 | 1327 |
1321 return ''.join(buf) | 1328 return ''.join(buf) |
1322 | 1329 |
1323 def filechunkiter(f, size=65536, limit=None): | 1330 def filechunkiter(f, size=65536, limit=None): |
1324 """Create a generator that produces the data in the file size | 1331 """Create a generator that produces the data in the file size |