From f119bb5994d4213691298310c7c13835dc72986f Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Sat, 2 Jun 2007 16:48:16 +0000 Subject: [PATCH] Fix #92 --- src/libprs500/devices/prs500/driver.py | 2 +- src/libprs500/devices/prs500/prstypes.py | 9 +++++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/libprs500/devices/prs500/driver.py b/src/libprs500/devices/prs500/driver.py index 25431ecad4..9b86fb3a95 100755 --- a/src/libprs500/devices/prs500/driver.py +++ b/src/libprs500/devices/prs500/driver.py @@ -428,7 +428,7 @@ class PRS500(Device): command_number=PathQuery.NUMBER)[0] if path.endswith('/') and path != '/': path = path[:-1] - if res.path_not_found : + if res.path_not_found : raise PathError(path + " does not exist on device") if res.is_invalid: raise PathError(path + " is not a valid path") diff --git a/src/libprs500/devices/prs500/prstypes.py b/src/libprs500/devices/prs500/prstypes.py index 2f966eb968..ac24728f34 100755 --- a/src/libprs500/devices/prs500/prstypes.py +++ b/src/libprs500/devices/prs500/prstypes.py @@ -207,8 +207,11 @@ class stringfield(object): length = str(self._length_field.__get__(obj)) return obj.unpack(start=self._start, fmt="<"+length+"s")[0] - def __set__(self, obj, val): - val = str(val) + def __set__(self, obj, val): + if isinstance(val, unicode): + val = val.encode('utf8') + else: + val = str(val) obj.pack(val, start=self._start, fmt="<"+str(len(val))+"s") def __repr__(self): @@ -480,6 +483,8 @@ class PathCommand(Command): path = stringfield(path_length, start=20) #: The path this query is about def __init__(self, path, number, path_len_at_byte=16): Command.__init__(self, path_len_at_byte+4+len(path)) + if isinstance(path, unicode): + path = path.encode('utf8') self.path_length = len(path) self.path = path self.type = 0x01