Mercurial > public > src > rhodecode
changeset 32:f93b523c0be3
dirty fix for multiple file encodings,
author | Marcin Kuzminski <marcin@python-blog.com> |
---|---|
date | Fri, 05 Mar 2010 01:14:30 +0100 |
parents | 2963f2894a7a |
children | 22b2234e51cd |
files | pylons_app/config/environment.py pylons_app/controllers/hg.py |
diffstat | 2 files changed, 23 insertions(+), 16 deletions(-) [+] |
line wrap: on
line diff
--- a/pylons_app/config/environment.py Thu Mar 04 23:13:12 2010 +0100 +++ b/pylons_app/config/environment.py Fri Mar 05 01:14:30 2010 +0100 @@ -18,14 +18,14 @@ """ # Pylons paths root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) - paths = dict(root = root, - controllers = os.path.join(root, 'controllers'), - static_files = os.path.join(root, 'public'), - templates = [os.path.join(root, 'templates')]) + paths = dict(root=root, + controllers=os.path.join(root, 'controllers'), + static_files=os.path.join(root, 'public'), + templates=[os.path.join(root, 'templates')]) # Initialize config with the basic options - config.init_app(global_conf, app_conf, package = 'pylons_app', - template_engine = 'mako', paths = paths) + config.init_app(global_conf, app_conf, package='pylons_app', + template_engine='mako', paths=paths) config['routes.map'] = make_map() config['pylons.g'] = app_globals.Globals() @@ -33,12 +33,12 @@ # Create the Mako TemplateLookup, with the default auto-escaping config['pylons.g'].mako_lookup = TemplateLookup( - directories = paths['templates'], - error_handler = handle_mako_error, - module_directory = os.path.join(app_conf['cache_dir'], 'templates'), - input_encoding = 'utf-8', output_encoding = 'utf-8', - imports = ['from webhelpers.html import escape'], - default_filters = ['escape']) + directories=paths['templates'], + error_handler=handle_mako_error, + module_directory=os.path.join(app_conf['cache_dir'], 'templates'), + output_encoding='utf-8', + imports=['from webhelpers.html import escape'], + default_filters=['escape']) # CONFIGURATION OPTIONS HERE (note: all config options will override # any Pylons config options)
--- a/pylons_app/controllers/hg.py Thu Mar 04 23:13:12 2010 +0100 +++ b/pylons_app/controllers/hg.py Fri Mar 05 01:14:30 2010 +0100 @@ -24,11 +24,18 @@ if request.environ['HTTP_ACCEPT'].find("mercurial") != -1 or \ request.environ['PATH_INFO'].find('raw-file') != -1: return response - - tmpl = ''.join(response) + try: + tmpl = u''.join(response) + template = Template(tmpl, lookup=request.environ['pylons.pylons']\ + .config['pylons.g'].mako_lookup) + + except (RuntimeError, UnicodeDecodeError): + log.info('disabling unicode due to encoding error') + response = g.hgapp(request.environ, self.start_response) + tmpl = ''.join(response) + template = Template(tmpl, lookup=request.environ['pylons.pylons']\ + .config['pylons.g'].mako_lookup, disable_unicode=True) - template = Template(tmpl, lookup=request.environ['pylons.pylons']\ - .config['pylons.g'].mako_lookup) return template.render(g=g, c=c, session=session, h=h)