14
36
typedef struct {PyObject **p; char *s;} __Pyx_InternTabEntry; /*proto*/
15
37
typedef struct {PyObject **p; char *s; long n;} __Pyx_StringTabEntry; /*proto*/
16
static PyObject *__Pyx_UnpackItem(PyObject *, int); /*proto*/
17
static int __Pyx_EndUnpack(PyObject *, int); /*proto*/
18
static int __Pyx_PrintItem(PyObject *); /*proto*/
19
static int __Pyx_PrintNewline(void); /*proto*/
20
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
21
static void __Pyx_ReRaise(void); /*proto*/
22
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list); /*proto*/
23
static PyObject *__Pyx_GetExcValue(void); /*proto*/
24
static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, char *name); /*proto*/
25
static int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /*proto*/
26
static int __Pyx_GetStarArgs(PyObject **args, PyObject **kwds, char *kwd_list[], int nargs, PyObject **args2, PyObject **kwds2); /*proto*/
27
static void __Pyx_WriteUnraisable(char *name); /*proto*/
28
static void __Pyx_AddTraceback(char *funcname); /*proto*/
29
static PyTypeObject *__Pyx_ImportType(char *module_name, char *class_name, long size); /*proto*/
30
static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/
31
static int __Pyx_GetVtable(PyObject *dict, void *vtabptr); /*proto*/
32
static PyObject *__Pyx_CreateClass(PyObject *bases, PyObject *dict, PyObject *name, char *modname); /*proto*/
33
static int __Pyx_InternStrings(__Pyx_InternTabEntry *t); /*proto*/
34
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/
35
static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/
37
39
static PyObject *__pyx_m;
38
40
static PyObject *__pyx_b;
39
41
static int __pyx_lineno;
40
42
static char *__pyx_filename;
41
staticforward char **__pyx_f;
43
static char **__pyx_f;
43
45
static char __pyx_mdoc[] = "Wrapper for readdir which grabs file type from d_type.";
47
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list); /*proto*/
49
static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/
51
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
53
static int __Pyx_InternStrings(__Pyx_InternTabEntry *t); /*proto*/
55
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/
57
static void __Pyx_AddTraceback(char *funcname); /*proto*/
45
59
/* Declarations from readdir */
48
63
/* Implementation of readdir */
50
static char (__pyx_k11[]) = ".";
65
static char __pyx_k11[] = ".";
52
67
static PyObject *__pyx_n_os;
53
68
static PyObject *__pyx_n_sys;
54
69
static PyObject *__pyx_n__directory;
70
static PyObject *__pyx_n_directory;
55
71
static PyObject *__pyx_n__chardev;
72
static PyObject *__pyx_n_chardev;
56
73
static PyObject *__pyx_n__block;
74
static PyObject *__pyx_n_block;
57
75
static PyObject *__pyx_n__file;
76
static PyObject *__pyx_n_file;
58
77
static PyObject *__pyx_n__fifo;
78
static PyObject *__pyx_n_fifo;
59
79
static PyObject *__pyx_n__symlink;
80
static PyObject *__pyx_n_symlink;
60
81
static PyObject *__pyx_n__socket;
82
static PyObject *__pyx_n_socket;
61
83
static PyObject *__pyx_n__unknown;
62
static PyObject *__pyx_n_dot;
63
static PyObject *__pyx_n_read_dir;
64
static PyObject *__pyx_n_directory;
65
static PyObject *__pyx_n_chardev;
66
static PyObject *__pyx_n_block;
67
static PyObject *__pyx_n_file;
68
static PyObject *__pyx_n_fifo;
69
static PyObject *__pyx_n_symlink;
70
static PyObject *__pyx_n_socket;
71
84
static PyObject *__pyx_n_unknown;
72
85
static PyObject *__pyx_n_ord;
86
static PyObject *__pyx_n_dot;
74
88
static PyObject *__pyx_k11p;
90
static PyObject *__pyx_n_OSError;
76
91
static PyObject *__pyx_n_append;
77
static PyObject *__pyx_n_OSError;
79
94
static PyObject *__pyx_f_7readdir_read_dir(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
80
95
static char __pyx_doc_7readdir_read_dir[] = "Like os.listdir, this reads a directories contents.\n\n :param path: the directory to list.\n :return: a list of (basename, kind) tuples.\n ";
81
96
static PyObject *__pyx_f_7readdir_read_dir(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
82
97
PyObject *__pyx_v_path = 0;
83
DIR (*__pyx_v_the_dir);
84
dirent (*__pyx_v_entry);
99
dirent *__pyx_v_entry;
100
dirent __pyx_v_sentinel;
86
102
PyObject *__pyx_v_result;
87
103
PyObject *__pyx_v_type;
88
104
PyObject *__pyx_r;
91
107
PyObject *__pyx_3 = 0;
108
PyObject *__pyx_4 = 0;
93
109
PyObject *__pyx_5 = 0;
95
PyObject *__pyx_7 = 0;
96
PyObject *__pyx_8 = 0;
110
PyObject *__pyx_6 = 0;
97
112
static char *__pyx_argnames[] = {"path",0};
98
113
if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_path)) return 0;
99
114
Py_INCREF(__pyx_v_path);
100
__pyx_v_result = Py_None; Py_INCREF(__pyx_v_result);
101
__pyx_v_type = Py_None; Py_INCREF(__pyx_v_type);
103
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":81 */
104
__pyx_1 = PyString_AsString(__pyx_v_path); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; goto __pyx_L1;}
105
__pyx_2 = opendir(__pyx_1); if (__pyx_2 == 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 81; goto __pyx_L1;}
106
__pyx_v_the_dir = __pyx_2;
115
__pyx_v_result = Py_None; Py_INCREF(Py_None);
116
__pyx_v_type = Py_None; Py_INCREF(Py_None);
108
118
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":82 */
109
__pyx_3 = PyList_New(0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; goto __pyx_L1;}
110
Py_DECREF(__pyx_v_result);
111
__pyx_v_result = __pyx_3;
119
__pyx_1 = PyString_AsString(__pyx_v_path); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; goto __pyx_L1;}
120
__pyx_v_the_dir = opendir(__pyx_1);
114
122
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":83 */
123
__pyx_2 = (NULL == __pyx_v_the_dir);
125
__pyx_3 = __Pyx_GetName(__pyx_b, __pyx_n_OSError); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; goto __pyx_L1;}
126
__pyx_4 = PyInt_FromLong(errno); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; goto __pyx_L1;}
127
__pyx_5 = PyString_FromString(strerror(errno)); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; goto __pyx_L1;}
128
__pyx_6 = PyTuple_New(2); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; goto __pyx_L1;}
129
PyTuple_SET_ITEM(__pyx_6, 0, __pyx_4);
130
PyTuple_SET_ITEM(__pyx_6, 1, __pyx_5);
133
__pyx_4 = PyObject_CallObject(__pyx_3, __pyx_6); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; goto __pyx_L1;}
134
Py_DECREF(__pyx_3); __pyx_3 = 0;
135
Py_DECREF(__pyx_6); __pyx_6 = 0;
136
__Pyx_Raise(__pyx_4, 0, 0);
137
Py_DECREF(__pyx_4); __pyx_4 = 0;
138
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 84; goto __pyx_L1;}
143
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":85 */
144
__pyx_5 = PyList_New(0); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; goto __pyx_L1;}
145
Py_DECREF(__pyx_v_result);
146
__pyx_v_result = __pyx_5;
149
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":86 */
117
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":84 */
118
__pyx_v_entry = readdir(__pyx_v_the_dir);
152
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":87 */
153
__pyx_v_entry = (&__pyx_v_sentinel);
120
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":85 */
155
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":88 */
123
__pyx_4 = (__pyx_v_entry != 0);
126
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":86 */
157
__pyx_2 = (__pyx_v_entry != NULL);
160
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":89 */
161
__pyx_v_entry = readdir(__pyx_v_the_dir);
163
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":90 */
164
__pyx_2 = (__pyx_v_entry == NULL);
166
__pyx_2 = (errno == EAGAIN);
171
__pyx_2 = (errno != ENOTDIR);
173
__pyx_2 = (errno != ENOENT);
175
__pyx_2 = (errno != 0);
179
__pyx_3 = __Pyx_GetName(__pyx_b, __pyx_n_OSError); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; goto __pyx_L4;}
180
__pyx_6 = PyInt_FromLong(errno); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; goto __pyx_L4;}
181
__pyx_4 = PyString_FromString(strerror(errno)); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; goto __pyx_L4;}
182
__pyx_5 = PyTuple_New(2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; goto __pyx_L4;}
183
PyTuple_SET_ITEM(__pyx_5, 0, __pyx_6);
184
PyTuple_SET_ITEM(__pyx_5, 1, __pyx_4);
187
__pyx_6 = PyObject_CallObject(__pyx_3, __pyx_5); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; goto __pyx_L4;}
188
Py_DECREF(__pyx_3); __pyx_3 = 0;
189
Py_DECREF(__pyx_5); __pyx_5 = 0;
190
__Pyx_Raise(__pyx_6, 0, 0);
191
Py_DECREF(__pyx_6); __pyx_6 = 0;
192
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; goto __pyx_L4;}
203
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":104 */
127
204
__pyx_v_name = __pyx_v_entry->d_name;
129
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":87 */
130
__pyx_3 = PyInt_FromLong((__pyx_v_name[0])); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; goto __pyx_L3;}
131
__pyx_5 = __Pyx_GetName(__pyx_m, __pyx_n_dot); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; goto __pyx_L3;}
132
if (PyObject_Cmp(__pyx_3, __pyx_5, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; goto __pyx_L3;}
133
__pyx_4 = __pyx_4 == 0;
206
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":105 */
207
__pyx_4 = PyInt_FromLong((__pyx_v_name[0])); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; goto __pyx_L4;}
208
__pyx_3 = __Pyx_GetName(__pyx_m, __pyx_n_dot); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; goto __pyx_L4;}
209
if (PyObject_Cmp(__pyx_4, __pyx_3, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 105; goto __pyx_L4;}
210
__pyx_2 = __pyx_2 == 0;
211
Py_DECREF(__pyx_4); __pyx_4 = 0;
134
212
Py_DECREF(__pyx_3); __pyx_3 = 0;
135
Py_DECREF(__pyx_5); __pyx_5 = 0;
137
__pyx_4 = ((__pyx_v_name[1]) == 0);
139
__pyx_3 = PyInt_FromLong((__pyx_v_name[1])); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; goto __pyx_L3;}
140
__pyx_5 = __Pyx_GetName(__pyx_m, __pyx_n_dot); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; goto __pyx_L3;}
141
if (PyObject_Cmp(__pyx_3, __pyx_5, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; goto __pyx_L3;}
142
__pyx_4 = __pyx_4 == 0;
143
Py_DECREF(__pyx_3); __pyx_3 = 0;
214
__pyx_2 = ((__pyx_v_name[1]) == 0);
216
__pyx_5 = PyInt_FromLong((__pyx_v_name[1])); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; goto __pyx_L4;}
217
__pyx_6 = __Pyx_GetName(__pyx_m, __pyx_n_dot); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; goto __pyx_L4;}
218
if (PyObject_Cmp(__pyx_5, __pyx_6, &__pyx_2) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; goto __pyx_L4;}
219
__pyx_2 = __pyx_2 == 0;
144
220
Py_DECREF(__pyx_5); __pyx_5 = 0;
146
__pyx_4 = ((__pyx_v_name[2]) == 0);
221
Py_DECREF(__pyx_6); __pyx_6 = 0;
223
__pyx_2 = ((__pyx_v_name[2]) == 0);
150
__pyx_6 = (!__pyx_4);
153
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":91 */
154
__pyx_4 = (__pyx_v_entry->d_type == DT_UNKNOWN);
157
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":92 */
158
__pyx_3 = __Pyx_GetName(__pyx_m, __pyx_n__unknown); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 92; goto __pyx_L3;}
159
Py_DECREF(__pyx_v_type);
160
__pyx_v_type = __pyx_3;
164
__pyx_6 = (__pyx_v_entry->d_type == DT_REG);
167
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":94 */
168
__pyx_5 = __Pyx_GetName(__pyx_m, __pyx_n__file); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 94; goto __pyx_L3;}
169
Py_DECREF(__pyx_v_type);
170
__pyx_v_type = __pyx_5;
174
__pyx_4 = (__pyx_v_entry->d_type == DT_DIR);
177
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":96 */
178
__pyx_3 = __Pyx_GetName(__pyx_m, __pyx_n__directory); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 96; goto __pyx_L3;}
179
Py_DECREF(__pyx_v_type);
180
__pyx_v_type = __pyx_3;
184
__pyx_6 = (__pyx_v_entry->d_type == DT_FIFO);
187
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":98 */
188
__pyx_5 = __Pyx_GetName(__pyx_m, __pyx_n__fifo); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 98; goto __pyx_L3;}
189
Py_DECREF(__pyx_v_type);
190
__pyx_v_type = __pyx_5;
194
__pyx_4 = (__pyx_v_entry->d_type == DT_SOCK);
197
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":100 */
198
__pyx_3 = __Pyx_GetName(__pyx_m, __pyx_n__socket); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 100; goto __pyx_L3;}
199
Py_DECREF(__pyx_v_type);
200
__pyx_v_type = __pyx_3;
204
__pyx_6 = (__pyx_v_entry->d_type == DT_CHR);
207
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":102 */
208
__pyx_5 = __Pyx_GetName(__pyx_m, __pyx_n__chardev); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 102; goto __pyx_L3;}
209
Py_DECREF(__pyx_v_type);
210
__pyx_v_type = __pyx_5;
214
__pyx_4 = (__pyx_v_entry->d_type == DT_BLK);
217
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":104 */
218
__pyx_3 = __Pyx_GetName(__pyx_m, __pyx_n__block); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 104; goto __pyx_L3;}
219
Py_DECREF(__pyx_v_type);
220
__pyx_v_type = __pyx_3;
227
__pyx_7 = (!__pyx_2);
230
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":109 */
231
__pyx_2 = (__pyx_v_entry->d_type == DT_UNKNOWN);
233
__pyx_4 = __Pyx_GetName(__pyx_m, __pyx_n__unknown); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; goto __pyx_L4;}
234
Py_DECREF(__pyx_v_type);
235
__pyx_v_type = __pyx_4;
239
__pyx_7 = (__pyx_v_entry->d_type == DT_REG);
241
__pyx_3 = __Pyx_GetName(__pyx_m, __pyx_n__file); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; goto __pyx_L4;}
242
Py_DECREF(__pyx_v_type);
243
__pyx_v_type = __pyx_3;
247
__pyx_2 = (__pyx_v_entry->d_type == DT_DIR);
249
__pyx_5 = __Pyx_GetName(__pyx_m, __pyx_n__directory); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; goto __pyx_L4;}
250
Py_DECREF(__pyx_v_type);
251
__pyx_v_type = __pyx_5;
255
__pyx_7 = (__pyx_v_entry->d_type == DT_FIFO);
257
__pyx_6 = __Pyx_GetName(__pyx_m, __pyx_n__fifo); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; goto __pyx_L4;}
258
Py_DECREF(__pyx_v_type);
259
__pyx_v_type = __pyx_6;
263
__pyx_2 = (__pyx_v_entry->d_type == DT_SOCK);
265
__pyx_4 = __Pyx_GetName(__pyx_m, __pyx_n__socket); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 118; goto __pyx_L4;}
266
Py_DECREF(__pyx_v_type);
267
__pyx_v_type = __pyx_4;
271
__pyx_7 = (__pyx_v_entry->d_type == DT_CHR);
273
__pyx_3 = __Pyx_GetName(__pyx_m, __pyx_n__chardev); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 120; goto __pyx_L4;}
274
Py_DECREF(__pyx_v_type);
275
__pyx_v_type = __pyx_3;
279
__pyx_2 = (__pyx_v_entry->d_type == DT_BLK);
281
__pyx_5 = __Pyx_GetName(__pyx_m, __pyx_n__block); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 122; goto __pyx_L4;}
282
Py_DECREF(__pyx_v_type);
283
__pyx_v_type = __pyx_5;
226
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":106 */
227
__pyx_5 = __Pyx_GetName(__pyx_m, __pyx_n__unknown); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 106; goto __pyx_L3;}
288
__pyx_6 = __Pyx_GetName(__pyx_m, __pyx_n__unknown); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 124; goto __pyx_L4;}
228
289
Py_DECREF(__pyx_v_type);
229
__pyx_v_type = __pyx_5;
290
__pyx_v_type = __pyx_6;
234
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":107 */
235
__pyx_3 = PyObject_GetAttr(__pyx_v_result, __pyx_n_append); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; goto __pyx_L3;}
236
__pyx_5 = PyString_FromString(__pyx_v_entry->d_name); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; goto __pyx_L3;}
237
__pyx_7 = PyTuple_New(2); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; goto __pyx_L3;}
238
PyTuple_SET_ITEM(__pyx_7, 0, __pyx_5);
239
Py_INCREF(__pyx_v_type);
240
PyTuple_SET_ITEM(__pyx_7, 1, __pyx_v_type);
295
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":126 */
296
__pyx_4 = PyObject_GetAttr(__pyx_v_result, __pyx_n_append); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; goto __pyx_L4;}
297
__pyx_3 = PyString_FromString(__pyx_v_entry->d_name); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; goto __pyx_L4;}
298
__pyx_5 = PyTuple_New(2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; goto __pyx_L4;}
299
PyTuple_SET_ITEM(__pyx_5, 0, __pyx_3);
300
Py_INCREF(__pyx_n_unknown);
301
PyTuple_SET_ITEM(__pyx_5, 1, __pyx_n_unknown);
303
__pyx_6 = PyTuple_New(1); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; goto __pyx_L4;}
304
PyTuple_SET_ITEM(__pyx_6, 0, __pyx_5);
242
__pyx_5 = PyTuple_New(1); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; goto __pyx_L3;}
243
PyTuple_SET_ITEM(__pyx_5, 0, __pyx_7);
245
__pyx_7 = PyObject_CallObject(__pyx_3, __pyx_5); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 107; goto __pyx_L3;}
306
__pyx_3 = PyObject_CallObject(__pyx_4, __pyx_6); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 126; goto __pyx_L4;}
307
Py_DECREF(__pyx_4); __pyx_4 = 0;
308
Py_DECREF(__pyx_6); __pyx_6 = 0;
246
309
Py_DECREF(__pyx_3); __pyx_3 = 0;
247
Py_DECREF(__pyx_5); __pyx_5 = 0;
248
Py_DECREF(__pyx_7); __pyx_7 = 0;
253
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":108 */
254
__pyx_v_entry = readdir(__pyx_v_the_dir);
258
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":109 */
259
__pyx_6 = (__pyx_v_entry == 0);
261
__pyx_6 = (errno != ENOENT);
263
__pyx_6 = (errno != 0);
268
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":110 */
269
__pyx_3 = __Pyx_GetName(__pyx_b, __pyx_n_OSError); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; goto __pyx_L3;}
270
__pyx_5 = PyInt_FromLong(errno); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; goto __pyx_L3;}
271
__pyx_7 = PyString_FromString(strerror(errno)); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; goto __pyx_L3;}
272
__pyx_8 = PyTuple_New(2); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; goto __pyx_L3;}
273
PyTuple_SET_ITEM(__pyx_8, 0, __pyx_5);
274
PyTuple_SET_ITEM(__pyx_8, 1, __pyx_7);
277
__pyx_5 = PyObject_CallObject(__pyx_3, __pyx_8); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; goto __pyx_L3;}
278
Py_DECREF(__pyx_3); __pyx_3 = 0;
279
Py_DECREF(__pyx_8); __pyx_8 = 0;
280
__Pyx_Raise(__pyx_5, 0, 0);
281
Py_DECREF(__pyx_5); __pyx_5 = 0;
282
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; goto __pyx_L3;}
289
__pyx_why = 0; goto __pyx_L4;
290
__pyx_L2: __pyx_why = 3; goto __pyx_L4;
318
PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
319
int __pyx_exc_lineno;
320
__pyx_why = 0; goto __pyx_L5;
293
Py_XDECREF(__pyx_7); __pyx_7 = 0;
323
Py_XDECREF(__pyx_5); __pyx_5 = 0;
324
Py_XDECREF(__pyx_4); __pyx_4 = 0;
325
Py_XDECREF(__pyx_6); __pyx_6 = 0;
294
326
Py_XDECREF(__pyx_3); __pyx_3 = 0;
295
Py_XDECREF(__pyx_8); __pyx_8 = 0;
296
Py_XDECREF(__pyx_5); __pyx_5 = 0;
297
PyErr_Fetch(&__pyx_7, &__pyx_3, &__pyx_8);
298
__pyx_4 = __pyx_lineno;
303
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":112 */
304
__pyx_6 = closedir(__pyx_v_the_dir); if (__pyx_6 == -1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; goto __pyx_L1;}
327
PyErr_Fetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
328
__pyx_exc_lineno = __pyx_lineno;
332
__pyx_7 = ((-1) == closedir(__pyx_v_the_dir));
334
__pyx_5 = __Pyx_GetName(__pyx_b, __pyx_n_OSError); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; goto __pyx_L12;}
335
__pyx_4 = PyInt_FromLong(errno); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; goto __pyx_L12;}
336
__pyx_6 = PyString_FromString(strerror(errno)); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; goto __pyx_L12;}
337
__pyx_3 = PyTuple_New(2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; goto __pyx_L12;}
338
PyTuple_SET_ITEM(__pyx_3, 0, __pyx_4);
339
PyTuple_SET_ITEM(__pyx_3, 1, __pyx_6);
342
__pyx_4 = PyObject_CallObject(__pyx_5, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; goto __pyx_L12;}
343
Py_DECREF(__pyx_5); __pyx_5 = 0;
344
Py_DECREF(__pyx_3); __pyx_3 = 0;
345
__Pyx_Raise(__pyx_4, 0, 0);
346
Py_DECREF(__pyx_4); __pyx_4 = 0;
347
{__pyx_filename = __pyx_f[0]; __pyx_lineno = 129; goto __pyx_L12;}
353
if (__pyx_why == 4) {
354
Py_XDECREF(__pyx_exc_type);
355
Py_XDECREF(__pyx_exc_value);
356
Py_XDECREF(__pyx_exc_tb);
305
360
switch (__pyx_why) {
306
case 3: goto __pyx_L0;
308
PyErr_Restore(__pyx_7, __pyx_3, __pyx_8);
309
__pyx_lineno = __pyx_4;
362
PyErr_Restore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
363
__pyx_lineno = __pyx_exc_lineno;
318
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":113 */
372
/* "/home/robertc/source/baz/readdir/bzrlib/readdir.pyx":130 */
319
373
Py_INCREF(__pyx_v_result);
320
374
__pyx_r = __pyx_v_result;
323
__pyx_r = Py_None; Py_INCREF(__pyx_r);
377
__pyx_r = Py_None; Py_INCREF(Py_None);
326
380
Py_XDECREF(__pyx_3);
327
382
Py_XDECREF(__pyx_5);
330
384
__Pyx_AddTraceback("readdir.read_dir");