antiright-devel
[Top][All Lists]
Advanced

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

[Antiright-devel] antiright configure gtkshell/main.c gtkshell/te...


From: Jeffrey Bedard
Subject: [Antiright-devel] antiright configure gtkshell/main.c gtkshell/te...
Date: Tue, 04 Dec 2007 23:45:30 +0000

CVSROOT:        /sources/antiright
Module name:    antiright
Changes by:     Jeffrey Bedard <jefbed> 07/12/04 23:45:30

Modified files:
        .              : configure 
        gtkshell       : main.c terminal.c terminal.h 

Log message:
        Add support for multiple top-level windows, as --- separated arguments. 
 

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/antiright/configure?cvsroot=antiright&r1=1.109&r2=1.110
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/main.c?cvsroot=antiright&r1=1.29&r2=1.30
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/terminal.c?cvsroot=antiright&r1=1.31&r2=1.32
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/terminal.h?cvsroot=antiright&r1=1.7&r2=1.8

Patches:
Index: configure
===================================================================
RCS file: /sources/antiright/antiright/configure,v
retrieving revision 1.109
retrieving revision 1.110
diff -u -b -r1.109 -r1.110
--- configure   25 Nov 2007 01:55:07 -0000      1.109
+++ configure   4 Dec 2007 23:45:30 -0000       1.110
@@ -29,6 +29,7 @@
 USE_DISTCC=NO
 USE_CCACHE=NO
 USE_BOEHMGC=NO
+USE_THREADS=YES
 # Must be enabled.  
 USE_GTK=YES
 
@@ -50,6 +51,10 @@
                USE_DISTCC=YES
        elif [ "$ARG" = "--enable-boehmgc" ]; then
                USE_BOEHMGC=YES
+       elif [ "$ARG" = "--disable-threads" ]; then
+               USE_THREADS=NO
+       else
+               echo WARNING:  Unknown configure option passed: "$ARG"
        fi
 done
 
@@ -139,6 +144,12 @@
 
 INSTALL=/usr/bin/install
 
+if [ "$USE_THREADS" = "YES" ]; then
+       DEFS="$DEFS -DUSE_THREADS"
+       LDFLAGS="$LDFLAGS -lpthread"
+       echo USE_THREADS=YES >> config.mk
+fi
+
 echo Prefix is $PREFIX
 echo "VERSION=$VERSION" >> config.mk
 echo "PREFIX=$PREFIX" >> config.mk

Index: gtkshell/main.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/main.c,v
retrieving revision 1.29
retrieving revision 1.30
diff -u -b -r1.29 -r1.30
--- gtkshell/main.c     27 Jul 2007 01:13:36 -0000      1.29
+++ gtkshell/main.c     4 Dec 2007 23:45:30 -0000       1.30
@@ -30,31 +30,57 @@
        $(gsh, finalize);
 }
 
-int
-thread_main(int argc, char **argv)
+static GSH *
+make_window_for_args(const gint argc, const gchar ** argv)
 {
-       struct GSH * gsh;
+       GSH * gsh = ARNEW(gsh, GSH);
 
-#ifdef LIBGC
-       GC_INIT();
-#endif /* LIBGC */
-       gtk_init(&argc, &argv);
-       gsh=ARNEW(gsh, GSH);
-       setup_gui(gsh, (const gint)argc, (const gchar **)argv);
+       setup_gui(gsh, argc, argv);
 #ifdef LIBGC
        GC_gcollect();
 #endif /* LIBGC */
-       gtk_main(); /* application main loop  */
-#ifndef LIBGC
-       /* Cleanup when finished.  */
-       $(gsh, delete);
-#endif /* not LIBGC */
 
-       return (EXIT_SUCCESS);
+       return gsh;
 }
 
 int
 main(int argc, char ** argv)
 {
-       return thread_main(argc, argv);
+       guint counter;
+       struct ARArguments * argset;
+       GSH * gsh;
+
+       gtk_init(&argc, &argv);
+
+       argset=ARNEW(ar, ARArguments);
+       $(argset, add, argv[0]);
+
+       //threads=malloc(sizeof(pthread_t));
+
+       for(counter=1; counter<argc; counter++)
+       {
+               /* Use '---' as thread separator.  */
+               if(!strncmp(argv[counter], "---", 3))
+               {
+                       gsh=make_window_for_args((const gint)argset->argc, 
+                               (const gchar **)argset->argv);
+                       //$(argset, delete);
+                       argset=ARNEW(ar, ARArguments);
+                       $(argset, add, argv[0]);
+               }
+               else /* Add more arguments.  */
+               {
+#ifdef DEBUG
+                       ARBUG("add arguments");
+#endif /* DEBUG */
+                       $(argset, add, argv[counter]);
+               }
+       }
+       make_window_for_args((const gint)argset->argc, 
+               (const gchar **)argset->argv);
+       //$(argset, delete);
+
+       gtk_main(); /* application main loop  */
+
+       return 0;
 }

Index: gtkshell/terminal.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/terminal.c,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -b -r1.31 -r1.32
--- gtkshell/terminal.c 3 Dec 2007 19:40:21 -0000       1.31
+++ gtkshell/terminal.c 4 Dec 2007 23:45:30 -0000       1.32
@@ -27,10 +27,10 @@
 
 #ifdef HAVE_VTE
 #include <vte/reaper.h>
-#define VSETW(element, ...)\
-       VSET(element, term->widget, __VA_ARGS__)
 #define VSET(element, widget, ...)\
        vte_terminal_set_##element(VTE_TERMINAL(widget), __VA_ARGS__)
+#define VSETW(element, ...)\
+       VSET(element, term->widget, __VA_ARGS__)
 #endif /* HAVE_VTE */
 
 #ifdef HAVE_VTE
@@ -66,12 +66,11 @@
        /* This fixes the failure of environment inheritance
           under cygwin.  */
        const gchar * shell = getenv("SHELL");
-       if(shell)
-               return shell;
-       else
-               return (const gchar *)"/bin/sh";
+
+       return shell ? shell : (const gchar *)GSH_DEFAULT_SHELL;
 }
 
+#if 0
 static void
 handle_child_exited(GtkWidget * widget, gpointer user_data)
 {
@@ -80,7 +79,7 @@
 
        gtk_notebook_remove_page(notebook, gtk_notebook_page_num(notebook, 
widget));
 }
-
+#endif /* 0 */
 static void
 gsh_terminal_run(struct GSH_Terminal * term, const gchar * command)
 {
@@ -102,19 +101,27 @@
                const gchar *argv[] = { shell, "-c", command, NULL };
                /* Start the command in the terminal.  */
 #ifdef HAVE_VTE
+#if 0
                vte_reaper_add_child(
+#endif
                        vte_terminal_fork_command(VTE_TERMINAL(term->widget), 
                        shell, (char **)argv, (char **)envv, 
-                       NULL, TRUE, TRUE, TRUE));
+                       NULL, TRUE, TRUE, TRUE)
+#if 0
+                       )
+#endif
+                       ;
 #endif /* HAVE_VTE */
        }
        /* Free after use.  */
        g_free(height);
        g_free(width);
 
+#if 0
        /* Handle terminal exit.  */
        g_signal_connect(G_OBJECT(term->widget), "child-exited", 
                handle_child_exited, term);
+#endif
 }
 
 static void

Index: gtkshell/terminal.h
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/terminal.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- gtkshell/terminal.h 24 Nov 2007 10:53:41 -0000      1.7
+++ gtkshell/terminal.h 4 Dec 2007 23:45:30 -0000       1.8
@@ -23,6 +23,8 @@
 #ifndef GSH_TERMINAL_H
 #define GSH_TERMINAL_H
 
+#define GSH_DEFAULT_SHELL "/bin/sh"
+
 struct GSH_Terminal *
 gsh_new_GSH_Terminal(GSH * gsh);
 




reply via email to

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