diff options
| author | Michael W. Hudson <mwh@python.net> | 2004-08-07 15:18:07 +0000 |
|---|---|---|
| committer | Michael W. Hudson <mwh@python.net> | 2004-08-07 15:18:07 +0000 |
| commit | 7030160fb6521f37ebb604dd1e422f9287d80c0e (patch) | |
| tree | 787674a9362b07074c5dc40b937f7881d011e2a3 /Lib/curses | |
| parent | 0f174ad7000c39a8d5596e6cb18619e5f35ffb9b (diff) | |
| download | cpython-7030160fb6521f37ebb604dd1e422f9287d80c0e.tar.gz | |
This is patch
[ 1005008 ] curses.wrapper should also forward keyword args
Plus my rewrite to use finally as opposed to painfully doing the
equivalent by hand.
Diffstat (limited to 'Lib/curses')
| -rw-r--r-- | Lib/curses/wrapper.py | 21 |
1 files changed, 4 insertions, 17 deletions
diff --git a/Lib/curses/wrapper.py b/Lib/curses/wrapper.py index b8905fbf0a..0d004e0302 100644 --- a/Lib/curses/wrapper.py +++ b/Lib/curses/wrapper.py @@ -9,7 +9,7 @@ to a sane state so you can read the resulting traceback. import sys, curses -def wrapper(func, *rest): +def wrapper(func, *args, **kwds): """Wrapper function that initializes curses and calls another function, restoring normal keyboard/screen behavior on error. The callable object 'func' is then passed the main window 'stdscr' @@ -41,23 +41,10 @@ def wrapper(func, *rest): except: pass - res = 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: + return func(stdscr, *rest) + finally: # Set everything back to normal stdscr.keypad(0) curses.echo() curses.nocbreak() - curses.endwin() # Terminate curses - - return res + curses.endwin() |
