[Top][All Lists]
[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 *);
};
- [Antiright-devel] antiright configure gtkshell/Makefile gtkshell/...,
Jeffrey Bedard <=