elif unicodedata.category(c).startswith("C"):
c = r"\u%04x" % ord(c)
s.append(c)
- b.extend([0] * (len(c) - 1))
+ b.append(len(c))
else:
s.append(c)
b.append(str_width(c))
cur_x = self.screeninfo[i][0]
while cur_x < x:
if self.screeninfo[i][1][j] == 0:
+ j += 1 # prevent potential future infinite loop
continue
cur_x += self.screeninfo[i][1][j]
j += 1
# Simulate a resize to 0 columns
reader.screeninfo = []
self.assertEqual(reader.pos2xy(), (0, 0))
+
+ def test_setpos_from_xy_for_non_printing_char(self):
+ code = "# non \u200c printing character"
+ events = code_to_events(code)
+
+ reader, _ = handle_all_events(events)
+ reader.setpos_from_xy(8, 0)
+ self.assertEqual(reader.pos, 7)