From c99ff60573f00d7fe35cafcc0f2594f24bfe65bd Mon Sep 17 00:00:00 2001 From: Fred Drake Date: Wed, 9 May 2001 20:14:09 +0000 Subject: fdconv(): Do not second guess the error condition returned by PyObject_AsFileDescriptor() -- it does the same thing everywhere, so use it the same way everyone else does so that exceptions are consistent. This means we have less code here, and we do not need to resort to hackish ways of getting the Python-visible function name to fdconv(). --- Modules/termios.c | 41 ++++------------------------------------- 1 file changed, 4 insertions(+), 37 deletions(-) (limited to 'Modules/termios.c') diff --git a/Modules/termios.c b/Modules/termios.c index cedcb0ff35..f586bb1622 100644 --- a/Modules/termios.c +++ b/Modules/termios.c @@ -28,37 +28,16 @@ sys.stdin.fileno(), or a file object, such as sys.stdin itself."; static PyObject *TermiosError; -static char* fname; - static int fdconv(PyObject* obj, void* p) { int fd; fd = PyObject_AsFileDescriptor(obj); - if (fd == -1) { - if (PyInt_Check(obj)) { - fd = PyInt_AS_LONG(obj); - } - else { - char* tname; - - if (PyInstance_Check(obj)) { - tname = PyString_AS_STRING( - ((PyInstanceObject*)obj)->in_class->cl_name); - } - else { - tname = obj->ob_type->tp_name; - } - - PyErr_Format(PyExc_TypeError, - "%s, arg 1: can't extract file descriptor from \"%.500s\"", - fname, tname); - return 0; - } + if (fd >= 0) { + *(int*)p = fd; + return 1; } - - *(int*)p = fd; - return 1; + return 0; } static char termios_tcgetattr__doc__[] = "\ @@ -83,8 +62,6 @@ termios_tcgetattr(PyObject *self, PyObject *args) int i; char ch; - fname = "tcgetattr"; - if (!PyArg_ParseTuple(args, "O&:tcgetattr", fdconv, (void*)&fd)) return NULL; @@ -160,8 +137,6 @@ termios_tcsetattr(PyObject *self, PyObject *args) PyObject *term, *cc, *v; int i; - fname = "tcsetattr"; - if (!PyArg_ParseTuple(args, "O&iO:tcsetattr", fdconv, &fd, &when, &term)) return NULL; @@ -228,8 +203,6 @@ termios_tcsendbreak(PyObject *self, PyObject *args) { int fd, duration; - fname = "tcsendbreak"; - if (!PyArg_ParseTuple(args, "O&i:tcsendbreak", fdconv, &fd, &duration)) return NULL; @@ -250,8 +223,6 @@ termios_tcdrain(PyObject *self, PyObject *args) { int fd; - fname = "tcdrain"; - if (!PyArg_ParseTuple(args, "O&:tcdrain", fdconv, &fd)) return NULL; @@ -275,8 +246,6 @@ termios_tcflush(PyObject *self, PyObject *args) { int fd, queue; - fname = "tcflush"; - if (!PyArg_ParseTuple(args, "O&i:tcflush", fdconv, &fd, &queue)) return NULL; @@ -300,8 +269,6 @@ termios_tcflow(PyObject *self, PyObject *args) { int fd, action; - fname = "tcflow"; - if (!PyArg_ParseTuple(args, "O&i:tcflow", fdconv, &fd, &action)) return NULL; -- cgit v1.2.1