gnugo-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [gnugo-devel] `view.pike' and Pike 7.6


From: Paul Pogonyshev
Subject: Re: [gnugo-devel] `view.pike' and Pike 7.6
Date: Sun, 12 Sep 2004 01:27:14 -0200
User-agent: KMail/1.4.3

I wrote:

> Gunnar wrote:
> > I'm pretty sure that Pike only works with GTK+ 1.2, but I would have
> > guessed that the differences are too big for it to even run (or build)
> > if they get mixed up.
>
> Yes, I remembered that afterwards.  So it uses 1.2.10.  Still
> don't know what is going wrong.

The patch below works for me.  Please check that it doesn't
cause unwanted behaviour (i.e. warnings or errors) on your
systems.  If everything is OK, I'll commit it.

Paul


--- view.pike   10 Sep 2004 23:45:26 -0200      1.13
+++ view.pike   12 Sep 2004 01:24:13 -0200      
@@ -428,21 +428,27 @@ string font_filename = "";
 
 int main(int argc, array(string) argv)
 {
+    if (argc != 2) {
+       werror("Usage: %s TEST-FILE:TEST-NUMBER\n", basename(argv[0]));
+       return 1;
+    }
+
     if (!find_font())
        return 1;
-    
+
     SimpleGtp engine = SimpleGtp("../interface/gnugo --quiet --mode gtp -w -t 
-d0x101840" / " ");
     if (!engine)
     {
        werror("Failed to start engine.");
        return 1;
     }
-    
+
     GTK.setup_gtk(argv);
     Controller controller = Controller(engine, argv[1]);
-    
-    return -1;
 
+    GTK.main();
+
+    return 0;
 }
 
 array(string) recursive_find_files(string dir, string suffix)
@@ -1275,6 +1281,8 @@ class Controller
     // testcase correctly.
     array(string) complete_testcase;
 
+    static mixed nasty_signal_id;
+
     static void create(SimpleGtp engine_, string testcase)
     {
        if (!excerpt_testcase(testcase, engine_))
@@ -1325,8 +1333,8 @@ class Controller
        }
 
        main_window->set_title(testcase);
-       main_window->signal_connect("destroy", exit, 0);
-       
+       main_window->signal_connect_new("destroy", quit);
+
        if (has_prefix(testcase_command, "reg_genmove")
            || has_prefix(testcase_command, "restricted_genmove"))
        {
@@ -1557,7 +1565,8 @@ class Controller
        controller_notebook->append_page(engines_page->set_border_width(12),
                                         GTK.Label("engines"));
 
-       controller_notebook->signal_connect_new("switch_page", add_markup);
+       nasty_signal_id = controller_notebook->signal_connect_new("switch_page",
+                                                                 add_markup);
 
        if (has_prefix(testcase_command, "reg_genmove")
            || has_prefix(testcase_command, "restricted_genmove")) {
@@ -1623,7 +1632,7 @@ class Controller
        }
        else {
            GTK.Widget board_window = GTK.Window(GTK.WindowToplevel);
-           board_window->signal_connect("destroy", exit, 0);
+           board_window->signal_connect_new("destroy", quit);
 
            board_window->add(viewer->goban_widget);
            board_window->set_title(testcase_name);
@@ -1919,6 +1928,13 @@ class Controller
     {
        write("Debug callback:%O\n", args);
     }
+
+    static void quit()
+    {
+       // Otherwise Pike errors occur.
+       controller_notebook->signal_disconnect(nasty_signal_id);
+       GTK.main_quit();
+    }
 }
 
 





reply via email to

[Prev in Thread] Current Thread [Next in Thread]