annotate Modules/cStringIO.c @ 29500:aa84ede1c364 legacy-trunk

Add item about new threading module functions.
author Jeremy Hylton <jeremy@alum.mit.edu>
date Mon, 16 Jun 2003 20:38:15 +0000
parents 0ea5991f6edb
children 06016d5d81d7
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
8 "A simple fast partial StringIO replacement.\n"
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
9 "\n"
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
10 "This module provides a simple useful replacement for\n"
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
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
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
14 "pickle module.\n"
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
15 "\n"
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
16 "Usage:\n"
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
17 "\n"
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
18 " from cStringIO import StringIO\n"
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
19 "\n"
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
20 " an_output_stream=StringIO()\n"
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
21 " an_output_stream.write(some_stuff)\n"
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
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
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
24 "\n"
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
25 " an_input_stream=StringIO(a_string)\n"
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
26 " spam=an_input_stream.readline()\n"
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
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
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
29 " spam=an_input_stream.read() # and read it all\n"
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
30 " \n"
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
31 "If someone else wants to provide a more complete implementation,\n"
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
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
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
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
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
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
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
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
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
46
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
47 typedef struct {
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
48 PyObject_HEAD
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
49 char *buf;
9642
08379c7f5fa9 Jim Fulton writes:
Guido van Rossum <guido@python.org>
parents: 9588
diff changeset
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
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
55 /* Declarations for objects of type StringO */
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
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
73 PyObject *pbuf;
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
74 } Iobject;
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
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 *
27044
23280a64288e SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents: 25087
diff changeset
91 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
92
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
93 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
94
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
95 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
96 return Py_None;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
97 }
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
98
23832
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23301
diff changeset
99 PyDoc_STRVAR(IO_getval__doc__,
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23301
diff changeset
100 "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
101 "\n"
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23301
diff changeset
102 "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
103 "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
104
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
105 static PyObject *
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
106 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
107 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
108 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
109 ((IOobject*)self)->pos);
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
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
112 static PyObject *
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
113 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
114 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
115 int s;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
116
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
117 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
118 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
119
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
120 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
121 s=self->pos;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
122 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
123 }
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
124 else
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
125 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
126 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
127 }
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
128
23832
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23301
diff changeset
129 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
130
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
131 static PyObject *
27044
23280a64288e SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents: 25087
diff changeset
132 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
133 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
134 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
135 }
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
136
23832
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23301
diff changeset
137 PyDoc_STRVAR(IO_read__doc__,
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23301
diff changeset
138 "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
139
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
140 static int
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
141 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
142 int l;
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 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
145 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
146 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
147 n = l;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
148 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
149 }
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
150
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
151 *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
152 ((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
153 return n;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
154 }
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 PyObject *
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
157 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
158 int n = -1;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
159 char *output;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
160
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
161 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
162
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
163 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
164
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
165 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
166 }
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
167
23832
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23301
diff changeset
168 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
169
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
170 static int
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
171 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
172 char *n, *s;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
173 int l;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
174
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
175 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
176
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
177 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
178 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
179 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
180 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
181
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
182 *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
183 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
184 ((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
185 return l;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
186 }
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
187
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
188 static PyObject *
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
189 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
190 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
191 char *output;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
192
28772
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
193 if (args)
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
194 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
195
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
196 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
197 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
198 m = n - m;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
199 n -= m;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
200 self->pos -= m;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
201 }
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
202 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
203 }
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
204
23832
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23301
diff changeset
205 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
206
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
207 static PyObject *
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
208 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
209 int n;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
210 char *output;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
211 PyObject *result, *line;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
212 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
213
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
214 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
215
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
216 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
217 if (!result)
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
218 return NULL;
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 while (1){
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
221 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
222 goto err;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
223 if (n == 0)
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
224 break;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
225 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
226 if (!line)
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
227 goto err;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
228 PyList_Append (result, line);
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
229 Py_DECREF (line);
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
230 length += n;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
231 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
232 break;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
233 }
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
234 return result;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
235 err:
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
236 Py_DECREF(result);
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
237 return NULL;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
238 }
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
239
23832
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23301
diff changeset
240 PyDoc_STRVAR(IO_reset__doc__,
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23301
diff changeset
241 "reset() -- Reset the file position to the beginning");
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
242
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
243 static PyObject *
27044
23280a64288e SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents: 25087
diff changeset
244 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
245
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
246 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
247
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
248 self->pos = 0;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
249
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
250 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
251 return Py_None;
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
23832
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23301
diff changeset
254 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
255
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
256 static PyObject *
27044
23280a64288e SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents: 25087
diff changeset
257 IO_tell(IOobject *self, PyObject *unused) {
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
258
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
259 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
260
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
261 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
262 }
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
263
23832
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23301
diff changeset
264 PyDoc_STRVAR(IO_truncate__doc__,
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23301
diff changeset
265 "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
266
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
267 static PyObject *
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
268 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
269 int pos = -1;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
270
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
271 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
272 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
273 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
274
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
275 if (self->string_size > pos) self->string_size = pos;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
276
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
277 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
278 return Py_None;
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
279 }
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
280
28772
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
281 static PyObject *
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
282 IO_iternext(Iobject *self)
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
283 {
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
284 PyObject *next;
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
285 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
286 if (!next)
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
287 return NULL;
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
288 if (!PyString_GET_SIZE(next)) {
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
289 Py_DECREF(next);
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
290 PyErr_SetNone(PyExc_StopIteration);
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
291 return NULL;
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
292 }
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
293 return next;
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
294 }
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
295
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
296
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
297
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
298
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
299 /* Read-write object methods */
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
300
23832
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23301
diff changeset
301 PyDoc_STRVAR(O_seek__doc__,
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
302 "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
303 "seek(position, mode) -- mode 0: absolute; 1: relative; 2: relative to EOF");
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
304
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
305 static PyObject *
5280
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
306 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
307 int position, mode = 0;
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
308
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
309 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
310 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
311 return NULL;
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
312
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
313 if (mode == 2) {
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
314 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
315 }
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
316 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
317 position += self->pos;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
318 }
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
319
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
320 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
321 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
322 if (self->buf_size <= position) self->buf_size=position+1;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
323 UNLESS (self->buf=(char*)
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
324 realloc(self->buf,self->buf_size*sizeof(char))) {
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
325 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
326 return PyErr_NoMemory();
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
327 }
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
328 }
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
329 else if (position < 0) position=0;
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
330
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
331 self->pos=position;
14679
08823099ae62 Implement readlines function. Closes Bug #110686.
Martin v. Löwis <martin@v.loewis.de>
parents: 13817
diff changeset
332
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
333 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
334
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
335 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
336 return Py_None;
14679
08823099ae62 Implement readlines function. Closes Bug #110686.
Martin v. Löwis <martin@v.loewis.de>
parents: 13817
diff changeset
337 }
08823099ae62 Implement readlines function. Closes Bug #110686.
Martin v. Löwis <martin@v.loewis.de>
parents: 13817
diff changeset
338
23832
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23301
diff changeset
339 PyDoc_STRVAR(O_write__doc__,
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
340 "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
341 "\n\nNote (hack:) writing None resets the buffer");
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
342
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
343
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
344 static int
5280
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
345 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
346 int newl;
21294
24a6c3fd0e58 O_cwrite(): rewrote for clarity, replacing all the (Oobject *)self
Guido van Rossum <guido@python.org>
parents: 20060
diff changeset
347 Oobject *oself;
15059
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 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
350 oself = (Oobject *)self;
4906
fce781b127b9 Jim's latest version.
Guido van Rossum <guido@python.org>
parents: 4598
diff changeset
351
21294
24a6c3fd0e58 O_cwrite(): rewrote for clarity, replacing all the (Oobject *)self
Guido van Rossum <guido@python.org>
parents: 20060
diff changeset
352 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
353 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
354 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
355 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
356 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
357 UNLESS (oself->buf =
24a6c3fd0e58 O_cwrite(): rewrote for clarity, replacing all the (Oobject *)self
Guido van Rossum <guido@python.org>
parents: 20060
diff changeset
358 (char*)realloc(oself->buf,
24a6c3fd0e58 O_cwrite(): rewrote for clarity, replacing all the (Oobject *)self
Guido van Rossum <guido@python.org>
parents: 20060
diff changeset
359 (oself->buf_size) * sizeof(char))) {
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
360 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
361 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
362 return -1;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
363 }
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
364 }
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
365
21294
24a6c3fd0e58 O_cwrite(): rewrote for clarity, replacing all the (Oobject *)self
Guido van Rossum <guido@python.org>
parents: 20060
diff changeset
366 memcpy(oself->buf+oself->pos,c,l);
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
367
21294
24a6c3fd0e58 O_cwrite(): rewrote for clarity, replacing all the (Oobject *)self
Guido van Rossum <guido@python.org>
parents: 20060
diff changeset
368 oself->pos += l;
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
369
21294
24a6c3fd0e58 O_cwrite(): rewrote for clarity, replacing all the (Oobject *)self
Guido van Rossum <guido@python.org>
parents: 20060
diff changeset
370 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
371 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
372 }
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
373
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
374 return l;
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
375 }
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
376
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
377 static PyObject *
5280
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
378 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
379 char *c;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
380 int l;
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
381
23301
5732a9cc91c7 See discussion at SF bug 547537.
Guido van Rossum <guido@python.org>
parents: 22805
diff changeset
382 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
383
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
384 if (O_cwrite((PyObject*)self,c,l) < 0) return NULL;
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
385
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
386 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
387 return Py_None;
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
388 }
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
389
23832
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23301
diff changeset
390 PyDoc_STRVAR(O_close__doc__, "close(): explicitly release resources held.");
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
391
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
392 static PyObject *
27044
23280a64288e SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents: 25087
diff changeset
393 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
394 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
395 self->buf = NULL;
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
396
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
397 self->pos = self->string_size = self->buf_size = 0;
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
398
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
399 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
400 return Py_None;
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
401 }
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
402
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
403
23832
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23301
diff changeset
404 PyDoc_STRVAR(O_writelines__doc__,
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23301
diff changeset
405 "writelines(sequence_of_strings): write each string");
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
406 static PyObject *
5280
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
407 O_writelines(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
408 PyObject *tmp = 0;
16546
60a2e99c863b In O_writelines: Replace use of string.joinfields with "".join.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 15059
diff changeset
409 static PyObject *joiner = NULL;
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
410
16546
60a2e99c863b In O_writelines: Replace use of string.joinfields with "".join.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 15059
diff changeset
411 if (!joiner) {
60a2e99c863b In O_writelines: Replace use of string.joinfields with "".join.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 15059
diff changeset
412 PyObject *empty_string = PyString_FromString("");
60a2e99c863b In O_writelines: Replace use of string.joinfields with "".join.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 15059
diff changeset
413 if (empty_string == NULL)
60a2e99c863b In O_writelines: Replace use of string.joinfields with "".join.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 15059
diff changeset
414 return NULL;
60a2e99c863b In O_writelines: Replace use of string.joinfields with "".join.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 15059
diff changeset
415 joiner = PyObject_GetAttrString(empty_string, "join");
60a2e99c863b In O_writelines: Replace use of string.joinfields with "".join.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 15059
diff changeset
416 Py_DECREF(empty_string);
60a2e99c863b In O_writelines: Replace use of string.joinfields with "".join.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 15059
diff changeset
417 if (joiner == NULL)
60a2e99c863b In O_writelines: Replace use of string.joinfields with "".join.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 15059
diff changeset
418 return NULL;
60a2e99c863b In O_writelines: Replace use of string.joinfields with "".join.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 15059
diff changeset
419 }
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
420
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
421 if (PyObject_Size(args) < 0) return NULL;
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
422
16546
60a2e99c863b In O_writelines: Replace use of string.joinfields with "".join.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 15059
diff changeset
423 tmp = PyObject_CallFunction(joiner, "O", args);
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
424 UNLESS (tmp) return NULL;
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
425
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
426 args = Py_BuildValue("(O)", tmp);
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
427 Py_DECREF(tmp);
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
428 UNLESS (args) return NULL;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
429
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
430 tmp = O_write(self, args);
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
431 Py_DECREF(args);
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
432 return tmp;
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
433 }
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
434
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
435 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
436 /* Common methods: */
27044
23280a64288e SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents: 25087
diff changeset
437 {"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
438 {"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
439 {"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
440 {"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
441 {"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
442 {"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
443 {"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
444 {"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
445 {"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
446
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
447 /* 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
448 {"close", (PyCFunction)O_close, METH_NOARGS, O_close__doc__},
9642
08379c7f5fa9 Jim Fulton writes:
Guido van Rossum <guido@python.org>
parents: 9588
diff changeset
449 {"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
450 {"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
451 {"writelines", (PyCFunction)O_writelines, METH_O, O_writelines__doc__},
9642
08379c7f5fa9 Jim Fulton writes:
Guido van Rossum <guido@python.org>
parents: 9588
diff changeset
452 {NULL, NULL} /* sentinel */
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
453 };
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
454
28772
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
455 static PyMemberDef O_memberlist[] = {
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
456 {"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
457 "flag indicating that a space needs to be printed; used by print"},
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
458 {NULL} /* Sentinel */
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
459 };
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
460
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
461 static void
5280
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
462 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
463 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
464 free(self->buf);
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
465 PyObject_Del(self);
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
466 }
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
467
23832
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23301
diff changeset
468 PyDoc_STRVAR(Otype__doc__, "Simple type for output to strings.");
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
469
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
470 static PyTypeObject Otype = {
5280
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
471 PyObject_HEAD_INIT(NULL)
28772
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
472 0, /*ob_size*/
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
473 "cStringIO.StringO", /*tp_name*/
5280
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
474 sizeof(Oobject), /*tp_basicsize*/
28772
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
475 0, /*tp_itemsize*/
5280
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
476 /* methods */
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
477 (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
478 (printfunc)0, /*tp_print*/
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
479 0, /*tp_getattr */
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
480 0, /*tp_setattr */
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
481 (cmpfunc)0, /*tp_compare*/
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
482 (reprfunc)0, /*tp_repr*/
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
483 0, /*tp_as_number*/
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
484 0, /*tp_as_sequence*/
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
485 0, /*tp_as_mapping*/
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
486 (hashfunc)0, /*tp_hash*/
5280
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
487 (ternaryfunc)0, /*tp_call*/
28772
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
488 (reprfunc)0, /*tp_str*/
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
489 0, /*tp_getattro */
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
490 0, /*tp_setattro */
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
491 0, /*tp_as_buffer */
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
492 Py_TPFLAGS_DEFAULT, /*tp_flags*/
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
493 Otype__doc__, /*tp_doc */
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
494 0, /*tp_traverse */
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
495 0, /*tp_clear */
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
496 0, /*tp_richcompare */
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
497 0, /*tp_weaklistoffset */
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
498 PyObject_SelfIter, /*tp_iter */
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
499 (iternextfunc)IO_iternext, /*tp_iternext */
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
500 O_methods, /*tp_methods */
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
501 O_memberlist /*tp_members */
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
502 };
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
503
5991
a5737dd96979 cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents: 5315
diff changeset
504 static PyObject *
a5737dd96979 cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents: 5315
diff changeset
505 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
506 Oobject *self;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
507
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
508 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
509 if (self == NULL)
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
510 return NULL;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
511 self->pos=0;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
512 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
513 self->softspace = 0;
5991
a5737dd96979 cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents: 5315
diff changeset
514
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
515 UNLESS (self->buf=malloc(size*sizeof(char))) {
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
516 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
517 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
518 return NULL;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
519 }
5991
a5737dd96979 cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents: 5315
diff changeset
520
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
521 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
522 return (PyObject*)self;
5991
a5737dd96979 cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents: 5315
diff changeset
523 }
a5737dd96979 cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents: 5315
diff changeset
524
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
525 /* End of code for StringO objects */
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
526 /* -------------------------------------------------------- */
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
527
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
528 static PyObject *
27044
23280a64288e SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents: 25087
diff changeset
529 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
530 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
531 self->pbuf = NULL;
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
532 self->buf = NULL;
9642
08379c7f5fa9 Jim Fulton writes:
Guido van Rossum <guido@python.org>
parents: 9588
diff changeset
533
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
534 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
535
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
536 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
537 return Py_None;
9642
08379c7f5fa9 Jim Fulton writes:
Guido van Rossum <guido@python.org>
parents: 9588
diff changeset
538 }
08379c7f5fa9 Jim Fulton writes:
Guido van Rossum <guido@python.org>
parents: 9588
diff changeset
539
08379c7f5fa9 Jim Fulton writes:
Guido van Rossum <guido@python.org>
parents: 9588
diff changeset
540 static PyObject *
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
541 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
542 int position, mode = 0;
9642
08379c7f5fa9 Jim Fulton writes:
Guido van Rossum <guido@python.org>
parents: 9588
diff changeset
543
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
544 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
545 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
546 return NULL;
9642
08379c7f5fa9 Jim Fulton writes:
Guido van Rossum <guido@python.org>
parents: 9588
diff changeset
547
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
548 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
549 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
550
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
551 if (position < 0) position=0;
9642
08379c7f5fa9 Jim Fulton writes:
Guido van Rossum <guido@python.org>
parents: 9588
diff changeset
552
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
553 self->pos=position;
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
554
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
555 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
556 return Py_None;
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
557 }
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
558
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
559 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
560 /* Common methods: */
27044
23280a64288e SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents: 25087
diff changeset
561 {"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
562 {"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
563 {"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
564 {"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
565 {"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
566 {"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
567 {"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
568 {"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
569 {"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
570
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
571 /* 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
572 {"close", (PyCFunction)I_close, METH_NOARGS, O_close__doc__},
9642
08379c7f5fa9 Jim Fulton writes:
Guido van Rossum <guido@python.org>
parents: 9588
diff changeset
573 {"seek", (PyCFunction)I_seek, METH_VARARGS, O_seek__doc__},
08379c7f5fa9 Jim Fulton writes:
Guido van Rossum <guido@python.org>
parents: 9588
diff changeset
574 {NULL, NULL}
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
575 };
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
576
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
577 static void
5280
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
578 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
579 Py_XDECREF(self->pbuf);
12576
1c7c2dd1beb1 Vladimir Marangozov's long-awaited malloc restructuring.
Guido van Rossum <guido@python.org>
parents: 12385
diff changeset
580 PyObject_Del(self);
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
581 }
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
582
20033
104b5c9b88ea I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents: 16546
diff changeset
583
23832
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23301
diff changeset
584 PyDoc_STRVAR(Itype__doc__,
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23301
diff changeset
585 "Simple type for treating strings as input file streams");
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
586
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
587 static PyTypeObject Itype = {
5280
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
588 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
589 0, /*ob_size*/
21313
91dd223829c6 Patch supplied by Burton Radons for his own SF bug #487390: Modifying
Guido van Rossum <guido@python.org>
parents: 21294
diff changeset
590 "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
591 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
592 0, /*tp_itemsize*/
5280
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
593 /* methods */
20033
104b5c9b88ea I_getiter(): Function for the tp_iter slot of Itype so that
Barry Warsaw <barry@python.org>
parents: 16546
diff changeset
594 (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
595 (printfunc)0, /*tp_print*/
28772
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
596 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
597 (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
598 (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
599 (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
600 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
601 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
602 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
603 (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
604 (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
605 (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
606 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
607 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
608 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
609 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
610 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
611 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
612 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
613 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
614 0, /* tp_weaklistoffset */
28772
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
615 PyObject_SelfIter, /* tp_iter */
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
616 (iternextfunc)IO_iternext, /* tp_iternext */
0ea5991f6edb SF patch 695710: fix bug 678519: cStringIO self iterator
Raymond Hettinger <python@rcn.com>
parents: 27044
diff changeset
617 I_methods /* tp_methods */
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
618 };
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
619
5991
a5737dd96979 cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents: 5315
diff changeset
620 static PyObject *
a5737dd96979 cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents: 5315
diff changeset
621 newIobject(PyObject *s) {
a5737dd96979 cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents: 5315
diff changeset
622 Iobject *self;
a5737dd96979 cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents: 5315
diff changeset
623 char *buf;
a5737dd96979 cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents: 5315
diff changeset
624 int size;
12385
627226df9f01 raise TypeError when bad argument passed to cStringIO.StringIO
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 11882
diff changeset
625
20060
ccec02bfe9a0 StringIO patch #462596: let's [c]StringIO accept read buffers on
Marc-André Lemburg <mal@egenix.com>
parents: 20033
diff changeset
626 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
627 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
628 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
629 return NULL;
627226df9f01 raise TypeError when bad argument passed to cStringIO.StringIO
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 11882
diff changeset
630 }
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
631 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
632 Py_INCREF(s);
a5737dd96979 cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents: 5315
diff changeset
633 self->buf=buf;
a5737dd96979 cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents: 5315
diff changeset
634 self->string_size=size;
a5737dd96979 cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents: 5315
diff changeset
635 self->pbuf=s;
a5737dd96979 cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents: 5315
diff changeset
636 self->pos=0;
a5737dd96979 cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents: 5315
diff changeset
637
a5737dd96979 cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents: 5315
diff changeset
638 return (PyObject*)self;
a5737dd96979 cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents: 5315
diff changeset
639 }
a5737dd96979 cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents: 5315
diff changeset
640
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
641 /* End of code for StringI objects */
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
642 /* -------------------------------------------------------- */
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
643
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
644
23832
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23301
diff changeset
645 PyDoc_STRVAR(IO_StringIO__doc__,
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 23301
diff changeset
646 "StringIO([s]) -- Return a StringIO-like stream for reading or writing");
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
647
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
648 static PyObject *
5280
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
649 IO_StringIO(PyObject *self, PyObject *args) {
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
650 PyObject *s=0;
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
651
27044
23280a64288e SF patch 660559: Use METH_O and METH_NOARGS where possible
Raymond Hettinger <python@rcn.com>
parents: 25087
diff changeset
652 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
653
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
654 if (s) return newIobject(s);
5280
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
655 return newOobject(128);
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
656 }
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
657
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
658 /* List of methods defined in the module */
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
659
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
660 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
661 {"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
662 METH_VARARGS, IO_StringIO__doc__},
4906
fce781b127b9 Jim's latest version.
Guido van Rossum <guido@python.org>
parents: 4598
diff changeset
663 {NULL, NULL} /* sentinel */
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
664 };
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
665
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
666
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
667 /* Initialization function for the module (*must* be called initcStringIO) */
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
668
5280
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
669 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
670 IO_cread,
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
671 IO_creadline,
5280
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
672 O_cwrite,
15059
acb88607b4bd Added a new "base" type, IOobject for which most of the
Jim Fulton <jim@zope.com>
parents: 14679
diff changeset
673 IO_cgetval,
5280
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
674 newOobject,
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
675 newIobject,
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
676 &Itype,
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
677 &Otype,
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
678 };
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
679
24471
f66b3a3509c7 Excise DL_EXPORT/DL_IMPORT from Modules/*. Required adding a prototype
Mark Hammond <mhammond@skippinet.com.au>
parents: 23832
diff changeset
680 #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
681 #define PyMODINIT_FUNC void
9642
08379c7f5fa9 Jim Fulton writes:
Guido van Rossum <guido@python.org>
parents: 9588
diff changeset
682 #endif
24471
f66b3a3509c7 Excise DL_EXPORT/DL_IMPORT from Modules/*. Required adding a prototype
Mark Hammond <mhammond@skippinet.com.au>
parents: 23832
diff changeset
683 PyMODINIT_FUNC
13690
c09c0171474f ANSIfy some more forward declarations.
Thomas Wouters <thomas@python.org>
parents: 13620
diff changeset
684 initcStringIO(void) {
6227
613f976a57b4 #Plug small memory leaks in constructors.
Guido van Rossum <guido@python.org>
parents: 6215
diff changeset
685 PyObject *m, *d, *v;
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
686
5280
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
687
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
688 /* Create the module and add the functions */
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
689 m = Py_InitModule4("cStringIO", IO_methods,
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
690 cStringIO_module_documentation,
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
691 (PyObject*)NULL,PYTHON_API_VERSION);
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
692
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
693 /* Add some symbolic constants to the module */
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
694 d = PyModule_GetDict(m);
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
695
4906
fce781b127b9 Jim's latest version.
Guido van Rossum <guido@python.org>
parents: 4598
diff changeset
696 /* Export C API */
5280
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
697 Itype.ob_type=&PyType_Type;
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
698 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
699 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
700 if (PyType_Ready(&Itype) < 0) return;
6227
613f976a57b4 #Plug small memory leaks in constructors.
Guido van Rossum <guido@python.org>
parents: 6215
diff changeset
701 PyDict_SetItemString(d,"cStringIO_CAPI",
613f976a57b4 #Plug small memory leaks in constructors.
Guido van Rossum <guido@python.org>
parents: 6215
diff changeset
702 v = PyCObject_FromVoidPtr(&CAPI,NULL));
613f976a57b4 #Plug small memory leaks in constructors.
Guido van Rossum <guido@python.org>
parents: 6215
diff changeset
703 Py_XDECREF(v);
5280
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
704
e8f8cf358054 Unknown changes by Jim Fulton.
Guido van Rossum <guido@python.org>
parents: 4957
diff changeset
705 /* Export Types */
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
706 PyDict_SetItemString(d,"InputType", (PyObject*)&Itype);
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
707 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
708
a5737dd96979 cPickle release 0.3 from Jim Fulton
Guido van Rossum <guido@python.org>
parents: 5315
diff changeset
709 /* 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
710 if (0) PycString_IMPORT;
4598
8fdb0539cfb1 Jim F's brainchild
Guido van Rossum <guido@python.org>
parents:
diff changeset
711 }