From af621a6be0d4daa8438c949160e9cf846cbc937c Mon Sep 17 00:00:00 2001 From: Andrew Hamilton Date: Sat, 29 Jan 2022 10:44:25 +1000 Subject: [PATCH] editor: Fix overwriting mode side effects - insert_text normally shouldn't always overwrite when in overwriting mode. --- diff_edit/editor.py | 6 +++--- tests/editor_test.py | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/diff_edit/editor.py b/diff_edit/editor.py index 86c0ac5..5f6934a 100755 --- a/diff_edit/editor.py +++ b/diff_edit/editor.py @@ -339,10 +339,10 @@ class Editor: self.text_widget[start_y:end_y+1] = [new_line] self.cursor_x, self.cursor_y = start_x, start_y - def insert_text(self, text): + def insert_text(self, text, is_overwriting=False): try: current_line = self.text_widget[self.cursor_y] - replace_count = len(text) if self.is_overwriting else 0 + replace_count = len(text) if is_overwriting else 0 self.text_widget[self.cursor_y] = (current_line[:self.cursor_x] + text + current_line[self.cursor_x+replace_count:]) except IndexError: @@ -575,7 +575,7 @@ class Editor: except IndexError: self.ring_bell() elif term_code in self._PRINTABLE: - self.insert_text(term_code) + self.insert_text(term_code, is_overwriting=self.is_overwriting) else: self.insert_text(repr(term_code)) self.previous_term_code = term_code diff --git a/tests/editor_test.py b/tests/editor_test.py index a0ffccb..4987c53 100755 --- a/tests/editor_test.py +++ b/tests/editor_test.py @@ -83,11 +83,11 @@ class EditorTestCase(unittest.TestCase): # overwrite self.editor.toggle_overwrite() self.editor.cursor_left() - self.editor.insert_text("d") + self.editor.insert_text("d", is_overwriting=True) self._assert_editor("abd", (3, 0)) self.editor.cursor_left() self.editor.cursor_left() - self.editor.insert_text("ef") + self.editor.insert_text("ef", is_overwriting=True) self._assert_editor("aef", (3, 0)) def test_enter(self):