Commit c99ff605 authored by Fred Drake's avatar Fred Drake

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().
parent 1a97d5f0
......@@ -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;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment