mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 10:26:02 +00:00 
			
		
		
		
	 05e8be17fd
			
		
	
	
		05e8be17fd
		
	
	
	
	
		
			
			svn+ssh://pythondev@svn.python.org/python/trunk ........ r60990 | eric.smith | 2008-02-23 17:05:26 +0100 (Sat, 23 Feb 2008) | 1 line Removed duplicate Py_CHARMASK define. It's already defined in Python.h. ........ r60991 | andrew.kuchling | 2008-02-23 17:23:05 +0100 (Sat, 23 Feb 2008) | 4 lines #1330538: Improve comparison of xmlrpclib.DateTime and datetime instances. Remove automatic handling of datetime.date and datetime.time. This breaks backward compatibility, but python-dev discussion was strongly against this automatic conversion; see the bug for a link. ........ r60994 | andrew.kuchling | 2008-02-23 17:39:43 +0100 (Sat, 23 Feb 2008) | 1 line #835521: Add index entries for various pickle-protocol methods and attributes ........ r60995 | andrew.kuchling | 2008-02-23 18:10:46 +0100 (Sat, 23 Feb 2008) | 2 lines #1433694: minidom's .normalize() failed to set .nextSibling for last element. Fix by Malte Helmert ........ r61000 | christian.heimes | 2008-02-23 18:40:11 +0100 (Sat, 23 Feb 2008) | 1 line Patch #2167 from calvin: Remove unused imports ........ r61001 | christian.heimes | 2008-02-23 18:42:31 +0100 (Sat, 23 Feb 2008) | 1 line Patch #1957: syslogmodule: Release GIL when calling syslog(3) ........ r61002 | christian.heimes | 2008-02-23 18:52:07 +0100 (Sat, 23 Feb 2008) | 2 lines Issue #2051 and patch from Alexander Belopolsky: Permission for pyc and pyo files are inherited from the py file. ........
		
			
				
	
	
		
			50 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| """curses.wrapper
 | |
| 
 | |
| Contains one function, wrapper(), which runs another function which
 | |
| should be the rest of your curses-based application.  If the
 | |
| application raises an exception, wrapper() will restore the terminal
 | |
| to a sane state so you can read the resulting traceback.
 | |
| 
 | |
| """
 | |
| 
 | |
| import curses
 | |
| 
 | |
| 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'
 | |
|     as its first argument, followed by any other arguments passed to
 | |
|     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()
 | |
| 
 | |
|         # In keypad mode, escape sequences for special keys
 | |
|         # (like the cursor keys) will be interpreted and
 | |
|         # a special value like curses.KEY_LEFT will be returned
 | |
|         stdscr.keypad(1)
 | |
| 
 | |
|         # Start color, too.  Harmless if the terminal doesn't have
 | |
|         # color; user can test with has_color() later on.  The try/catch
 | |
|         # works around a minor bit of over-conscientiousness in the curses
 | |
|         # module -- the error return from C start_color() is ignorable.
 | |
|         try:
 | |
|             curses.start_color()
 | |
|         except:
 | |
|             pass
 | |
| 
 | |
|         return func(stdscr, *args, **kwds)
 | |
|     finally:
 | |
|         # Set everything back to normal
 | |
|         stdscr.keypad(0)
 | |
|         curses.echo()
 | |
|         curses.nocbreak()
 | |
|         curses.endwin()
 |