From c96417980cb700555255acfa70358c46c1a6e061 Mon Sep 17 00:00:00 2001 From: Guido van Rossum Date: Tue, 4 Aug 1998 15:26:23 +0000 Subject: [PATCH] Patch by Jody Winston (with my changes) to add some of the "wait status inspection" macros as functions: WEXITSTATUS(), WIFEXITED(), WIFSIGNALED(), WIFSTOPPED(), WSTOPSIG(), WTERMSIG(). --- Modules/posixmodule.c | 151 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 151 insertions(+) diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c index b53fb0cec65..91cc3bf712d 100644 --- a/Modules/posixmodule.c +++ b/Modules/posixmodule.c @@ -2479,6 +2479,137 @@ posix_strerror(self, args) #endif /* strerror */ +#ifdef HAVE_SYS_WAIT_H + +#ifdef WIFSTOPPED +static char posix_WIFSTOPPED__doc__[] = +"WIFSTOPPED(status) -> Boolean\n\ +See Unix documentation."; + +static PyObject * +posix_WIFSTOPPED(self, args) + PyObject *self; + PyObject *args; +{ + int status = 0; + + if (!PyArg_Parse(args, "i", &status)) + { + return NULL; + } + + return Py_BuildValue("i", WIFSTOPPED(status)); +} +#endif /* WIFSTOPPED */ + +#ifdef WIFSIGNALED +static char posix_WIFSIGNALED__doc__[] = +"WIFSIGNALED(status) -> Boolean\n\ +See Unix documentation."; + +static PyObject * +posix_WIFSIGNALED(self, args) + PyObject *self; + PyObject *args; +{ + int status = 0; + + if (!PyArg_Parse(args, "i", &status)) + { + return NULL; + } + + return Py_BuildValue("i", WIFSIGNALED(status)); +} +#endif /* WIFSIGNALED */ + +#ifdef WIFEXITED +static char posix_WIFEXITED__doc__[] = +"WIFEXITED(status) -> Boolean\n\ +See Unix documentation."; + +static PyObject * +posix_WIFEXITED(self, args) + PyObject *self; + PyObject *args; +{ + int status = 0; + + if (!PyArg_Parse(args, "i", &status)) + { + return NULL; + } + + return Py_BuildValue("i", WIFEXITED(status)); +} +#endif /* WIFEXITED */ + +#ifdef WIFSTOPPED +static char posix_WEXITSTATUS__doc__[] = +"WEXITSTATUS(status) -> integer\n\ +See Unix documentation."; + +static PyObject * +posix_WEXITSTATUS(self, args) + PyObject *self; + PyObject *args; +{ + int status = 0; + + if (!PyArg_Parse(args, "i", &status)) + { + return NULL; + } + + return Py_BuildValue("i", WEXITSTATUS(status)); +} +#endif /* WEXITSTATUS */ + +#ifdef WTERMSIG +static char posix_WTERMSIG__doc__[] = +"WTERMSIG(status) -> integer\n\ +See Unix documentation."; + +static PyObject * +posix_WTERMSIG(self, args) + PyObject *self; + PyObject *args; +{ + int status = 0; + + if (!PyArg_Parse(args, "i", &status)) + { + return NULL; + } + + return Py_BuildValue("i", WTERMSIG(status)); +} +#endif /* WTERMSIG */ + +#ifdef WSTOPSIG +static char posix_WSTOPSIG__doc__[] = +"WSTOPSIG(status) -> integer\n\ +See Unix documentation."; + +static PyObject * +posix_WSTOPSIG(self, args) + PyObject *self; + PyObject *args; +{ + int status = 0; + + if (!PyArg_Parse(args, "i", &status)) + { + return NULL; + } + + return Py_BuildValue("i", WSTOPSIG(status)); +} +#endif /* WSTOPSIG */ + +#endif /* HAVE_SYS_WAIT_H */ + + static PyMethodDef posix_methods[] = { {"chdir", posix_chdir, 0, posix_chdir__doc__}, {"chmod", posix_chmod, 0, posix_chmod__doc__}, @@ -2606,6 +2737,26 @@ static PyMethodDef posix_methods[] = { #ifdef HAVE_STRERROR {"strerror", posix_strerror, 1, posix_strerror__doc__}, #endif +#ifdef HAVE_SYS_WAIT_H +#ifdef WIFSTOPPED + {"WIFSTOPPED", posix_WIFSTOPPED, 0, posix_WIFSTOPPED__doc__}, +#endif /* WIFSTOPPED */ +#ifdef WIFSIGNALED + {"WIFSIGNALED", posix_WIFSIGNALED, 0, posix_WIFSIGNALED__doc__}, +#endif /* WIFSIGNALED */ +#ifdef WIFEXITED + {"WIFEXITED", posix_WIFEXITED, 0, posix_WIFEXITED__doc__}, +#endif /* WIFEXITED */ +#ifdef WEXITSTATUS + {"WEXITSTATUS", posix_WEXITSTATUS, 0, posix_WEXITSTATUS__doc__}, +#endif /* WEXITSTATUS */ +#ifdef WTERMSIG + {"WTERMSIG", posix_WTERMSIG, 0, posix_WTERMSIG__doc__}, +#endif /* WTERMSIG */ +#ifdef WSTOPSIG + {"WSTOPSIG", posix_WSTOPSIG, 0, posix_WSTOPSIG__doc__}, +#endif /* WSTOPSIG */ +#endif /* HAVE_SYS_WAIT_H */ {NULL, NULL} /* Sentinel */ };