comparison pylons_app/controllers/files.py @ 272:a83e86e3f580

fixed bug when displaying html not escaped data as raw diff.
author Marcin Kuzminski <marcin@python-works.com>
date Tue, 08 Jun 2010 23:02:24 +0200
parents c3661cf28bec
children 2d61aa00e855
comparison
equal deleted inserted replaced
271:0d809e72b357 272:a83e86e3f580
24 """ 24 """
25 from mercurial import archival 25 from mercurial import archival
26 from pylons import request, response, session, tmpl_context as c, url 26 from pylons import request, response, session, tmpl_context as c, url
27 from pylons_app.lib.auth import LoginRequired 27 from pylons_app.lib.auth import LoginRequired
28 from pylons_app.lib.base import BaseController, render 28 from pylons_app.lib.base import BaseController, render
29 import pylons_app.lib.helpers as h
29 from pylons_app.model.hg_model import HgModel 30 from pylons_app.model.hg_model import HgModel
30 from vcs.exceptions import RepositoryError, ChangesetError 31 from vcs.exceptions import RepositoryError, ChangesetError
31 from vcs.utils import diffs as differ 32 from vcs.utils import diffs as differ
32 import logging 33 import logging
33 import tempfile 34 import tempfile
155 response.content_disposition = 'attachment; filename=%s' \ 156 response.content_disposition = 'attachment; filename=%s' \
156 % diff_name 157 % diff_name
157 return diff.raw_diff() 158 return diff.raw_diff()
158 159
159 elif action == 'raw': 160 elif action == 'raw':
160 c.cur_diff = '<pre class="raw">%s</pre>' % diff.raw_diff() 161 c.cur_diff = '<pre class="raw">%s</pre>' % h.escape(diff.raw_diff())
161 elif action == 'diff': 162 elif action == 'diff':
162 c.cur_diff = diff.as_html() 163 c.cur_diff = diff.as_html()
163 164
164 return render('files/file_diff.html') 165 return render('files/file_diff.html')
165 166