diff options
author | Helmut Grohne <helmut@subdivi.de> | 2017-11-03 22:23:59 +0100 |
---|---|---|
committer | Helmut Grohne <helmut@subdivi.de> | 2017-11-03 22:23:59 +0100 |
commit | 0f5bf1438457e801ee347c6c24062e0c066f5e5b (patch) | |
tree | ab4c4e722955a322543038d686a652745e7386da | |
parent | f0109cd5051e4b32e038d0dc156e5a8e4fd08caf (diff) | |
download | tcvt-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-x | tcvt.py | 25 |
1 files changed, 19 insertions, 6 deletions
@@ -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: |