Mercurial > cpython-lru_cache-weakref
diff Modules/cStringIO.c @ 30097:1c4d19b9baac 2.3
SF bug #770485: cStringIO does not set closed attr
| author | Raymond Hettinger <python@rcn.com> |
|---|---|
| date | Fri, 08 Aug 2003 12:22:30 +0000 |
| parents | 0ea5991f6edb |
| children | 29032f37dc8f 88c1e17ceffc |
line wrap: on
line diff
--- a/Modules/cStringIO.c Fri Aug 08 11:05:59 2003 +0000 +++ b/Modules/cStringIO.c Fri Aug 08 12:22:30 2003 +0000 @@ -88,6 +88,22 @@ } static PyObject * +IO_get_closed(IOobject *self, void *closure) +{ + PyObject *result = Py_False; + + if (self->buf == NULL) + result = Py_True; + Py_INCREF(result); + return result; +} + +static PyGetSetDef file_getsetlist[] = { + {"closed", (getter)IO_get_closed, NULL, "True if the file is closed"}, + {0}, +}; + +static PyObject * IO_flush(IOobject *self, PyObject *unused) { UNLESS (IO__opencheck(self)) return NULL; @@ -455,6 +471,7 @@ static PyMemberDef O_memberlist[] = { {"softspace", T_INT, offsetof(Oobject, softspace), 0, "flag indicating that a space needs to be printed; used by print"}, + /* getattr(f, "closed") is implemented without this table */ {NULL} /* Sentinel */ }; @@ -498,7 +515,8 @@ PyObject_SelfIter, /*tp_iter */ (iternextfunc)IO_iternext, /*tp_iternext */ O_methods, /*tp_methods */ - O_memberlist /*tp_members */ + O_memberlist, /*tp_members */ + file_getsetlist, /*tp_getset */ }; static PyObject * @@ -614,7 +632,9 @@ 0, /* tp_weaklistoffset */ PyObject_SelfIter, /* tp_iter */ (iternextfunc)IO_iternext, /* tp_iternext */ - I_methods /* tp_methods */ + I_methods, /* tp_methods */ + 0, /* tp_members */ + file_getsetlist, /* tp_getset */ }; static PyObject *
