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 | try: | |
|
229 | 230 | ctype = tmpl('mimetype', encoding=self.encoding) |
|
230 | 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 |
|
|
|
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 | try: | |
|
84 | 85 | ctype = tmpl('mimetype', encoding=util._encoding) |
|
85 | 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 |
|
|
|
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