$NetBSD: patch-ab,v 1.2 2003/08/30 02:55:03 taca Exp $

--- FXRuby.cpp.orig	2003-08-30 03:32:27.000000000 +0200
+++ FXRuby.cpp	2003-08-30 03:34:48.000000000 +0200
@@ -42,6 +42,9 @@
 #include <io.h>		// for get_osf_handle()
 #endif
 
+#define RB_BPROC(func) ((VALUE (*)(...))func)
+#define RB_RPROC(func) ((VALUE (*)(...))func)
+
 #ifdef HAVE_SIGNAL_H
 #include <signal.h>	// for definitions of SIGINT, etc.
 #endif
@@ -1085,12 +1088,12 @@
 
   if(FXRbCatchExceptions){
 #ifdef RB_RESCUE2_BROKEN_PROTOTYPE
-    retval=rb_rescue2((VALUE(*)()) handle_body, reinterpret_cast<VALUE>(&hArgs),
-                      (VALUE(*)()) handle_rescue, Qnil,
+    retval=rb_rescue2((VALUE(*)()) RB_BPROC(handle_body), reinterpret_cast<VALUE>(&hArgs),
+                      (VALUE(*)()) RB_RPROC(handle_rescue), Qnil,
                       rb_eStandardError, rb_eNameError, 0);
 #else
-    retval=rb_rescue2((VALUE(*)(ANYARGS)) handle_body, reinterpret_cast<VALUE>(&hArgs),
-                      (VALUE(*)(ANYARGS)) handle_rescue, Qnil,
+    retval=rb_rescue2((VALUE(*)(ANYARGS)) RB_BPROC(handle_body), reinterpret_cast<VALUE>(&hArgs),
+                      (VALUE(*)(ANYARGS)) RB_RPROC(handle_rescue), Qnil,
                       rb_eStandardError, rb_eNameError, 0);
 #endif
     }
