Cython has moved to github.
pyrex
view Tests/Bugs/becker/becker1.c @ 86:da6e97bb7e6d
Multiple compilation fixed
| author | Gregory Ewing <greg.ewing@canterbury.ac.nz> |
|---|---|
| date | Sat May 24 15:50:12 2008 +1200 (4 years ago) |
| parents | 12072e0e4fd5 |
| children | 94d46b3c5354 |
line source
1 /* Generated by Pyrex */
3 #define PY_SSIZE_T_CLEAN
4 #include "Python.h"
5 #include "structmember.h"
6 #ifndef PY_LONG_LONG
7 #define PY_LONG_LONG LONG_LONG
8 #endif
9 #if PY_VERSION_HEX < 0x02050000
10 typedef int Py_ssize_t;
11 #define PY_SSIZE_T_MAX INT_MAX
12 #define PY_SSIZE_T_MIN INT_MIN
13 #define PyInt_FromSsize_t(z) PyInt_FromLong(z)
14 #define PyInt_AsSsize_t(o) PyInt_AsLong(o)
15 #endif
16 #ifndef WIN32
17 #ifndef __stdcall
18 #define __stdcall
19 #endif
20 #ifndef __cdecl
21 #define __cdecl
22 #endif
23 #endif
24 #ifdef __cplusplus
25 #define __PYX_EXTERN_C extern "C"
26 #else
27 #define __PYX_EXTERN_C extern
28 #endif
29 #include <math.h>
32 typedef struct {PyObject **p; int i; char *s; long n;} __Pyx_StringTabEntry; /*proto*/
34 static PyObject *__pyx_m;
35 static PyObject *__pyx_b;
36 static int __pyx_lineno;
37 static char *__pyx_filename;
38 static char **__pyx_f;
40 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/
42 static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/
44 static void __Pyx_AddTraceback(char *funcname); /*proto*/
46 /* Declarations from becker1 */
49 /* Declarations from implementation of becker1 */
51 struct __pyx_obj_7becker1__Box {
52 PyObject_HEAD
53 int penalty;
54 int flagged;
55 int is_glue;
56 int is_penalty;
57 int is_box;
58 char *character;
59 double width;
60 double stretch;
61 double shrink;
62 };
64 struct __pyx_obj_7becker1_Box {
65 struct __pyx_obj_7becker1__Box __pyx_base;
66 };
68 struct __pyx_obj_7becker1_Glue {
69 struct __pyx_obj_7becker1__Box __pyx_base;
70 struct __pyx_vtabstruct_7becker1_Glue *__pyx_vtab;
71 };
76 struct __pyx_vtabstruct_7becker1_Glue {
77 PyObject *(*compute_width)(struct __pyx_obj_7becker1_Glue *,double);
78 };
79 static struct __pyx_vtabstruct_7becker1_Glue *__pyx_vtabptr_7becker1_Glue;
81 static PyTypeObject *__pyx_ptype_7becker1__Box = 0;
82 static PyTypeObject *__pyx_ptype_7becker1_Box = 0;
83 static PyTypeObject *__pyx_ptype_7becker1_Glue = 0;
88 static __Pyx_StringTabEntry __pyx_string_tab[] = {
89 {0, 0, 0, 0}
90 };
94 /* Implementation of becker1 */
96 static int __pyx_f_7becker1_3Box___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
97 static int __pyx_f_7becker1_3Box___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
98 double __pyx_v_width;
99 char *__pyx_v_character;
100 int __pyx_r;
101 static char *__pyx_argnames[] = {"width","character",0};
102 if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "ds", __pyx_argnames, &__pyx_v_width, &__pyx_v_character)) return -1;
103 Py_INCREF((PyObject *)__pyx_v_self);
105 /* "/Local/Projects/D/Pyrex/Source/Tests/Bugs/becker/becker1.pyx":11 */
106 ((struct __pyx_obj_7becker1_Box *)__pyx_v_self)->__pyx_base.character = __pyx_v_character;
108 /* "/Local/Projects/D/Pyrex/Source/Tests/Bugs/becker/becker1.pyx":12 */
109 ((struct __pyx_obj_7becker1_Box *)__pyx_v_self)->__pyx_base.width = __pyx_v_width;
111 /* "/Local/Projects/D/Pyrex/Source/Tests/Bugs/becker/becker1.pyx":13 */
112 ((struct __pyx_obj_7becker1_Box *)__pyx_v_self)->__pyx_base.stretch = 0;
113 ((struct __pyx_obj_7becker1_Box *)__pyx_v_self)->__pyx_base.shrink = 0;
114 ((struct __pyx_obj_7becker1_Box *)__pyx_v_self)->__pyx_base.penalty = 0;
115 ((struct __pyx_obj_7becker1_Box *)__pyx_v_self)->__pyx_base.flagged = 0;
116 ((struct __pyx_obj_7becker1_Box *)__pyx_v_self)->__pyx_base.is_glue = 0;
117 ((struct __pyx_obj_7becker1_Box *)__pyx_v_self)->__pyx_base.is_penalty = 0;
119 /* "/Local/Projects/D/Pyrex/Source/Tests/Bugs/becker/becker1.pyx":14 */
120 ((struct __pyx_obj_7becker1_Box *)__pyx_v_self)->__pyx_base.is_box = 1;
122 __pyx_r = 0;
123 Py_DECREF((PyObject *)__pyx_v_self);
124 return __pyx_r;
125 }
127 static int __pyx_f_7becker1_4Glue___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
128 static int __pyx_f_7becker1_4Glue___init__(PyObject *__pyx_v_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
129 double __pyx_v_width;
130 double __pyx_v_stretch;
131 double __pyx_v_shrink;
132 int __pyx_r;
133 static char *__pyx_argnames[] = {"width","stretch","shrink",0};
134 if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "ddd", __pyx_argnames, &__pyx_v_width, &__pyx_v_stretch, &__pyx_v_shrink)) return -1;
135 Py_INCREF((PyObject *)__pyx_v_self);
137 /* "/Local/Projects/D/Pyrex/Source/Tests/Bugs/becker/becker1.pyx":23 */
138 ((struct __pyx_obj_7becker1_Glue *)__pyx_v_self)->__pyx_base.width = __pyx_v_width;
140 /* "/Local/Projects/D/Pyrex/Source/Tests/Bugs/becker/becker1.pyx":24 */
141 ((struct __pyx_obj_7becker1_Glue *)__pyx_v_self)->__pyx_base.stretch = __pyx_v_stretch;
143 /* "/Local/Projects/D/Pyrex/Source/Tests/Bugs/becker/becker1.pyx":25 */
144 ((struct __pyx_obj_7becker1_Glue *)__pyx_v_self)->__pyx_base.shrink = __pyx_v_shrink;
146 /* "/Local/Projects/D/Pyrex/Source/Tests/Bugs/becker/becker1.pyx":26 */
147 ((struct __pyx_obj_7becker1_Glue *)__pyx_v_self)->__pyx_base.is_glue = 1;
149 /* "/Local/Projects/D/Pyrex/Source/Tests/Bugs/becker/becker1.pyx":27 */
150 ((struct __pyx_obj_7becker1_Glue *)__pyx_v_self)->__pyx_base.is_box = 0;
151 ((struct __pyx_obj_7becker1_Glue *)__pyx_v_self)->__pyx_base.is_penalty = 0;
153 __pyx_r = 0;
154 Py_DECREF((PyObject *)__pyx_v_self);
155 return __pyx_r;
156 }
158 static PyObject *__pyx_f_7becker1_4Glue_compute_width(struct __pyx_obj_7becker1_Glue *__pyx_v_self,double __pyx_v_r) {
159 PyObject *__pyx_r;
160 int __pyx_1;
161 PyObject *__pyx_2 = 0;
162 Py_INCREF((PyObject *)__pyx_v_self);
163 __pyx_1 = (__pyx_v_r < 0);
164 if (__pyx_1) {
165 __pyx_2 = PyFloat_FromDouble((__pyx_v_self->__pyx_base.width + (__pyx_v_r * __pyx_v_self->__pyx_base.shrink))); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; goto __pyx_L1;}
166 __pyx_r = __pyx_2;
167 __pyx_2 = 0;
168 goto __pyx_L0;
169 goto __pyx_L2;
170 }
171 /*else*/ {
172 __pyx_2 = PyFloat_FromDouble((__pyx_v_self->__pyx_base.width + (__pyx_v_r * __pyx_v_self->__pyx_base.stretch))); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; goto __pyx_L1;}
173 __pyx_r = __pyx_2;
174 __pyx_2 = 0;
175 goto __pyx_L0;
176 }
177 __pyx_L2:;
179 __pyx_r = Py_None; Py_INCREF(Py_None);
180 goto __pyx_L0;
181 __pyx_L1:;
182 Py_XDECREF(__pyx_2);
183 __Pyx_AddTraceback("becker1.Glue.compute_width");
184 __pyx_r = 0;
185 __pyx_L0:;
186 Py_DECREF((PyObject *)__pyx_v_self);
187 return __pyx_r;
188 }
190 static PyObject *__pyx_tp_new_7becker1__Box(PyTypeObject *t, PyObject *a, PyObject *k) {
191 PyObject *o = (*t->tp_alloc)(t, 0);
192 if (!o) return 0;
193 return o;
194 }
196 static void __pyx_tp_dealloc_7becker1__Box(PyObject *o) {
197 (*o->ob_type->tp_free)(o);
198 }
200 static struct PyMethodDef __pyx_methods_7becker1__Box[] = {
201 {0, 0, 0, 0}
202 };
204 static struct PyMemberDef __pyx_members_7becker1__Box[] = {
205 {"penalty", T_INT, offsetof(struct __pyx_obj_7becker1__Box, penalty), READONLY, 0},
206 {"flagged", T_INT, offsetof(struct __pyx_obj_7becker1__Box, flagged), READONLY, 0},
207 {"is_glue", T_INT, offsetof(struct __pyx_obj_7becker1__Box, is_glue), READONLY, 0},
208 {"is_penalty", T_INT, offsetof(struct __pyx_obj_7becker1__Box, is_penalty), READONLY, 0},
209 {"is_box", T_INT, offsetof(struct __pyx_obj_7becker1__Box, is_box), READONLY, 0},
210 {0, 0, 0, 0, 0}
211 };
213 static PyNumberMethods __pyx_tp_as_number__Box = {
214 0, /*nb_add*/
215 0, /*nb_subtract*/
216 0, /*nb_multiply*/
217 0, /*nb_divide*/
218 0, /*nb_remainder*/
219 0, /*nb_divmod*/
220 0, /*nb_power*/
221 0, /*nb_negative*/
222 0, /*nb_positive*/
223 0, /*nb_absolute*/
224 0, /*nb_nonzero*/
225 0, /*nb_invert*/
226 0, /*nb_lshift*/
227 0, /*nb_rshift*/
228 0, /*nb_and*/
229 0, /*nb_xor*/
230 0, /*nb_or*/
231 0, /*nb_coerce*/
232 0, /*nb_int*/
233 0, /*nb_long*/
234 0, /*nb_float*/
235 0, /*nb_oct*/
236 0, /*nb_hex*/
237 0, /*nb_inplace_add*/
238 0, /*nb_inplace_subtract*/
239 0, /*nb_inplace_multiply*/
240 0, /*nb_inplace_divide*/
241 0, /*nb_inplace_remainder*/
242 0, /*nb_inplace_power*/
243 0, /*nb_inplace_lshift*/
244 0, /*nb_inplace_rshift*/
245 0, /*nb_inplace_and*/
246 0, /*nb_inplace_xor*/
247 0, /*nb_inplace_or*/
248 0, /*nb_floor_divide*/
249 0, /*nb_true_divide*/
250 0, /*nb_inplace_floor_divide*/
251 0, /*nb_inplace_true_divide*/
252 #if Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX
253 0, /*nb_index*/
254 #endif
255 };
257 static PySequenceMethods __pyx_tp_as_sequence__Box = {
258 0, /*sq_length*/
259 0, /*sq_concat*/
260 0, /*sq_repeat*/
261 0, /*sq_item*/
262 0, /*sq_slice*/
263 0, /*sq_ass_item*/
264 0, /*sq_ass_slice*/
265 0, /*sq_contains*/
266 0, /*sq_inplace_concat*/
267 0, /*sq_inplace_repeat*/
268 };
270 static PyMappingMethods __pyx_tp_as_mapping__Box = {
271 0, /*mp_length*/
272 0, /*mp_subscript*/
273 0, /*mp_ass_subscript*/
274 };
276 static PyBufferProcs __pyx_tp_as_buffer__Box = {
277 0, /*bf_getreadbuffer*/
278 0, /*bf_getwritebuffer*/
279 0, /*bf_getsegcount*/
280 0, /*bf_getcharbuffer*/
281 };
283 PyTypeObject __pyx_type_7becker1__Box = {
284 PyObject_HEAD_INIT(0)
285 0, /*ob_size*/
286 "becker1._Box", /*tp_name*/
287 sizeof(struct __pyx_obj_7becker1__Box), /*tp_basicsize*/
288 0, /*tp_itemsize*/
289 __pyx_tp_dealloc_7becker1__Box, /*tp_dealloc*/
290 0, /*tp_print*/
291 0, /*tp_getattr*/
292 0, /*tp_setattr*/
293 0, /*tp_compare*/
294 0, /*tp_repr*/
295 &__pyx_tp_as_number__Box, /*tp_as_number*/
296 &__pyx_tp_as_sequence__Box, /*tp_as_sequence*/
297 &__pyx_tp_as_mapping__Box, /*tp_as_mapping*/
298 0, /*tp_hash*/
299 0, /*tp_call*/
300 0, /*tp_str*/
301 0, /*tp_getattro*/
302 0, /*tp_setattro*/
303 &__pyx_tp_as_buffer__Box, /*tp_as_buffer*/
304 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE, /*tp_flags*/
305 0, /*tp_doc*/
306 0, /*tp_traverse*/
307 0, /*tp_clear*/
308 0, /*tp_richcompare*/
309 0, /*tp_weaklistoffset*/
310 0, /*tp_iter*/
311 0, /*tp_iternext*/
312 __pyx_methods_7becker1__Box, /*tp_methods*/
313 __pyx_members_7becker1__Box, /*tp_members*/
314 0, /*tp_getset*/
315 0, /*tp_base*/
316 0, /*tp_dict*/
317 0, /*tp_descr_get*/
318 0, /*tp_descr_set*/
319 0, /*tp_dictoffset*/
320 0, /*tp_init*/
321 0, /*tp_alloc*/
322 __pyx_tp_new_7becker1__Box, /*tp_new*/
323 0, /*tp_free*/
324 0, /*tp_is_gc*/
325 0, /*tp_bases*/
326 0, /*tp_mro*/
327 0, /*tp_cache*/
328 0, /*tp_subclasses*/
329 0, /*tp_weaklist*/
330 };
332 static PyObject *__pyx_tp_new_7becker1_Box(PyTypeObject *t, PyObject *a, PyObject *k) {
333 PyObject *o = __pyx_ptype_7becker1__Box->tp_new(t, a, k);
334 if (!o) return 0;
335 return o;
336 }
338 static void __pyx_tp_dealloc_7becker1_Box(PyObject *o) {
339 __pyx_ptype_7becker1__Box->tp_dealloc(o);
340 }
342 static struct PyMethodDef __pyx_methods_7becker1_Box[] = {
343 {0, 0, 0, 0}
344 };
346 static PyNumberMethods __pyx_tp_as_number_Box = {
347 0, /*nb_add*/
348 0, /*nb_subtract*/
349 0, /*nb_multiply*/
350 0, /*nb_divide*/
351 0, /*nb_remainder*/
352 0, /*nb_divmod*/
353 0, /*nb_power*/
354 0, /*nb_negative*/
355 0, /*nb_positive*/
356 0, /*nb_absolute*/
357 0, /*nb_nonzero*/
358 0, /*nb_invert*/
359 0, /*nb_lshift*/
360 0, /*nb_rshift*/
361 0, /*nb_and*/
362 0, /*nb_xor*/
363 0, /*nb_or*/
364 0, /*nb_coerce*/
365 0, /*nb_int*/
366 0, /*nb_long*/
367 0, /*nb_float*/
368 0, /*nb_oct*/
369 0, /*nb_hex*/
370 0, /*nb_inplace_add*/
371 0, /*nb_inplace_subtract*/
372 0, /*nb_inplace_multiply*/
373 0, /*nb_inplace_divide*/
374 0, /*nb_inplace_remainder*/
375 0, /*nb_inplace_power*/
376 0, /*nb_inplace_lshift*/
377 0, /*nb_inplace_rshift*/
378 0, /*nb_inplace_and*/
379 0, /*nb_inplace_xor*/
380 0, /*nb_inplace_or*/
381 0, /*nb_floor_divide*/
382 0, /*nb_true_divide*/
383 0, /*nb_inplace_floor_divide*/
384 0, /*nb_inplace_true_divide*/
385 #if Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX
386 0, /*nb_index*/
387 #endif
388 };
390 static PySequenceMethods __pyx_tp_as_sequence_Box = {
391 0, /*sq_length*/
392 0, /*sq_concat*/
393 0, /*sq_repeat*/
394 0, /*sq_item*/
395 0, /*sq_slice*/
396 0, /*sq_ass_item*/
397 0, /*sq_ass_slice*/
398 0, /*sq_contains*/
399 0, /*sq_inplace_concat*/
400 0, /*sq_inplace_repeat*/
401 };
403 static PyMappingMethods __pyx_tp_as_mapping_Box = {
404 0, /*mp_length*/
405 0, /*mp_subscript*/
406 0, /*mp_ass_subscript*/
407 };
409 static PyBufferProcs __pyx_tp_as_buffer_Box = {
410 0, /*bf_getreadbuffer*/
411 0, /*bf_getwritebuffer*/
412 0, /*bf_getsegcount*/
413 0, /*bf_getcharbuffer*/
414 };
416 PyTypeObject __pyx_type_7becker1_Box = {
417 PyObject_HEAD_INIT(0)
418 0, /*ob_size*/
419 "becker1.Box", /*tp_name*/
420 sizeof(struct __pyx_obj_7becker1_Box), /*tp_basicsize*/
421 0, /*tp_itemsize*/
422 __pyx_tp_dealloc_7becker1_Box, /*tp_dealloc*/
423 0, /*tp_print*/
424 0, /*tp_getattr*/
425 0, /*tp_setattr*/
426 0, /*tp_compare*/
427 0, /*tp_repr*/
428 &__pyx_tp_as_number_Box, /*tp_as_number*/
429 &__pyx_tp_as_sequence_Box, /*tp_as_sequence*/
430 &__pyx_tp_as_mapping_Box, /*tp_as_mapping*/
431 0, /*tp_hash*/
432 0, /*tp_call*/
433 0, /*tp_str*/
434 0, /*tp_getattro*/
435 0, /*tp_setattro*/
436 &__pyx_tp_as_buffer_Box, /*tp_as_buffer*/
437 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE, /*tp_flags*/
438 "Class representing a glyph or character. Boxes have a fixed\n width that doesn\'t change.\n ", /*tp_doc*/
439 0, /*tp_traverse*/
440 0, /*tp_clear*/
441 0, /*tp_richcompare*/
442 0, /*tp_weaklistoffset*/
443 0, /*tp_iter*/
444 0, /*tp_iternext*/
445 __pyx_methods_7becker1_Box, /*tp_methods*/
446 0, /*tp_members*/
447 0, /*tp_getset*/
448 0, /*tp_base*/
449 0, /*tp_dict*/
450 0, /*tp_descr_get*/
451 0, /*tp_descr_set*/
452 0, /*tp_dictoffset*/
453 __pyx_f_7becker1_3Box___init__, /*tp_init*/
454 0, /*tp_alloc*/
455 __pyx_tp_new_7becker1_Box, /*tp_new*/
456 0, /*tp_free*/
457 0, /*tp_is_gc*/
458 0, /*tp_bases*/
459 0, /*tp_mro*/
460 0, /*tp_cache*/
461 0, /*tp_subclasses*/
462 0, /*tp_weaklist*/
463 };
464 static struct __pyx_vtabstruct_7becker1_Glue __pyx_vtable_7becker1_Glue;
466 static PyObject *__pyx_tp_new_7becker1_Glue(PyTypeObject *t, PyObject *a, PyObject *k) {
467 struct __pyx_obj_7becker1_Glue *p;
468 PyObject *o = __pyx_ptype_7becker1__Box->tp_new(t, a, k);
469 if (!o) return 0;
470 p = ((struct __pyx_obj_7becker1_Glue *)o);
471 *(struct __pyx_vtabstruct_7becker1_Glue **)&p->__pyx_vtab = __pyx_vtabptr_7becker1_Glue;
472 return o;
473 }
475 static void __pyx_tp_dealloc_7becker1_Glue(PyObject *o) {
476 __pyx_ptype_7becker1__Box->tp_dealloc(o);
477 }
479 static struct PyMethodDef __pyx_methods_7becker1_Glue[] = {
480 {0, 0, 0, 0}
481 };
483 static PyNumberMethods __pyx_tp_as_number_Glue = {
484 0, /*nb_add*/
485 0, /*nb_subtract*/
486 0, /*nb_multiply*/
487 0, /*nb_divide*/
488 0, /*nb_remainder*/
489 0, /*nb_divmod*/
490 0, /*nb_power*/
491 0, /*nb_negative*/
492 0, /*nb_positive*/
493 0, /*nb_absolute*/
494 0, /*nb_nonzero*/
495 0, /*nb_invert*/
496 0, /*nb_lshift*/
497 0, /*nb_rshift*/
498 0, /*nb_and*/
499 0, /*nb_xor*/
500 0, /*nb_or*/
501 0, /*nb_coerce*/
502 0, /*nb_int*/
503 0, /*nb_long*/
504 0, /*nb_float*/
505 0, /*nb_oct*/
506 0, /*nb_hex*/
507 0, /*nb_inplace_add*/
508 0, /*nb_inplace_subtract*/
509 0, /*nb_inplace_multiply*/
510 0, /*nb_inplace_divide*/
511 0, /*nb_inplace_remainder*/
512 0, /*nb_inplace_power*/
513 0, /*nb_inplace_lshift*/
514 0, /*nb_inplace_rshift*/
515 0, /*nb_inplace_and*/
516 0, /*nb_inplace_xor*/
517 0, /*nb_inplace_or*/
518 0, /*nb_floor_divide*/
519 0, /*nb_true_divide*/
520 0, /*nb_inplace_floor_divide*/
521 0, /*nb_inplace_true_divide*/
522 #if Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX
523 0, /*nb_index*/
524 #endif
525 };
527 static PySequenceMethods __pyx_tp_as_sequence_Glue = {
528 0, /*sq_length*/
529 0, /*sq_concat*/
530 0, /*sq_repeat*/
531 0, /*sq_item*/
532 0, /*sq_slice*/
533 0, /*sq_ass_item*/
534 0, /*sq_ass_slice*/
535 0, /*sq_contains*/
536 0, /*sq_inplace_concat*/
537 0, /*sq_inplace_repeat*/
538 };
540 static PyMappingMethods __pyx_tp_as_mapping_Glue = {
541 0, /*mp_length*/
542 0, /*mp_subscript*/
543 0, /*mp_ass_subscript*/
544 };
546 static PyBufferProcs __pyx_tp_as_buffer_Glue = {
547 0, /*bf_getreadbuffer*/
548 0, /*bf_getwritebuffer*/
549 0, /*bf_getsegcount*/
550 0, /*bf_getcharbuffer*/
551 };
553 PyTypeObject __pyx_type_7becker1_Glue = {
554 PyObject_HEAD_INIT(0)
555 0, /*ob_size*/
556 "becker1.Glue", /*tp_name*/
557 sizeof(struct __pyx_obj_7becker1_Glue), /*tp_basicsize*/
558 0, /*tp_itemsize*/
559 __pyx_tp_dealloc_7becker1_Glue, /*tp_dealloc*/
560 0, /*tp_print*/
561 0, /*tp_getattr*/
562 0, /*tp_setattr*/
563 0, /*tp_compare*/
564 0, /*tp_repr*/
565 &__pyx_tp_as_number_Glue, /*tp_as_number*/
566 &__pyx_tp_as_sequence_Glue, /*tp_as_sequence*/
567 &__pyx_tp_as_mapping_Glue, /*tp_as_mapping*/
568 0, /*tp_hash*/
569 0, /*tp_call*/
570 0, /*tp_str*/
571 0, /*tp_getattro*/
572 0, /*tp_setattro*/
573 &__pyx_tp_as_buffer_Glue, /*tp_as_buffer*/
574 Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE, /*tp_flags*/
575 "Class representing a bit of glue. Glue has a preferred width,\n but it can stretch up to an additional distance, and can shrink\n by a certain amount. Line breaks can be placed at any point where\n glue immediately follows a box.\n ", /*tp_doc*/
576 0, /*tp_traverse*/
577 0, /*tp_clear*/
578 0, /*tp_richcompare*/
579 0, /*tp_weaklistoffset*/
580 0, /*tp_iter*/
581 0, /*tp_iternext*/
582 __pyx_methods_7becker1_Glue, /*tp_methods*/
583 0, /*tp_members*/
584 0, /*tp_getset*/
585 0, /*tp_base*/
586 0, /*tp_dict*/
587 0, /*tp_descr_get*/
588 0, /*tp_descr_set*/
589 0, /*tp_dictoffset*/
590 __pyx_f_7becker1_4Glue___init__, /*tp_init*/
591 0, /*tp_alloc*/
592 __pyx_tp_new_7becker1_Glue, /*tp_new*/
593 0, /*tp_free*/
594 0, /*tp_is_gc*/
595 0, /*tp_bases*/
596 0, /*tp_mro*/
597 0, /*tp_cache*/
598 0, /*tp_subclasses*/
599 0, /*tp_weaklist*/
600 };
602 static struct PyMethodDef __pyx_methods[] = {
603 {0, 0, 0, 0}
604 };
606 static void __pyx_init_filenames(void); /*proto*/
608 PyMODINIT_FUNC initbecker1(void); /*proto*/
609 PyMODINIT_FUNC initbecker1(void) {
610 __pyx_init_filenames();
611 __pyx_m = Py_InitModule4("becker1", __pyx_methods, 0, 0, PYTHON_API_VERSION);
612 if (!__pyx_m) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
613 Py_INCREF(__pyx_m);
614 __pyx_b = PyImport_AddModule("__builtin__");
615 if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
616 if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
617 if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
618 if (PyType_Ready(&__pyx_type_7becker1__Box) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;}
619 if (PyObject_SetAttrString(__pyx_m, "_Box", (PyObject *)&__pyx_type_7becker1__Box) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;}
620 __pyx_ptype_7becker1__Box = &__pyx_type_7becker1__Box;
621 __pyx_type_7becker1_Box.tp_base = __pyx_ptype_7becker1__Box;
622 if (PyType_Ready(&__pyx_type_7becker1_Box) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 6; goto __pyx_L1;}
623 if (PyObject_SetAttrString(__pyx_m, "Box", (PyObject *)&__pyx_type_7becker1_Box) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 6; goto __pyx_L1;}
624 __pyx_ptype_7becker1_Box = &__pyx_type_7becker1_Box;
625 __pyx_vtabptr_7becker1_Glue = &__pyx_vtable_7becker1_Glue;
626 *(void(**)(void))&__pyx_vtable_7becker1_Glue.compute_width = (void(*)(void))__pyx_f_7becker1_4Glue_compute_width;
627 __pyx_type_7becker1_Glue.tp_base = __pyx_ptype_7becker1__Box;
628 if (PyType_Ready(&__pyx_type_7becker1_Glue) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; goto __pyx_L1;}
629 if (__Pyx_SetVtable(__pyx_type_7becker1_Glue.tp_dict, __pyx_vtabptr_7becker1_Glue) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; goto __pyx_L1;}
630 if (PyObject_SetAttrString(__pyx_m, "Glue", (PyObject *)&__pyx_type_7becker1_Glue) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 16; goto __pyx_L1;}
631 __pyx_ptype_7becker1_Glue = &__pyx_type_7becker1_Glue;
633 /* "/Local/Projects/D/Pyrex/Source/Tests/Bugs/becker/becker1.pyx":29 */
634 return;
635 __pyx_L1:;
636 __Pyx_AddTraceback("becker1");
637 }
639 static char *__pyx_filenames[] = {
640 "becker1.pyx",
641 };
643 /* Runtime support code */
645 static void __pyx_init_filenames(void) {
646 __pyx_f = __pyx_filenames;
647 }
649 static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) {
650 while (t->p) {
651 *t->p = PyString_FromStringAndSize(t->s, t->n - 1);
652 if (!*t->p)
653 return -1;
654 if (t->i)
655 PyString_InternInPlace(t->p);
656 ++t;
657 }
658 return 0;
659 }
661 static int __Pyx_SetVtable(PyObject *dict, void *vtable) {
662 PyObject *pycobj = 0;
663 int result;
665 pycobj = PyCObject_FromVoidPtr(vtable, 0);
666 if (!pycobj)
667 goto bad;
668 if (PyDict_SetItemString(dict, "__pyx_vtable__", pycobj) < 0)
669 goto bad;
670 result = 0;
671 goto done;
673 bad:
674 result = -1;
675 done:
676 Py_XDECREF(pycobj);
677 return result;
678 }
680 #include "compile.h"
681 #include "frameobject.h"
682 #include "traceback.h"
684 static void __Pyx_AddTraceback(char *funcname) {
685 PyObject *py_srcfile = 0;
686 PyObject *py_funcname = 0;
687 PyObject *py_globals = 0;
688 PyObject *empty_tuple = 0;
689 PyObject *empty_string = 0;
690 PyCodeObject *py_code = 0;
691 PyFrameObject *py_frame = 0;
693 py_srcfile = PyString_FromString(__pyx_filename);
694 if (!py_srcfile) goto bad;
695 py_funcname = PyString_FromString(funcname);
696 if (!py_funcname) goto bad;
697 py_globals = PyModule_GetDict(__pyx_m);
698 if (!py_globals) goto bad;
699 empty_tuple = PyTuple_New(0);
700 if (!empty_tuple) goto bad;
701 empty_string = PyString_FromString("");
702 if (!empty_string) goto bad;
703 py_code = PyCode_New(
704 0, /*int argcount,*/
705 0, /*int nlocals,*/
706 0, /*int stacksize,*/
707 0, /*int flags,*/
708 empty_string, /*PyObject *code,*/
709 empty_tuple, /*PyObject *consts,*/
710 empty_tuple, /*PyObject *names,*/
711 empty_tuple, /*PyObject *varnames,*/
712 empty_tuple, /*PyObject *freevars,*/
713 empty_tuple, /*PyObject *cellvars,*/
714 py_srcfile, /*PyObject *filename,*/
715 py_funcname, /*PyObject *name,*/
716 __pyx_lineno, /*int firstlineno,*/
717 empty_string /*PyObject *lnotab*/
718 );
719 if (!py_code) goto bad;
720 py_frame = PyFrame_New(
721 PyThreadState_Get(), /*PyThreadState *tstate,*/
722 py_code, /*PyCodeObject *code,*/
723 py_globals, /*PyObject *globals,*/
724 0 /*PyObject *locals*/
725 );
726 if (!py_frame) goto bad;
727 py_frame->f_lineno = __pyx_lineno;
728 PyTraceBack_Here(py_frame);
729 bad:
730 Py_XDECREF(py_srcfile);
731 Py_XDECREF(py_funcname);
732 Py_XDECREF(empty_tuple);
733 Py_XDECREF(empty_string);
734 Py_XDECREF(py_code);
735 Py_XDECREF(py_frame);
736 }
