[Python-checkins] CVS: python/dist/src/Modules cStringIO.c,2.25,2.26
Martin v. Löwis
python-dev@python.org
Tue, 19 Sep 2000 04:06:50 -0700
Update of /cvsroot/python/python/dist/src/Modules
In directory slayer.i.sourceforge.net:/tmp/cvs-serv12291
Modified Files:
cStringIO.c
Log Message:
Implement readlines function. Closes Bug #110686.
Index: cStringIO.c
===================================================================
RCS file: /cvsroot/python/python/dist/src/Modules/cStringIO.c,v
retrieving revision 2.25
retrieving revision 2.26
diff -C2 -r2.25 -r2.26
*** cStringIO.c 2000/08/03 02:06:16 2.25
--- cStringIO.c 2000/09/19 11:06:46 2.26
***************
*** 225,228 ****
--- 225,262 ----
}
+ static char O_readlines__doc__[] =
+ "readlines() -- Read all lines"
+ ;
+
+ static PyObject *
+ O_readlines(Oobject *self, PyObject *args) {
+ int n;
+ char *output;
+ PyObject *result, *line;
+ int hint = 0, length = 0;
+
+ UNLESS(PyArg_ParseTuple(args, "|i:write", &hint)) return NULL;
+ result = PyList_New(0);
+ if (!result)
+ return NULL;
+
+ while(1){
+ n = O_creadline((PyObject*)self,&output);
+ if (n == 0)
+ break;
+ line = PyString_FromStringAndSize (output, n);
+ if (!line){
+ Py_DECREF (result);
+ return NULL;
+ }
+ PyList_Append (result, line);
+ Py_DECREF (line);
+ length += n;
+ if (hint > 0 && length >= hint)
+ break;
+ }
+ return result;
+ }
+
static char O_write__doc__[] =
"write(s) -- Write a string to the file"
***************
*** 391,394 ****
--- 425,429 ----
{"read", (PyCFunction)O_read, METH_VARARGS, O_read__doc__},
{"readline", (PyCFunction)O_readline, METH_VARARGS, O_readline__doc__},
+ {"readlines", (PyCFunction)O_readlines, METH_VARARGS, O_readlines__doc__},
{"reset", (PyCFunction)O_reset, METH_VARARGS, O_reset__doc__},
{"seek", (PyCFunction)O_seek, METH_VARARGS, O_seek__doc__},
***************
*** 523,526 ****
--- 558,562 ----
{"read", (PyCFunction)O_read, METH_VARARGS, O_read__doc__},
{"readline", (PyCFunction)O_readline, METH_VARARGS, O_readline__doc__},
+ {"readlines", (PyCFunction)O_readlines,METH_VARARGS, O_readlines__doc__},
{"reset", (PyCFunction)O_reset, METH_VARARGS, O_reset__doc__},
{"seek", (PyCFunction)I_seek, METH_VARARGS, O_seek__doc__},