annotate Modules/xreadlinesmodule.c @ 32527:0da660e05e69 legacy-trunk

"#if WITH_THREAD" is incorrect; must be #ifdef instead; WITH_THREAD isn't always set to an integer value when it's defined.
author Tim Peters <tim.peters@gmail.com>
date Wed, 07 Jul 2004 20:42:07 +0000
parents fd5ef7003469
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
15778
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
1 #include "Python.h"
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
2
23832
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 21313
diff changeset
3 PyDoc_STRVAR(xreadlines_doc,
15778
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
4 "xreadlines(f)\n\
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
5 \n\
23832
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 21313
diff changeset
6 Return an xreadlines object for the file f.");
15778
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
7
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
8 typedef struct {
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
9 PyObject_HEAD
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
10 PyObject *file;
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
11 PyObject *lines;
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
12 int lineslen;
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
13 int lineno;
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
14 int abslineno;
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
15 } PyXReadlinesObject;
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
16
24280
1598a1e473e2 staticforward bites the dust.
Jeremy Hylton <jeremy@alum.mit.edu>
parents: 23832
diff changeset
17 static PyTypeObject XReadlinesObject_Type;
15778
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
18
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
19 static void
15819
79770ca15c5a Conform the new module to /the/ C style.
Thomas Wouters <thomas@python.org>
parents: 15791
diff changeset
20 xreadlines_dealloc(PyXReadlinesObject *op)
79770ca15c5a Conform the new module to /the/ C style.
Thomas Wouters <thomas@python.org>
parents: 15791
diff changeset
21 {
15778
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
22 Py_XDECREF(op->file);
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
23 Py_XDECREF(op->lines);
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
24 PyObject_DEL(op);
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
25 }
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
26
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
27 /* A larger chunk size doesn't seem to make a difference */
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
28 #define CHUNKSIZE 8192
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
29
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
30 static PyXReadlinesObject *
15819
79770ca15c5a Conform the new module to /the/ C style.
Thomas Wouters <thomas@python.org>
parents: 15791
diff changeset
31 newreadlinesobject(PyObject *file)
79770ca15c5a Conform the new module to /the/ C style.
Thomas Wouters <thomas@python.org>
parents: 15791
diff changeset
32 {
15778
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
33 PyXReadlinesObject *op;
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
34 op = PyObject_NEW(PyXReadlinesObject, &XReadlinesObject_Type);
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
35 if (op == NULL)
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
36 return NULL;
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
37 Py_XINCREF(file);
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
38 op->file = file;
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
39 op->lines = NULL;
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
40 op->abslineno = op->lineno = op->lineslen = 0;
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
41 return op;
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
42 }
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
43
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
44 static PyObject *
15819
79770ca15c5a Conform the new module to /the/ C style.
Thomas Wouters <thomas@python.org>
parents: 15791
diff changeset
45 xreadlines(PyObject *self, PyObject *args)
79770ca15c5a Conform the new module to /the/ C style.
Thomas Wouters <thomas@python.org>
parents: 15791
diff changeset
46 {
15778
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
47 PyObject *file;
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
48 PyXReadlinesObject *ret;
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
49
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
50 if (!PyArg_ParseTuple(args, "O:xreadlines", &file))
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
51 return NULL;
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
52 ret = newreadlinesobject(file);
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
53 return (PyObject*)ret;
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
54 }
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
55
15819
79770ca15c5a Conform the new module to /the/ C style.
Thomas Wouters <thomas@python.org>
parents: 15791
diff changeset
56 static PyObject *
17909
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
57 xreadlines_common(PyXReadlinesObject *a)
15819
79770ca15c5a Conform the new module to /the/ C style.
Thomas Wouters <thomas@python.org>
parents: 15791
diff changeset
58 {
15778
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
59 if (a->lineno >= a->lineslen) {
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
60 Py_XDECREF(a->lines);
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
61 a->lines = PyObject_CallMethod(a->file, "readlines", "(i)",
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
62 CHUNKSIZE);
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
63 if (a->lines == NULL)
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
64 return NULL;
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
65 a->lineno = 0;
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
66 if ((a->lineslen = PySequence_Size(a->lines)) < 0)
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
67 return NULL;
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
68 }
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
69 a->abslineno++;
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
70 return PySequence_GetItem(a->lines, a->lineno++);
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
71 }
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
72
17909
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
73 static PyObject *
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
74 xreadlines_item(PyXReadlinesObject *a, int i)
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
75 {
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
76 if (i != a->abslineno) {
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
77 PyErr_SetString(PyExc_RuntimeError,
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
78 "xreadlines object accessed out of order");
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
79 return NULL;
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
80 }
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
81 return xreadlines_common(a);
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
82 }
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
83
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
84 static PyObject *
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
85 xreadlines_iternext(PyXReadlinesObject *a)
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
86 {
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
87 PyObject *res;
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
88
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
89 res = xreadlines_common(a);
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
90 if (res == NULL && PyErr_ExceptionMatches(PyExc_IndexError))
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
91 PyErr_Clear();
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
92 return res;
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
93 }
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
94
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
95 static PyObject *
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
96 xreadlines_next(PyXReadlinesObject *a, PyObject *args)
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
97 {
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
98 PyObject *res;
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
99
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
100 if (!PyArg_ParseTuple(args, ""))
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
101 return NULL;
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
102 res = xreadlines_common(a);
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
103 if (res == NULL && PyErr_ExceptionMatches(PyExc_IndexError))
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
104 PyErr_SetObject(PyExc_StopIteration, Py_None);
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
105 return res;
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
106 }
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
107
23832
ed1ba37a46b7 Patch #568124: Add doc string macros.
Martin v. Löwis <martin@v.loewis.de>
parents: 21313
diff changeset
108 PyDoc_STRVAR(next_doc, "x.next() -> the next line or raise StopIteration");
17909
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
109
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
110 static PyMethodDef xreadlines_methods[] = {
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
111 {"next", (PyCFunction)xreadlines_next, METH_VARARGS, next_doc},
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
112 {NULL, NULL}
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
113 };
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
114
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
115 static PyObject *
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
116 xreadlines_getattr(PyObject *a, char *name)
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
117 {
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
118 return Py_FindMethod(xreadlines_methods, a, name);
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
119 }
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
120
15778
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
121 static PySequenceMethods xreadlines_as_sequence = {
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
122 0, /*sq_length*/
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
123 0, /*sq_concat*/
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
124 0, /*sq_repeat*/
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
125 (intargfunc)xreadlines_item, /*sq_item*/
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
126 };
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
127
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
128 static PyTypeObject XReadlinesObject_Type = {
16008
4c856a180458 SF Patch #103185, by jlt63: Some more standard modules cleanup for Cygwin
Guido van Rossum <guido@python.org>
parents: 15819
diff changeset
129 PyObject_HEAD_INIT(NULL)
15778
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
130 0,
21313
91dd223829c6 Patch supplied by Burton Radons for his own SF bug #487390: Modifying
Guido van Rossum <guido@python.org>
parents: 19578
diff changeset
131 "xreadlines.xreadlines",
19578
f6f93419bfb6 Remove bogus PyGC_HEAD_SIZE.
Neil Schemenauer <nascheme@enme.ucalgary.ca>
parents: 18754
diff changeset
132 sizeof(PyXReadlinesObject),
15778
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
133 0,
17909
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
134 (destructor)xreadlines_dealloc, /* tp_dealloc */
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
135 0, /* tp_print */
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
136 xreadlines_getattr, /* tp_getattr */
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
137 0, /* tp_setattr */
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
138 0, /* tp_compare */
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
139 0, /* tp_repr */
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
140 0, /* tp_as_number */
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
141 &xreadlines_as_sequence, /* tp_as_sequence */
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
142 0, /* tp_as_mapping */
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
143 0, /* tp_hash */
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
144 0, /* tp_call */
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
145 0, /* tp_str */
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
146 0, /* tp_getattro */
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
147 0, /* tp_setattro */
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
148 0, /* tp_as_buffer */
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
149 Py_TPFLAGS_DEFAULT, /* tp_flags */
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
150 0, /* tp_doc */
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
151 0, /* tp_traverse */
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
152 0, /* tp_clear */
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
153 0, /* tp_richcompare */
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
154 0, /* tp_weaklistoffset */
28320
fd5ef7003469 Renamed PyObject_GenericGetIter to PyObject_SelfIter
Raymond Hettinger <python@rcn.com>
parents: 28309
diff changeset
155 PyObject_SelfIter, /* tp_iter */
17909
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
156 (iternextfunc)xreadlines_iternext, /* tp_iternext */
15778
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
157 };
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
158
17909
77871c499215 Iterator support: made the xreadlines object its own iterator. This
Guido van Rossum <guido@python.org>
parents: 17214
diff changeset
159 static PyMethodDef xreadlines_functions[] = {
15778
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
160 {"xreadlines", xreadlines, METH_VARARGS, xreadlines_doc},
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
161 {NULL, NULL}
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
162 };
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
163
24471
f66b3a3509c7 Excise DL_EXPORT/DL_IMPORT from Modules/*. Required adding a prototype
Mark Hammond <mhammond@skippinet.com.au>
parents: 24280
diff changeset
164 PyMODINIT_FUNC
15778
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
165 initxreadlines(void)
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
166 {
16008
4c856a180458 SF Patch #103185, by jlt63: Some more standard modules cleanup for Cygwin
Guido van Rossum <guido@python.org>
parents: 15819
diff changeset
167 XReadlinesObject_Type.ob_type = &PyType_Type;
18754
3cd03a64c338 Make more warnings go away on the SGI compiler.
Fred Drake <fdrake@acm.org>
parents: 17909
diff changeset
168 Py_InitModule("xreadlines", xreadlines_functions);
24602
f5e29c7336dd Mark xreadlines deprecated. Don't use f.xreadlines() in test_iter.py.
Guido van Rossum <guido@python.org>
parents: 24471
diff changeset
169 PyErr_Warn(PyExc_DeprecationWarning,
f5e29c7336dd Mark xreadlines deprecated. Don't use f.xreadlines() in test_iter.py.
Guido van Rossum <guido@python.org>
parents: 24471
diff changeset
170 "xreadlines is deprecated; use 'for line in file'.");
15778
b5a37bf9d12d Jeff Epler's xreadlines module, with slight reformatting and some
Guido van Rossum <guido@python.org>
parents:
diff changeset
171 }