From 82c24e26035ac7539fb4263ae7020ff6429c61b8 Mon Sep 17 00:00:00 2001 From: Helmut Grohne Date: Sat, 10 Dec 2016 07:26:38 +0100 Subject: convert more branches into table lookups --- tcvt.py | 42 ++++++++++++++++++++++++------------------ 1 file changed, 24 insertions(+), 18 deletions(-) (limited to 'tcvt.py') diff --git a/tcvt.py b/tcvt.py index 2a857df..55084b8 100755 --- a/tcvt.py +++ b/tcvt.py @@ -462,7 +462,7 @@ class Terminal: def do_hpa(self, n): y, _ = self.screen.getyx() - self.screen.move(y, n) + self.screen.move(y, n - 1) self.request_refresh() def do_ht(self): @@ -498,12 +498,28 @@ class Terminal: def do_invis(self): self.screen.attron(curses.A_INVIS) + def do_rep(self, n): + for _ in range(n): + self.screen.addch(self.lastchar) + self.request_refresh() + + def do_rmacs(self): + self.graphics_font = False + self.feed_reset() + + def do_smacs(self): + self.graphics_font = True + self.feed_reset() + + def do_smso(self): + self.screen.attron(curses.A_REVERSE) + def do_smul(self): self.screen.attron(curses.A_UNDERLINE) def do_vpa(self, n): _, x = self.screen.getyx() - self.screen.move(n, x) + self.screen.move(n - 1, x) self.request_refresh() def feed_reset(self): @@ -577,7 +593,10 @@ class Terminal: 1: do_bold, 4: do_smul, 5: do_blink, + 7: do_smso, 8: do_invis, + 10: do_rmacs, + 11: do_smacs, } def feed_color(self, code): func = self.feed_color_table.get(code) @@ -586,14 +605,6 @@ class Terminal: elif code == 0: self.fg = self.bg = 0 self.screen.attrset(0) - elif code == 7: - self.screen.attron(curses.A_REVERSE) - elif code == 10: - self.graphics_font = False - self.feed_reset() - elif code == 11: - self.graphics_font = True - self.feed_reset() elif 30 <= code <= 37: self.fg = code - 30 self.screen.attron(get_color(self.fg, self.bg)) @@ -614,11 +625,14 @@ class Terminal: ord('B'): do_cud, ord('C'): do_cuf, ord('D'): do_cub, + ord('G'): do_hpa, ord('L'): do_il, ord('M'): do_dl, ord('P'): do_dch, ord('X'): do_ech, ord('@'): do_ich, + ord('b'): do_rep, + ord('d'): do_vpa, } def feed_esc_opbr_next(self, char, prev): self.feed_reset() @@ -641,14 +655,6 @@ class Terminal: self.screen.move(0, 0) self.screen.clrtobot() self.request_refresh() - elif char == ord(b'd') and prev.isdigit(): - self.do_vpa(int(prev) - 1) - elif char == ord(b'b') and prev.isdigit(): - for _ in range(int(prev)): - self.screen.addch(self.lastchar) - self.request_refresh() - elif char == ord(b'G') and prev.isdigit(): - self.do_hpa(int(prev) - 1) elif char == ord(b'K') and prev == b'1': self.do_el1() else: -- cgit v1.2.3