~ubuntu-branches/ubuntu/karmic/bzr/karmic-proposed

« back to all changes in this revision

Viewing changes to bzrlib/_readdir_pyx.c

  • Committer: Bazaar Package Importer
  • Author(s): Jelmer Vernooij
  • Date: 2009-05-29 10:19:30 UTC
  • mfrom: (1.1.54 upstream)
  • Revision ID: james.westby@ubuntu.com-20090529101930-ct40yqwo5uts4djz
Tags: 1.15-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Generated by Pyrex 0.9.6.4 on Sat May 16 02:24:52 2009 */
2
 
 
3
 
#define PY_SSIZE_T_CLEAN
4
 
#include "Python.h"
5
 
#include "structmember.h"
6
 
#ifndef PY_LONG_LONG
7
 
  #define PY_LONG_LONG LONG_LONG
8
 
#endif
9
 
#if PY_VERSION_HEX < 0x02050000
10
 
  typedef int Py_ssize_t;
11
 
  #define PY_SSIZE_T_MAX INT_MAX
12
 
  #define PY_SSIZE_T_MIN INT_MIN
13
 
  #define PyInt_FromSsize_t(z) PyInt_FromLong(z)
14
 
  #define PyInt_AsSsize_t(o)    PyInt_AsLong(o)
15
 
#endif
16
 
#ifndef WIN32
17
 
  #ifndef __stdcall
18
 
    #define __stdcall
19
 
  #endif
20
 
  #ifndef __cdecl
21
 
    #define __cdecl
22
 
  #endif
23
 
#endif
24
 
#ifdef __cplusplus
25
 
#define __PYX_EXTERN_C extern "C"
26
 
#else
27
 
#define __PYX_EXTERN_C extern
28
 
#endif
29
 
#include <math.h>
30
 
#include "python-compat.h"
31
 
#include "errno.h"
32
 
#include "unistd.h"
33
 
#include "stdlib.h"
34
 
#include "sys/types.h"
35
 
#include "sys/stat.h"
36
 
#include "fcntl.h"
37
 
#include "dirent.h"
38
 
#include "readdir.h"
39
 
 
40
 
 
41
 
typedef struct {PyObject **p; char *s;} __Pyx_InternTabEntry; /*proto*/
42
 
typedef struct {PyObject **p; char *s; long n;} __Pyx_StringTabEntry; /*proto*/
43
 
 
44
 
static PyObject *__pyx_m;
45
 
static PyObject *__pyx_b;
46
 
static int __pyx_lineno;
47
 
static char *__pyx_filename;
48
 
static char **__pyx_f;
49
 
 
50
 
static char __pyx_mdoc[] = "Wrapper for readdir which returns files ordered by inode.";
51
 
 
52
 
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list); /*proto*/
53
 
 
54
 
static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/
55
 
 
56
 
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
57
 
 
58
 
static int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /*proto*/
59
 
 
60
 
static int __Pyx_InternStrings(__Pyx_InternTabEntry *t); /*proto*/
61
 
 
62
 
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/
63
 
 
64
 
static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/
65
 
 
66
 
static void __Pyx_AddTraceback(char *funcname); /*proto*/
67
 
 
68
 
/* Declarations from _readdir_pyx */
69
 
 
70
 
struct __pyx_obj_12_readdir_pyx__Stat {
71
 
  PyObject_HEAD
72
 
  struct stat _st;
73
 
};
74
 
 
75
 
struct __pyx_obj_12_readdir_pyx_UTF8DirReader {
76
 
  PyObject_HEAD
77
 
  struct __pyx_vtabstruct_12_readdir_pyx_UTF8DirReader *__pyx_vtab;
78
 
  PyObject *_safe_utf8;
79
 
  PyObject *_directory;
80
 
  PyObject *_chardev;
81
 
  PyObject *_block;
82
 
  PyObject *_file;
83
 
  PyObject *_fifo;
84
 
  PyObject *_symlink;
85
 
  PyObject *_socket;
86
 
  PyObject *_unknown;
87
 
};
88
 
 
89
 
 
90
 
 
91
 
struct __pyx_vtabstruct_12_readdir_pyx_UTF8DirReader {
92
 
  PyObject *(*_kind_from_mode)(struct __pyx_obj_12_readdir_pyx_UTF8DirReader *,int);
93
 
};
94
 
static struct __pyx_vtabstruct_12_readdir_pyx_UTF8DirReader *__pyx_vtabptr_12_readdir_pyx_UTF8DirReader;
95
 
 
96
 
static PyTypeObject *__pyx_ptype_12_readdir_pyx__Stat = 0;
97
 
static PyTypeObject *__pyx_ptype_12_readdir_pyx_UTF8DirReader = 0;
98
 
static PyObject *__pyx_k15;
99
 
static PyObject *__pyx_f_12_readdir_pyx__read_dir(PyObject *); /*proto*/
100
 
 
101
 
 
102
 
/* Implementation of _readdir_pyx */
103
 
 
104
 
static char __pyx_k14[] = "";
105
 
 
106
 
static PyObject *__pyx_n_os;
107
 
static PyObject *__pyx_n_sys;
108
 
static PyObject *__pyx_n__directory;
109
 
static PyObject *__pyx_n_directory;
110
 
static PyObject *__pyx_n__chardev;
111
 
static PyObject *__pyx_n_chardev;
112
 
static PyObject *__pyx_n__block;
113
 
static PyObject *__pyx_n_block;
114
 
static PyObject *__pyx_n__file;
115
 
static PyObject *__pyx_n_file;
116
 
static PyObject *__pyx_n__fifo;
117
 
static PyObject *__pyx_n_fifo;
118
 
static PyObject *__pyx_n__symlink;
119
 
static PyObject *__pyx_n_symlink;
120
 
static PyObject *__pyx_n__socket;
121
 
static PyObject *__pyx_n_socket;
122
 
static PyObject *__pyx_n__unknown;
123
 
static PyObject *__pyx_n_unknown;
124
 
static PyObject *__pyx_n__missing;
125
 
static PyObject *__pyx_n_missing;
126
 
static PyObject *__pyx_n_bzrlib;
127
 
static PyObject *__pyx_n_osutils;
128
 
 
129
 
static PyObject *__pyx_k14p;
130
 
 
131
 
static PyObject *__pyx_f_12_readdir_pyx_5_Stat_6st_dev___get__(PyObject *__pyx_v_self); /*proto*/
132
 
static PyObject *__pyx_f_12_readdir_pyx_5_Stat_6st_dev___get__(PyObject *__pyx_v_self) {
133
 
  PyObject *__pyx_r;
134
 
  PyObject *__pyx_1 = 0;
135
 
  Py_INCREF(__pyx_v_self);
136
 
  __pyx_1 = PyInt_FromLong(((struct __pyx_obj_12_readdir_pyx__Stat *)__pyx_v_self)->_st.st_dev); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 130; goto __pyx_L1;}
137
 
  __pyx_r = __pyx_1;
138
 
  __pyx_1 = 0;
139
 
  goto __pyx_L0;
140
 
 
141
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
142
 
  goto __pyx_L0;
143
 
  __pyx_L1:;
144
 
  Py_XDECREF(__pyx_1);
145
 
  __Pyx_AddTraceback("_readdir_pyx._Stat.st_dev.__get__");
146
 
  __pyx_r = 0;
147
 
  __pyx_L0:;
148
 
  Py_DECREF(__pyx_v_self);
149
 
  return __pyx_r;
150
 
}
151
 
 
152
 
static PyObject *__pyx_f_12_readdir_pyx_5_Stat_6st_ino___get__(PyObject *__pyx_v_self); /*proto*/
153
 
static PyObject *__pyx_f_12_readdir_pyx_5_Stat_6st_ino___get__(PyObject *__pyx_v_self) {
154
 
  PyObject *__pyx_r;
155
 
  PyObject *__pyx_1 = 0;
156
 
  Py_INCREF(__pyx_v_self);
157
 
  __pyx_1 = PyLong_FromUnsignedLong(((struct __pyx_obj_12_readdir_pyx__Stat *)__pyx_v_self)->_st.st_ino); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 134; goto __pyx_L1;}
158
 
  __pyx_r = __pyx_1;
159
 
  __pyx_1 = 0;
160
 
  goto __pyx_L0;
161
 
 
162
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
163
 
  goto __pyx_L0;
164
 
  __pyx_L1:;
165
 
  Py_XDECREF(__pyx_1);
166
 
  __Pyx_AddTraceback("_readdir_pyx._Stat.st_ino.__get__");
167
 
  __pyx_r = 0;
168
 
  __pyx_L0:;
169
 
  Py_DECREF(__pyx_v_self);
170
 
  return __pyx_r;
171
 
}
172
 
 
173
 
static PyObject *__pyx_f_12_readdir_pyx_5_Stat_7st_mode___get__(PyObject *__pyx_v_self); /*proto*/
174
 
static PyObject *__pyx_f_12_readdir_pyx_5_Stat_7st_mode___get__(PyObject *__pyx_v_self) {
175
 
  PyObject *__pyx_r;
176
 
  PyObject *__pyx_1 = 0;
177
 
  Py_INCREF(__pyx_v_self);
178
 
  __pyx_1 = PyInt_FromLong(((struct __pyx_obj_12_readdir_pyx__Stat *)__pyx_v_self)->_st.st_mode); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; goto __pyx_L1;}
179
 
  __pyx_r = __pyx_1;
180
 
  __pyx_1 = 0;
181
 
  goto __pyx_L0;
182
 
 
183
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
184
 
  goto __pyx_L0;
185
 
  __pyx_L1:;
186
 
  Py_XDECREF(__pyx_1);
187
 
  __Pyx_AddTraceback("_readdir_pyx._Stat.st_mode.__get__");
188
 
  __pyx_r = 0;
189
 
  __pyx_L0:;
190
 
  Py_DECREF(__pyx_v_self);
191
 
  return __pyx_r;
192
 
}
193
 
 
194
 
static PyObject *__pyx_f_12_readdir_pyx_5_Stat_8st_ctime___get__(PyObject *__pyx_v_self); /*proto*/
195
 
static PyObject *__pyx_f_12_readdir_pyx_5_Stat_8st_ctime___get__(PyObject *__pyx_v_self) {
196
 
  PyObject *__pyx_r;
197
 
  PyObject *__pyx_1 = 0;
198
 
  Py_INCREF(__pyx_v_self);
199
 
  __pyx_1 = PyInt_FromLong(((struct __pyx_obj_12_readdir_pyx__Stat *)__pyx_v_self)->_st.st_ctime); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; goto __pyx_L1;}
200
 
  __pyx_r = __pyx_1;
201
 
  __pyx_1 = 0;
202
 
  goto __pyx_L0;
203
 
 
204
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
205
 
  goto __pyx_L0;
206
 
  __pyx_L1:;
207
 
  Py_XDECREF(__pyx_1);
208
 
  __Pyx_AddTraceback("_readdir_pyx._Stat.st_ctime.__get__");
209
 
  __pyx_r = 0;
210
 
  __pyx_L0:;
211
 
  Py_DECREF(__pyx_v_self);
212
 
  return __pyx_r;
213
 
}
214
 
 
215
 
static PyObject *__pyx_f_12_readdir_pyx_5_Stat_8st_mtime___get__(PyObject *__pyx_v_self); /*proto*/
216
 
static PyObject *__pyx_f_12_readdir_pyx_5_Stat_8st_mtime___get__(PyObject *__pyx_v_self) {
217
 
  PyObject *__pyx_r;
218
 
  PyObject *__pyx_1 = 0;
219
 
  Py_INCREF(__pyx_v_self);
220
 
  __pyx_1 = PyInt_FromLong(((struct __pyx_obj_12_readdir_pyx__Stat *)__pyx_v_self)->_st.st_mtime); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; goto __pyx_L1;}
221
 
  __pyx_r = __pyx_1;
222
 
  __pyx_1 = 0;
223
 
  goto __pyx_L0;
224
 
 
225
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
226
 
  goto __pyx_L0;
227
 
  __pyx_L1:;
228
 
  Py_XDECREF(__pyx_1);
229
 
  __Pyx_AddTraceback("_readdir_pyx._Stat.st_mtime.__get__");
230
 
  __pyx_r = 0;
231
 
  __pyx_L0:;
232
 
  Py_DECREF(__pyx_v_self);
233
 
  return __pyx_r;
234
 
}
235
 
 
236
 
static PyObject *__pyx_f_12_readdir_pyx_5_Stat_7st_size___get__(PyObject *__pyx_v_self); /*proto*/
237
 
static PyObject *__pyx_f_12_readdir_pyx_5_Stat_7st_size___get__(PyObject *__pyx_v_self) {
238
 
  PyObject *__pyx_r;
239
 
  PyObject *__pyx_1 = 0;
240
 
  Py_INCREF(__pyx_v_self);
241
 
  __pyx_1 = PyLong_FromUnsignedLongLong(((struct __pyx_obj_12_readdir_pyx__Stat *)__pyx_v_self)->_st.st_size); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; goto __pyx_L1;}
242
 
  __pyx_r = __pyx_1;
243
 
  __pyx_1 = 0;
244
 
  goto __pyx_L0;
245
 
 
246
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
247
 
  goto __pyx_L0;
248
 
  __pyx_L1:;
249
 
  Py_XDECREF(__pyx_1);
250
 
  __Pyx_AddTraceback("_readdir_pyx._Stat.st_size.__get__");
251
 
  __pyx_r = 0;
252
 
  __pyx_L0:;
253
 
  Py_DECREF(__pyx_v_self);
254
 
  return __pyx_r;
255
 
}
256
 
 
257
 
static PyObject *__pyx_n_st_mode;
258
 
static PyObject *__pyx_n_st_size;
259
 
static PyObject *__pyx_n__mtime;
260
 
static PyObject *__pyx_n__ctime;
261
 
 
262
 
static PyObject *__pyx_f_12_readdir_pyx_5_Stat___repr__(PyObject *__pyx_v_self); /*proto*/
263
 
static PyObject *__pyx_f_12_readdir_pyx_5_Stat___repr__(PyObject *__pyx_v_self) {
264
 
  PyObject *__pyx_r;
265
 
  PyObject *__pyx_1 = 0;
266
 
  PyObject *__pyx_2 = 0;
267
 
  PyObject *__pyx_3 = 0;
268
 
  PyObject *__pyx_4 = 0;
269
 
  PyObject *__pyx_5 = 0;
270
 
  PyObject *__pyx_6 = 0;
271
 
  PyObject *__pyx_7 = 0;
272
 
  PyObject *__pyx_8 = 0;
273
 
  PyObject *__pyx_9 = 0;
274
 
  PyObject *__pyx_10 = 0;
275
 
  Py_INCREF(__pyx_v_self);
276
 
  __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_st_mode); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; goto __pyx_L1;}
277
 
  __pyx_2 = PyInt_FromLong(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; goto __pyx_L1;}
278
 
  __pyx_3 = PyInt_FromLong(0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; goto __pyx_L1;}
279
 
  __pyx_4 = PyInt_FromLong(0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; goto __pyx_L1;}
280
 
  __pyx_5 = PyInt_FromLong(0); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; goto __pyx_L1;}
281
 
  __pyx_6 = PyInt_FromLong(0); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; goto __pyx_L1;}
282
 
  __pyx_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_st_size); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; goto __pyx_L1;}
283
 
  __pyx_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n__mtime); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 158; goto __pyx_L1;}
284
 
  __pyx_9 = PyObject_GetAttr(__pyx_v_self, __pyx_n__ctime); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 158; goto __pyx_L1;}
285
 
  __pyx_10 = PyTuple_New(10); if (!__pyx_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; goto __pyx_L1;}
286
 
  PyTuple_SET_ITEM(__pyx_10, 0, __pyx_1);
287
 
  PyTuple_SET_ITEM(__pyx_10, 1, __pyx_2);
288
 
  PyTuple_SET_ITEM(__pyx_10, 2, __pyx_3);
289
 
  PyTuple_SET_ITEM(__pyx_10, 3, __pyx_4);
290
 
  PyTuple_SET_ITEM(__pyx_10, 4, __pyx_5);
291
 
  PyTuple_SET_ITEM(__pyx_10, 5, __pyx_6);
292
 
  PyTuple_SET_ITEM(__pyx_10, 6, __pyx_7);
293
 
  Py_INCREF(Py_None);
294
 
  PyTuple_SET_ITEM(__pyx_10, 7, Py_None);
295
 
  PyTuple_SET_ITEM(__pyx_10, 8, __pyx_8);
296
 
  PyTuple_SET_ITEM(__pyx_10, 9, __pyx_9);
297
 
  __pyx_1 = 0;
298
 
  __pyx_2 = 0;
299
 
  __pyx_3 = 0;
300
 
  __pyx_4 = 0;
301
 
  __pyx_5 = 0;
302
 
  __pyx_6 = 0;
303
 
  __pyx_7 = 0;
304
 
  __pyx_8 = 0;
305
 
  __pyx_9 = 0;
306
 
  __pyx_1 = PyObject_Repr(__pyx_10); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 157; goto __pyx_L1;}
307
 
  Py_DECREF(__pyx_10); __pyx_10 = 0;
308
 
  __pyx_r = __pyx_1;
309
 
  __pyx_1 = 0;
310
 
  goto __pyx_L0;
311
 
 
312
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
313
 
  goto __pyx_L0;
314
 
  __pyx_L1:;
315
 
  Py_XDECREF(__pyx_1);
316
 
  Py_XDECREF(__pyx_2);
317
 
  Py_XDECREF(__pyx_3);
318
 
  Py_XDECREF(__pyx_4);
319
 
  Py_XDECREF(__pyx_5);
320
 
  Py_XDECREF(__pyx_6);
321
 
  Py_XDECREF(__pyx_7);
322
 
  Py_XDECREF(__pyx_8);
323
 
  Py_XDECREF(__pyx_9);
324
 
  Py_XDECREF(__pyx_10);
325
 
  __Pyx_AddTraceback("_readdir_pyx._Stat.__repr__");
326
 
  __pyx_r = 0;
327
 
  __pyx_L0:;
328
 
  Py_DECREF(__pyx_v_self);
329
 
  return __pyx_r;
330
 
}
331
 
 
332
 
static PyObject *__pyx_n_safe_utf8;
333
 
 
334
 
static int __pyx_f_12_readdir_pyx_13UTF8DirReader___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
335
 
static int __pyx_f_12_readdir_pyx_13UTF8DirReader___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
336
 
  int __pyx_r;
337
 
  PyObject *__pyx_1 = 0;
338
 
  PyObject *__pyx_2 = 0;
339
 
  static char *__pyx_argnames[] = {0};
340
 
  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "", __pyx_argnames)) return -1;
341
 
  Py_INCREF(__pyx_v_self);
342
 
 
343
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":172 */
344
 
  __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n_osutils); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; goto __pyx_L1;}
345
 
  __pyx_2 = PyObject_GetAttr(__pyx_1, __pyx_n_safe_utf8); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; goto __pyx_L1;}
346
 
  Py_DECREF(__pyx_1); __pyx_1 = 0;
347
 
  Py_DECREF(((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)__pyx_v_self)->_safe_utf8);
348
 
  ((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)__pyx_v_self)->_safe_utf8 = __pyx_2;
349
 
  __pyx_2 = 0;
350
 
 
351
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":173 */
352
 
  __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n__directory); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 173; goto __pyx_L1;}
353
 
  Py_DECREF(((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)__pyx_v_self)->_directory);
354
 
  ((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)__pyx_v_self)->_directory = __pyx_1;
355
 
  __pyx_1 = 0;
356
 
 
357
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":174 */
358
 
  __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n__chardev); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; goto __pyx_L1;}
359
 
  Py_DECREF(((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)__pyx_v_self)->_chardev);
360
 
  ((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)__pyx_v_self)->_chardev = __pyx_2;
361
 
  __pyx_2 = 0;
362
 
 
363
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":175 */
364
 
  __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n__block); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 175; goto __pyx_L1;}
365
 
  Py_DECREF(((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)__pyx_v_self)->_block);
366
 
  ((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)__pyx_v_self)->_block = __pyx_1;
367
 
  __pyx_1 = 0;
368
 
 
369
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":176 */
370
 
  __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n__file); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 176; goto __pyx_L1;}
371
 
  Py_DECREF(((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)__pyx_v_self)->_file);
372
 
  ((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)__pyx_v_self)->_file = __pyx_2;
373
 
  __pyx_2 = 0;
374
 
 
375
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":177 */
376
 
  __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n__fifo); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 177; goto __pyx_L1;}
377
 
  Py_DECREF(((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)__pyx_v_self)->_fifo);
378
 
  ((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)__pyx_v_self)->_fifo = __pyx_1;
379
 
  __pyx_1 = 0;
380
 
 
381
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":178 */
382
 
  __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n__symlink); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 178; goto __pyx_L1;}
383
 
  Py_DECREF(((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)__pyx_v_self)->_symlink);
384
 
  ((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)__pyx_v_self)->_symlink = __pyx_2;
385
 
  __pyx_2 = 0;
386
 
 
387
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":179 */
388
 
  __pyx_1 = __Pyx_GetName(__pyx_m, __pyx_n__socket); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 179; goto __pyx_L1;}
389
 
  Py_DECREF(((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)__pyx_v_self)->_socket);
390
 
  ((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)__pyx_v_self)->_socket = __pyx_1;
391
 
  __pyx_1 = 0;
392
 
 
393
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":180 */
394
 
  __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n__unknown); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 180; goto __pyx_L1;}
395
 
  Py_DECREF(((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)__pyx_v_self)->_unknown);
396
 
  ((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)__pyx_v_self)->_unknown = __pyx_2;
397
 
  __pyx_2 = 0;
398
 
 
399
 
  __pyx_r = 0;
400
 
  goto __pyx_L0;
401
 
  __pyx_L1:;
402
 
  Py_XDECREF(__pyx_1);
403
 
  Py_XDECREF(__pyx_2);
404
 
  __Pyx_AddTraceback("_readdir_pyx.UTF8DirReader.__init__");
405
 
  __pyx_r = -1;
406
 
  __pyx_L0:;
407
 
  Py_DECREF(__pyx_v_self);
408
 
  return __pyx_r;
409
 
}
410
 
 
411
 
static PyObject *__pyx_f_12_readdir_pyx_13UTF8DirReader_kind_from_mode(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
412
 
static char __pyx_doc_12_readdir_pyx_13UTF8DirReader_kind_from_mode[] = "Get the kind of a path from a mode status.";
413
 
static PyObject *__pyx_f_12_readdir_pyx_13UTF8DirReader_kind_from_mode(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
414
 
  int __pyx_v_mode;
415
 
  PyObject *__pyx_r;
416
 
  PyObject *__pyx_1 = 0;
417
 
  static char *__pyx_argnames[] = {"mode",0};
418
 
  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "i", __pyx_argnames, &__pyx_v_mode)) return 0;
419
 
  Py_INCREF(__pyx_v_self);
420
 
  __pyx_1 = ((struct __pyx_vtabstruct_12_readdir_pyx_UTF8DirReader *)((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)__pyx_v_self)->__pyx_vtab)->_kind_from_mode(((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)__pyx_v_self),__pyx_v_mode); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 184; goto __pyx_L1;}
421
 
  __pyx_r = __pyx_1;
422
 
  __pyx_1 = 0;
423
 
  goto __pyx_L0;
424
 
 
425
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
426
 
  goto __pyx_L0;
427
 
  __pyx_L1:;
428
 
  Py_XDECREF(__pyx_1);
429
 
  __Pyx_AddTraceback("_readdir_pyx.UTF8DirReader.kind_from_mode");
430
 
  __pyx_r = 0;
431
 
  __pyx_L0:;
432
 
  Py_DECREF(__pyx_v_self);
433
 
  return __pyx_r;
434
 
}
435
 
 
436
 
static PyObject *__pyx_f_12_readdir_pyx_13UTF8DirReader__kind_from_mode(struct __pyx_obj_12_readdir_pyx_UTF8DirReader *__pyx_v_self,int __pyx_v_mode) {
437
 
  PyObject *__pyx_r;
438
 
  int __pyx_1;
439
 
  Py_INCREF(__pyx_v_self);
440
 
 
441
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":188 */
442
 
  __pyx_1 = S_ISREG(__pyx_v_mode);
443
 
  if (__pyx_1) {
444
 
    Py_INCREF(__pyx_v_self->_file);
445
 
    __pyx_r = __pyx_v_self->_file;
446
 
    goto __pyx_L0;
447
 
    goto __pyx_L2;
448
 
  }
449
 
  __pyx_L2:;
450
 
 
451
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":190 */
452
 
  __pyx_1 = S_ISDIR(__pyx_v_mode);
453
 
  if (__pyx_1) {
454
 
    Py_INCREF(__pyx_v_self->_directory);
455
 
    __pyx_r = __pyx_v_self->_directory;
456
 
    goto __pyx_L0;
457
 
    goto __pyx_L3;
458
 
  }
459
 
  __pyx_L3:;
460
 
 
461
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":192 */
462
 
  __pyx_1 = S_ISCHR(__pyx_v_mode);
463
 
  if (__pyx_1) {
464
 
    Py_INCREF(__pyx_v_self->_chardev);
465
 
    __pyx_r = __pyx_v_self->_chardev;
466
 
    goto __pyx_L0;
467
 
    goto __pyx_L4;
468
 
  }
469
 
  __pyx_L4:;
470
 
 
471
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":194 */
472
 
  __pyx_1 = S_ISBLK(__pyx_v_mode);
473
 
  if (__pyx_1) {
474
 
    Py_INCREF(__pyx_v_self->_block);
475
 
    __pyx_r = __pyx_v_self->_block;
476
 
    goto __pyx_L0;
477
 
    goto __pyx_L5;
478
 
  }
479
 
  __pyx_L5:;
480
 
 
481
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":196 */
482
 
  __pyx_1 = S_ISLNK(__pyx_v_mode);
483
 
  if (__pyx_1) {
484
 
    Py_INCREF(__pyx_v_self->_symlink);
485
 
    __pyx_r = __pyx_v_self->_symlink;
486
 
    goto __pyx_L0;
487
 
    goto __pyx_L6;
488
 
  }
489
 
  __pyx_L6:;
490
 
 
491
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":198 */
492
 
  __pyx_1 = S_ISFIFO(__pyx_v_mode);
493
 
  if (__pyx_1) {
494
 
    Py_INCREF(__pyx_v_self->_fifo);
495
 
    __pyx_r = __pyx_v_self->_fifo;
496
 
    goto __pyx_L0;
497
 
    goto __pyx_L7;
498
 
  }
499
 
  __pyx_L7:;
500
 
 
501
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":200 */
502
 
  __pyx_1 = S_ISSOCK(__pyx_v_mode);
503
 
  if (__pyx_1) {
504
 
    Py_INCREF(__pyx_v_self->_socket);
505
 
    __pyx_r = __pyx_v_self->_socket;
506
 
    goto __pyx_L0;
507
 
    goto __pyx_L8;
508
 
  }
509
 
  __pyx_L8:;
510
 
 
511
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":202 */
512
 
  Py_INCREF(__pyx_v_self->_unknown);
513
 
  __pyx_r = __pyx_v_self->_unknown;
514
 
  goto __pyx_L0;
515
 
 
516
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
517
 
  __pyx_L0:;
518
 
  Py_DECREF(__pyx_v_self);
519
 
  return __pyx_r;
520
 
}
521
 
 
522
 
static PyObject *__pyx_f_12_readdir_pyx_13UTF8DirReader_top_prefix_to_starting_dir(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
523
 
static char __pyx_doc_12_readdir_pyx_13UTF8DirReader_top_prefix_to_starting_dir[] = "See DirReader.top_prefix_to_starting_dir.";
524
 
static PyObject *__pyx_f_12_readdir_pyx_13UTF8DirReader_top_prefix_to_starting_dir(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
525
 
  PyObject *__pyx_v_top = 0;
526
 
  PyObject *__pyx_v_prefix = 0;
527
 
  PyObject *__pyx_r;
528
 
  PyObject *__pyx_1 = 0;
529
 
  PyObject *__pyx_2 = 0;
530
 
  PyObject *__pyx_3 = 0;
531
 
  static char *__pyx_argnames[] = {"top","prefix",0};
532
 
  __pyx_v_prefix = __pyx_k15;
533
 
  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O|O", __pyx_argnames, &__pyx_v_top, &__pyx_v_prefix)) return 0;
534
 
  Py_INCREF(__pyx_v_self);
535
 
  Py_INCREF(__pyx_v_top);
536
 
  Py_INCREF(__pyx_v_prefix);
537
 
  __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; goto __pyx_L1;}
538
 
  Py_INCREF(__pyx_v_prefix);
539
 
  PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_prefix);
540
 
  __pyx_2 = PyObject_CallObject(((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)__pyx_v_self)->_safe_utf8, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; goto __pyx_L1;}
541
 
  Py_DECREF(__pyx_1); __pyx_1 = 0;
542
 
  __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; goto __pyx_L1;}
543
 
  Py_INCREF(__pyx_v_top);
544
 
  PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_top);
545
 
  __pyx_3 = PyObject_CallObject(((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)__pyx_v_self)->_safe_utf8, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 207; goto __pyx_L1;}
546
 
  Py_DECREF(__pyx_1); __pyx_1 = 0;
547
 
  __pyx_1 = PyTuple_New(5); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 206; goto __pyx_L1;}
548
 
  PyTuple_SET_ITEM(__pyx_1, 0, __pyx_2);
549
 
  Py_INCREF(Py_None);
550
 
  PyTuple_SET_ITEM(__pyx_1, 1, Py_None);
551
 
  Py_INCREF(Py_None);
552
 
  PyTuple_SET_ITEM(__pyx_1, 2, Py_None);
553
 
  Py_INCREF(Py_None);
554
 
  PyTuple_SET_ITEM(__pyx_1, 3, Py_None);
555
 
  PyTuple_SET_ITEM(__pyx_1, 4, __pyx_3);
556
 
  __pyx_2 = 0;
557
 
  __pyx_3 = 0;
558
 
  __pyx_r = __pyx_1;
559
 
  __pyx_1 = 0;
560
 
  goto __pyx_L0;
561
 
 
562
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
563
 
  goto __pyx_L0;
564
 
  __pyx_L1:;
565
 
  Py_XDECREF(__pyx_1);
566
 
  Py_XDECREF(__pyx_2);
567
 
  Py_XDECREF(__pyx_3);
568
 
  __Pyx_AddTraceback("_readdir_pyx.UTF8DirReader.top_prefix_to_starting_dir");
569
 
  __pyx_r = 0;
570
 
  __pyx_L0:;
571
 
  Py_DECREF(__pyx_v_self);
572
 
  Py_DECREF(__pyx_v_top);
573
 
  Py_DECREF(__pyx_v_prefix);
574
 
  return __pyx_r;
575
 
}
576
 
 
577
 
static PyObject *__pyx_n_Exception;
578
 
 
579
 
static PyObject *__pyx_k16p;
580
 
static PyObject *__pyx_k17p;
581
 
static PyObject *__pyx_k18p;
582
 
static PyObject *__pyx_k19p;
583
 
static PyObject *__pyx_k20p;
584
 
 
585
 
static char __pyx_k16[] = "/";
586
 
static char __pyx_k17[] = "";
587
 
static char __pyx_k18[] = "/";
588
 
static char __pyx_k19[] = "failed to strcat";
589
 
static char __pyx_k20[] = "failed to strcat";
590
 
 
591
 
static PyObject *__pyx_f_12_readdir_pyx_13UTF8DirReader_read_dir(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
592
 
static char __pyx_doc_12_readdir_pyx_13UTF8DirReader_read_dir[] = "Read a single directory from a utf8 file system.\n\n        All paths in and out are utf8.\n\n        This sub-function is called when we know the filesystem is already in utf8\n        encoding. So we don\'t need to transcode filenames.\n\n        See DirReader.read_dir for details.\n        ";
593
 
static PyObject *__pyx_f_12_readdir_pyx_13UTF8DirReader_read_dir(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
594
 
  PyObject *__pyx_v_prefix = 0;
595
 
  PyObject *__pyx_v_top = 0;
596
 
  PyObject *__pyx_v_newval;
597
 
  int __pyx_v_index;
598
 
  int __pyx_v_length;
599
 
  void *__pyx_v_atuple;
600
 
  PyObject *__pyx_v_name;
601
 
  PyObject *__pyx_v_new_val_obj;
602
 
  PyObject *__pyx_v_relprefix;
603
 
  PyObject *__pyx_v_top_slash;
604
 
  PyObject *__pyx_v_result;
605
 
  PyObject *__pyx_r;
606
 
  Py_ssize_t __pyx_1;
607
 
  PyObject *__pyx_2 = 0;
608
 
  int __pyx_3;
609
 
  PyObject *__pyx_4 = 0;
610
 
  PyObject *__pyx_5 = 0;
611
 
  static char *__pyx_argnames[] = {"prefix","top",0};
612
 
  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_prefix, &__pyx_v_top)) return 0;
613
 
  Py_INCREF(__pyx_v_self);
614
 
  Py_INCREF(__pyx_v_prefix);
615
 
  Py_INCREF(__pyx_v_top);
616
 
  __pyx_v_newval = Py_None; Py_INCREF(Py_None);
617
 
  __pyx_v_name = Py_None; Py_INCREF(Py_None);
618
 
  __pyx_v_relprefix = Py_None; Py_INCREF(Py_None);
619
 
  __pyx_v_top_slash = Py_None; Py_INCREF(Py_None);
620
 
  __pyx_v_result = Py_None; Py_INCREF(Py_None);
621
 
 
622
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":229 */
623
 
  __pyx_1 = PyString_Size(__pyx_v_prefix);
624
 
  if (__pyx_1) {
625
 
    __pyx_2 = PyNumber_Add(__pyx_v_prefix, __pyx_k16p); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 230; goto __pyx_L1;}
626
 
    Py_DECREF(__pyx_v_relprefix);
627
 
    __pyx_v_relprefix = __pyx_2;
628
 
    __pyx_2 = 0;
629
 
    goto __pyx_L2;
630
 
  }
631
 
  /*else*/ {
632
 
    Py_INCREF(__pyx_k17p);
633
 
    Py_DECREF(__pyx_v_relprefix);
634
 
    __pyx_v_relprefix = __pyx_k17p;
635
 
  }
636
 
  __pyx_L2:;
637
 
 
638
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":233 */
639
 
  __pyx_2 = PyNumber_Add(__pyx_v_top, __pyx_k18p); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 233; goto __pyx_L1;}
640
 
  Py_DECREF(__pyx_v_top_slash);
641
 
  __pyx_v_top_slash = __pyx_2;
642
 
  __pyx_2 = 0;
643
 
 
644
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":237 */
645
 
  __pyx_2 = __pyx_f_12_readdir_pyx__read_dir(__pyx_v_top); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 237; goto __pyx_L1;}
646
 
  Py_DECREF(__pyx_v_result);
647
 
  __pyx_v_result = __pyx_2;
648
 
  __pyx_2 = 0;
649
 
 
650
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":238 */
651
 
  __pyx_1 = PyObject_Length(__pyx_v_result); if (__pyx_1 == -1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 238; goto __pyx_L1;}
652
 
  __pyx_v_length = __pyx_1;
653
 
 
654
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":240 */
655
 
  for (__pyx_v_index = 0; __pyx_v_index < __pyx_v_length; ++__pyx_v_index) {
656
 
 
657
 
    /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":241 */
658
 
    __pyx_v_atuple = PyList_GET_ITEM(__pyx_v_result,__pyx_v_index);
659
 
 
660
 
    /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":242 */
661
 
    __pyx_2 = (PyObject *)PyTuple_GET_ITEM(__pyx_v_atuple,1);
662
 
    Py_INCREF(__pyx_2);
663
 
    Py_DECREF(__pyx_v_name);
664
 
    __pyx_v_name = __pyx_2;
665
 
    __pyx_2 = 0;
666
 
 
667
 
    /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":247 */
668
 
    __pyx_v_new_val_obj = ((PyObject *)__pyx_v_relprefix);
669
 
 
670
 
    /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":248 */
671
 
    Py_INCREF(__pyx_v_relprefix);
672
 
 
673
 
    /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":249 */
674
 
    PyString_Concat((&__pyx_v_new_val_obj),__pyx_v_name);
675
 
 
676
 
    /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":250 */
677
 
    __pyx_3 = (NULL == __pyx_v_new_val_obj);
678
 
    if (__pyx_3) {
679
 
      __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_Exception); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; goto __pyx_L1;}
680
 
      __pyx_4 = PyTuple_New(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; goto __pyx_L1;}
681
 
      Py_INCREF(__pyx_k19p);
682
 
      PyTuple_SET_ITEM(__pyx_4, 0, __pyx_k19p);
683
 
      __pyx_5 = PyObject_CallObject(__pyx_2, __pyx_4); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; goto __pyx_L1;}
684
 
      Py_DECREF(__pyx_2); __pyx_2 = 0;
685
 
      Py_DECREF(__pyx_4); __pyx_4 = 0;
686
 
      __Pyx_Raise(__pyx_5, 0, 0);
687
 
      Py_DECREF(__pyx_5); __pyx_5 = 0;
688
 
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; goto __pyx_L1;}
689
 
      goto __pyx_L5;
690
 
    }
691
 
    __pyx_L5:;
692
 
 
693
 
    /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":254 */
694
 
    __pyx_3 = PyTuple_SetItem(__pyx_v_atuple,0,__pyx_v_new_val_obj); if (__pyx_3 == (-1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 254; goto __pyx_L1;}
695
 
 
696
 
    /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":256 */
697
 
    __pyx_2 = (PyObject *)PyTuple_GET_ITEM(__pyx_v_atuple,3);
698
 
    Py_INCREF(__pyx_2);
699
 
    __pyx_4 = PyObject_GetAttr(__pyx_2, __pyx_n_st_mode); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; goto __pyx_L1;}
700
 
    Py_DECREF(__pyx_2); __pyx_2 = 0;
701
 
    __pyx_3 = PyInt_AsLong(__pyx_4); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 257; goto __pyx_L1;}
702
 
    Py_DECREF(__pyx_4); __pyx_4 = 0;
703
 
    __pyx_5 = ((struct __pyx_vtabstruct_12_readdir_pyx_UTF8DirReader *)((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)__pyx_v_self)->__pyx_vtab)->_kind_from_mode(((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)__pyx_v_self),__pyx_3); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 256; goto __pyx_L1;}
704
 
    Py_DECREF(__pyx_v_newval);
705
 
    __pyx_v_newval = __pyx_5;
706
 
    __pyx_5 = 0;
707
 
 
708
 
    /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":258 */
709
 
    Py_INCREF(__pyx_v_newval);
710
 
 
711
 
    /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":259 */
712
 
    __pyx_3 = PyTuple_SetItem(__pyx_v_atuple,2,__pyx_v_newval); if (__pyx_3 == (-1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 259; goto __pyx_L1;}
713
 
 
714
 
    /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":263 */
715
 
    __pyx_v_new_val_obj = ((PyObject *)__pyx_v_top_slash);
716
 
 
717
 
    /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":264 */
718
 
    Py_INCREF(__pyx_v_top_slash);
719
 
 
720
 
    /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":265 */
721
 
    PyString_Concat((&__pyx_v_new_val_obj),__pyx_v_name);
722
 
 
723
 
    /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":266 */
724
 
    __pyx_3 = (NULL == __pyx_v_new_val_obj);
725
 
    if (__pyx_3) {
726
 
      __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_Exception); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; goto __pyx_L1;}
727
 
      __pyx_4 = PyTuple_New(1); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; goto __pyx_L1;}
728
 
      Py_INCREF(__pyx_k20p);
729
 
      PyTuple_SET_ITEM(__pyx_4, 0, __pyx_k20p);
730
 
      __pyx_5 = PyObject_CallObject(__pyx_2, __pyx_4); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; goto __pyx_L1;}
731
 
      Py_DECREF(__pyx_2); __pyx_2 = 0;
732
 
      Py_DECREF(__pyx_4); __pyx_4 = 0;
733
 
      __Pyx_Raise(__pyx_5, 0, 0);
734
 
      Py_DECREF(__pyx_5); __pyx_5 = 0;
735
 
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 269; goto __pyx_L1;}
736
 
      goto __pyx_L6;
737
 
    }
738
 
    __pyx_L6:;
739
 
 
740
 
    /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":270 */
741
 
    __pyx_3 = PyTuple_SetItem(__pyx_v_atuple,4,__pyx_v_new_val_obj); if (__pyx_3 == (-1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 270; goto __pyx_L1;}
742
 
  }
743
 
 
744
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":271 */
745
 
  Py_INCREF(__pyx_v_result);
746
 
  __pyx_r = __pyx_v_result;
747
 
  goto __pyx_L0;
748
 
 
749
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
750
 
  goto __pyx_L0;
751
 
  __pyx_L1:;
752
 
  Py_XDECREF(__pyx_2);
753
 
  Py_XDECREF(__pyx_4);
754
 
  Py_XDECREF(__pyx_5);
755
 
  __Pyx_AddTraceback("_readdir_pyx.UTF8DirReader.read_dir");
756
 
  __pyx_r = 0;
757
 
  __pyx_L0:;
758
 
  Py_DECREF(__pyx_v_newval);
759
 
  Py_DECREF(__pyx_v_name);
760
 
  Py_DECREF(__pyx_v_relprefix);
761
 
  Py_DECREF(__pyx_v_top_slash);
762
 
  Py_DECREF(__pyx_v_result);
763
 
  Py_DECREF(__pyx_v_self);
764
 
  Py_DECREF(__pyx_v_prefix);
765
 
  Py_DECREF(__pyx_v_top);
766
 
  return __pyx_r;
767
 
}
768
 
 
769
 
static PyObject *__pyx_n_OSError;
770
 
static PyObject *__pyx_n_True;
771
 
static PyObject *__pyx_n_False;
772
 
 
773
 
static PyObject *__pyx_k21p;
774
 
static PyObject *__pyx_k22p;
775
 
static PyObject *__pyx_k24p;
776
 
static PyObject *__pyx_k25p;
777
 
static PyObject *__pyx_k26p;
778
 
static PyObject *__pyx_k28p;
779
 
static PyObject *__pyx_k29p;
780
 
static PyObject *__pyx_k30p;
781
 
static PyObject *__pyx_k31p;
782
 
static PyObject *__pyx_k32p;
783
 
static PyObject *__pyx_k33p;
784
 
 
785
 
static char __pyx_k21[] = "";
786
 
static char __pyx_k22[] = ".";
787
 
static char __pyx_k23[] = ".";
788
 
static char __pyx_k24[] = "open: ";
789
 
static char __pyx_k25[] = ".";
790
 
static char __pyx_k26[] = "chdir: ";
791
 
static char __pyx_k27[] = ".";
792
 
static char __pyx_k28[] = "opendir: ";
793
 
static char __pyx_k29[] = "readdir: ";
794
 
static char __pyx_k30[] = "lstat: ";
795
 
static char __pyx_k31[] = "/";
796
 
static char __pyx_k32[] = "closedir: ";
797
 
static char __pyx_k33[] = "return to orig_dir: ";
798
 
 
799
 
static PyObject *__pyx_f_12_readdir_pyx__read_dir(PyObject *__pyx_v_path) {
800
 
  DIR *__pyx_v_the_dir;
801
 
  dirent *__pyx_v_entry;
802
 
  dirent __pyx_v_sentinel;
803
 
  char *__pyx_v_name;
804
 
  int __pyx_v_stat_result;
805
 
  struct __pyx_obj_12_readdir_pyx__Stat *__pyx_v_statvalue;
806
 
  int __pyx_v_orig_dir_fd;
807
 
  PyObject *__pyx_v_result;
808
 
  PyObject *__pyx_v_kind;
809
 
  PyObject *__pyx_v_failed;
810
 
  PyObject *__pyx_r;
811
 
  int __pyx_1;
812
 
  PyObject *__pyx_2 = 0;
813
 
  PyObject *__pyx_3 = 0;
814
 
  PyObject *__pyx_4 = 0;
815
 
  PyObject *__pyx_5 = 0;
816
 
  char *__pyx_6;
817
 
  int __pyx_7;
818
 
  PyObject *__pyx_8 = 0;
819
 
  PyObject *__pyx_9 = 0;
820
 
  Py_INCREF(__pyx_v_path);
821
 
  __pyx_v_statvalue = ((struct __pyx_obj_12_readdir_pyx__Stat *)Py_None); Py_INCREF(Py_None);
822
 
  __pyx_v_result = Py_None; Py_INCREF(Py_None);
823
 
  __pyx_v_kind = Py_None; Py_INCREF(Py_None);
824
 
  __pyx_v_failed = Py_None; Py_INCREF(Py_None);
825
 
 
826
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":295 */
827
 
  if (PyObject_Cmp(__pyx_v_path, __pyx_k21p, &__pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; goto __pyx_L1;}
828
 
  __pyx_1 = __pyx_1 != 0;
829
 
  if (__pyx_1) {
830
 
    if (PyObject_Cmp(__pyx_v_path, __pyx_k22p, &__pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; goto __pyx_L1;}
831
 
    __pyx_1 = __pyx_1 != 0;
832
 
  }
833
 
  if (__pyx_1) {
834
 
 
835
 
    /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":299 */
836
 
    __pyx_v_orig_dir_fd = open(__pyx_k23,O_RDONLY,0);
837
 
 
838
 
    /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":300 */
839
 
    __pyx_1 = (__pyx_v_orig_dir_fd == (-1));
840
 
    if (__pyx_1) {
841
 
      __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_OSError); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 301; goto __pyx_L1;}
842
 
      __pyx_3 = PyInt_FromLong(errno); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 301; goto __pyx_L1;}
843
 
      __pyx_4 = PyString_FromString(strerror(errno)); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 301; goto __pyx_L1;}
844
 
      __pyx_5 = PyNumber_Add(__pyx_k24p, __pyx_4); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 301; goto __pyx_L1;}
845
 
      Py_DECREF(__pyx_4); __pyx_4 = 0;
846
 
      __pyx_4 = PyTuple_New(3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 301; goto __pyx_L1;}
847
 
      PyTuple_SET_ITEM(__pyx_4, 0, __pyx_3);
848
 
      PyTuple_SET_ITEM(__pyx_4, 1, __pyx_5);
849
 
      Py_INCREF(__pyx_k25p);
850
 
      PyTuple_SET_ITEM(__pyx_4, 2, __pyx_k25p);
851
 
      __pyx_3 = 0;
852
 
      __pyx_5 = 0;
853
 
      __pyx_3 = PyObject_CallObject(__pyx_2, __pyx_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 301; goto __pyx_L1;}
854
 
      Py_DECREF(__pyx_2); __pyx_2 = 0;
855
 
      Py_DECREF(__pyx_4); __pyx_4 = 0;
856
 
      __Pyx_Raise(__pyx_3, 0, 0);
857
 
      Py_DECREF(__pyx_3); __pyx_3 = 0;
858
 
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 301; goto __pyx_L1;}
859
 
      goto __pyx_L3;
860
 
    }
861
 
    __pyx_L3:;
862
 
 
863
 
    /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":302 */
864
 
    __pyx_6 = PyString_AsString(__pyx_v_path); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; goto __pyx_L1;}
865
 
    __pyx_1 = ((-1) == chdir(__pyx_6));
866
 
    if (__pyx_1) {
867
 
      __pyx_5 = __Pyx_GetName(__pyx_b, __pyx_n_OSError); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; goto __pyx_L1;}
868
 
      __pyx_2 = PyInt_FromLong(errno); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; goto __pyx_L1;}
869
 
      __pyx_4 = PyString_FromString(strerror(errno)); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; goto __pyx_L1;}
870
 
      __pyx_3 = PyNumber_Add(__pyx_k26p, __pyx_4); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; goto __pyx_L1;}
871
 
      Py_DECREF(__pyx_4); __pyx_4 = 0;
872
 
      __pyx_4 = PyTuple_New(3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; goto __pyx_L1;}
873
 
      PyTuple_SET_ITEM(__pyx_4, 0, __pyx_2);
874
 
      PyTuple_SET_ITEM(__pyx_4, 1, __pyx_3);
875
 
      Py_INCREF(__pyx_v_path);
876
 
      PyTuple_SET_ITEM(__pyx_4, 2, __pyx_v_path);
877
 
      __pyx_2 = 0;
878
 
      __pyx_3 = 0;
879
 
      __pyx_2 = PyObject_CallObject(__pyx_5, __pyx_4); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; goto __pyx_L1;}
880
 
      Py_DECREF(__pyx_5); __pyx_5 = 0;
881
 
      Py_DECREF(__pyx_4); __pyx_4 = 0;
882
 
      __Pyx_Raise(__pyx_2, 0, 0);
883
 
      Py_DECREF(__pyx_2); __pyx_2 = 0;
884
 
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 303; goto __pyx_L1;}
885
 
      goto __pyx_L4;
886
 
    }
887
 
    __pyx_L4:;
888
 
    goto __pyx_L2;
889
 
  }
890
 
  /*else*/ {
891
 
    __pyx_v_orig_dir_fd = (-1);
892
 
  }
893
 
  __pyx_L2:;
894
 
 
895
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":307 */
896
 
  /*try:*/ {
897
 
 
898
 
    /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":308 */
899
 
    __pyx_v_the_dir = opendir(__pyx_k27);
900
 
 
901
 
    /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":309 */
902
 
    __pyx_1 = (NULL == __pyx_v_the_dir);
903
 
    if (__pyx_1) {
904
 
      __pyx_3 = __Pyx_GetName(__pyx_b, __pyx_n_OSError); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 310; goto __pyx_L6;}
905
 
      __pyx_5 = PyInt_FromLong(errno); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 310; goto __pyx_L6;}
906
 
      __pyx_4 = PyString_FromString(strerror(errno)); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 310; goto __pyx_L6;}
907
 
      __pyx_2 = PyNumber_Add(__pyx_k28p, __pyx_4); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 310; goto __pyx_L6;}
908
 
      Py_DECREF(__pyx_4); __pyx_4 = 0;
909
 
      __pyx_4 = PyTuple_New(3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 310; goto __pyx_L6;}
910
 
      PyTuple_SET_ITEM(__pyx_4, 0, __pyx_5);
911
 
      PyTuple_SET_ITEM(__pyx_4, 1, __pyx_2);
912
 
      Py_INCREF(__pyx_v_path);
913
 
      PyTuple_SET_ITEM(__pyx_4, 2, __pyx_v_path);
914
 
      __pyx_5 = 0;
915
 
      __pyx_2 = 0;
916
 
      __pyx_5 = PyObject_CallObject(__pyx_3, __pyx_4); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 310; goto __pyx_L6;}
917
 
      Py_DECREF(__pyx_3); __pyx_3 = 0;
918
 
      Py_DECREF(__pyx_4); __pyx_4 = 0;
919
 
      __Pyx_Raise(__pyx_5, 0, 0);
920
 
      Py_DECREF(__pyx_5); __pyx_5 = 0;
921
 
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 310; goto __pyx_L6;}
922
 
      goto __pyx_L8;
923
 
    }
924
 
    __pyx_L8:;
925
 
 
926
 
    /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":311 */
927
 
    /*try:*/ {
928
 
 
929
 
      /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":312 */
930
 
      __pyx_2 = PyList_New(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 312; goto __pyx_L10;}
931
 
      Py_DECREF(__pyx_v_result);
932
 
      __pyx_v_result = __pyx_2;
933
 
      __pyx_2 = 0;
934
 
 
935
 
      /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":313 */
936
 
      __pyx_v_entry = (&__pyx_v_sentinel);
937
 
 
938
 
      /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":314 */
939
 
      while (1) {
940
 
        __pyx_1 = (__pyx_v_entry != NULL);
941
 
        if (!__pyx_1) break;
942
 
 
943
 
        /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":318 */
944
 
        while (1) {
945
 
          __pyx_3 = __Pyx_GetName(__pyx_b, __pyx_n_True); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; goto __pyx_L10;}
946
 
          __pyx_1 = PyObject_IsTrue(__pyx_3); if (__pyx_1 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 318; goto __pyx_L10;}
947
 
          Py_DECREF(__pyx_3); __pyx_3 = 0;
948
 
          if (!__pyx_1) break;
949
 
 
950
 
          /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":319 */
951
 
          errno = 0;
952
 
 
953
 
          /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":320 */
954
 
          __pyx_v_entry = readdir(__pyx_v_the_dir);
955
 
 
956
 
          /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":321 */
957
 
          __pyx_1 = (__pyx_v_entry == NULL);
958
 
          if (__pyx_1) {
959
 
            __pyx_1 = (errno == EAGAIN);
960
 
            if (!__pyx_1) {
961
 
              __pyx_1 = (errno == EINTR);
962
 
            }
963
 
          }
964
 
          if (__pyx_1) {
965
 
            goto __pyx_L14;
966
 
            goto __pyx_L16;
967
 
          }
968
 
          /*else*/ {
969
 
            goto __pyx_L15;
970
 
          }
971
 
          __pyx_L16:;
972
 
          __pyx_L14:;
973
 
        }
974
 
        __pyx_L15:;
975
 
 
976
 
        /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":326 */
977
 
        __pyx_1 = (__pyx_v_entry == NULL);
978
 
        if (__pyx_1) {
979
 
          __pyx_1 = (errno == ENOTDIR);
980
 
          if (!__pyx_1) {
981
 
            __pyx_1 = (errno == 0);
982
 
          }
983
 
          if (__pyx_1) {
984
 
            goto __pyx_L12;
985
 
            goto __pyx_L18;
986
 
          }
987
 
          /*else*/ {
988
 
            __pyx_4 = __Pyx_GetName(__pyx_b, __pyx_n_OSError); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; goto __pyx_L10;}
989
 
            __pyx_5 = PyInt_FromLong(errno); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; goto __pyx_L10;}
990
 
            __pyx_2 = PyString_FromString(strerror(errno)); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; goto __pyx_L10;}
991
 
            __pyx_3 = PyNumber_Add(__pyx_k29p, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; goto __pyx_L10;}
992
 
            Py_DECREF(__pyx_2); __pyx_2 = 0;
993
 
            __pyx_2 = PyTuple_New(3); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; goto __pyx_L10;}
994
 
            PyTuple_SET_ITEM(__pyx_2, 0, __pyx_5);
995
 
            PyTuple_SET_ITEM(__pyx_2, 1, __pyx_3);
996
 
            Py_INCREF(__pyx_v_path);
997
 
            PyTuple_SET_ITEM(__pyx_2, 2, __pyx_v_path);
998
 
            __pyx_5 = 0;
999
 
            __pyx_3 = 0;
1000
 
            __pyx_5 = PyObject_CallObject(__pyx_4, __pyx_2); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; goto __pyx_L10;}
1001
 
            Py_DECREF(__pyx_4); __pyx_4 = 0;
1002
 
            Py_DECREF(__pyx_2); __pyx_2 = 0;
1003
 
            __Pyx_Raise(__pyx_5, 0, 0);
1004
 
            Py_DECREF(__pyx_5); __pyx_5 = 0;
1005
 
            {__pyx_filename = __pyx_f[0]; __pyx_lineno = 333; goto __pyx_L10;}
1006
 
          }
1007
 
          __pyx_L18:;
1008
 
          goto __pyx_L17;
1009
 
        }
1010
 
        __pyx_L17:;
1011
 
 
1012
 
        /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":334 */
1013
 
        __pyx_v_name = __pyx_v_entry->d_name;
1014
 
 
1015
 
        /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":335 */
1016
 
        __pyx_1 = ((__pyx_v_name[0]) == '.');
1017
 
        if (__pyx_1) {
1018
 
          __pyx_1 = ((__pyx_v_name[1]) == 0);
1019
 
          if (!__pyx_1) {
1020
 
            __pyx_1 = ((__pyx_v_name[1]) == '.');
1021
 
            if (__pyx_1) {
1022
 
              __pyx_1 = ((__pyx_v_name[2]) == 0);
1023
 
            }
1024
 
          }
1025
 
        }
1026
 
        __pyx_7 = (!__pyx_1);
1027
 
        if (__pyx_7) {
1028
 
 
1029
 
          /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":339 */
1030
 
          __pyx_3 = PyObject_CallObject(((PyObject*)__pyx_ptype_12_readdir_pyx__Stat), 0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; goto __pyx_L10;}
1031
 
          if (!__Pyx_TypeTest(__pyx_3, __pyx_ptype_12_readdir_pyx__Stat)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 339; goto __pyx_L10;}
1032
 
          Py_DECREF(((PyObject *)__pyx_v_statvalue));
1033
 
          __pyx_v_statvalue = ((struct __pyx_obj_12_readdir_pyx__Stat *)__pyx_3);
1034
 
          __pyx_3 = 0;
1035
 
 
1036
 
          /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":340 */
1037
 
          __pyx_v_stat_result = lstat(__pyx_v_entry->d_name,(&__pyx_v_statvalue->_st));
1038
 
 
1039
 
          /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":341 */
1040
 
          __pyx_1 = (__pyx_v_stat_result != 0);
1041
 
          if (__pyx_1) {
1042
 
            __pyx_7 = (errno != ENOENT);
1043
 
            if (__pyx_7) {
1044
 
              __pyx_4 = __Pyx_GetName(__pyx_b, __pyx_n_OSError); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; goto __pyx_L10;}
1045
 
              __pyx_2 = PyInt_FromLong(errno); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; goto __pyx_L10;}
1046
 
              __pyx_5 = PyString_FromString(strerror(errno)); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; goto __pyx_L10;}
1047
 
              __pyx_3 = PyNumber_Add(__pyx_k30p, __pyx_5); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; goto __pyx_L10;}
1048
 
              Py_DECREF(__pyx_5); __pyx_5 = 0;
1049
 
              __pyx_5 = PyNumber_Add(__pyx_v_path, __pyx_k31p); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 344; goto __pyx_L10;}
1050
 
              __pyx_8 = PyString_FromString(__pyx_v_entry->d_name); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 344; goto __pyx_L10;}
1051
 
              __pyx_9 = PyNumber_Add(__pyx_5, __pyx_8); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 344; goto __pyx_L10;}
1052
 
              Py_DECREF(__pyx_5); __pyx_5 = 0;
1053
 
              Py_DECREF(__pyx_8); __pyx_8 = 0;
1054
 
              __pyx_5 = PyTuple_New(3); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; goto __pyx_L10;}
1055
 
              PyTuple_SET_ITEM(__pyx_5, 0, __pyx_2);
1056
 
              PyTuple_SET_ITEM(__pyx_5, 1, __pyx_3);
1057
 
              PyTuple_SET_ITEM(__pyx_5, 2, __pyx_9);
1058
 
              __pyx_2 = 0;
1059
 
              __pyx_3 = 0;
1060
 
              __pyx_9 = 0;
1061
 
              __pyx_8 = PyObject_CallObject(__pyx_4, __pyx_5); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; goto __pyx_L10;}
1062
 
              Py_DECREF(__pyx_4); __pyx_4 = 0;
1063
 
              Py_DECREF(__pyx_5); __pyx_5 = 0;
1064
 
              __Pyx_Raise(__pyx_8, 0, 0);
1065
 
              Py_DECREF(__pyx_8); __pyx_8 = 0;
1066
 
              {__pyx_filename = __pyx_f[0]; __pyx_lineno = 343; goto __pyx_L10;}
1067
 
              goto __pyx_L21;
1068
 
            }
1069
 
            /*else*/ {
1070
 
 
1071
 
              /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":346 */
1072
 
              __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n__missing); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 346; goto __pyx_L10;}
1073
 
              Py_DECREF(__pyx_v_kind);
1074
 
              __pyx_v_kind = __pyx_2;
1075
 
              __pyx_2 = 0;
1076
 
 
1077
 
              /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":347 */
1078
 
              Py_INCREF(Py_None);
1079
 
              Py_DECREF(((PyObject *)__pyx_v_statvalue));
1080
 
              __pyx_v_statvalue = ((struct __pyx_obj_12_readdir_pyx__Stat *)Py_None);
1081
 
            }
1082
 
            __pyx_L21:;
1083
 
            goto __pyx_L20;
1084
 
          }
1085
 
          __pyx_L20:;
1086
 
 
1087
 
          /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":355 */
1088
 
          __pyx_3 = PyLong_FromUnsignedLong(__pyx_v_entry->d_ino); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 355; goto __pyx_L10;}
1089
 
          __pyx_9 = PyString_FromString(__pyx_v_entry->d_name); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 355; goto __pyx_L10;}
1090
 
          __pyx_4 = PyTuple_New(5); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 355; goto __pyx_L10;}
1091
 
          PyTuple_SET_ITEM(__pyx_4, 0, __pyx_3);
1092
 
          PyTuple_SET_ITEM(__pyx_4, 1, __pyx_9);
1093
 
          Py_INCREF(Py_None);
1094
 
          PyTuple_SET_ITEM(__pyx_4, 2, Py_None);
1095
 
          Py_INCREF(((PyObject *)__pyx_v_statvalue));
1096
 
          PyTuple_SET_ITEM(__pyx_4, 3, ((PyObject *)__pyx_v_statvalue));
1097
 
          Py_INCREF(Py_None);
1098
 
          PyTuple_SET_ITEM(__pyx_4, 4, Py_None);
1099
 
          __pyx_3 = 0;
1100
 
          __pyx_9 = 0;
1101
 
          __pyx_1 = PyList_Append(__pyx_v_result,__pyx_4); if (__pyx_1 == (-1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 355; goto __pyx_L10;}
1102
 
          Py_DECREF(__pyx_4); __pyx_4 = 0;
1103
 
          goto __pyx_L19;
1104
 
        }
1105
 
        __pyx_L19:;
1106
 
        __pyx_L12:;
1107
 
      }
1108
 
    }
1109
 
    /*finally:*/ {
1110
 
      int __pyx_why;
1111
 
      PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
1112
 
      int __pyx_exc_lineno;
1113
 
      __pyx_why = 0; goto __pyx_L11;
1114
 
      __pyx_L10: {
1115
 
        __pyx_why = 4;
1116
 
        Py_XDECREF(__pyx_5); __pyx_5 = 0;
1117
 
        Py_XDECREF(__pyx_8); __pyx_8 = 0;
1118
 
        Py_XDECREF(__pyx_2); __pyx_2 = 0;
1119
 
        Py_XDECREF(__pyx_3); __pyx_3 = 0;
1120
 
        Py_XDECREF(__pyx_9); __pyx_9 = 0;
1121
 
        Py_XDECREF(__pyx_4); __pyx_4 = 0;
1122
 
        PyErr_Fetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
1123
 
        __pyx_exc_lineno = __pyx_lineno;
1124
 
        goto __pyx_L11;
1125
 
      }
1126
 
      __pyx_L11:;
1127
 
      __pyx_7 = ((-1) == closedir(__pyx_v_the_dir));
1128
 
      if (__pyx_7) {
1129
 
        __pyx_5 = __Pyx_GetName(__pyx_b, __pyx_n_OSError); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; goto __pyx_L22;}
1130
 
        __pyx_8 = PyInt_FromLong(errno); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; goto __pyx_L22;}
1131
 
        __pyx_2 = PyString_FromString(strerror(errno)); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; goto __pyx_L22;}
1132
 
        __pyx_3 = PyNumber_Add(__pyx_k32p, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; goto __pyx_L22;}
1133
 
        Py_DECREF(__pyx_2); __pyx_2 = 0;
1134
 
        __pyx_9 = PyTuple_New(3); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; goto __pyx_L22;}
1135
 
        PyTuple_SET_ITEM(__pyx_9, 0, __pyx_8);
1136
 
        PyTuple_SET_ITEM(__pyx_9, 1, __pyx_3);
1137
 
        Py_INCREF(__pyx_v_path);
1138
 
        PyTuple_SET_ITEM(__pyx_9, 2, __pyx_v_path);
1139
 
        __pyx_8 = 0;
1140
 
        __pyx_3 = 0;
1141
 
        __pyx_4 = PyObject_CallObject(__pyx_5, __pyx_9); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; goto __pyx_L22;}
1142
 
        Py_DECREF(__pyx_5); __pyx_5 = 0;
1143
 
        Py_DECREF(__pyx_9); __pyx_9 = 0;
1144
 
        __Pyx_Raise(__pyx_4, 0, 0);
1145
 
        Py_DECREF(__pyx_4); __pyx_4 = 0;
1146
 
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 359; goto __pyx_L22;}
1147
 
        goto __pyx_L23;
1148
 
      }
1149
 
      __pyx_L23:;
1150
 
      goto __pyx_L24;
1151
 
      __pyx_L22:;
1152
 
      if (__pyx_why == 4) {
1153
 
        Py_XDECREF(__pyx_exc_type);
1154
 
        Py_XDECREF(__pyx_exc_value);
1155
 
        Py_XDECREF(__pyx_exc_tb);
1156
 
      }
1157
 
      goto __pyx_L6;
1158
 
      __pyx_L24:;
1159
 
      switch (__pyx_why) {
1160
 
        case 4: {
1161
 
          PyErr_Restore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
1162
 
          __pyx_lineno = __pyx_exc_lineno;
1163
 
          __pyx_exc_type = 0;
1164
 
          __pyx_exc_value = 0;
1165
 
          __pyx_exc_tb = 0;
1166
 
          goto __pyx_L6;
1167
 
        }
1168
 
      }
1169
 
    }
1170
 
  }
1171
 
  /*finally:*/ {
1172
 
    int __pyx_why;
1173
 
    PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
1174
 
    int __pyx_exc_lineno;
1175
 
    __pyx_why = 0; goto __pyx_L7;
1176
 
    __pyx_L6: {
1177
 
      __pyx_why = 4;
1178
 
      Py_XDECREF(__pyx_2); __pyx_2 = 0;
1179
 
      Py_XDECREF(__pyx_8); __pyx_8 = 0;
1180
 
      Py_XDECREF(__pyx_3); __pyx_3 = 0;
1181
 
      Py_XDECREF(__pyx_5); __pyx_5 = 0;
1182
 
      Py_XDECREF(__pyx_9); __pyx_9 = 0;
1183
 
      Py_XDECREF(__pyx_4); __pyx_4 = 0;
1184
 
      PyErr_Fetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
1185
 
      __pyx_exc_lineno = __pyx_lineno;
1186
 
      goto __pyx_L7;
1187
 
    }
1188
 
    __pyx_L7:;
1189
 
    __pyx_1 = ((-1) != __pyx_v_orig_dir_fd);
1190
 
    if (__pyx_1) {
1191
 
 
1192
 
      /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":362 */
1193
 
      __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_False); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 362; goto __pyx_L25;}
1194
 
      Py_DECREF(__pyx_v_failed);
1195
 
      __pyx_v_failed = __pyx_2;
1196
 
      __pyx_2 = 0;
1197
 
 
1198
 
      /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":363 */
1199
 
      __pyx_7 = ((-1) == fchdir(__pyx_v_orig_dir_fd));
1200
 
      if (__pyx_7) {
1201
 
        __pyx_8 = __Pyx_GetName(__pyx_b, __pyx_n_True); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 365; goto __pyx_L25;}
1202
 
        Py_DECREF(__pyx_v_failed);
1203
 
        __pyx_v_failed = __pyx_8;
1204
 
        __pyx_8 = 0;
1205
 
        goto __pyx_L27;
1206
 
      }
1207
 
      __pyx_L27:;
1208
 
 
1209
 
      /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":366 */
1210
 
      __pyx_3 = PyInt_FromLong(((-1) == close(__pyx_v_orig_dir_fd))); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; goto __pyx_L25;}
1211
 
      __pyx_1 = PyObject_IsTrue(__pyx_3); if (__pyx_1 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; goto __pyx_L25;}
1212
 
      if (!__pyx_1) {
1213
 
        Py_DECREF(__pyx_3); __pyx_3 = 0;
1214
 
        __pyx_3 = __pyx_v_failed;
1215
 
        Py_INCREF(__pyx_3);
1216
 
      }
1217
 
      __pyx_7 = PyObject_IsTrue(__pyx_3); if (__pyx_7 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; goto __pyx_L25;}
1218
 
      Py_DECREF(__pyx_3); __pyx_3 = 0;
1219
 
      if (__pyx_7) {
1220
 
        __pyx_5 = __Pyx_GetName(__pyx_b, __pyx_n_OSError); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; goto __pyx_L25;}
1221
 
        __pyx_9 = PyInt_FromLong(errno); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; goto __pyx_L25;}
1222
 
        __pyx_4 = PyString_FromString(strerror(errno)); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; goto __pyx_L25;}
1223
 
        __pyx_2 = PyNumber_Add(__pyx_k33p, __pyx_4); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; goto __pyx_L25;}
1224
 
        Py_DECREF(__pyx_4); __pyx_4 = 0;
1225
 
        __pyx_8 = PyTuple_New(2); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; goto __pyx_L25;}
1226
 
        PyTuple_SET_ITEM(__pyx_8, 0, __pyx_9);
1227
 
        PyTuple_SET_ITEM(__pyx_8, 1, __pyx_2);
1228
 
        __pyx_9 = 0;
1229
 
        __pyx_2 = 0;
1230
 
        __pyx_3 = PyObject_CallObject(__pyx_5, __pyx_8); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; goto __pyx_L25;}
1231
 
        Py_DECREF(__pyx_5); __pyx_5 = 0;
1232
 
        Py_DECREF(__pyx_8); __pyx_8 = 0;
1233
 
        __Pyx_Raise(__pyx_3, 0, 0);
1234
 
        Py_DECREF(__pyx_3); __pyx_3 = 0;
1235
 
        {__pyx_filename = __pyx_f[0]; __pyx_lineno = 367; goto __pyx_L25;}
1236
 
        goto __pyx_L28;
1237
 
      }
1238
 
      __pyx_L28:;
1239
 
      goto __pyx_L26;
1240
 
    }
1241
 
    __pyx_L26:;
1242
 
    goto __pyx_L29;
1243
 
    __pyx_L25:;
1244
 
    if (__pyx_why == 4) {
1245
 
      Py_XDECREF(__pyx_exc_type);
1246
 
      Py_XDECREF(__pyx_exc_value);
1247
 
      Py_XDECREF(__pyx_exc_tb);
1248
 
    }
1249
 
    goto __pyx_L1;
1250
 
    __pyx_L29:;
1251
 
    switch (__pyx_why) {
1252
 
      case 4: {
1253
 
        PyErr_Restore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
1254
 
        __pyx_lineno = __pyx_exc_lineno;
1255
 
        __pyx_exc_type = 0;
1256
 
        __pyx_exc_value = 0;
1257
 
        __pyx_exc_tb = 0;
1258
 
        goto __pyx_L1;
1259
 
      }
1260
 
    }
1261
 
  }
1262
 
 
1263
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":369 */
1264
 
  Py_INCREF(__pyx_v_result);
1265
 
  __pyx_r = __pyx_v_result;
1266
 
  goto __pyx_L0;
1267
 
 
1268
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
1269
 
  goto __pyx_L0;
1270
 
  __pyx_L1:;
1271
 
  Py_XDECREF(__pyx_2);
1272
 
  Py_XDECREF(__pyx_3);
1273
 
  Py_XDECREF(__pyx_4);
1274
 
  Py_XDECREF(__pyx_5);
1275
 
  Py_XDECREF(__pyx_8);
1276
 
  Py_XDECREF(__pyx_9);
1277
 
  __Pyx_AddTraceback("_readdir_pyx._read_dir");
1278
 
  __pyx_r = 0;
1279
 
  __pyx_L0:;
1280
 
  Py_DECREF(__pyx_v_statvalue);
1281
 
  Py_DECREF(__pyx_v_result);
1282
 
  Py_DECREF(__pyx_v_kind);
1283
 
  Py_DECREF(__pyx_v_failed);
1284
 
  Py_DECREF(__pyx_v_path);
1285
 
  return __pyx_r;
1286
 
}
1287
 
 
1288
 
static __Pyx_InternTabEntry __pyx_intern_tab[] = {
1289
 
  {&__pyx_n_Exception, "Exception"},
1290
 
  {&__pyx_n_False, "False"},
1291
 
  {&__pyx_n_OSError, "OSError"},
1292
 
  {&__pyx_n_True, "True"},
1293
 
  {&__pyx_n__block, "_block"},
1294
 
  {&__pyx_n__chardev, "_chardev"},
1295
 
  {&__pyx_n__ctime, "_ctime"},
1296
 
  {&__pyx_n__directory, "_directory"},
1297
 
  {&__pyx_n__fifo, "_fifo"},
1298
 
  {&__pyx_n__file, "_file"},
1299
 
  {&__pyx_n__missing, "_missing"},
1300
 
  {&__pyx_n__mtime, "_mtime"},
1301
 
  {&__pyx_n__socket, "_socket"},
1302
 
  {&__pyx_n__symlink, "_symlink"},
1303
 
  {&__pyx_n__unknown, "_unknown"},
1304
 
  {&__pyx_n_block, "block"},
1305
 
  {&__pyx_n_bzrlib, "bzrlib"},
1306
 
  {&__pyx_n_chardev, "chardev"},
1307
 
  {&__pyx_n_directory, "directory"},
1308
 
  {&__pyx_n_fifo, "fifo"},
1309
 
  {&__pyx_n_file, "file"},
1310
 
  {&__pyx_n_missing, "missing"},
1311
 
  {&__pyx_n_os, "os"},
1312
 
  {&__pyx_n_osutils, "osutils"},
1313
 
  {&__pyx_n_safe_utf8, "safe_utf8"},
1314
 
  {&__pyx_n_socket, "socket"},
1315
 
  {&__pyx_n_st_mode, "st_mode"},
1316
 
  {&__pyx_n_st_size, "st_size"},
1317
 
  {&__pyx_n_symlink, "symlink"},
1318
 
  {&__pyx_n_sys, "sys"},
1319
 
  {&__pyx_n_unknown, "unknown"},
1320
 
  {0, 0}
1321
 
};
1322
 
 
1323
 
static __Pyx_StringTabEntry __pyx_string_tab[] = {
1324
 
  {&__pyx_k14p, __pyx_k14, sizeof(__pyx_k14)},
1325
 
  {&__pyx_k16p, __pyx_k16, sizeof(__pyx_k16)},
1326
 
  {&__pyx_k17p, __pyx_k17, sizeof(__pyx_k17)},
1327
 
  {&__pyx_k18p, __pyx_k18, sizeof(__pyx_k18)},
1328
 
  {&__pyx_k19p, __pyx_k19, sizeof(__pyx_k19)},
1329
 
  {&__pyx_k20p, __pyx_k20, sizeof(__pyx_k20)},
1330
 
  {&__pyx_k21p, __pyx_k21, sizeof(__pyx_k21)},
1331
 
  {&__pyx_k22p, __pyx_k22, sizeof(__pyx_k22)},
1332
 
  {&__pyx_k24p, __pyx_k24, sizeof(__pyx_k24)},
1333
 
  {&__pyx_k25p, __pyx_k25, sizeof(__pyx_k25)},
1334
 
  {&__pyx_k26p, __pyx_k26, sizeof(__pyx_k26)},
1335
 
  {&__pyx_k28p, __pyx_k28, sizeof(__pyx_k28)},
1336
 
  {&__pyx_k29p, __pyx_k29, sizeof(__pyx_k29)},
1337
 
  {&__pyx_k30p, __pyx_k30, sizeof(__pyx_k30)},
1338
 
  {&__pyx_k31p, __pyx_k31, sizeof(__pyx_k31)},
1339
 
  {&__pyx_k32p, __pyx_k32, sizeof(__pyx_k32)},
1340
 
  {&__pyx_k33p, __pyx_k33, sizeof(__pyx_k33)},
1341
 
  {0, 0, 0}
1342
 
};
1343
 
 
1344
 
static PyObject *__pyx_tp_new_12_readdir_pyx__Stat(PyTypeObject *t, PyObject *a, PyObject *k) {
1345
 
  PyObject *o = (*t->tp_alloc)(t, 0);
1346
 
  if (!o) return 0;
1347
 
  return o;
1348
 
}
1349
 
 
1350
 
static void __pyx_tp_dealloc_12_readdir_pyx__Stat(PyObject *o) {
1351
 
  (*o->ob_type->tp_free)(o);
1352
 
}
1353
 
 
1354
 
static int __pyx_tp_traverse_12_readdir_pyx__Stat(PyObject *o, visitproc v, void *a) {
1355
 
  return 0;
1356
 
}
1357
 
 
1358
 
static int __pyx_tp_clear_12_readdir_pyx__Stat(PyObject *o) {
1359
 
  return 0;
1360
 
}
1361
 
 
1362
 
static PyObject *__pyx_getprop_12_readdir_pyx_5_Stat_st_dev(PyObject *o, void *x) {
1363
 
  return __pyx_f_12_readdir_pyx_5_Stat_6st_dev___get__(o);
1364
 
}
1365
 
 
1366
 
static PyObject *__pyx_getprop_12_readdir_pyx_5_Stat_st_ino(PyObject *o, void *x) {
1367
 
  return __pyx_f_12_readdir_pyx_5_Stat_6st_ino___get__(o);
1368
 
}
1369
 
 
1370
 
static PyObject *__pyx_getprop_12_readdir_pyx_5_Stat_st_mode(PyObject *o, void *x) {
1371
 
  return __pyx_f_12_readdir_pyx_5_Stat_7st_mode___get__(o);
1372
 
}
1373
 
 
1374
 
static PyObject *__pyx_getprop_12_readdir_pyx_5_Stat_st_ctime(PyObject *o, void *x) {
1375
 
  return __pyx_f_12_readdir_pyx_5_Stat_8st_ctime___get__(o);
1376
 
}
1377
 
 
1378
 
static PyObject *__pyx_getprop_12_readdir_pyx_5_Stat_st_mtime(PyObject *o, void *x) {
1379
 
  return __pyx_f_12_readdir_pyx_5_Stat_8st_mtime___get__(o);
1380
 
}
1381
 
 
1382
 
static PyObject *__pyx_getprop_12_readdir_pyx_5_Stat_st_size(PyObject *o, void *x) {
1383
 
  return __pyx_f_12_readdir_pyx_5_Stat_7st_size___get__(o);
1384
 
}
1385
 
 
1386
 
static struct PyMethodDef __pyx_methods_12_readdir_pyx__Stat[] = {
1387
 
  {0, 0, 0, 0}
1388
 
};
1389
 
 
1390
 
static struct PyGetSetDef __pyx_getsets_12_readdir_pyx__Stat[] = {
1391
 
  {"st_dev", __pyx_getprop_12_readdir_pyx_5_Stat_st_dev, 0, 0, 0},
1392
 
  {"st_ino", __pyx_getprop_12_readdir_pyx_5_Stat_st_ino, 0, 0, 0},
1393
 
  {"st_mode", __pyx_getprop_12_readdir_pyx_5_Stat_st_mode, 0, 0, 0},
1394
 
  {"st_ctime", __pyx_getprop_12_readdir_pyx_5_Stat_st_ctime, 0, 0, 0},
1395
 
  {"st_mtime", __pyx_getprop_12_readdir_pyx_5_Stat_st_mtime, 0, 0, 0},
1396
 
  {"st_size", __pyx_getprop_12_readdir_pyx_5_Stat_st_size, 0, 0, 0},
1397
 
  {0, 0, 0, 0, 0}
1398
 
};
1399
 
 
1400
 
static PyNumberMethods __pyx_tp_as_number__Stat = {
1401
 
  0, /*nb_add*/
1402
 
  0, /*nb_subtract*/
1403
 
  0, /*nb_multiply*/
1404
 
  0, /*nb_divide*/
1405
 
  0, /*nb_remainder*/
1406
 
  0, /*nb_divmod*/
1407
 
  0, /*nb_power*/
1408
 
  0, /*nb_negative*/
1409
 
  0, /*nb_positive*/
1410
 
  0, /*nb_absolute*/
1411
 
  0, /*nb_nonzero*/
1412
 
  0, /*nb_invert*/
1413
 
  0, /*nb_lshift*/
1414
 
  0, /*nb_rshift*/
1415
 
  0, /*nb_and*/
1416
 
  0, /*nb_xor*/
1417
 
  0, /*nb_or*/
1418
 
  0, /*nb_coerce*/
1419
 
  0, /*nb_int*/
1420
 
  0, /*nb_long*/
1421
 
  0, /*nb_float*/
1422
 
  0, /*nb_oct*/
1423
 
  0, /*nb_hex*/
1424
 
  0, /*nb_inplace_add*/
1425
 
  0, /*nb_inplace_subtract*/
1426
 
  0, /*nb_inplace_multiply*/
1427
 
  0, /*nb_inplace_divide*/
1428
 
  0, /*nb_inplace_remainder*/
1429
 
  0, /*nb_inplace_power*/
1430
 
  0, /*nb_inplace_lshift*/
1431
 
  0, /*nb_inplace_rshift*/
1432
 
  0, /*nb_inplace_and*/
1433
 
  0, /*nb_inplace_xor*/
1434
 
  0, /*nb_inplace_or*/
1435
 
  0, /*nb_floor_divide*/
1436
 
  0, /*nb_true_divide*/
1437
 
  0, /*nb_inplace_floor_divide*/
1438
 
  0, /*nb_inplace_true_divide*/
1439
 
  #if Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX
1440
 
  0, /*nb_index*/
1441
 
  #endif
1442
 
};
1443
 
 
1444
 
static PySequenceMethods __pyx_tp_as_sequence__Stat = {
1445
 
  0, /*sq_length*/
1446
 
  0, /*sq_concat*/
1447
 
  0, /*sq_repeat*/
1448
 
  0, /*sq_item*/
1449
 
  0, /*sq_slice*/
1450
 
  0, /*sq_ass_item*/
1451
 
  0, /*sq_ass_slice*/
1452
 
  0, /*sq_contains*/
1453
 
  0, /*sq_inplace_concat*/
1454
 
  0, /*sq_inplace_repeat*/
1455
 
};
1456
 
 
1457
 
static PyMappingMethods __pyx_tp_as_mapping__Stat = {
1458
 
  0, /*mp_length*/
1459
 
  0, /*mp_subscript*/
1460
 
  0, /*mp_ass_subscript*/
1461
 
};
1462
 
 
1463
 
static PyBufferProcs __pyx_tp_as_buffer__Stat = {
1464
 
  0, /*bf_getreadbuffer*/
1465
 
  0, /*bf_getwritebuffer*/
1466
 
  0, /*bf_getsegcount*/
1467
 
  0, /*bf_getcharbuffer*/
1468
 
};
1469
 
 
1470
 
PyTypeObject __pyx_type_12_readdir_pyx__Stat = {
1471
 
  PyObject_HEAD_INIT(0)
1472
 
  0, /*ob_size*/
1473
 
  "_readdir_pyx._Stat", /*tp_name*/
1474
 
  sizeof(struct __pyx_obj_12_readdir_pyx__Stat), /*tp_basicsize*/
1475
 
  0, /*tp_itemsize*/
1476
 
  __pyx_tp_dealloc_12_readdir_pyx__Stat, /*tp_dealloc*/
1477
 
  0, /*tp_print*/
1478
 
  0, /*tp_getattr*/
1479
 
  0, /*tp_setattr*/
1480
 
  0, /*tp_compare*/
1481
 
  __pyx_f_12_readdir_pyx_5_Stat___repr__, /*tp_repr*/
1482
 
  &__pyx_tp_as_number__Stat, /*tp_as_number*/
1483
 
  &__pyx_tp_as_sequence__Stat, /*tp_as_sequence*/
1484
 
  &__pyx_tp_as_mapping__Stat, /*tp_as_mapping*/
1485
 
  0, /*tp_hash*/
1486
 
  0, /*tp_call*/
1487
 
  0, /*tp_str*/
1488
 
  0, /*tp_getattro*/
1489
 
  0, /*tp_setattro*/
1490
 
  &__pyx_tp_as_buffer__Stat, /*tp_as_buffer*/
1491
 
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
1492
 
  "Represent a \'stat\' result.", /*tp_doc*/
1493
 
  __pyx_tp_traverse_12_readdir_pyx__Stat, /*tp_traverse*/
1494
 
  __pyx_tp_clear_12_readdir_pyx__Stat, /*tp_clear*/
1495
 
  0, /*tp_richcompare*/
1496
 
  0, /*tp_weaklistoffset*/
1497
 
  0, /*tp_iter*/
1498
 
  0, /*tp_iternext*/
1499
 
  __pyx_methods_12_readdir_pyx__Stat, /*tp_methods*/
1500
 
  0, /*tp_members*/
1501
 
  __pyx_getsets_12_readdir_pyx__Stat, /*tp_getset*/
1502
 
  0, /*tp_base*/
1503
 
  0, /*tp_dict*/
1504
 
  0, /*tp_descr_get*/
1505
 
  0, /*tp_descr_set*/
1506
 
  0, /*tp_dictoffset*/
1507
 
  0, /*tp_init*/
1508
 
  0, /*tp_alloc*/
1509
 
  __pyx_tp_new_12_readdir_pyx__Stat, /*tp_new*/
1510
 
  0, /*tp_free*/
1511
 
  0, /*tp_is_gc*/
1512
 
  0, /*tp_bases*/
1513
 
  0, /*tp_mro*/
1514
 
  0, /*tp_cache*/
1515
 
  0, /*tp_subclasses*/
1516
 
  0, /*tp_weaklist*/
1517
 
};
1518
 
static struct __pyx_vtabstruct_12_readdir_pyx_UTF8DirReader __pyx_vtable_12_readdir_pyx_UTF8DirReader;
1519
 
 
1520
 
static PyObject *__pyx_tp_new_12_readdir_pyx_UTF8DirReader(PyTypeObject *t, PyObject *a, PyObject *k) {
1521
 
  struct __pyx_obj_12_readdir_pyx_UTF8DirReader *p;
1522
 
  PyObject *o = (*t->tp_alloc)(t, 0);
1523
 
  if (!o) return 0;
1524
 
  p = ((struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)o);
1525
 
  *(struct __pyx_vtabstruct_12_readdir_pyx_UTF8DirReader **)&p->__pyx_vtab = __pyx_vtabptr_12_readdir_pyx_UTF8DirReader;
1526
 
  p->_safe_utf8 = Py_None; Py_INCREF(Py_None);
1527
 
  p->_directory = Py_None; Py_INCREF(Py_None);
1528
 
  p->_chardev = Py_None; Py_INCREF(Py_None);
1529
 
  p->_block = Py_None; Py_INCREF(Py_None);
1530
 
  p->_file = Py_None; Py_INCREF(Py_None);
1531
 
  p->_fifo = Py_None; Py_INCREF(Py_None);
1532
 
  p->_symlink = Py_None; Py_INCREF(Py_None);
1533
 
  p->_socket = Py_None; Py_INCREF(Py_None);
1534
 
  p->_unknown = Py_None; Py_INCREF(Py_None);
1535
 
  return o;
1536
 
}
1537
 
 
1538
 
static void __pyx_tp_dealloc_12_readdir_pyx_UTF8DirReader(PyObject *o) {
1539
 
  struct __pyx_obj_12_readdir_pyx_UTF8DirReader *p = (struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)o;
1540
 
  Py_XDECREF(p->_safe_utf8);
1541
 
  Py_XDECREF(p->_directory);
1542
 
  Py_XDECREF(p->_chardev);
1543
 
  Py_XDECREF(p->_block);
1544
 
  Py_XDECREF(p->_file);
1545
 
  Py_XDECREF(p->_fifo);
1546
 
  Py_XDECREF(p->_symlink);
1547
 
  Py_XDECREF(p->_socket);
1548
 
  Py_XDECREF(p->_unknown);
1549
 
  (*o->ob_type->tp_free)(o);
1550
 
}
1551
 
 
1552
 
static int __pyx_tp_traverse_12_readdir_pyx_UTF8DirReader(PyObject *o, visitproc v, void *a) {
1553
 
  int e;
1554
 
  struct __pyx_obj_12_readdir_pyx_UTF8DirReader *p = (struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)o;
1555
 
  if (p->_safe_utf8) {
1556
 
    e = (*v)(p->_safe_utf8, a); if (e) return e;
1557
 
  }
1558
 
  if (p->_directory) {
1559
 
    e = (*v)(p->_directory, a); if (e) return e;
1560
 
  }
1561
 
  if (p->_chardev) {
1562
 
    e = (*v)(p->_chardev, a); if (e) return e;
1563
 
  }
1564
 
  if (p->_block) {
1565
 
    e = (*v)(p->_block, a); if (e) return e;
1566
 
  }
1567
 
  if (p->_file) {
1568
 
    e = (*v)(p->_file, a); if (e) return e;
1569
 
  }
1570
 
  if (p->_fifo) {
1571
 
    e = (*v)(p->_fifo, a); if (e) return e;
1572
 
  }
1573
 
  if (p->_symlink) {
1574
 
    e = (*v)(p->_symlink, a); if (e) return e;
1575
 
  }
1576
 
  if (p->_socket) {
1577
 
    e = (*v)(p->_socket, a); if (e) return e;
1578
 
  }
1579
 
  if (p->_unknown) {
1580
 
    e = (*v)(p->_unknown, a); if (e) return e;
1581
 
  }
1582
 
  return 0;
1583
 
}
1584
 
 
1585
 
static int __pyx_tp_clear_12_readdir_pyx_UTF8DirReader(PyObject *o) {
1586
 
  struct __pyx_obj_12_readdir_pyx_UTF8DirReader *p = (struct __pyx_obj_12_readdir_pyx_UTF8DirReader *)o;
1587
 
  Py_XDECREF(p->_safe_utf8);
1588
 
  p->_safe_utf8 = Py_None; Py_INCREF(Py_None);
1589
 
  Py_XDECREF(p->_directory);
1590
 
  p->_directory = Py_None; Py_INCREF(Py_None);
1591
 
  Py_XDECREF(p->_chardev);
1592
 
  p->_chardev = Py_None; Py_INCREF(Py_None);
1593
 
  Py_XDECREF(p->_block);
1594
 
  p->_block = Py_None; Py_INCREF(Py_None);
1595
 
  Py_XDECREF(p->_file);
1596
 
  p->_file = Py_None; Py_INCREF(Py_None);
1597
 
  Py_XDECREF(p->_fifo);
1598
 
  p->_fifo = Py_None; Py_INCREF(Py_None);
1599
 
  Py_XDECREF(p->_symlink);
1600
 
  p->_symlink = Py_None; Py_INCREF(Py_None);
1601
 
  Py_XDECREF(p->_socket);
1602
 
  p->_socket = Py_None; Py_INCREF(Py_None);
1603
 
  Py_XDECREF(p->_unknown);
1604
 
  p->_unknown = Py_None; Py_INCREF(Py_None);
1605
 
  return 0;
1606
 
}
1607
 
 
1608
 
static struct PyMethodDef __pyx_methods_12_readdir_pyx_UTF8DirReader[] = {
1609
 
  {"kind_from_mode", (PyCFunction)__pyx_f_12_readdir_pyx_13UTF8DirReader_kind_from_mode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_12_readdir_pyx_13UTF8DirReader_kind_from_mode},
1610
 
  {"top_prefix_to_starting_dir", (PyCFunction)__pyx_f_12_readdir_pyx_13UTF8DirReader_top_prefix_to_starting_dir, METH_VARARGS|METH_KEYWORDS, __pyx_doc_12_readdir_pyx_13UTF8DirReader_top_prefix_to_starting_dir},
1611
 
  {"read_dir", (PyCFunction)__pyx_f_12_readdir_pyx_13UTF8DirReader_read_dir, METH_VARARGS|METH_KEYWORDS, __pyx_doc_12_readdir_pyx_13UTF8DirReader_read_dir},
1612
 
  {0, 0, 0, 0}
1613
 
};
1614
 
 
1615
 
static struct PyMemberDef __pyx_members_12_readdir_pyx_UTF8DirReader[] = {
1616
 
  {"_safe_utf8", T_OBJECT, offsetof(struct __pyx_obj_12_readdir_pyx_UTF8DirReader, _safe_utf8), READONLY, 0},
1617
 
  {0, 0, 0, 0, 0}
1618
 
};
1619
 
 
1620
 
static PyNumberMethods __pyx_tp_as_number_UTF8DirReader = {
1621
 
  0, /*nb_add*/
1622
 
  0, /*nb_subtract*/
1623
 
  0, /*nb_multiply*/
1624
 
  0, /*nb_divide*/
1625
 
  0, /*nb_remainder*/
1626
 
  0, /*nb_divmod*/
1627
 
  0, /*nb_power*/
1628
 
  0, /*nb_negative*/
1629
 
  0, /*nb_positive*/
1630
 
  0, /*nb_absolute*/
1631
 
  0, /*nb_nonzero*/
1632
 
  0, /*nb_invert*/
1633
 
  0, /*nb_lshift*/
1634
 
  0, /*nb_rshift*/
1635
 
  0, /*nb_and*/
1636
 
  0, /*nb_xor*/
1637
 
  0, /*nb_or*/
1638
 
  0, /*nb_coerce*/
1639
 
  0, /*nb_int*/
1640
 
  0, /*nb_long*/
1641
 
  0, /*nb_float*/
1642
 
  0, /*nb_oct*/
1643
 
  0, /*nb_hex*/
1644
 
  0, /*nb_inplace_add*/
1645
 
  0, /*nb_inplace_subtract*/
1646
 
  0, /*nb_inplace_multiply*/
1647
 
  0, /*nb_inplace_divide*/
1648
 
  0, /*nb_inplace_remainder*/
1649
 
  0, /*nb_inplace_power*/
1650
 
  0, /*nb_inplace_lshift*/
1651
 
  0, /*nb_inplace_rshift*/
1652
 
  0, /*nb_inplace_and*/
1653
 
  0, /*nb_inplace_xor*/
1654
 
  0, /*nb_inplace_or*/
1655
 
  0, /*nb_floor_divide*/
1656
 
  0, /*nb_true_divide*/
1657
 
  0, /*nb_inplace_floor_divide*/
1658
 
  0, /*nb_inplace_true_divide*/
1659
 
  #if Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX
1660
 
  0, /*nb_index*/
1661
 
  #endif
1662
 
};
1663
 
 
1664
 
static PySequenceMethods __pyx_tp_as_sequence_UTF8DirReader = {
1665
 
  0, /*sq_length*/
1666
 
  0, /*sq_concat*/
1667
 
  0, /*sq_repeat*/
1668
 
  0, /*sq_item*/
1669
 
  0, /*sq_slice*/
1670
 
  0, /*sq_ass_item*/
1671
 
  0, /*sq_ass_slice*/
1672
 
  0, /*sq_contains*/
1673
 
  0, /*sq_inplace_concat*/
1674
 
  0, /*sq_inplace_repeat*/
1675
 
};
1676
 
 
1677
 
static PyMappingMethods __pyx_tp_as_mapping_UTF8DirReader = {
1678
 
  0, /*mp_length*/
1679
 
  0, /*mp_subscript*/
1680
 
  0, /*mp_ass_subscript*/
1681
 
};
1682
 
 
1683
 
static PyBufferProcs __pyx_tp_as_buffer_UTF8DirReader = {
1684
 
  0, /*bf_getreadbuffer*/
1685
 
  0, /*bf_getwritebuffer*/
1686
 
  0, /*bf_getsegcount*/
1687
 
  0, /*bf_getcharbuffer*/
1688
 
};
1689
 
 
1690
 
PyTypeObject __pyx_type_12_readdir_pyx_UTF8DirReader = {
1691
 
  PyObject_HEAD_INIT(0)
1692
 
  0, /*ob_size*/
1693
 
  "_readdir_pyx.UTF8DirReader", /*tp_name*/
1694
 
  sizeof(struct __pyx_obj_12_readdir_pyx_UTF8DirReader), /*tp_basicsize*/
1695
 
  0, /*tp_itemsize*/
1696
 
  __pyx_tp_dealloc_12_readdir_pyx_UTF8DirReader, /*tp_dealloc*/
1697
 
  0, /*tp_print*/
1698
 
  0, /*tp_getattr*/
1699
 
  0, /*tp_setattr*/
1700
 
  0, /*tp_compare*/
1701
 
  0, /*tp_repr*/
1702
 
  &__pyx_tp_as_number_UTF8DirReader, /*tp_as_number*/
1703
 
  &__pyx_tp_as_sequence_UTF8DirReader, /*tp_as_sequence*/
1704
 
  &__pyx_tp_as_mapping_UTF8DirReader, /*tp_as_mapping*/
1705
 
  0, /*tp_hash*/
1706
 
  0, /*tp_call*/
1707
 
  0, /*tp_str*/
1708
 
  0, /*tp_getattro*/
1709
 
  0, /*tp_setattro*/
1710
 
  &__pyx_tp_as_buffer_UTF8DirReader, /*tp_as_buffer*/
1711
 
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE|Py_TPFLAGS_HAVE_GC, /*tp_flags*/
1712
 
  "A dir reader for utf8 file systems.", /*tp_doc*/
1713
 
  __pyx_tp_traverse_12_readdir_pyx_UTF8DirReader, /*tp_traverse*/
1714
 
  __pyx_tp_clear_12_readdir_pyx_UTF8DirReader, /*tp_clear*/
1715
 
  0, /*tp_richcompare*/
1716
 
  0, /*tp_weaklistoffset*/
1717
 
  0, /*tp_iter*/
1718
 
  0, /*tp_iternext*/
1719
 
  __pyx_methods_12_readdir_pyx_UTF8DirReader, /*tp_methods*/
1720
 
  __pyx_members_12_readdir_pyx_UTF8DirReader, /*tp_members*/
1721
 
  0, /*tp_getset*/
1722
 
  0, /*tp_base*/
1723
 
  0, /*tp_dict*/
1724
 
  0, /*tp_descr_get*/
1725
 
  0, /*tp_descr_set*/
1726
 
  0, /*tp_dictoffset*/
1727
 
  __pyx_f_12_readdir_pyx_13UTF8DirReader___init__, /*tp_init*/
1728
 
  0, /*tp_alloc*/
1729
 
  __pyx_tp_new_12_readdir_pyx_UTF8DirReader, /*tp_new*/
1730
 
  0, /*tp_free*/
1731
 
  0, /*tp_is_gc*/
1732
 
  0, /*tp_bases*/
1733
 
  0, /*tp_mro*/
1734
 
  0, /*tp_cache*/
1735
 
  0, /*tp_subclasses*/
1736
 
  0, /*tp_weaklist*/
1737
 
};
1738
 
 
1739
 
static struct PyMethodDef __pyx_methods[] = {
1740
 
  {0, 0, 0, 0}
1741
 
};
1742
 
 
1743
 
static void __pyx_init_filenames(void); /*proto*/
1744
 
 
1745
 
PyMODINIT_FUNC init_readdir_pyx(void); /*proto*/
1746
 
PyMODINIT_FUNC init_readdir_pyx(void) {
1747
 
  PyObject *__pyx_1 = 0;
1748
 
  PyObject *__pyx_2 = 0;
1749
 
  __pyx_init_filenames();
1750
 
  __pyx_m = Py_InitModule4("_readdir_pyx", __pyx_methods, __pyx_mdoc, 0, PYTHON_API_VERSION);
1751
 
  if (!__pyx_m) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;};
1752
 
  Py_INCREF(__pyx_m);
1753
 
  __pyx_b = PyImport_AddModule("__builtin__");
1754
 
  if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;};
1755
 
  if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;};
1756
 
  if (__Pyx_InternStrings(__pyx_intern_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;};
1757
 
  if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;};
1758
 
  if (PyType_Ready(&__pyx_type_12_readdir_pyx__Stat) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 123; goto __pyx_L1;}
1759
 
  if (PyObject_SetAttrString(__pyx_m, "_Stat", (PyObject *)&__pyx_type_12_readdir_pyx__Stat) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 123; goto __pyx_L1;}
1760
 
  __pyx_ptype_12_readdir_pyx__Stat = &__pyx_type_12_readdir_pyx__Stat;
1761
 
  __pyx_vtabptr_12_readdir_pyx_UTF8DirReader = &__pyx_vtable_12_readdir_pyx_UTF8DirReader;
1762
 
  *(void(**)(void))&__pyx_vtable_12_readdir_pyx_UTF8DirReader._kind_from_mode = (void(*)(void))__pyx_f_12_readdir_pyx_13UTF8DirReader__kind_from_mode;
1763
 
  __pyx_type_12_readdir_pyx_UTF8DirReader.tp_free = _PyObject_GC_Del;
1764
 
  if (PyType_Ready(&__pyx_type_12_readdir_pyx_UTF8DirReader) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; goto __pyx_L1;}
1765
 
  if (__Pyx_SetVtable(__pyx_type_12_readdir_pyx_UTF8DirReader.tp_dict, __pyx_vtabptr_12_readdir_pyx_UTF8DirReader) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; goto __pyx_L1;}
1766
 
  if (PyObject_SetAttrString(__pyx_m, "UTF8DirReader", (PyObject *)&__pyx_type_12_readdir_pyx_UTF8DirReader) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 164; goto __pyx_L1;}
1767
 
  __pyx_ptype_12_readdir_pyx_UTF8DirReader = &__pyx_type_12_readdir_pyx_UTF8DirReader;
1768
 
 
1769
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":20 */
1770
 
  __pyx_1 = __Pyx_Import(__pyx_n_os, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; goto __pyx_L1;}
1771
 
  if (PyObject_SetAttr(__pyx_m, __pyx_n_os, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; goto __pyx_L1;}
1772
 
  Py_DECREF(__pyx_1); __pyx_1 = 0;
1773
 
 
1774
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":21 */
1775
 
  __pyx_1 = __Pyx_Import(__pyx_n_sys, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; goto __pyx_L1;}
1776
 
  if (PyObject_SetAttr(__pyx_m, __pyx_n_sys, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; goto __pyx_L1;}
1777
 
  Py_DECREF(__pyx_1); __pyx_1 = 0;
1778
 
 
1779
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":108 */
1780
 
  if (PyObject_SetAttr(__pyx_m, __pyx_n__directory, __pyx_n_directory) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 108; goto __pyx_L1;}
1781
 
 
1782
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":109 */
1783
 
  if (PyObject_SetAttr(__pyx_m, __pyx_n__chardev, __pyx_n_chardev) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 109; goto __pyx_L1;}
1784
 
 
1785
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":110 */
1786
 
  if (PyObject_SetAttr(__pyx_m, __pyx_n__block, __pyx_n_block) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 110; goto __pyx_L1;}
1787
 
 
1788
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":111 */
1789
 
  if (PyObject_SetAttr(__pyx_m, __pyx_n__file, __pyx_n_file) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 111; goto __pyx_L1;}
1790
 
 
1791
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":112 */
1792
 
  if (PyObject_SetAttr(__pyx_m, __pyx_n__fifo, __pyx_n_fifo) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 112; goto __pyx_L1;}
1793
 
 
1794
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":113 */
1795
 
  if (PyObject_SetAttr(__pyx_m, __pyx_n__symlink, __pyx_n_symlink) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 113; goto __pyx_L1;}
1796
 
 
1797
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":114 */
1798
 
  if (PyObject_SetAttr(__pyx_m, __pyx_n__socket, __pyx_n_socket) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 114; goto __pyx_L1;}
1799
 
 
1800
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":115 */
1801
 
  if (PyObject_SetAttr(__pyx_m, __pyx_n__unknown, __pyx_n_unknown) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 115; goto __pyx_L1;}
1802
 
 
1803
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":116 */
1804
 
  if (PyObject_SetAttr(__pyx_m, __pyx_n__missing, __pyx_n_missing) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 116; goto __pyx_L1;}
1805
 
 
1806
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":161 */
1807
 
  __pyx_1 = PyList_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; goto __pyx_L1;}
1808
 
  Py_INCREF(__pyx_n_osutils);
1809
 
  PyList_SET_ITEM(__pyx_1, 0, __pyx_n_osutils);
1810
 
  __pyx_2 = __Pyx_Import(__pyx_n_bzrlib, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; goto __pyx_L1;}
1811
 
  Py_DECREF(__pyx_1); __pyx_1 = 0;
1812
 
  __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_osutils); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; goto __pyx_L1;}
1813
 
  if (PyObject_SetAttr(__pyx_m, __pyx_n_osutils, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 161; goto __pyx_L1;}
1814
 
  Py_DECREF(__pyx_1); __pyx_1 = 0;
1815
 
  Py_DECREF(__pyx_2); __pyx_2 = 0;
1816
 
 
1817
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":204 */
1818
 
  Py_INCREF(__pyx_k14p);
1819
 
  __pyx_k15 = __pyx_k14p;
1820
 
 
1821
 
  /* "/tmp/bzr.1.15/bzrlib/_readdir_pyx.pyx":274 */
1822
 
  return;
1823
 
  __pyx_L1:;
1824
 
  Py_XDECREF(__pyx_1);
1825
 
  Py_XDECREF(__pyx_2);
1826
 
  __Pyx_AddTraceback("_readdir_pyx");
1827
 
}
1828
 
 
1829
 
static char *__pyx_filenames[] = {
1830
 
  "_readdir_pyx.pyx",
1831
 
};
1832
 
 
1833
 
/* Runtime support code */
1834
 
 
1835
 
static void __pyx_init_filenames(void) {
1836
 
  __pyx_f = __pyx_filenames;
1837
 
}
1838
 
 
1839
 
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list) {
1840
 
    PyObject *__import__ = 0;
1841
 
    PyObject *empty_list = 0;
1842
 
    PyObject *module = 0;
1843
 
    PyObject *global_dict = 0;
1844
 
    PyObject *empty_dict = 0;
1845
 
    PyObject *list;
1846
 
    __import__ = PyObject_GetAttrString(__pyx_b, "__import__");
1847
 
    if (!__import__)
1848
 
        goto bad;
1849
 
    if (from_list)
1850
 
        list = from_list;
1851
 
    else {
1852
 
        empty_list = PyList_New(0);
1853
 
        if (!empty_list)
1854
 
            goto bad;
1855
 
        list = empty_list;
1856
 
    }
1857
 
    global_dict = PyModule_GetDict(__pyx_m);
1858
 
    if (!global_dict)
1859
 
        goto bad;
1860
 
    empty_dict = PyDict_New();
1861
 
    if (!empty_dict)
1862
 
        goto bad;
1863
 
    module = PyObject_CallFunction(__import__, "OOOO",
1864
 
        name, global_dict, empty_dict, list);
1865
 
bad:
1866
 
    Py_XDECREF(empty_list);
1867
 
    Py_XDECREF(__import__);
1868
 
    Py_XDECREF(empty_dict);
1869
 
    return module;
1870
 
}
1871
 
 
1872
 
static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) {
1873
 
    PyObject *result;
1874
 
    result = PyObject_GetAttr(dict, name);
1875
 
    if (!result)
1876
 
        PyErr_SetObject(PyExc_NameError, name);
1877
 
    return result;
1878
 
}
1879
 
 
1880
 
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb) {
1881
 
    Py_XINCREF(type);
1882
 
    Py_XINCREF(value);
1883
 
    Py_XINCREF(tb);
1884
 
    /* First, check the traceback argument, replacing None with NULL. */
1885
 
    if (tb == Py_None) {
1886
 
        Py_DECREF(tb);
1887
 
        tb = 0;
1888
 
    }
1889
 
    else if (tb != NULL && !PyTraceBack_Check(tb)) {
1890
 
        PyErr_SetString(PyExc_TypeError,
1891
 
            "raise: arg 3 must be a traceback or None");
1892
 
        goto raise_error;
1893
 
    }
1894
 
    /* Next, replace a missing value with None */
1895
 
    if (value == NULL) {
1896
 
        value = Py_None;
1897
 
        Py_INCREF(value);
1898
 
    }
1899
 
    #if PY_VERSION_HEX < 0x02050000
1900
 
    if (!PyClass_Check(type))
1901
 
    #else
1902
 
    if (!PyType_Check(type))
1903
 
    #endif
1904
 
    {
1905
 
        /* Raising an instance.  The value should be a dummy. */
1906
 
        if (value != Py_None) {
1907
 
            PyErr_SetString(PyExc_TypeError,
1908
 
                "instance exception may not have a separate value");
1909
 
            goto raise_error;
1910
 
        }
1911
 
        /* Normalize to raise <class>, <instance> */
1912
 
        Py_DECREF(value);
1913
 
        value = type;
1914
 
        #if PY_VERSION_HEX < 0x02050000
1915
 
            if (PyInstance_Check(type)) {
1916
 
                type = (PyObject*) ((PyInstanceObject*)type)->in_class;
1917
 
                Py_INCREF(type);
1918
 
            }
1919
 
            else {
1920
 
                PyErr_SetString(PyExc_TypeError,
1921
 
                    "raise: exception must be an old-style class or instance");
1922
 
                goto raise_error;
1923
 
            }
1924
 
        #else
1925
 
            type = (PyObject*) type->ob_type;
1926
 
            Py_INCREF(type);
1927
 
            if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
1928
 
                PyErr_SetString(PyExc_TypeError,
1929
 
                    "raise: exception class must be a subclass of BaseException");
1930
 
                goto raise_error;
1931
 
            }
1932
 
        #endif
1933
 
    }
1934
 
    PyErr_Restore(type, value, tb);
1935
 
    return;
1936
 
raise_error:
1937
 
    Py_XDECREF(value);
1938
 
    Py_XDECREF(type);
1939
 
    Py_XDECREF(tb);
1940
 
    return;
1941
 
}
1942
 
 
1943
 
static int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type) {
1944
 
    if (!type) {
1945
 
        PyErr_Format(PyExc_SystemError, "Missing type object");
1946
 
        return 0;
1947
 
    }
1948
 
    if (obj == Py_None || PyObject_TypeCheck(obj, type))
1949
 
        return 1;
1950
 
    PyErr_Format(PyExc_TypeError, "Cannot convert %s to %s",
1951
 
        obj->ob_type->tp_name, type->tp_name);
1952
 
    return 0;
1953
 
}
1954
 
 
1955
 
static int __Pyx_InternStrings(__Pyx_InternTabEntry *t) {
1956
 
    while (t->p) {
1957
 
        *t->p = PyString_InternFromString(t->s);
1958
 
        if (!*t->p)
1959
 
            return -1;
1960
 
        ++t;
1961
 
    }
1962
 
    return 0;
1963
 
}
1964
 
 
1965
 
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
1966
 
    while (t->p) {
1967
 
        *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
1968
 
        if (!*t->p)
1969
 
            return -1;
1970
 
        ++t;
1971
 
    }
1972
 
    return 0;
1973
 
}
1974
 
 
1975
 
static int __Pyx_SetVtable(PyObject *dict, void *vtable) {
1976
 
    PyObject *pycobj = 0;
1977
 
    int result;
1978
 
    
1979
 
    pycobj = PyCObject_FromVoidPtr(vtable, 0);
1980
 
    if (!pycobj)
1981
 
        goto bad;
1982
 
    if (PyDict_SetItemString(dict, "__pyx_vtable__", pycobj) < 0)
1983
 
        goto bad;
1984
 
    result = 0;
1985
 
    goto done;
1986
 
 
1987
 
bad:
1988
 
    result = -1;
1989
 
done:
1990
 
    Py_XDECREF(pycobj);
1991
 
    return result;
1992
 
}
1993
 
 
1994
 
#include "compile.h"
1995
 
#include "frameobject.h"
1996
 
#include "traceback.h"
1997
 
 
1998
 
static void __Pyx_AddTraceback(char *funcname) {
1999
 
    PyObject *py_srcfile = 0;
2000
 
    PyObject *py_funcname = 0;
2001
 
    PyObject *py_globals = 0;
2002
 
    PyObject *empty_tuple = 0;
2003
 
    PyObject *empty_string = 0;
2004
 
    PyCodeObject *py_code = 0;
2005
 
    PyFrameObject *py_frame = 0;
2006
 
    
2007
 
    py_srcfile = PyString_FromString(__pyx_filename);
2008
 
    if (!py_srcfile) goto bad;
2009
 
    py_funcname = PyString_FromString(funcname);
2010
 
    if (!py_funcname) goto bad;
2011
 
    py_globals = PyModule_GetDict(__pyx_m);
2012
 
    if (!py_globals) goto bad;
2013
 
    empty_tuple = PyTuple_New(0);
2014
 
    if (!empty_tuple) goto bad;
2015
 
    empty_string = PyString_FromString("");
2016
 
    if (!empty_string) goto bad;
2017
 
    py_code = PyCode_New(
2018
 
        0,            /*int argcount,*/
2019
 
        0,            /*int nlocals,*/
2020
 
        0,            /*int stacksize,*/
2021
 
        0,            /*int flags,*/
2022
 
        empty_string, /*PyObject *code,*/
2023
 
        empty_tuple,  /*PyObject *consts,*/
2024
 
        empty_tuple,  /*PyObject *names,*/
2025
 
        empty_tuple,  /*PyObject *varnames,*/
2026
 
        empty_tuple,  /*PyObject *freevars,*/
2027
 
        empty_tuple,  /*PyObject *cellvars,*/
2028
 
        py_srcfile,   /*PyObject *filename,*/
2029
 
        py_funcname,  /*PyObject *name,*/
2030
 
        __pyx_lineno,   /*int firstlineno,*/
2031
 
        empty_string  /*PyObject *lnotab*/
2032
 
    );
2033
 
    if (!py_code) goto bad;
2034
 
    py_frame = PyFrame_New(
2035
 
        PyThreadState_Get(), /*PyThreadState *tstate,*/
2036
 
        py_code,             /*PyCodeObject *code,*/
2037
 
        py_globals,          /*PyObject *globals,*/
2038
 
        0                    /*PyObject *locals*/
2039
 
    );
2040
 
    if (!py_frame) goto bad;
2041
 
    py_frame->f_lineno = __pyx_lineno;
2042
 
    PyTraceBack_Here(py_frame);
2043
 
bad:
2044
 
    Py_XDECREF(py_srcfile);
2045
 
    Py_XDECREF(py_funcname);
2046
 
    Py_XDECREF(empty_tuple);
2047
 
    Py_XDECREF(empty_string);
2048
 
    Py_XDECREF(py_code);
2049
 
    Py_XDECREF(py_frame);
2050
 
}