diff options
| author | Benjamin Peterson <benjamin@python.org> | 2010-04-02 23:31:40 (GMT) | 
|---|---|---|
| committer | Benjamin Peterson <benjamin@python.org> | 2010-04-02 23:31:40 (GMT) | 
| commit | 4564c08b26f3eb036ca758be5ca76af117e69e5b (patch) | |
| tree | 6a819c22e7aa7737f1bb117c0c74070844fd543f /Lib/test/win_console_handler.py | |
| parent | 85108e64a71848eec36fdb849d829d78397d0ea5 (diff) | |
| download | cpython-4564c08b26f3eb036ca758be5ca76af117e69e5b.zip cpython-4564c08b26f3eb036ca758be5ca76af117e69e5b.tar.gz cpython-4564c08b26f3eb036ca758be5ca76af117e69e5b.tar.bz2 | |
set svn:eol-style on new file
Diffstat (limited to 'Lib/test/win_console_handler.py')
| -rw-r--r-- | Lib/test/win_console_handler.py | 84 | 
1 files changed, 42 insertions, 42 deletions
| diff --git a/Lib/test/win_console_handler.py b/Lib/test/win_console_handler.py index e4190d4..5c6c741 100644 --- a/Lib/test/win_console_handler.py +++ b/Lib/test/win_console_handler.py @@ -1,42 +1,42 @@ -"""Script used to test os.kill on Windows, for issue #1220212
 -
 -This script is started as a subprocess in test_os and is used to test the
 -CTRL_C_EVENT and CTRL_BREAK_EVENT signals, which requires a custom handler
 -to be written into the kill target.
 -
 -See http://msdn.microsoft.com/en-us/library/ms685049%28v=VS.85%29.aspx for a
 -similar example in C.
 -"""
 -
 -from ctypes import wintypes
 -import signal
 -import ctypes
 -
 -# Function prototype for the handler function. Returns BOOL, takes a DWORD.
 -HandlerRoutine = wintypes.WINFUNCTYPE(wintypes.BOOL, wintypes.DWORD)
 -
 -def _ctrl_handler(sig):
 -    """Handle a sig event and return 0 to terminate the process"""
 -    if sig == signal.CTRL_C_EVENT:
 -        pass
 -    elif sig == signal.CTRL_BREAK_EVENT:
 -        pass
 -    else:
 -        print("UNKNOWN EVENT")
 -    return 0
 -
 -ctrl_handler = HandlerRoutine(_ctrl_handler)
 -
 -
 -SetConsoleCtrlHandler = ctypes.windll.kernel32.SetConsoleCtrlHandler
 -SetConsoleCtrlHandler.argtypes = (HandlerRoutine, wintypes.BOOL)
 -SetConsoleCtrlHandler.restype = wintypes.BOOL
 -
 -if __name__ == "__main__":
 -    # Add our console control handling function with value 1
 -    if not SetConsoleCtrlHandler(ctrl_handler, 1):
 -        print("Unable to add SetConsoleCtrlHandler")
 -        exit(-1)
 -
 -    # Do nothing but wait for the signal
 -    input()
 +"""Script used to test os.kill on Windows, for issue #1220212 + +This script is started as a subprocess in test_os and is used to test the +CTRL_C_EVENT and CTRL_BREAK_EVENT signals, which requires a custom handler +to be written into the kill target. + +See http://msdn.microsoft.com/en-us/library/ms685049%28v=VS.85%29.aspx for a +similar example in C. +""" + +from ctypes import wintypes +import signal +import ctypes + +# Function prototype for the handler function. Returns BOOL, takes a DWORD. +HandlerRoutine = wintypes.WINFUNCTYPE(wintypes.BOOL, wintypes.DWORD) + +def _ctrl_handler(sig): +    """Handle a sig event and return 0 to terminate the process""" +    if sig == signal.CTRL_C_EVENT: +        pass +    elif sig == signal.CTRL_BREAK_EVENT: +        pass +    else: +        print("UNKNOWN EVENT") +    return 0 + +ctrl_handler = HandlerRoutine(_ctrl_handler) + + +SetConsoleCtrlHandler = ctypes.windll.kernel32.SetConsoleCtrlHandler +SetConsoleCtrlHandler.argtypes = (HandlerRoutine, wintypes.BOOL) +SetConsoleCtrlHandler.restype = wintypes.BOOL + +if __name__ == "__main__": +    # Add our console control handling function with value 1 +    if not SetConsoleCtrlHandler(ctrl_handler, 1): +        print("Unable to add SetConsoleCtrlHandler") +        exit(-1) + +    # Do nothing but wait for the signal +    input() | 
