~bzr/ubuntu/maverick/bzr/beta-ppa

« back to all changes in this revision

Viewing changes to bzrlib/_readdir_pyx.c

Merge from main PPA.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/* Generated by Pyrex 0.9.8.5 on Fri Oct  8 14:01:04 2010 */
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
 
#if !defined(WIN32) && !defined(MS_WINDOWS)
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; int i; char *s; long n;} __Pyx_StringTabEntry; /*proto*/
42
 
 
43
 
static PyObject *__pyx_m;
44
 
static PyObject *__pyx_b;
45
 
static int __pyx_lineno;
46
 
static char *__pyx_filename;
47
 
static char **__pyx_f;
48
 
 
49
 
static char __pyx_mdoc[] = "Wrapper for readdir which returns files ordered by inode.";
50
 
 
51
 
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb); /*proto*/
52
 
 
53
 
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/
54
 
 
55
 
static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/
56
 
 
57
 
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list); /*proto*/
58
 
 
59
 
static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/
60
 
 
61
 
static void __Pyx_AddTraceback(char *funcname); /*proto*/
62
 
 
63
 
/* Declarations from bzrlib._readdir_pyx */
64
 
 
65
 
 
66
 
/* Declarations from implementation of bzrlib._readdir_pyx */
67
 
 
68
 
struct __pyx_obj_6bzrlib_12_readdir_pyx__Stat {
69
 
  PyObject_HEAD
70
 
  struct stat _st;
71
 
};
72
 
 
73
 
struct __pyx_obj_6bzrlib_12_readdir_pyx_UTF8DirReader {
74
 
  PyObject_HEAD
75
 
  struct __pyx_vtabstruct_6bzrlib_12_readdir_pyx_UTF8DirReader *__pyx_vtab;
76
 
};
77
 
 
78
 
 
79
 
 
80
 
struct __pyx_vtabstruct_6bzrlib_12_readdir_pyx_UTF8DirReader {
81
 
  PyObject *(*_kind_from_mode)(struct __pyx_obj_6bzrlib_12_readdir_pyx_UTF8DirReader *,int);
82
 
};
83
 
static struct __pyx_vtabstruct_6bzrlib_12_readdir_pyx_UTF8DirReader *__pyx_vtabptr_6bzrlib_12_readdir_pyx_UTF8DirReader;
84
 
 
85
 
static PyTypeObject *__pyx_ptype_6bzrlib_12_readdir_pyx__Stat = 0;
86
 
static PyTypeObject *__pyx_ptype_6bzrlib_12_readdir_pyx_UTF8DirReader = 0;
87
 
static PyObject *__pyx_v_6bzrlib_12_readdir_pyx__directory;
88
 
static PyObject *__pyx_v_6bzrlib_12_readdir_pyx__chardev;
89
 
static PyObject *__pyx_v_6bzrlib_12_readdir_pyx__block;
90
 
static PyObject *__pyx_v_6bzrlib_12_readdir_pyx__file;
91
 
static PyObject *__pyx_v_6bzrlib_12_readdir_pyx__fifo;
92
 
static PyObject *__pyx_v_6bzrlib_12_readdir_pyx__symlink;
93
 
static PyObject *__pyx_v_6bzrlib_12_readdir_pyx__socket;
94
 
static PyObject *__pyx_v_6bzrlib_12_readdir_pyx__unknown;
95
 
static PyObject *__pyx_v_6bzrlib_12_readdir_pyx__safe_utf8;
96
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx_raise_os_error(int,char *,PyObject *); /*proto*/
97
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx__read_dir(PyObject *); /*proto*/
98
 
 
99
 
static char __pyx_k1[] = "st_mode";
100
 
static char __pyx_k2[] = "st_size";
101
 
static char __pyx_k3[] = "st_mtime";
102
 
static char __pyx_k4[] = "st_ctime";
103
 
static char __pyx_k5[] = "/";
104
 
static char __pyx_k6[] = "";
105
 
static char __pyx_k7[] = "failed to strcat";
106
 
static char __pyx_k8[] = ".";
107
 
static char __pyx_k9[] = "open: ";
108
 
static char __pyx_k10[] = "chdir: ";
109
 
static char __pyx_k11[] = "opendir: ";
110
 
static char __pyx_k12[] = "readdir: ";
111
 
static char __pyx_k13[] = "lstat: ";
112
 
static char __pyx_k14[] = "closedir: ";
113
 
static char __pyx_k15[] = "return to orig_dir: ";
114
 
static char __pyx_k16[] = "os";
115
 
static char __pyx_k17[] = "sys";
116
 
static char __pyx_k18[] = "directory";
117
 
static char __pyx_k19[] = "chardev";
118
 
static char __pyx_k20[] = "block";
119
 
static char __pyx_k21[] = "file";
120
 
static char __pyx_k22[] = "fifo";
121
 
static char __pyx_k23[] = "symlink";
122
 
static char __pyx_k24[] = "socket";
123
 
static char __pyx_k25[] = "unknown";
124
 
static char __pyx_k26[] = "bzrlib";
125
 
static char __pyx_k27[] = "osutils";
126
 
static char __pyx_k28[] = "safe_utf8";
127
 
 
128
 
static PyObject *__pyx_n_block;
129
 
static PyObject *__pyx_n_bzrlib;
130
 
static PyObject *__pyx_n_chardev;
131
 
static PyObject *__pyx_n_directory;
132
 
static PyObject *__pyx_n_fifo;
133
 
static PyObject *__pyx_n_file;
134
 
static PyObject *__pyx_n_os;
135
 
static PyObject *__pyx_n_osutils;
136
 
static PyObject *__pyx_n_safe_utf8;
137
 
static PyObject *__pyx_n_socket;
138
 
static PyObject *__pyx_n_st_ctime;
139
 
static PyObject *__pyx_n_st_mode;
140
 
static PyObject *__pyx_n_st_mtime;
141
 
static PyObject *__pyx_n_st_size;
142
 
static PyObject *__pyx_n_symlink;
143
 
static PyObject *__pyx_n_sys;
144
 
static PyObject *__pyx_n_unknown;
145
 
 
146
 
static PyObject *__pyx_k5p;
147
 
static PyObject *__pyx_k6p;
148
 
static PyObject *__pyx_k7p;
149
 
static PyObject *__pyx_k8p;
150
 
 
151
 
static __Pyx_StringTabEntry __pyx_string_tab[] = {
152
 
  {&__pyx_n_block, 1, __pyx_k20, sizeof(__pyx_k20)},
153
 
  {&__pyx_n_bzrlib, 1, __pyx_k26, sizeof(__pyx_k26)},
154
 
  {&__pyx_n_chardev, 1, __pyx_k19, sizeof(__pyx_k19)},
155
 
  {&__pyx_n_directory, 1, __pyx_k18, sizeof(__pyx_k18)},
156
 
  {&__pyx_n_fifo, 1, __pyx_k22, sizeof(__pyx_k22)},
157
 
  {&__pyx_n_file, 1, __pyx_k21, sizeof(__pyx_k21)},
158
 
  {&__pyx_n_os, 1, __pyx_k16, sizeof(__pyx_k16)},
159
 
  {&__pyx_n_osutils, 1, __pyx_k27, sizeof(__pyx_k27)},
160
 
  {&__pyx_n_safe_utf8, 1, __pyx_k28, sizeof(__pyx_k28)},
161
 
  {&__pyx_n_socket, 1, __pyx_k24, sizeof(__pyx_k24)},
162
 
  {&__pyx_n_st_ctime, 1, __pyx_k4, sizeof(__pyx_k4)},
163
 
  {&__pyx_n_st_mode, 1, __pyx_k1, sizeof(__pyx_k1)},
164
 
  {&__pyx_n_st_mtime, 1, __pyx_k3, sizeof(__pyx_k3)},
165
 
  {&__pyx_n_st_size, 1, __pyx_k2, sizeof(__pyx_k2)},
166
 
  {&__pyx_n_symlink, 1, __pyx_k23, sizeof(__pyx_k23)},
167
 
  {&__pyx_n_sys, 1, __pyx_k17, sizeof(__pyx_k17)},
168
 
  {&__pyx_n_unknown, 1, __pyx_k25, sizeof(__pyx_k25)},
169
 
  {&__pyx_k5p, 0, __pyx_k5, sizeof(__pyx_k5)},
170
 
  {&__pyx_k6p, 0, __pyx_k6, sizeof(__pyx_k6)},
171
 
  {&__pyx_k7p, 0, __pyx_k7, sizeof(__pyx_k7)},
172
 
  {&__pyx_k8p, 0, __pyx_k8, sizeof(__pyx_k8)},
173
 
  {0, 0, 0, 0}
174
 
};
175
 
 
176
 
static PyObject *__pyx_d1;
177
 
 
178
 
 
179
 
/* Implementation of bzrlib._readdir_pyx */
180
 
 
181
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx_5_Stat_6st_dev___get__(PyObject *__pyx_v_self); /*proto*/
182
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx_5_Stat_6st_dev___get__(PyObject *__pyx_v_self) {
183
 
  PyObject *__pyx_r;
184
 
  PyObject *__pyx_1 = 0;
185
 
  Py_INCREF(__pyx_v_self);
186
 
  __pyx_1 = PyInt_FromLong(((struct __pyx_obj_6bzrlib_12_readdir_pyx__Stat *)__pyx_v_self)->_st.st_dev); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 138; goto __pyx_L1;}
187
 
  __pyx_r = __pyx_1;
188
 
  __pyx_1 = 0;
189
 
  goto __pyx_L0;
190
 
 
191
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
192
 
  goto __pyx_L0;
193
 
  __pyx_L1:;
194
 
  Py_XDECREF(__pyx_1);
195
 
  __Pyx_AddTraceback("bzrlib._readdir_pyx._Stat.st_dev.__get__");
196
 
  __pyx_r = 0;
197
 
  __pyx_L0:;
198
 
  Py_DECREF(__pyx_v_self);
199
 
  return __pyx_r;
200
 
}
201
 
 
202
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx_5_Stat_6st_ino___get__(PyObject *__pyx_v_self); /*proto*/
203
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx_5_Stat_6st_ino___get__(PyObject *__pyx_v_self) {
204
 
  PyObject *__pyx_r;
205
 
  PyObject *__pyx_1 = 0;
206
 
  Py_INCREF(__pyx_v_self);
207
 
  __pyx_1 = PyLong_FromUnsignedLong(((struct __pyx_obj_6bzrlib_12_readdir_pyx__Stat *)__pyx_v_self)->_st.st_ino); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 142; goto __pyx_L1;}
208
 
  __pyx_r = __pyx_1;
209
 
  __pyx_1 = 0;
210
 
  goto __pyx_L0;
211
 
 
212
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
213
 
  goto __pyx_L0;
214
 
  __pyx_L1:;
215
 
  Py_XDECREF(__pyx_1);
216
 
  __Pyx_AddTraceback("bzrlib._readdir_pyx._Stat.st_ino.__get__");
217
 
  __pyx_r = 0;
218
 
  __pyx_L0:;
219
 
  Py_DECREF(__pyx_v_self);
220
 
  return __pyx_r;
221
 
}
222
 
 
223
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx_5_Stat_7st_mode___get__(PyObject *__pyx_v_self); /*proto*/
224
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx_5_Stat_7st_mode___get__(PyObject *__pyx_v_self) {
225
 
  PyObject *__pyx_r;
226
 
  PyObject *__pyx_1 = 0;
227
 
  Py_INCREF(__pyx_v_self);
228
 
  __pyx_1 = PyInt_FromLong(((struct __pyx_obj_6bzrlib_12_readdir_pyx__Stat *)__pyx_v_self)->_st.st_mode); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 146; goto __pyx_L1;}
229
 
  __pyx_r = __pyx_1;
230
 
  __pyx_1 = 0;
231
 
  goto __pyx_L0;
232
 
 
233
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
234
 
  goto __pyx_L0;
235
 
  __pyx_L1:;
236
 
  Py_XDECREF(__pyx_1);
237
 
  __Pyx_AddTraceback("bzrlib._readdir_pyx._Stat.st_mode.__get__");
238
 
  __pyx_r = 0;
239
 
  __pyx_L0:;
240
 
  Py_DECREF(__pyx_v_self);
241
 
  return __pyx_r;
242
 
}
243
 
 
244
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx_5_Stat_8st_ctime___get__(PyObject *__pyx_v_self); /*proto*/
245
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx_5_Stat_8st_ctime___get__(PyObject *__pyx_v_self) {
246
 
  PyObject *__pyx_r;
247
 
  PyObject *__pyx_1 = 0;
248
 
  Py_INCREF(__pyx_v_self);
249
 
  __pyx_1 = PyInt_FromLong(((struct __pyx_obj_6bzrlib_12_readdir_pyx__Stat *)__pyx_v_self)->_st.st_ctime); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 150; goto __pyx_L1;}
250
 
  __pyx_r = __pyx_1;
251
 
  __pyx_1 = 0;
252
 
  goto __pyx_L0;
253
 
 
254
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
255
 
  goto __pyx_L0;
256
 
  __pyx_L1:;
257
 
  Py_XDECREF(__pyx_1);
258
 
  __Pyx_AddTraceback("bzrlib._readdir_pyx._Stat.st_ctime.__get__");
259
 
  __pyx_r = 0;
260
 
  __pyx_L0:;
261
 
  Py_DECREF(__pyx_v_self);
262
 
  return __pyx_r;
263
 
}
264
 
 
265
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx_5_Stat_8st_mtime___get__(PyObject *__pyx_v_self); /*proto*/
266
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx_5_Stat_8st_mtime___get__(PyObject *__pyx_v_self) {
267
 
  PyObject *__pyx_r;
268
 
  PyObject *__pyx_1 = 0;
269
 
  Py_INCREF(__pyx_v_self);
270
 
  __pyx_1 = PyInt_FromLong(((struct __pyx_obj_6bzrlib_12_readdir_pyx__Stat *)__pyx_v_self)->_st.st_mtime); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 154; goto __pyx_L1;}
271
 
  __pyx_r = __pyx_1;
272
 
  __pyx_1 = 0;
273
 
  goto __pyx_L0;
274
 
 
275
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
276
 
  goto __pyx_L0;
277
 
  __pyx_L1:;
278
 
  Py_XDECREF(__pyx_1);
279
 
  __Pyx_AddTraceback("bzrlib._readdir_pyx._Stat.st_mtime.__get__");
280
 
  __pyx_r = 0;
281
 
  __pyx_L0:;
282
 
  Py_DECREF(__pyx_v_self);
283
 
  return __pyx_r;
284
 
}
285
 
 
286
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx_5_Stat_7st_size___get__(PyObject *__pyx_v_self); /*proto*/
287
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx_5_Stat_7st_size___get__(PyObject *__pyx_v_self) {
288
 
  PyObject *__pyx_r;
289
 
  PyObject *__pyx_1 = 0;
290
 
  Py_INCREF(__pyx_v_self);
291
 
  __pyx_1 = PyLong_FromUnsignedLongLong(((struct __pyx_obj_6bzrlib_12_readdir_pyx__Stat *)__pyx_v_self)->_st.st_size); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 158; goto __pyx_L1;}
292
 
  __pyx_r = __pyx_1;
293
 
  __pyx_1 = 0;
294
 
  goto __pyx_L0;
295
 
 
296
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
297
 
  goto __pyx_L0;
298
 
  __pyx_L1:;
299
 
  Py_XDECREF(__pyx_1);
300
 
  __Pyx_AddTraceback("bzrlib._readdir_pyx._Stat.st_size.__get__");
301
 
  __pyx_r = 0;
302
 
  __pyx_L0:;
303
 
  Py_DECREF(__pyx_v_self);
304
 
  return __pyx_r;
305
 
}
306
 
 
307
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx_5_Stat___repr__(PyObject *__pyx_v_self); /*proto*/
308
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx_5_Stat___repr__(PyObject *__pyx_v_self) {
309
 
  PyObject *__pyx_r;
310
 
  PyObject *__pyx_1 = 0;
311
 
  PyObject *__pyx_2 = 0;
312
 
  PyObject *__pyx_3 = 0;
313
 
  PyObject *__pyx_4 = 0;
314
 
  PyObject *__pyx_5 = 0;
315
 
  PyObject *__pyx_6 = 0;
316
 
  PyObject *__pyx_7 = 0;
317
 
  PyObject *__pyx_8 = 0;
318
 
  PyObject *__pyx_9 = 0;
319
 
  PyObject *__pyx_10 = 0;
320
 
  Py_INCREF(__pyx_v_self);
321
 
  __pyx_1 = PyObject_GetAttr(__pyx_v_self, __pyx_n_st_mode); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; goto __pyx_L1;}
322
 
  __pyx_2 = PyInt_FromLong(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; goto __pyx_L1;}
323
 
  __pyx_3 = PyInt_FromLong(0); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; goto __pyx_L1;}
324
 
  __pyx_4 = PyInt_FromLong(0); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; goto __pyx_L1;}
325
 
  __pyx_5 = PyInt_FromLong(0); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; goto __pyx_L1;}
326
 
  __pyx_6 = PyInt_FromLong(0); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; goto __pyx_L1;}
327
 
  __pyx_7 = PyObject_GetAttr(__pyx_v_self, __pyx_n_st_size); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; goto __pyx_L1;}
328
 
  __pyx_8 = PyObject_GetAttr(__pyx_v_self, __pyx_n_st_mtime); if (!__pyx_8) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; goto __pyx_L1;}
329
 
  __pyx_9 = PyObject_GetAttr(__pyx_v_self, __pyx_n_st_ctime); if (!__pyx_9) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 166; goto __pyx_L1;}
330
 
  __pyx_10 = PyTuple_New(10); if (!__pyx_10) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; goto __pyx_L1;}
331
 
  PyTuple_SET_ITEM(__pyx_10, 0, __pyx_1);
332
 
  PyTuple_SET_ITEM(__pyx_10, 1, __pyx_2);
333
 
  PyTuple_SET_ITEM(__pyx_10, 2, __pyx_3);
334
 
  PyTuple_SET_ITEM(__pyx_10, 3, __pyx_4);
335
 
  PyTuple_SET_ITEM(__pyx_10, 4, __pyx_5);
336
 
  PyTuple_SET_ITEM(__pyx_10, 5, __pyx_6);
337
 
  PyTuple_SET_ITEM(__pyx_10, 6, __pyx_7);
338
 
  Py_INCREF(Py_None);
339
 
  PyTuple_SET_ITEM(__pyx_10, 7, Py_None);
340
 
  PyTuple_SET_ITEM(__pyx_10, 8, __pyx_8);
341
 
  PyTuple_SET_ITEM(__pyx_10, 9, __pyx_9);
342
 
  __pyx_1 = 0;
343
 
  __pyx_2 = 0;
344
 
  __pyx_3 = 0;
345
 
  __pyx_4 = 0;
346
 
  __pyx_5 = 0;
347
 
  __pyx_6 = 0;
348
 
  __pyx_7 = 0;
349
 
  __pyx_8 = 0;
350
 
  __pyx_9 = 0;
351
 
  __pyx_1 = PyObject_Repr(__pyx_10); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 165; goto __pyx_L1;}
352
 
  Py_DECREF(__pyx_10); __pyx_10 = 0;
353
 
  __pyx_r = __pyx_1;
354
 
  __pyx_1 = 0;
355
 
  goto __pyx_L0;
356
 
 
357
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
358
 
  goto __pyx_L0;
359
 
  __pyx_L1:;
360
 
  Py_XDECREF(__pyx_1);
361
 
  Py_XDECREF(__pyx_2);
362
 
  Py_XDECREF(__pyx_3);
363
 
  Py_XDECREF(__pyx_4);
364
 
  Py_XDECREF(__pyx_5);
365
 
  Py_XDECREF(__pyx_6);
366
 
  Py_XDECREF(__pyx_7);
367
 
  Py_XDECREF(__pyx_8);
368
 
  Py_XDECREF(__pyx_9);
369
 
  Py_XDECREF(__pyx_10);
370
 
  __Pyx_AddTraceback("bzrlib._readdir_pyx._Stat.__repr__");
371
 
  __pyx_r = 0;
372
 
  __pyx_L0:;
373
 
  Py_DECREF(__pyx_v_self);
374
 
  return __pyx_r;
375
 
}
376
 
 
377
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx_13UTF8DirReader_kind_from_mode(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
378
 
static char __pyx_doc_6bzrlib_12_readdir_pyx_13UTF8DirReader_kind_from_mode[] = "Get the kind of a path from a mode status.";
379
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx_13UTF8DirReader_kind_from_mode(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
380
 
  int __pyx_v_mode;
381
 
  PyObject *__pyx_r;
382
 
  PyObject *__pyx_1 = 0;
383
 
  static char *__pyx_argnames[] = {"mode",0};
384
 
  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "i", __pyx_argnames, &__pyx_v_mode)) return 0;
385
 
  Py_INCREF(__pyx_v_self);
386
 
  __pyx_1 = ((struct __pyx_vtabstruct_6bzrlib_12_readdir_pyx_UTF8DirReader *)((struct __pyx_obj_6bzrlib_12_readdir_pyx_UTF8DirReader *)__pyx_v_self)->__pyx_vtab)->_kind_from_mode(((struct __pyx_obj_6bzrlib_12_readdir_pyx_UTF8DirReader *)__pyx_v_self),__pyx_v_mode); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 179; goto __pyx_L1;}
387
 
  __pyx_r = __pyx_1;
388
 
  __pyx_1 = 0;
389
 
  goto __pyx_L0;
390
 
 
391
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
392
 
  goto __pyx_L0;
393
 
  __pyx_L1:;
394
 
  Py_XDECREF(__pyx_1);
395
 
  __Pyx_AddTraceback("bzrlib._readdir_pyx.UTF8DirReader.kind_from_mode");
396
 
  __pyx_r = 0;
397
 
  __pyx_L0:;
398
 
  Py_DECREF(__pyx_v_self);
399
 
  return __pyx_r;
400
 
}
401
 
 
402
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx_13UTF8DirReader__kind_from_mode(struct __pyx_obj_6bzrlib_12_readdir_pyx_UTF8DirReader *__pyx_v_self,int __pyx_v_mode) {
403
 
  PyObject *__pyx_r;
404
 
  int __pyx_1;
405
 
  Py_INCREF(__pyx_v_self);
406
 
 
407
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":183 */
408
 
  __pyx_1 = S_ISREG(__pyx_v_mode);
409
 
  if (__pyx_1) {
410
 
    Py_INCREF(__pyx_v_6bzrlib_12_readdir_pyx__file);
411
 
    __pyx_r = __pyx_v_6bzrlib_12_readdir_pyx__file;
412
 
    goto __pyx_L0;
413
 
    goto __pyx_L2;
414
 
  }
415
 
  __pyx_L2:;
416
 
 
417
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":185 */
418
 
  __pyx_1 = S_ISDIR(__pyx_v_mode);
419
 
  if (__pyx_1) {
420
 
    Py_INCREF(__pyx_v_6bzrlib_12_readdir_pyx__directory);
421
 
    __pyx_r = __pyx_v_6bzrlib_12_readdir_pyx__directory;
422
 
    goto __pyx_L0;
423
 
    goto __pyx_L3;
424
 
  }
425
 
  __pyx_L3:;
426
 
 
427
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":187 */
428
 
  __pyx_1 = S_ISCHR(__pyx_v_mode);
429
 
  if (__pyx_1) {
430
 
    Py_INCREF(__pyx_v_6bzrlib_12_readdir_pyx__chardev);
431
 
    __pyx_r = __pyx_v_6bzrlib_12_readdir_pyx__chardev;
432
 
    goto __pyx_L0;
433
 
    goto __pyx_L4;
434
 
  }
435
 
  __pyx_L4:;
436
 
 
437
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":189 */
438
 
  __pyx_1 = S_ISBLK(__pyx_v_mode);
439
 
  if (__pyx_1) {
440
 
    Py_INCREF(__pyx_v_6bzrlib_12_readdir_pyx__block);
441
 
    __pyx_r = __pyx_v_6bzrlib_12_readdir_pyx__block;
442
 
    goto __pyx_L0;
443
 
    goto __pyx_L5;
444
 
  }
445
 
  __pyx_L5:;
446
 
 
447
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":191 */
448
 
  __pyx_1 = S_ISLNK(__pyx_v_mode);
449
 
  if (__pyx_1) {
450
 
    Py_INCREF(__pyx_v_6bzrlib_12_readdir_pyx__symlink);
451
 
    __pyx_r = __pyx_v_6bzrlib_12_readdir_pyx__symlink;
452
 
    goto __pyx_L0;
453
 
    goto __pyx_L6;
454
 
  }
455
 
  __pyx_L6:;
456
 
 
457
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":193 */
458
 
  __pyx_1 = S_ISFIFO(__pyx_v_mode);
459
 
  if (__pyx_1) {
460
 
    Py_INCREF(__pyx_v_6bzrlib_12_readdir_pyx__fifo);
461
 
    __pyx_r = __pyx_v_6bzrlib_12_readdir_pyx__fifo;
462
 
    goto __pyx_L0;
463
 
    goto __pyx_L7;
464
 
  }
465
 
  __pyx_L7:;
466
 
 
467
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":195 */
468
 
  __pyx_1 = S_ISSOCK(__pyx_v_mode);
469
 
  if (__pyx_1) {
470
 
    Py_INCREF(__pyx_v_6bzrlib_12_readdir_pyx__socket);
471
 
    __pyx_r = __pyx_v_6bzrlib_12_readdir_pyx__socket;
472
 
    goto __pyx_L0;
473
 
    goto __pyx_L8;
474
 
  }
475
 
  __pyx_L8:;
476
 
 
477
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":197 */
478
 
  Py_INCREF(__pyx_v_6bzrlib_12_readdir_pyx__unknown);
479
 
  __pyx_r = __pyx_v_6bzrlib_12_readdir_pyx__unknown;
480
 
  goto __pyx_L0;
481
 
 
482
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
483
 
  __pyx_L0:;
484
 
  Py_DECREF(__pyx_v_self);
485
 
  return __pyx_r;
486
 
}
487
 
 
488
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx_13UTF8DirReader_top_prefix_to_starting_dir(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
489
 
static char __pyx_doc_6bzrlib_12_readdir_pyx_13UTF8DirReader_top_prefix_to_starting_dir[] = "See DirReader.top_prefix_to_starting_dir.";
490
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx_13UTF8DirReader_top_prefix_to_starting_dir(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
491
 
  PyObject *__pyx_v_top = 0;
492
 
  PyObject *__pyx_v_prefix = 0;
493
 
  PyObject *__pyx_r;
494
 
  PyObject *__pyx_1 = 0;
495
 
  PyObject *__pyx_2 = 0;
496
 
  PyObject *__pyx_3 = 0;
497
 
  static char *__pyx_argnames[] = {"top","prefix",0};
498
 
  __pyx_v_prefix = __pyx_d1;
499
 
  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O|O", __pyx_argnames, &__pyx_v_top, &__pyx_v_prefix)) return 0;
500
 
  Py_INCREF(__pyx_v_self);
501
 
  Py_INCREF(__pyx_v_top);
502
 
  Py_INCREF(__pyx_v_prefix);
503
 
  __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; goto __pyx_L1;}
504
 
  Py_INCREF(__pyx_v_prefix);
505
 
  PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_prefix);
506
 
  __pyx_2 = PyObject_CallObject(__pyx_v_6bzrlib_12_readdir_pyx__safe_utf8, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; goto __pyx_L1;}
507
 
  Py_DECREF(__pyx_1); __pyx_1 = 0;
508
 
  __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; goto __pyx_L1;}
509
 
  Py_INCREF(__pyx_v_top);
510
 
  PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_top);
511
 
  __pyx_3 = PyObject_CallObject(__pyx_v_6bzrlib_12_readdir_pyx__safe_utf8, __pyx_1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; goto __pyx_L1;}
512
 
  Py_DECREF(__pyx_1); __pyx_1 = 0;
513
 
  __pyx_1 = PyTuple_New(5); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 201; goto __pyx_L1;}
514
 
  PyTuple_SET_ITEM(__pyx_1, 0, __pyx_2);
515
 
  Py_INCREF(Py_None);
516
 
  PyTuple_SET_ITEM(__pyx_1, 1, Py_None);
517
 
  Py_INCREF(Py_None);
518
 
  PyTuple_SET_ITEM(__pyx_1, 2, Py_None);
519
 
  Py_INCREF(Py_None);
520
 
  PyTuple_SET_ITEM(__pyx_1, 3, Py_None);
521
 
  PyTuple_SET_ITEM(__pyx_1, 4, __pyx_3);
522
 
  __pyx_2 = 0;
523
 
  __pyx_3 = 0;
524
 
  __pyx_r = __pyx_1;
525
 
  __pyx_1 = 0;
526
 
  goto __pyx_L0;
527
 
 
528
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
529
 
  goto __pyx_L0;
530
 
  __pyx_L1:;
531
 
  Py_XDECREF(__pyx_1);
532
 
  Py_XDECREF(__pyx_2);
533
 
  Py_XDECREF(__pyx_3);
534
 
  __Pyx_AddTraceback("bzrlib._readdir_pyx.UTF8DirReader.top_prefix_to_starting_dir");
535
 
  __pyx_r = 0;
536
 
  __pyx_L0:;
537
 
  Py_DECREF(__pyx_v_self);
538
 
  Py_DECREF(__pyx_v_top);
539
 
  Py_DECREF(__pyx_v_prefix);
540
 
  return __pyx_r;
541
 
}
542
 
 
543
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx_13UTF8DirReader_read_dir(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
544
 
static char __pyx_doc_6bzrlib_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        ";
545
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx_13UTF8DirReader_read_dir(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
546
 
  PyObject *__pyx_v_prefix = 0;
547
 
  PyObject *__pyx_v_top = 0;
548
 
  PyObject *__pyx_v_newval;
549
 
  int __pyx_v_index;
550
 
  int __pyx_v_length;
551
 
  void *__pyx_v_atuple;
552
 
  PyObject *__pyx_v_name;
553
 
  PyObject *__pyx_v_new_val_obj;
554
 
  PyObject *__pyx_v_relprefix;
555
 
  PyObject *__pyx_v_top_slash;
556
 
  PyObject *__pyx_v_result;
557
 
  PyObject *__pyx_r;
558
 
  Py_ssize_t __pyx_1;
559
 
  PyObject *__pyx_2 = 0;
560
 
  int __pyx_3;
561
 
  PyObject *__pyx_4 = 0;
562
 
  static char *__pyx_argnames[] = {"prefix","top",0};
563
 
  if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OO", __pyx_argnames, &__pyx_v_prefix, &__pyx_v_top)) return 0;
564
 
  Py_INCREF(__pyx_v_self);
565
 
  Py_INCREF(__pyx_v_prefix);
566
 
  Py_INCREF(__pyx_v_top);
567
 
  __pyx_v_newval = Py_None; Py_INCREF(Py_None);
568
 
  __pyx_v_name = Py_None; Py_INCREF(Py_None);
569
 
  __pyx_v_relprefix = Py_None; Py_INCREF(Py_None);
570
 
  __pyx_v_top_slash = Py_None; Py_INCREF(Py_None);
571
 
  __pyx_v_result = Py_None; Py_INCREF(Py_None);
572
 
 
573
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":223 */
574
 
  __pyx_1 = PyString_Size(__pyx_v_prefix);
575
 
  if (__pyx_1) {
576
 
    __pyx_2 = PyNumber_Add(__pyx_v_prefix, __pyx_k5p); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 224; goto __pyx_L1;}
577
 
    Py_DECREF(__pyx_v_relprefix);
578
 
    __pyx_v_relprefix = __pyx_2;
579
 
    __pyx_2 = 0;
580
 
    goto __pyx_L2;
581
 
  }
582
 
  /*else*/ {
583
 
    Py_INCREF(__pyx_k6p);
584
 
    Py_DECREF(__pyx_v_relprefix);
585
 
    __pyx_v_relprefix = __pyx_k6p;
586
 
  }
587
 
  __pyx_L2:;
588
 
 
589
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":227 */
590
 
  __pyx_2 = PyNumber_Add(__pyx_v_top, __pyx_k5p); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 227; goto __pyx_L1;}
591
 
  Py_DECREF(__pyx_v_top_slash);
592
 
  __pyx_v_top_slash = __pyx_2;
593
 
  __pyx_2 = 0;
594
 
 
595
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":231 */
596
 
  __pyx_2 = __pyx_f_6bzrlib_12_readdir_pyx__read_dir(__pyx_v_top); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 231; goto __pyx_L1;}
597
 
  Py_DECREF(__pyx_v_result);
598
 
  __pyx_v_result = __pyx_2;
599
 
  __pyx_2 = 0;
600
 
 
601
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":232 */
602
 
  __pyx_1 = PyObject_Length(__pyx_v_result); if (__pyx_1 == -1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 232; goto __pyx_L1;}
603
 
  __pyx_v_length = __pyx_1;
604
 
 
605
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":234 */
606
 
  for (__pyx_v_index = 0; __pyx_v_index < __pyx_v_length; ++__pyx_v_index) {
607
 
 
608
 
    /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":235 */
609
 
    __pyx_v_atuple = PyList_GET_ITEM(__pyx_v_result,__pyx_v_index);
610
 
 
611
 
    /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":236 */
612
 
    Py_INCREF(((PyObject *)PyTuple_GET_ITEM(__pyx_v_atuple,1)));
613
 
    Py_DECREF(__pyx_v_name);
614
 
    __pyx_v_name = ((PyObject *)PyTuple_GET_ITEM(__pyx_v_atuple,1));
615
 
 
616
 
    /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":241 */
617
 
    __pyx_v_new_val_obj = ((PyObject *)__pyx_v_relprefix);
618
 
 
619
 
    /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":242 */
620
 
    Py_INCREF(__pyx_v_relprefix);
621
 
 
622
 
    /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":243 */
623
 
    PyString_Concat((&__pyx_v_new_val_obj),__pyx_v_name);
624
 
 
625
 
    /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":244 */
626
 
    __pyx_3 = (NULL == __pyx_v_new_val_obj);
627
 
    if (__pyx_3) {
628
 
      __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; goto __pyx_L1;}
629
 
      Py_INCREF(__pyx_k7p);
630
 
      PyTuple_SET_ITEM(__pyx_2, 0, __pyx_k7p);
631
 
      __pyx_4 = PyObject_CallObject(PyExc_Exception, __pyx_2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; goto __pyx_L1;}
632
 
      Py_DECREF(__pyx_2); __pyx_2 = 0;
633
 
      __Pyx_Raise(__pyx_4, 0, 0);
634
 
      Py_DECREF(__pyx_4); __pyx_4 = 0;
635
 
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 247; goto __pyx_L1;}
636
 
      goto __pyx_L5;
637
 
    }
638
 
    __pyx_L5:;
639
 
 
640
 
    /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":248 */
641
 
    __pyx_3 = PyTuple_SetItem(__pyx_v_atuple,0,__pyx_v_new_val_obj); if (__pyx_3 == (-1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 248; goto __pyx_L1;}
642
 
 
643
 
    /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":250 */
644
 
    __pyx_2 = PyObject_GetAttr(((PyObject *)PyTuple_GET_ITEM(__pyx_v_atuple,3)), __pyx_n_st_mode); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 251; goto __pyx_L1;}
645
 
    __pyx_3 = PyInt_AsLong(__pyx_2); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 251; goto __pyx_L1;}
646
 
    Py_DECREF(__pyx_2); __pyx_2 = 0;
647
 
    __pyx_4 = ((struct __pyx_vtabstruct_6bzrlib_12_readdir_pyx_UTF8DirReader *)((struct __pyx_obj_6bzrlib_12_readdir_pyx_UTF8DirReader *)__pyx_v_self)->__pyx_vtab)->_kind_from_mode(((struct __pyx_obj_6bzrlib_12_readdir_pyx_UTF8DirReader *)__pyx_v_self),__pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 250; goto __pyx_L1;}
648
 
    Py_DECREF(__pyx_v_newval);
649
 
    __pyx_v_newval = __pyx_4;
650
 
    __pyx_4 = 0;
651
 
 
652
 
    /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":252 */
653
 
    Py_INCREF(__pyx_v_newval);
654
 
 
655
 
    /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":253 */
656
 
    __pyx_3 = PyTuple_SetItem(__pyx_v_atuple,2,__pyx_v_newval); if (__pyx_3 == (-1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 253; goto __pyx_L1;}
657
 
 
658
 
    /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":257 */
659
 
    __pyx_v_new_val_obj = ((PyObject *)__pyx_v_top_slash);
660
 
 
661
 
    /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":258 */
662
 
    Py_INCREF(__pyx_v_top_slash);
663
 
 
664
 
    /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":259 */
665
 
    PyString_Concat((&__pyx_v_new_val_obj),__pyx_v_name);
666
 
 
667
 
    /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":260 */
668
 
    __pyx_3 = (NULL == __pyx_v_new_val_obj);
669
 
    if (__pyx_3) {
670
 
      __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 263; goto __pyx_L1;}
671
 
      Py_INCREF(__pyx_k7p);
672
 
      PyTuple_SET_ITEM(__pyx_2, 0, __pyx_k7p);
673
 
      __pyx_4 = PyObject_CallObject(PyExc_Exception, __pyx_2); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 263; goto __pyx_L1;}
674
 
      Py_DECREF(__pyx_2); __pyx_2 = 0;
675
 
      __Pyx_Raise(__pyx_4, 0, 0);
676
 
      Py_DECREF(__pyx_4); __pyx_4 = 0;
677
 
      {__pyx_filename = __pyx_f[0]; __pyx_lineno = 263; goto __pyx_L1;}
678
 
      goto __pyx_L6;
679
 
    }
680
 
    __pyx_L6:;
681
 
 
682
 
    /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":264 */
683
 
    __pyx_3 = PyTuple_SetItem(__pyx_v_atuple,4,__pyx_v_new_val_obj); if (__pyx_3 == (-1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 264; goto __pyx_L1;}
684
 
  }
685
 
 
686
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":265 */
687
 
  Py_INCREF(__pyx_v_result);
688
 
  __pyx_r = __pyx_v_result;
689
 
  goto __pyx_L0;
690
 
 
691
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
692
 
  goto __pyx_L0;
693
 
  __pyx_L1:;
694
 
  Py_XDECREF(__pyx_2);
695
 
  Py_XDECREF(__pyx_4);
696
 
  __Pyx_AddTraceback("bzrlib._readdir_pyx.UTF8DirReader.read_dir");
697
 
  __pyx_r = 0;
698
 
  __pyx_L0:;
699
 
  Py_DECREF(__pyx_v_newval);
700
 
  Py_DECREF(__pyx_v_name);
701
 
  Py_DECREF(__pyx_v_relprefix);
702
 
  Py_DECREF(__pyx_v_top_slash);
703
 
  Py_DECREF(__pyx_v_result);
704
 
  Py_DECREF(__pyx_v_self);
705
 
  Py_DECREF(__pyx_v_prefix);
706
 
  Py_DECREF(__pyx_v_top);
707
 
  return __pyx_r;
708
 
}
709
 
 
710
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx_raise_os_error(int __pyx_v_errnum,char *__pyx_v_msg_prefix,PyObject *__pyx_v_path) {
711
 
  PyObject *__pyx_r;
712
 
  int __pyx_1;
713
 
  PyObject *__pyx_2 = 0;
714
 
  PyObject *__pyx_3 = 0;
715
 
  PyObject *__pyx_4 = 0;
716
 
  PyObject *__pyx_5 = 0;
717
 
  Py_INCREF(__pyx_v_path);
718
 
 
719
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":269 */
720
 
  __pyx_1 = (__pyx_v_errnum == EINTR);
721
 
  if (__pyx_1) {
722
 
    __pyx_1 = PyErr_CheckSignals(); if (__pyx_1 == (-1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 270; goto __pyx_L1;}
723
 
    goto __pyx_L2;
724
 
  }
725
 
  __pyx_L2:;
726
 
 
727
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":271 */
728
 
  __pyx_2 = PyInt_FromLong(__pyx_v_errnum); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 271; goto __pyx_L1;}
729
 
  __pyx_3 = PyString_FromString(__pyx_v_msg_prefix); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 271; goto __pyx_L1;}
730
 
  __pyx_4 = PyString_FromString(strerror(__pyx_v_errnum)); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 271; goto __pyx_L1;}
731
 
  __pyx_5 = PyNumber_Add(__pyx_3, __pyx_4); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 271; goto __pyx_L1;}
732
 
  Py_DECREF(__pyx_3); __pyx_3 = 0;
733
 
  Py_DECREF(__pyx_4); __pyx_4 = 0;
734
 
  __pyx_3 = PyTuple_New(3); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 271; goto __pyx_L1;}
735
 
  PyTuple_SET_ITEM(__pyx_3, 0, __pyx_2);
736
 
  PyTuple_SET_ITEM(__pyx_3, 1, __pyx_5);
737
 
  Py_INCREF(__pyx_v_path);
738
 
  PyTuple_SET_ITEM(__pyx_3, 2, __pyx_v_path);
739
 
  __pyx_2 = 0;
740
 
  __pyx_5 = 0;
741
 
  __pyx_4 = PyObject_CallObject(PyExc_OSError, __pyx_3); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 271; goto __pyx_L1;}
742
 
  Py_DECREF(__pyx_3); __pyx_3 = 0;
743
 
  __Pyx_Raise(__pyx_4, 0, 0);
744
 
  Py_DECREF(__pyx_4); __pyx_4 = 0;
745
 
  {__pyx_filename = __pyx_f[0]; __pyx_lineno = 271; goto __pyx_L1;}
746
 
 
747
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
748
 
  goto __pyx_L0;
749
 
  __pyx_L1:;
750
 
  Py_XDECREF(__pyx_2);
751
 
  Py_XDECREF(__pyx_3);
752
 
  Py_XDECREF(__pyx_4);
753
 
  Py_XDECREF(__pyx_5);
754
 
  __Pyx_AddTraceback("bzrlib._readdir_pyx.raise_os_error");
755
 
  __pyx_r = 0;
756
 
  __pyx_L0:;
757
 
  Py_DECREF(__pyx_v_path);
758
 
  return __pyx_r;
759
 
}
760
 
 
761
 
static PyObject *__pyx_f_6bzrlib_12_readdir_pyx__read_dir(PyObject *__pyx_v_path) {
762
 
  DIR *__pyx_v_the_dir;
763
 
  dirent *__pyx_v_entry;
764
 
  dirent __pyx_v_sentinel;
765
 
  char *__pyx_v_name;
766
 
  int __pyx_v_stat_result;
767
 
  struct __pyx_obj_6bzrlib_12_readdir_pyx__Stat *__pyx_v_statvalue;
768
 
  int __pyx_v_orig_dir_fd;
769
 
  PyObject *__pyx_v_result;
770
 
  PyObject *__pyx_v_failed;
771
 
  PyObject *__pyx_r;
772
 
  int __pyx_1;
773
 
  PyObject *__pyx_2 = 0;
774
 
  char *__pyx_3;
775
 
  int __pyx_4;
776
 
  PyObject *__pyx_5 = 0;
777
 
  PyObject *__pyx_6 = 0;
778
 
  Py_INCREF(__pyx_v_path);
779
 
  __pyx_v_statvalue = ((struct __pyx_obj_6bzrlib_12_readdir_pyx__Stat *)Py_None); Py_INCREF(Py_None);
780
 
  __pyx_v_result = Py_None; Py_INCREF(Py_None);
781
 
  __pyx_v_failed = Py_None; Py_INCREF(Py_None);
782
 
 
783
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":295 */
784
 
  if (PyObject_Cmp(__pyx_v_path, __pyx_k6p, &__pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; goto __pyx_L1;}
785
 
  __pyx_1 = __pyx_1 != 0;
786
 
  if (__pyx_1) {
787
 
    if (PyObject_Cmp(__pyx_v_path, __pyx_k8p, &__pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 295; goto __pyx_L1;}
788
 
    __pyx_1 = __pyx_1 != 0;
789
 
  }
790
 
  if (__pyx_1) {
791
 
 
792
 
    /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":299 */
793
 
    __pyx_v_orig_dir_fd = open(__pyx_k8,O_RDONLY,0);
794
 
 
795
 
    /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":300 */
796
 
    __pyx_1 = (__pyx_v_orig_dir_fd == (-1));
797
 
    if (__pyx_1) {
798
 
      __pyx_2 = __pyx_f_6bzrlib_12_readdir_pyx_raise_os_error(errno,__pyx_k9,__pyx_k8p); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 301; goto __pyx_L1;}
799
 
      Py_DECREF(__pyx_2); __pyx_2 = 0;
800
 
      goto __pyx_L3;
801
 
    }
802
 
    __pyx_L3:;
803
 
 
804
 
    /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":302 */
805
 
    __pyx_3 = PyString_AsString(__pyx_v_path); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 302; goto __pyx_L1;}
806
 
    __pyx_1 = ((-1) == chdir(__pyx_3));
807
 
    if (__pyx_1) {
808
 
 
809
 
      /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":305 */
810
 
      close(__pyx_v_orig_dir_fd);
811
 
 
812
 
      /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":306 */
813
 
      __pyx_2 = __pyx_f_6bzrlib_12_readdir_pyx_raise_os_error(errno,__pyx_k10,__pyx_v_path); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 306; goto __pyx_L1;}
814
 
      Py_DECREF(__pyx_2); __pyx_2 = 0;
815
 
      goto __pyx_L4;
816
 
    }
817
 
    __pyx_L4:;
818
 
    goto __pyx_L2;
819
 
  }
820
 
  /*else*/ {
821
 
    __pyx_v_orig_dir_fd = (-1);
822
 
  }
823
 
  __pyx_L2:;
824
 
 
825
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":310 */
826
 
  /*try:*/ {
827
 
 
828
 
    /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":311 */
829
 
    __pyx_v_the_dir = opendir(__pyx_k8);
830
 
 
831
 
    /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":312 */
832
 
    __pyx_1 = (NULL == __pyx_v_the_dir);
833
 
    if (__pyx_1) {
834
 
      __pyx_2 = __pyx_f_6bzrlib_12_readdir_pyx_raise_os_error(errno,__pyx_k11,__pyx_v_path); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 313; goto __pyx_L6;}
835
 
      Py_DECREF(__pyx_2); __pyx_2 = 0;
836
 
      goto __pyx_L8;
837
 
    }
838
 
    __pyx_L8:;
839
 
 
840
 
    /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":314 */
841
 
    /*try:*/ {
842
 
 
843
 
      /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":315 */
844
 
      __pyx_2 = PyList_New(0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 315; goto __pyx_L10;}
845
 
      Py_DECREF(__pyx_v_result);
846
 
      __pyx_v_result = __pyx_2;
847
 
      __pyx_2 = 0;
848
 
 
849
 
      /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":316 */
850
 
      __pyx_v_entry = (&__pyx_v_sentinel);
851
 
 
852
 
      /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":317 */
853
 
      while (1) {
854
 
        __pyx_1 = (__pyx_v_entry != NULL);
855
 
        if (!__pyx_1) break;
856
 
 
857
 
        /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":321 */
858
 
        while (1) {
859
 
          __pyx_1 = PyObject_IsTrue(Py_True); if (__pyx_1 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 321; goto __pyx_L10;}
860
 
          if (!__pyx_1) break;
861
 
 
862
 
          /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":322 */
863
 
          errno = 0;
864
 
 
865
 
          /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":323 */
866
 
          __pyx_v_entry = readdir(__pyx_v_the_dir);
867
 
 
868
 
          /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":324 */
869
 
          __pyx_1 = (__pyx_v_entry == NULL);
870
 
          if (__pyx_1) {
871
 
            __pyx_1 = (errno == EAGAIN);
872
 
            if (!__pyx_1) {
873
 
              __pyx_1 = (errno == EINTR);
874
 
            }
875
 
          }
876
 
          if (__pyx_1) {
877
 
 
878
 
            /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":325 */
879
 
            __pyx_1 = (errno == EINTR);
880
 
            if (__pyx_1) {
881
 
              __pyx_1 = PyErr_CheckSignals(); if (__pyx_1 == (-1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 326; goto __pyx_L10;}
882
 
              goto __pyx_L17;
883
 
            }
884
 
            __pyx_L17:;
885
 
 
886
 
            /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":328 */
887
 
            goto __pyx_L14;
888
 
            goto __pyx_L16;
889
 
          }
890
 
          /*else*/ {
891
 
            goto __pyx_L15;
892
 
          }
893
 
          __pyx_L16:;
894
 
          __pyx_L14:;
895
 
        }
896
 
        __pyx_L15:;
897
 
 
898
 
        /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":331 */
899
 
        __pyx_1 = (__pyx_v_entry == NULL);
900
 
        if (__pyx_1) {
901
 
          __pyx_1 = (errno == ENOTDIR);
902
 
          if (!__pyx_1) {
903
 
            __pyx_1 = (errno == 0);
904
 
          }
905
 
          if (__pyx_1) {
906
 
            goto __pyx_L12;
907
 
            goto __pyx_L19;
908
 
          }
909
 
          /*else*/ {
910
 
            __pyx_2 = __pyx_f_6bzrlib_12_readdir_pyx_raise_os_error(errno,__pyx_k12,__pyx_v_path); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 338; goto __pyx_L10;}
911
 
            Py_DECREF(__pyx_2); __pyx_2 = 0;
912
 
          }
913
 
          __pyx_L19:;
914
 
          goto __pyx_L18;
915
 
        }
916
 
        __pyx_L18:;
917
 
 
918
 
        /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":339 */
919
 
        __pyx_v_name = __pyx_v_entry->d_name;
920
 
 
921
 
        /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":340 */
922
 
        __pyx_1 = ((__pyx_v_name[0]) == '.');
923
 
        if (__pyx_1) {
924
 
          __pyx_1 = ((__pyx_v_name[1]) == 0);
925
 
          if (!__pyx_1) {
926
 
            __pyx_1 = ((__pyx_v_name[1]) == '.');
927
 
            if (__pyx_1) {
928
 
              __pyx_1 = ((__pyx_v_name[2]) == 0);
929
 
            }
930
 
          }
931
 
        }
932
 
        __pyx_4 = (!__pyx_1);
933
 
        if (__pyx_4) {
934
 
 
935
 
          /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":344 */
936
 
          __pyx_2 = PyObject_CallObject(((PyObject *)__pyx_ptype_6bzrlib_12_readdir_pyx__Stat), 0); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 344; goto __pyx_L10;}
937
 
          Py_DECREF(((PyObject *)__pyx_v_statvalue));
938
 
          __pyx_v_statvalue = ((struct __pyx_obj_6bzrlib_12_readdir_pyx__Stat *)__pyx_2);
939
 
          __pyx_2 = 0;
940
 
 
941
 
          /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":345 */
942
 
          __pyx_v_stat_result = lstat(__pyx_v_entry->d_name,(&__pyx_v_statvalue->_st));
943
 
 
944
 
          /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":346 */
945
 
          __pyx_1 = (__pyx_v_stat_result != 0);
946
 
          if (__pyx_1) {
947
 
            __pyx_4 = (errno != ENOENT);
948
 
            if (__pyx_4) {
949
 
              __pyx_2 = PyNumber_Add(__pyx_v_path, __pyx_k5p); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; goto __pyx_L10;}
950
 
              __pyx_5 = PyString_FromString(__pyx_v_entry->d_name); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; goto __pyx_L10;}
951
 
              __pyx_6 = PyNumber_Add(__pyx_2, __pyx_5); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 349; goto __pyx_L10;}
952
 
              Py_DECREF(__pyx_2); __pyx_2 = 0;
953
 
              Py_DECREF(__pyx_5); __pyx_5 = 0;
954
 
              __pyx_2 = __pyx_f_6bzrlib_12_readdir_pyx_raise_os_error(errno,__pyx_k13,__pyx_6); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 348; goto __pyx_L10;}
955
 
              Py_DECREF(__pyx_6); __pyx_6 = 0;
956
 
              Py_DECREF(__pyx_2); __pyx_2 = 0;
957
 
              goto __pyx_L22;
958
 
            }
959
 
            /*else*/ {
960
 
              goto __pyx_L12;
961
 
            }
962
 
            __pyx_L22:;
963
 
            goto __pyx_L21;
964
 
          }
965
 
          __pyx_L21:;
966
 
 
967
 
          /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":362 */
968
 
          __pyx_5 = PyLong_FromUnsignedLong(__pyx_v_entry->d_ino); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 362; goto __pyx_L10;}
969
 
          __pyx_6 = PyString_FromString(__pyx_v_entry->d_name); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 362; goto __pyx_L10;}
970
 
          __pyx_2 = PyTuple_New(5); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 362; goto __pyx_L10;}
971
 
          PyTuple_SET_ITEM(__pyx_2, 0, __pyx_5);
972
 
          PyTuple_SET_ITEM(__pyx_2, 1, __pyx_6);
973
 
          Py_INCREF(Py_None);
974
 
          PyTuple_SET_ITEM(__pyx_2, 2, Py_None);
975
 
          Py_INCREF(((PyObject *)__pyx_v_statvalue));
976
 
          PyTuple_SET_ITEM(__pyx_2, 3, ((PyObject *)__pyx_v_statvalue));
977
 
          Py_INCREF(Py_None);
978
 
          PyTuple_SET_ITEM(__pyx_2, 4, Py_None);
979
 
          __pyx_5 = 0;
980
 
          __pyx_6 = 0;
981
 
          __pyx_1 = PyList_Append(__pyx_v_result,__pyx_2); if (__pyx_1 == (-1)) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 362; goto __pyx_L10;}
982
 
          Py_DECREF(__pyx_2); __pyx_2 = 0;
983
 
          goto __pyx_L20;
984
 
        }
985
 
        __pyx_L20:;
986
 
        __pyx_L12:;
987
 
      }
988
 
    }
989
 
    /*finally:*/ {
990
 
      int __pyx_why;
991
 
      PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
992
 
      int __pyx_exc_lineno;
993
 
      __pyx_why = 0; goto __pyx_L11;
994
 
      __pyx_L10: {
995
 
        __pyx_why = 4;
996
 
        Py_XDECREF(__pyx_5); __pyx_5 = 0;
997
 
        Py_XDECREF(__pyx_6); __pyx_6 = 0;
998
 
        Py_XDECREF(__pyx_2); __pyx_2 = 0;
999
 
        PyErr_Fetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
1000
 
        __pyx_exc_lineno = __pyx_lineno;
1001
 
        goto __pyx_L11;
1002
 
      }
1003
 
      __pyx_L11:;
1004
 
      __pyx_4 = ((-1) == closedir(__pyx_v_the_dir));
1005
 
      if (__pyx_4) {
1006
 
        __pyx_5 = __pyx_f_6bzrlib_12_readdir_pyx_raise_os_error(errno,__pyx_k14,__pyx_v_path); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 366; goto __pyx_L23;}
1007
 
        Py_DECREF(__pyx_5); __pyx_5 = 0;
1008
 
        goto __pyx_L24;
1009
 
      }
1010
 
      __pyx_L24:;
1011
 
      goto __pyx_L25;
1012
 
      __pyx_L23:;
1013
 
      if (__pyx_why == 4) {
1014
 
        Py_XDECREF(__pyx_exc_type);
1015
 
        Py_XDECREF(__pyx_exc_value);
1016
 
        Py_XDECREF(__pyx_exc_tb);
1017
 
      }
1018
 
      goto __pyx_L6;
1019
 
      __pyx_L25:;
1020
 
      switch (__pyx_why) {
1021
 
        case 4: {
1022
 
          PyErr_Restore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
1023
 
          __pyx_lineno = __pyx_exc_lineno;
1024
 
          __pyx_exc_type = 0;
1025
 
          __pyx_exc_value = 0;
1026
 
          __pyx_exc_tb = 0;
1027
 
          goto __pyx_L6;
1028
 
        }
1029
 
      }
1030
 
    }
1031
 
  }
1032
 
  /*finally:*/ {
1033
 
    int __pyx_why;
1034
 
    PyObject *__pyx_exc_type, *__pyx_exc_value, *__pyx_exc_tb;
1035
 
    int __pyx_exc_lineno;
1036
 
    __pyx_why = 0; goto __pyx_L7;
1037
 
    __pyx_L6: {
1038
 
      __pyx_why = 4;
1039
 
      Py_XDECREF(__pyx_6); __pyx_6 = 0;
1040
 
      Py_XDECREF(__pyx_2); __pyx_2 = 0;
1041
 
      Py_XDECREF(__pyx_5); __pyx_5 = 0;
1042
 
      PyErr_Fetch(&__pyx_exc_type, &__pyx_exc_value, &__pyx_exc_tb);
1043
 
      __pyx_exc_lineno = __pyx_lineno;
1044
 
      goto __pyx_L7;
1045
 
    }
1046
 
    __pyx_L7:;
1047
 
    __pyx_1 = ((-1) != __pyx_v_orig_dir_fd);
1048
 
    if (__pyx_1) {
1049
 
 
1050
 
      /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":369 */
1051
 
      Py_INCREF(Py_False);
1052
 
      Py_DECREF(__pyx_v_failed);
1053
 
      __pyx_v_failed = Py_False;
1054
 
 
1055
 
      /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":370 */
1056
 
      __pyx_4 = ((-1) == fchdir(__pyx_v_orig_dir_fd));
1057
 
      if (__pyx_4) {
1058
 
        Py_INCREF(Py_True);
1059
 
        Py_DECREF(__pyx_v_failed);
1060
 
        __pyx_v_failed = Py_True;
1061
 
        goto __pyx_L28;
1062
 
      }
1063
 
      __pyx_L28:;
1064
 
 
1065
 
      /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":373 */
1066
 
      __pyx_6 = PyInt_FromLong(((-1) == close(__pyx_v_orig_dir_fd))); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; goto __pyx_L26;}
1067
 
      __pyx_1 = PyObject_IsTrue(__pyx_6); if (__pyx_1 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; goto __pyx_L26;}
1068
 
      if (!__pyx_1) {
1069
 
        Py_DECREF(__pyx_6); __pyx_6 = 0;
1070
 
        __pyx_6 = __pyx_v_failed;
1071
 
        Py_INCREF(__pyx_6);
1072
 
      }
1073
 
      __pyx_4 = PyObject_IsTrue(__pyx_6); if (__pyx_4 < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 373; goto __pyx_L26;}
1074
 
      Py_DECREF(__pyx_6); __pyx_6 = 0;
1075
 
      if (__pyx_4) {
1076
 
        __pyx_2 = __pyx_f_6bzrlib_12_readdir_pyx_raise_os_error(errno,__pyx_k15,__pyx_k6p); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 374; goto __pyx_L26;}
1077
 
        Py_DECREF(__pyx_2); __pyx_2 = 0;
1078
 
        goto __pyx_L29;
1079
 
      }
1080
 
      __pyx_L29:;
1081
 
      goto __pyx_L27;
1082
 
    }
1083
 
    __pyx_L27:;
1084
 
    goto __pyx_L30;
1085
 
    __pyx_L26:;
1086
 
    if (__pyx_why == 4) {
1087
 
      Py_XDECREF(__pyx_exc_type);
1088
 
      Py_XDECREF(__pyx_exc_value);
1089
 
      Py_XDECREF(__pyx_exc_tb);
1090
 
    }
1091
 
    goto __pyx_L1;
1092
 
    __pyx_L30:;
1093
 
    switch (__pyx_why) {
1094
 
      case 4: {
1095
 
        PyErr_Restore(__pyx_exc_type, __pyx_exc_value, __pyx_exc_tb);
1096
 
        __pyx_lineno = __pyx_exc_lineno;
1097
 
        __pyx_exc_type = 0;
1098
 
        __pyx_exc_value = 0;
1099
 
        __pyx_exc_tb = 0;
1100
 
        goto __pyx_L1;
1101
 
      }
1102
 
    }
1103
 
  }
1104
 
 
1105
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":376 */
1106
 
  Py_INCREF(__pyx_v_result);
1107
 
  __pyx_r = __pyx_v_result;
1108
 
  goto __pyx_L0;
1109
 
 
1110
 
  __pyx_r = Py_None; Py_INCREF(Py_None);
1111
 
  goto __pyx_L0;
1112
 
  __pyx_L1:;
1113
 
  Py_XDECREF(__pyx_2);
1114
 
  Py_XDECREF(__pyx_5);
1115
 
  Py_XDECREF(__pyx_6);
1116
 
  __Pyx_AddTraceback("bzrlib._readdir_pyx._read_dir");
1117
 
  __pyx_r = 0;
1118
 
  __pyx_L0:;
1119
 
  Py_DECREF(__pyx_v_statvalue);
1120
 
  Py_DECREF(__pyx_v_result);
1121
 
  Py_DECREF(__pyx_v_failed);
1122
 
  Py_DECREF(__pyx_v_path);
1123
 
  return __pyx_r;
1124
 
}
1125
 
 
1126
 
static PyObject *__pyx_tp_new_6bzrlib_12_readdir_pyx__Stat(PyTypeObject *t, PyObject *a, PyObject *k) {
1127
 
  PyObject *o = (*t->tp_alloc)(t, 0);
1128
 
  if (!o) return 0;
1129
 
  return o;
1130
 
}
1131
 
 
1132
 
static void __pyx_tp_dealloc_6bzrlib_12_readdir_pyx__Stat(PyObject *o) {
1133
 
  (*o->ob_type->tp_free)(o);
1134
 
}
1135
 
 
1136
 
static PyObject *__pyx_getprop_6bzrlib_12_readdir_pyx_5_Stat_st_dev(PyObject *o, void *x) {
1137
 
  return __pyx_f_6bzrlib_12_readdir_pyx_5_Stat_6st_dev___get__(o);
1138
 
}
1139
 
 
1140
 
static PyObject *__pyx_getprop_6bzrlib_12_readdir_pyx_5_Stat_st_ino(PyObject *o, void *x) {
1141
 
  return __pyx_f_6bzrlib_12_readdir_pyx_5_Stat_6st_ino___get__(o);
1142
 
}
1143
 
 
1144
 
static PyObject *__pyx_getprop_6bzrlib_12_readdir_pyx_5_Stat_st_mode(PyObject *o, void *x) {
1145
 
  return __pyx_f_6bzrlib_12_readdir_pyx_5_Stat_7st_mode___get__(o);
1146
 
}
1147
 
 
1148
 
static PyObject *__pyx_getprop_6bzrlib_12_readdir_pyx_5_Stat_st_ctime(PyObject *o, void *x) {
1149
 
  return __pyx_f_6bzrlib_12_readdir_pyx_5_Stat_8st_ctime___get__(o);
1150
 
}
1151
 
 
1152
 
static PyObject *__pyx_getprop_6bzrlib_12_readdir_pyx_5_Stat_st_mtime(PyObject *o, void *x) {
1153
 
  return __pyx_f_6bzrlib_12_readdir_pyx_5_Stat_8st_mtime___get__(o);
1154
 
}
1155
 
 
1156
 
static PyObject *__pyx_getprop_6bzrlib_12_readdir_pyx_5_Stat_st_size(PyObject *o, void *x) {
1157
 
  return __pyx_f_6bzrlib_12_readdir_pyx_5_Stat_7st_size___get__(o);
1158
 
}
1159
 
 
1160
 
static struct PyMethodDef __pyx_methods_6bzrlib_12_readdir_pyx__Stat[] = {
1161
 
  {0, 0, 0, 0}
1162
 
};
1163
 
 
1164
 
static struct PyGetSetDef __pyx_getsets_6bzrlib_12_readdir_pyx__Stat[] = {
1165
 
  {"st_dev", __pyx_getprop_6bzrlib_12_readdir_pyx_5_Stat_st_dev, 0, 0, 0},
1166
 
  {"st_ino", __pyx_getprop_6bzrlib_12_readdir_pyx_5_Stat_st_ino, 0, 0, 0},
1167
 
  {"st_mode", __pyx_getprop_6bzrlib_12_readdir_pyx_5_Stat_st_mode, 0, 0, 0},
1168
 
  {"st_ctime", __pyx_getprop_6bzrlib_12_readdir_pyx_5_Stat_st_ctime, 0, 0, 0},
1169
 
  {"st_mtime", __pyx_getprop_6bzrlib_12_readdir_pyx_5_Stat_st_mtime, 0, 0, 0},
1170
 
  {"st_size", __pyx_getprop_6bzrlib_12_readdir_pyx_5_Stat_st_size, 0, 0, 0},
1171
 
  {0, 0, 0, 0, 0}
1172
 
};
1173
 
 
1174
 
static PyNumberMethods __pyx_tp_as_number__Stat = {
1175
 
  0, /*nb_add*/
1176
 
  0, /*nb_subtract*/
1177
 
  0, /*nb_multiply*/
1178
 
  0, /*nb_divide*/
1179
 
  0, /*nb_remainder*/
1180
 
  0, /*nb_divmod*/
1181
 
  0, /*nb_power*/
1182
 
  0, /*nb_negative*/
1183
 
  0, /*nb_positive*/
1184
 
  0, /*nb_absolute*/
1185
 
  0, /*nb_nonzero*/
1186
 
  0, /*nb_invert*/
1187
 
  0, /*nb_lshift*/
1188
 
  0, /*nb_rshift*/
1189
 
  0, /*nb_and*/
1190
 
  0, /*nb_xor*/
1191
 
  0, /*nb_or*/
1192
 
  0, /*nb_coerce*/
1193
 
  0, /*nb_int*/
1194
 
  0, /*nb_long*/
1195
 
  0, /*nb_float*/
1196
 
  0, /*nb_oct*/
1197
 
  0, /*nb_hex*/
1198
 
  0, /*nb_inplace_add*/
1199
 
  0, /*nb_inplace_subtract*/
1200
 
  0, /*nb_inplace_multiply*/
1201
 
  0, /*nb_inplace_divide*/
1202
 
  0, /*nb_inplace_remainder*/
1203
 
  0, /*nb_inplace_power*/
1204
 
  0, /*nb_inplace_lshift*/
1205
 
  0, /*nb_inplace_rshift*/
1206
 
  0, /*nb_inplace_and*/
1207
 
  0, /*nb_inplace_xor*/
1208
 
  0, /*nb_inplace_or*/
1209
 
  0, /*nb_floor_divide*/
1210
 
  0, /*nb_true_divide*/
1211
 
  0, /*nb_inplace_floor_divide*/
1212
 
  0, /*nb_inplace_true_divide*/
1213
 
  #if Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX
1214
 
  0, /*nb_index*/
1215
 
  #endif
1216
 
};
1217
 
 
1218
 
static PySequenceMethods __pyx_tp_as_sequence__Stat = {
1219
 
  0, /*sq_length*/
1220
 
  0, /*sq_concat*/
1221
 
  0, /*sq_repeat*/
1222
 
  0, /*sq_item*/
1223
 
  0, /*sq_slice*/
1224
 
  0, /*sq_ass_item*/
1225
 
  0, /*sq_ass_slice*/
1226
 
  0, /*sq_contains*/
1227
 
  0, /*sq_inplace_concat*/
1228
 
  0, /*sq_inplace_repeat*/
1229
 
};
1230
 
 
1231
 
static PyMappingMethods __pyx_tp_as_mapping__Stat = {
1232
 
  0, /*mp_length*/
1233
 
  0, /*mp_subscript*/
1234
 
  0, /*mp_ass_subscript*/
1235
 
};
1236
 
 
1237
 
static PyBufferProcs __pyx_tp_as_buffer__Stat = {
1238
 
  0, /*bf_getreadbuffer*/
1239
 
  0, /*bf_getwritebuffer*/
1240
 
  0, /*bf_getsegcount*/
1241
 
  0, /*bf_getcharbuffer*/
1242
 
};
1243
 
 
1244
 
PyTypeObject __pyx_type_6bzrlib_12_readdir_pyx__Stat = {
1245
 
  PyObject_HEAD_INIT(0)
1246
 
  0, /*ob_size*/
1247
 
  "bzrlib._readdir_pyx._Stat", /*tp_name*/
1248
 
  sizeof(struct __pyx_obj_6bzrlib_12_readdir_pyx__Stat), /*tp_basicsize*/
1249
 
  0, /*tp_itemsize*/
1250
 
  __pyx_tp_dealloc_6bzrlib_12_readdir_pyx__Stat, /*tp_dealloc*/
1251
 
  0, /*tp_print*/
1252
 
  0, /*tp_getattr*/
1253
 
  0, /*tp_setattr*/
1254
 
  0, /*tp_compare*/
1255
 
  __pyx_f_6bzrlib_12_readdir_pyx_5_Stat___repr__, /*tp_repr*/
1256
 
  &__pyx_tp_as_number__Stat, /*tp_as_number*/
1257
 
  &__pyx_tp_as_sequence__Stat, /*tp_as_sequence*/
1258
 
  &__pyx_tp_as_mapping__Stat, /*tp_as_mapping*/
1259
 
  0, /*tp_hash*/
1260
 
  0, /*tp_call*/
1261
 
  0, /*tp_str*/
1262
 
  0, /*tp_getattro*/
1263
 
  0, /*tp_setattro*/
1264
 
  &__pyx_tp_as_buffer__Stat, /*tp_as_buffer*/
1265
 
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE, /*tp_flags*/
1266
 
  "Represent a \'stat\' result.", /*tp_doc*/
1267
 
  0, /*tp_traverse*/
1268
 
  0, /*tp_clear*/
1269
 
  0, /*tp_richcompare*/
1270
 
  0, /*tp_weaklistoffset*/
1271
 
  0, /*tp_iter*/
1272
 
  0, /*tp_iternext*/
1273
 
  __pyx_methods_6bzrlib_12_readdir_pyx__Stat, /*tp_methods*/
1274
 
  0, /*tp_members*/
1275
 
  __pyx_getsets_6bzrlib_12_readdir_pyx__Stat, /*tp_getset*/
1276
 
  0, /*tp_base*/
1277
 
  0, /*tp_dict*/
1278
 
  0, /*tp_descr_get*/
1279
 
  0, /*tp_descr_set*/
1280
 
  0, /*tp_dictoffset*/
1281
 
  0, /*tp_init*/
1282
 
  0, /*tp_alloc*/
1283
 
  __pyx_tp_new_6bzrlib_12_readdir_pyx__Stat, /*tp_new*/
1284
 
  0, /*tp_free*/
1285
 
  0, /*tp_is_gc*/
1286
 
  0, /*tp_bases*/
1287
 
  0, /*tp_mro*/
1288
 
  0, /*tp_cache*/
1289
 
  0, /*tp_subclasses*/
1290
 
  0, /*tp_weaklist*/
1291
 
};
1292
 
static struct __pyx_vtabstruct_6bzrlib_12_readdir_pyx_UTF8DirReader __pyx_vtable_6bzrlib_12_readdir_pyx_UTF8DirReader;
1293
 
 
1294
 
static PyObject *__pyx_tp_new_6bzrlib_12_readdir_pyx_UTF8DirReader(PyTypeObject *t, PyObject *a, PyObject *k) {
1295
 
  struct __pyx_obj_6bzrlib_12_readdir_pyx_UTF8DirReader *p;
1296
 
  PyObject *o = (*t->tp_alloc)(t, 0);
1297
 
  if (!o) return 0;
1298
 
  p = ((struct __pyx_obj_6bzrlib_12_readdir_pyx_UTF8DirReader *)o);
1299
 
  *(struct __pyx_vtabstruct_6bzrlib_12_readdir_pyx_UTF8DirReader **)&p->__pyx_vtab = __pyx_vtabptr_6bzrlib_12_readdir_pyx_UTF8DirReader;
1300
 
  return o;
1301
 
}
1302
 
 
1303
 
static void __pyx_tp_dealloc_6bzrlib_12_readdir_pyx_UTF8DirReader(PyObject *o) {
1304
 
  (*o->ob_type->tp_free)(o);
1305
 
}
1306
 
 
1307
 
static struct PyMethodDef __pyx_methods_6bzrlib_12_readdir_pyx_UTF8DirReader[] = {
1308
 
  {"kind_from_mode", (PyCFunction)__pyx_f_6bzrlib_12_readdir_pyx_13UTF8DirReader_kind_from_mode, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6bzrlib_12_readdir_pyx_13UTF8DirReader_kind_from_mode},
1309
 
  {"top_prefix_to_starting_dir", (PyCFunction)__pyx_f_6bzrlib_12_readdir_pyx_13UTF8DirReader_top_prefix_to_starting_dir, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6bzrlib_12_readdir_pyx_13UTF8DirReader_top_prefix_to_starting_dir},
1310
 
  {"read_dir", (PyCFunction)__pyx_f_6bzrlib_12_readdir_pyx_13UTF8DirReader_read_dir, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6bzrlib_12_readdir_pyx_13UTF8DirReader_read_dir},
1311
 
  {0, 0, 0, 0}
1312
 
};
1313
 
 
1314
 
static PyNumberMethods __pyx_tp_as_number_UTF8DirReader = {
1315
 
  0, /*nb_add*/
1316
 
  0, /*nb_subtract*/
1317
 
  0, /*nb_multiply*/
1318
 
  0, /*nb_divide*/
1319
 
  0, /*nb_remainder*/
1320
 
  0, /*nb_divmod*/
1321
 
  0, /*nb_power*/
1322
 
  0, /*nb_negative*/
1323
 
  0, /*nb_positive*/
1324
 
  0, /*nb_absolute*/
1325
 
  0, /*nb_nonzero*/
1326
 
  0, /*nb_invert*/
1327
 
  0, /*nb_lshift*/
1328
 
  0, /*nb_rshift*/
1329
 
  0, /*nb_and*/
1330
 
  0, /*nb_xor*/
1331
 
  0, /*nb_or*/
1332
 
  0, /*nb_coerce*/
1333
 
  0, /*nb_int*/
1334
 
  0, /*nb_long*/
1335
 
  0, /*nb_float*/
1336
 
  0, /*nb_oct*/
1337
 
  0, /*nb_hex*/
1338
 
  0, /*nb_inplace_add*/
1339
 
  0, /*nb_inplace_subtract*/
1340
 
  0, /*nb_inplace_multiply*/
1341
 
  0, /*nb_inplace_divide*/
1342
 
  0, /*nb_inplace_remainder*/
1343
 
  0, /*nb_inplace_power*/
1344
 
  0, /*nb_inplace_lshift*/
1345
 
  0, /*nb_inplace_rshift*/
1346
 
  0, /*nb_inplace_and*/
1347
 
  0, /*nb_inplace_xor*/
1348
 
  0, /*nb_inplace_or*/
1349
 
  0, /*nb_floor_divide*/
1350
 
  0, /*nb_true_divide*/
1351
 
  0, /*nb_inplace_floor_divide*/
1352
 
  0, /*nb_inplace_true_divide*/
1353
 
  #if Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX
1354
 
  0, /*nb_index*/
1355
 
  #endif
1356
 
};
1357
 
 
1358
 
static PySequenceMethods __pyx_tp_as_sequence_UTF8DirReader = {
1359
 
  0, /*sq_length*/
1360
 
  0, /*sq_concat*/
1361
 
  0, /*sq_repeat*/
1362
 
  0, /*sq_item*/
1363
 
  0, /*sq_slice*/
1364
 
  0, /*sq_ass_item*/
1365
 
  0, /*sq_ass_slice*/
1366
 
  0, /*sq_contains*/
1367
 
  0, /*sq_inplace_concat*/
1368
 
  0, /*sq_inplace_repeat*/
1369
 
};
1370
 
 
1371
 
static PyMappingMethods __pyx_tp_as_mapping_UTF8DirReader = {
1372
 
  0, /*mp_length*/
1373
 
  0, /*mp_subscript*/
1374
 
  0, /*mp_ass_subscript*/
1375
 
};
1376
 
 
1377
 
static PyBufferProcs __pyx_tp_as_buffer_UTF8DirReader = {
1378
 
  0, /*bf_getreadbuffer*/
1379
 
  0, /*bf_getwritebuffer*/
1380
 
  0, /*bf_getsegcount*/
1381
 
  0, /*bf_getcharbuffer*/
1382
 
};
1383
 
 
1384
 
PyTypeObject __pyx_type_6bzrlib_12_readdir_pyx_UTF8DirReader = {
1385
 
  PyObject_HEAD_INIT(0)
1386
 
  0, /*ob_size*/
1387
 
  "bzrlib._readdir_pyx.UTF8DirReader", /*tp_name*/
1388
 
  sizeof(struct __pyx_obj_6bzrlib_12_readdir_pyx_UTF8DirReader), /*tp_basicsize*/
1389
 
  0, /*tp_itemsize*/
1390
 
  __pyx_tp_dealloc_6bzrlib_12_readdir_pyx_UTF8DirReader, /*tp_dealloc*/
1391
 
  0, /*tp_print*/
1392
 
  0, /*tp_getattr*/
1393
 
  0, /*tp_setattr*/
1394
 
  0, /*tp_compare*/
1395
 
  0, /*tp_repr*/
1396
 
  &__pyx_tp_as_number_UTF8DirReader, /*tp_as_number*/
1397
 
  &__pyx_tp_as_sequence_UTF8DirReader, /*tp_as_sequence*/
1398
 
  &__pyx_tp_as_mapping_UTF8DirReader, /*tp_as_mapping*/
1399
 
  0, /*tp_hash*/
1400
 
  0, /*tp_call*/
1401
 
  0, /*tp_str*/
1402
 
  0, /*tp_getattro*/
1403
 
  0, /*tp_setattro*/
1404
 
  &__pyx_tp_as_buffer_UTF8DirReader, /*tp_as_buffer*/
1405
 
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE, /*tp_flags*/
1406
 
  "A dir reader for utf8 file systems.", /*tp_doc*/
1407
 
  0, /*tp_traverse*/
1408
 
  0, /*tp_clear*/
1409
 
  0, /*tp_richcompare*/
1410
 
  0, /*tp_weaklistoffset*/
1411
 
  0, /*tp_iter*/
1412
 
  0, /*tp_iternext*/
1413
 
  __pyx_methods_6bzrlib_12_readdir_pyx_UTF8DirReader, /*tp_methods*/
1414
 
  0, /*tp_members*/
1415
 
  0, /*tp_getset*/
1416
 
  0, /*tp_base*/
1417
 
  0, /*tp_dict*/
1418
 
  0, /*tp_descr_get*/
1419
 
  0, /*tp_descr_set*/
1420
 
  0, /*tp_dictoffset*/
1421
 
  0, /*tp_init*/
1422
 
  0, /*tp_alloc*/
1423
 
  __pyx_tp_new_6bzrlib_12_readdir_pyx_UTF8DirReader, /*tp_new*/
1424
 
  0, /*tp_free*/
1425
 
  0, /*tp_is_gc*/
1426
 
  0, /*tp_bases*/
1427
 
  0, /*tp_mro*/
1428
 
  0, /*tp_cache*/
1429
 
  0, /*tp_subclasses*/
1430
 
  0, /*tp_weaklist*/
1431
 
};
1432
 
 
1433
 
static struct PyMethodDef __pyx_methods[] = {
1434
 
  {0, 0, 0, 0}
1435
 
};
1436
 
 
1437
 
static void __pyx_init_filenames(void); /*proto*/
1438
 
 
1439
 
PyMODINIT_FUNC init_readdir_pyx(void); /*proto*/
1440
 
PyMODINIT_FUNC init_readdir_pyx(void) {
1441
 
  PyObject *__pyx_1 = 0;
1442
 
  PyObject *__pyx_2 = 0;
1443
 
  __pyx_init_filenames();
1444
 
  __pyx_m = Py_InitModule4("_readdir_pyx", __pyx_methods, __pyx_mdoc, 0, PYTHON_API_VERSION);
1445
 
  if (!__pyx_m) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;};
1446
 
  Py_INCREF(__pyx_m);
1447
 
  __pyx_b = PyImport_AddModule("__builtin__");
1448
 
  if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;};
1449
 
  if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;};
1450
 
  if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 17; goto __pyx_L1;};
1451
 
  __pyx_v_6bzrlib_12_readdir_pyx__directory = Py_None; Py_INCREF(Py_None);
1452
 
  __pyx_v_6bzrlib_12_readdir_pyx__chardev = Py_None; Py_INCREF(Py_None);
1453
 
  __pyx_v_6bzrlib_12_readdir_pyx__block = Py_None; Py_INCREF(Py_None);
1454
 
  __pyx_v_6bzrlib_12_readdir_pyx__file = Py_None; Py_INCREF(Py_None);
1455
 
  __pyx_v_6bzrlib_12_readdir_pyx__fifo = Py_None; Py_INCREF(Py_None);
1456
 
  __pyx_v_6bzrlib_12_readdir_pyx__symlink = Py_None; Py_INCREF(Py_None);
1457
 
  __pyx_v_6bzrlib_12_readdir_pyx__socket = Py_None; Py_INCREF(Py_None);
1458
 
  __pyx_v_6bzrlib_12_readdir_pyx__unknown = Py_None; Py_INCREF(Py_None);
1459
 
  __pyx_v_6bzrlib_12_readdir_pyx__safe_utf8 = Py_None; Py_INCREF(Py_None);
1460
 
  if (PyType_Ready(&__pyx_type_6bzrlib_12_readdir_pyx__Stat) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; goto __pyx_L1;}
1461
 
  if (PyObject_SetAttrString(__pyx_m, "_Stat", (PyObject *)&__pyx_type_6bzrlib_12_readdir_pyx__Stat) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 131; goto __pyx_L1;}
1462
 
  __pyx_ptype_6bzrlib_12_readdir_pyx__Stat = &__pyx_type_6bzrlib_12_readdir_pyx__Stat;
1463
 
  __pyx_vtabptr_6bzrlib_12_readdir_pyx_UTF8DirReader = &__pyx_vtable_6bzrlib_12_readdir_pyx_UTF8DirReader;
1464
 
  *(void(**)(void))&__pyx_vtable_6bzrlib_12_readdir_pyx_UTF8DirReader._kind_from_mode = (void(*)(void))__pyx_f_6bzrlib_12_readdir_pyx_13UTF8DirReader__kind_from_mode;
1465
 
  if (PyType_Ready(&__pyx_type_6bzrlib_12_readdir_pyx_UTF8DirReader) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; goto __pyx_L1;}
1466
 
  if (__Pyx_SetVtable(__pyx_type_6bzrlib_12_readdir_pyx_UTF8DirReader.tp_dict, __pyx_vtabptr_6bzrlib_12_readdir_pyx_UTF8DirReader) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; goto __pyx_L1;}
1467
 
  if (PyObject_SetAttrString(__pyx_m, "UTF8DirReader", (PyObject *)&__pyx_type_6bzrlib_12_readdir_pyx_UTF8DirReader) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 174; goto __pyx_L1;}
1468
 
  __pyx_ptype_6bzrlib_12_readdir_pyx_UTF8DirReader = &__pyx_type_6bzrlib_12_readdir_pyx_UTF8DirReader;
1469
 
 
1470
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":20 */
1471
 
  __pyx_1 = __Pyx_Import(__pyx_n_os, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; goto __pyx_L1;}
1472
 
  if (PyObject_SetAttr(__pyx_m, __pyx_n_os, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 20; goto __pyx_L1;}
1473
 
  Py_DECREF(__pyx_1); __pyx_1 = 0;
1474
 
 
1475
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":21 */
1476
 
  __pyx_1 = __Pyx_Import(__pyx_n_sys, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; goto __pyx_L1;}
1477
 
  if (PyObject_SetAttr(__pyx_m, __pyx_n_sys, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 21; goto __pyx_L1;}
1478
 
  Py_DECREF(__pyx_1); __pyx_1 = 0;
1479
 
 
1480
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":110 */
1481
 
  Py_INCREF(__pyx_n_directory);
1482
 
  Py_DECREF(__pyx_v_6bzrlib_12_readdir_pyx__directory);
1483
 
  __pyx_v_6bzrlib_12_readdir_pyx__directory = __pyx_n_directory;
1484
 
 
1485
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":112 */
1486
 
  Py_INCREF(__pyx_n_chardev);
1487
 
  Py_DECREF(__pyx_v_6bzrlib_12_readdir_pyx__chardev);
1488
 
  __pyx_v_6bzrlib_12_readdir_pyx__chardev = __pyx_n_chardev;
1489
 
 
1490
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":114 */
1491
 
  Py_INCREF(__pyx_n_block);
1492
 
  Py_DECREF(__pyx_v_6bzrlib_12_readdir_pyx__block);
1493
 
  __pyx_v_6bzrlib_12_readdir_pyx__block = __pyx_n_block;
1494
 
 
1495
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":116 */
1496
 
  Py_INCREF(__pyx_n_file);
1497
 
  Py_DECREF(__pyx_v_6bzrlib_12_readdir_pyx__file);
1498
 
  __pyx_v_6bzrlib_12_readdir_pyx__file = __pyx_n_file;
1499
 
 
1500
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":118 */
1501
 
  Py_INCREF(__pyx_n_fifo);
1502
 
  Py_DECREF(__pyx_v_6bzrlib_12_readdir_pyx__fifo);
1503
 
  __pyx_v_6bzrlib_12_readdir_pyx__fifo = __pyx_n_fifo;
1504
 
 
1505
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":120 */
1506
 
  Py_INCREF(__pyx_n_symlink);
1507
 
  Py_DECREF(__pyx_v_6bzrlib_12_readdir_pyx__symlink);
1508
 
  __pyx_v_6bzrlib_12_readdir_pyx__symlink = __pyx_n_symlink;
1509
 
 
1510
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":122 */
1511
 
  Py_INCREF(__pyx_n_socket);
1512
 
  Py_DECREF(__pyx_v_6bzrlib_12_readdir_pyx__socket);
1513
 
  __pyx_v_6bzrlib_12_readdir_pyx__socket = __pyx_n_socket;
1514
 
 
1515
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":124 */
1516
 
  Py_INCREF(__pyx_n_unknown);
1517
 
  Py_DECREF(__pyx_v_6bzrlib_12_readdir_pyx__unknown);
1518
 
  __pyx_v_6bzrlib_12_readdir_pyx__unknown = __pyx_n_unknown;
1519
 
 
1520
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":169 */
1521
 
  __pyx_1 = PyList_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; goto __pyx_L1;}
1522
 
  Py_INCREF(__pyx_n_osutils);
1523
 
  PyList_SET_ITEM(__pyx_1, 0, __pyx_n_osutils);
1524
 
  __pyx_2 = __Pyx_Import(__pyx_n_bzrlib, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; goto __pyx_L1;}
1525
 
  Py_DECREF(__pyx_1); __pyx_1 = 0;
1526
 
  __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_osutils); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; goto __pyx_L1;}
1527
 
  if (PyObject_SetAttr(__pyx_m, __pyx_n_osutils, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 169; goto __pyx_L1;}
1528
 
  Py_DECREF(__pyx_1); __pyx_1 = 0;
1529
 
  Py_DECREF(__pyx_2); __pyx_2 = 0;
1530
 
 
1531
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":172 */
1532
 
  __pyx_2 = __Pyx_GetName(__pyx_m, __pyx_n_osutils); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; goto __pyx_L1;}
1533
 
  __pyx_1 = PyObject_GetAttr(__pyx_2, __pyx_n_safe_utf8); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 172; goto __pyx_L1;}
1534
 
  Py_DECREF(__pyx_2); __pyx_2 = 0;
1535
 
  Py_DECREF(__pyx_v_6bzrlib_12_readdir_pyx__safe_utf8);
1536
 
  __pyx_v_6bzrlib_12_readdir_pyx__safe_utf8 = __pyx_1;
1537
 
  __pyx_1 = 0;
1538
 
 
1539
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":199 */
1540
 
  Py_INCREF(__pyx_k6p);
1541
 
  __pyx_d1 = __pyx_k6p;
1542
 
 
1543
 
  /* "/home/vila/src/bzr/integration/trunk/bzrlib/_readdir_pyx.pyx":274 */
1544
 
  return;
1545
 
  __pyx_L1:;
1546
 
  Py_XDECREF(__pyx_1);
1547
 
  Py_XDECREF(__pyx_2);
1548
 
  __Pyx_AddTraceback("bzrlib._readdir_pyx");
1549
 
}
1550
 
 
1551
 
static char *__pyx_filenames[] = {
1552
 
  "_readdir_pyx.pyx",
1553
 
};
1554
 
 
1555
 
/* Runtime support code */
1556
 
 
1557
 
static void __pyx_init_filenames(void) {
1558
 
  __pyx_f = __pyx_filenames;
1559
 
}
1560
 
 
1561
 
static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb) {
1562
 
    Py_XINCREF(type);
1563
 
    Py_XINCREF(value);
1564
 
    Py_XINCREF(tb);
1565
 
    /* First, check the traceback argument, replacing None with NULL. */
1566
 
    if (tb == Py_None) {
1567
 
        Py_DECREF(tb);
1568
 
        tb = 0;
1569
 
    }
1570
 
    else if (tb != NULL && !PyTraceBack_Check(tb)) {
1571
 
        PyErr_SetString(PyExc_TypeError,
1572
 
            "raise: arg 3 must be a traceback or None");
1573
 
        goto raise_error;
1574
 
    }
1575
 
    /* Next, replace a missing value with None */
1576
 
    if (value == NULL) {
1577
 
        value = Py_None;
1578
 
        Py_INCREF(value);
1579
 
    }
1580
 
    #if PY_VERSION_HEX < 0x02050000
1581
 
    if (!PyClass_Check(type))
1582
 
    #else
1583
 
    if (!PyType_Check(type))
1584
 
    #endif
1585
 
    {
1586
 
        /* Raising an instance.  The value should be a dummy. */
1587
 
        if (value != Py_None) {
1588
 
            PyErr_SetString(PyExc_TypeError,
1589
 
                "instance exception may not have a separate value");
1590
 
            goto raise_error;
1591
 
        }
1592
 
        /* Normalize to raise <class>, <instance> */
1593
 
        Py_DECREF(value);
1594
 
        value = type;
1595
 
        #if PY_VERSION_HEX < 0x02050000
1596
 
            if (PyInstance_Check(type)) {
1597
 
                type = (PyObject*) ((PyInstanceObject*)type)->in_class;
1598
 
                Py_INCREF(type);
1599
 
            }
1600
 
            else {
1601
 
                PyErr_SetString(PyExc_TypeError,
1602
 
                    "raise: exception must be an old-style class or instance");
1603
 
                goto raise_error;
1604
 
            }
1605
 
        #else
1606
 
            type = (PyObject*) type->ob_type;
1607
 
            Py_INCREF(type);
1608
 
            if (!PyType_IsSubtype((PyTypeObject *)type, (PyTypeObject *)PyExc_BaseException)) {
1609
 
                PyErr_SetString(PyExc_TypeError,
1610
 
                    "raise: exception class must be a subclass of BaseException");
1611
 
                goto raise_error;
1612
 
            }
1613
 
        #endif
1614
 
    }
1615
 
    PyErr_Restore(type, value, tb);
1616
 
    return;
1617
 
raise_error:
1618
 
    Py_XDECREF(value);
1619
 
    Py_XDECREF(type);
1620
 
    Py_XDECREF(tb);
1621
 
    return;
1622
 
}
1623
 
 
1624
 
static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
1625
 
    while (t->p) {
1626
 
        *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
1627
 
        if (!*t->p)
1628
 
            return -1;
1629
 
        if (t->i)
1630
 
            PyString_InternInPlace(t->p);
1631
 
        ++t;
1632
 
    }
1633
 
    return 0;
1634
 
}
1635
 
 
1636
 
static int __Pyx_SetVtable(PyObject *dict, void *vtable) {
1637
 
    PyObject *pycobj = 0;
1638
 
    int result;
1639
 
    
1640
 
    pycobj = PyCObject_FromVoidPtr(vtable, 0);
1641
 
    if (!pycobj)
1642
 
        goto bad;
1643
 
    if (PyDict_SetItemString(dict, "__pyx_vtable__", pycobj) < 0)
1644
 
        goto bad;
1645
 
    result = 0;
1646
 
    goto done;
1647
 
 
1648
 
bad:
1649
 
    result = -1;
1650
 
done:
1651
 
    Py_XDECREF(pycobj);
1652
 
    return result;
1653
 
}
1654
 
 
1655
 
static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list) {
1656
 
    PyObject *__import__ = 0;
1657
 
    PyObject *empty_list = 0;
1658
 
    PyObject *module = 0;
1659
 
    PyObject *global_dict = 0;
1660
 
    PyObject *empty_dict = 0;
1661
 
    PyObject *list;
1662
 
    __import__ = PyObject_GetAttrString(__pyx_b, "__import__");
1663
 
    if (!__import__)
1664
 
        goto bad;
1665
 
    if (from_list)
1666
 
        list = from_list;
1667
 
    else {
1668
 
        empty_list = PyList_New(0);
1669
 
        if (!empty_list)
1670
 
            goto bad;
1671
 
        list = empty_list;
1672
 
    }
1673
 
    global_dict = PyModule_GetDict(__pyx_m);
1674
 
    if (!global_dict)
1675
 
        goto bad;
1676
 
    empty_dict = PyDict_New();
1677
 
    if (!empty_dict)
1678
 
        goto bad;
1679
 
    module = PyObject_CallFunction(__import__, "OOOO",
1680
 
        name, global_dict, empty_dict, list);
1681
 
bad:
1682
 
    Py_XDECREF(empty_list);
1683
 
    Py_XDECREF(__import__);
1684
 
    Py_XDECREF(empty_dict);
1685
 
    return module;
1686
 
}
1687
 
 
1688
 
static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) {
1689
 
    PyObject *result;
1690
 
    result = PyObject_GetAttr(dict, name);
1691
 
    if (!result)
1692
 
        PyErr_SetObject(PyExc_NameError, name);
1693
 
    return result;
1694
 
}
1695
 
 
1696
 
#include "compile.h"
1697
 
#include "frameobject.h"
1698
 
#include "traceback.h"
1699
 
 
1700
 
static void __Pyx_AddTraceback(char *funcname) {
1701
 
    PyObject *py_srcfile = 0;
1702
 
    PyObject *py_funcname = 0;
1703
 
    PyObject *py_globals = 0;
1704
 
    PyObject *empty_tuple = 0;
1705
 
    PyObject *empty_string = 0;
1706
 
    PyCodeObject *py_code = 0;
1707
 
    PyFrameObject *py_frame = 0;
1708
 
    
1709
 
    py_srcfile = PyString_FromString(__pyx_filename);
1710
 
    if (!py_srcfile) goto bad;
1711
 
    py_funcname = PyString_FromString(funcname);
1712
 
    if (!py_funcname) goto bad;
1713
 
    py_globals = PyModule_GetDict(__pyx_m);
1714
 
    if (!py_globals) goto bad;
1715
 
    empty_tuple = PyTuple_New(0);
1716
 
    if (!empty_tuple) goto bad;
1717
 
    empty_string = PyString_FromString("");
1718
 
    if (!empty_string) goto bad;
1719
 
    py_code = PyCode_New(
1720
 
        0,            /*int argcount,*/
1721
 
        0,            /*int nlocals,*/
1722
 
        0,            /*int stacksize,*/
1723
 
        0,            /*int flags,*/
1724
 
        empty_string, /*PyObject *code,*/
1725
 
        empty_tuple,  /*PyObject *consts,*/
1726
 
        empty_tuple,  /*PyObject *names,*/
1727
 
        empty_tuple,  /*PyObject *varnames,*/
1728
 
        empty_tuple,  /*PyObject *freevars,*/
1729
 
        empty_tuple,  /*PyObject *cellvars,*/
1730
 
        py_srcfile,   /*PyObject *filename,*/
1731
 
        py_funcname,  /*PyObject *name,*/
1732
 
        __pyx_lineno,   /*int firstlineno,*/
1733
 
        empty_string  /*PyObject *lnotab*/
1734
 
    );
1735
 
    if (!py_code) goto bad;
1736
 
    py_frame = PyFrame_New(
1737
 
        PyThreadState_Get(), /*PyThreadState *tstate,*/
1738
 
        py_code,             /*PyCodeObject *code,*/
1739
 
        py_globals,          /*PyObject *globals,*/
1740
 
        0                    /*PyObject *locals*/
1741
 
    );
1742
 
    if (!py_frame) goto bad;
1743
 
    py_frame->f_lineno = __pyx_lineno;
1744
 
    PyTraceBack_Here(py_frame);
1745
 
bad:
1746
 
    Py_XDECREF(py_srcfile);
1747
 
    Py_XDECREF(py_funcname);
1748
 
    Py_XDECREF(empty_tuple);
1749
 
    Py_XDECREF(empty_string);
1750
 
    Py_XDECREF(py_code);
1751
 
    Py_XDECREF(py_frame);
1752
 
}