Mercurial > cpython-lru_cache-weakref
annotate Modules/cStringIO.c @ 36392:2012c548ce69 2.4
Correct misspellings.
| author | Georg Brandl <georg@python.org> |
|---|---|
| date | Mon, 23 Jan 2006 22:00:32 +0000 |
| parents | e0a9f66b7014 |
| children | accfb156f9cc |
| rev | line source |
|---|---|
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
1 |
|
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
2 #include "Python.h" |
|
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
3 #include "import.h" |
|
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
4 #include "cStringIO.h" |
|
28772
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
5 #include "structmember.h" |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
6 |
|
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
7 PyDoc_STRVAR(cStringIO_module_documentation, |
| 4598 | 8 "A simple fast partial StringIO replacement.\n" |
| 9 "\n" | |
| 10 "This module provides a simple useful replacement for\n" | |
| 11 "the StringIO module that is written in C. It does not provide the\n" | |
|
12959
2513cd74147c
Fixed docstring typo, reported by Skip Montanaro <skip@mojam.com>.
Fred Drake <fdrake@acm.org>
parents:
12576
diff
changeset
|
12 "full generality of StringIO, but it provides enough for most\n" |
|
13620
5b727ab37092
Spelling fixes supplied by Rob W. W. Hooft. All these are fixes in either
Thomas Wouters <thomas@python.org>
parents:
13576
diff
changeset
|
13 "applications and is especially useful in conjunction with the\n" |
| 4598 | 14 "pickle module.\n" |
| 15 "\n" | |
| 16 "Usage:\n" | |
| 17 "\n" | |
| 18 " from cStringIO import StringIO\n" | |
| 19 "\n" | |
| 20 " an_output_stream=StringIO()\n" | |
| 21 " an_output_stream.write(some_stuff)\n" | |
| 22 " ...\n" | |
|
22218
5440e4b17aff
backport jhylton's checkin of
Michael W. Hudson <mwh@python.net>
parents:
21313
diff
changeset
|
23 " value=an_output_stream.getvalue()\n" |
| 4598 | 24 "\n" |
| 25 " an_input_stream=StringIO(a_string)\n" | |
| 26 " spam=an_input_stream.readline()\n" | |
| 27 " spam=an_input_stream.read(5)\n" | |
|
9521
0f27257fb6cf
New version from Jim Fulton:
Guido van Rossum <guido@python.org>
parents:
8741
diff
changeset
|
28 " an_input_stream.seek(0) # OK, start over\n" |
| 4598 | 29 " spam=an_input_stream.read() # and read it all\n" |
| 30 " \n" | |
| 31 "If someone else wants to provide a more complete implementation,\n" | |
| 32 "go for it. :-) \n" | |
|
5991
a5737dd96979
cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents:
5315
diff
changeset
|
33 "\n" |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
34 "cStringIO.c,v 1.29 1999/06/15 14:10:27 jim Exp\n"); |
| 4598 | 35 |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
36 #define UNLESS(E) if (!(E)) |
| 4598 | 37 |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
38 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
39 /* Declaration for file-like objects that manage data as strings |
| 4598 | 40 |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
41 The IOobject type should be though of as a common base type for |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
42 Iobjects, which provide input (read-only) StringIO objects and |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
43 Oobjects, which provide read-write objects. Most of the methods |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
44 depend only on common data. |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
45 */ |
| 4598 | 46 |
| 47 typedef struct { | |
| 48 PyObject_HEAD | |
| 49 char *buf; | |
| 9642 | 50 int pos, string_size; |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
51 } IOobject; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
52 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
53 #define IOOOBJECT(O) ((IOobject*)(O)) |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
54 |
|
30125
4b46d5449d49
shit - just change the visible name, not the comments - strictly speaking,
Skip Montanaro <skip@pobox.com>
parents:
30124
diff
changeset
|
55 /* Declarations for objects of type StringO */ |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
56 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
57 typedef struct { /* Subtype of IOobject */ |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
58 PyObject_HEAD |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
59 char *buf; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
60 int pos, string_size; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
61 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
62 int buf_size, softspace; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
63 } Oobject; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
64 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
65 /* Declarations for objects of type StringI */ |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
66 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
67 typedef struct { /* Subtype of IOobject */ |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
68 PyObject_HEAD |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
69 char *buf; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
70 int pos, string_size; |
|
20060
ccec02bfe9a0
StringIO patch #462596: let's [c]StringIO accept read buffers on
Marc-André Lemburg <mal@egenix.com>
parents:
20033
diff
changeset
|
71 /* We store a reference to the object here in order to keep |
|
ccec02bfe9a0
StringIO patch #462596: let's [c]StringIO accept read buffers on
Marc-André Lemburg <mal@egenix.com>
parents:
20033
diff
changeset
|
72 the buffer alive during the lifetime of the Iobject. */ |
| 4598 | 73 PyObject *pbuf; |
| 74 } Iobject; | |
| 75 | |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
76 /* IOobject (common) methods */ |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
77 |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
78 PyDoc_STRVAR(IO_flush__doc__, "flush(): does nothing."); |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
79 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
80 static int |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
81 IO__opencheck(IOobject *self) { |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
82 UNLESS (self->buf) { |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
83 PyErr_SetString(PyExc_ValueError, |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
84 "I/O operation on closed file"); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
85 return 0; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
86 } |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
87 return 1; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
88 } |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
89 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
90 static PyObject * |
|
30096
06016d5d81d7
SF bug #770485: cStringIO does not set closed attr
Raymond Hettinger <python@rcn.com>
parents:
28772
diff
changeset
|
91 IO_get_closed(IOobject *self, void *closure) |
|
06016d5d81d7
SF bug #770485: cStringIO does not set closed attr
Raymond Hettinger <python@rcn.com>
parents:
28772
diff
changeset
|
92 { |
|
06016d5d81d7
SF bug #770485: cStringIO does not set closed attr
Raymond Hettinger <python@rcn.com>
parents:
28772
diff
changeset
|
93 PyObject *result = Py_False; |
|
06016d5d81d7
SF bug #770485: cStringIO does not set closed attr
Raymond Hettinger <python@rcn.com>
parents:
28772
diff
changeset
|
94 |
|
06016d5d81d7
SF bug #770485: cStringIO does not set closed attr
Raymond Hettinger <python@rcn.com>
parents:
28772
diff
changeset
|
95 if (self->buf == NULL) |
|
06016d5d81d7
SF bug #770485: cStringIO does not set closed attr
Raymond Hettinger <python@rcn.com>
parents:
28772
diff
changeset
|
96 result = Py_True; |
|
06016d5d81d7
SF bug #770485: cStringIO does not set closed attr
Raymond Hettinger <python@rcn.com>
parents:
28772
diff
changeset
|
97 Py_INCREF(result); |
|
06016d5d81d7
SF bug #770485: cStringIO does not set closed attr
Raymond Hettinger <python@rcn.com>
parents:
28772
diff
changeset
|
98 return result; |
|
06016d5d81d7
SF bug #770485: cStringIO does not set closed attr
Raymond Hettinger <python@rcn.com>
parents:
28772
diff
changeset
|
99 } |
|
06016d5d81d7
SF bug #770485: cStringIO does not set closed attr
Raymond Hettinger <python@rcn.com>
parents:
28772
diff
changeset
|
100 |
|
06016d5d81d7
SF bug #770485: cStringIO does not set closed attr
Raymond Hettinger <python@rcn.com>
parents:
28772
diff
changeset
|
101 static PyGetSetDef file_getsetlist[] = { |
|
06016d5d81d7
SF bug #770485: cStringIO does not set closed attr
Raymond Hettinger <python@rcn.com>
parents:
28772
diff
changeset
|
102 {"closed", (getter)IO_get_closed, NULL, "True if the file is closed"}, |
|
06016d5d81d7
SF bug #770485: cStringIO does not set closed attr
Raymond Hettinger <python@rcn.com>
parents:
28772
diff
changeset
|
103 {0}, |
|
06016d5d81d7
SF bug #770485: cStringIO does not set closed attr
Raymond Hettinger <python@rcn.com>
parents:
28772
diff
changeset
|
104 }; |
|
06016d5d81d7
SF bug #770485: cStringIO does not set closed attr
Raymond Hettinger <python@rcn.com>
parents:
28772
diff
changeset
|
105 |
|
06016d5d81d7
SF bug #770485: cStringIO does not set closed attr
Raymond Hettinger <python@rcn.com>
parents:
28772
diff
changeset
|
106 static PyObject * |
|
27044
23280a64288e
SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents:
25087
diff
changeset
|
107 IO_flush(IOobject *self, PyObject *unused) { |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
108 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
109 UNLESS (IO__opencheck(self)) return NULL; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
110 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
111 Py_INCREF(Py_None); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
112 return Py_None; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
113 } |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
114 |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
115 PyDoc_STRVAR(IO_getval__doc__, |
|
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
116 "getvalue([use_pos]) -- Get the string value." |
|
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
117 "\n" |
|
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
118 "If use_pos is specified and is a true value, then the string returned\n" |
|
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
119 "will include only the text up to the current file position.\n"); |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
120 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
121 static PyObject * |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
122 IO_cgetval(PyObject *self) { |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
123 UNLESS (IO__opencheck(IOOOBJECT(self))) return NULL; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
124 return PyString_FromStringAndSize(((IOobject*)self)->buf, |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
125 ((IOobject*)self)->pos); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
126 } |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
127 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
128 static PyObject * |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
129 IO_getval(IOobject *self, PyObject *args) { |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
130 PyObject *use_pos=Py_None; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
131 int s; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
132 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
133 UNLESS (IO__opencheck(self)) return NULL; |
|
27044
23280a64288e
SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents:
25087
diff
changeset
|
134 UNLESS (PyArg_UnpackTuple(args,"getval", 0, 1,&use_pos)) return NULL; |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
135 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
136 if (PyObject_IsTrue(use_pos)) { |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
137 s=self->pos; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
138 if (s > self->string_size) s=self->string_size; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
139 } |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
140 else |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
141 s=self->string_size; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
142 return PyString_FromStringAndSize(self->buf, s); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
143 } |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
144 |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
145 PyDoc_STRVAR(IO_isatty__doc__, "isatty(): always returns 0"); |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
146 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
147 static PyObject * |
|
27044
23280a64288e
SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents:
25087
diff
changeset
|
148 IO_isatty(IOobject *self, PyObject *unused) { |
|
25087
9a178adb4e2d
SF bug 601775 - some int results that should be bool.
Guido van Rossum <guido@python.org>
parents:
24471
diff
changeset
|
149 Py_INCREF(Py_False); |
|
9a178adb4e2d
SF bug 601775 - some int results that should be bool.
Guido van Rossum <guido@python.org>
parents:
24471
diff
changeset
|
150 return Py_False; |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
151 } |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
152 |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
153 PyDoc_STRVAR(IO_read__doc__, |
|
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
154 "read([s]) -- Read s characters, or the rest of the string"); |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
155 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
156 static int |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
157 IO_cread(PyObject *self, char **output, int n) { |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
158 int l; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
159 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
160 UNLESS (IO__opencheck(IOOOBJECT(self))) return -1; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
161 l = ((IOobject*)self)->string_size - ((IOobject*)self)->pos; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
162 if (n < 0 || n > l) { |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
163 n = l; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
164 if (n < 0) n=0; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
165 } |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
166 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
167 *output=((IOobject*)self)->buf + ((IOobject*)self)->pos; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
168 ((IOobject*)self)->pos += n; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
169 return n; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
170 } |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
171 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
172 static PyObject * |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
173 IO_read(IOobject *self, PyObject *args) { |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
174 int n = -1; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
175 char *output; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
176 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
177 UNLESS (PyArg_ParseTuple(args, "|i:read", &n)) return NULL; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
178 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
179 if ( (n=IO_cread((PyObject*)self,&output,n)) < 0) return NULL; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
180 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
181 return PyString_FromStringAndSize(output, n); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
182 } |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
183 |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
184 PyDoc_STRVAR(IO_readline__doc__, "readline() -- Read one line"); |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
185 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
186 static int |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
187 IO_creadline(PyObject *self, char **output) { |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
188 char *n, *s; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
189 int l; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
190 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
191 UNLESS (IO__opencheck(IOOOBJECT(self))) return -1; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
192 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
193 for (n = ((IOobject*)self)->buf + ((IOobject*)self)->pos, |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
194 s = ((IOobject*)self)->buf + ((IOobject*)self)->string_size; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
195 n < s && *n != '\n'; n++); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
196 if (n < s) n++; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
197 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
198 *output=((IOobject*)self)->buf + ((IOobject*)self)->pos; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
199 l = n - ((IOobject*)self)->buf - ((IOobject*)self)->pos; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
200 ((IOobject*)self)->pos += l; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
201 return l; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
202 } |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
203 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
204 static PyObject * |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
205 IO_readline(IOobject *self, PyObject *args) { |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
206 int n, m=-1; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
207 char *output; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
208 |
|
28772
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
209 if (args) |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
210 UNLESS (PyArg_ParseTuple(args, "|i:readline", &m)) return NULL; |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
211 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
212 if( (n=IO_creadline((PyObject*)self,&output)) < 0) return NULL; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
213 if (m >= 0 && m < n) { |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
214 m = n - m; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
215 n -= m; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
216 self->pos -= m; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
217 } |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
218 return PyString_FromStringAndSize(output, n); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
219 } |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
220 |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
221 PyDoc_STRVAR(IO_readlines__doc__, "readlines() -- Read all lines"); |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
222 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
223 static PyObject * |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
224 IO_readlines(IOobject *self, PyObject *args) { |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
225 int n; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
226 char *output; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
227 PyObject *result, *line; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
228 int hint = 0, length = 0; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
229 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
230 UNLESS (PyArg_ParseTuple(args, "|i:readlines", &hint)) return NULL; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
231 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
232 result = PyList_New(0); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
233 if (!result) |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
234 return NULL; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
235 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
236 while (1){ |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
237 if ( (n = IO_creadline((PyObject*)self,&output)) < 0) |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
238 goto err; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
239 if (n == 0) |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
240 break; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
241 line = PyString_FromStringAndSize (output, n); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
242 if (!line) |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
243 goto err; |
|
35642
e0a9f66b7014
Backport (with Anthony's blessing (in fact he reminded me to do it :)):
Michael W. Hudson <mwh@python.net>
parents:
33213
diff
changeset
|
244 if (PyList_Append (result, line) == -1) { |
|
e0a9f66b7014
Backport (with Anthony's blessing (in fact he reminded me to do it :)):
Michael W. Hudson <mwh@python.net>
parents:
33213
diff
changeset
|
245 Py_DECREF (line); |
|
e0a9f66b7014
Backport (with Anthony's blessing (in fact he reminded me to do it :)):
Michael W. Hudson <mwh@python.net>
parents:
33213
diff
changeset
|
246 goto err; |
|
e0a9f66b7014
Backport (with Anthony's blessing (in fact he reminded me to do it :)):
Michael W. Hudson <mwh@python.net>
parents:
33213
diff
changeset
|
247 } |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
248 Py_DECREF (line); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
249 length += n; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
250 if (hint > 0 && length >= hint) |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
251 break; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
252 } |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
253 return result; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
254 err: |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
255 Py_DECREF(result); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
256 return NULL; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
257 } |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
258 |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
259 PyDoc_STRVAR(IO_reset__doc__, |
|
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
260 "reset() -- Reset the file position to the beginning"); |
| 4598 | 261 |
| 262 static PyObject * | |
|
27044
23280a64288e
SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents:
25087
diff
changeset
|
263 IO_reset(IOobject *self, PyObject *unused) { |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
264 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
265 UNLESS (IO__opencheck(self)) return NULL; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
266 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
267 self->pos = 0; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
268 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
269 Py_INCREF(Py_None); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
270 return Py_None; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
271 } |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
272 |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
273 PyDoc_STRVAR(IO_tell__doc__, "tell() -- get the current position."); |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
274 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
275 static PyObject * |
|
27044
23280a64288e
SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents:
25087
diff
changeset
|
276 IO_tell(IOobject *self, PyObject *unused) { |
| 4598 | 277 |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
278 UNLESS (IO__opencheck(self)) return NULL; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
279 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
280 return PyInt_FromLong(self->pos); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
281 } |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
282 |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
283 PyDoc_STRVAR(IO_truncate__doc__, |
|
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
284 "truncate(): truncate the file at the current position."); |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
285 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
286 static PyObject * |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
287 IO_truncate(IOobject *self, PyObject *args) { |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
288 int pos = -1; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
289 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
290 UNLESS (IO__opencheck(self)) return NULL; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
291 UNLESS (PyArg_ParseTuple(args, "|i:truncate", &pos)) return NULL; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
292 if (pos < 0) pos = self->pos; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
293 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
294 if (self->string_size > pos) self->string_size = pos; |
|
33213
db1bafa9b656
Patch 1012740: cStringIO's truncate doesn't
Tim Peters <tim.peters@gmail.com>
parents:
32423
diff
changeset
|
295 self->pos = self->string_size; |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
296 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
297 Py_INCREF(Py_None); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
298 return Py_None; |
| 4598 | 299 } |
| 300 | |
|
28772
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
301 static PyObject * |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
302 IO_iternext(Iobject *self) |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
303 { |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
304 PyObject *next; |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
305 next = IO_readline((IOobject *)self, NULL); |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
306 if (!next) |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
307 return NULL; |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
308 if (!PyString_GET_SIZE(next)) { |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
309 Py_DECREF(next); |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
310 PyErr_SetNone(PyExc_StopIteration); |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
311 return NULL; |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
312 } |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
313 return next; |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
314 } |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
315 |
| 4598 | 316 |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
317 |
| 4598 | 318 |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
319 /* Read-write object methods */ |
| 4598 | 320 |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
321 PyDoc_STRVAR(O_seek__doc__, |
| 4598 | 322 "seek(position) -- set the current position\n" |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
323 "seek(position, mode) -- mode 0: absolute; 1: relative; 2: relative to EOF"); |
| 4598 | 324 |
| 325 static PyObject * | |
|
5280
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
326 O_seek(Oobject *self, PyObject *args) { |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
327 int position, mode = 0; |
| 4598 | 328 |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
329 UNLESS (IO__opencheck(IOOOBJECT(self))) return NULL; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
330 UNLESS (PyArg_ParseTuple(args, "i|i:seek", &position, &mode)) |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
331 return NULL; |
| 4598 | 332 |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
333 if (mode == 2) { |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
334 position += self->string_size; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
335 } |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
336 else if (mode == 1) { |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
337 position += self->pos; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
338 } |
| 4598 | 339 |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
340 if (position > self->buf_size) { |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
341 self->buf_size*=2; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
342 if (self->buf_size <= position) self->buf_size=position+1; |
|
32423
64534fb3afcd
sizeof(char) is 1, by definition, so get rid of that expression in
Tim Peters <tim.peters@gmail.com>
parents:
31626
diff
changeset
|
343 UNLESS (self->buf = (char*) |
|
64534fb3afcd
sizeof(char) is 1, by definition, so get rid of that expression in
Tim Peters <tim.peters@gmail.com>
parents:
31626
diff
changeset
|
344 realloc(self->buf,self->buf_size)) { |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
345 self->buf_size=self->pos=0; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
346 return PyErr_NoMemory(); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
347 } |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
348 } |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
349 else if (position < 0) position=0; |
| 4598 | 350 |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
351 self->pos=position; |
|
14679
08823099ae62
Implement readlines function. Closes Bug #110686.
Martin v. Löwis <martin@v.loewis.de>
parents:
13817
diff
changeset
|
352 |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
353 while (--position >= self->string_size) self->buf[position]=0; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
354 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
355 Py_INCREF(Py_None); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
356 return Py_None; |
|
14679
08823099ae62
Implement readlines function. Closes Bug #110686.
Martin v. Löwis <martin@v.loewis.de>
parents:
13817
diff
changeset
|
357 } |
|
08823099ae62
Implement readlines function. Closes Bug #110686.
Martin v. Löwis <martin@v.loewis.de>
parents:
13817
diff
changeset
|
358 |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
359 PyDoc_STRVAR(O_write__doc__, |
| 4598 | 360 "write(s) -- Write a string to the file" |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
361 "\n\nNote (hack:) writing None resets the buffer"); |
| 4598 | 362 |
| 363 | |
| 364 static int | |
|
5280
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
365 O_cwrite(PyObject *self, char *c, int l) { |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
366 int newl; |
|
21294
24a6c3fd0e58
O_cwrite(): rewrote for clarity, replacing all the (Oobject *)self
Guido van Rossum <guido@python.org>
parents:
20060
diff
changeset
|
367 Oobject *oself; |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
368 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
369 UNLESS (IO__opencheck(IOOOBJECT(self))) return -1; |
|
21294
24a6c3fd0e58
O_cwrite(): rewrote for clarity, replacing all the (Oobject *)self
Guido van Rossum <guido@python.org>
parents:
20060
diff
changeset
|
370 oself = (Oobject *)self; |
| 4906 | 371 |
|
21294
24a6c3fd0e58
O_cwrite(): rewrote for clarity, replacing all the (Oobject *)self
Guido van Rossum <guido@python.org>
parents:
20060
diff
changeset
|
372 newl = oself->pos+l; |
|
24a6c3fd0e58
O_cwrite(): rewrote for clarity, replacing all the (Oobject *)self
Guido van Rossum <guido@python.org>
parents:
20060
diff
changeset
|
373 if (newl >= oself->buf_size) { |
|
24a6c3fd0e58
O_cwrite(): rewrote for clarity, replacing all the (Oobject *)self
Guido van Rossum <guido@python.org>
parents:
20060
diff
changeset
|
374 oself->buf_size *= 2; |
|
24a6c3fd0e58
O_cwrite(): rewrote for clarity, replacing all the (Oobject *)self
Guido van Rossum <guido@python.org>
parents:
20060
diff
changeset
|
375 if (oself->buf_size <= newl) |
|
24a6c3fd0e58
O_cwrite(): rewrote for clarity, replacing all the (Oobject *)self
Guido van Rossum <guido@python.org>
parents:
20060
diff
changeset
|
376 oself->buf_size = newl+1; |
|
24a6c3fd0e58
O_cwrite(): rewrote for clarity, replacing all the (Oobject *)self
Guido van Rossum <guido@python.org>
parents:
20060
diff
changeset
|
377 UNLESS (oself->buf = |
|
32423
64534fb3afcd
sizeof(char) is 1, by definition, so get rid of that expression in
Tim Peters <tim.peters@gmail.com>
parents:
31626
diff
changeset
|
378 (char*)realloc(oself->buf, oself->buf_size)) { |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
379 PyErr_SetString(PyExc_MemoryError,"out of memory"); |
|
21294
24a6c3fd0e58
O_cwrite(): rewrote for clarity, replacing all the (Oobject *)self
Guido van Rossum <guido@python.org>
parents:
20060
diff
changeset
|
380 oself->buf_size = oself->pos = 0; |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
381 return -1; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
382 } |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
383 } |
| 4598 | 384 |
|
21294
24a6c3fd0e58
O_cwrite(): rewrote for clarity, replacing all the (Oobject *)self
Guido van Rossum <guido@python.org>
parents:
20060
diff
changeset
|
385 memcpy(oself->buf+oself->pos,c,l); |
| 4598 | 386 |
|
21294
24a6c3fd0e58
O_cwrite(): rewrote for clarity, replacing all the (Oobject *)self
Guido van Rossum <guido@python.org>
parents:
20060
diff
changeset
|
387 oself->pos += l; |
| 4598 | 388 |
|
21294
24a6c3fd0e58
O_cwrite(): rewrote for clarity, replacing all the (Oobject *)self
Guido van Rossum <guido@python.org>
parents:
20060
diff
changeset
|
389 if (oself->string_size < oself->pos) { |
|
24a6c3fd0e58
O_cwrite(): rewrote for clarity, replacing all the (Oobject *)self
Guido van Rossum <guido@python.org>
parents:
20060
diff
changeset
|
390 oself->string_size = oself->pos; |
|
24a6c3fd0e58
O_cwrite(): rewrote for clarity, replacing all the (Oobject *)self
Guido van Rossum <guido@python.org>
parents:
20060
diff
changeset
|
391 } |
| 4598 | 392 |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
393 return l; |
| 4598 | 394 } |
| 395 | |
| 396 static PyObject * | |
|
5280
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
397 O_write(Oobject *self, PyObject *args) { |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
398 char *c; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
399 int l; |
| 4598 | 400 |
|
23301
5732a9cc91c7
See discussion at SF bug 547537.
Guido van Rossum <guido@python.org>
parents:
22805
diff
changeset
|
401 UNLESS (PyArg_ParseTuple(args, "t#:write", &c, &l)) return NULL; |
|
5991
a5737dd96979
cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents:
5315
diff
changeset
|
402 |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
403 if (O_cwrite((PyObject*)self,c,l) < 0) return NULL; |
| 4598 | 404 |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
405 Py_INCREF(Py_None); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
406 return Py_None; |
| 4598 | 407 } |
| 408 | |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
409 PyDoc_STRVAR(O_close__doc__, "close(): explicitly release resources held."); |
| 4598 | 410 |
| 411 static PyObject * | |
|
27044
23280a64288e
SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents:
25087
diff
changeset
|
412 O_close(Oobject *self, PyObject *unused) { |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
413 if (self->buf != NULL) free(self->buf); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
414 self->buf = NULL; |
| 4598 | 415 |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
416 self->pos = self->string_size = self->buf_size = 0; |
| 4598 | 417 |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
418 Py_INCREF(Py_None); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
419 return Py_None; |
| 4598 | 420 } |
| 421 | |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
422 PyDoc_STRVAR(O_writelines__doc__, |
|
31626
1543afab1b67
SF patch #907403: Improvements to cStringIO.writelines()
Raymond Hettinger <python@rcn.com>
parents:
31593
diff
changeset
|
423 "writelines(sequence_of_strings) -> None. Write the strings to the file.\n" |
|
1543afab1b67
SF patch #907403: Improvements to cStringIO.writelines()
Raymond Hettinger <python@rcn.com>
parents:
31593
diff
changeset
|
424 "\n" |
|
1543afab1b67
SF patch #907403: Improvements to cStringIO.writelines()
Raymond Hettinger <python@rcn.com>
parents:
31593
diff
changeset
|
425 "Note that newlines are not added. The sequence can be any iterable object\n" |
|
1543afab1b67
SF patch #907403: Improvements to cStringIO.writelines()
Raymond Hettinger <python@rcn.com>
parents:
31593
diff
changeset
|
426 "producing strings. This is equivalent to calling write() for each string."); |
| 4598 | 427 static PyObject * |
|
5280
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
428 O_writelines(Oobject *self, PyObject *args) { |
|
31626
1543afab1b67
SF patch #907403: Improvements to cStringIO.writelines()
Raymond Hettinger <python@rcn.com>
parents:
31593
diff
changeset
|
429 PyObject *it, *s; |
|
1543afab1b67
SF patch #907403: Improvements to cStringIO.writelines()
Raymond Hettinger <python@rcn.com>
parents:
31593
diff
changeset
|
430 |
|
1543afab1b67
SF patch #907403: Improvements to cStringIO.writelines()
Raymond Hettinger <python@rcn.com>
parents:
31593
diff
changeset
|
431 it = PyObject_GetIter(args); |
|
1543afab1b67
SF patch #907403: Improvements to cStringIO.writelines()
Raymond Hettinger <python@rcn.com>
parents:
31593
diff
changeset
|
432 if (it == NULL) |
|
1543afab1b67
SF patch #907403: Improvements to cStringIO.writelines()
Raymond Hettinger <python@rcn.com>
parents:
31593
diff
changeset
|
433 return NULL; |
|
1543afab1b67
SF patch #907403: Improvements to cStringIO.writelines()
Raymond Hettinger <python@rcn.com>
parents:
31593
diff
changeset
|
434 while ((s = PyIter_Next(it)) != NULL) { |
|
1543afab1b67
SF patch #907403: Improvements to cStringIO.writelines()
Raymond Hettinger <python@rcn.com>
parents:
31593
diff
changeset
|
435 int n; |
|
1543afab1b67
SF patch #907403: Improvements to cStringIO.writelines()
Raymond Hettinger <python@rcn.com>
parents:
31593
diff
changeset
|
436 char *c; |
|
1543afab1b67
SF patch #907403: Improvements to cStringIO.writelines()
Raymond Hettinger <python@rcn.com>
parents:
31593
diff
changeset
|
437 if (PyString_AsStringAndSize(s, &c, &n) == -1) { |
|
1543afab1b67
SF patch #907403: Improvements to cStringIO.writelines()
Raymond Hettinger <python@rcn.com>
parents:
31593
diff
changeset
|
438 Py_DECREF(it); |
|
1543afab1b67
SF patch #907403: Improvements to cStringIO.writelines()
Raymond Hettinger <python@rcn.com>
parents:
31593
diff
changeset
|
439 Py_DECREF(s); |
|
16546
60a2e99c863b
In O_writelines: Replace use of string.joinfields with "".join.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
15059
diff
changeset
|
440 return NULL; |
|
31626
1543afab1b67
SF patch #907403: Improvements to cStringIO.writelines()
Raymond Hettinger <python@rcn.com>
parents:
31593
diff
changeset
|
441 } |
|
1543afab1b67
SF patch #907403: Improvements to cStringIO.writelines()
Raymond Hettinger <python@rcn.com>
parents:
31593
diff
changeset
|
442 if (O_cwrite((PyObject *)self, c, n) == -1) { |
|
1543afab1b67
SF patch #907403: Improvements to cStringIO.writelines()
Raymond Hettinger <python@rcn.com>
parents:
31593
diff
changeset
|
443 Py_DECREF(it); |
|
1543afab1b67
SF patch #907403: Improvements to cStringIO.writelines()
Raymond Hettinger <python@rcn.com>
parents:
31593
diff
changeset
|
444 Py_DECREF(s); |
|
16546
60a2e99c863b
In O_writelines: Replace use of string.joinfields with "".join.
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
15059
diff
changeset
|
445 return NULL; |
|
35642
e0a9f66b7014
Backport (with Anthony's blessing (in fact he reminded me to do it :)):
Michael W. Hudson <mwh@python.net>
parents:
33213
diff
changeset
|
446 } |
|
e0a9f66b7014
Backport (with Anthony's blessing (in fact he reminded me to do it :)):
Michael W. Hudson <mwh@python.net>
parents:
33213
diff
changeset
|
447 Py_DECREF(s); |
|
e0a9f66b7014
Backport (with Anthony's blessing (in fact he reminded me to do it :)):
Michael W. Hudson <mwh@python.net>
parents:
33213
diff
changeset
|
448 } |
|
e0a9f66b7014
Backport (with Anthony's blessing (in fact he reminded me to do it :)):
Michael W. Hudson <mwh@python.net>
parents:
33213
diff
changeset
|
449 |
|
e0a9f66b7014
Backport (with Anthony's blessing (in fact he reminded me to do it :)):
Michael W. Hudson <mwh@python.net>
parents:
33213
diff
changeset
|
450 Py_DECREF(it); |
|
e0a9f66b7014
Backport (with Anthony's blessing (in fact he reminded me to do it :)):
Michael W. Hudson <mwh@python.net>
parents:
33213
diff
changeset
|
451 |
|
e0a9f66b7014
Backport (with Anthony's blessing (in fact he reminded me to do it :)):
Michael W. Hudson <mwh@python.net>
parents:
33213
diff
changeset
|
452 /* See if PyIter_Next failed */ |
|
e0a9f66b7014
Backport (with Anthony's blessing (in fact he reminded me to do it :)):
Michael W. Hudson <mwh@python.net>
parents:
33213
diff
changeset
|
453 if (PyErr_Occurred()) |
|
e0a9f66b7014
Backport (with Anthony's blessing (in fact he reminded me to do it :)):
Michael W. Hudson <mwh@python.net>
parents:
33213
diff
changeset
|
454 return NULL; |
|
e0a9f66b7014
Backport (with Anthony's blessing (in fact he reminded me to do it :)):
Michael W. Hudson <mwh@python.net>
parents:
33213
diff
changeset
|
455 |
|
e0a9f66b7014
Backport (with Anthony's blessing (in fact he reminded me to do it :)):
Michael W. Hudson <mwh@python.net>
parents:
33213
diff
changeset
|
456 Py_RETURN_NONE; |
| 4598 | 457 } |
| 458 | |
| 459 static struct PyMethodDef O_methods[] = { | |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
460 /* Common methods: */ |
|
27044
23280a64288e
SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents:
25087
diff
changeset
|
461 {"flush", (PyCFunction)IO_flush, METH_NOARGS, IO_flush__doc__}, |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
462 {"getvalue", (PyCFunction)IO_getval, METH_VARARGS, IO_getval__doc__}, |
|
27044
23280a64288e
SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents:
25087
diff
changeset
|
463 {"isatty", (PyCFunction)IO_isatty, METH_NOARGS, IO_isatty__doc__}, |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
464 {"read", (PyCFunction)IO_read, METH_VARARGS, IO_read__doc__}, |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
465 {"readline", (PyCFunction)IO_readline, METH_VARARGS, IO_readline__doc__}, |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
466 {"readlines", (PyCFunction)IO_readlines,METH_VARARGS, IO_readlines__doc__}, |
|
27044
23280a64288e
SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents:
25087
diff
changeset
|
467 {"reset", (PyCFunction)IO_reset, METH_NOARGS, IO_reset__doc__}, |
|
23280a64288e
SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents:
25087
diff
changeset
|
468 {"tell", (PyCFunction)IO_tell, METH_NOARGS, IO_tell__doc__}, |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
469 {"truncate", (PyCFunction)IO_truncate, METH_VARARGS, IO_truncate__doc__}, |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
470 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
471 /* Read-write StringIO specific methods: */ |
|
27044
23280a64288e
SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents:
25087
diff
changeset
|
472 {"close", (PyCFunction)O_close, METH_NOARGS, O_close__doc__}, |
| 9642 | 473 {"seek", (PyCFunction)O_seek, METH_VARARGS, O_seek__doc__}, |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
474 {"write", (PyCFunction)O_write, METH_VARARGS, O_write__doc__}, |
|
27044
23280a64288e
SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents:
25087
diff
changeset
|
475 {"writelines", (PyCFunction)O_writelines, METH_O, O_writelines__doc__}, |
| 9642 | 476 {NULL, NULL} /* sentinel */ |
| 4598 | 477 }; |
| 478 | |
|
28772
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
479 static PyMemberDef O_memberlist[] = { |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
480 {"softspace", T_INT, offsetof(Oobject, softspace), 0, |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
481 "flag indicating that a space needs to be printed; used by print"}, |
|
30096
06016d5d81d7
SF bug #770485: cStringIO does not set closed attr
Raymond Hettinger <python@rcn.com>
parents:
28772
diff
changeset
|
482 /* getattr(f, "closed") is implemented without this table */ |
|
28772
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
483 {NULL} /* Sentinel */ |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
484 }; |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
485 |
| 4598 | 486 static void |
|
5280
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
487 O_dealloc(Oobject *self) { |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
488 if (self->buf != NULL) |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
489 free(self->buf); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
490 PyObject_Del(self); |
| 4598 | 491 } |
| 492 | |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
493 PyDoc_STRVAR(Otype__doc__, "Simple type for output to strings."); |
| 4598 | 494 |
| 495 static PyTypeObject Otype = { | |
|
5280
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
496 PyObject_HEAD_INIT(NULL) |
|
28772
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
497 0, /*ob_size*/ |
|
30126
6842ceb39a14
reverting to 2.41 version (distinct tp_names) - will add verbiage to the
Skip Montanaro <skip@pobox.com>
parents:
30125
diff
changeset
|
498 "cStringIO.StringO", /*tp_name*/ |
|
5280
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
499 sizeof(Oobject), /*tp_basicsize*/ |
|
28772
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
500 0, /*tp_itemsize*/ |
|
5280
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
501 /* methods */ |
|
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
502 (destructor)O_dealloc, /*tp_dealloc*/ |
|
28772
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
503 (printfunc)0, /*tp_print*/ |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
504 0, /*tp_getattr */ |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
505 0, /*tp_setattr */ |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
506 (cmpfunc)0, /*tp_compare*/ |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
507 (reprfunc)0, /*tp_repr*/ |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
508 0, /*tp_as_number*/ |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
509 0, /*tp_as_sequence*/ |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
510 0, /*tp_as_mapping*/ |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
511 (hashfunc)0, /*tp_hash*/ |
|
5280
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
512 (ternaryfunc)0, /*tp_call*/ |
|
28772
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
513 (reprfunc)0, /*tp_str*/ |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
514 0, /*tp_getattro */ |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
515 0, /*tp_setattro */ |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
516 0, /*tp_as_buffer */ |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
517 Py_TPFLAGS_DEFAULT, /*tp_flags*/ |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
518 Otype__doc__, /*tp_doc */ |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
519 0, /*tp_traverse */ |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
520 0, /*tp_clear */ |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
521 0, /*tp_richcompare */ |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
522 0, /*tp_weaklistoffset */ |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
523 PyObject_SelfIter, /*tp_iter */ |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
524 (iternextfunc)IO_iternext, /*tp_iternext */ |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
525 O_methods, /*tp_methods */ |
|
30096
06016d5d81d7
SF bug #770485: cStringIO does not set closed attr
Raymond Hettinger <python@rcn.com>
parents:
28772
diff
changeset
|
526 O_memberlist, /*tp_members */ |
|
06016d5d81d7
SF bug #770485: cStringIO does not set closed attr
Raymond Hettinger <python@rcn.com>
parents:
28772
diff
changeset
|
527 file_getsetlist, /*tp_getset */ |
| 4598 | 528 }; |
| 529 | |
|
5991
a5737dd96979
cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents:
5315
diff
changeset
|
530 static PyObject * |
|
a5737dd96979
cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents:
5315
diff
changeset
|
531 newOobject(int size) { |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
532 Oobject *self; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
533 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
534 self = PyObject_New(Oobject, &Otype); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
535 if (self == NULL) |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
536 return NULL; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
537 self->pos=0; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
538 self->string_size = 0; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
539 self->softspace = 0; |
|
5991
a5737dd96979
cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents:
5315
diff
changeset
|
540 |
|
32423
64534fb3afcd
sizeof(char) is 1, by definition, so get rid of that expression in
Tim Peters <tim.peters@gmail.com>
parents:
31626
diff
changeset
|
541 UNLESS (self->buf = (char *)malloc(size)) { |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
542 PyErr_SetString(PyExc_MemoryError,"out of memory"); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
543 self->buf_size = 0; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
544 return NULL; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
545 } |
|
5991
a5737dd96979
cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents:
5315
diff
changeset
|
546 |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
547 self->buf_size=size; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
548 return (PyObject*)self; |
|
5991
a5737dd96979
cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents:
5315
diff
changeset
|
549 } |
|
a5737dd96979
cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents:
5315
diff
changeset
|
550 |
|
30125
4b46d5449d49
shit - just change the visible name, not the comments - strictly speaking,
Skip Montanaro <skip@pobox.com>
parents:
30124
diff
changeset
|
551 /* End of code for StringO objects */ |
| 4598 | 552 /* -------------------------------------------------------- */ |
| 553 | |
| 554 static PyObject * | |
|
27044
23280a64288e
SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents:
25087
diff
changeset
|
555 I_close(Iobject *self, PyObject *unused) { |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
556 Py_XDECREF(self->pbuf); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
557 self->pbuf = NULL; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
558 self->buf = NULL; |
| 9642 | 559 |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
560 self->pos = self->string_size = 0; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
561 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
562 Py_INCREF(Py_None); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
563 return Py_None; |
| 9642 | 564 } |
| 565 | |
| 566 static PyObject * | |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
567 I_seek(Iobject *self, PyObject *args) { |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
568 int position, mode = 0; |
| 9642 | 569 |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
570 UNLESS (IO__opencheck(IOOOBJECT(self))) return NULL; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
571 UNLESS (PyArg_ParseTuple(args, "i|i:seek", &position, &mode)) |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
572 return NULL; |
| 9642 | 573 |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
574 if (mode == 2) position += self->string_size; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
575 else if (mode == 1) position += self->pos; |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
576 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
577 if (position < 0) position=0; |
| 9642 | 578 |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
579 self->pos=position; |
| 4598 | 580 |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
581 Py_INCREF(Py_None); |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
582 return Py_None; |
| 4598 | 583 } |
| 584 | |
| 585 static struct PyMethodDef I_methods[] = { | |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
586 /* Common methods: */ |
|
27044
23280a64288e
SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents:
25087
diff
changeset
|
587 {"flush", (PyCFunction)IO_flush, METH_NOARGS, IO_flush__doc__}, |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
588 {"getvalue", (PyCFunction)IO_getval, METH_VARARGS, IO_getval__doc__}, |
|
27044
23280a64288e
SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents:
25087
diff
changeset
|
589 {"isatty", (PyCFunction)IO_isatty, METH_NOARGS, IO_isatty__doc__}, |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
590 {"read", (PyCFunction)IO_read, METH_VARARGS, IO_read__doc__}, |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
591 {"readline", (PyCFunction)IO_readline, METH_VARARGS, IO_readline__doc__}, |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
592 {"readlines", (PyCFunction)IO_readlines,METH_VARARGS, IO_readlines__doc__}, |
|
27044
23280a64288e
SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents:
25087
diff
changeset
|
593 {"reset", (PyCFunction)IO_reset, METH_NOARGS, IO_reset__doc__}, |
|
23280a64288e
SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents:
25087
diff
changeset
|
594 {"tell", (PyCFunction)IO_tell, METH_NOARGS, IO_tell__doc__}, |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
595 {"truncate", (PyCFunction)IO_truncate, METH_VARARGS, IO_truncate__doc__}, |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
596 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
597 /* Read-only StringIO specific methods: */ |
|
27044
23280a64288e
SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents:
25087
diff
changeset
|
598 {"close", (PyCFunction)I_close, METH_NOARGS, O_close__doc__}, |
| 9642 | 599 {"seek", (PyCFunction)I_seek, METH_VARARGS, O_seek__doc__}, |
| 600 {NULL, NULL} | |
| 4598 | 601 }; |
| 602 | |
| 603 static void | |
|
5280
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
604 I_dealloc(Iobject *self) { |
|
6215
eb7a01b86f93
Fix the bug Jeremy was experiencing: both the close() and the
Guido van Rossum <guido@python.org>
parents:
5991
diff
changeset
|
605 Py_XDECREF(self->pbuf); |
|
12576
1c7c2dd1beb1
Vladimir Marangozov's long-awaited malloc restructuring.
Guido van Rossum <guido@python.org>
parents:
12385
diff
changeset
|
606 PyObject_Del(self); |
| 4598 | 607 } |
| 608 | |
|
20033
104b5c9b88ea
I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents:
16546
diff
changeset
|
609 |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
610 PyDoc_STRVAR(Itype__doc__, |
|
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
611 "Simple type for treating strings as input file streams"); |
| 4598 | 612 |
| 613 static PyTypeObject Itype = { | |
|
5280
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
614 PyObject_HEAD_INIT(NULL) |
|
20033
104b5c9b88ea
I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents:
16546
diff
changeset
|
615 0, /*ob_size*/ |
|
30126
6842ceb39a14
reverting to 2.41 version (distinct tp_names) - will add verbiage to the
Skip Montanaro <skip@pobox.com>
parents:
30125
diff
changeset
|
616 "cStringIO.StringI", /*tp_name*/ |
|
20033
104b5c9b88ea
I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents:
16546
diff
changeset
|
617 sizeof(Iobject), /*tp_basicsize*/ |
|
104b5c9b88ea
I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents:
16546
diff
changeset
|
618 0, /*tp_itemsize*/ |
|
5280
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
619 /* methods */ |
|
20033
104b5c9b88ea
I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents:
16546
diff
changeset
|
620 (destructor)I_dealloc, /*tp_dealloc*/ |
|
104b5c9b88ea
I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents:
16546
diff
changeset
|
621 (printfunc)0, /*tp_print*/ |
|
28772
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
622 0, /* tp_getattr */ |
|
20033
104b5c9b88ea
I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents:
16546
diff
changeset
|
623 (setattrfunc)0, /*tp_setattr*/ |
|
104b5c9b88ea
I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents:
16546
diff
changeset
|
624 (cmpfunc)0, /*tp_compare*/ |
|
104b5c9b88ea
I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents:
16546
diff
changeset
|
625 (reprfunc)0, /*tp_repr*/ |
|
104b5c9b88ea
I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents:
16546
diff
changeset
|
626 0, /*tp_as_number*/ |
|
104b5c9b88ea
I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents:
16546
diff
changeset
|
627 0, /*tp_as_sequence*/ |
|
104b5c9b88ea
I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents:
16546
diff
changeset
|
628 0, /*tp_as_mapping*/ |
|
104b5c9b88ea
I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents:
16546
diff
changeset
|
629 (hashfunc)0, /*tp_hash*/ |
|
104b5c9b88ea
I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents:
16546
diff
changeset
|
630 (ternaryfunc)0, /*tp_call*/ |
|
104b5c9b88ea
I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents:
16546
diff
changeset
|
631 (reprfunc)0, /*tp_str*/ |
|
104b5c9b88ea
I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents:
16546
diff
changeset
|
632 0, /* tp_getattro */ |
|
104b5c9b88ea
I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents:
16546
diff
changeset
|
633 0, /* tp_setattro */ |
|
104b5c9b88ea
I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents:
16546
diff
changeset
|
634 0, /* tp_as_buffer */ |
|
104b5c9b88ea
I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents:
16546
diff
changeset
|
635 Py_TPFLAGS_DEFAULT, /* tp_flags */ |
|
104b5c9b88ea
I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents:
16546
diff
changeset
|
636 Itype__doc__, /* tp_doc */ |
|
104b5c9b88ea
I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents:
16546
diff
changeset
|
637 0, /* tp_traverse */ |
|
104b5c9b88ea
I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents:
16546
diff
changeset
|
638 0, /* tp_clear */ |
|
104b5c9b88ea
I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents:
16546
diff
changeset
|
639 0, /* tp_richcompare */ |
|
104b5c9b88ea
I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents:
16546
diff
changeset
|
640 0, /* tp_weaklistoffset */ |
|
28772
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
641 PyObject_SelfIter, /* tp_iter */ |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
642 (iternextfunc)IO_iternext, /* tp_iternext */ |
|
30096
06016d5d81d7
SF bug #770485: cStringIO does not set closed attr
Raymond Hettinger <python@rcn.com>
parents:
28772
diff
changeset
|
643 I_methods, /* tp_methods */ |
|
06016d5d81d7
SF bug #770485: cStringIO does not set closed attr
Raymond Hettinger <python@rcn.com>
parents:
28772
diff
changeset
|
644 0, /* tp_members */ |
|
06016d5d81d7
SF bug #770485: cStringIO does not set closed attr
Raymond Hettinger <python@rcn.com>
parents:
28772
diff
changeset
|
645 file_getsetlist, /* tp_getset */ |
| 4598 | 646 }; |
| 647 | |
|
5991
a5737dd96979
cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents:
5315
diff
changeset
|
648 static PyObject * |
|
a5737dd96979
cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents:
5315
diff
changeset
|
649 newIobject(PyObject *s) { |
|
a5737dd96979
cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents:
5315
diff
changeset
|
650 Iobject *self; |
|
a5737dd96979
cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents:
5315
diff
changeset
|
651 char *buf; |
|
a5737dd96979
cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents:
5315
diff
changeset
|
652 int size; |
|
12385
627226df9f01
raise TypeError when bad argument passed to cStringIO.StringIO
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
11882
diff
changeset
|
653 |
|
20060
ccec02bfe9a0
StringIO patch #462596: let's [c]StringIO accept read buffers on
Marc-André Lemburg <mal@egenix.com>
parents:
20033
diff
changeset
|
654 if (PyObject_AsReadBuffer(s, (const void **)&buf, &size)) { |
|
ccec02bfe9a0
StringIO patch #462596: let's [c]StringIO accept read buffers on
Marc-André Lemburg <mal@egenix.com>
parents:
20033
diff
changeset
|
655 PyErr_Format(PyExc_TypeError, "expected read buffer, %.200s found", |
|
12385
627226df9f01
raise TypeError when bad argument passed to cStringIO.StringIO
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
11882
diff
changeset
|
656 s->ob_type->tp_name); |
|
627226df9f01
raise TypeError when bad argument passed to cStringIO.StringIO
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
11882
diff
changeset
|
657 return NULL; |
|
627226df9f01
raise TypeError when bad argument passed to cStringIO.StringIO
Jeremy Hylton <jeremy@alum.mit.edu>
parents:
11882
diff
changeset
|
658 } |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
659 UNLESS (self = PyObject_New(Iobject, &Itype)) return NULL; |
|
5991
a5737dd96979
cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents:
5315
diff
changeset
|
660 Py_INCREF(s); |
|
a5737dd96979
cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents:
5315
diff
changeset
|
661 self->buf=buf; |
|
a5737dd96979
cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents:
5315
diff
changeset
|
662 self->string_size=size; |
|
a5737dd96979
cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents:
5315
diff
changeset
|
663 self->pbuf=s; |
|
a5737dd96979
cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents:
5315
diff
changeset
|
664 self->pos=0; |
|
a5737dd96979
cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents:
5315
diff
changeset
|
665 |
|
a5737dd96979
cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents:
5315
diff
changeset
|
666 return (PyObject*)self; |
|
a5737dd96979
cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents:
5315
diff
changeset
|
667 } |
|
a5737dd96979
cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents:
5315
diff
changeset
|
668 |
| 4598 | 669 /* End of code for StringI objects */ |
| 670 /* -------------------------------------------------------- */ | |
| 671 | |
| 672 | |
|
23832
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
673 PyDoc_STRVAR(IO_StringIO__doc__, |
|
ed1ba37a46b7
Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents:
23301
diff
changeset
|
674 "StringIO([s]) -- Return a StringIO-like stream for reading or writing"); |
| 4598 | 675 |
| 676 static PyObject * | |
|
5280
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
677 IO_StringIO(PyObject *self, PyObject *args) { |
| 4598 | 678 PyObject *s=0; |
| 679 | |
|
27044
23280a64288e
SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents:
25087
diff
changeset
|
680 if (!PyArg_UnpackTuple(args, "StringIO", 0, 1, &s)) return NULL; |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
681 |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
682 if (s) return newIobject(s); |
|
5280
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
683 return newOobject(128); |
| 4598 | 684 } |
| 685 | |
| 686 /* List of methods defined in the module */ | |
| 687 | |
| 688 static struct PyMethodDef IO_methods[] = { | |
|
13817
3c0f75a2198f
Use METH_VARARGS instead of numeric constant 1 in method def. tables
Andrew M. Kuchling <amk@amk.ca>
parents:
13690
diff
changeset
|
689 {"StringIO", (PyCFunction)IO_StringIO, |
|
3c0f75a2198f
Use METH_VARARGS instead of numeric constant 1 in method def. tables
Andrew M. Kuchling <amk@amk.ca>
parents:
13690
diff
changeset
|
690 METH_VARARGS, IO_StringIO__doc__}, |
| 4906 | 691 {NULL, NULL} /* sentinel */ |
| 4598 | 692 }; |
| 693 | |
| 694 | |
| 695 /* Initialization function for the module (*must* be called initcStringIO) */ | |
| 696 | |
|
5280
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
697 static struct PycStringIO_CAPI CAPI = { |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
698 IO_cread, |
|
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
699 IO_creadline, |
|
5280
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
700 O_cwrite, |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
701 IO_cgetval, |
|
5280
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
702 newOobject, |
|
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
703 newIobject, |
|
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
704 &Itype, |
|
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
705 &Otype, |
|
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
706 }; |
|
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
707 |
|
24471
f66b3a3509c7
Excise DL_EXPORT/DL_IMPORT from Modules/*. Required adding a prototype
Mark Hammond <mhammond@skippinet.com.au>
parents:
23832
diff
changeset
|
708 #ifndef PyMODINIT_FUNC /* declarations for DLL import/export */ |
|
f66b3a3509c7
Excise DL_EXPORT/DL_IMPORT from Modules/*. Required adding a prototype
Mark Hammond <mhammond@skippinet.com.au>
parents:
23832
diff
changeset
|
709 #define PyMODINIT_FUNC void |
| 9642 | 710 #endif |
|
24471
f66b3a3509c7
Excise DL_EXPORT/DL_IMPORT from Modules/*. Required adding a prototype
Mark Hammond <mhammond@skippinet.com.au>
parents:
23832
diff
changeset
|
711 PyMODINIT_FUNC |
|
13690
c09c0171474f
ANSIfy some more forward declarations.
Thomas Wouters <thomas@python.org>
parents:
13620
diff
changeset
|
712 initcStringIO(void) { |
|
6227
613f976a57b4
#Plug small memory leaks in constructors.
Guido van Rossum <guido@python.org>
parents:
6215
diff
changeset
|
713 PyObject *m, *d, *v; |
| 4598 | 714 |
|
5280
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
715 |
| 4598 | 716 /* Create the module and add the functions */ |
| 717 m = Py_InitModule4("cStringIO", IO_methods, | |
| 718 cStringIO_module_documentation, | |
| 719 (PyObject*)NULL,PYTHON_API_VERSION); | |
| 720 | |
| 721 /* Add some symbolic constants to the module */ | |
| 722 d = PyModule_GetDict(m); | |
| 723 | |
| 4906 | 724 /* Export C API */ |
|
5280
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
725 Itype.ob_type=&PyType_Type; |
|
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
726 Otype.ob_type=&PyType_Type; |
|
28772
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
727 if (PyType_Ready(&Otype) < 0) return; |
|
0ea5991f6edb
SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents:
27044
diff
changeset
|
728 if (PyType_Ready(&Itype) < 0) return; |
|
6227
613f976a57b4
#Plug small memory leaks in constructors.
Guido van Rossum <guido@python.org>
parents:
6215
diff
changeset
|
729 PyDict_SetItemString(d,"cStringIO_CAPI", |
|
613f976a57b4
#Plug small memory leaks in constructors.
Guido van Rossum <guido@python.org>
parents:
6215
diff
changeset
|
730 v = PyCObject_FromVoidPtr(&CAPI,NULL)); |
|
613f976a57b4
#Plug small memory leaks in constructors.
Guido van Rossum <guido@python.org>
parents:
6215
diff
changeset
|
731 Py_XDECREF(v); |
|
5280
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
732 |
|
e8f8cf358054
Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents:
4957
diff
changeset
|
733 /* Export Types */ |
| 4598 | 734 PyDict_SetItemString(d,"InputType", (PyObject*)&Itype); |
| 735 PyDict_SetItemString(d,"OutputType", (PyObject*)&Otype); | |
|
5991
a5737dd96979
cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents:
5315
diff
changeset
|
736 |
|
a5737dd96979
cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents:
5315
diff
changeset
|
737 /* Maybe make certain warnings go away */ |
|
15059
acb88607b4bd
Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents:
14679
diff
changeset
|
738 if (0) PycString_IMPORT; |
| 4598 | 739 } |
