--- libprelude-1.0.0/m4/am_path_ruby.m4.orig 2010-01-11 12:09:42.000000000 +0100 +++ libprelude-1.0.0/m4/am_path_ruby.m4 2011-08-07 16:18:31.583033709 +0200 @@ -100,7 +100,7 @@ AC_SUBST([rbexecdir], [$am_cv_ruby_rbexecdir]) RUBY_INCLUDES=`$RUBY -r rbconfig -e 'if Config::CONFIG[["archdir"]] then print " -I" + Config::CONFIG[["archdir"]] end - if Config::CONFIG[["rubyhdrdir"]] then print " -I" + Config::CONFIG[["rubyhdrdir"]] end'` + if Config::CONFIG[["rubyhdrdir"]] then print " -I" + Config::CONFIG[["rubyhdrdir"]]; print " -I" + Config::CONFIG[["rubyhdrdir"]] + "/" + Config::CONFIG[["arch"]] end'` AC_SUBST([RUBY_INCLUDES]) dnl pkgrbexecdir -- $(rbexecdir)/$(PACKAGE) --- libprelude-1.0.0/bindings/ruby/libpreludecpp-ruby.i.orig 2011-08-07 21:07:53.936358340 +0200 +++ libprelude-1.0.0/bindings/ruby/libpreludecpp-ruby.i 2011-08-08 20:26:34.566624741 +0200 @@ -21,8 +21,9 @@ %{ extern "C" { -#include "rubyio.h" +#include "ruby/io.h" } +#define OpenFile rb_io_t %}; @@ -49,7 +50,7 @@ VALUE *io = (VALUE *) prelude_msgbuf_get_data(fd); GetOpenFile(*io, fptr); - f = fptr->f; + f = fptr->stdio_file; ret = fwrite((const char *) prelude_msg_get_message_data(msg), 1, prelude_msg_get_len(msg), f); if ( ret != prelude_msg_get_len(msg) ) @@ -69,7 +70,7 @@ VALUE *io = (VALUE *) prelude_io_get_fdptr(fd); GetOpenFile(*io, fptr); - f = fptr->f; + f = fptr->stdio_file; ret = fread(buf, 1, size, f); if ( ret < 0 ) @@ -119,7 +120,7 @@ VALUE IDMEFValueList_to_SWIG(const Prelude::IDMEFValue &value) { VALUE ary; - int ret, j = 0; + int ret; std::vector result = value; std::vector::const_iterator i; @@ -132,11 +133,9 @@ if ( ret < 0 ) return Qnil; - RARRAY(ary)->ptr[j++] = val; + rb_ary_push(ary, val); } - RARRAY(ary)->len = result.size(); - return ary; } } @@ -166,7 +165,7 @@ __initial_thread = (gl_thread_t) gl_thread_self(); rbargv = rb_const_get(rb_cObject, rb_intern("ARGV")); - argc = RARRAY(rbargv)->len + 1; + argc = RARRAY_LEN(rbargv) + 1; if ( argc + 1 < 0 ) throw PreludeError("Invalid argc length"); @@ -175,11 +174,12 @@ if ( ! argv ) throw PreludeError("Allocation failure"); - argv[0] = STR2CSTR(rb_gv_get("$0")); + VALUE argv0 = rb_gv_get("$0"); + argv[0] = StringValuePtr(argv0); - ptr = RARRAY(rbargv)->ptr; - for ( ptr = RARRAY(rbargv)->ptr, _i = 1; _i < argc; _i++, ptr++ ) - argv[_i] = STR2CSTR(*ptr); + ptr = RARRAY_PTR(rbargv); + for ( ptr = RARRAY_PTR(rbargv), _i = 1; _i < argc; _i++, ptr++ ) + argv[_i] = StringValuePtr(*ptr); argv[_i] = NULL;