summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHelmut Grohne <helmut@subdivi.de>2017-11-03 22:23:59 +0100
committerHelmut Grohne <helmut@subdivi.de>2017-11-03 22:23:59 +0100
commit0f5bf1438457e801ee347c6c24062e0c066f5e5b (patch)
treeab4c4e722955a322543038d686a652745e7386da
parentf0109cd5051e4b32e038d0dc156e5a8e4fd08caf (diff)
downloadtcvt-0f5bf1438457e801ee347c6c24062e0c066f5e5b.tar.gz
implement "el" family properly
el0 simply is el. el1 was implemented improperly and missed clearing the character under the cursor. el2 clears the whole line.
-rwxr-xr-xtcvt.py25
1 files changed, 19 insertions, 6 deletions
diff --git a/tcvt.py b/tcvt.py
index de62116..21126f7 100755
--- a/tcvt.py
+++ b/tcvt.py
@@ -442,17 +442,26 @@ class Terminal:
self.screen.clrtobot()
self.request_refresh()
- def do_el(self):
+ def do_el0(self):
self.screen.clrtoeol()
self.request_refresh()
+ do_el = do_el0
+
def do_el1(self):
y, x = self.screen.getyx()
- if x > 0:
- self.screen.move(y, 0)
- for _ in range(x):
- self.screen.addch(ord(b' '))
- self.request_refresh()
+ self.screen.move(y, 0)
+ for _ in range(x + 1):
+ self.screen.addch(ord(b' '))
+ self.screen.move(y, x)
+ self.request_refresh()
+
+ def do_el2(self):
+ y, x = self.screen.getyx()
+ self.screen.move(y, 0)
+ self.screen.clrtoeol()
+ self.screen.move(y, x)
+ self.request_refresh()
def do_home(self):
self.screen.move(0, 0)
@@ -663,8 +672,12 @@ class Terminal:
self.screen.move(0, 0)
self.screen.clrtobot()
self.request_refresh()
+ elif char == ord(b'K') and prev == b'0':
+ self.do_el0()
elif char == ord(b'K') and prev == b'1':
self.do_el1()
+ elif char == ord(b'K') and prev == b'2':
+ self.do_el2()
elif char == ord(b'n') and prev == b'6':
return self.do_u7()
else: