--- pyanaconda/ui/tui/simpleline/base.py | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/pyanaconda/ui/tui/simpleline/base.py b/pyanaconda/ui/tui/simpleline/base.py index 8c2424b..f47be2d 100644 --- a/pyanaconda/ui/tui/simpleline/base.py +++ b/pyanaconda/ui/tui/simpleline/base.py @@ -25,6 +25,7 @@ import sys import Queue import getpass import threading +import types from pyanaconda.threads import threadMgr, AnacondaThread from pyanaconda.ui.communication import hubQ from pyanaconda import constants @@ -729,6 +730,9 @@ class Widget(object): if not text: return
+ if type(text) != types.UnicodeType: + text = unicode(text) + if row is None: row = self._cursor[0]
On Fri, 2013-10-04 at 16:39 -0400, David Shea wrote:
pyanaconda/ui/tui/simpleline/base.py | 4 ++++ 1 file changed, 4 insertions(+)
diff --git a/pyanaconda/ui/tui/simpleline/base.py b/pyanaconda/ui/tui/simpleline/base.py index 8c2424b..f47be2d 100644 --- a/pyanaconda/ui/tui/simpleline/base.py +++ b/pyanaconda/ui/tui/simpleline/base.py @@ -25,6 +25,7 @@ import sys import Queue import getpass import threading +import types from pyanaconda.threads import threadMgr, AnacondaThread from pyanaconda.ui.communication import hubQ from pyanaconda import constants @@ -729,6 +730,9 @@ class Widget(object): if not text: return
if type(text) != types.UnicodeType:
text = unicode(text)
I'm afraid this needs to do something like 'text = text.decode("utf-8")' which passes for ascii and utf-8 encoded unicode. Doing it in the try-except block may replace the type() test. The except block should probably raise some descriptive exception telling us what happened.
If there is an error decoding the string as utf-8, raise an exception containing the failing string in the message. --- pyanaconda/ui/tui/simpleline/base.py | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/pyanaconda/ui/tui/simpleline/base.py b/pyanaconda/ui/tui/simpleline/base.py index 8c2424b..a9b1438 100644 --- a/pyanaconda/ui/tui/simpleline/base.py +++ b/pyanaconda/ui/tui/simpleline/base.py @@ -729,6 +729,12 @@ class Widget(object): if not text: return
+ try: + text = text.decode("utf-8") + except UnicodeDecodeError as e: + raise ValueError("Unable to decode string %s" % + str(e.object).decode("utf-8", "replace")) + if row is None: row = self._cursor[0]
On Mon, 2013-10-07 at 13:36 -0400, David Shea wrote:
If there is an error decoding the string as utf-8, raise an exception containing the failing string in the message.
pyanaconda/ui/tui/simpleline/base.py | 6 ++++++ 1 file changed, 6 insertions(+)
diff --git a/pyanaconda/ui/tui/simpleline/base.py b/pyanaconda/ui/tui/simpleline/base.py index 8c2424b..a9b1438 100644 --- a/pyanaconda/ui/tui/simpleline/base.py +++ b/pyanaconda/ui/tui/simpleline/base.py @@ -729,6 +729,12 @@ class Widget(object): if not text: return
try:
text = text.decode("utf-8")
except UnicodeDecodeError as e:
raise ValueError("Unable to decode string %s" %
str(e.object).decode("utf-8", "replace"))
if row is None: row = self._cursor[0]
Nice! ACK.
anaconda-patches@lists.fedorahosted.org