diff options
Diffstat (limited to 'Modules/termios.c')
-rw-r--r-- | Modules/termios.c | 41 |
1 files changed, 4 insertions, 37 deletions
diff --git a/Modules/termios.c b/Modules/termios.c index cedcb0f..f586bb1 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; |