summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/curses/wrapper.py19
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