From: Christian Heller Date: Sun, 20 Aug 2017 22:10:41 +0000 (+0200) Subject: Fix buggy healthy_addch(). X-Git-Tag: PtIG X-Git-Url: https://plomlompom.com/repos/%22https:/validator.w3.org/static/%27%29;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20chunks.push%28escapeHTML%28span%5B2%5D%29%29;%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20chunks.push%28%27?a=commitdiff_plain;ds=sidebyside;p=plomrogue Fix buggy healthy_addch(). --- diff --git a/client/window_management.py b/client/window_management.py index 610764b..a896b02 100644 --- a/client/window_management.py +++ b/client/window_management.py @@ -108,14 +108,20 @@ def set_windows(): def draw_screen(): def healthy_addch(y, x, char, attr=0): - """Workaround for .""" + """Wrap Python curses' addch() weirdnesses into sane interface. + + Works around with + and enforces char to be a byte + instead of a single-char string. + """ if y == screen_size[0] - 1 and x == screen_size[1] - 1: char_before = stdscr.inch(y, x - 1) - stdscr.addch(y, x - 1, char, attr) + stdscr.addch(y, x - 1, char.encode(), attr) stdscr.insstr(y, x - 1, " ") - stdscr.addch(y, x - 1, char_before) + stdscr.addch(y, x - 1, + char_before & 0xFF, char_before & curses.A_ATTRIBUTES) else: - stdscr.addch(y, x, char, attr) + stdscr.addch(y, x, char.encode(), attr) def draw_window_border_lines(): for win in windows: