32
32
#include "string.h"
35
typedef struct {PyObject **p; int i; char *s; long n;} __Pyx_StringTabEntry; /*proto*/
35
typedef struct {PyObject **p; char *s;} __Pyx_InternTabEntry; /*proto*/
36
typedef struct {PyObject **p; char *s; long n;} __Pyx_StringTabEntry; /*proto*/
37
38
static PyObject *__pyx_m;
38
39
static PyObject *__pyx_b;
49
50
static void __Pyx_AddTraceback(char *funcname); /*proto*/
51
/* Declarations from bzrlib._chunks_to_lines_pyx */
54
/* Declarations from implementation of bzrlib._chunks_to_lines_pyx */
52
/* Declarations from _chunks_to_lines_pyx */
56
/* Implementation of _chunks_to_lines_pyx */
58
static PyObject *__pyx_k1p;
59
static PyObject *__pyx_k2p;
57
61
static char __pyx_k1[] = "chunk is not a string";
60
static PyObject *__pyx_k1p;
62
static __Pyx_StringTabEntry __pyx_string_tab[] = {
63
{&__pyx_k1p, 0, __pyx_k1, sizeof(__pyx_k1)},
69
/* Implementation of bzrlib._chunks_to_lines_pyx */
71
static PyObject *__pyx_f_6bzrlib_20_chunks_to_lines_pyx_chunks_to_lines(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
72
static char __pyx_doc_6bzrlib_20_chunks_to_lines_pyx_chunks_to_lines[] = "Re-split chunks into simple lines.\n\n Each entry in the result should contain a single newline at the end. Except\n for the last entry which may not have a final newline. If chunks is already\n a simple list of lines, we return it directly.\n\n :param chunks: An list/tuple of strings. If chunks is already a list of\n lines, then we will return it as-is.\n :return: A list of strings.\n ";
73
static PyObject *__pyx_f_6bzrlib_20_chunks_to_lines_pyx_chunks_to_lines(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
62
static char __pyx_k2[] = "chunk is not a string";
64
static PyObject *__pyx_f_20_chunks_to_lines_pyx_chunks_to_lines(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
65
static char __pyx_doc_20_chunks_to_lines_pyx_chunks_to_lines[] = "Re-split chunks into simple lines.\n\n Each entry in the result should contain a single newline at the end. Except\n for the last entry which may not have a final newline. If chunks is already\n a simple list of lines, we return it directly.\n\n :param chunks: An list/tuple of strings. If chunks is already a list of\n lines, then we will return it as-is.\n :return: A list of strings.\n ";
66
static PyObject *__pyx_f_20_chunks_to_lines_pyx_chunks_to_lines(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
74
67
PyObject *__pyx_v_chunks = 0;
75
68
char *__pyx_v_c_str;
76
69
char *__pyx_v_newline;
94
87
__pyx_v_tail = Py_None; Py_INCREF(Py_None);
95
88
__pyx_v_line = Py_None; Py_INCREF(Py_None);
97
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":60 */
90
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":60 */
98
91
__pyx_v_last_no_newline = 0;
100
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":61 */
93
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":61 */
101
94
__pyx_1 = PyObject_GetIter(__pyx_v_chunks); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 61; goto __pyx_L1;}
103
96
__pyx_2 = PyIter_Next(__pyx_1);
120
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":70 */
113
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":70 */
121
114
__pyx_3 = (!PyString_CheckExact(__pyx_v_chunk));
123
116
__pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 71; goto __pyx_L1;}
135
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":72 */
128
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":72 */
136
129
__pyx_v_the_len = PyString_GET_SIZE(__pyx_v_chunk);
138
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":73 */
131
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":73 */
139
132
__pyx_3 = (__pyx_v_the_len == 0);
146
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":76 */
139
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":76 */
147
140
__pyx_v_c_str = PyString_AS_STRING(__pyx_v_chunk);
149
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":77 */
142
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":77 */
150
143
__pyx_v_c_last = ((__pyx_v_c_str + __pyx_v_the_len) - 1);
152
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":78 */
145
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":78 */
153
146
__pyx_v_newline = ((char *)memchr(__pyx_v_c_str,'\n',__pyx_v_the_len));
155
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":79 */
148
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":79 */
156
149
__pyx_3 = (__pyx_v_newline != __pyx_v_c_last);
158
151
__pyx_3 = (__pyx_v_newline == NULL);
178
171
Py_DECREF(__pyx_1); __pyx_1 = 0;
180
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":91 */
173
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":91 */
181
174
__pyx_2 = PyList_New(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 91; goto __pyx_L1;}
182
175
Py_DECREF(__pyx_v_lines);
183
176
__pyx_v_lines = __pyx_2;
186
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":92 */
179
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":92 */
187
180
Py_INCREF(Py_None);
188
181
Py_DECREF(__pyx_v_tail);
189
182
__pyx_v_tail = Py_None;
191
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":93 */
184
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":93 */
192
185
__pyx_4 = PyObject_GetIter(__pyx_v_chunks); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 93; goto __pyx_L1;}
194
187
__pyx_1 = PyIter_Next(__pyx_4);
200
193
__pyx_v_chunk = __pyx_1;
203
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":94 */
196
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":94 */
204
197
__pyx_3 = __pyx_v_tail != Py_None;
207
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":95 */
200
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":95 */
208
201
__pyx_2 = PyNumber_Add(__pyx_v_tail, __pyx_v_chunk); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 95; goto __pyx_L1;}
209
202
Py_DECREF(__pyx_v_chunk);
210
203
__pyx_v_chunk = __pyx_2;
213
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":96 */
206
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":96 */
214
207
Py_INCREF(Py_None);
215
208
Py_DECREF(__pyx_v_tail);
216
209
__pyx_v_tail = Py_None;
221
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":97 */
214
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":97 */
222
215
__pyx_3 = (!PyString_CheckExact(__pyx_v_chunk));
224
217
__pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; goto __pyx_L1;}
225
Py_INCREF(__pyx_k1p);
226
PyTuple_SET_ITEM(__pyx_1, 0, __pyx_k1p);
218
Py_INCREF(__pyx_k2p);
219
PyTuple_SET_ITEM(__pyx_1, 0, __pyx_k2p);
227
220
__pyx_2 = PyObject_CallObject(PyExc_TypeError, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; goto __pyx_L1;}
228
221
Py_DECREF(__pyx_1); __pyx_1 = 0;
229
222
__Pyx_Raise(__pyx_2, 0, 0);
236
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":99 */
229
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":99 */
237
230
__pyx_v_the_len = PyString_GET_SIZE(__pyx_v_chunk);
239
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":100 */
232
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":100 */
240
233
__pyx_3 = (__pyx_v_the_len == 0);
247
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":104 */
240
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":104 */
248
241
__pyx_v_c_str = PyString_AS_STRING(__pyx_v_chunk);
250
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":105 */
243
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":105 */
251
244
__pyx_v_c_last = ((__pyx_v_c_str + __pyx_v_the_len) - 1);
253
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":106 */
246
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":106 */
254
247
__pyx_v_newline = ((char *)memchr(__pyx_v_c_str,'\n',__pyx_v_the_len));
256
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":107 */
249
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":107 */
257
250
__pyx_3 = (__pyx_v_newline == __pyx_v_c_last);
259
252
__pyx_3 = PyList_Append(__pyx_v_lines,__pyx_v_chunk); if (__pyx_3 == (-1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; goto __pyx_L1;}
271
264
__pyx_3 = (__pyx_v_newline != NULL);
272
265
if (!__pyx_3) break;
274
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":118 */
267
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":118 */
275
268
__pyx_1 = PyString_FromStringAndSize(__pyx_v_c_str,((__pyx_v_newline - __pyx_v_c_str) + 1)); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; goto __pyx_L1;}
276
269
Py_DECREF(__pyx_v_line);
277
270
__pyx_v_line = __pyx_1;
280
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":119 */
273
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":119 */
281
274
__pyx_3 = PyList_Append(__pyx_v_lines,__pyx_v_line); if (__pyx_3 == (-1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 119; goto __pyx_L1;}
283
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":120 */
276
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":120 */
284
277
__pyx_v_c_str = (__pyx_v_newline + 1);
286
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":121 */
279
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":121 */
287
280
__pyx_3 = (__pyx_v_c_str > __pyx_v_c_last);
294
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":123 */
287
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":123 */
295
288
__pyx_v_the_len = ((__pyx_v_c_last - __pyx_v_c_str) + 1);
297
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":124 */
290
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":124 */
298
291
__pyx_v_newline = ((char *)memchr(__pyx_v_c_str,'\n',__pyx_v_the_len));
300
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":125 */
293
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":125 */
301
294
__pyx_3 = (__pyx_v_newline == NULL);
304
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":126 */
297
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":126 */
305
298
__pyx_2 = PyString_FromStringAndSize(__pyx_v_c_str,__pyx_v_the_len); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; goto __pyx_L1;}
306
299
Py_DECREF(__pyx_v_tail);
307
300
__pyx_v_tail = __pyx_2;
310
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":127 */
303
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":127 */
321
314
Py_DECREF(__pyx_4); __pyx_4 = 0;
323
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":128 */
316
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":128 */
324
317
__pyx_3 = __pyx_v_tail != Py_None;
326
319
__pyx_3 = PyList_Append(__pyx_v_lines,__pyx_v_tail); if (__pyx_3 == (-1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; goto __pyx_L1;}
346
static __Pyx_StringTabEntry __pyx_string_tab[] = {
347
{&__pyx_k1p, __pyx_k1, sizeof(__pyx_k1)},
348
{&__pyx_k2p, __pyx_k2, sizeof(__pyx_k2)},
353
352
static struct PyMethodDef __pyx_methods[] = {
354
{"chunks_to_lines", (PyCFunction)__pyx_f_6bzrlib_20_chunks_to_lines_pyx_chunks_to_lines, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6bzrlib_20_chunks_to_lines_pyx_chunks_to_lines},
353
{"chunks_to_lines", (PyCFunction)__pyx_f_20_chunks_to_lines_pyx_chunks_to_lines, METH_VARARGS|METH_KEYWORDS, __pyx_doc_20_chunks_to_lines_pyx_chunks_to_lines},
368
367
if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 18; goto __pyx_L1;};
369
368
if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 18; goto __pyx_L1;};
371
/* "/tmp/prepare-1.13.1/bzrlib/_chunks_to_lines_pyx.pyx":42 */
370
/* "/home/jml/src/bzr/bzr.1.16/bzrlib/_chunks_to_lines_pyx.pyx":42 */
374
__Pyx_AddTraceback("bzrlib._chunks_to_lines_pyx");
373
__Pyx_AddTraceback("_chunks_to_lines_pyx");
377
376
static char *__pyx_filenames[] = {