diff options
author | Guido van Rossum <guido@python.org> | 1997-12-04 01:13:01 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1997-12-04 01:13:01 (GMT) |
commit | fdde96ce98f3e77dc27cac034bcb8b548b3c0046 (patch) | |
tree | 94ab5ecdc3080fe1e4f6939aa5350ed0ef459842 /Modules/cStringIO.c | |
parent | 009f78754db89ab0ace3175876ab7fa88a445c8a (diff) | |
download | cpython-fdde96ce98f3e77dc27cac034bcb8b548b3c0046.zip cpython-fdde96ce98f3e77dc27cac034bcb8b548b3c0046.tar.gz cpython-fdde96ce98f3e77dc27cac034bcb8b548b3c0046.tar.bz2 |
New versions of cPickle and cStringIO, from Jim Fulton's cPickle 1.0b1
distribution.
Diffstat (limited to 'Modules/cStringIO.c')
-rw-r--r-- | Modules/cStringIO.c | 114 |
1 files changed, 15 insertions, 99 deletions
diff --git a/Modules/cStringIO.c b/Modules/cStringIO.c index ff47b70..5d9597f 100644 --- a/Modules/cStringIO.c +++ b/Modules/cStringIO.c @@ -1,6 +1,6 @@ /* - $Id$ + cStringIO.c,v 1.23 1997/12/04 00:12:05 jim Exp A simple fast partial StringIO replacement. @@ -85,7 +85,7 @@ static char cStringIO_module_documentation[] = "If someone else wants to provide a more complete implementation,\n" "go for it. :-) \n" "\n" -"$Id$\n" +"cStringIO.c,v 1.23 1997/12/04 00:12:05 jim Exp\n" ; #include "Python.h" @@ -141,17 +141,14 @@ static PyObject * O_seek(Oobject *self, PyObject *args) { int position, mode = 0; - UNLESS(PyArg_ParseTuple(args, "i|i", &position, &mode)) - { + UNLESS(PyArg_ParseTuple(args, "i|i", &position, &mode)) { return NULL; } - if (mode == 2) - { + if (mode == 2) { position += self->string_size; } - else if (mode == 1) - { + else if (mode == 1) { position += self->pos; } @@ -171,8 +168,7 @@ O_cread(PyObject *self, char **output, int n) { int l; l = ((Oobject*)self)->string_size - ((Oobject*)self)->pos; - if (n < 0 || n > l) - { + if (n < 0 || n > l) { n = l; } @@ -234,14 +230,12 @@ O_cwrite(PyObject *self, char *c, int l) { int newl; newl=((Oobject*)self)->pos+l; - if(newl >= ((Oobject*)self)->buf_size) - { + if(newl >= ((Oobject*)self)->buf_size) { ((Oobject*)self)->buf_size*=2; if(((Oobject*)self)->buf_size <= newl) ((Oobject*)self)->buf_size=newl+1; UNLESS(((Oobject*)self)->buf= (char*)realloc(((Oobject*)self)->buf, - (((Oobject*)self)->buf_size) *sizeof(char))) - { + (((Oobject*)self)->buf_size) *sizeof(char))) { PyErr_SetString(PyExc_MemoryError,"out of memory"); ((Oobject*)self)->buf_size=((Oobject*)self)->pos=0; return -1; @@ -252,8 +246,7 @@ O_cwrite(PyObject *self, char *c, int l) { ((Oobject*)self)->pos += l; - if (((Oobject*)self)->string_size < ((Oobject*)self)->pos) - { + if (((Oobject*)self)->string_size < ((Oobject*)self)->pos) { ((Oobject*)self)->string_size = ((Oobject*)self)->pos; } @@ -340,29 +333,24 @@ O_writelines(Oobject *self, PyObject *args) { PyObject *string_module = 0; static PyObject *string_joinfields = 0; - UNLESS(PyArg_Parse(args, "O", args)) - { + UNLESS(PyArg_Parse(args, "O", args)) { return NULL; } - if (!string_joinfields) - { - UNLESS(string_module = PyImport_ImportModule("string")) - { + if (!string_joinfields) { + UNLESS(string_module = PyImport_ImportModule("string")) { return NULL; } UNLESS(string_joinfields= - PyObject_GetAttrString(string_module, "joinfields")) - { + PyObject_GetAttrString(string_module, "joinfields")) { return NULL; } Py_DECREF(string_module); } - if (PyObject_Length(args) == -1) - { + if (PyObject_Length(args) == -1) { return NULL; } @@ -462,8 +450,7 @@ newOobject(int size) { self->string_size = 0; self->softspace = 0; - UNLESS(self->buf=malloc(size*sizeof(char))) - { + UNLESS(self->buf=malloc(size*sizeof(char))) { PyErr_SetString(PyExc_MemoryError,"out of memory"); self->buf_size = 0; return NULL; @@ -628,74 +615,3 @@ initcStringIO() { /* Check for errors */ if (PyErr_Occurred()) Py_FatalError("can't initialize module cStringIO"); } - - -/****************************************************************************** - - $Log$ - Revision 2.8 1997/09/03 18:19:38 guido - #Plug small memory leaks in constructors. - - Revision 2.7 1997/09/03 00:09:26 guido - Fix the bug Jeremy was experiencing: both the close() and the - dealloc() functions contained code to free/DECREF the buffer - (there were differences between I and O objects but the logic bug was - the same). Fixed this be setting the buffer pointer to NULL and - testing for that. (This also makes it safe to call close() more than - once.) - - XXX Worry: what if you try to read() or write() once the thing is - closed? - - Revision 2.6 1997/08/13 03:14:41 guido - cPickle release 0.3 from Jim Fulton - - Revision 1.21 1997/06/19 18:51:42 jim - Added ident string. - - Revision 1.20 1997/06/13 20:50:50 jim - - Various changes to make gcc -Wall -pedantic happy, including - getting rid of staticforward declarations and adding pretend use - of two statics defined in .h file. - - Revision 1.19 1997/06/02 18:15:17 jim - Merged in guido's changes. - - Revision 1.18 1997/05/07 16:26:47 jim - getvalue() can nor be given an argument. If this argument is true, - then getvalue returns the text upto the current position. Otherwise - it returns all of the text. The default value of the argument is - false. - - Revision 1.17 1997/04/17 18:02:46 chris - getvalue() now returns entire string, not just the string up to - current position - - Revision 2.5 1997/04/11 19:56:06 guido - My own patch: support writable 'softspace' attribute. - - > Jim asked: What is softspace for? - - It's an old feature. The print statement uses this to remember - whether it should insert a space before the next item or not. - Implementation is in fileobject.c. - - Revision 1.11 1997/01/23 20:45:01 jim - ANSIfied it. - Changed way C API was exported. - - Revision 1.10 1997/01/02 15:19:55 chris - checked in to be sure repository is up to date. - - Revision 1.9 1996/12/27 21:40:29 jim - Took out some lamosities in interface, like returning self from - write. - - Revision 1.8 1996/12/23 15:52:49 jim - Added ifdef to check for CObject before using it. - - Revision 1.7 1996/12/23 15:22:35 jim - Finished implementation, adding full compatibility with StringIO, and - then some. - - *****************************************************************************/ |