summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTim Peters <tim.peters@gmail.com>2000-07-23 21:18:09 +0000
committerTim Peters <tim.peters@gmail.com>2000-07-23 21:18:09 +0000
commit902e13191466b9df89a630c449b51b05ebcb9f9d (patch)
tree9b3ea5ed4313591063e71f64403d8345dffb153e
parent84dff256aba5ec09bebd495761ed03463e944931 (diff)
downloadcpython-902e13191466b9df89a630c449b51b05ebcb9f9d.tar.gz
Removed all instances of RETSIGTYPE from the source code: signal
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).
-rw-r--r--Include/pyport.h17
-rw-r--r--Modules/fpectlmodule.c2
-rw-r--r--Modules/readline.c7
-rw-r--r--Modules/signalmodule.c13
-rw-r--r--Parser/intrcheck.c5
-rw-r--r--README5
6 files changed, 13 insertions, 36 deletions
diff --git a/Include/pyport.h b/Include/pyport.h
index ed8a28eb7b..52807a9108 100644
--- a/Include/pyport.h
+++ b/Include/pyport.h
@@ -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.
diff --git a/Modules/fpectlmodule.c b/Modules/fpectlmodule.c
index 8055636027..039deb4dc4 100644
--- a/Modules/fpectlmodule.c
+++ b/Modules/fpectlmodule.c
@@ -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 *);
diff --git a/Modules/readline.c b/Modules/readline.c
index 47644c40d3..0fd4c288ef 100644
--- a/Modules/readline.c
+++ b/Modules/readline.c
@@ -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
diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c
index fb525f86f8..f200427963 100644
--- a/Modules/signalmodule.c
+++ b/Modules/signalmodule.c
@@ -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;
@@ -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);
diff --git a/Parser/intrcheck.c b/Parser/intrcheck.c
index 2f151ee6b4..a17041dcdb 100644
--- a/Parser/intrcheck.c
+++ b/Parser/intrcheck.c
@@ -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 67f3d995a3..a3ee0f80f1 100644
--- 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.