]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
fdconv(): Do not second guess the error condition returned by
authorFred Drake <fdrake@acm.org>
Wed, 9 May 2001 20:14:09 +0000 (20:14 +0000)
committerFred Drake <fdrake@acm.org>
Wed, 9 May 2001 20:14:09 +0000 (20:14 +0000)
    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

index cedcb0ff35636438d8a417c12dd16423c81e0b4e..f586bb16222f84da0925324cc35c6d0202e0d355 100644 (file)
@@ -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;