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