Skip to content

Commit 2f8a6fc

Browse files
committed
fix end and home to be less naive (i.e. work on multiple lines)
1 parent a11f7a5 commit 2f8a6fc

File tree

1 file changed

+19
-2
lines changed

1 file changed

+19
-2
lines changed

bpython/cli.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1206,6 +1206,23 @@ def mvc(self, i, refresh=True):
12061206

12071207
return True
12081208

1209+
def home(self, refresh=True):
1210+
self.scr.move(self.iy, self.ix)
1211+
self.cpos = len(self.s)
1212+
if refresh:
1213+
self.scr.refresh()
1214+
return True
1215+
1216+
def end(self, refresh=True):
1217+
self.cpos = 0
1218+
h, w = gethw()
1219+
y, x = divmod(len(self.s) + self.ix, w)
1220+
y += self.iy
1221+
self.scr.move(y, x)
1222+
if refresh:
1223+
self.scr.refresh()
1224+
return True
1225+
12091226
def bs(self, delete_tabs=True):
12101227
"""Process a backspace"""
12111228

@@ -1330,10 +1347,10 @@ def p_key(self):
13301347
self.print_line(self.s)
13311348

13321349
elif self.c in ("KEY_HOME", '^A', chr(1)): # home or ^A
1333-
self.mvc(len(self.s) - self.cpos)
1350+
self.home()
13341351

13351352
elif self.c in ("KEY_END", '^E', chr(5)): # end or ^E
1336-
self.mvc(-self.cpos)
1353+
self.end()
13371354

13381355
elif self.c in ('^K', chr(11)): # cut to buffer
13391356
self.cut_to_buffer()

0 commit comments

Comments
 (0)