1/* ----------------------------------------------------------------------------- 2 * Ruby API portion that goes into the runtime 3 * ----------------------------------------------------------------------------- */ 4 5#ifdef __cplusplus 6extern "C" { 7#endif 8 9SWIGINTERN VALUE 10SWIG_Ruby_AppendOutput(VALUE target, VALUE o) { 11 if (NIL_P(target)) { 12 target = o; 13 } else { 14 if (TYPE(target) != T_ARRAY) { 15 VALUE o2 = target; 16 target = rb_ary_new(); 17 rb_ary_push(target, o2); 18 } 19 rb_ary_push(target, o); 20 } 21 return target; 22} 23 24/* For ruby1.8.4 and earlier. */ 25#ifndef RUBY_INIT_STACK 26 RUBY_EXTERN void Init_stack(VALUE* addr); 27# define RUBY_INIT_STACK \ 28 VALUE variable_in_this_stack_frame; \ 29 Init_stack(&variable_in_this_stack_frame); 30#endif 31 32 33#ifdef __cplusplus 34} 35#endif 36 37