From 45d49b9de8391c95843edbc3cc1f6a0ed1c13720 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Mon, 14 Mar 2016 01:48:56 +0100 Subject: [PATCH] settings: fix Python 3 compat for boolean values As observed for the fn-swap setting. --- lib/logitech_receiver/settings.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/logitech_receiver/settings.py b/lib/logitech_receiver/settings.py index bd16f6f5..84ecf665 100644 --- a/lib/logitech_receiver/settings.py +++ b/lib/logitech_receiver/settings.py @@ -291,17 +291,17 @@ class BooleanValidator(object): if current_value is not None and to_write == ord(current_value[:1]): return None else: - to_write = list(to_write) + to_write = bytearray(to_write) count = len(self.mask) for i in range(0, count): - b = ord(to_write[i]) + b = ord(to_write[i:i+1]) m = ord(self.mask[i : i + 1]) assert b & m == b # b &= m if current_value is not None and self.needs_current_value: b |= ord(current_value[i : i + 1]) & (0xFF ^ m) - to_write[i] = chr(b) - to_write = b''.join(to_write) + to_write[i] = b + to_write = bytes(to_write) if current_value is not None and to_write == current_value[:len(to_write)]: return None