--- a/mercurial/hgweb/request.py Tue Jan 22 09:28:51 2008 +0100
+++ b/mercurial/hgweb/request.py Tue Jan 22 12:31:55 2008 +0100
@@ -38,6 +38,10 @@
if not self.headers:
raise RuntimeError("request.write called before headers sent")
+ for k, v in self.headers:
+ if not isinstance(v, str):
+ raise TypeError('header value must be string: %r' % v)
+
if isinstance(status, ErrorResponse):
status = statusmessage(status.code)
elif isinstance(status, int):
--- a/mercurial/hgweb/webcommands.py Tue Jan 22 09:28:51 2008 +0100
+++ b/mercurial/hgweb/webcommands.py Tue Jan 22 12:31:55 2008 +0100
@@ -30,7 +30,7 @@
path = fctx.path()
text = fctx.data()
mt = mimetypes.guess_type(path)[0]
- if util.binary(text):
+ if mt is None or util.binary(text):
mt = mt or 'application/octet-stream'
req.httphdr(mt, path, len(text))