Skip to content

Commit 4a3a2d0

Browse files
committed
Merge pull request bpython#558 from wevial/transpose_bug
Fix bug bpython#548 - Transpose when empty line crashes
2 parents a17999d + c08b42d commit 4a3a2d0

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

bpython/curtsiesfrontend/manual_readline.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -280,11 +280,13 @@ def yank_prev_killed_text(cursor_offset, line, cut_buffer):
280280

281281
@edit_keys.on(config='transpose_chars_key')
282282
def transpose_character_before_cursor(cursor_offset, line):
283+
if cursor_offset == 0:
284+
return cursor_offset, line
283285
return (min(len(line), cursor_offset + 1),
284-
line[:cursor_offset-1] +
286+
line[:cursor_offset - 1] +
285287
(line[cursor_offset] if len(line) > cursor_offset else '') +
286288
line[cursor_offset - 1] +
287-
line[cursor_offset+1:])
289+
line[cursor_offset + 1:])
288290

289291

290292
@edit_keys.on('<Esc+t>')

bpython/test/test_manual_readline.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -201,6 +201,16 @@ def test_transpose_character_before_cursor(self):
201201
"adf s|asdf",
202202
"adf as|sdf"], transpose_character_before_cursor)
203203

204+
def test_transpose_empty_line(self):
205+
self.assertEquals(transpose_character_before_cursor(0, ''),
206+
(0,''))
207+
208+
def test_transpose_first_character(self):
209+
self.assertEquals(transpose_character_before_cursor(0, 'a'),
210+
transpose_character_before_cursor(0, 'a'))
211+
self.assertEquals(transpose_character_before_cursor(0, 'as'),
212+
transpose_character_before_cursor(0, 'as'))
213+
204214
def test_transpose_word_before_cursor(self):
205215
pass
206216

0 commit comments

Comments
 (0)