]> git.pld-linux.org Git - packages/libprelude.git/blobdiff - libprelude-ruby.patch
- fix building perl bindings
[packages/libprelude.git] / libprelude-ruby.patch
index fde35289ef4c918258b6d8b41dbb7cfa225d886b..f7c63a6e203432552edf1f5a0d6118a00eaea2fe 100644 (file)
@@ -9,3 +9,82 @@
    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<Prelude::IDMEFValue> result = value;
+         std::vector<Prelude::IDMEFValue>::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;
This page took 0.389208 seconds and 4 git commands to generate.