Update of /cvsroot/python/python/dist/src/Modules In directory slayer.i.sourceforge.net:/tmp/cvs-serv646 Modified Files: readline.c Log Message: Use PyOS_setsig() instead of directly calling signal() or sigaction(). This fixes the first half of bug #110611: the immediate exit when ^C is hit when readline and threads are configured. Also added a new module variable, readline.library_version. Index: readline.c =================================================================== RCS file: /cvsroot/python/python/dist/src/Modules/readline.c,v retrieving revision 2.30 retrieving revision 2.31 diff -C2 -r2.30 -r2.31 *** readline.c 2000/09/01 02:43:38 2.30 --- readline.c 2000/09/16 16:37:53 2.31 *************** *** 448,453 **** size_t n; char *p, *q; ! void (*old_inthandler)(int); ! old_inthandler = signal(SIGINT, onintr); if (setjmp(jbuf)) { #ifdef HAVE_SIGRELSE --- 448,454 ---- size_t n; char *p, *q; ! PyOS_sighandler_t old_inthandler; ! ! old_inthandler = PyOS_setsig(SIGINT, onintr); if (setjmp(jbuf)) { #ifdef HAVE_SIGRELSE *************** *** 455,464 **** sigrelse(SIGINT); #endif ! signal(SIGINT, old_inthandler); return NULL; } rl_event_hook = PyOS_InputHook; p = readline(prompt); ! signal(SIGINT, old_inthandler); /* We must return a buffer allocated with PyMem_Malloc. */ --- 456,465 ---- sigrelse(SIGINT); #endif ! PyOS_setsig(SIGINT, old_inthandler); return NULL; } rl_event_hook = PyOS_InputHook; p = readline(prompt); ! PyOS_setsig(SIGINT, old_inthandler); /* We must return a buffer allocated with PyMem_Malloc. */ *************** *** 494,501 **** initreadline(void) { ! PyObject *m; m = Py_InitModule4("readline", readline_methods, doc_module, (PyObject *)NULL, PYTHON_API_VERSION); if (isatty(fileno(stdin))) { PyOS_ReadlineFunctionPointer = call_readline; --- 495,508 ---- initreadline(void) { ! PyObject *m, *d, *v; m = Py_InitModule4("readline", readline_methods, doc_module, (PyObject *)NULL, PYTHON_API_VERSION); + + d = PyModule_GetDict(m); + v = PyString_FromString(rl_library_version); + PyDict_SetItemString(d, "library_version", v); + Py_XDECREF(v); + if (isatty(fileno(stdin))) { PyOS_ReadlineFunctionPointer = call_readline;
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4