Example #1
0
/* Implementation of extcmethod */

static void __pyx_f_10extcmethod_4Spam_add_tons(struct __pyx_obj_10extcmethod_Spam *__pyx_v_self,int __pyx_v_x) {
  Py_INCREF(__pyx_v_self);
  __pyx_v_self->tons = (__pyx_v_self->tons + __pyx_v_x);

  Py_DECREF(__pyx_v_self);
}

static void __pyx_f_10extcmethod_4Spam_eat(struct __pyx_obj_10extcmethod_Spam *__pyx_v_self) {
  Py_INCREF(__pyx_v_self);
  __pyx_v_self->tons = 0;

  Py_DECREF(__pyx_v_self);
}

static void __pyx_f_10extcmethod_9SuperSpam_add_tons(struct __pyx_obj_10extcmethod_SuperSpam *__pyx_v_self,int __pyx_v_x) {
  Py_INCREF((PyObject *)__pyx_v_self);
  __pyx_v_self->__pyx_base.tons = (__pyx_v_self->__pyx_base.tons + (2 * __pyx_v_x));

  Py_DECREF((PyObject *)__pyx_v_self);
}
static struct __pyx_vtabstruct_10extcmethod_Spam __pyx_vtable_10extcmethod_Spam;

static PyObject *__pyx_tp_new_10extcmethod_Spam(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_10extcmethod_Spam *p;
  PyObject *o = (*t->tp_alloc)(t, 0);
  if (!o) return 0;
  p = ((struct __pyx_obj_10extcmethod_Spam *)o);
  *(struct __pyx_vtabstruct_10extcmethod_Spam **)&p->__pyx_vtab = __pyx_vtabptr_10extcmethod_Spam;
  return o;
}

static void __pyx_tp_dealloc_10extcmethod_Spam(PyObject *o) {
  (*o->ob_type->tp_free)(o);
}

static struct PyMethodDef __pyx_methods_10extcmethod_Spam[] = {
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_Spam = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  0, /*nb_divide*/
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  0, /*nb_coerce*/
  0, /*nb_int*/
  0, /*nb_long*/
  0, /*nb_float*/
  0, /*nb_oct*/
  0, /*nb_hex*/
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  0, /*nb_inplace_divide*/
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  #if Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX
  0, /*nb_index*/
  #endif
};

static PySequenceMethods __pyx_tp_as_sequence_Spam = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_Spam = {
  0, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyBufferProcs __pyx_tp_as_buffer_Spam = {
  0, /*bf_getreadbuffer*/
  0, /*bf_getwritebuffer*/
  0, /*bf_getsegcount*/
  0, /*bf_getcharbuffer*/
};

PyTypeObject __pyx_type_10extcmethod_Spam = {
  PyObject_HEAD_INIT(0)
  0, /*ob_size*/
  "extcmethod.Spam", /*tp_name*/
  sizeof(struct __pyx_obj_10extcmethod_Spam), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_10extcmethod_Spam, /*tp_dealloc*/
  0, /*tp_print*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_compare*/
  0, /*tp_repr*/
  &__pyx_tp_as_number_Spam, /*tp_as_number*/
  &__pyx_tp_as_sequence_Spam, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_Spam, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  &__pyx_tp_as_buffer_Spam, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_10extcmethod_Spam, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_10extcmethod_Spam, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
};
static struct __pyx_vtabstruct_10extcmethod_SuperSpam __pyx_vtable_10extcmethod_SuperSpam;

static PyObject *__pyx_tp_new_10extcmethod_SuperSpam(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_10extcmethod_SuperSpam *p;
  PyObject *o = __pyx_ptype_10extcmethod_Spam->tp_new(t, a, k);
  if (!o) return 0;
  p = ((struct __pyx_obj_10extcmethod_SuperSpam *)o);
  *(struct __pyx_vtabstruct_10extcmethod_SuperSpam **)&p->__pyx_base.__pyx_vtab = __pyx_vtabptr_10extcmethod_SuperSpam;
  return o;
}

static void __pyx_tp_dealloc_10extcmethod_SuperSpam(PyObject *o) {
  __pyx_ptype_10extcmethod_Spam->tp_dealloc(o);
}

static struct PyMethodDef __pyx_methods_10extcmethod_SuperSpam[] = {
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_SuperSpam = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  0, /*nb_divide*/
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  0, /*nb_coerce*/
  0, /*nb_int*/
  0, /*nb_long*/
  0, /*nb_float*/
  0, /*nb_oct*/
  0, /*nb_hex*/
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  0, /*nb_inplace_divide*/
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  #if Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX
  0, /*nb_index*/
  #endif
};

static PySequenceMethods __pyx_tp_as_sequence_SuperSpam = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_SuperSpam = {
  0, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyBufferProcs __pyx_tp_as_buffer_SuperSpam = {
  0, /*bf_getreadbuffer*/
  0, /*bf_getwritebuffer*/
  0, /*bf_getsegcount*/
  0, /*bf_getcharbuffer*/
};

PyTypeObject __pyx_type_10extcmethod_SuperSpam = {
  PyObject_HEAD_INIT(0)
  0, /*ob_size*/
  "extcmethod.SuperSpam", /*tp_name*/
  sizeof(struct __pyx_obj_10extcmethod_SuperSpam), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_10extcmethod_SuperSpam, /*tp_dealloc*/
  0, /*tp_print*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_compare*/
  0, /*tp_repr*/
  &__pyx_tp_as_number_SuperSpam, /*tp_as_number*/
  &__pyx_tp_as_sequence_SuperSpam, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_SuperSpam, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  &__pyx_tp_as_buffer_SuperSpam, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_10extcmethod_SuperSpam, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_10extcmethod_SuperSpam, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
};

static struct PyMethodDef __pyx_methods[] = {
  {0, 0, 0, 0}
};

static void __pyx_init_filenames(void); /*proto*/

PyMODINIT_FUNC initextcmethod(void); /*proto*/
PyMODINIT_FUNC initextcmethod(void) {
  __pyx_init_filenames();
  __pyx_m = Py_InitModule4("extcmethod", __pyx_methods, 0, 0, PYTHON_API_VERSION);
  if (!__pyx_m) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
  Py_INCREF(__pyx_m);
  __pyx_b = PyImport_AddModule("__builtin__");
  if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
  if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
  if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
  __pyx_vtabptr_10extcmethod_Spam = &__pyx_vtable_10extcmethod_Spam;
  *(void(**)(void))&__pyx_vtable_10extcmethod_Spam.add_tons = (void(*)(void))__pyx_f_10extcmethod_4Spam_add_tons;
  *(void(**)(void))&__pyx_vtable_10extcmethod_Spam.eat = (void(*)(void))__pyx_f_10extcmethod_4Spam_eat;
  if (PyType_Ready(&__pyx_type_10extcmethod_Spam) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;}
  if (__Pyx_SetVtable(__pyx_type_10extcmethod_Spam.tp_dict, __pyx_vtabptr_10extcmethod_Spam) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;}
  if (PyObject_SetAttrString(__pyx_m, "Spam", (PyObject *)&__pyx_type_10extcmethod_Spam) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;}
  __pyx_ptype_10extcmethod_Spam = &__pyx_type_10extcmethod_Spam;
  __pyx_vtabptr_10extcmethod_SuperSpam = &__pyx_vtable_10extcmethod_SuperSpam;
  __pyx_vtable_10extcmethod_SuperSpam.__pyx_base = *__pyx_vtabptr_10extcmethod_Spam;
  *(void(**)(void))&__pyx_vtable_10extcmethod_SuperSpam.__pyx_base.add_tons = (void(*)(void))__pyx_f_10extcmethod_9SuperSpam_add_tons;
  __pyx_type_10extcmethod_SuperSpam.tp_base = __pyx_ptype_10extcmethod_Spam;
  if (PyType_Ready(&__pyx_type_10extcmethod_SuperSpam) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 12; goto __pyx_L1;}
  if (__Pyx_SetVtable(__pyx_type_10extcmethod_SuperSpam.tp_dict, __pyx_vtabptr_10extcmethod_SuperSpam) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 12; goto __pyx_L1;}
  if (PyObject_SetAttrString(__pyx_m, "SuperSpam", (PyObject *)&__pyx_type_10extcmethod_SuperSpam) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 12; goto __pyx_L1;}
  __pyx_ptype_10extcmethod_SuperSpam = &__pyx_type_10extcmethod_SuperSpam;

  /* "/Local/Projects/D/Pyrex/Source/Tests/8/extcmethod.pyx":12 */
  return;
  __pyx_L1:;
  __Pyx_AddTraceback("extcmethod");
}
Example #2
0
File: ewing3.c Project: jwilk/Pyrex
/* Implementation of ewing3 */

static PyObject *__pyx_f_6ewing3_1C_f(struct __pyx_obj_6ewing3_C *__pyx_v_self) {
  PyObject *__pyx_r;
  Py_INCREF(__pyx_v_self);

  __pyx_r = Py_None; Py_INCREF(Py_None);
  Py_DECREF(__pyx_v_self);
  return __pyx_r;
}
static struct __pyx_vtabstruct_6ewing3_C __pyx_vtable_6ewing3_C;

static PyObject *__pyx_tp_new_6ewing3_C(PyTypeObject *t, PyObject *a, PyObject *k) {
  struct __pyx_obj_6ewing3_C *p;
  PyObject *o = (*t->tp_alloc)(t, 0);
  if (!o) return 0;
  p = ((struct __pyx_obj_6ewing3_C *)o);
  *(struct __pyx_vtabstruct_6ewing3_C **)&p->__pyx_vtab = __pyx_vtabptr_6ewing3_C;
  return o;
}

static void __pyx_tp_dealloc_6ewing3_C(PyObject *o) {
  (*o->ob_type->tp_free)(o);
}

static struct PyMethodDef __pyx_methods_6ewing3_C[] = {
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_C = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  0, /*nb_divide*/
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  0, /*nb_coerce*/
  0, /*nb_int*/
  0, /*nb_long*/
  0, /*nb_float*/
  0, /*nb_oct*/
  0, /*nb_hex*/
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  0, /*nb_inplace_divide*/
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
  #if Py_TPFLAGS_DEFAULT & Py_TPFLAGS_HAVE_INDEX
  0, /*nb_index*/
  #endif
};

static PySequenceMethods __pyx_tp_as_sequence_C = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_C = {
  0, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyBufferProcs __pyx_tp_as_buffer_C = {
  0, /*bf_getreadbuffer*/
  0, /*bf_getwritebuffer*/
  0, /*bf_getsegcount*/
  0, /*bf_getcharbuffer*/
};

PyTypeObject __pyx_type_6ewing3_C = {
  PyObject_HEAD_INIT(0)
  0, /*ob_size*/
  "ewing3.C", /*tp_name*/
  sizeof(struct __pyx_obj_6ewing3_C), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_6ewing3_C, /*tp_dealloc*/
  0, /*tp_print*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_compare*/
  0, /*tp_repr*/
  &__pyx_tp_as_number_C, /*tp_as_number*/
  &__pyx_tp_as_sequence_C, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_C, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  &__pyx_tp_as_buffer_C, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  0, /*tp_traverse*/
  0, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_6ewing3_C, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  0, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_6ewing3_C, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
};

static struct PyMethodDef __pyx_methods[] = {
  {0, 0, 0, 0}
};

static void __pyx_init_filenames(void); /*proto*/

PyMODINIT_FUNC initewing3(void); /*proto*/
PyMODINIT_FUNC initewing3(void) {
  __pyx_init_filenames();
  __pyx_m = Py_InitModule4("ewing3", __pyx_methods, 0, 0, PYTHON_API_VERSION);
  if (!__pyx_m) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
  Py_INCREF(__pyx_m);
  __pyx_b = PyImport_AddModule("__builtin__");
  if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
  if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
  if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
  __pyx_vtabptr_6ewing3_C = &__pyx_vtable_6ewing3_C;
  *(void(**)(void))&__pyx_vtable_6ewing3_C.f = (void(*)(void))__pyx_f_6ewing3_1C_f;
  if (PyType_Ready(&__pyx_type_6ewing3_C) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;}
  if (__Pyx_SetVtable(__pyx_type_6ewing3_C.tp_dict, __pyx_vtabptr_6ewing3_C) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;}
  if (PyObject_SetAttrString(__pyx_m, "C", (PyObject *)&__pyx_type_6ewing3_C) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;}
  __pyx_ptype_6ewing3_C = &__pyx_type_6ewing3_C;
  return;
  __pyx_L1:;
  __Pyx_AddTraceback("ewing3");
}
Example #3
0
File: redir.c Project: rkern/redir
    /* "/Users/kern/projects/redir/redir.pyx":66 */
    __pyx_5 = PyObject_GetAttr(__pyx_v_self, __pyx_n_stop); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; goto __pyx_L1;}
    __pyx_6 = PyTuple_New(0); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; goto __pyx_L1;}
    __pyx_7 = PyObject_CallObject(__pyx_5, __pyx_6); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 66; goto __pyx_L1;}
    Py_DECREF(__pyx_5); __pyx_5 = 0;
    Py_DECREF(__pyx_6); __pyx_6 = 0;
    Py_DECREF(__pyx_v_output);
    __pyx_v_output = __pyx_7;
    __pyx_7 = 0;
    switch (__pyx_why) {
      case 3: goto __pyx_L0;
      case 4: {
        PyErr_Restore(__pyx_1, __pyx_2, __pyx_3);
        __pyx_lineno = __pyx_4;
        __pyx_1 = 0;
        __pyx_2 = 0;
        __pyx_3 = 0;
        goto __pyx_L1;
      }
    }
  }

  __pyx_r = Py_None; Py_INCREF(__pyx_r);
  goto __pyx_L0;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  Py_XDECREF(__pyx_2);
  Py_XDECREF(__pyx_3);
  Py_XDECREF(__pyx_5);
  Py_XDECREF(__pyx_6);
  Py_XDECREF(__pyx_7);
  __Pyx_AddTraceback("redir.Redirector.test");
  __pyx_r = 0;
  __pyx_L0:;
  Py_DECREF(__pyx_v_xyzzy);
  Py_DECREF(__pyx_v_output);
  Py_DECREF(__pyx_v_self);
  return __pyx_r;
}

static __Pyx_InternTabEntry __pyx_intern_tab[] = {
  {&__pyx_n_False, "False"},
  {&__pyx_n_True, "True"},
  {&__pyx_n_close, "close"},
  {&__pyx_n_fdopen, "fdopen"},
  {&__pyx_n_foo, "foo"},
  {&__pyx_n_os, "os"},
  {&__pyx_n_pipe, "pipe"},
  {&__pyx_n_r, "r"},
  {&__pyx_n_read, "read"},
  {&__pyx_n_start, "start"},
  {&__pyx_n_started, "started"},
  {&__pyx_n_stop, "stop"},
  {&__pyx_n_sys, "sys"},
  {&__pyx_n_xyzzy, "xyzzy"},
  {0, 0}
};

static __Pyx_StringTabEntry __pyx_string_tab[] = {
  {&__pyx_k6p, __pyx_k6, sizeof(__pyx_k6)},
  {0, 0, 0}
};
static struct __pyx_vtabstruct_5redir_Redirector __pyx_vtable_5redir_Redirector;

static PyObject *__pyx_tp_new_5redir_Redirector(PyTypeObject *t, PyObject *a, PyObject *k) {
  PyObject *o = (*t->tp_alloc)(t, 0);
  struct __pyx_obj_5redir_Redirector *p = (struct __pyx_obj_5redir_Redirector *)o;
  (struct __pyx_vtabstruct_5redir_Redirector *)p->__pyx_vtab = __pyx_vtabptr_5redir_Redirector;
  return o;
}

static void __pyx_tp_dealloc_5redir_Redirector(PyObject *o) {
  struct __pyx_obj_5redir_Redirector *p = (struct __pyx_obj_5redir_Redirector *)o;
  (*o->ob_type->tp_free)(o);
}

static int __pyx_tp_traverse_5redir_Redirector(PyObject *o, visitproc v, void *a) {
  int e;
  struct __pyx_obj_5redir_Redirector *p = (struct __pyx_obj_5redir_Redirector *)o;
  return 0;
}

static int __pyx_tp_clear_5redir_Redirector(PyObject *o) {
  struct __pyx_obj_5redir_Redirector *p = (struct __pyx_obj_5redir_Redirector *)o;
  return 0;
}

static struct PyMethodDef __pyx_methods_5redir_Redirector[] = {
  {"start", (PyCFunction)__pyx_f_5redir_10Redirector_start, METH_VARARGS|METH_KEYWORDS, 0},
  {"stop", (PyCFunction)__pyx_f_5redir_10Redirector_stop, METH_VARARGS|METH_KEYWORDS, 0},
  {"test", (PyCFunction)__pyx_f_5redir_10Redirector_test, METH_VARARGS|METH_KEYWORDS, 0},
  {0, 0, 0, 0}
};

static PyNumberMethods __pyx_tp_as_number_Redirector = {
  0, /*nb_add*/
  0, /*nb_subtract*/
  0, /*nb_multiply*/
  0, /*nb_divide*/
  0, /*nb_remainder*/
  0, /*nb_divmod*/
  0, /*nb_power*/
  0, /*nb_negative*/
  0, /*nb_positive*/
  0, /*nb_absolute*/
  0, /*nb_nonzero*/
  0, /*nb_invert*/
  0, /*nb_lshift*/
  0, /*nb_rshift*/
  0, /*nb_and*/
  0, /*nb_xor*/
  0, /*nb_or*/
  0, /*nb_coerce*/
  0, /*nb_int*/
  0, /*nb_long*/
  0, /*nb_float*/
  0, /*nb_oct*/
  0, /*nb_hex*/
  0, /*nb_inplace_add*/
  0, /*nb_inplace_subtract*/
  0, /*nb_inplace_multiply*/
  0, /*nb_inplace_divide*/
  0, /*nb_inplace_remainder*/
  0, /*nb_inplace_power*/
  0, /*nb_inplace_lshift*/
  0, /*nb_inplace_rshift*/
  0, /*nb_inplace_and*/
  0, /*nb_inplace_xor*/
  0, /*nb_inplace_or*/
  0, /*nb_floor_divide*/
  0, /*nb_true_divide*/
  0, /*nb_inplace_floor_divide*/
  0, /*nb_inplace_true_divide*/
};

static PySequenceMethods __pyx_tp_as_sequence_Redirector = {
  0, /*sq_length*/
  0, /*sq_concat*/
  0, /*sq_repeat*/
  0, /*sq_item*/
  0, /*sq_slice*/
  0, /*sq_ass_item*/
  0, /*sq_ass_slice*/
  0, /*sq_contains*/
  0, /*sq_inplace_concat*/
  0, /*sq_inplace_repeat*/
};

static PyMappingMethods __pyx_tp_as_mapping_Redirector = {
  0, /*mp_length*/
  0, /*mp_subscript*/
  0, /*mp_ass_subscript*/
};

static PyBufferProcs __pyx_tp_as_buffer_Redirector = {
  0, /*bf_getreadbuffer*/
  0, /*bf_getwritebuffer*/
  0, /*bf_getsegcount*/
  0, /*bf_getcharbuffer*/
};

statichere PyTypeObject __pyx_type_5redir_Redirector = {
  PyObject_HEAD_INIT(0)
  0, /*ob_size*/
  "redir.Redirector", /*tp_name*/
  sizeof(struct __pyx_obj_5redir_Redirector), /*tp_basicsize*/
  0, /*tp_itemsize*/
  __pyx_tp_dealloc_5redir_Redirector, /*tp_dealloc*/
  0, /*tp_print*/
  0, /*tp_getattr*/
  0, /*tp_setattr*/
  0, /*tp_compare*/
  0, /*tp_repr*/
  &__pyx_tp_as_number_Redirector, /*tp_as_number*/
  &__pyx_tp_as_sequence_Redirector, /*tp_as_sequence*/
  &__pyx_tp_as_mapping_Redirector, /*tp_as_mapping*/
  0, /*tp_hash*/
  0, /*tp_call*/
  0, /*tp_str*/
  0, /*tp_getattro*/
  0, /*tp_setattro*/
  &__pyx_tp_as_buffer_Redirector, /*tp_as_buffer*/
  Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE, /*tp_flags*/
  0, /*tp_doc*/
  __pyx_tp_traverse_5redir_Redirector, /*tp_traverse*/
  __pyx_tp_clear_5redir_Redirector, /*tp_clear*/
  0, /*tp_richcompare*/
  0, /*tp_weaklistoffset*/
  0, /*tp_iter*/
  0, /*tp_iternext*/
  __pyx_methods_5redir_Redirector, /*tp_methods*/
  0, /*tp_members*/
  0, /*tp_getset*/
  0, /*tp_base*/
  0, /*tp_dict*/
  0, /*tp_descr_get*/
  0, /*tp_descr_set*/
  0, /*tp_dictoffset*/
  __pyx_f_5redir_10Redirector___init__, /*tp_init*/
  0, /*tp_alloc*/
  __pyx_tp_new_5redir_Redirector, /*tp_new*/
  0, /*tp_free*/
  0, /*tp_is_gc*/
  0, /*tp_bases*/
  0, /*tp_mro*/
  0, /*tp_cache*/
  0, /*tp_subclasses*/
  0, /*tp_weaklist*/
};

static struct PyMethodDef __pyx_methods[] = {
  {0, 0, 0, 0}
};

DL_EXPORT(void) initredir(void); /*proto*/
DL_EXPORT(void) initredir(void) {
  PyObject *__pyx_1 = 0;
  __pyx_m = Py_InitModule4("redir", __pyx_methods, 0, 0, PYTHON_API_VERSION);
  if (!__pyx_m) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
  __pyx_b = PyImport_AddModule("__builtin__");
  if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
  if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
  if (__Pyx_InternStrings(__pyx_intern_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
  if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 1; goto __pyx_L1;};
  __pyx_vtabptr_5redir_Redirector = &__pyx_vtable_5redir_Redirector;
  __pyx_vtable_5redir_Redirector.flush = (void *)__pyx_f_5redir_10Redirector_flush;
  if (PyType_Ready(&__pyx_type_5redir_Redirector) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; goto __pyx_L1;}
  if (__Pyx_SetVtable(__pyx_type_5redir_Redirector.tp_dict, __pyx_vtabptr_5redir_Redirector) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; goto __pyx_L1;}
  if (PyObject_SetAttrString(__pyx_m, "Redirector", (PyObject *)&__pyx_type_5redir_Redirector) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 23; goto __pyx_L1;}
  __pyx_ptype_5redir_Redirector = &__pyx_type_5redir_Redirector;

  /* "/Users/kern/projects/redir/redir.pyx":14 */
  __pyx_1 = __Pyx_Import(__pyx_n_sys, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; goto __pyx_L1;}
  if (PyObject_SetAttr(__pyx_m, __pyx_n_sys, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 14; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;

  /* "/Users/kern/projects/redir/redir.pyx":15 */
  __pyx_1 = __Pyx_Import(__pyx_n_os, 0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; goto __pyx_L1;}
  if (PyObject_SetAttr(__pyx_m, __pyx_n_os, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 15; goto __pyx_L1;}
  Py_DECREF(__pyx_1); __pyx_1 = 0;

  /* "/Users/kern/projects/redir/redir.pyx":20 */
  __pyx_v_5redir_STDOUT = 1;

  /* "/Users/kern/projects/redir/redir.pyx":21 */
  __pyx_v_5redir_STDERR = 2;

  /* "/Users/kern/projects/redir/redir.pyx":28 */
  __pyx_k3 = __pyx_v_5redir_STDOUT;

  /* "/Users/kern/projects/redir/redir.pyx":59 */
  return;
  __pyx_L1:;
  Py_XDECREF(__pyx_1);
  __Pyx_AddTraceback("redir");
}