Mercurial > cpython-lru_cache-weakref
diff Lib/curses/wrapper.py @ 13027:bf2ee8567201 legacy-trunk
Drop back to old version of wrapper(); ESR reports that it broke things,
and I lack the time to track down the cause.
| author | Andrew M. Kuchling <amk@amk.ca> |
|---|---|
| date | Tue, 27 Jun 2000 00:50:40 +0000 |
| parents | c8e13535fdc3 |
| children | 2ba76e315016 |
line wrap: on
line diff
--- a/Lib/curses/wrapper.py Tue Jun 27 00:37:25 2000 +0000 +++ b/Lib/curses/wrapper.py Tue Jun 27 00:50:40 2000 +0000 @@ -17,9 +17,11 @@ wrapper(). """ + res = None try: # Initialize curses stdscr=curses.initscr() + # Turn off echoing of keys, and enter cbreak mode, # where no buffering is performed on keyboard input curses.noecho() ; curses.cbreak() @@ -29,11 +31,21 @@ # a special value like curses.KEY_LEFT will be returned stdscr.keypad(1) - return apply(func, (stdscr,) + rest) - - finally: - # Restore the terminal to a sane state on the way out. + res = apply(func, (stdscr,) + rest) + except: + # In the event of an error, restore the terminal + # to a sane state. stdscr.keypad(0) curses.echo() ; curses.nocbreak() curses.endwin() + + # Pass the exception upwards + (exc_type, exc_value, exc_traceback) = sys.exc_info() + raise exc_type, exc_value, exc_traceback + else: + # Set everything back to normal + stdscr.keypad(0) + curses.echo() ; curses.nocbreak() + curses.endwin() # Terminate curses + return res
