| /* ----------------------------------------------------------------------------- | |
| * Ruby API portion that goes into the runtime | |
| * ----------------------------------------------------------------------------- */ | |
| #ifdef __cplusplus | |
| extern "C" { | |
| #endif | |
| SWIGINTERN VALUE | |
| SWIG_Ruby_AppendOutput(VALUE target, VALUE o, int is_void) { | |
| if (NIL_P(target) && is_void) { | |
| target = o; | |
| } else { | |
| if (TYPE(target) != T_ARRAY) { | |
| VALUE o2 = target; | |
| target = rb_ary_new(); | |
| rb_ary_push(target, o2); | |
| } | |
| rb_ary_push(target, o); | |
| } | |
| return target; | |
| } | |
| /* For ruby1.8.4 and earlier. */ | |
| #ifndef RUBY_INIT_STACK | |
| RUBY_EXTERN void Init_stack(VALUE* addr); | |
| # define RUBY_INIT_STACK \ | |
| VALUE variable_in_this_stack_frame; \ | |
| Init_stack(&variable_in_this_stack_frame); | |
| #endif | |
| #ifdef __cplusplus | |
| } | |
| #endif | |