Description: update for Gauche 0.9
Author: NIIBE Yutaka <gniibe@fsij.org>
Reviewed-By: NIIBE Yutaka <gniibe@fsij.org>
Last-Update: 2010-03-19

--- gauche-gtk-0.4.1.orig/src/gauche-gtk.c	2004-03-19 06:21:37.000000000 +0900
+++ gauche-gtk-0.4.1/src/gauche-gtk.c	2010-03-17 17:35:00.000000000 +0900
@@ -447,7 +447,7 @@
 {
     ScmObj sargs = SCM_OBJ(data);
     SCM_ASSERT(SCM_PAIRP(sargs));
-    return Scm_Apply(SCM_CAR(sargs), SCM_CDR(sargs));
+    return Scm_ApplyRec(SCM_CAR(sargs), SCM_CDR(sargs));
 }
 static SCM_DEFINE_STRING_CONST(callcallback_thunk__NAME,
                                "%gtk-call-callback-thunk", 24, 24);
@@ -665,7 +665,7 @@
     for (i=0; i<nparams; i++) {
         SCM_APPEND1(argh, argt, Scm_UnboxGValue(params+i));
     }
-    ret = Scm_Apply(SCM_CALL_CALLBACK,
+    ret = Scm_ApplyRec(SCM_CALL_CALLBACK,
                     SCM_LIST2(SCM_OBJ(proc), argh));
     if (retval) Scm_BoxGValue(retval, ret);
 }
@@ -691,7 +691,7 @@
 {
     ScmObj r;
     SCM_ASSERT(closure != NULL && SCM_PROCEDUREP(closure));
-    r = Scm_Apply(SCM_OBJ(&callcallback_proc__STUB),
+    r = Scm_ApplyRec(SCM_OBJ(&callcallback_proc__STUB),
                   SCM_LIST2(SCM_OBJ(closure), SCM_NIL));
     return SCM_BOOL_VALUE(r);
 }
@@ -699,7 +699,7 @@
 /* More general version.  Returns a list of values. */
 ScmObj Scm_GtkApply(ScmObj proc, ScmObj args)
 {
-    Scm_Apply(SCM_OBJ(&callcallback_proc__STUB),
+    Scm_ApplyRec(SCM_OBJ(&callcallback_proc__STUB),
               SCM_LIST2(proc, args));
     return Scm_VMGetResult(Scm_VM());
 }
@@ -729,6 +729,9 @@
     return FALSE;
 }
 
+#undef SCM_SIGPENDING
+#define SCM_SIGPENDING(vm) (vm->signalPending)
+
 static gboolean scm_signal_check(GSource *source)
 {
     ScmVM *vm = Scm_VM();
--- gauche-gtk-0.4.1.orig/glgd/glgdGraph.c
+++ gauche-gtk-0.4.1/glgd/glgdGraph.c
@@ -590,7 +590,7 @@ glgdGraphMouseButtonCB(GtkWidget *widget
     fn = graph->fn[GLGDGRAPH_FN_MOUSE_LEFT];
     if (fn && event->button == 1)
     {
-        Scm_Apply(fn, SCM_LIST4(
+        Scm_ApplyRec(fn, SCM_LIST4(
             SCM_OBJ(SCM_MAKE_GLGD_GRAPH(graph)),
             SCM_OBJ(SCM_MAKE_GLGD_NODE(graph->hoverNode)),
             SCM_OBJ(SCM_MAKE_GLGD_LINK(graph->hoverLink)),
@@ -599,7 +599,7 @@ glgdGraphMouseButtonCB(GtkWidget *widget
     fn = graph->fn[GLGDGRAPH_FN_MOUSE_MIDDLE];
     if (fn && event->button == 2)
     {
-        Scm_Apply(fn, SCM_LIST4(
+        Scm_ApplyRec(fn, SCM_LIST4(
             SCM_OBJ(SCM_MAKE_GLGD_GRAPH(graph)),
             SCM_OBJ(SCM_MAKE_GLGD_NODE(graph->hoverNode)),
             SCM_OBJ(SCM_MAKE_GLGD_LINK(graph->hoverLink)),
@@ -608,7 +608,7 @@ glgdGraphMouseButtonCB(GtkWidget *widget
     fn = graph->fn[GLGDGRAPH_FN_MOUSE_RIGHT];
     if (fn && event->button == 3)
     {
-        Scm_Apply(fn, SCM_LIST4(
+        Scm_ApplyRec(fn, SCM_LIST4(
             SCM_OBJ(SCM_MAKE_GLGD_GRAPH(graph)),
             SCM_OBJ(SCM_MAKE_GLGD_NODE(graph->hoverNode)),
             SCM_OBJ(SCM_MAKE_GLGD_LINK(graph->hoverLink)),
@@ -695,7 +695,7 @@ glgdGraphMouseMotionCB(GtkWidget *widget
     fn = graph->fn[GLGDGRAPH_FN_MOUSE_HOVER];
     if (fn)
     {
-        Scm_Apply(fn, SCM_LIST4(
+        Scm_ApplyRec(fn, SCM_LIST4(
             SCM_OBJ(SCM_MAKE_GLGD_GRAPH(graph)),
             SCM_OBJ(SCM_MAKE_GLGD_NODE(graph->hoverNode)),
             SCM_OBJ(SCM_MAKE_GLGD_LINK(graph->hoverLink)),
@@ -742,7 +742,7 @@ glgdGraphMouseScrollCB(GtkWidget *widget
     fn = graph->fn[GLGDGRAPH_FN_MOUSE_SCROLL];
     if (fn)
     {
-        Scm_Apply(fn, SCM_LIST4(
+        Scm_ApplyRec(fn, SCM_LIST4(
             SCM_OBJ(SCM_MAKE_GLGD_GRAPH(graph)),
             SCM_OBJ(SCM_MAKE_GLGD_NODE(graph->hoverNode)),
             SCM_OBJ(SCM_MAKE_GLGD_LINK(graph->hoverLink)),
@@ -794,7 +794,7 @@ glgdGraphKeyCB(GtkWidget *widget, GdkEve
     keyFn = graph->fn[GLGDGRAPH_FN_KEY];
     if (keyFn != NULL)
     {
-        Scm_Apply(keyFn, SCM_LIST4(
+        Scm_ApplyRec(keyFn, SCM_LIST4(
             SCM_OBJ(SCM_MAKE_GLGD_GRAPH(graph)),
             SCM_OBJ(SCM_MAKE_GLGD_NODE(graph->hoverNode)),
             SCM_OBJ(SCM_MAKE_GLGD_LINK(graph->hoverLink)),
--- gauche-gtk-0.4.1.orig/glgd/glgdNode.c	2004-03-15 04:54:24.000000000 +0900
+++ gauche-gtk-0.4.1/glgd/glgdNode.c	2010-03-17 17:55:36.000000000 +0900
@@ -207,7 +207,7 @@
     {
         if (prFn != NULL)
         {
-            Scm_Apply(prFn, SCM_LIST1(SCM_OBJ(SCM_MAKE_GLGD_NODE(node))));
+            Scm_ApplyRec(prFn, SCM_LIST1(SCM_OBJ(SCM_MAKE_GLGD_NODE(node))));
         }
 
         glgdNodeDrawBox(node, dim, renderMode);
--- gauche-gtk-0.4.1.orig/src/gtk-lib.hints	2010-03-19 13:45:26.000000000 +0900
+++ gauche-gtk-0.4.1/src/gtk-lib.hints	2010-03-19 14:07:27.000000000 +0900
@@ -66,7 +66,7 @@
  "static gboolean accel_group_finder(GtkAccelKey *key, GClosure *clo,
                                      gpointer data)
  {
-   ScmObj r = Scm_Apply(SCM_OBJ(data), SCM_LIST1(SCM_MAKE_GTK_ACCEL_KEY(key)));
+   ScmObj r = Scm_ApplyRec(SCM_OBJ(data), SCM_LIST1(SCM_MAKE_GTK_ACCEL_KEY(key)));
    return (!SCM_FALSEP(r));
  }")
 
@@ -990,7 +990,7 @@
   SCM_RETURN(SCM_UNDEFINED);"))
 
 (define-cproc gtk-radio-group->list (group::<gtk-radio-group>)
-  (return "Scm_GtkRadioGroupToList"))
+  Scm_GtkRadioGroupToList)
 
 ;;==================================================================
 ;; gtkradiomenuitem
@@ -1426,7 +1426,7 @@
                                               GtkTreeIter *iter,
                                               gpointer data)
  {
-   Scm_Apply(SCM_OBJ(data),
+   Scm_ApplyRec(SCM_OBJ(data),
              SCM_LIST3(SCM_MAKE_GTK_TREE_MODEL(model),
                        SCM_MAKE_GTK_TREE_PATH(path),
                        SCM_MAKE_GTK_TREE_ITER(iter)));
@@ -1640,50 +1640,50 @@
 
 ;; these defined as macro in C
 (define-cproc gtk-widget-flags (widget::<gtk-widget>)
-  (return <ulong> "GTK_WIDGET_FLAGS"))
+ ::<ulong> GTK_WIDGET_FLAGS)
 (define-cproc gtk-widget-toplevel? (widget::<gtk-widget>)
-  (return <boolean> "GTK_WIDGET_TOPLEVEL"))
+  ::<boolean> GTK_WIDGET_TOPLEVEL)
 (define-cproc gtk-widget-no-window? (widget::<gtk-widget>)
-  (return <boolean> "GTK_WIDGET_NO_WINDOW"))
+  ::<boolean> GTK_WIDGET_NO_WINDOW)
 (define-cproc gtk-widget-realized? (widget::<gtk-widget>)
-  (return <boolean> "GTK_WIDGET_REALIZED"))
+  ::<boolean> GTK_WIDGET_REALIZED)
 (define-cproc gtk-widget-mapped? (widget::<gtk-widget>)
-  (return <boolean> "GTK_WIDGET_MAPPED"))
+  ::<boolean> GTK_WIDGET_MAPPED)
 (define-cproc gtk-widget-visible? (widget::<gtk-widget>)
-  (return <boolean> "GTK_WIDGET_VISIBLE"))
+  ::<boolean> GTK_WIDGET_VISIBLE)
 (define-cproc gtk-widget-drawable? (widget::<gtk-widget>)
-  (return <boolean> "GTK_WIDGET_DRAWABLE"))
+  ::<boolean> GTK_WIDGET_DRAWABLE)
 (define-cproc gtk-widget-sensitive? (widget::<gtk-widget>)
-  (return <boolean> "GTK_WIDGET_SENSITIVE"))
+  ::<boolean> GTK_WIDGET_SENSITIVE)
 (define-cproc gtk-widget-parent-sensitive? (widget::<gtk-widget>)
-  (return <boolean> "GTK_WIDGET_PARENT_SENSITIVE"))
+  ::<boolean> GTK_WIDGET_PARENT_SENSITIVE)
 (define-cproc gtk-widget-is-sensitive? (widget::<gtk-widget>)
-  (return <boolean> "GTK_WIDGET_IS_SENSITIVE"))
+  ::<boolean> GTK_WIDGET_IS_SENSITIVE)
 (define-cproc gtk-widget-can-focus? (widget::<gtk-widget>)
-  (return <boolean> "GTK_WIDGET_CAN_FOCUS"))
+  ::<boolean> GTK_WIDGET_CAN_FOCUS)
 (define-cproc gtk-widget-has-focus? (widget::<gtk-widget>)
-  (return <boolean> "GTK_WIDGET_HAS_FOCUS"))
+  ::<boolean> GTK_WIDGET_HAS_FOCUS)
 (define-cproc gtk-widget-can-default? (widget::<gtk-widget>)
-  (return <boolean> "GTK_WIDGET_CAN_DEFAULT"))
+  ::<boolean> GTK_WIDGET_CAN_DEFAULT)
 (define-cproc gtk-widget-has-default? (widget::<gtk-widget>)
-  (return <boolean> "GTK_WIDGET_HAS_DEFAULT"))
+  ::<boolean> GTK_WIDGET_HAS_DEFAULT)
 (define-cproc gtk-widget-has-grab? (widget::<gtk-widget>)
-  (return <boolean> "GTK_WIDGET_HAS_GRAB"))
+  ::<boolean> GTK_WIDGET_HAS_GRAB)
 (define-cproc gtk-widget-rc-style? (widget::<gtk-widget>)
-  (return <boolean> "GTK_WIDGET_RC_STYLE"))
+  ::<boolean> GTK_WIDGET_RC_STYLE)
 (define-cproc gtk-widget-composite-child? (widget::<gtk-widget>)
-  (return <boolean> "GTK_WIDGET_COMPOSITE_CHILD"))
+  ::<boolean> GTK_WIDGET_COMPOSITE_CHILD)
 (define-cproc gtk-widget-app-paintable? (widget::<gtk-widget>)
-  (return <boolean> "GTK_WIDGET_APP_PAINTABLE"))
+  ::<boolean> GTK_WIDGET_APP_PAINTABLE)
 (define-cproc gtk-widget-receives-default? (widget::<gtk-widget>)
-  (return <boolean> "GTK_WIDGET_RECEIVES_DEFAULT"))
+  ::<boolean> GTK_WIDGET_RECEIVES_DEFAULT)
 (define-cproc gtk-widget-double-buffered? (widget::<gtk-widget>)
-  (return <boolean> "GTK_WIDGET_DOUBLE_BUFFERED"))
+  ::<boolean> GTK_WIDGET_DOUBLE_BUFFERED)
 
 (define-cproc gtk-widget-set-flags (widget::<gtk-widget> flag::<ulong>)
-  (return <void> "GTK_WIDGET_SET_FLAGS"))
+  ::<void> GTK_WIDGET_SET_FLAGS)
 (define-cproc gtk-widget-unset-flags (widget::<gtk-widget> flag::<ulong>)
-  (return <void> "GTK_WIDGET_UNSET_FLAGS"))
+  ::<void> GTK_WIDGET_UNSET_FLAGS)
 
 (define-cproc-fix gtk-widget-list-accel-closures
   (fix-body! "GList *lis = gtk_widget_list_accel_closures(widget);
--- gauche-gtk-0.4.1.orig/src/h2stub.scm	2010-03-18 11:46:03.000000000 +0900
+++ gauche-gtk-0.4.1/src/h2stub.scm	2010-03-18 11:50:04.000000000 +0900
@@ -1099,7 +1099,7 @@
                        '()))
            (sig    `(define-cproc ,s-name ,args
                       ,(or (body-of self)
-                           `(return ,@ret ,(x->string (c-name-of self))))))
+                           `(call ,@ret ,(x->string (c-name-of self))))))
            )
       (if unknown-arg?
           (print (commenter sig))
--- gauche-gtk-0.4.1.orig/src/gauche-glib.stub	2003-01-20 11:37:21.000000000 +0900
+++ gauche-gtk-0.4.1/src/gauche-glib.stub	2010-03-18 12:16:56.000000000 +0900
@@ -75,15 +75,15 @@
 
 (define-cproc g-signal-handler-disconnect (object::<g-object>
                                            id::<ulong>)
-  (return <void> "g_signal_handler_disconnect"))
+  ::<void> g_signal_handler_disconnect)
 
 (define-cproc g-signal-handler-block (object::<g-object>
                                       id::<ulong>)
-  (return <void> "g_signal_handler_block"))
+  ::<void> g_signal_handler_block)
 
 (define-cproc g-signal-handler-unblock (object::<g-object>
                                         id::<ulong>)
-  (return <void> "g_signal_handler_unblock"))
+  ::<void> g_signal_handler_unblock)
 
 ;; NB: no block_by_func or unblock_by_func.
 
@@ -95,20 +95,16 @@
   ()
   ())
 
-(define-cproc g-timer-new ()
-  (return <g-timer> "g_timer_new"))
+(define-cproc g-timer-new () ::<g-timer> g_timer_new)
 
-(define-cproc g-timer-start (timer::<g-timer>)
-  (return <void> "g_timer_start"))
+(define-cproc g-timer-start (timer::<g-timer>) ::<void> g_timer_start)
 
-(define-cproc g-timer-stop (timer::<g-timer>)
-  (return <void> "g_timer_stop"))
+(define-cproc g-timer-stop (timer::<g-timer>) ::<void> g_timer_stop)
 
 (define-cproc g-timer-elapsed (timer::<g-timer>)
   "SCM_RETURN(Scm_MakeFlonum(g_timer_elapsed(timer, NULL)));")
 
-(define-cproc g-timer-reset (timer::<g-timer>)
-  (return <void> "g_timer_reset"))
+(define-cproc g-timer-reset (timer::<g-timer>) ::<void> g_timer_reset)
 
 ;; Local variables:
 ;; mode: scheme
--- gauche-gtk-0.4.1.orig/src/pango-lib.hints	2004-06-27 12:49:05.000000000 +0900
+++ gauche-gtk-0.4.1/src/pango-lib.hints	2010-03-18 12:39:30.000000000 +0900
@@ -361,8 +361,7 @@
 (define-enum PANGO_SCALE)
 
 ;; These are macros in C
-(define-cproc pango-pixels (d::<int>)
-  (return <int> "PANGO_PIXELS"))
+(define-cproc pango-pixels (d::<int>) ::<int> PANGO_PIXELS)
 
 (define-cproc pango-ascent (rect::<pango-rectangle>)
   "SCM_RETURN(SCM_MAKE_INT(PANGO_ASCENT(*rect)));")
--- gauche-gtk-0.4.1.orig/glgd/glgdlib.stub	2004-03-15 05:59:49.000000000 +0900
+++ gauche-gtk-0.4.1/glgd/glgdlib.stub	2010-03-18 12:33:52.000000000 +0900
@@ -35,108 +35,102 @@
 (define-enum GLGDNODE_FLAG_SELECTED)
 
 (define-cproc glgd-node-create ()
-  (return <glgd-node> "glgdNodeCreate"))
+  ::<glgd-node> glgdNodeCreate)
   
 (define-cproc glgd-node-destroy (node::<glgd-node>)
-  (return <glgd-node> "glgdNodeDestroy"))
+  ::<glgd-node> glgdNodeDestroy)
   
 (define-cproc glgd-node-init (node::<glgd-node>)
-  (return <boolean> "glgdNodeInit"))
+  ::<boolean> glgdNodeInit)
 
 (define-cproc glgd-node-label-set (node::<glgd-node> label::<const-char*>)
-  (return <boolean> "glgdNodeLabelSet"))
+  ::<boolean> glgdNodeLabelSet)
   
-(define-cproc glgd-node-label-get (node::<glgd-node>)
-  (return "glgdNodeLabelGet"))
+(define-cproc glgd-node-label-get (node::<glgd-node>) glgdNodeLabelGet)
 
 (define-cproc glgd-node-data-set (node::<glgd-node> data)
-  (return <boolean> "glgdNodeDataSet"))
+  ::<boolean> glgdNodeDataSet)
   
-(define-cproc glgd-node-data-get (node::<glgd-node>)
-  (return "glgdNodeDataGet"))
+(define-cproc glgd-node-data-get (node::<glgd-node>) glgdNodeDataGet)
 
 (define-cproc glgd-node-id-set (node::<glgd-node> id::<int>)
-  (return <boolean> "glgdNodeIDSet"))
+  ::<boolean> glgdNodeIDSet)
   
-(define-cproc glgd-node-id-get (node::<glgd-node>)
-  (return <int> "glgdNodeIDGet"))
+(define-cproc glgd-node-id-get (node::<glgd-node>) ::<int> glgdNodeIDGet)
 
 (define-cproc glgd-node-info-set (node::<glgd-node>
                                   label::<const-char*>
                                   id::<int>)
-  (return <boolean> "glgdNodeInfoSet"))
+  ::<boolean> glgdNodeInfoSet)
 
 (define-cproc glgd-node-flags-set (node::<glgd-node>
                                    mask::<int>
                                    flagop::<int>)
-  (return <boolean> "glgdNodeFlagsSet"))
+  ::<boolean> glgdNodeFlagsSet)
   
 (define-cproc glgd-node-is-selected (node::<glgd-node>)
-  (return <boolean> "glgdNodeIsSelected"))
+  ::<boolean> glgdNodeIsSelected)
                                    
 (define-cproc glgd-node-color-default (r::<double>
                                        g::<double>
                                        b::<double>
                                        a::<double>)
-  (return <void> "glgdNodeColorDefault"))
+  ::<void> glgdNodeColorDefault)
 
 (define-cproc glgd-node-color-set (node::<glgd-node>
                                    r::<double>
                                    g::<double>
                                    b::<double>
                                    a::<double>)
-  (return <boolean> "glgdNodeColorSetByList"))
+  ::<boolean> glgdNodeColorSetByList)
   
 (define-cproc glgd-node-attribute-clear (node::<glgd-node>)
-  (return <boolean> "glgdNodeAttributeClear"))
+  ::<boolean> glgdNodeAttributeClear)
 
 (define-cproc glgd-node-attribute-set (node::<glgd-node>
                                        attrNdx::<int>)
-  (return <boolean> "glgdNodeAttributeSet"))
+  ::<boolean> glgdNodeAttributeSet)
 
 (define-cproc glgd-node-attribute-reset (node::<glgd-node>
                                          attrNdx::<int>)
-  (return <boolean> "glgdNodeAttributeReset"))
+  ::<boolean> glgdNodeAttributeReset)
 
 (define-cproc glgd-node-attribute-is-set (node::<glgd-node>
                                           attrNdx::<int>)
-  (return <boolean> "glgdNodeAttributeIsSet"))
+  ::<boolean> glgdNodeAttributeIsSet)
 
 ;;=================================================================
 ;; glgdLink.h
 ;;
-(define-cproc glgd-link-create ()
-  (return <glgd-link> "glgdLinkCreate"))
+(define-cproc glgd-link-create () ::<glgd-link> glgdLinkCreate)
   
 (define-cproc glgd-link-destroy (link::<glgd-link>)
-  (return <glgd-link> "glgdLinkDestroy"))
+  ::<glgd-link> glgdLinkDestroy)
   
-(define-cproc glgd-link-init (link::<glgd-link>)
-  (return <boolean> "glgdLinkInit"))
+(define-cproc glgd-link-init (link::<glgd-link>) ::<boolean> glgdLinkInit)
   
 (define-cproc glgd-link-set (link::<glgd-link>
                               src::<glgd-node>
                               dst::<glgd-node>)
-  (return <boolean> "glgdLinkSet"))
+  ::<boolean> glgdLinkSet)
   
 (define-cproc glgd-link-flags-set (link::<glgd-link>
                                    mask::<int>
                                    flagop::<int>)
-  (return <boolean> "glgdLinkFlagsSet"))
+  ::<boolean> glgdLinkFlagsSet)
                                    
-(define-cproc glgd-link-list-create ()
-  (return <glgd-link-list> "glgdLinkListCreate"))
+(define-cproc glgd-link-list-create () ::<glgd-link-list> glgdLinkListCreate)
   
 (define-cproc glgd-link-list-destroy (list::<glgd-link-list>)
-  (return <glgd-link-list> "glgdLinkListDestroy"))
+  ::<glgd-link-list> glgdLinkListDestroy)
   
 (define-cproc glgd-link-list-init (list::<glgd-link-list>)
-  (return <boolean> "glgdLinkListInit"))
+  ::<boolean> glgdLinkListInit)
   
 (define-cproc glgd-link-list-flags-set (list::<glgd-link-list>
                                         mask::<int>
                                         flagop::<int>)
-  (return <boolean> "glgdLinkListFlagsSet"))
+  ::<boolean> glgdLinkListFlagsSet)
 
 ;;=================================================================
 ;; glgdGraph.h
@@ -152,147 +146,138 @@
 (define-enum GLGDGRAPH_FLAG_ESCPRESSED)
 (define-enum GLGDGRAPH_FLAG_PANGOBOLD)
 
-(define-cproc glgd-graph-create ()
-  (return <glgd-graph> "glgdGraphCreate"))
+(define-cproc glgd-graph-create () ::<glgd-graph> glgdGraphCreate)
 
 (define-cproc glgd-graph-destroy (graph::<glgd-graph>)
-  (return <glgd-graph> "glgdGraphDestroy"))
+  ::<glgd-graph> glgdGraphDestroy)
 
-(define-cproc glgd-graph-init (graph::<glgd-graph>)
-  (return <boolean> "glgdGraphInit"))
+(define-cproc glgd-graph-init (graph::<glgd-graph>) ::<boolean> glgdGraphInit)
 
-(define-cproc glgd-graph-fini (graph::<glgd-graph>)
-  (return <boolean> "glgdGraphFini"))
+(define-cproc glgd-graph-fini (graph::<glgd-graph>) ::<boolean> glgdGraphFini)
   
-(define-cproc glgd-graph-draw (graph::<glgd-graph>)
-  (return <boolean> "glgdGraphDraw"))
+(define-cproc glgd-graph-draw (graph::<glgd-graph>) ::<boolean> glgdGraphDraw)
   
-(define-cproc glgd-graph-frame (graph::<glgd-graph>)
-  (return <boolean> "glgdGraphFrame"))
+(define-cproc glgd-graph-frame (graph::<glgd-graph>) ::<boolean> glgdGraphFrame)
 
 (define-cproc glgd-graph-invalidate (graph::<glgd-graph>)
-  (return <boolean> "glgdGraphInvalidate"))
+  ::<boolean> glgdGraphInvalidate)
 
 (define-cproc glgd-graph-reshape (graph::<glgd-graph>)
-  (return <boolean> "glgdGraphReshape"))
+  ::<boolean> glgdGraphReshape)
 
 ;; NB: the three-argument variant is kept only for backward compatibility.
 (define-cproc glgd-graph-connect (graph::<glgd-graph>
                                   widget::<gtk-widget>
                                   &optional w2)
-  "int r;
-  if (SCM_UNBOUNDP(w2)) {
-     r = glgdGraphConnect(graph, widget);
-  } else {
-     r = glgdGraphConnect3(graph, widget, w2);
-  }
-  SCM_RETURN(SCM_MAKE_BOOL(r));")
+  ::<boolean>
+  (if (SCM_UNBOUNDP w2)
+    (glgdGraphConnect graph widget)
+    (glgdGraphConnect3 graph widget w2)))
 
 (define-cproc glgd-graph-translate (graph::<glgd-graph>
                                     x::<double>
                                     y::<double>)
-  (return <boolean> "glgdGraphTranslate"))
+  ::<boolean> glgdGraphTranslate)
   
 (define-cproc glgd-graph-center (graph::<glgd-graph>)
-  (return <boolean> "glgdGraphCenter"))
+  ::<boolean> glgdGraphCenter)
                                     
 (define-cproc glgd-graph-auto-organize (graph::<glgd-graph>
                                         x::<double>
                                         y::<double>)
-  (return <boolean> "glgdGraphAutoOrganizeXY"))
+  ::<boolean> glgdGraphAutoOrganizeXY)
   
 (define-cproc glgd-graph-node-by-id (graph::<glgd-graph> node-id::<int>)
-  (return <glgd-node> "glgdGraphNodeByID"))
+  ::<glgd-node> glgdGraphNodeByID)
 
 (define-cproc glgd-graph-node-selected (graph::<glgd-graph>
                                         select-index::<int>)
-  (return <glgd-node> "glgdGraphNodeSelected"))
+  ::<glgd-node> glgdGraphNodeSelected)
 
 (define-cproc glgd-graph-node-select-count (graph::<glgd-graph>)
-  (return <int> "glgdGraphNodeSelectCount"))
+  ::<int> glgdGraphNodeSelectCount)
 
 (define-cproc glgd-graph-node-count (graph::<glgd-graph>)
-  (return <int> "glgdGraphNodeCount"))
+  ::<int> glgdGraphNodeCount)
 
 (define-cproc glgd-graph-node-add (graph::<glgd-graph>
                                     node::<glgd-node>)
-  (return <boolean> "glgdGraphNodeAdd"))
+  ::<boolean> glgdGraphNodeAdd)
   
 (define-cproc glgd-graph-node-list-flag (graph::<glgd-graph>
                                          flag-mask::<int>
                                          flag-op::<int>)
-  (return <boolean> "glgdGraphNodeListFlag"))
+  ::<boolean> glgdGraphNodeListFlag)
   
 (define-cproc glgd-graph-link-list-add (graph::<glgd-graph>
                                         list::<glgd-link-list>)
-  (return <boolean> "glgdGraphLinkListAdd"))
+  ::<boolean> glgdGraphLinkListAdd)
 
 (define-cproc glgd-graph-link-list-dump (graph::<glgd-graph>)
-  (return <boolean> "glgdGraphLinkListDump"))
+  ::<boolean> glgdGraphLinkListDump)
 
 (define-cproc glgd-graph-link-add (graph::<glgd-graph>
                                    list::<glgd-link-list>
                                    link::<glgd-link>)
-  (return <boolean> "glgdGraphLinkAdd"))
+  ::<boolean> glgdGraphLinkAdd)
 
 (define-cproc glgd-graph-link-index (graph::<glgd-graph>
                                      link::<glgd-link>)
-  (return <int> "glgdGraphLinkNdx"))
+  ::<int> glgdGraphLinkNdx)
                                  
 (define-cproc glgd-graph-link-by-index (graph::<glgd-graph>
                                         index::<int>)
-  (return <glgd-link> "glgdGraphLinkByNdx"))
+  ::<glgd-link> glgdGraphLinkByNdx)
                                  
 (define-cproc glgd-graph-callback-set (graph::<glgd-graph>
                                        fn-type::<int>
                                        fn)
-  (return <boolean> "glgdGraphCallbackSet"))
+  ::<boolean> glgdGraphCallbackSet)
   
 (define-cproc glgd-graph-flags-set (graph::<glgd-graph>
                                     flag-mask::<int>
                                     flag-op::<int>)
-  (return <boolean> "glgdGraphFlagsSet"))
+  ::<boolean> glgdGraphFlagsSet)
 
 (define-cproc glgd-graph-dim-set (graph::<glgd-graph>
                                   w::<double>
                                   h::<double>)
-  (return <boolean> "glgdGraphDimSetByList"))
+  ::<boolean> glgdGraphDimSetByList)
   
 (define-cproc glgd-graph-margin-set (graph::<glgd-graph>
                                      margin::<double>)
-  (return <boolean> "glgdGraphMarginSet"))
+  ::<boolean> glgdGraphMarginSet)
   
 (define-cproc glgd-graph-margin-get (graph::<glgd-graph>)
-  (return <double> "glgdGraphMarginGet"))
+  ::<double> glgdGraphMarginGet)
 
 (define-cproc glgd-graph-line-color-set (graph::<glgd-graph>
                                          r::<double>
                                          g::<double>
                                          b::<double>
                                          a::<double>)
-  (return <boolean> "glgdGraphLineColorSetByList"))  
+  ::<boolean> glgdGraphLineColorSetByList)  
   
 (define-cproc glgd-graph-attribute-clear (graph::<glgd-graph>)
-  (return <boolean> "glgdGraphAttributeClear"))
+  ::<boolean> glgdGraphAttributeClear)
 
 (define-cproc glgd-graph-attribute-set (graph::<glgd-graph>
                                         attrNdx::<int>)
-  (return <boolean> "glgdGraphAttributeSet"))
+  ::<boolean> glgdGraphAttributeSet)
 
 (define-cproc glgd-graph-attribute-toggle (graph::<glgd-graph>
                                            attrNdx::<int>)
-  (return <boolean> "glgdGraphAttributeToggle"))
+  ::<boolean> glgdGraphAttributeToggle)
 
 (define-cproc glgd-graph-attribute-reset (graph::<glgd-graph>
                                           attrNdx::<int>)
-  (return <boolean> "glgdGraphAttributeReset"))
+  ::<boolean> glgdGraphAttributeReset)
 
 (define-cproc glgd-graph-attribute-is-set (graph::<glgd-graph>
                                            attrNdx::<int>)
-  (return <boolean> "glgdGraphAttributeIsSet"))
+  ::<boolean> glgdGraphAttributeIsSet)
   
-(define-cproc glgd-verbosity (level::<int>)
-  (return <int> "glgdVerbosity"))
+(define-cproc glgd-verbosity (level::<int>) ::<int> glgdVerbosity)
 
 ;; Local variables:
 ;; mode: scheme
--- gauche-gtk-0.4.1.orig/gtkgl/gtkgllib.stub	2010-03-18 12:21:39.000000000 +0900
+++ gauche-gtk-0.4.1/gtkgl/gtkgllib.stub	2010-03-18 12:35:54.000000000 +0900
@@ -24,7 +24,7 @@
 ;;
 
 (define-cproc gtk-gl-ext-check-version (major::<int> minor::<int> micro::<int>)
-  (return <boolean> "GDKGLEXT_CHECK_VERSION"))
+  ::<boolean> GDKGLEXT_CHECK_VERSION)
 
 ;;=================================================================
 ;; gdkglwidget.h
@@ -35,30 +35,30 @@
                                             share-list::<gdk-gl-context>-or-null
                                             direct::<boolean>
                                             render-type::<int>)
-  (return <boolean> "gtk_widget_set_gl_capability"))
+  ::<boolean> gtk_widget_set_gl_capability)
 
 (define-cproc gtk-widget-is-gl-capable (widget::<gtk-widget>)
-  (return <boolean> "gtk_widget_is_gl_capable"))
+  ::<boolean> gtk_widget_is_gl_capable)
 
 (define-cproc gtk-widget-get-gl-config (widget::<gtk-widget>)
-  (return <gdk-gl-config> "gtk_widget_get_gl_config"))
+  ::<gdk-gl-config> gtk_widget_get_gl_config)
 
 (if "GTKGLEXT_CHECK_VERSION(0, 7, 0)"
 (define-cproc gtk-widget-create-gl-context (widget::<gtk-widget>
                                             share-list::<gdk-gl-context>-or-null
                                             direct::<boolean>
                                             render-type::<int>)
-  (return <gdk-gl-context> "gtk_widget_create_gl_context"))
+  ::<gdk-gl-context> gtk_widget_create_gl_context)
 )
 
 (define-cproc gtk-widget-get-gl-context (widget::<gtk-widget>)
-  (return <gdk-gl-context> "gtk_widget_get_gl_context"))
+  ::<gdk-gl-context> gtk_widget_get_gl_context)
 
 (define-cproc gtk-widget-get-gl-window (widget::<gtk-widget>)
-  (return <gdk-gl-window> "gtk_widget_get_gl_window"))
+  ::<gdk-gl-window> gtk_widget_get_gl_window)
 
 (define-cproc gtk-widget-get-gl-drawable (widget::<gtk-widget>)
-  (return <gdk-gl-drawable> "gtk_widget_get_gl_drawable"))
+  ::<gdk-gl-drawable> gtk_widget_get_gl_drawable)
 
 ;; Local variables:
 ;; mode: scheme
--- gauche-gtk-0.4.1.orig/gtkgl/gdkgllib.stub	2010-03-18 12:48:35.000000000 +0900
+++ gauche-gtk-0.4.1/gtkgl/gdkgllib.stub	2010-03-18 12:59:25.000000000 +0900
@@ -64,7 +64,7 @@
 ; gdk-gl-config-new-for-screen - not until GdkScreen support
 
 (define-cproc gdk-gl-config-new-by-mode (mode::<int>)
-  (return <gdk-gl-config> "gdk_gl_config_new_by_mode"))
+  ::<gdk-gl-config> gdk_gl_config_new_by_mode)
 
 ; gdk-gl-config-get-screen - not until GdkScreen support
 
@@ -75,34 +75,34 @@
   SCM_RETURN(Scm_Values2(SCM_MAKE_BOOL(r), Scm_MakeInteger(value)));")
 
 (define-cproc gdk-gl-config-get-colormap (glconfig::<gdk-gl-config>)
-  (return <gdk-colormap> "gdk_gl_config_get_colormap"))
+  ::<gdk-colormap> gdk_gl_config_get_colormap)
 
 (define-cproc gdk-gl-config-get-visual (glconfig::<gdk-gl-config>)
-  (return <gdk-visual> "gdk_gl_config_get_visual"))
+  ::<gdk-visual> gdk_gl_config_get_visual)
 
 (define-cproc gdk-gl-config-get-depth (glconfig::<gdk-gl-config>)
-  (return <int> "gdk_gl_config_get_depth"))
+  ::<int> gdk_gl_config_get_depth)
 
 (define-cproc gdk-gl-config-is-rgba (glconfig::<gdk-gl-config>)
-  (return <boolean> "gdk_gl_config_is_rgba"))
+  ::<boolean> gdk_gl_config_is_rgba)
 
 (define-cproc gdk-gl-config-is-double-buffered (glconfig::<gdk-gl-config>)
-  (return <boolean> "gdk_gl_config_is_double_buffered"))
+  ::<boolean> gdk_gl_config_is_double_buffered)
 
 (define-cproc gdk-gl-config-is-stereo (glconfig::<gdk-gl-config>)
-  (return <boolean> "gdk_gl_config_is_stereo"))
+  ::<boolean> gdk_gl_config_is_stereo)
 
 (define-cproc gdk-gl-config-has-alpha (glconfig::<gdk-gl-config>)
-  (return <boolean> "gdk_gl_config_has_alpha"))
+  ::<boolean> gdk_gl_config_has_alpha)
 
 (define-cproc gdk-gl-config-has-depth-buffer (glconfig::<gdk-gl-config>)
-  (return <boolean> "gdk_gl_config_has_depth_buffer"))
+  ::<boolean> gdk_gl_config_has_depth_buffer)
 
 (define-cproc gdk-gl-config-has-stencil-buffer (glconfig::<gdk-gl-config>)
-  (return <boolean> "gdk_gl_config_has_stencil_buffer"))
+  ::<boolean> gdk_gl_config_has_stencil_buffer)
 
 (define-cproc gdk-gl-config-has-accum-buffer (glconfig::<gdk-gl-config>)
-  (return <boolean> "gdk_gl_config_has_accum_buffer"))
+  ::<boolean> gdk_gl_config_has_accum_buffer)
 
 ;;=================================================================
 ;; gdkglcontext.h
@@ -127,7 +127,7 @@
                                   share-list::<gdk-gl-context>-or-null
                                   direct::<boolean>
                                   render-type::<int>)
-  (return <gdk-gl-context> "gdk_gl_context_new"))
+  ::<gdk-gl-context> gdk_gl_context_new)
 )
 (if "!GDKGLEXT_CHECK_VERSION(0, 7, 0)"
 (define-cproc gdk-gl-context-new (gldrawable::<gdk-gl-drawable>
@@ -135,29 +135,29 @@
                                   share-list::<gdk-gl-context>-or-null
                                   direct::<boolean>
                                   render-type::<int>)
-  (return <gdk-gl-context> "gdk_gl_context_new"))
+  ::<gdk-gl-context> gdk_gl_context_new)
 )
 
 (define-cproc gdk-gl-context-copy! (dst::<gdk-gl-context>
                                     src::<gdk-gl-context>
                                     mask::<ulong>)
-  (return <boolean> "gdk_gl_context_copy"))
+  ::<boolean> gdk_gl_context_copy)
 
 (define-cproc gdk-gl-context-get-gl-drawable (glcontext::<gdk-gl-context>)
-  (return <gdk-gl-drawable> "gdk_gl_context_get_gl_drawable"))
+  ::<gdk-gl-drawable> gdk_gl_context_get_gl_drawable)
 
 (define-cproc gdk-gl-context-get-gl-config (glcontext::<gdk-gl-context>)
-  (return <gdk-gl-config> "gdk_gl_context_get_gl_config"))
+  ::<gdk-gl-config> gdk_gl_context_get_gl_config)
 
 (define-cproc gdk-gl-context-is-direct (glcontext::<gdk-gl-context>)
-  (return <boolean> "gdk_gl_context_is_direct"))
+  ::<boolean> gdk_gl_context_is_direct)
 
 (define-cproc gdk-gl-context-get-render-type (glcontext::<gdk-gl-context>)
-  (return <int> "gdk_gl_context_get_render_type"))
+  ::<int> gdk_gl_context_get_render_type)
 
 (if "!GDKGLEXT_CHECK_VERSION(0, 7, 0)"
 (define-cproc gdk-gl-context-get-colormap (glcontext::<gdk-gl-context>)
-  (return <gdk-colormap> "gdk_gl_context_get_colormap"))
+  ::<gdk-colormap> gdk_gl_context_get_colormap)
 )
 
 ;;=================================================================
@@ -174,29 +174,29 @@
 
 (define-cproc gdk-gl-drawable-make-current (gldrawable::<gdk-gl-drawable>
                                             glcontext::<gdk-gl-context>)
-  (return <boolean> "gdk_gl_drawable_make_current"))
+  ::<boolean> gdk_gl_drawable_make_current)
 
 (define-cproc gdk-gl-drawable-is-double-buffered (gldrawable::<gdk-gl-drawable>)
-  (return <boolean> "gdk_gl_drawable_is_double_buffered"))
+  ::<boolean> gdk_gl_drawable_is_double_buffered)
 
 (define-cproc gdk-gl-drawable-swap-buffers (gldrawable::<gdk-gl-drawable>)
-  (return <void> "gdk_gl_drawable_swap_buffers"))
+  ::<void> gdk_gl_drawable_swap_buffers)
 
 (define-cproc gdk-gl-drawable-wait-gl (gldrawable::<gdk-gl-drawable>)
-  (return <void> "gdk_gl_drawable_wait_gl"))
+  ::<void> gdk_gl_drawable_wait_gl)
 
 (define-cproc gdk-gl-drawable-wait-gdk (gldrawable::<gdk-gl-drawable>)
-  (return <void> "gdk_gl_drawable_wait_gdk"))
+  ::<void> gdk_gl_drawable_wait_gdk)
 
 (define-cproc gdk-gl-drawable-gl-begin (gldrawable::<gdk-gl-drawable>
                                         glcontext::<gdk-gl-context>)
-  (return <boolean> "gdk_gl_drawable_gl_begin"))
+  ::<boolean> gdk_gl_drawable_gl_begin)
 
 (define-cproc gdk-gl-drawable-gl-end (gldrawable::<gdk-gl-drawable>)
-  (return <void> "gdk_gl_drawable_gl_end"))
+  ::<void> gdk_gl_drawable_gl_end)
 
 (define-cproc gdk-gl-drawable-get-gl-config (gldrawable::<gdk-gl-drawable>)
-  (return <gdk-gl-config> "gdk_gl_drawable_get_gl_config"))
+  ::<gdk-gl-config> gdk_gl_drawable_get_gl_config)
 
 (define-cproc gdk-gl-drawable-get-size (gldrawable::<gdk-gl-drawable>)
   "gint w, h;
@@ -211,7 +211,7 @@
                                           first::<int>
                                           count::<int>
                                           list-base::<int>)
-  (return <pango-font> "gdk_gl_font_use_pango_font"))
+  ::<pango-font> gdk_gl_font_use_pango_font)
 
 ;;=================================================================
 ;; gdkglpixmap.h
@@ -233,7 +233,7 @@
   SCM_RETURN(SCM_MAKE_GDK_GL_PIXMAP(gdk_gl_pixmap_new(glconfig, pixmap, alist)));")
 
 (define-cproc gdk-gl-pixmap-get-pixmap (glpixmap::<gdk-gl-pixmap>)
-  (return <gdk-drawable> "gdk_gl_pixmap_get_pixmap"))
+  ::<gdk-drawable> gdk_gl_pixmap_get_pixmap)
 
 (define-cproc gdk-pixmap-set-gl-capability (pixmap::<gdk-drawable>
                                             glconfig::<gdk-gl-config>
@@ -242,23 +242,23 @@
   SCM_RETURN(SCM_MAKE_GDK_GL_PIXMAP(gdk_pixmap_set_gl_capability(pixmap, glconfig,alist)));")
 
 (define-cproc gdk-pixmap-usnet-gl-capability (pixmap::<gdk-drawable>)
-  (return <void> "gdk_pixmap_unset_gl_capability"))
+  ::<void> gdk_pixmap_unset_gl_capability)
 
 (define-cproc gdk-pixmap-is-gl-capable (pixmap::<gdk-drawable>)
-  (return <boolean> "gdk_pixmap_is_gl_capable"))
+  ::<boolean> gdk_pixmap_is_gl_capable)
 
 (define-cproc gdk-pixmap_get_gl_pixmap (pixmap::<gdk-drawable>)
-  (return <gdk-gl-pixmap> "gdk_pixmap_get_gl_pixmap"))
+  ::<gdk-gl-pixmap> gdk_pixmap_get_gl_pixmap)
 
 (define-cproc gdk-pixmap_get_gl_drawable (pixmap::<gdk-drawable>)
-  (return <gdk-gl-drawable> "gdk_pixmap_get_gl_drawable"))
+  ::<gdk-gl-drawable> gdk_pixmap_get_gl_drawable)
 
 ;;=================================================================
 ;; gdkglquery.h
 ;;
 
 (define-cproc gdk-gl-query-extension ()
-  (return <boolean> "gdk_gl_query_extension"))
+  ::<boolean> gdk_gl_query_extension)
 
 (define-cproc gdk-gl-query-version ()
   "int major = 0, minor = 0;
@@ -266,7 +266,7 @@
   SCM_RETURN(Scm_Values3(SCM_MAKE_BOOL(r), SCM_MAKE_INT(major), SCM_MAKE_INT(minor)));")
 
 (define-cproc gdk-gl-query-gl-extension (extension::<const-char*>)
-  (return <boolean> "gdk_gl_query_gl_extension"))
+  ::<boolean> gdk_gl_query_gl_extension)
 
 ;;=================================================================
 ;; gdkgltokens.h
@@ -403,7 +403,7 @@
 ;;
 
 (define-cproc gdk-gl-ext-check-version (major::<int> minor::<int> micor::<int>)
-  (return <boolean> "GDKGLEXT_CHECK_VERSION"))
+  ::<boolean> GDKGLEXT_CHECK_VERSION)
 
 ;;=================================================================
 ;; gdkglwindow.h
@@ -425,7 +425,7 @@
   SCM_RETURN(SCM_MAKE_GDK_GL_WINDOW(gdk_gl_window_new(glconfig, window, alist)));")
 
 (define-cproc gdk-gl-window-get-window (glwindow::<gdk-gl-window>)
-  (return <gdk-drawable> "gdk_gl_window_get_window"))
+  ::<gdk-drawable> gdk_gl_window_get_window)
 
 (define-cproc gdk-window-set-gl-capability (window::<gdk-drawable>
                                             glconfig::<gdk-gl-config>
@@ -434,16 +434,16 @@
   SCM_RETURN(SCM_MAKE_GDK_GL_WINDOW(gdk_window_set_gl_capability(window, glconfig,alist)));")
 
 (define-cproc gdk-window-usnet-gl-capability (window::<gdk-drawable>)
-  (return <void> "gdk_window_unset_gl_capability"))
+  ::<void> gdk_window_unset_gl_capability)
 
 (define-cproc gdk-window-is-gl-capable (window::<gdk-drawable>)
-  (return <boolean> "gdk_window_is_gl_capable"))
+  ::<boolean> gdk_window_is_gl_capable)
 
 (define-cproc gdk-window-get-gl-window (window::<gdk-drawable>)
-  (return <gdk-gl-window> "gdk_window_get_gl_window"))
+  ::<gdk-gl-window> gdk_window_get_gl_window)
 
 (define-cproc gdk-window-get-gl-drawable (window::<gdk-drawable>)
-  (return <gdk-gl-drawable> "gdk_window_get_gl_drawable"))
+  ::<gdk-gl-drawable> gdk_window_get_gl_drawable)
 
 
 ;; Local variables:
