From 95d0d9139d48ef1ffd4d5666cd3d4517b5da6600 Mon Sep 17 00:00:00 2001 From: Fabio Erculiani Date: Fri, 10 Dec 2010 12:43:35 +0100 Subject: [PATCH] [entropy.output] always return unicode data (when possible) out of _my_raw_input(), close bug 2006. --- libraries/entropy/output.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/libraries/entropy/output.py b/libraries/entropy/output.py index b9c87b694..7312c6b39 100644 --- a/libraries/entropy/output.py +++ b/libraries/entropy/output.py @@ -16,7 +16,8 @@ import sys import errno import curses -from entropy.const import etpUi, const_convert_to_rawstring, const_isstring +from entropy.const import etpUi, const_convert_to_rawstring, const_isstring, \ + const_convert_to_unicode, const_isunicode from entropy.i18n import _ stuff = {} @@ -626,6 +627,15 @@ def _my_raw_input(txt = ''): break response += y _flush_stdouterr() + + # try to convert to unicode, because responses are stored that + # way, fix bug #2006. + if not const_isunicode(response): + try: + response = const_convert_to_unicode(response, "utf-8") + except (UnicodeDecodeError, UnicodeEncodeError): + # be fault tolerant, we just tried + pass return response class TextInterface: