Properly use a BytesIO in XHTML outputter.
[wrw.git] / wrw / resp.py
index 75a7f3a..4840799 100644 (file)
@@ -1,4 +1,4 @@
-from . import dispatch, proto
+from . import dispatch, proto, env
 
 __all__ = ["skeleton", "skelfor", "setskel", "usererror"]
 
@@ -27,10 +27,10 @@ class skeleton(object):
     def message(self, message, detail):
         return self.page(message, """<h1>%s</h1>\n<p>%s</p>\n""" % (message, detail))
 
-defskel = skeleton()
+defskel = env.var(skeleton())
 
 def getskel(req):
-    return [defskel]
+    return [defskel.val]
 def skelfor(req):
     return req.item(getskel)[0]
 def setskel(req, skel):
@@ -43,7 +43,7 @@ class usererror(dispatch.restart):
         self.detail = detail
 
     def handle(self, req):
-        return [skelfor(req).error(self.message, self.detail)]
+        return [skelfor(req).error(self.message, self.detail).encode("utf-8")]
 
 class message(dispatch.restart):
     def __init__(self, message, detail):
@@ -52,7 +52,7 @@ class message(dispatch.restart):
         self.detail = detail
 
     def handle(self, req):
-        return [skelfor(req).message(self.message, self.detail)]
+        return [skelfor(req).message(self.message, self.detail).encode("utf-8")]
 
 class httperror(usererror):
     def __init__(self, status, message = None, detail = None):