antiright-devel
[Top][All Lists]
Advanced

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

[Antiright-devel] antiright configure gtkshell/Makefile gtkshell/...


From: Jeffrey Bedard
Subject: [Antiright-devel] antiright configure gtkshell/Makefile gtkshell/...
Date: Thu, 03 May 2007 03:42:31 +0000

CVSROOT:        /sources/antiright
Module name:    antiright
Changes by:     Jeffrey Bedard <jefbed> 07/05/03 03:42:31

Modified files:
        .              : configure 
        gtkshell       : Makefile add_options.c font.c font.h gtkshell.c 
                         gtkshell.h guidl.y guidl_dialog.c 
                         guidl_dictionary.c guidl_options.c guidl_util.c 
                         guidl_util.h guidl_widgets.c label.c options.c 
                         terminal.c terminal.h terminal_struct.h text.c 
                         updated.c updated.h updated_label.c 
                         updated_progress.c 
        libantiright   : macros.h util.c util.h 

Log message:
        Reworking terminal and updater data structures.
        Added function to append data to an argument list such
        that the most recently appended item is at argv[0].
        Build is currently broken, work in progress.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/antiright/configure?cvsroot=antiright&r1=1.89&r2=1.90
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/Makefile?cvsroot=antiright&r1=1.24&r2=1.25
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/add_options.c?cvsroot=antiright&r1=1.23&r2=1.24
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/font.c?cvsroot=antiright&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/font.h?cvsroot=antiright&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/gtkshell.c?cvsroot=antiright&r1=1.27&r2=1.28
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/gtkshell.h?cvsroot=antiright&r1=1.36&r2=1.37
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/guidl.y?cvsroot=antiright&r1=1.19&r2=1.20
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/guidl_dialog.c?cvsroot=antiright&r1=1.5&r2=1.6
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/guidl_dictionary.c?cvsroot=antiright&r1=1.2&r2=1.3
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/guidl_options.c?cvsroot=antiright&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/guidl_util.c?cvsroot=antiright&r1=1.12&r2=1.13
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/guidl_util.h?cvsroot=antiright&r1=1.8&r2=1.9
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/guidl_widgets.c?cvsroot=antiright&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/label.c?cvsroot=antiright&r1=1.16&r2=1.17
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/options.c?cvsroot=antiright&r1=1.18&r2=1.19
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/terminal.c?cvsroot=antiright&r1=1.9&r2=1.10
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/terminal.h?cvsroot=antiright&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/terminal_struct.h?cvsroot=antiright&r1=1.3&r2=1.4
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/text.c?cvsroot=antiright&r1=1.22&r2=1.23
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/updated.c?cvsroot=antiright&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/updated.h?cvsroot=antiright&r1=1.7&r2=1.8
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/updated_label.c?cvsroot=antiright&r1=1.14&r2=1.15
http://cvs.savannah.gnu.org/viewcvs/antiright/gtkshell/updated_progress.c?cvsroot=antiright&r1=1.10&r2=1.11
http://cvs.savannah.gnu.org/viewcvs/antiright/libantiright/macros.h?cvsroot=antiright&r1=1.4&r2=1.5
http://cvs.savannah.gnu.org/viewcvs/antiright/libantiright/util.c?cvsroot=antiright&r1=1.13&r2=1.14
http://cvs.savannah.gnu.org/viewcvs/antiright/libantiright/util.h?cvsroot=antiright&r1=1.9&r2=1.10

Patches:
Index: configure
===================================================================
RCS file: /sources/antiright/antiright/configure,v
retrieving revision 1.89
retrieving revision 1.90
diff -u -b -r1.89 -r1.90
--- configure   21 Apr 2007 22:21:57 -0000      1.89
+++ configure   3 May 2007 03:42:30 -0000       1.90
@@ -26,8 +26,8 @@
 
 VERSION=3.4-alpha
 
-USE_DISTCC=YES
-USE_CCACHE=YES
+USE_DISTCC=NO
+USE_CCACHE=NO
 
 for ARG in $@; do
        if [ "$ARG" = "-d" ]; then
@@ -39,10 +39,10 @@
                PREFIX=~/opt/stow/antiright
        elif [ "$ARG" = "-S" ]; then
                PREFIX=/usr/local/stow/antiright
-       elif [ "$ARG" = "--disable-ccache" ]; then
-               USE_CCACHE=NO
-       elif [ "$ARG" = "--disable-distcc" ]; then
-               USE_DISTCC=NO
+       elif [ "$ARG" = "--enable-ccache" ]; then
+               USE_CCACHE=YES
+       elif [ "$ARG" = "--enable-distcc" ]; then
+               USE_DISTCC=YES
        fi
 done
 

Index: gtkshell/Makefile
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/Makefile,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -b -r1.24 -r1.25
--- gtkshell/Makefile   16 Apr 2007 01:50:31 -0000      1.24
+++ gtkshell/Makefile   3 May 2007 03:42:31 -0000       1.25
@@ -38,7 +38,7 @@
        file_dialog.o row.o containers.o geometry.o font.o dragdrop.o\
        image_button.o terminal.o terminal_options.o menu.o updated.o\
        guidl_util.o about_dialog.o init.o guidl_dialog.o guidl_dictionary.o\
-       guidl_options.o guidl_widgets.o
+       guidl_options.o guidl_widgets.o update_manager.o
 
 program=main.o 
 

Index: gtkshell/add_options.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/add_options.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -b -r1.23 -r1.24
--- gtkshell/add_options.c      2 May 2007 14:55:31 -0000       1.23
+++ gtkshell/add_options.c      3 May 2007 03:42:31 -0000       1.24
@@ -120,7 +120,7 @@
 
        case 's': /* Add a shell.  */
                gsh_count(argc, counter);
-               gsh_setup_terminal(gsh, argv[*counter]);
+               gsh_manage(gsh, $(gsh->terminal, add, argv[*counter]));
                break;
 
        case 't':

Index: gtkshell/font.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/font.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- gtkshell/font.c     16 Mar 2007 00:39:31 -0000      1.5
+++ gtkshell/font.c     3 May 2007 03:42:31 -0000       1.6
@@ -22,26 +22,27 @@
 
 #include "gtkshell.h"
 
-void
-gsh_widget_set_font(GtkWidget *widget, const gchar *font)
+static void
+set_font(GtkWidget * widget, const gchar * font)
 {
-       ARPASSERT(widget);
-       ARPASSERT(font);
-
-       if(VTE_IS_TERMINAL(widget))
-               vte_terminal_set_font_from_string(VTE_TERMINAL(widget), font);
-       else
-       {
                PangoFontDescription *font_desc;
        
                font_desc = pango_font_description_from_string(font);
                gtk_widget_modify_font(widget, font_desc);
                pango_font_description_free(font_desc);
-       }
 }
 
 void
-gsh_widget_set_font_mono(GtkWidget *widget)
+gsh_widget_set_font(GtkWidget *widget, const gchar *font)
 {
-       gsh_widget_set_font(widget, "Mono 12");
+#ifdef DEBUG
+       ARPASSERT(widget);
+#endif /* DEBUG */
+       if(!font)
+               font="Mono 12";
+       if(VTE_IS_TERMINAL(widget))
+               vte_terminal_set_font_from_string(VTE_TERMINAL(widget), font);
+       else /* Not a terminal.  */
+               set_font(widget, font);
 }
+

Index: gtkshell/font.h
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/font.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- gtkshell/font.h     7 Mar 2007 06:44:47 -0000       1.3
+++ gtkshell/font.h     3 May 2007 03:42:31 -0000       1.4
@@ -26,7 +26,4 @@
 void
 gsh_widget_set_font(GtkWidget *widget, const gchar *font);
 
-void
-gsh_widget_set_font_mono(GtkWidget *widget);
-
 #endif                         /* GTKSHELL_FONT_H */

Index: gtkshell/gtkshell.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/gtkshell.c,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -b -r1.27 -r1.28
--- gtkshell/gtkshell.c 2 May 2007 14:55:31 -0000       1.27
+++ gtkshell/gtkshell.c 3 May 2007 03:42:31 -0000       1.28
@@ -51,8 +51,6 @@
 static void
 gsh_delete_GSH_Rows(struct GSH_Rows * rows)
 {
-       gtk_widget_destroy(rows->h);
-       gtk_widget_destroy(rows->v);
        g_free(rows);
 }
 
@@ -76,34 +74,6 @@
        return rows;
 }
 
-static void
-gsh_delete_GSH_Updater(struct GSH_Updater * updater)
-{
-       g_slist_free(updater->list);
-       g_free(updater);
-}
-
-static void
-gsh_setup_GSH_Updater(struct GSH_Updater * update)
-{
-       update->period = 1000;
-
-       /* Pointer must have not previously been used.  */
-       update->list = (GSList *) NULL;
-       update->delete=&gsh_delete_GSH_Updater;
-}
-
-struct GSH_Updater *
-gsh_new_GSH_Updater()
-{
-       struct GSH_Updater * updater;
-
-       updater=xmalloc(sizeof(struct GSH_Updater));
-       gsh_setup_GSH_Updater(updater);
-
-       return updater;
-}
-
        
 static void
 gsh_delete_GSH(struct GSH * gsh)
@@ -111,9 +81,6 @@
        $(gsh->rows, delete);
        $(gsh->terminal, delete);
        $(gsh->update, delete);
-       GSH_DESTROY_IF(gsh->button);
-       GSH_DESTROY_IF(gsh->window);
-       GSH_DESTROY_IF(gsh->scrolled_window);
        GSH_FREE_IF(gsh->geometry);
 }
 
@@ -129,7 +96,7 @@
 {
        gsh->geometry = (gchar *)NULL;
        gsh->bflags = 0;
-       gsh->update = ARNEW(gsh, GSH_Updater);
+       gsh->update = ARNEW(gsh, GSHUpdateManager);
        gsh->rows = ARNEW(gsh, GSH_Rows);
        gsh->terminal = ARNEW(gsh, GSH_Terminal);
        gsh->delete = &gsh_delete_GSH;

Index: gtkshell/gtkshell.h
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/gtkshell.h,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -b -r1.36 -r1.37
--- gtkshell/gtkshell.h 2 May 2007 14:55:31 -0000       1.36
+++ gtkshell/gtkshell.h 3 May 2007 03:42:31 -0000       1.37
@@ -39,6 +39,8 @@
 #include "y.tab.h"
 #endif /* !YYFILE */
 
+#include "macros.h"
+
 struct GSH_Rows
 {
        GtkWidget *h;
@@ -51,26 +53,16 @@
 struct GSH_Rows *
 gsh_new_GSH_Rows();
 
-struct GSH_Updater
-{
-       unsigned int period;
-       /address@hidden@*/ GSList *list;
-       void (*delete)(struct GSH_Updater *);
-};
-
-struct GSH_Updater *
-gsh_new_GSH_Updater();
-
-
-#include "macros.h"
 #include "terminal_struct.h"
+#include "updated.h"
+#include "update_manager_struct.h"
 
 struct GSH
 {
        GtkWidget *window;
        GtkWidget *scrolled_window;
        struct GSH_Rows * rows;
-       struct GSH_Updater * update;
+       struct GSHUpdateManager * update;
        struct GSH_Terminal * terminal;
        GtkWidget *button;
        /address@hidden@*/ gchar *geometry;
@@ -85,7 +77,6 @@
 #include "arguments.h"
 #include "options.h"
 #include "callbacks.h"
-#include "updated.h"
 #include "label.h"
 #include "button.h"
 #include "text.h"
@@ -112,6 +103,7 @@
 #include "guidl_dialog.h"
 #include "guidl_options.h"
 #include "guidl_widgets.h"
+#include "update_manager.h"
 
 struct GSH *
 gsh_new_GSH();

Index: gtkshell/guidl.y
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/guidl.y,v
retrieving revision 1.19
retrieving revision 1.20
diff -u -b -r1.19 -r1.20
--- gtkshell/guidl.y    27 Apr 2007 20:51:42 -0000      1.19
+++ gtkshell/guidl.y    3 May 2007 03:42:31 -0000       1.20
@@ -33,9 +33,6 @@
 yywrap();
 
 void
-gsh_append_arg(char * arg);
-
-void
 yyerror(const char *string)
 {
        g_error("error:  %s\n", string);
@@ -139,7 +136,7 @@
 button:
 STRING
 {
-       gsh_append_arg($1);
+       $(gsh_guidl_env->args, add, $1);
        g_free($1);
 }
 ;

Index: gtkshell/guidl_dialog.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/guidl_dialog.c,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -b -r1.5 -r1.6
--- gtkshell/guidl_dialog.c     28 Apr 2007 22:26:23 -0000      1.5
+++ gtkshell/guidl_dialog.c     3 May 2007 03:42:31 -0000       1.6
@@ -52,13 +52,7 @@
 gsh_guidl_dialog(gchar * dialog_type, gchar * argument)
 {
        GSH_GUIDL_CHECK_DICTIONARY(dialogs);
-
-       {
-               const gchar * result;
-
-               if((result=$(gsh_guidl_env->dictionaries->dialogs,
-                            find, dialog_type)) != NULL)
-                       gsh_guidl_add(result, argument);
-       }
+       $(gsh_guidl_env, add, $(gsh_guidl_env->dictionaries->dialogs,
+               find, dialog_type), argument);
 }
 

Index: gtkshell/guidl_dictionary.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/guidl_dictionary.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- gtkshell/guidl_dictionary.c 28 Apr 2007 22:26:23 -0000      1.2
+++ gtkshell/guidl_dictionary.c 3 May 2007 03:42:31 -0000       1.3
@@ -47,7 +47,7 @@
 }
 
 static void
-gsh_setup_GDLDictionaries(struct GDLDictionaries * dictionaries)
+gsh_GDLDictionaries_setup(struct GDLDictionaries * dictionaries)
 {
        dictionaries->widgets=NULL;
        dictionaries->options=NULL;
@@ -61,7 +61,7 @@
        struct GDLDictionaries * dictionaries;
 
        dictionaries=g_malloc(sizeof(struct GDLDictionaries));
-       gsh_setup_GDLDictionaries(dictionaries);
+       gsh_GDLDictionaries_setup(dictionaries);
 
        return dictionaries;
 }

Index: gtkshell/guidl_options.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/guidl_options.c,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- gtkshell/guidl_options.c    30 Apr 2007 18:15:22 -0000      1.3
+++ gtkshell/guidl_options.c    3 May 2007 03:42:31 -0000       1.4
@@ -55,15 +55,12 @@
 void
 gsh_guidl_option(gchar * option, gchar * argument)
 {
-       const gchar * result;
-
        GSH_GUIDL_CHECK_DICTIONARY(options);
 #ifdef DEBUG
        ARPASSERT(gsh_guidl_env->dictionaries->options);
 #endif /* DEBUG */
-       result=$(gsh_guidl_env->dictionaries->options, find, option);
+       $(gsh_guidl_env, add, $(gsh_guidl_env->dictionaries->options, find,
+               option), argument);
        g_free(option);
-       if(result != NULL)
-               gsh_guidl_add(result, argument);
 }
 

Index: gtkshell/guidl_util.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/guidl_util.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -b -r1.12 -r1.13
--- gtkshell/guidl_util.c       30 Apr 2007 18:43:25 -0000      1.12
+++ gtkshell/guidl_util.c       3 May 2007 03:42:31 -0000       1.13
@@ -35,11 +35,30 @@
 }
 
 static void
+gsh_GDLEnvironment_add(struct GDLEnvironment * env, 
+                      const gchar * switches, gchar * argument)
+{
+#ifdef DEBUG
+       ARPASSERT(switches);
+#endif /* DEBUG */
+       if(switches)
+               $(env->args, add, switches);
+       else /* A command base argument is required.  */
+               return;
+       if(argument)
+       {       
+               $(env->args, add, argument);
+               g_free(argument);
+       }
+}
+
+static void
 gsh_setup_GDLEnvironment(struct GDLEnvironment * env)
 {
        env->args=ARNEW(ar, ARArguments);
        env->dictionaries=ARNEW(gsh, GDLDictionaries);
        env->delete=&gsh_delete_GDLEnvironment;
+       env->add=&gsh_GDLEnvironment_add;
 }
 
 struct GDLEnvironment *
@@ -53,31 +72,3 @@
        return env;
 }
 
-static void
-check_gsh_guidl_env()
-{
-       if(gsh_guidl_env == NULL)
-               gsh_guidl_env=gsh_new_GDLEnvironment();
-}
-
-void
-gsh_append_arg(gchar * arg)
-{
-       check_gsh_guidl_env();
-       $(gsh_guidl_env->args, add, arg);
-}
-
-
-void
-gsh_guidl_add(const gchar * switches, gchar * argument)
-{
-       if(switches == NULL)
-               return;
-       gsh_append_arg((gchar *)switches);
-       if(argument != NULL)
-       {
-               gsh_append_arg(argument);
-               g_free(argument);
-       }
-}
-

Index: gtkshell/guidl_util.h
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/guidl_util.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -b -r1.8 -r1.9
--- gtkshell/guidl_util.h       30 Apr 2007 18:43:25 -0000      1.8
+++ gtkshell/guidl_util.h       3 May 2007 03:42:31 -0000       1.9
@@ -23,12 +23,15 @@
 #ifndef GSH_GUIDL_UTIL_H
 #define GSH_GUIDL_UTIL_H
 
-
 struct GDLEnvironment
 {
        struct GDLDictionaries * dictionaries;
-       struct ARArguments *args;
+       struct ARArguments * args;
+       /* destructor */
        void (*delete)(struct GDLEnvironment *);
+       /* First argument to ADD is not freed.  If dynamically allocated, 
+          you must free.  */
+       void (*add)(struct GDLEnvironment *, const gchar *, gchar *);
 };
 
 struct GDLEnvironment *
@@ -40,29 +43,4 @@
 int
 yyparse();
 
-void
-gsh_append_arg(gchar * arg);
-
-void
-gsh_free_parse_memory();
-
-void
-gsh_guidl_string_option(gchar * string_option);
-
-void
-gsh_guidl_string_arg_option(gchar * option, gchar * arg);
-
-void
-gsh_guidl_string_num_arg_option(gchar * option, gint num);
-
-/* SWITCHES is not freed.  If dynamically allocated, you must free.  */
-void
-gsh_guidl_add(const gchar * switches, gchar * argument);
-
-void
-gsh_guidl_string_dialog(gchar * string);
-
-void
-gsh_guidl_string_dialog_argument(gchar * string, gchar * argument);
-
 #endif /* not GSH_GUIDL_UTIL_H */

Index: gtkshell/guidl_widgets.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/guidl_widgets.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- gtkshell/guidl_widgets.c    28 Apr 2007 22:26:23 -0000      1.4
+++ gtkshell/guidl_widgets.c    3 May 2007 03:42:31 -0000       1.5
@@ -54,8 +54,8 @@
 gsh_guidl_widget(gchar * widget, gchar * argument)
 {
        GSH_GUIDL_CHECK_DICTIONARY(widgets);
-       gsh_guidl_add($(gsh_guidl_env->dictionaries->widgets, find, widget),
-                     argument);
+       $(gsh_guidl_env, add, ($(gsh_guidl_env->dictionaries->widgets, 
+               find, widget)), argument);
        g_free(widget);         
 }
 

Index: gtkshell/label.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/label.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -b -r1.16 -r1.17
--- gtkshell/label.c    30 Apr 2007 18:15:22 -0000      1.16
+++ gtkshell/label.c    3 May 2007 03:42:31 -0000       1.17
@@ -32,7 +32,7 @@
        else
                gtk_label_set_line_wrap(GTK_LABEL(label), TRUE);
 
-       gsh_widget_set_font_mono(label);
+       gsh_widget_set_font(label, NULL);
 }
 
 GtkWidget *

Index: gtkshell/options.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/options.c,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -b -r1.18 -r1.19
--- gtkshell/options.c  30 Apr 2007 18:43:25 -0000      1.18
+++ gtkshell/options.c  3 May 2007 03:42:31 -0000       1.19
@@ -56,7 +56,7 @@
           dummy argument.  Needed as argv[0] is skipped
           by the command line handling code. */
        if(!GSH_FLAG(GSH_GUIDL_NO_DUMMY))
-               gsh_append_arg((char*)"guidl");
+               $(gsh_guidl_env->args, add, (const gchar *)"guidl");
 
        yyparse();
 #ifdef DEBUG

Index: gtkshell/terminal.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/terminal.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- gtkshell/terminal.c 2 May 2007 14:55:31 -0000       1.9
+++ gtkshell/terminal.c 3 May 2007 03:42:31 -0000       1.10
@@ -23,43 +23,16 @@
 #include "gtkshell.h"
 
 static void
-set_size(struct GSH * gsh)
+gsh_set_terminal_options(struct GSH_Terminal * term)
 {
-
-       if(gsh->terminal->width==0)
-               gsh->terminal->width=80;
-       if(gsh->terminal->height==0)
-               gsh->terminal->height=32;
-
-       vte_terminal_set_size(VTE_TERMINAL(gsh->terminal->widget), 
-                             gsh->terminal->width, 
-                             gsh->terminal->height);
-}
-
-static void
-set_font(struct GSH * gsh)
-{
-       if(gsh->terminal->font==NULL)
-               gsh_widget_set_font_mono(gsh->terminal->widget);
-       else
-               gsh_widget_set_font(gsh->terminal->widget, 
-                                   gsh->terminal->font);
-}
-
-static void
-gsh_set_terminal_options(struct GSH * gsh)
-{
-       GtkWidget * term;
-
-       /* Assign a shortcut reference.  */
-       term=gsh->terminal->widget;
-
-       set_size(gsh);
-       vte_terminal_set_allow_bold(VTE_TERMINAL(term), TRUE);
-       vte_terminal_set_backspace_binding(VTE_TERMINAL(term),
+       vte_terminal_set_size(VTE_TERMINAL(term->widget), 
+               term->width, term->height);
+       vte_terminal_set_allow_bold(VTE_TERMINAL(term->widget), TRUE);
+       vte_terminal_set_backspace_binding(VTE_TERMINAL(term->widget),
                                           VTE_ERASE_ASCII_BACKSPACE);
-       set_font(gsh);
-       vte_terminal_set_background_transparent(VTE_TERMINAL(term), TRUE);
+       gsh_widget_set_font(term->widget, term->font);
+       vte_terminal_set_background_transparent(VTE_TERMINAL(term->widget), 
+               TRUE);
 }
 
 static void
@@ -90,7 +63,7 @@
 /* This is a workaround for vte's fscking up of option arrays.  */
 /* Returned value must be freed.  */
 static gchar *
-gsh_terminal_command_script(struct GSH * gsh, const gchar *command)
+gsh_terminal_command_script(struct GSH_Terminal * term, const gchar *command)
 {
        gchar *script_name;
        FILE *script;
@@ -123,7 +96,7 @@
        
        if(fprintf(script, "#!/bin/sh\nexport LINES=%d\n"
                           "export COLUMNS=%d\n%s\n", 
-                  gsh->terminal->height, gsh->terminal->width, command) 
+                  term->height, term->width, command) 
           == -1)
                ARERR("cannot write to script file");
        fclose(script); /* Close and flush buffers.  */
@@ -139,48 +112,66 @@
 }
 
 static void
-gsh_terminal_run(struct GSH * gsh, const gchar * command)
+gsh_terminal_run(struct GSH_Terminal * term, const gchar * command)
 {
        /* Get command to run.  */
-       gsh->terminal->script=gsh_terminal_command_script(gsh, command);
+       $(term->scripts, add_as_first, 
+               gsh_terminal_command_script(term, command));
 
        /* Run the script in the terminal->widget.  */
-       vte_terminal_fork_command(VTE_TERMINAL(gsh->terminal->widget),
-                                 gsh->terminal->script, NULL, NULL, 
+       vte_terminal_fork_command(VTE_TERMINAL(term->widget),
+                                 term->scripts->argv[0], NULL, NULL, 
                                  NULL, TRUE, TRUE, TRUE);
 
-       /* SCRIPT must be freed later, so preserve reference.  */
+       /* SCRIPTS must be freed later, so preserve reference.  */
 }
 
 static void
-cleanup_script(gchar * script)
+cleanup_scripts(struct GSH_Terminal * term)
 {
        /* If the terminal was used, it created a temporary command script,
         * which must be removed on program exit.  A better way to do this would
         * be to install a timer to remove the script.  This is necessary as
         * premature script removal breaks the terminal command fork.  */
-       unlink(script);
-       free(script);
+
+       gint i;
+
+       for(i=0; i < term->scripts->argc; i++)
+               unlink(term->scripts->argv[i]);
+       $(term->scripts, delete);
 }
 
 static void
 gsh_delete_GSH_Terminal(struct GSH_Terminal * term)
 {
-       gtk_widget_destroy(term->widget);
        GSH_FREE_IF(term->font);
-       GSH_ACTION_IF(cleanup_script, term->script);
+       cleanup_scripts(term);
        g_free(term);
 }
 
+static GtkWidget *
+gsh_GSH_Terminal_add(struct GSH_Terminal * term, const gchar * command)
+{
+       /* Create and set properties of the VTE-based terminal.  */
+       /* Exit from the application if the terminal process dies.  */
+       g_signal_connect(G_OBJECT(term->widget=vte_terminal_new()), 
+               "child-exited", G_CALLBACK(gtk_main_quit), NULL);
+       gsh_set_terminal_options(term);
+       gsh_terminal_run(term, command);
+
+       return term->widget;
+}
+
 void
 gsh_setup_GSH_Terminal(struct GSH_Terminal * term)
 {
        term->widget=NULL;
        term->font=NULL;
-       term->script=NULL;
+       term->scripts=ARNEW(ar, ARArguments);
        term->width=80;
        term->height=24;
        term->delete=&gsh_delete_GSH_Terminal;
+       term->add=&gsh_GSH_Terminal_add;
 }
 
 struct GSH_Terminal *
@@ -194,24 +185,4 @@
        return term;
 }
 
-void
-gsh_setup_terminal(struct GSH * gsh, const gchar * command)
-{
-       /* VTE-based terminal.  */
-       gsh->terminal->widget=vte_terminal_new();
-
-       /* Set properties.  */
-       gsh_set_terminal_options(gsh);
-       /* Display widget.  */
-       gtk_widget_show(gsh->terminal->widget);
-
-       /* Exit from the application if the terminal process dies.  */
-       g_signal_connect(G_OBJECT(gsh->terminal->widget), "child-exited",
-                        G_CALLBACK(gtk_main_quit), NULL);
-
-       /* Add to the gtkshell row/column grid.  */
-       gsh_manage(gsh, gsh->terminal->widget);
-
-       gsh_terminal_run(gsh, command);
-}
 

Index: gtkshell/terminal.h
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/terminal.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- gtkshell/terminal.h 28 Apr 2007 22:26:23 -0000      1.3
+++ gtkshell/terminal.h 3 May 2007 03:42:31 -0000       1.4
@@ -23,10 +23,7 @@
 #ifndef GSH_TERMINAL_H
 #define GSH_TERMINAL_H
 
-void
-gsh_setup_GSH_Terminal(struct GSH_Terminal * term);
-
-void
-gsh_setup_terminal(struct GSH * gsh, const gchar * command);
+struct GSH_Terminal *
+gsh_new_GSH_Terminal();
 
 #endif

Index: gtkshell/terminal_struct.h
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/terminal_struct.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- gtkshell/terminal_struct.h  2 May 2007 14:55:31 -0000       1.3
+++ gtkshell/terminal_struct.h  3 May 2007 03:42:31 -0000       1.4
@@ -27,9 +27,10 @@
 {
        GtkWidget * widget;
        gchar * font;
-       gchar * script;
+       struct ARArguments * scripts;
        guint width, height;
        void (*delete)(struct GSH_Terminal *);
+       GtkWidget * (*add)(struct GSH_Terminal *, const gchar *);
 };
 
 void

Index: gtkshell/text.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/text.c,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -b -r1.22 -r1.23
--- gtkshell/text.c     30 Apr 2007 18:15:22 -0000      1.22
+++ gtkshell/text.c     3 May 2007 03:42:31 -0000       1.23
@@ -82,7 +82,7 @@
        text = gtk_text_view_new();
        gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text), GTK_WRAP_WORD);
        gsh_manage(gsh, text);
-       gsh_widget_set_font_mono(text);
+       gsh_widget_set_font(text, NULL);
 
        return text;
 }

Index: gtkshell/updated.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/updated.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- gtkshell/updated.c  2 May 2007 14:55:31 -0000       1.13
+++ gtkshell/updated.c  3 May 2007 03:42:31 -0000       1.14
@@ -22,111 +22,36 @@
 
 #include "gtkshell.h"
 
-
 static void
-gsh_append_updater(struct GSH * gsh, gsh_updater_data * item)
+gsh_delete_GSHUpdatedWidget(struct GSHUpdatedWidget * item)
 {
-
-#ifdef DEBUG
-       ARBUG("gsh_append_updater()");
-#endif                         /* DEBUG */
-
-       if (ARPBOOL(gsh) && ARPBOOL(item))
-               gsh->update->list = g_slist_prepend(gsh->update->list, item);
-
-#ifdef DEBUG
-       ARBUG("end gsh_append_updater()");
-#endif                         /* DEBUG */
+       GSH_FREE_IF(item->command);
+       g_free(item);
 }
 
-static void
-gsh_assign_updater(gsh_updater_data * item,
-                  void (*function) (const gchar *, gpointer),
-                  const gchar *command, GtkWidget *widget)
-{
-       /* Assign the values to ITEM's members.  */
-       item->command=g_strdup(command);
-
-       /* No allocation necessary as these are duplicate pointers.  */
-
-       item->widget = widget;
-       item->function = function;
+struct GSHUpdatedWidget *
+gsh_new_GSHUpdatedWidget(void (*function)(const gchar *, gpointer), 
+       const gchar * command, GtkWidget * widget)
+{
+       struct gsh_GSHUpdatedWidget * updater;
+       updater=xmalloc(sizeof(struct gsh_GSHUpdatedWidget));
+       updater->command=g_strdup(command);
+       updater->widget=widget;
+       updater->update=function;
+       updater->delete=&gsh_delete_GSHUpdatedWidget;
 }
 
+
 void
 gsh_add_updater(struct GSH * gsh,
                void (*function) (const gchar *, gpointer),
                const gchar *command, GtkWidget *widget)
 {
-       gsh_updater_data *item;
+       struct GSHUpdatedWidget * item;
 
        /* Allocate memory for ITEM cell.  */
-       item = (gsh_updater_data *) xmalloc(sizeof(gsh_updater_data));
-       /* Initialize.  */
-       gsh_assign_updater(item, function, command, widget);
+       item=ARNEW(gsh, GSHUpdatedWidget, function, command, widget);
        /* Add to singly linked list.  */
        gsh_append_updater(gsh, item);
 }
 
-static void
-gsh_update_each(gpointer data, gpointer user_data)
-{
-       UNUSED(user_data);      /* USER_DATA is unused.  */
-
-       /*
-        * Ensure that the argument containing the structure is not
-        * empty.
-        */
-
-       ARWIFNP(data)
-       {
-               gsh_updater_data *item;
-
-               /*
-                * Assign data to structure and call function pointer
-                * with parameters.
-                */
-               item = (gsh_updater_data *) data;
-               ARPASSERT(item->function);
-               item->function(item->command, item->widget);
-       }
-}
-
-static gint
-gsh_perform_updates(gpointer data)
-{
-       struct GSH *gsh;
-
-#ifdef DEBUG
-       ARBUG("gsh_perform_updates()");
-#endif                         /* DEBUG */
-
-       gsh = (struct GSH *) data;
-
-
-       if (ARPBOOL(gsh) && ARPBOOL(gsh->update->list))
-               g_slist_foreach(gsh->update->list, gsh_update_each, gsh);
-       else
-       {
-               ARWARN("data invalid, operation not performed.");
-               return FALSE;
-       }
-
-       return (TRUE);
-}
-
-void
-gsh_start_updates(struct GSH * gsh)
-{
-
-#ifdef DEBUG
-       ARBUG("gsh_start_updates()");
-#endif                         /* DEBUG */
-
-       ARWIFNP (gsh)
-       {
-               (void) gsh_perform_updates(gsh);
-               (void) g_timeout_add(gsh->update->period, gsh_perform_updates,
-                                    gsh);
-       }
-}

Index: gtkshell/updated.h
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/updated.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- gtkshell/updated.h  2 Mar 2007 19:12:00 -0000       1.7
+++ gtkshell/updated.h  3 May 2007 03:42:31 -0000       1.8
@@ -23,19 +23,17 @@
 #ifndef GSH_UPDATED_H
 #define GSH_UPDATED_H
 
-typedef struct
+struct GSHUpdatedWidget
 {
-       void (*function) (const gchar *, gpointer);
-       gchar *command;
-       GtkWidget *widget;
-}      gsh_updater_data;
+       GtkWidget * widget;
+       gchar * command;
+       void (*update) (struct GSHUpdatedWidget *, 
+               const gchar *, gpointer);
+       void (*delete)(struct GSHUpdatedWidget *);
+};
 
-void
-gsh_add_updater(struct GSH * gsh,
-               void (*function) (const gchar *, gpointer),
-               const gchar *command, GtkWidget *widget);
-
-void
-gsh_start_updates(struct GSH * gsh);
+struct GSHUpdatedWidget *
+gsh_new_GSHUpdatedWidget(void (*function)(const gchar *, gpointer), 
+       const gchar * command, GtkWidget * widget);
 
 #endif

Index: gtkshell/updated_label.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/updated_label.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -b -r1.14 -r1.15
--- gtkshell/updated_label.c    2 Mar 2007 19:12:00 -0000       1.14
+++ gtkshell/updated_label.c    3 May 2007 03:42:31 -0000       1.15
@@ -31,7 +31,9 @@
         * certain formatting problems.
         */
        /* Otherwise, a GTK warning and termination occurs.  */
+#ifdef DEBUG
        ARPASSERT(*results);
+#endif /* DEBUG */
 
        if (*results[0] == '\0')
        {
@@ -47,10 +49,10 @@
 
 #ifdef DEBUG
        ARBUG("gsh_update_label()");
-#endif                         /* DEBUG */
 
        ARPASSERT(command);
        ARPASSERT(widget);
+#endif                         /* DEBUG */
 
        results = antiright_pipe_read((char *)command);
        gsh_check_results(&results);
@@ -61,15 +63,13 @@
 void
 gsh_add_updated_label(struct GSH * gsh, const gchar *command)
 {
-       GtkWidget *widget;
-
 #ifdef DEBUG
        g_message("gsh_add_updated_label()");
 #endif                         /* DEBUG */
-
+#ifdef DEBUG
        ARPASSERT(gsh);
        ARPASSERT(command);
-
-       widget = gsh_add_label(gsh, (char *)command);
-       gsh_add_updater(gsh, &gsh_update_label, command, (gpointer) widget);
+#endif /* DEBUG */
+       $(gsh->update, add, ARNEW(gsh, GSHUpdatedWidget, &gsh_update_label,
+               command, gsh_add_label(gsh, (char *)command)));
 }

Index: gtkshell/updated_progress.c
===================================================================
RCS file: /sources/antiright/antiright/gtkshell/updated_progress.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -b -r1.10 -r1.11
--- gtkshell/updated_progress.c 30 Apr 2007 18:15:22 -0000      1.10
+++ gtkshell/updated_progress.c 3 May 2007 03:42:31 -0000       1.11
@@ -27,11 +27,15 @@
 {
        gchar *results;
 
+#ifdef DEBUG
        ARPASSERT(command);
        ARPASSERT(widget);
+#endif /* DEBUG
 
        results = antiright_pipe_read((char *)command);
+#ifdef DEBUG
        ARPASSERT(results);
+#endif /* DEBUG */
        gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR((GtkWidget *) widget),
                                      strtod(results, NULL));
        free(results);
@@ -41,11 +45,12 @@
 {
        GtkWidget *widget;
 
+#ifdef DEBUG
        ARPASSERT(gsh);
        ARPASSERT(command);
+#endif /* DEBUG */
 
-       widget = gtk_progress_bar_new();
-       gsh_manage(gsh, widget);
-       gsh_add_updater(gsh, &gsh_update_progress,
-                       command, widget);
+       gsh_manage(gsh, widget=gtk_progress_bar_new());
+       $(gsh->update, add, ARNEW(gsh, GSHUpdatedWidget, 
+               &gsh_update_progress, command, widget));
 }

Index: libantiright/macros.h
===================================================================
RCS file: /sources/antiright/antiright/libantiright/macros.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -b -r1.4 -r1.5
--- libantiright/macros.h       28 Apr 2007 22:26:23 -0000      1.4
+++ libantiright/macros.h       3 May 2007 03:42:31 -0000       1.5
@@ -73,12 +73,12 @@
        else
 
 #define ARMETHOD(class, method, ...)\
-       class->method(class, ##__VA_ARGS__)
+       (class->method(class, ##__VA_ARGS__))
 
-#define $ ARMETHOD
+#define $(...) ARMETHOD(__VA_ARGS__)
 
 #define ARNEW(package, class, ...)\
-       package##_new_##class(##__VA_ARGS__)
+       (package##_new_##class(__VA_ARGS__))
 
 #endif /* not LIBAR_MACROS_H */
 

Index: libantiright/util.c
===================================================================
RCS file: /sources/antiright/antiright/libantiright/util.c,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -b -r1.13 -r1.14
--- libantiright/util.c 30 Apr 2007 18:43:25 -0000      1.13
+++ libantiright/util.c 3 May 2007 03:42:31 -0000       1.14
@@ -35,7 +35,7 @@
 }
 
 static void
-ar_delete_ARArguments_contents(struct ARArguments * args)
+ar_ARArguments_delete_contents(struct ARArguments * args)
 {
        for(; args->argc>0; args->argc--)
                g_free(args->argv[args->argc-1]);
@@ -45,12 +45,12 @@
 static void
 ar_delete_ARArguments(struct ARArguments * args)
 {
-       ar_delete_ARArguments_contents(args);
+       ar_ARArguments_delete_contents(args);
        g_free(args);
 }
 
 static void
-ar_ARArguments_add(struct ARArguments * this, gchar * item)
+ar_ARArguments_add(struct ARArguments * this, const gchar * item)
 {
        this->argc++;
        this->argv=realloc(this->argv, sizeof(gchar*)*this->argc);
@@ -58,11 +58,23 @@
 }
 
 static void
-ar_setup_ARArguments(struct ARArguments * args)
+ar_ARArguments_add_as_first(struct ARArguments * this, const gchar * item)
+{
+       gchar * swap;
+
+       ar_ARArguments_add(this, item);
+       swap=this->argv[0];
+       this->argv[0]=this->argv[this->argc-1];
+       this->argv[this->argc-1]=swap;
+}
+
+static void
+ar_ARArguments_setup(struct ARArguments * args)
 {
        args->argc=0;
        args->argv=NULL;
        args->add=&ar_ARArguments_add;
+       args->add_as_first=&ar_ARArguments_add_as_first;
        args->delete=&ar_delete_ARArguments;
 }
 
@@ -72,7 +84,7 @@
        struct ARArguments * args;
 
        args=g_malloc(sizeof(struct ARArguments));
-       ar_setup_ARArguments(args);
+       ar_ARArguments_setup(args);
 
        return args;
 }

Index: libantiright/util.h
===================================================================
RCS file: /sources/antiright/antiright/libantiright/util.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -b -r1.9 -r1.10
--- libantiright/util.h 30 Apr 2007 18:43:25 -0000      1.9
+++ libantiright/util.h 3 May 2007 03:42:31 -0000       1.10
@@ -28,7 +28,8 @@
 {
        gchar ** argv;
        gint argc;
-       void (*add)(struct ARArguments *, gchar *);
+       void (*add)(struct ARArguments *, const gchar *);
+       void (*add_as_first)(struct ARArguments *, const gchar *);
        void (*delete)(struct ARArguments *);
 };
 




reply via email to

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