diff options
-rw-r--r-- | Lib/curses/wrapper.py | 19 |
1 files changed, 4 insertions, 15 deletions
diff --git a/Lib/curses/wrapper.py b/Lib/curses/wrapper.py index 1de17ee..fd8804d 100644 --- a/Lib/curses/wrapper.py +++ b/Lib/curses/wrapper.py @@ -17,7 +17,6 @@ def wrapper(func, *rest): wrapper(). """ - res = None try: # Initialize curses stdscr=curses.initscr() @@ -30,21 +29,11 @@ def wrapper(func, *rest): # a special value like curses.KEY_LEFT will be returned stdscr.keypad(1) - res = apply(func, (stdscr,) + rest) - except: - # In the event of an error, restore the terminal - # to a sane state. + return apply(func, (stdscr,) + rest) + + finally: + # Restore the terminal to a sane state on the way out. 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 |