From 4a8c4c460118dc4f5913d5f2f3bfb1ebbd365178 Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Fri, 28 Sep 2018 19:01:20 +0530 Subject: [PATCH] Unicode input: Fix an error when searching for the string 'fir' Fixes #1035 --- docs/changelog.rst | 2 ++ kittens/unicode_input/main.py | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) 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') + ' '