1 /* Generated by Pyrex 0.9.3 on Thu Jun 9 16:58:27 2005 */
4 #include "structmember.h"
6 #define PY_LONG_LONG LONG_LONG
11 typedef struct {PyObject
**p
; char *s
;} __Pyx_InternTabEntry
; /*proto*/
12 typedef struct {PyObject
**p
; char *s
; long n
;} __Pyx_StringTabEntry
; /*proto*/
13 static PyObject
*__Pyx_UnpackItem(PyObject
*, int); /*proto*/
14 static int __Pyx_EndUnpack(PyObject
*, int); /*proto*/
15 static int __Pyx_PrintItem(PyObject
*); /*proto*/
16 static int __Pyx_PrintNewline(void); /*proto*/
17 static void __Pyx_Raise(PyObject
*type
, PyObject
*value
, PyObject
*tb
); /*proto*/
18 static void __Pyx_ReRaise(void); /*proto*/
19 static PyObject
*__Pyx_Import(PyObject
*name
, PyObject
*from_list
); /*proto*/
20 static PyObject
*__Pyx_GetExcValue(void); /*proto*/
21 static int __Pyx_ArgTypeTest(PyObject
*obj
, PyTypeObject
*type
, int none_allowed
, char *name
); /*proto*/
22 static int __Pyx_TypeTest(PyObject
*obj
, PyTypeObject
*type
); /*proto*/
23 static int __Pyx_GetStarArgs(PyObject
**args
, PyObject
**kwds
, char *kwd_list
[], int nargs
, PyObject
**args2
, PyObject
**kwds2
); /*proto*/
24 static void __Pyx_WriteUnraisable(char *name
); /*proto*/
25 static void __Pyx_AddTraceback(char *funcname
); /*proto*/
26 static PyTypeObject
*__Pyx_ImportType(char *module_name
, char *class_name
, long size
); /*proto*/
27 static int __Pyx_SetVtable(PyObject
*dict
, void *vtable
); /*proto*/
28 static int __Pyx_GetVtable(PyObject
*dict
, void *vtabptr
); /*proto*/
29 static PyObject
*__Pyx_CreateClass(PyObject
*bases
, PyObject
*dict
, PyObject
*name
, char *modname
); /*proto*/
30 static int __Pyx_InternStrings(__Pyx_InternTabEntry
*t
); /*proto*/
31 static int __Pyx_InitStrings(__Pyx_StringTabEntry
*t
); /*proto*/
32 static PyObject
*__Pyx_GetName(PyObject
*dict
, PyObject
*name
); /*proto*/
34 static PyObject
*__pyx_m
;
35 static PyObject
*__pyx_b
;
36 static int __pyx_lineno
;
37 static char *__pyx_filename
;
38 staticforward
char **__pyx_f
;
40 /* Declarations from checkpath */
42 staticforward PyTypeObject __pyx_type_9checkpath_CheckPath
;
44 struct __pyx_obj_9checkpath_CheckPath
{
49 static PyTypeObject
*__pyx_ptype_9checkpath_CheckPath
= 0;
50 static void (__pyx_f_9checkpath_cp_report(unsigned int ,int ,char (*),char (*),void (*))); /*proto*/
52 /* Implementation of checkpath */
54 static PyObject
*__pyx_n_ERROR
;
55 static PyObject
*__pyx_n_WRWORLD
;
56 static PyObject
*__pyx_n_WRGRP
;
57 static PyObject
*__pyx_n_WROTHGRP
;
58 static PyObject
*__pyx_n_WROTHUSR
;
59 static PyObject
*__pyx_n_PROBLEMS
;
60 static PyObject
*__pyx_n_SYMLINK
;
61 static PyObject
*__pyx_n_REPORT
;
62 static PyObject
*__pyx_n_STICKYOK
;
64 static PyObject
*__pyx_n_report
;
66 static char (__pyx_k1
[]) = "<null>";
68 static void __pyx_f_9checkpath_cp_report(unsigned int __pyx_v_what
,int __pyx_v_verb
,char (*__pyx_v_path
),char (*__pyx_v_msg
),void (*__pyx_v_arg
)) {
70 PyObject
*__pyx_1
= 0;
72 PyObject
*__pyx_3
= 0;
73 PyObject
*__pyx_4
= 0;
74 PyObject
*__pyx_5
= 0;
75 PyObject
*__pyx_6
= 0;
76 PyObject
*__pyx_7
= 0;
77 __pyx_v_cp
= Py_None
; Py_INCREF(__pyx_v_cp
);
79 /* "/home/mdw/src/chkpath-python/checkpath.pyx":44 */
80 __pyx_1
= (PyObject
*)__pyx_v_arg
;
82 Py_DECREF(__pyx_v_cp
);
86 /* "/home/mdw/src/chkpath-python/checkpath.pyx":45 */
87 __pyx_2
= (__pyx_v_msg
== 0);
90 /* "/home/mdw/src/chkpath-python/checkpath.pyx":46 */
91 __pyx_v_msg
= __pyx_k1
;
96 /* "/home/mdw/src/chkpath-python/checkpath.pyx":47 */
97 __pyx_1
= PyObject_GetAttr(__pyx_v_cp
, __pyx_n_report
); if (!__pyx_1
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 47; goto __pyx_L1
;}
98 __pyx_3
= PyInt_FromLong(__pyx_v_what
); if (!__pyx_3
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 47; goto __pyx_L1
;}
99 __pyx_4
= PyInt_FromLong(__pyx_v_verb
); if (!__pyx_4
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 47; goto __pyx_L1
;}
100 __pyx_5
= PyString_FromString(__pyx_v_path
); if (!__pyx_5
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 47; goto __pyx_L1
;}
101 __pyx_6
= PyString_FromString(__pyx_v_msg
); if (!__pyx_6
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 47; goto __pyx_L1
;}
102 __pyx_7
= PyTuple_New(4); if (!__pyx_7
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 47; goto __pyx_L1
;}
103 PyTuple_SET_ITEM(__pyx_7
, 0, __pyx_3
);
104 PyTuple_SET_ITEM(__pyx_7
, 1, __pyx_4
);
105 PyTuple_SET_ITEM(__pyx_7
, 2, __pyx_5
);
106 PyTuple_SET_ITEM(__pyx_7
, 3, __pyx_6
);
111 __pyx_3
= PyObject_CallObject(__pyx_1
, __pyx_7
); if (!__pyx_3
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 47; goto __pyx_L1
;}
112 Py_DECREF(__pyx_1
); __pyx_1
= 0;
113 Py_DECREF(__pyx_7
); __pyx_7
= 0;
114 Py_DECREF(__pyx_3
); __pyx_3
= 0;
124 __Pyx_WriteUnraisable("checkpath.cp_report");
126 Py_DECREF(__pyx_v_cp
);
129 static int __pyx_f_9checkpath_9CheckPath___init__(PyObject
*__pyx_v_me
, PyObject
*__pyx_args
, PyObject
*__pyx_kwds
); /*proto*/
130 static int __pyx_f_9checkpath_9CheckPath___init__(PyObject
*__pyx_v_me
, PyObject
*__pyx_args
, PyObject
*__pyx_kwds
) {
132 static char *__pyx_argnames
[] = {0};
133 if (!PyArg_ParseTupleAndKeywords(__pyx_args
, __pyx_kwds
, "", __pyx_argnames
)) return -1;
134 Py_INCREF(__pyx_v_me
);
136 /* "/home/mdw/src/chkpath-python/checkpath.pyx":52 */
137 ((struct __pyx_obj_9checkpath_CheckPath
*)__pyx_v_me
)->cp
.cp_uid
= 0;
139 /* "/home/mdw/src/chkpath-python/checkpath.pyx":53 */
140 ((struct __pyx_obj_9checkpath_CheckPath
*)__pyx_v_me
)->cp
.cp_gids
= 0;
142 /* "/home/mdw/src/chkpath-python/checkpath.pyx":54 */
143 ((struct __pyx_obj_9checkpath_CheckPath
*)__pyx_v_me
)->cp
.cp_verbose
= 1;
145 /* "/home/mdw/src/chkpath-python/checkpath.pyx":55 */
146 ((struct __pyx_obj_9checkpath_CheckPath
*)__pyx_v_me
)->cp
.cp_what
= CP_PROBLEMS
;
148 /* "/home/mdw/src/chkpath-python/checkpath.pyx":56 */
149 ((struct __pyx_obj_9checkpath_CheckPath
*)__pyx_v_me
)->cp
.cp_report
= __pyx_f_9checkpath_cp_report
;
151 /* "/home/mdw/src/chkpath-python/checkpath.pyx":57 */
152 ((struct __pyx_obj_9checkpath_CheckPath
*)__pyx_v_me
)->cp
.cp_arg
= ((void (*))__pyx_v_me
);
154 /* "/home/mdw/src/chkpath-python/checkpath.pyx":58 */
155 checkpath_setids((&((struct __pyx_obj_9checkpath_CheckPath
*)__pyx_v_me
)->cp
));
160 __Pyx_AddTraceback("checkpath.CheckPath.__init__");
163 Py_DECREF(__pyx_v_me
);
167 static PyObject
*__pyx_f_9checkpath_9CheckPath_setids(PyObject
*__pyx_v_me
, PyObject
*__pyx_args
, PyObject
*__pyx_kwds
); /*proto*/
168 static PyObject
*__pyx_f_9checkpath_9CheckPath_setids(PyObject
*__pyx_v_me
, PyObject
*__pyx_args
, PyObject
*__pyx_kwds
) {
170 static char *__pyx_argnames
[] = {0};
171 if (!PyArg_ParseTupleAndKeywords(__pyx_args
, __pyx_kwds
, "", __pyx_argnames
)) return 0;
172 Py_INCREF(__pyx_v_me
);
174 /* "/home/mdw/src/chkpath-python/checkpath.pyx":60 */
175 checkpath_setids((&((struct __pyx_obj_9checkpath_CheckPath
*)__pyx_v_me
)->cp
));
177 __pyx_r
= Py_None
; Py_INCREF(__pyx_r
);
180 __Pyx_AddTraceback("checkpath.CheckPath.setids");
183 Py_DECREF(__pyx_v_me
);
187 static PyObject
*__pyx_f_9checkpath_9CheckPath_3uid___get__(PyObject
*__pyx_v_me
); /*proto*/
188 static PyObject
*__pyx_f_9checkpath_9CheckPath_3uid___get__(PyObject
*__pyx_v_me
) {
190 PyObject
*__pyx_1
= 0;
191 Py_INCREF(__pyx_v_me
);
193 /* "/home/mdw/src/chkpath-python/checkpath.pyx":63 */
194 __pyx_1
= PyInt_FromLong(((struct __pyx_obj_9checkpath_CheckPath
*)__pyx_v_me
)->cp
.cp_uid
); if (!__pyx_1
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 63; goto __pyx_L1
;}
199 __pyx_r
= Py_None
; Py_INCREF(__pyx_r
);
203 __Pyx_AddTraceback("checkpath.CheckPath.uid.__get__");
206 Py_DECREF(__pyx_v_me
);
210 static int __pyx_f_9checkpath_9CheckPath_3uid___set__(PyObject
*__pyx_v_me
, PyObject
*__pyx_v_val
); /*proto*/
211 static int __pyx_f_9checkpath_9CheckPath_3uid___set__(PyObject
*__pyx_v_me
, PyObject
*__pyx_v_val
) {
214 Py_INCREF(__pyx_v_me
);
215 Py_INCREF(__pyx_v_val
);
217 /* "/home/mdw/src/chkpath-python/checkpath.pyx":65 */
218 __pyx_1
= PyInt_AsLong(__pyx_v_val
); if (PyErr_Occurred()) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 65; goto __pyx_L1
;}
219 ((struct __pyx_obj_9checkpath_CheckPath
*)__pyx_v_me
)->cp
.cp_uid
= __pyx_1
;
224 __Pyx_AddTraceback("checkpath.CheckPath.uid.__set__");
227 Py_DECREF(__pyx_v_me
);
228 Py_DECREF(__pyx_v_val
);
232 static PyObject
*__pyx_f_9checkpath_9CheckPath_4gids___get__(PyObject
*__pyx_v_me
); /*proto*/
233 static PyObject
*__pyx_f_9checkpath_9CheckPath_4gids___get__(PyObject
*__pyx_v_me
) {
237 PyObject
*__pyx_1
= 0;
241 Py_INCREF(__pyx_v_me
);
242 __pyx_v_g
= Py_None
; Py_INCREF(__pyx_v_g
);
243 __pyx_v_i
= Py_None
; Py_INCREF(__pyx_v_i
);
245 /* "/home/mdw/src/chkpath-python/checkpath.pyx":68 */
246 __pyx_1
= PyList_New(0); if (!__pyx_1
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 68; goto __pyx_L1
;}
247 Py_DECREF(__pyx_v_g
);
251 /* "/home/mdw/src/chkpath-python/checkpath.pyx":69 */
252 __pyx_3
= ((struct __pyx_obj_9checkpath_CheckPath
*)__pyx_v_me
)->cp
.cp_gids
;
253 for (__pyx_2
= 0; __pyx_2
< __pyx_3
; ++__pyx_2
) {
254 __pyx_1
= PyInt_FromLong(__pyx_2
); if (!__pyx_1
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 69; goto __pyx_L1
;}
255 Py_DECREF(__pyx_v_i
);
259 /* "/home/mdw/src/chkpath-python/checkpath.pyx":70 */
260 __pyx_4
= PyInt_AsLong(__pyx_v_i
); if (PyErr_Occurred()) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 70; goto __pyx_L1
;}
261 __pyx_1
= PyInt_FromLong((((struct __pyx_obj_9checkpath_CheckPath
*)__pyx_v_me
)->cp
.cp_gid
[__pyx_4
])); if (!__pyx_1
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 70; goto __pyx_L1
;}
262 if (PyObject_SetItem(__pyx_v_g
, __pyx_v_i
, __pyx_1
) < 0) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 70; goto __pyx_L1
;}
263 Py_DECREF(__pyx_1
); __pyx_1
= 0;
268 /* "/home/mdw/src/chkpath-python/checkpath.pyx":71 */
269 Py_INCREF(__pyx_v_g
);
273 __pyx_r
= Py_None
; Py_INCREF(__pyx_r
);
277 __Pyx_AddTraceback("checkpath.CheckPath.gids.__get__");
280 Py_DECREF(__pyx_v_g
);
281 Py_DECREF(__pyx_v_i
);
282 Py_DECREF(__pyx_v_me
);
286 static PyObject
*__pyx_n_len
;
287 static PyObject
*__pyx_n_TypeError
;
289 static PyObject
*__pyx_k2p
;
291 static char (__pyx_k2
[]) = "too many groups";
293 static int __pyx_f_9checkpath_9CheckPath_4gids___set__(PyObject
*__pyx_v_me
, PyObject
*__pyx_v_val
); /*proto*/
294 static int __pyx_f_9checkpath_9CheckPath_4gids___set__(PyObject
*__pyx_v_me
, PyObject
*__pyx_v_val
) {
297 PyObject
*__pyx_1
= 0;
298 PyObject
*__pyx_2
= 0;
299 PyObject
*__pyx_3
= 0;
304 Py_INCREF(__pyx_v_me
);
305 Py_INCREF(__pyx_v_val
);
306 __pyx_v_i
= Py_None
; Py_INCREF(__pyx_v_i
);
308 /* "/home/mdw/src/chkpath-python/checkpath.pyx":73 */
309 __pyx_1
= __Pyx_GetName(__pyx_b
, __pyx_n_len
); if (!__pyx_1
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 73; goto __pyx_L1
;}
310 __pyx_2
= PyTuple_New(1); if (!__pyx_2
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 73; goto __pyx_L1
;}
311 Py_INCREF(__pyx_v_val
);
312 PyTuple_SET_ITEM(__pyx_2
, 0, __pyx_v_val
);
313 __pyx_3
= PyObject_CallObject(__pyx_1
, __pyx_2
); if (!__pyx_3
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 73; goto __pyx_L1
;}
314 Py_DECREF(__pyx_1
); __pyx_1
= 0;
315 Py_DECREF(__pyx_2
); __pyx_2
= 0;
316 __pyx_1
= PyInt_FromLong((NGROUPS_MAX
+ 1)); if (!__pyx_1
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 73; goto __pyx_L1
;}
317 if (PyObject_Cmp(__pyx_3
, __pyx_1
, &__pyx_4
) < 0) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 73; goto __pyx_L1
;}
318 __pyx_4
= __pyx_4
>= 0;
319 Py_DECREF(__pyx_3
); __pyx_3
= 0;
320 Py_DECREF(__pyx_1
); __pyx_1
= 0;
323 /* "/home/mdw/src/chkpath-python/checkpath.pyx":74 */
324 __pyx_2
= __Pyx_GetName(__pyx_b
, __pyx_n_TypeError
); if (!__pyx_2
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 74; goto __pyx_L1
;}
325 __Pyx_Raise(__pyx_2
, __pyx_k2p
, 0);
326 Py_DECREF(__pyx_2
); __pyx_2
= 0;
327 {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 74; goto __pyx_L1
;}
332 /* "/home/mdw/src/chkpath-python/checkpath.pyx":75 */
333 __pyx_3
= __Pyx_GetName(__pyx_b
, __pyx_n_len
); if (!__pyx_3
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 75; goto __pyx_L1
;}
334 __pyx_1
= PyTuple_New(1); if (!__pyx_1
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 75; goto __pyx_L1
;}
335 Py_INCREF(__pyx_v_val
);
336 PyTuple_SET_ITEM(__pyx_1
, 0, __pyx_v_val
);
337 __pyx_2
= PyObject_CallObject(__pyx_3
, __pyx_1
); if (!__pyx_2
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 75; goto __pyx_L1
;}
338 Py_DECREF(__pyx_3
); __pyx_3
= 0;
339 Py_DECREF(__pyx_1
); __pyx_1
= 0;
340 __pyx_6
= PyInt_AsLong(__pyx_2
); if (PyErr_Occurred()) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 75; goto __pyx_L1
;}
341 Py_DECREF(__pyx_2
); __pyx_2
= 0;
342 for (__pyx_5
= 0; __pyx_5
< __pyx_6
; ++__pyx_5
) {
343 __pyx_3
= PyInt_FromLong(__pyx_5
); if (!__pyx_3
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 75; goto __pyx_L1
;}
344 Py_DECREF(__pyx_v_i
);
348 /* "/home/mdw/src/chkpath-python/checkpath.pyx":76 */
349 __pyx_1
= PyObject_GetItem(__pyx_v_val
, __pyx_v_i
); if (!__pyx_1
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 76; goto __pyx_L1
;}
350 __pyx_7
= PyInt_AsLong(__pyx_1
); if (PyErr_Occurred()) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 76; goto __pyx_L1
;}
351 Py_DECREF(__pyx_1
); __pyx_1
= 0;
352 __pyx_4
= PyInt_AsLong(__pyx_v_i
); if (PyErr_Occurred()) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 76; goto __pyx_L1
;}
353 (((struct __pyx_obj_9checkpath_CheckPath
*)__pyx_v_me
)->cp
.cp_gid
[__pyx_4
]) = __pyx_7
;
358 /* "/home/mdw/src/chkpath-python/checkpath.pyx":77 */
359 __pyx_2
= __Pyx_GetName(__pyx_b
, __pyx_n_len
); if (!__pyx_2
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 77; goto __pyx_L1
;}
360 __pyx_3
= PyTuple_New(1); if (!__pyx_3
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 77; goto __pyx_L1
;}
361 Py_INCREF(__pyx_v_val
);
362 PyTuple_SET_ITEM(__pyx_3
, 0, __pyx_v_val
);
363 __pyx_1
= PyObject_CallObject(__pyx_2
, __pyx_3
); if (!__pyx_1
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 77; goto __pyx_L1
;}
364 Py_DECREF(__pyx_2
); __pyx_2
= 0;
365 Py_DECREF(__pyx_3
); __pyx_3
= 0;
366 __pyx_4
= PyInt_AsLong(__pyx_1
); if (PyErr_Occurred()) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 77; goto __pyx_L1
;}
367 Py_DECREF(__pyx_1
); __pyx_1
= 0;
368 ((struct __pyx_obj_9checkpath_CheckPath
*)__pyx_v_me
)->cp
.cp_gids
= __pyx_4
;
376 __Pyx_AddTraceback("checkpath.CheckPath.gids.__set__");
379 Py_DECREF(__pyx_v_i
);
380 Py_DECREF(__pyx_v_me
);
381 Py_DECREF(__pyx_v_val
);
385 static PyObject
*__pyx_f_9checkpath_9CheckPath_7verbose___get__(PyObject
*__pyx_v_me
); /*proto*/
386 static PyObject
*__pyx_f_9checkpath_9CheckPath_7verbose___get__(PyObject
*__pyx_v_me
) {
388 PyObject
*__pyx_1
= 0;
389 Py_INCREF(__pyx_v_me
);
391 /* "/home/mdw/src/chkpath-python/checkpath.pyx":80 */
392 __pyx_1
= PyInt_FromLong(((struct __pyx_obj_9checkpath_CheckPath
*)__pyx_v_me
)->cp
.cp_verbose
); if (!__pyx_1
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 80; goto __pyx_L1
;}
397 __pyx_r
= Py_None
; Py_INCREF(__pyx_r
);
401 __Pyx_AddTraceback("checkpath.CheckPath.verbose.__get__");
404 Py_DECREF(__pyx_v_me
);
408 static int __pyx_f_9checkpath_9CheckPath_7verbose___set__(PyObject
*__pyx_v_me
, PyObject
*__pyx_v_val
); /*proto*/
409 static int __pyx_f_9checkpath_9CheckPath_7verbose___set__(PyObject
*__pyx_v_me
, PyObject
*__pyx_v_val
) {
412 Py_INCREF(__pyx_v_me
);
413 Py_INCREF(__pyx_v_val
);
415 /* "/home/mdw/src/chkpath-python/checkpath.pyx":82 */
416 __pyx_1
= PyInt_AsLong(__pyx_v_val
); if (PyErr_Occurred()) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 82; goto __pyx_L1
;}
417 ((struct __pyx_obj_9checkpath_CheckPath
*)__pyx_v_me
)->cp
.cp_verbose
= __pyx_1
;
422 __Pyx_AddTraceback("checkpath.CheckPath.verbose.__set__");
425 Py_DECREF(__pyx_v_me
);
426 Py_DECREF(__pyx_v_val
);
430 static PyObject
*__pyx_f_9checkpath_9CheckPath_4what___get__(PyObject
*__pyx_v_me
); /*proto*/
431 static PyObject
*__pyx_f_9checkpath_9CheckPath_4what___get__(PyObject
*__pyx_v_me
) {
433 PyObject
*__pyx_1
= 0;
434 Py_INCREF(__pyx_v_me
);
436 /* "/home/mdw/src/chkpath-python/checkpath.pyx":85 */
437 __pyx_1
= PyInt_FromLong(((struct __pyx_obj_9checkpath_CheckPath
*)__pyx_v_me
)->cp
.cp_what
); if (!__pyx_1
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 85; goto __pyx_L1
;}
442 __pyx_r
= Py_None
; Py_INCREF(__pyx_r
);
446 __Pyx_AddTraceback("checkpath.CheckPath.what.__get__");
449 Py_DECREF(__pyx_v_me
);
453 static int __pyx_f_9checkpath_9CheckPath_4what___set__(PyObject
*__pyx_v_me
, PyObject
*__pyx_v_val
); /*proto*/
454 static int __pyx_f_9checkpath_9CheckPath_4what___set__(PyObject
*__pyx_v_me
, PyObject
*__pyx_v_val
) {
456 unsigned int __pyx_1
;
457 Py_INCREF(__pyx_v_me
);
458 Py_INCREF(__pyx_v_val
);
460 /* "/home/mdw/src/chkpath-python/checkpath.pyx":87 */
461 __pyx_1
= PyInt_AsLong(__pyx_v_val
); if (PyErr_Occurred()) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 87; goto __pyx_L1
;}
462 ((struct __pyx_obj_9checkpath_CheckPath
*)__pyx_v_me
)->cp
.cp_what
= __pyx_1
;
467 __Pyx_AddTraceback("checkpath.CheckPath.what.__set__");
470 Py_DECREF(__pyx_v_me
);
471 Py_DECREF(__pyx_v_val
);
475 static PyObject
*__pyx_f_9checkpath_9CheckPath_check(PyObject
*__pyx_v_me
, PyObject
*__pyx_args
, PyObject
*__pyx_kwds
); /*proto*/
476 static PyObject
*__pyx_f_9checkpath_9CheckPath_check(PyObject
*__pyx_v_me
, PyObject
*__pyx_args
, PyObject
*__pyx_kwds
) {
477 PyObject
*__pyx_v_path
= 0;
481 PyObject
*__pyx_3
= 0;
482 static char *__pyx_argnames
[] = {"path",0};
483 if (!PyArg_ParseTupleAndKeywords(__pyx_args
, __pyx_kwds
, "O", __pyx_argnames
, &__pyx_v_path
)) return 0;
484 Py_INCREF(__pyx_v_me
);
485 Py_INCREF(__pyx_v_path
);
487 /* "/home/mdw/src/chkpath-python/checkpath.pyx":89 */
488 __pyx_1
= PyString_AsString(__pyx_v_path
); if (PyErr_Occurred()) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 89; goto __pyx_L1
;}
489 __pyx_2
= checkpath(__pyx_1
,(&((struct __pyx_obj_9checkpath_CheckPath
*)__pyx_v_me
)->cp
)); if (PyErr_Occurred()) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 89; goto __pyx_L1
;}
490 __pyx_3
= PyInt_FromLong(__pyx_2
); if (!__pyx_3
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 89; goto __pyx_L1
;}
495 __pyx_r
= Py_None
; Py_INCREF(__pyx_r
);
499 __Pyx_AddTraceback("checkpath.CheckPath.check");
502 Py_DECREF(__pyx_v_me
);
503 Py_DECREF(__pyx_v_path
);
507 static PyObject
*__pyx_f_9checkpath_9CheckPath_report(PyObject
*__pyx_v_me
, PyObject
*__pyx_args
, PyObject
*__pyx_kwds
); /*proto*/
508 static PyObject
*__pyx_f_9checkpath_9CheckPath_report(PyObject
*__pyx_v_me
, PyObject
*__pyx_args
, PyObject
*__pyx_kwds
) {
509 PyObject
*__pyx_v_what
= 0;
510 PyObject
*__pyx_v_verb
= 0;
511 PyObject
*__pyx_v_path
= 0;
512 PyObject
*__pyx_v_msg
= 0;
514 static char *__pyx_argnames
[] = {"what","verb","path","msg",0};
515 if (!PyArg_ParseTupleAndKeywords(__pyx_args
, __pyx_kwds
, "OOOO", __pyx_argnames
, &__pyx_v_what
, &__pyx_v_verb
, &__pyx_v_path
, &__pyx_v_msg
)) return 0;
516 Py_INCREF(__pyx_v_me
);
517 Py_INCREF(__pyx_v_what
);
518 Py_INCREF(__pyx_v_verb
);
519 Py_INCREF(__pyx_v_path
);
520 Py_INCREF(__pyx_v_msg
);
522 /* "/home/mdw/src/chkpath-python/checkpath.pyx":91 */
524 __pyx_r
= Py_None
; Py_INCREF(__pyx_r
);
527 __Pyx_AddTraceback("checkpath.CheckPath.report");
530 Py_DECREF(__pyx_v_me
);
531 Py_DECREF(__pyx_v_what
);
532 Py_DECREF(__pyx_v_verb
);
533 Py_DECREF(__pyx_v_path
);
534 Py_DECREF(__pyx_v_msg
);
538 static __Pyx_InternTabEntry __pyx_intern_tab
[] = {
539 {&__pyx_n_ERROR
, "ERROR"},
540 {&__pyx_n_PROBLEMS
, "PROBLEMS"},
541 {&__pyx_n_REPORT
, "REPORT"},
542 {&__pyx_n_STICKYOK
, "STICKYOK"},
543 {&__pyx_n_SYMLINK
, "SYMLINK"},
544 {&__pyx_n_TypeError
, "TypeError"},
545 {&__pyx_n_WRGRP
, "WRGRP"},
546 {&__pyx_n_WROTHGRP
, "WROTHGRP"},
547 {&__pyx_n_WROTHUSR
, "WROTHUSR"},
548 {&__pyx_n_WRWORLD
, "WRWORLD"},
549 {&__pyx_n_len
, "len"},
550 {&__pyx_n_report
, "report"},
554 static __Pyx_StringTabEntry __pyx_string_tab
[] = {
555 {&__pyx_k2p
, __pyx_k2
, sizeof(__pyx_k2
)},
559 static PyObject
*__pyx_tp_new_9checkpath_CheckPath(PyTypeObject
*t
, PyObject
*a
, PyObject
*k
) {
560 PyObject
*o
= (*t
->tp_alloc
)(t
, 0);
561 struct __pyx_obj_9checkpath_CheckPath
*p
= (struct __pyx_obj_9checkpath_CheckPath
*)o
;
565 static void __pyx_tp_dealloc_9checkpath_CheckPath(PyObject
*o
) {
566 struct __pyx_obj_9checkpath_CheckPath
*p
= (struct __pyx_obj_9checkpath_CheckPath
*)o
;
567 (*o
->ob_type
->tp_free
)(o
);
570 static int __pyx_tp_traverse_9checkpath_CheckPath(PyObject
*o
, visitproc v
, void *a
) {
572 struct __pyx_obj_9checkpath_CheckPath
*p
= (struct __pyx_obj_9checkpath_CheckPath
*)o
;
576 static int __pyx_tp_clear_9checkpath_CheckPath(PyObject
*o
) {
577 struct __pyx_obj_9checkpath_CheckPath
*p
= (struct __pyx_obj_9checkpath_CheckPath
*)o
;
581 static PyObject
*__pyx_getprop_9checkpath_9CheckPath_uid(PyObject
*o
, void *x
) {
582 return __pyx_f_9checkpath_9CheckPath_3uid___get__(o
);
585 static int __pyx_setprop_9checkpath_9CheckPath_uid(PyObject
*o
, PyObject
*v
, void *x
) {
587 return __pyx_f_9checkpath_9CheckPath_3uid___set__(o
, v
);
590 PyErr_SetString(PyExc_NotImplementedError
, "__del__");
595 static PyObject
*__pyx_getprop_9checkpath_9CheckPath_gids(PyObject
*o
, void *x
) {
596 return __pyx_f_9checkpath_9CheckPath_4gids___get__(o
);
599 static int __pyx_setprop_9checkpath_9CheckPath_gids(PyObject
*o
, PyObject
*v
, void *x
) {
601 return __pyx_f_9checkpath_9CheckPath_4gids___set__(o
, v
);
604 PyErr_SetString(PyExc_NotImplementedError
, "__del__");
609 static PyObject
*__pyx_getprop_9checkpath_9CheckPath_verbose(PyObject
*o
, void *x
) {
610 return __pyx_f_9checkpath_9CheckPath_7verbose___get__(o
);
613 static int __pyx_setprop_9checkpath_9CheckPath_verbose(PyObject
*o
, PyObject
*v
, void *x
) {
615 return __pyx_f_9checkpath_9CheckPath_7verbose___set__(o
, v
);
618 PyErr_SetString(PyExc_NotImplementedError
, "__del__");
623 static PyObject
*__pyx_getprop_9checkpath_9CheckPath_what(PyObject
*o
, void *x
) {
624 return __pyx_f_9checkpath_9CheckPath_4what___get__(o
);
627 static int __pyx_setprop_9checkpath_9CheckPath_what(PyObject
*o
, PyObject
*v
, void *x
) {
629 return __pyx_f_9checkpath_9CheckPath_4what___set__(o
, v
);
632 PyErr_SetString(PyExc_NotImplementedError
, "__del__");
637 static struct PyMethodDef __pyx_methods_9checkpath_CheckPath
[] = {
638 {"setids", (PyCFunction
)__pyx_f_9checkpath_9CheckPath_setids
, METH_VARARGS
|METH_KEYWORDS
, 0},
639 {"check", (PyCFunction
)__pyx_f_9checkpath_9CheckPath_check
, METH_VARARGS
|METH_KEYWORDS
, 0},
640 {"report", (PyCFunction
)__pyx_f_9checkpath_9CheckPath_report
, METH_VARARGS
|METH_KEYWORDS
, 0},
644 static struct PyGetSetDef __pyx_getsets_9checkpath_CheckPath
[] = {
645 {"uid", __pyx_getprop_9checkpath_9CheckPath_uid
, __pyx_setprop_9checkpath_9CheckPath_uid
, 0, 0},
646 {"gids", __pyx_getprop_9checkpath_9CheckPath_gids
, __pyx_setprop_9checkpath_9CheckPath_gids
, 0, 0},
647 {"verbose", __pyx_getprop_9checkpath_9CheckPath_verbose
, __pyx_setprop_9checkpath_9CheckPath_verbose
, 0, 0},
648 {"what", __pyx_getprop_9checkpath_9CheckPath_what
, __pyx_setprop_9checkpath_9CheckPath_what
, 0, 0},
652 static PyNumberMethods __pyx_tp_as_number_CheckPath
= {
676 0, /*nb_inplace_add*/
677 0, /*nb_inplace_subtract*/
678 0, /*nb_inplace_multiply*/
679 0, /*nb_inplace_divide*/
680 0, /*nb_inplace_remainder*/
681 0, /*nb_inplace_power*/
682 0, /*nb_inplace_lshift*/
683 0, /*nb_inplace_rshift*/
684 0, /*nb_inplace_and*/
685 0, /*nb_inplace_xor*/
687 0, /*nb_floor_divide*/
688 0, /*nb_true_divide*/
689 0, /*nb_inplace_floor_divide*/
690 0, /*nb_inplace_true_divide*/
693 static PySequenceMethods __pyx_tp_as_sequence_CheckPath
= {
702 0, /*sq_inplace_concat*/
703 0, /*sq_inplace_repeat*/
706 static PyMappingMethods __pyx_tp_as_mapping_CheckPath
= {
709 0, /*mp_ass_subscript*/
712 static PyBufferProcs __pyx_tp_as_buffer_CheckPath
= {
713 0, /*bf_getreadbuffer*/
714 0, /*bf_getwritebuffer*/
715 0, /*bf_getsegcount*/
716 0, /*bf_getcharbuffer*/
719 statichere PyTypeObject __pyx_type_9checkpath_CheckPath
= {
720 PyObject_HEAD_INIT(0)
722 "checkpath.CheckPath", /*tp_name*/
723 sizeof(struct __pyx_obj_9checkpath_CheckPath
), /*tp_basicsize*/
725 __pyx_tp_dealloc_9checkpath_CheckPath
, /*tp_dealloc*/
731 &__pyx_tp_as_number_CheckPath
, /*tp_as_number*/
732 &__pyx_tp_as_sequence_CheckPath
, /*tp_as_sequence*/
733 &__pyx_tp_as_mapping_CheckPath
, /*tp_as_mapping*/
739 &__pyx_tp_as_buffer_CheckPath
, /*tp_as_buffer*/
740 Py_TPFLAGS_DEFAULT
|Py_TPFLAGS_CHECKTYPES
|Py_TPFLAGS_BASETYPE
, /*tp_flags*/
742 __pyx_tp_traverse_9checkpath_CheckPath
, /*tp_traverse*/
743 __pyx_tp_clear_9checkpath_CheckPath
, /*tp_clear*/
744 0, /*tp_richcompare*/
745 0, /*tp_weaklistoffset*/
748 __pyx_methods_9checkpath_CheckPath
, /*tp_methods*/
750 __pyx_getsets_9checkpath_CheckPath
, /*tp_getset*/
756 __pyx_f_9checkpath_9CheckPath___init__
, /*tp_init*/
758 __pyx_tp_new_9checkpath_CheckPath
, /*tp_new*/
768 static struct PyMethodDef __pyx_methods
[] = {
772 DL_EXPORT(void) initcheckpath(void); /*proto*/
773 DL_EXPORT(void) initcheckpath(void) {
774 PyObject
*__pyx_1
= 0;
775 __pyx_m
= Py_InitModule4("checkpath", __pyx_methods
, 0, 0, PYTHON_API_VERSION
);
776 if (!__pyx_m
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 3; goto __pyx_L1
;};
777 __pyx_b
= PyImport_AddModule("__builtin__");
778 if (!__pyx_b
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 3; goto __pyx_L1
;};
779 if (PyObject_SetAttrString(__pyx_m
, "__builtins__", __pyx_b
) < 0) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 3; goto __pyx_L1
;};
780 if (__Pyx_InternStrings(__pyx_intern_tab
) < 0) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 3; goto __pyx_L1
;};
781 if (__Pyx_InitStrings(__pyx_string_tab
) < 0) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 3; goto __pyx_L1
;};
782 if (PyType_Ready(&__pyx_type_9checkpath_CheckPath
) < 0) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 49; goto __pyx_L1
;}
783 if (PyObject_SetAttrString(__pyx_m
, "CheckPath", (PyObject
*)&__pyx_type_9checkpath_CheckPath
) < 0) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 49; goto __pyx_L1
;}
784 __pyx_ptype_9checkpath_CheckPath
= &__pyx_type_9checkpath_CheckPath
;
786 /* "/home/mdw/src/chkpath-python/checkpath.pyx":31 */
787 __pyx_1
= PyInt_FromLong(CP_ERROR
); if (!__pyx_1
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 31; goto __pyx_L1
;}
788 if (PyObject_SetAttr(__pyx_m
, __pyx_n_ERROR
, __pyx_1
) < 0) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 31; goto __pyx_L1
;}
789 Py_DECREF(__pyx_1
); __pyx_1
= 0;
791 /* "/home/mdw/src/chkpath-python/checkpath.pyx":32 */
792 __pyx_1
= PyInt_FromLong(CP_WRWORLD
); if (!__pyx_1
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 32; goto __pyx_L1
;}
793 if (PyObject_SetAttr(__pyx_m
, __pyx_n_WRWORLD
, __pyx_1
) < 0) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 32; goto __pyx_L1
;}
794 Py_DECREF(__pyx_1
); __pyx_1
= 0;
796 /* "/home/mdw/src/chkpath-python/checkpath.pyx":33 */
797 __pyx_1
= PyInt_FromLong(CP_WRGRP
); if (!__pyx_1
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 33; goto __pyx_L1
;}
798 if (PyObject_SetAttr(__pyx_m
, __pyx_n_WRGRP
, __pyx_1
) < 0) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 33; goto __pyx_L1
;}
799 Py_DECREF(__pyx_1
); __pyx_1
= 0;
801 /* "/home/mdw/src/chkpath-python/checkpath.pyx":34 */
802 __pyx_1
= PyInt_FromLong(CP_WROTHGRP
); if (!__pyx_1
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 34; goto __pyx_L1
;}
803 if (PyObject_SetAttr(__pyx_m
, __pyx_n_WROTHGRP
, __pyx_1
) < 0) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 34; goto __pyx_L1
;}
804 Py_DECREF(__pyx_1
); __pyx_1
= 0;
806 /* "/home/mdw/src/chkpath-python/checkpath.pyx":35 */
807 __pyx_1
= PyInt_FromLong(CP_WROTHUSR
); if (!__pyx_1
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 35; goto __pyx_L1
;}
808 if (PyObject_SetAttr(__pyx_m
, __pyx_n_WROTHUSR
, __pyx_1
) < 0) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 35; goto __pyx_L1
;}
809 Py_DECREF(__pyx_1
); __pyx_1
= 0;
811 /* "/home/mdw/src/chkpath-python/checkpath.pyx":36 */
812 __pyx_1
= PyInt_FromLong(CP_PROBLEMS
); if (!__pyx_1
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 36; goto __pyx_L1
;}
813 if (PyObject_SetAttr(__pyx_m
, __pyx_n_PROBLEMS
, __pyx_1
) < 0) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 36; goto __pyx_L1
;}
814 Py_DECREF(__pyx_1
); __pyx_1
= 0;
816 /* "/home/mdw/src/chkpath-python/checkpath.pyx":37 */
817 __pyx_1
= PyInt_FromLong(CP_SYMLINK
); if (!__pyx_1
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 37; goto __pyx_L1
;}
818 if (PyObject_SetAttr(__pyx_m
, __pyx_n_SYMLINK
, __pyx_1
) < 0) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 37; goto __pyx_L1
;}
819 Py_DECREF(__pyx_1
); __pyx_1
= 0;
821 /* "/home/mdw/src/chkpath-python/checkpath.pyx":38 */
822 __pyx_1
= PyInt_FromLong(CP_REPORT
); if (!__pyx_1
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 38; goto __pyx_L1
;}
823 if (PyObject_SetAttr(__pyx_m
, __pyx_n_REPORT
, __pyx_1
) < 0) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 38; goto __pyx_L1
;}
824 Py_DECREF(__pyx_1
); __pyx_1
= 0;
826 /* "/home/mdw/src/chkpath-python/checkpath.pyx":39 */
827 __pyx_1
= PyInt_FromLong(CP_STICKYOK
); if (!__pyx_1
) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 39; goto __pyx_L1
;}
828 if (PyObject_SetAttr(__pyx_m
, __pyx_n_STICKYOK
, __pyx_1
) < 0) {__pyx_filename
= __pyx_f
[0]; __pyx_lineno
= 39; goto __pyx_L1
;}
829 Py_DECREF(__pyx_1
); __pyx_1
= 0;
831 /* "/home/mdw/src/chkpath-python/checkpath.pyx":90 */
835 __Pyx_AddTraceback("checkpath");
838 static char *__pyx_filenames
[] = {
841 statichere
char **__pyx_f
= __pyx_filenames
;
843 /* Runtime support code */
845 static void __Pyx_WriteUnraisable(char *name
) {
846 PyObject
*old_exc
, *old_val
, *old_tb
;
848 PyErr_Fetch(&old_exc
, &old_val
, &old_tb
);
849 ctx
= PyString_FromString(name
);
850 PyErr_Restore(old_exc
, old_val
, old_tb
);
853 PyErr_WriteUnraisable(ctx
);
856 static PyObject
*__Pyx_GetName(PyObject
*dict
, PyObject
*name
) {
858 result
= PyObject_GetAttr(dict
, name
);
860 PyErr_SetObject(PyExc_NameError
, name
);
864 static void __Pyx_Raise(PyObject
*type
, PyObject
*value
, PyObject
*tb
) {
868 /* First, check the traceback argument, replacing None with NULL. */
873 else if (tb
!= NULL
&& !PyTraceBack_Check(tb
)) {
874 PyErr_SetString(PyExc_TypeError
,
875 "raise: arg 3 must be a traceback or None");
878 /* Next, replace a missing value with None */
883 /* Next, repeatedly, replace a tuple exception with its first item */
884 while (PyTuple_Check(type
) && PyTuple_Size(type
) > 0) {
885 PyObject
*tmp
= type
;
886 type
= PyTuple_GET_ITEM(type
, 0);
890 if (PyString_Check(type
))
892 else if (PyClass_Check(type
))
893 ; /*PyErr_NormalizeException(&type, &value, &tb);*/
894 else if (PyInstance_Check(type
)) {
895 /* Raising an instance. The value should be a dummy. */
896 if (value
!= Py_None
) {
897 PyErr_SetString(PyExc_TypeError
,
898 "instance exception may not have a separate value");
902 /* Normalize to raise <class>, <instance> */
905 type
= (PyObject
*) ((PyInstanceObject
*)type
)->in_class
;
910 /* Not something you can raise. You get an exception
911 anyway, just not what you specified :-) */
912 PyErr_Format(PyExc_TypeError
,
913 "exceptions must be strings, classes, or "
914 "instances, not %s", type
->ob_type
->tp_name
);
917 PyErr_Restore(type
, value
, tb
);
926 static int __Pyx_InternStrings(__Pyx_InternTabEntry
*t
) {
928 *t
->p
= PyString_InternFromString(t
->s
);
936 static int __Pyx_InitStrings(__Pyx_StringTabEntry
*t
) {
938 *t
->p
= PyString_FromStringAndSize(t
->s
, t
->n
- 1);
947 #include "frameobject.h"
948 #include "traceback.h"
950 static void __Pyx_AddTraceback(char *funcname
) {
951 PyObject
*py_srcfile
= 0;
952 PyObject
*py_funcname
= 0;
953 PyObject
*py_globals
= 0;
954 PyObject
*empty_tuple
= 0;
955 PyObject
*empty_string
= 0;
956 PyCodeObject
*py_code
= 0;
957 PyFrameObject
*py_frame
= 0;
959 py_srcfile
= PyString_FromString(__pyx_filename
);
960 if (!py_srcfile
) goto bad
;
961 py_funcname
= PyString_FromString(funcname
);
962 if (!py_funcname
) goto bad
;
963 py_globals
= PyModule_GetDict(__pyx_m
);
964 if (!py_globals
) goto bad
;
965 empty_tuple
= PyTuple_New(0);
966 if (!empty_tuple
) goto bad
;
967 empty_string
= PyString_FromString("");
968 if (!empty_string
) goto bad
;
969 py_code
= PyCode_New(
972 0, /*int stacksize,*/
974 empty_string
, /*PyObject *code,*/
975 empty_tuple
, /*PyObject *consts,*/
976 empty_tuple
, /*PyObject *names,*/
977 empty_tuple
, /*PyObject *varnames,*/
978 empty_tuple
, /*PyObject *freevars,*/
979 empty_tuple
, /*PyObject *cellvars,*/
980 py_srcfile
, /*PyObject *filename,*/
981 py_funcname
, /*PyObject *name,*/
982 __pyx_lineno
, /*int firstlineno,*/
983 empty_string
/*PyObject *lnotab*/
985 if (!py_code
) goto bad
;
986 py_frame
= PyFrame_New(
987 PyThreadState_Get(), /*PyThreadState *tstate,*/
988 py_code
, /*PyCodeObject *code,*/
989 py_globals
, /*PyObject *globals,*/
990 0 /*PyObject *locals*/
992 if (!py_frame
) goto bad
;
993 py_frame
->f_lineno
= __pyx_lineno
;
994 PyTraceBack_Here(py_frame
);
996 Py_XDECREF(py_srcfile
);
997 Py_XDECREF(py_funcname
);
998 Py_XDECREF(empty_tuple
);
999 Py_XDECREF(empty_string
);
1000 Py_XDECREF(py_code
);
1001 Py_XDECREF(py_frame
);