diff --git a/docs/changelog.rst b/docs/changelog.rst index 8de429f50..b8a4631c2 100644 --- a/docs/changelog.rst +++ b/docs/changelog.rst @@ -9,6 +9,8 @@ Changelog - macOS: Fix kitty window not being rendered on macOS Mojave until the window is moved or resized at least once (:iss:`887`) +- Unicode input: Fix an error when searching for the string 'fir' (:iss:`1035`) + 0.12.2 [2018-09-24] ------------------------------ diff --git a/kittens/unicode_input/main.py b/kittens/unicode_input/main.py index 1e954c39b..5746a5e55 100644 --- a/kittens/unicode_input/main.py +++ b/kittens/unicode_input/main.py @@ -159,9 +159,12 @@ class Table: self.last_cols, self.last_rows = cols, rows self.layout_dirty = False + def safe_chr(codepoint): + return chr(codepoint).encode('utf-8', 'replace').decode('utf-8') + if self.mode is NAME: def as_parts(i, codepoint): - return encode_hint(i).ljust(idx_size), chr(codepoint), name(codepoint) + return encode_hint(i).ljust(idx_size), safe_chr(codepoint), name(codepoint) def cell(i, idx, c, desc): is_current = i == self.current_idx @@ -181,7 +184,7 @@ class Table: else: def as_parts(i, codepoint): - return encode_hint(i).ljust(idx_size), chr(codepoint), '' + return encode_hint(i).ljust(idx_size), safe_chr(codepoint), '' def cell(i, idx, c, desc): yield colored(idx, 'green') + ' '