##// END OF EJS Templates
hgweb: add compatibility code for old templates...
Alexis S. L. Carvalho -
r6379:d2bb66a8 default
parent child Browse files
Show More
@@ -6,7 +6,7 b''
6 6 # This software may be used and distributed according to the terms
7 7 # of the GNU General Public License, incorporated herein by reference.
8 8
9 import os, mimetypes, re
9 import os, mimetypes, re, mimetools, cStringIO
10 10 from mercurial.node import hex, nullid, short
11 11 from mercurial.repo import RepoError
12 12 from mercurial import mdiff, ui, hg, util, archival, patch, hook
@@ -226,8 +226,17 b' class hgweb(object):'
226 226 try:
227 227
228 228 tmpl = self.templater(req)
229 ctype = tmpl('mimetype', encoding=self.encoding)
230 ctype = templater.stringify(ctype)
229 try:
230 ctype = tmpl('mimetype', encoding=self.encoding)
231 ctype = templater.stringify(ctype)
232 except KeyError:
233 # old templates with inline HTTP headers?
234 if 'mimetype' in tmpl:
235 raise
236 header = tmpl('header', encoding=self.encoding)
237 header_file = cStringIO.StringIO(templater.stringify(header))
238 msg = mimetools.Message(header_file, 0)
239 ctype = msg['content-type']
231 240
232 241 if cmd == '':
233 242 req.form['cmd'] = [tmpl.cache['default']]
@@ -282,7 +291,13 b' class hgweb(object):'
282 291 # some functions for the templater
283 292
284 293 def header(**map):
285 yield tmpl('header', encoding=self.encoding, **map)
294 header = tmpl('header', encoding=self.encoding, **map)
295 if 'mimetype' not in tmpl:
296 # old template with inline HTTP headers
297 header_file = cStringIO.StringIO(templater.stringify(header))
298 msg = mimetools.Message(header_file, 0)
299 header = header_file.read()
300 yield header
286 301
287 302 def footer(**map):
288 303 yield tmpl("footer", **map)
@@ -6,7 +6,7 b''
6 6 # This software may be used and distributed according to the terms
7 7 # of the GNU General Public License, incorporated herein by reference.
8 8
9 import os
9 import os, mimetools, cStringIO
10 10 from mercurial.i18n import gettext as _
11 11 from mercurial.repo import RepoError
12 12 from mercurial import ui, hg, util, templater, templatefilters
@@ -81,8 +81,17 b' class hgwebdir(object):'
81 81
82 82 virtual = req.env.get("PATH_INFO", "").strip('/')
83 83 tmpl = self.templater(req)
84 ctype = tmpl('mimetype', encoding=util._encoding)
85 ctype = templater.stringify(ctype)
84 try:
85 ctype = tmpl('mimetype', encoding=util._encoding)
86 ctype = templater.stringify(ctype)
87 except KeyError:
88 # old templates with inline HTTP headers?
89 if 'mimetype' in tmpl:
90 raise
91 header = tmpl('header', encoding=util._encoding)
92 header_file = cStringIO.StringIO(templater.stringify(header))
93 msg = mimetools.Message(header_file, 0)
94 ctype = msg['content-type']
86 95
87 96 # a static file
88 97 if virtual.startswith('static/') or 'static' in req.form:
@@ -246,7 +255,13 b' class hgwebdir(object):'
246 255 def templater(self, req):
247 256
248 257 def header(**map):
249 yield tmpl('header', encoding=util._encoding, **map)
258 header = tmpl('header', encoding=util._encoding, **map)
259 if 'mimetype' not in tmpl:
260 # old template with inline HTTP headers
261 header_file = cStringIO.StringIO(templater.stringify(header))
262 msg = mimetools.Message(header_file, 0)
263 header = header_file.read()
264 yield header
250 265
251 266 def footer(**map):
252 267 yield tmpl("footer", **map)
General Comments 0
You need to be logged in to leave comments. Login now