changeset 2989:190e2ff4595d beta

fix for issue #602, enforce str when setting mercurial UI object. When this is used together with mercurial internal translation system it can lead to UnicodeDecodeErrors
author Marcin Kuzminski <marcin@python-works.com>
date Wed, 07 Nov 2012 19:38:46 +0100
parents 8ca4d9f64ae0
children 0bc7b5895242
files rhodecode/lib/utils.py
diffstat 1 files changed, 5 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/rhodecode/lib/utils.py	Wed Nov 07 19:10:09 2012 +0100
+++ b/rhodecode/lib/utils.py	Wed Nov 07 19:38:46 2012 +0100
@@ -307,7 +307,7 @@
         for section in ui_sections:
             for k, v in cfg.items(section):
                 log.debug('settings ui from file[%s]%s:%s' % (section, k, v))
-                baseui.setconfig(section, k, v)
+                baseui.setconfig(safe_str(section), safe_str(k), safe_str(v))
 
     elif read_from == 'db':
         sa = meta.Session()
@@ -320,11 +320,13 @@
             if ui_.ui_active:
                 log.debug('settings ui from db[%s]%s:%s', ui_.ui_section,
                           ui_.ui_key, ui_.ui_value)
-                baseui.setconfig(ui_.ui_section, ui_.ui_key, ui_.ui_value)
+                baseui.setconfig(safe_str(ui_.ui_section), safe_str(ui_.ui_key),
+                                 safe_str(ui_.ui_value))
             if ui_.ui_key == 'push_ssl':
                 # force set push_ssl requirement to False, rhodecode
                 # handles that
-                baseui.setconfig(ui_.ui_section, ui_.ui_key, False)
+                baseui.setconfig(safe_str(ui_.ui_section), safe_str(ui_.ui_key),
+                                 False)
         if clear_session:
             meta.Session.remove()
     return baseui