From ae2fe781dd4aae16a2f03a4b9fb93514eb9886d4 Mon Sep 17 00:00:00 2001 From: matz Date: Wed, 13 May 1998 07:26:47 +0000 Subject: 1.1b9_19 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/v1_1r@209 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- struct.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'struct.c') diff --git a/struct.c b/struct.c index 6c581f4e0c..a7ed2623fe 100644 --- a/struct.c +++ b/struct.c @@ -10,6 +10,10 @@ #include "ruby.h" +#ifdef USE_CWGUSI +#include +#endif + ID rb_frame_last_func(); VALUE cStruct; extern VALUE mEnumerable; @@ -161,12 +165,22 @@ make_struct(name, member, klass) return nstr; } +#ifdef __STDC__ +#include +#define va_init_list(a,b) va_start(a,b) +#else #include +#define va_init_list(a,b) va_start(a) +#endif VALUE +#ifdef __STDC__ +struct_define(char *name, ...) +#else struct_define(name, va_alist) char *name; va_dcl +#endif { va_list ar; VALUE nm, ary; @@ -175,7 +189,7 @@ struct_define(name, va_alist) nm = str_new2(name); ary = ary_new(); - va_start(ar); + va_init_list(ar, name); while (mem = va_arg(ar, char*)) { ID slot = rb_intern(mem); ary_push(ary, INT2FIX(slot)); @@ -235,9 +249,13 @@ struct_alloc(klass, values) } VALUE +#ifdef __STDC__ +struct_new(VALUE klass, ...) +#else struct_new(klass, va_alist) VALUE klass; va_dcl +#endif { VALUE val, mem; int size; @@ -246,7 +264,7 @@ struct_new(klass, va_alist) val = rb_iv_get(klass, "__size__"); size = FIX2INT(val); mem = ary_new(); - va_start(args); + va_init_list(args, klass); while (size--) { val = va_arg(args, VALUE); ary_push(mem, val); -- cgit v1.2.3