diff options
author | Helmut Grohne <helmut@subdivi.de> | 2016-12-09 09:15:14 +0100 |
---|---|---|
committer | Helmut Grohne <helmut@subdivi.de> | 2016-12-09 09:15:14 +0100 |
commit | ab50ebaf61368c8ffdf4457371c055fb36af7a13 (patch) | |
tree | 0fb9089fd7d9ee100aa4f8332dc21a3282081e1b | |
parent | 29bb98a8762bcca5989ced2841904528721bd8af (diff) | |
download | tcvt-ab50ebaf61368c8ffdf4457371c055fb36af7a13.tar.gz |
simplify Terminal start and stop using a context manager
-rwxr-xr-x | tcvt.py | 12 |
1 files changed, 5 insertions, 7 deletions
@@ -342,7 +342,7 @@ class Terminal: self.lastchar = char self.screen.addch(char) - def start(self): + def __enter__(self): self.realscreen = curses.initscr() self.realscreen.nodelay(1) self.realscreen.keypad(1) @@ -353,8 +353,9 @@ class Terminal: curses.noecho() curses.raw() self.graphics_chars = compose_dicts(self.graphics_chars, acs_map()) + return self - def stop(self): + def __exit__(self, *_): curses.noraw() curses.echo() curses.endwin() @@ -658,7 +659,6 @@ def main(): help="order last column to the left") options, args = parser.parse_args() keymapping, acsc = compute_keymap(symbolic_keymapping) - t = Terminal(acsc, options.columns, reverse=options.reverse) errpiper, errpipew = os.pipe() set_cloexec(errpipew) @@ -681,8 +681,8 @@ def main(): if data: print(data) sys.exit(1) - try: - t.start() + + with Terminal(acsc, options.columns, reverse=options.reverse) as t: t.resizepty(masterfd) refreshpending = None while True: @@ -733,8 +733,6 @@ def main(): if refreshpending is not None and refreshpending < time.time(): t.screen.refresh() refreshpending = None - finally: - t.stop() if __name__ == '__main__': main() |