]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Removed all instances of RETSIGTYPE from the source code: signal
authorTim Peters <tim.peters@gmail.com>
Sun, 23 Jul 2000 21:18:09 +0000 (21:18 +0000)
committerTim Peters <tim.peters@gmail.com>
Sun, 23 Jul 2000 21:18:09 +0000 (21:18 +0000)
handlers "return void", according to ANSI C.
Removed the new Py_RETURN_FROM_SIGNAL_HANDLER macro.
Left RETSIGTYPE in the config stuff, because it's not clear to
me that others aren't relying on it (e.g., extension modules).

Include/pyport.h
Modules/fpectlmodule.c
Modules/readline.c
Modules/signalmodule.c
Parser/intrcheck.c
README

index ed8a28eb7b628ae621b0fddeacf665ead6989038..52807a910839918ff82121cd509d355b127077d2 100644 (file)
@@ -23,11 +23,6 @@ Meaning:  To be defined iff i>>j does not extend the sign bit when i is a
           signed integral type and i < 0.
 Used in:  Py_ARITHMETIC_RIGHT_SHIFT
 
-RETSIGTYPE
-Meaning:  Expands to void or int, depending on what the platform wants
-          signal handlers to return.  Note that only void is ANSI!
-Used in:  Py_RETURN_FROM_SIGNAL_HANDLER
-
 Py_DEBUG
 Meaning:  Extra checks compiled in for debug mode.
 Used in:  Py_SAFE_DOWNCAST
@@ -66,18 +61,6 @@ extern "C" {
  */
 #define Py_FORCE_EXPANSION(X) X
 
-/* Py_RETURN_FROM_SIGNAL_HANDLER
- * The return from a signal handler varies depending on whether RETSIGTYPE
- * is int or void.  The macro Py_RETURN_FROM_SIGNAL_HANDLER(VALUE) expands
- * to
- *     return VALUE
- * if RETSIGTYPE is int, else to nothing if RETSIGTYPE is void.
- */
-#define int_PySIGRETURN(VALUE) return VALUE
-#define void_PySIGRETURN(VALUE)
-#define Py_RETURN_FROM_SIGNAL_HANDLER(VALUE) \
-        Py_FORCE_EXPANSION(RETSIGTYPE) ## _PySIGRETURN(VALUE)
-
 /* Py_SAFE_DOWNCAST(VALUE, WIDE, NARROW)
  * Cast VALUE to type NARROW from type WIDE.  In Py_DEBUG mode, this
  * assert-fails if any information is lost.
index 80556360270321e530bb846b959602349f4f821b..039deb4dc46c2ad8accb8f716cabbcb48bc922e6 100644 (file)
@@ -77,7 +77,7 @@ static jmp_buf PyFPE_jbuf;
 static int PyFPE_counter = 0;
 #endif
 
-typedef RETSIGTYPE Sigfunc(int);
+typedef void Sigfunc(int);
 static Sigfunc sigfpe_handler;
 static void fpe_reset(Sigfunc *);
 
index 47644c40d321af077894f626817204b0ebe8df20..0fd4c288ef156bc56e9b23bd3fb3dae7f363bd2c 100644 (file)
@@ -427,13 +427,10 @@ setup_readline(void)
 static jmp_buf jbuf;
 
 /* ARGSUSED */
-static RETSIGTYPE
+static void
 onintr(int sig)
 {
        longjmp(jbuf, 1);
-#if RETSIGTYPE != void
-       return 0;
-#endif
 }
 
 
@@ -444,7 +441,7 @@ call_readline(char *prompt)
 {
        size_t n;
        char *p, *q;
-       RETSIGTYPE (*old_inthandler)(int);
+       void (*old_inthandler)(int);
        old_inthandler = signal(SIGINT, onintr);
        if (setjmp(jbuf)) {
 #ifdef HAVE_SIGRELSE
index fb525f86f84b18d26b4e4f1f06ea7166efcc8df3..f20042796331284c2a72901c08f13a6b6d4629ae 100644 (file)
@@ -26,7 +26,7 @@ redistribution of this file, and for a DISCLAIMER OF ALL WARRANTIES.
 #include <signal.h>
 
 #ifndef SIG_ERR
-#define SIG_ERR ((RETSIGTYPE (*)(int))-1)
+#define SIG_ERR ((void (*)(int))-1)
 #endif
 
 #if defined(PYOS_OS2)
@@ -92,7 +92,7 @@ static PyObject *DefaultHandler;
 static PyObject *IgnoreHandler;
 static PyObject *IntHandler;
 
-static RETSIGTYPE (*old_siginthandler)(int) = SIG_DFL;
+static void (*old_siginthandler)(int) = SIG_DFL;
 
 
 \f
@@ -117,7 +117,7 @@ checksignals_witharg(void * unused)
        return PyErr_CheckSignals();
 }
 
-static RETSIGTYPE
+static void
 signal_handler(int sig_num)
 {
 #ifdef WITH_THREAD
@@ -136,14 +136,13 @@ signal_handler(int sig_num)
                   reset until explicit re-instated.
                   Don't clear the 'func' field as it is our pointer
                   to the Python handler... */
-               Py_RETURN_FROM_SIGNAL_HANDLER(0);
+               return;
        }
 #endif
 #ifdef HAVE_SIGINTERRUPT
        siginterrupt(sig_num, 1);
 #endif
        signal(sig_num, signal_handler);
-       Py_RETURN_FROM_SIGNAL_HANDLER(0);
 }
 
 
@@ -198,7 +197,7 @@ signal_signal(PyObject *self, PyObject *args)
        PyObject *obj;
        int sig_num;
        PyObject *old_handler;
-       RETSIGTYPE (*func)(int);
+       void (*func)(int);
        if (!PyArg_Parse(args, "(iO)", &sig_num, &obj))
                return NULL;
 #ifdef WITH_THREAD
@@ -355,7 +354,7 @@ initsignal(void)
 
        Handlers[0].tripped = 0;
        for (i = 1; i < NSIG; i++) {
-               RETSIGTYPE (*t)(int);
+               void (*t)(int);
 #ifdef HAVE_SIGACTION
                struct sigaction act;
                sigaction(i,  0, &act);
index 2f151ee6b4dba8de50205ae972d178b187454c16..a17041dcdb62cbce6ad6969331579902feaeeb28 100644 (file)
@@ -149,7 +149,7 @@ checksignals_witharg(void * arg)
        return PyErr_CheckSignals();
 }
 
-static RETSIGTYPE
+static void
 intcatcher(int sig)
 {
        extern void Py_Exit(int);
@@ -168,10 +168,9 @@ intcatcher(int sig)
        }
        signal(SIGINT, intcatcher);
        Py_AddPendingCall(checksignals_witharg, NULL);
-       Py_RETURN_FROM_SIGNAL_HANDLER(0);
 }
 
-static RETSIGTYPE (*old_siginthandler)(int) = SIG_DFL;
+static void (*old_siginthandler)(int) = SIG_DFL;
 
 void
 PyOS_InitInterrupts(void)
diff --git a/README b/README
index 67f3d995a3642f7df8ab3931b1c8735f16375506..a3ee0f80f18a2291d199e1810fad7e959f38afda 100644 (file)
--- a/README
+++ b/README
@@ -652,9 +652,8 @@ has already been done for you).  A good start is to copy the file
 config.h.in to config.h and edit the latter to reflect the actual
 configuration of your system.  Most symbols must simply be defined as
 1 only if the corresponding feature is present and can be left alone
-otherwise; however RETSIGTYPE must always be defined, either as int or
-as void, and the *_t type symbols must be defined as some variant of
-int if they need to be defined at all.
+otherwise; however the *_t type symbols must be defined as some variant
+of int if they need to be defined at all.