summaryrefslogtreecommitdiffstats
path: root/redhat/tdebindings/kdebindings-3.5.13-ruby_1.9.patch
diff options
context:
space:
mode:
Diffstat (limited to 'redhat/tdebindings/kdebindings-3.5.13-ruby_1.9.patch')
-rw-r--r--redhat/tdebindings/kdebindings-3.5.13-ruby_1.9.patch691
1 files changed, 691 insertions, 0 deletions
diff --git a/redhat/tdebindings/kdebindings-3.5.13-ruby_1.9.patch b/redhat/tdebindings/kdebindings-3.5.13-ruby_1.9.patch
new file mode 100644
index 000000000..481f0441d
--- /dev/null
+++ b/redhat/tdebindings/kdebindings-3.5.13-ruby_1.9.patch
@@ -0,0 +1,691 @@
+diff -urN tdebindings/korundum/bin/Makefile.am tdebindings.new/korundum/bin/Makefile.am
+--- tdebindings/korundum/bin/Makefile.am 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/korundum/bin/Makefile.am 2012-02-25 22:12:17.000000000 -0600
+@@ -1,4 +1,4 @@
+-INCLUDES = $(all_includes) -I$(RUBY_ARCHDIR)
++INCLUDES = $(all_includes) -I$(RUBY_INCLUDEDIR) -I/usr/include/tqt
+
+ bin_PROGRAMS = krubyinit
+ krubyinit_LDFLAGS = -module $(all_libraries) -version-info 0:0:0 -L$(top_srcdir)/smoke/kde/ -L$(RUBY_LIBDIR) -lkmdi -lknewstuff
+diff -urN tdebindings/korundum/bin/krubyinit.cpp tdebindings.new/korundum/bin/krubyinit.cpp
+--- tdebindings/korundum/bin/krubyinit.cpp 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/korundum/bin/krubyinit.cpp 2012-02-25 22:13:38.000000000 -0600
+@@ -24,6 +24,6 @@
+ int main(int argc, char **argv) {
+ ruby_init();
+ ruby_script((char*)script_name);
+- ruby_options(argc, argv);
+- ruby_run();
++ void* node = ruby_options(argc, argv);
++ ruby_run_node(node);
+ }
+diff -urN tdebindings/korundum/rubylib/korundum/Korundum.cpp tdebindings.new/korundum/rubylib/korundum/Korundum.cpp
+--- tdebindings/korundum/rubylib/korundum/Korundum.cpp 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/korundum/rubylib/korundum/Korundum.cpp 2012-02-25 22:13:50.000000000 -0600
+@@ -805,7 +805,7 @@
+ // isn't in the Smoke runtime
+ TQValueList<DCOPRef> windowList;
+
+- for (long i = 0; i < RARRAY(result)->len; i++) {
++ for (long i = 0; i < RARRAY_LEN(result); i++) {
+ VALUE item = rb_ary_entry(result, i);
+ smokeruby_object *o = value_obj_info(item);
+ if( !o || !o->ptr)
+@@ -822,7 +822,7 @@
+ // And special case this type too
+ TQValueList<TQCString> propertyList;
+
+- for (long i = 0; i < RARRAY(result)->len; i++) {
++ for (long i = 0; i < RARRAY_LEN(result); i++) {
+ VALUE item = rb_ary_entry(result, i);
+ propertyList.append(TQCString(StringValuePtr(item)));
+ }
+@@ -836,7 +836,7 @@
+ // Convert the ruby hash to an array of key/value arrays
+ VALUE temp = rb_funcall(result, rb_intern("to_a"), 0);
+
+- for (long i = 0; i < RARRAY(temp)->len; i++) {
++ for (long i = 0; i < RARRAY_LEN(temp); i++) {
+ VALUE action = rb_ary_entry(rb_ary_entry(temp, i), 0);
+ VALUE item = rb_ary_entry(rb_ary_entry(temp, i), 1);
+
+@@ -926,7 +926,7 @@
+ {
+ VALUE dcopObject = rb_funcall(kde_module, rb_intern("createDCOPObject"), 1, self);
+
+- TQString signalname(rb_id2name(rb_frame_last_func()));
++ TQString signalname(rb_id2name(rb_frame_this_func()));
+ VALUE args = getdcopinfo(self, signalname);
+
+ if(args == Qnil) return Qfalse;
+@@ -1020,7 +1020,7 @@
+
+ if (rb_funcall(kde_module, rb_intern("hasDCOPSignals"), 1, klass) == Qtrue) {
+ VALUE signalNames = rb_funcall(kde_module, rb_intern("getDCOPSignalNames"), 1, klass);
+- for (long index = 0; index < RARRAY(signalNames)->len; index++) {
++ for (long index = 0; index < RARRAY_LEN(signalNames); index++) {
+ VALUE signal = rb_ary_entry(signalNames, index);
+ rb_define_method(klass, StringValuePtr(signal), (VALUE (*) (...)) k_dcop_signal, -1);
+ }
+@@ -1088,9 +1088,9 @@
+ TQStrList *args = new TQStrList;
+
+ if (value_args != Qnil) {
+- for (long i = 0; i < RARRAY(value_args)->len; i++) {
++ for (long i = 0; i < RARRAY_LEN(value_args); i++) {
+ VALUE item = rb_ary_entry(value_args, i);
+- args->append(TQString::fromLatin1(StringValuePtr(item), RSTRING(item)->len));
++ args->append(TQString::fromLatin1(StringValuePtr(item), RSTRING_LEN(item)));
+ }
+ }
+
+diff -urN tdebindings/korundum/rubylib/korundum/Makefile.am tdebindings.new/korundum/rubylib/korundum/Makefile.am
+--- tdebindings/korundum/rubylib/korundum/Makefile.am 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/korundum/rubylib/korundum/Makefile.am 2012-02-25 22:12:17.000000000 -0600
+@@ -1,6 +1,6 @@
+-INCLUDES = -I$(top_srcdir)/smoke -I$(top_srcdir)/qtruby/rubylib/qtruby $(all_includes) -I$(RUBY_ARCHDIR)
++INCLUDES = -I$(top_srcdir)/smoke -I$(top_srcdir)/qtruby/rubylib/qtruby $(all_includes) -I$(RUBY_INCLUDEDIR) -I/usr/include/tqt
+
+-rubylibdir = $(RUBY_ARCHDIR)
++rubylibdir = $(RUBY_LIBDIR)
+ rubylib_LTLIBRARIES = korundum.la
+ korundum_la_LDFLAGS = -module $(all_libraries) -version-info 0:0:0
+ korundum_la_METASOURCES = AUTO
+diff -urN tdebindings/korundum/rubylib/korundum/configure.in.in tdebindings.new/korundum/rubylib/korundum/configure.in.in
+--- tdebindings/korundum/rubylib/korundum/configure.in.in 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/korundum/rubylib/korundum/configure.in.in 2012-02-25 22:12:17.000000000 -0600
+@@ -8,10 +8,30 @@
+ RUBY_SITEARCHDIR=`ruby -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitearchdir"@:>@)'`
+ RUBY_SITEDIR=`ruby -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitelibdir"@:>@)'`
+ RUBY_RUBYLIBDIR=`ruby -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"rubylibdir"@:>@)'`
+- AC_MSG_RESULT([archdir $RUBY_ARCHDIR, sitearchdir $RUBY_SITEARCHDIR, sitedir $RUBY_SITEDIR])
++ RUBY_LIBDIR=`ruby -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"libdir"@:>@)'`
++ if test -n "ruby -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"rubyhdrdir"@:>@)'"; then
++ # Ruby 1.9
++ RUBY_INCLUDEDIR=`ruby -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"rubyhdrdir"@:>@)'`
++ RUBY_VERSION_H=ruby/version.h
++ else
++ # not Ruby 1.9
++ RUBY_INCLUDEDIR=$RUBY_ARCHDIR
++ RUBY_VERSION_H=version.h
++ fi
++ RUBY_LIBRUBYARG=`ruby -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'`
++ AC_MSG_RESULT([
++ archdir $RUBY_ARCHDIR,
++ sitearchdir $RUBY_SITEARCHDIR,
++ sitedir $RUBY_SITEDIR,
++ libdir $RUBY_LIBDIR,
++ includedir $RUBY_INCLUDEDIR,
++ librubyarg $RUBY_LIBRUBYARG])
+ AC_SUBST(RUBY_ARCHDIR)
+ AC_SUBST(RUBY_SITEARCHDIR)
+- AC_SUBST(RUBY_RUBYLIBDIR)
+ AC_SUBST(RUBY_SITEDIR)
++ AC_SUBST(RUBY_RUBYLIBDIR)
++ AC_SUBST(RUBY_LIBDIR)
++ AC_SUBST(RUBY_INCLUDEDIR)
++ AC_SUBST(RUBY_LIBRUBYARG)
+ fi
+
+diff -urN tdebindings/korundum/rubylib/korundum/kdehandlers.cpp tdebindings.new/korundum/rubylib/korundum/kdehandlers.cpp
+--- tdebindings/korundum/rubylib/korundum/kdehandlers.cpp 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/korundum/rubylib/korundum/kdehandlers.cpp 2012-02-25 22:14:03.000000000 -0600
+@@ -122,7 +122,7 @@
+ break;
+ }
+
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ QCStringList *stringlist = new QCStringList;
+
+ for(long i = 0; i < count; i++) {
+@@ -131,7 +131,7 @@
+ stringlist->append(TQCString());
+ continue;
+ }
+- stringlist->append(TQCString(StringValuePtr(item), RSTRING(item)->len + 1));
++ stringlist->append(TQCString(StringValuePtr(item), RSTRING_LEN(item) + 1));
+ }
+
+ m->item().s_voidp = stringlist;
+@@ -184,19 +184,19 @@
+ VALUE optionslist = *(m->var());
+ if (optionslist == Qnil
+ || TYPE(optionslist) != T_ARRAY
+- || RARRAY(optionslist)->len == 0 )
++ || RARRAY_LEN(optionslist) == 0 )
+ {
+ m->item().s_voidp = 0;
+ break;
+ }
+
+ // Allocate 'length + 1' entries, to include an all NULLs last entry
+- KCmdLineOptions *cmdLineOptions = (KCmdLineOptions *) calloc( RARRAY(optionslist)->len + 1,
++ KCmdLineOptions *cmdLineOptions = (KCmdLineOptions *) calloc( RARRAY_LEN(optionslist) + 1,
+ sizeof(struct KCmdLineOptions) );
+
+ VALUE options;
+ long i;
+- for(i = 0; i < RARRAY(optionslist)->len; i++) {
++ for(i = 0; i < RARRAY_LEN(optionslist); i++) {
+ options = rb_ary_entry(optionslist, i);
+ VALUE temp = rb_ary_entry(options, 0);
+ cmdLineOptions[i].name = StringValuePtr(temp);
+@@ -244,7 +244,7 @@
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ TQValueList<WId> *valuelist = new TQValueList<WId>;
+ long i;
+ for(i = 0; i < count; i++) {
+@@ -815,7 +815,7 @@
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ KURL::List *kurllist = new KURL::List;
+ long i;
+ for(i = 0; i < count; i++) {
+@@ -916,11 +916,11 @@
+
+ KIO::UDSEntryList *cpplist = new KIO::UDSEntryList;
+
+- for(long i = 0; i < RARRAY(list)->len; i++) {
++ for(long i = 0; i < RARRAY_LEN(list); i++) {
+ VALUE item = rb_ary_entry(list, i);
+ KIO::UDSEntry *cppsublist = new KIO::UDSEntry;
+
+- for (int j = 0; j < RARRAY(item)->len; j++) {
++ for (int j = 0; j < RARRAY_LEN(item); j++) {
+ VALUE subitem = rb_ary_entry(item, j);
+ smokeruby_object *o = value_obj_info(subitem);
+ if(!o || !o->ptr)
+@@ -998,7 +998,7 @@
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ ItemList *cpplist = new ItemList;
+ long i;
+ for(i = 0; i < count; i++) {
+@@ -1103,7 +1103,7 @@
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ ItemList *cpplist = new ItemList;
+ long i;
+ for(i = 0; i < count; i++) {
+@@ -1211,7 +1211,7 @@
+ // Convert the ruby hash to an array of key/value arrays
+ VALUE temp = rb_funcall(hash, rb_intern("to_a"), 0);
+
+- for (long i = 0; i < RARRAY(temp)->len; i++) {
++ for (long i = 0; i < RARRAY_LEN(temp); i++) {
+ VALUE key = rb_ary_entry(rb_ary_entry(temp, i), 0);
+ VALUE value = rb_ary_entry(rb_ary_entry(temp, i), 1);
+
+@@ -1316,7 +1316,7 @@
+ // Convert the ruby hash to an array of key/value arrays
+ VALUE temp = rb_funcall(hash, rb_intern("to_a"), 0);
+
+- for (long i = 0; i < RARRAY(temp)->len; i++) {
++ for (long i = 0; i < RARRAY_LEN(temp); i++) {
+ VALUE key = rb_ary_entry(rb_ary_entry(temp, i), 0);
+ VALUE value = rb_ary_entry(rb_ary_entry(temp, i), 1);
+
+diff -urN tdebindings/qtruby/bin/Makefile.am tdebindings.new/qtruby/bin/Makefile.am
+--- tdebindings/qtruby/bin/Makefile.am 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/qtruby/bin/Makefile.am 2012-02-25 22:12:17.000000000 -0600
+@@ -1,4 +1,4 @@
+-INCLUDES = $(all_includes) -I$(RUBY_ARCHDIR)
++INCLUDES = $(all_includes) -I$(RUBY_INCLUDEDIR) -I/usr/include/tqt
+
+ bin_PROGRAMS = qtrubyinit
+ qtrubyinit_LDFLAGS = -module $(all_libraries) -version-info 0:0:0 -L$(top_srcdir)/smoke/qt/ -L$(RUBY_LIBDIR)
+diff -urN tdebindings/qtruby/bin/qtrubyinit.cpp tdebindings.new/qtruby/bin/qtrubyinit.cpp
+--- tdebindings/qtruby/bin/qtrubyinit.cpp 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/qtruby/bin/qtrubyinit.cpp 2012-02-25 22:13:23.000000000 -0600
+@@ -24,6 +24,6 @@
+ int main(int argc, char **argv) {
+ ruby_init();
+ ruby_script((char*)script_name);
+- ruby_options(argc, argv);
+- ruby_run();
++ void* node = ruby_options(argc, argv);
++ ruby_run_node(node);
+ }
+diff -urN tdebindings/qtruby/rubylib/designer/rbuic/Makefile.am tdebindings.new/qtruby/rubylib/designer/rbuic/Makefile.am
+--- tdebindings/qtruby/rubylib/designer/rbuic/Makefile.am 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/qtruby/rubylib/designer/rbuic/Makefile.am 2012-02-25 22:12:17.000000000 -0600
+@@ -4,7 +4,7 @@
+ bin_PROGRAMS = rbuic
+ noinst_LTLIBRARIES = librbuic.la
+
+-INCLUDES = $(all_includes)
++INCLUDES = $(all_includes) -I$(RUBY_INCLUDEDIR) -I/usr/include/tqt
+
+ METASOURCES = AUTO
+
+@@ -12,8 +12,8 @@
+ librbuic_la_LIBADD = $(LIB_QT) $(LIBZ)
+
+ rbuic_SOURCES = main.cpp
+-rbuic_LDADD = librbuic.la $(all_libraries)
+-rbuic_LDFLAGS =
++rbuic_LDADD = librbuic.la $(all_libraries)
++rbuic_LDFLAGS =
+
+ EXTRA_DIST = domtool.cpp domtool.h embed.cpp form.cpp globaldefs.h main.cpp object.cpp parser.cpp parser.h subclassing.cpp uic.cpp uic.h widgetdatabase.cpp widgetdatabase.h widgetinterface.h
+
+diff -urN tdebindings/qtruby/rubylib/designer/uilib/Makefile.am tdebindings.new/qtruby/rubylib/designer/uilib/Makefile.am
+--- tdebindings/qtruby/rubylib/designer/uilib/Makefile.am 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/qtruby/rubylib/designer/uilib/Makefile.am 2012-02-25 22:12:17.000000000 -0600
+@@ -1,6 +1,6 @@
+-INCLUDES = -I$(top_srcdir)/smoke -I$(top_srcdir)/qtruby/rubylib/qtruby $(all_includes) -I$(RUBY_ARCHDIR)
++INCLUDES = -I$(top_srcdir)/smoke -I$(top_srcdir)/qtruby/rubylib/qtruby $(all_includes) -I$(RUBY_INCLUDEDIR) -I/usr/include/tqt
+
+-rubylibdir = $(RUBY_ARCHDIR)
++rubylibdir = $(RUBY_LIBDIR)
+ rubylib_LTLIBRARIES = qui.la
+ qui_la_SOURCES = qui.cpp
+ qui_la_LDFLAGS = -module -export-dynamic $(all_libraries) -version-info 0:0:0
+diff -urN tdebindings/qtruby/rubylib/qtruby/Makefile.am tdebindings.new/qtruby/rubylib/qtruby/Makefile.am
+--- tdebindings/qtruby/rubylib/qtruby/Makefile.am 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/qtruby/rubylib/qtruby/Makefile.am 2012-02-25 22:12:17.000000000 -0600
+@@ -1,4 +1,4 @@
+-INCLUDES = -I$(top_srcdir)/smoke $(all_includes) -I$(RUBY_ARCHDIR)
++INCLUDES = -I$(top_srcdir)/smoke $(all_includes) -I$(RUBY_INCLUDEDIR) -I/usr/include/tqt
+
+ noinst_HEADERS = qtruby.h marshall.h smokeruby.h extconf.rb
+
+diff -urN tdebindings/qtruby/rubylib/qtruby/Qt.cpp tdebindings.new/qtruby/rubylib/qtruby/Qt.cpp
+--- tdebindings/qtruby/rubylib/qtruby/Qt.cpp 2012-02-21 13:58:54.000000000 -0600
++++ tdebindings.new/qtruby/rubylib/qtruby/Qt.cpp 2012-02-25 22:12:52.000000000 -0600
+@@ -110,7 +110,7 @@
+ };
+
+ #define logger logger_backend
+-void rb_str_catf(VALUE self, const char *format, ...) __attribute__ ((format (printf, 2, 3)));
++void rb_str_catf_1(VALUE self, const char *format, ...) __attribute__ ((format (printf, 2, 3)));
+
+ static VALUE (*_new_kde)(int, VALUE *, VALUE) = 0;
+ static VALUE (*_kconfigskeletonitem_immutable)(VALUE) = 0;
+@@ -820,7 +820,7 @@
+ }
+ };
+
+-void rb_str_catf(VALUE self, const char *format, ...)
++void rb_str_catf_1(VALUE self, const char *format, ...)
+ {
+ va_list ap;
+ va_start(ap, format);
+@@ -985,16 +985,16 @@
+ VALUE r = rb_str_new2("");
+ Smoke::Method &meth = qt_Smoke->methods[id];
+ const char *tname = qt_Smoke->types[meth.ret].name;
+- if(meth.flags & Smoke::mf_static) rb_str_catf(r, "static ");
+- rb_str_catf(r, "%s ", (tname ? tname:"void"));
+- rb_str_catf(r, "%s::%s(", qt_Smoke->classes[meth.classId].className, qt_Smoke->methodNames[meth.name]);
++ if(meth.flags & Smoke::mf_static) rb_str_catf_1(r, "static ");
++ rb_str_catf_1(r, "%s ", (tname ? tname:"void"));
++ rb_str_catf_1(r, "%s::%s(", qt_Smoke->classes[meth.classId].className, qt_Smoke->methodNames[meth.name]);
+ for(int i = 0; i < meth.numArgs; i++) {
+- if(i) rb_str_catf(r, ", ");
++ if(i) rb_str_catf_1(r, ", ");
+ tname = qt_Smoke->types[qt_Smoke->argumentList[meth.args+i]].name;
+- rb_str_catf(r, "%s", (tname ? tname:"void"));
++ rb_str_catf_1(r, "%s", (tname ? tname:"void"));
+ }
+- rb_str_catf(r, ")");
+- if(meth.flags & Smoke::mf_const) rb_str_catf(r, " const");
++ rb_str_catf_1(r, ")");
++ if(meth.flags & Smoke::mf_const) rb_str_catf_1(r, " const");
+ return r;
+ }
+
+@@ -1177,7 +1177,7 @@
+ // Start with #<Qt::HBoxLayout:0x30139030> from the original inspect() call
+ // Drop the closing '>'
+ VALUE inspect_str = rb_call_super(0, 0);
+- rb_str_resize(inspect_str, RSTRING(inspect_str)->len - 1);
++ rb_str_resize(inspect_str, RSTRING_LEN(inspect_str) - 1);
+
+ smokeruby_object * o = 0;
+ Data_Get_Struct(self, smokeruby_object, o);
+@@ -1220,7 +1220,7 @@
+ // Start with #<Qt::HBoxLayout:0x30139030>
+ // Drop the closing '>'
+ VALUE inspect_str = rb_funcall(self, rb_intern("to_s"), 0, 0);
+- rb_str_resize(inspect_str, RSTRING(inspect_str)->len - 1);
++ rb_str_resize(inspect_str, RSTRING_LEN(inspect_str) - 1);
+ rb_funcall(pp, rb_intern("text"), 1, inspect_str);
+ rb_funcall(pp, rb_intern("breakable"), 0);
+
+@@ -1236,7 +1236,7 @@
+ VALUE obj = getPointerObject(qobject->parent());
+ if (obj != Qnil) {
+ VALUE parent_inspect_str = rb_funcall(obj, rb_intern("to_s"), 0, 0);
+- rb_str_resize(parent_inspect_str, RSTRING(parent_inspect_str)->len - 1);
++ rb_str_resize(parent_inspect_str, RSTRING_LEN(parent_inspect_str) - 1);
+ parentInspectString = StringValuePtr(parent_inspect_str);
+ } else {
+ parentInspectString.sprintf("#<%s:0x0", qobject->parent()->className());
+@@ -1382,7 +1382,7 @@
+ return *(c.var());
+ } else if ( argc == 1
+ && TYPE(argv[0]) == T_ARRAY
+- && RARRAY(argv[0])->len > 0
++ && RARRAY_LEN(argv[0]) > 0
+ && TYPE(rb_ary_entry(argv[0], 0)) != T_STRING )
+ {
+ _current_method = new_qvariant_qlist;
+@@ -1741,7 +1741,7 @@
+ VALUE * local_argv = (VALUE *) calloc(argc + 1, sizeof(VALUE));
+ VALUE temp = rb_ary_dup(argv[0]);
+ rb_ary_unshift(temp, rb_gv_get("$0"));
+- local_argv[0] = INT2NUM(RARRAY(temp)->len);
++ local_argv[0] = INT2NUM(RARRAY_LEN(temp));
+ local_argv[1] = temp;
+ result = new_qt(2, local_argv, klass);
+ free(local_argv);
+@@ -1772,7 +1772,7 @@
+ VALUE
+ getmetainfo(VALUE self, int &offset, int &index)
+ {
+- const char * signalname = rb_id2name(rb_frame_last_func());
++ const char * signalname = rb_id2name(rb_frame_this_func());
+ VALUE metaObject_value = rb_funcall(qt_internal_module, rb_intern("getMetaObject"), 1, self);
+
+ smokeruby_object *ometa = value_obj_info(metaObject_value);
+@@ -1862,7 +1862,7 @@
+ // Now, I need to find out if this means me
+ int index;
+ char *slotname;
+- bool isSignal = qstrcmp(rb_id2name(rb_frame_last_func()), "qt_emit") == 0;
++ bool isSignal = qstrcmp(rb_id2name(rb_frame_this_func()), "qt_emit") == 0;
+ VALUE mocArgs = getslotinfo(self, id, slotname, index, isSignal);
+ if(mocArgs == Qnil) {
+ // No ruby slot/signal found, assume the target is a C++ one
+@@ -2009,7 +2009,7 @@
+ return Qnil;
+ }
+ TQByteArray * dataArray = (TQByteArray*) o->ptr;
+- dataArray->setRawData(StringValuePtr(data), RSTRING(data)->len);
++ dataArray->setRawData(StringValuePtr(data), RSTRING_LEN(data));
+ return self;
+ }
+
+@@ -2195,7 +2195,7 @@
+ m->name = new char[strlen(name) + 1]; // this too
+ strcpy((char*)m->name, name);
+ m->parameters = 0;
+- m->count = RARRAY(params)->len;
++ m->count = RARRAY_LEN(params);
+
+ if (m->count > 0) {
+ m->parameters = new QUParameter[m->count];
+@@ -2213,7 +2213,7 @@
+ static VALUE
+ make_QMetaData_tbl(VALUE /*self*/, VALUE list)
+ {
+- long count = RARRAY(list)->len;
++ long count = RARRAY_LEN(list);
+ QMetaData *m = new QMetaData[count];
+
+ for (long i = 0; i < count; i++) {
+@@ -2281,7 +2281,7 @@
+ static VALUE
+ add_signal_methods(VALUE self, VALUE klass, VALUE signalNames)
+ {
+- for (long index = 0; index < RARRAY(signalNames)->len; index++) {
++ for (long index = 0; index < RARRAY_LEN(signalNames); index++) {
+ VALUE signal = rb_ary_entry(signalNames, index);
+ rb_define_method(klass, StringValuePtr(signal), (VALUE (*) (...)) qt_signal, -1);
+ }
+@@ -2597,28 +2597,28 @@
+ {
+ VALUE errmsg = rb_str_new2("");
+ if(rmeths != Qnil) {
+- int count = RARRAY(rmeths)->len;
++ int count = RARRAY_LEN(rmeths);
+ for(int i = 0; i < count; i++) {
+- rb_str_catf(errmsg, "\t");
++ rb_str_catf_1(errmsg, "\t");
+ int id = NUM2INT(rb_ary_entry(rmeths, i));
+ Smoke::Method &meth = qt_Smoke->methods[id];
+ const char *tname = qt_Smoke->types[meth.ret].name;
+ if(meth.flags & Smoke::mf_enum) {
+- rb_str_catf(errmsg, "enum ");
+- rb_str_catf(errmsg, "%s::%s", qt_Smoke->classes[meth.classId].className, qt_Smoke->methodNames[meth.name]);
+- rb_str_catf(errmsg, "\n");
++ rb_str_catf_1(errmsg, "enum ");
++ rb_str_catf_1(errmsg, "%s::%s", qt_Smoke->classes[meth.classId].className, qt_Smoke->methodNames[meth.name]);
++ rb_str_catf_1(errmsg, "\n");
+ } else {
+ if(meth.flags & Smoke::mf_static) rb_str_catf(errmsg, "static ");
+- rb_str_catf(errmsg, "%s ", (tname ? tname:"void"));
+- rb_str_catf(errmsg, "%s::%s(", qt_Smoke->classes[meth.classId].className, qt_Smoke->methodNames[meth.name]);
++ rb_str_catf_1(errmsg, "%s ", (tname ? tname:"void"));
++ rb_str_catf_1(errmsg, "%s::%s(", qt_Smoke->classes[meth.classId].className, qt_Smoke->methodNames[meth.name]);
+ for(int i = 0; i < meth.numArgs; i++) {
+- if(i) rb_str_catf(errmsg, ", ");
++ if(i) rb_str_catf_1(errmsg, ", ");
+ tname = qt_Smoke->types[qt_Smoke->argumentList[meth.args+i]].name;
+- rb_str_catf(errmsg, "%s", (tname ? tname:"void"));
++ rb_str_catf_1(errmsg, "%s", (tname ? tname:"void"));
+ }
+- rb_str_catf(errmsg, ")");
+- if(meth.flags & Smoke::mf_const) rb_str_catf(errmsg, " const");
+- rb_str_catf(errmsg, "\n");
++ rb_str_catf_1(errmsg, ")");
++ if(meth.flags & Smoke::mf_const) rb_str_catf_1(errmsg, " const");
++ rb_str_catf_1(errmsg, "\n");
+ }
+ }
+ }
+diff -urN tdebindings/qtruby/rubylib/qtruby/configure.in.in tdebindings.new/qtruby/rubylib/qtruby/configure.in.in
+--- tdebindings/qtruby/rubylib/qtruby/configure.in.in 2011-12-25 00:54:23.000000000 -0600
++++ tdebindings.new/qtruby/rubylib/qtruby/configure.in.in 2012-02-25 22:12:17.000000000 -0600
+@@ -9,13 +9,29 @@
+ RUBY_SITEDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"sitelibdir"@:>@)'`
+ RUBY_RUBYLIBDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"rubylibdir"@:>@)'`
+ RUBY_LIBDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"libdir"@:>@)'`
++ if test -n "$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"rubyhdrdir"@:>@)'"; then
++ # Ruby 1.9
++ RUBY_INCLUDEDIR=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"rubyhdrdir"@:>@)'`
++ RUBY_VERSION_H=ruby/version.h
++ else
++ # not Ruby 1.9
++ RUBY_INCLUDEDIR=$RUBY_ARCHDIR
++ RUBY_VERSION_H=version.h
++ fi
+ RUBY_LIBRUBYARG=`$RUBY -r rbconfig -e 'printf("%s",Config::CONFIG@<:@"LIBRUBYARG_SHARED"@:>@)'`
+- AC_MSG_RESULT([archdir $RUBY_ARCHDIR, sitearchdir $RUBY_SITEARCHDIR, sitedir $RUBY_SITEDIR, libdir $RUBY_LIBDIR, librubyarg $RUBY_LIBRUBYARG])
++ AC_MSG_RESULT([
++ archdir $RUBY_ARCHDIR,
++ sitearchdir $RUBY_SITEARCHDIR,
++ sitedir $RUBY_SITEDIR,
++ libdir $RUBY_LIBDIR,
++ includedir $RUBY_INCLUDEDIR,
++ librubyarg $RUBY_LIBRUBYARG])
+ AC_SUBST(RUBY_ARCHDIR)
+ AC_SUBST(RUBY_SITEARCHDIR)
+ AC_SUBST(RUBY_SITEDIR)
+ AC_SUBST(RUBY_RUBYLIBDIR)
+ AC_SUBST(RUBY_LIBDIR)
++ AC_SUBST(RUBY_INCLUDEDIR)
+ AC_SUBST(RUBY_LIBRUBYARG)
+ fi
+
+diff -urN tdebindings/qtruby/rubylib/qtruby/handlers.cpp tdebindings.new/qtruby/rubylib/qtruby/handlers.cpp
+--- tdebindings/qtruby/rubylib/qtruby/handlers.cpp 2012-02-21 13:58:54.000000000 -0600
++++ tdebindings.new/qtruby/rubylib/qtruby/handlers.cpp 2012-02-25 22:13:09.000000000 -0600
+@@ -755,7 +755,7 @@
+ break;
+ }
+
+- int len = RSTRING(rv)->len;
++ int len = RSTRING_LEN(rv);
+ char* mem = (char*) malloc(len+1);
+ memcpy(mem, StringValuePtr(rv), len);
+ mem[len] ='\0';
+@@ -788,7 +788,7 @@
+ m->item().s_voidp = 0;
+ break;
+ }
+- int len = RSTRING(rv)->len;
++ int len = RSTRING_LEN(rv);
+ char* mem = (char*) malloc(len+1);
+ memcpy(mem, StringValuePtr(rv), len);
+ mem[len] ='\0';
+@@ -824,7 +824,7 @@
+
+ TQString * s;
+ if (qstrcmp(KCODE, "UTF8") == 0)
+- s = new TQString(TQString::fromUtf8(StringValuePtr(rstring), RSTRING(rstring)->len));
++ s = new TQString(TQString::fromUtf8(StringValuePtr(rstring), RSTRING_LEN(rstring)));
+ else if (qstrcmp(KCODE, "EUC") == 0)
+ s = new TQString(codec->toUnicode(StringValuePtr(rstring)));
+ else if (qstrcmp(KCODE, "SJIS") == 0)
+@@ -832,7 +832,7 @@
+ else if(qstrcmp(KCODE, "NONE") == 0)
+ s = new TQString(TQString::fromLatin1(StringValuePtr(rstring)));
+ else
+- s = new TQString(TQString::fromLocal8Bit(StringValuePtr(rstring), RSTRING(rstring)->len));
++ s = new TQString(TQString::fromLocal8Bit(StringValuePtr(rstring), RSTRING_LEN(rstring)));
+ return s;
+ }
+
+@@ -944,7 +944,7 @@
+ s = new TQCString();
+ } else {
+ // Add 1 to the ruby string length to allow for a TQCString '\0' terminator
+- s = new TQCString(StringValuePtr(*(m->var())), RSTRING(*(m->var()))->len + 1);
++ s = new TQCString(StringValuePtr(*(m->var())), RSTRING_LEN(*(m->var())) + 1);
+ }
+ m->item().s_voidp = s;
+
+@@ -1007,7 +1007,7 @@
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(av)->len;
++ int count = RARRAY_LEN(av);
+ QCOORD *coord = new QCOORD[count + 2];
+ for(long i = 0; i < count; i++) {
+ VALUE svp = rb_ary_entry(av, i);
+@@ -1167,15 +1167,15 @@
+ VALUE arglist = *(m->var());
+ if (arglist == Qnil
+ || TYPE(arglist) != T_ARRAY
+- || RARRAY(arglist)->len == 0 )
++ || RARRAY_LEN(arglist) == 0 )
+ {
+ m->item().s_voidp = 0;
+ break;
+ }
+
+- char **argv = new char *[RARRAY(arglist)->len + 1];
++ char **argv = new char *[RARRAY_LEN(arglist) + 1];
+ long i;
+- for(i = 0; i < RARRAY(arglist)->len; i++) {
++ for(i = 0; i < RARRAY_LEN(arglist); i++) {
+ VALUE item = rb_ary_entry(arglist, i);
+ char *s = StringValuePtr(item);
+ argv[i] = new char[strlen(s) + 1];
+@@ -1207,7 +1207,7 @@
+ break;
+ }
+
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ TQStringList *stringlist = new QStringList;
+
+ for(long i = 0; i < count; i++) {
+@@ -1269,7 +1269,7 @@
+ break;
+ }
+
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ TQStrList *stringlist = new QStrList;
+
+ for(long i = 0; i < count; i++) {
+@@ -1278,7 +1278,7 @@
+ stringlist->append(TQString());
+ continue;
+ }
+- stringlist->append(TQString::fromUtf8(StringValuePtr(item), RSTRING(item)->len));
++ stringlist->append(TQString::fromUtf8(StringValuePtr(item), RSTRING_LEN(item)));
+ }
+
+ m->item().s_voidp = stringlist;
+@@ -1331,7 +1331,7 @@
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ ItemList *cpplist = new ItemList;
+ long i;
+ for(i = 0; i < count; i++) {
+@@ -1421,7 +1421,7 @@
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ TQValueList<int> *valuelist = new TQValueList<int>;
+ long i;
+ for(i = 0; i < count; i++) {
+@@ -1513,7 +1513,7 @@
+ // Convert the ruby hash to an array of key/value arrays
+ VALUE temp = rb_funcall(hash, rb_intern("to_a"), 0);
+
+- for (long i = 0; i < RARRAY(temp)->len; i++) {
++ for (long i = 0; i < RARRAY_LEN(temp); i++) {
+ VALUE key = rb_ary_entry(rb_ary_entry(temp, i), 0);
+ VALUE value = rb_ary_entry(rb_ary_entry(temp, i), 1);
+ (*map)[TQString(StringValuePtr(key))] = TQString(StringValuePtr(value));
+@@ -1569,7 +1569,7 @@
+ // Convert the ruby hash to an array of key/value arrays
+ VALUE temp = rb_funcall(hash, rb_intern("to_a"), 0);
+
+- for (long i = 0; i < RARRAY(temp)->len; i++) {
++ for (long i = 0; i < RARRAY_LEN(temp); i++) {
+ VALUE key = rb_ary_entry(rb_ary_entry(temp, i), 0);
+ VALUE value = rb_ary_entry(rb_ary_entry(temp, i), 1);
+
+@@ -1673,7 +1673,7 @@
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ QRgb *rgb = new QRgb[count + 2];
+ long i;
+ for(i = 0; i < count; i++) {
+@@ -1702,7 +1702,7 @@
+ case Marshall::FromVALUE:
+ {
+ VALUE list = *(m->var());
+- if (TYPE(list) != T_ARRAY || RARRAY(list)->len != 2) {
++ if (TYPE(list) != T_ARRAY || RARRAY_LEN(list) != 2) {
+ m->item().s_voidp = 0;
+ break;
+ }
+@@ -1770,7 +1770,7 @@
+ m->item().s_voidp = 0;
+ break;
+ }
+- int count = RARRAY(list)->len;
++ int count = RARRAY_LEN(list);
+ ItemList *cpplist = new ItemList;
+ long i;
+ for(i = 0; i < count; i++) {