Mercurial > hg > mercurial-crew-with-dirclash
annotate mercurial/httprangereader.py @ 1562:2f97af0b522c
Fix walkhelper on windows.
The ''seen'' dictionary stores paths in canonical form,
so the walkhelp must also provide paths in that form,
otherwise the changed files are listed twice.
author | Christian Boos <cboos@neuf.fr> |
---|---|
date | Thu, 01 Dec 2005 10:48:18 -0600 |
parents | 59b3639df0a9 |
children | f5046cab9e2e |
rev | line source |
---|---|
372 | 1 # httprangereader.py - just what it says |
2 # | |
3 # Copyright 2005 Matt Mackall <mpm@selenic.com> | |
4 # | |
5 # This software may be used and distributed according to the terms | |
6 # of the GNU General Public License, incorporated herein by reference. | |
7 | |
8 import byterange, urllib2 | |
9 | |
1559
59b3639df0a9
Convert all classes to new-style classes by deriving them from object.
Eric Hopper <hopper@omnifarious.org>
parents:
372
diff
changeset
|
10 class httprangereader(object): |
372 | 11 def __init__(self, url): |
12 self.url = url | |
13 self.pos = 0 | |
14 def seek(self, pos): | |
15 self.pos = pos | |
16 def read(self, bytes=None): | |
17 opener = urllib2.build_opener(byterange.HTTPRangeHandler()) | |
18 urllib2.install_opener(opener) | |
19 req = urllib2.Request(self.url) | |
20 end = '' | |
21 if bytes: end = self.pos + bytes | |
22 req.add_header('Range', 'bytes=%d-%s' % (self.pos, end)) | |
23 f = urllib2.urlopen(req) | |
24 return f.read() |