#2348: add py3k warning for file.softspace.

This commit is contained in:
Georg Brandl 2008-03-21 20:38:24 +00:00
parent 07e5681fd3
commit 65bb42dc1b
3 changed files with 46 additions and 2 deletions

View file

@ -1783,8 +1783,6 @@ static PyMethodDef file_methods[] = {
#define OFF(x) offsetof(PyFileObject, x)
static PyMemberDef file_memberlist[] = {
{"softspace", T_INT, OFF(f_softspace), 0,
"flag indicating that a space needs to be printed; used by print"},
{"mode", T_OBJECT, OFF(f_mode), RO,
"file mode ('r', 'U', 'w', 'a', possibly with 'b' or '+' added)"},
{"name", T_OBJECT, OFF(f_name), RO,
@ -1829,10 +1827,44 @@ get_newlines(PyFileObject *f, void *closure)
}
}
static PyObject *
get_softspace(PyFileObject *f, void *closure)
{
if (Py_Py3kWarningFlag &&
PyErr_Warn(PyExc_DeprecationWarning,
"file.softspace not supported in 3.x") < 0)
return NULL;
return PyInt_FromLong(f->f_softspace);
}
static int
set_softspace(PyFileObject *f, PyObject *value)
{
int new;
if (Py_Py3kWarningFlag &&
PyErr_Warn(PyExc_DeprecationWarning,
"file.softspace not supported in 3.x") < 0)
return -1;
if (value == NULL) {
PyErr_SetString(PyExc_TypeError,
"can't delete softspace attribute");
return -1;
}
new = PyInt_AsLong(value);
if (new == -1 && PyErr_Occurred())
return -1;
f->f_softspace = new;
return 0;
}
static PyGetSetDef file_getsetlist[] = {
{"closed", (getter)get_closed, NULL, "True if the file is closed"},
{"newlines", (getter)get_newlines, NULL,
"end-of-line convention used in this file"},
{"softspace", (getter)get_softspace, (setter)set_softspace,
"flag indicating that a space needs to be printed; used by print"},
{0},
};