From 5930089d6965da4bcc7aa11e1f4d67a76c0dd351 Mon Sep 17 00:00:00 2001 From: Jose Antonio Ortega Ruiz Date: Mon, 25 Jun 2001 23:52:29 +0000 Subject: hot split/unsplit --- mixgtk/mixgtk_cmd_dispatcher.c | 68 ++++++++++++++++++++++-------------------- 1 file changed, 36 insertions(+), 32 deletions(-) (limited to 'mixgtk/mixgtk_cmd_dispatcher.c') diff --git a/mixgtk/mixgtk_cmd_dispatcher.c b/mixgtk/mixgtk_cmd_dispatcher.c index 024c09d..f034cd3 100644 --- a/mixgtk/mixgtk_cmd_dispatcher.c +++ b/mixgtk/mixgtk_cmd_dispatcher.c @@ -58,6 +58,14 @@ typedef struct mixgtk_dispatch_ static struct mixgtk_dispatch_ dis_data_ = {NULL}; +static GtkWidget *ext_dlg_ = NULL; +static GtkWidget *ed_entry_ = NULL; +static GtkWidget *asm_entry_ = NULL; + +static const gchar *ED_NAME_ = "editor_entry"; +static const gchar *ASM_NAME_ = "mixasm_entry"; + + static void log_command_ (mixgtk_dispatch_data_t *dis, const gchar *cmd) { @@ -247,13 +255,6 @@ read_config_ (void) } -static GtkWidget *ext_dlg_ = NULL; -static GtkWidget *ed_entry_ = NULL; -static GtkWidget *asm_entry_ = NULL; - -static const gchar *ED_NAME_ = "editor_entry"; -static const gchar *ASM_NAME_ = "mixasm_entry"; - void on_external_programs_activate () { @@ -298,24 +299,27 @@ on_extern_ok_button_clicked () gboolean mixgtk_cmd_dispatcher_init (mixgtk_dialog_id_t top) { - if (!dis_data_.prompt) - { - dis_data_.prompt = - mixgtk_widget_factory_get (top, MIXGTK_WIDGET_PROMPT); - g_return_val_if_fail (dis_data_.prompt != NULL, FALSE); - dis_data_.log = - mixgtk_widget_factory_get (top, MIXGTK_WIDGET_LOG); - g_return_val_if_fail (dis_data_.log != NULL, FALSE); - } + static gboolean restart = FALSE; + + ext_dlg_ = NULL; + ed_entry_ = NULL; + asm_entry_ = NULL; + + dis_data_.prompt = + mixgtk_widget_factory_get (top, MIXGTK_WIDGET_PROMPT); + g_return_val_if_fail (dis_data_.prompt != NULL, FALSE); + dis_data_.log = + mixgtk_widget_factory_get (top, MIXGTK_WIDGET_LOG); + g_return_val_if_fail (dis_data_.log != NULL, FALSE); if (!dis_data_.dispatcher) { int r = pipe (dis_data_.fildes); g_return_val_if_fail (r == 0, FALSE); - /* connect stdout/stderr to the pipe's write end */ + /* connect stdout/stderr to the pipe's write end if (dup2 (dis_data_.fildes[1], STDOUT_FILENO) == -1 || dup2 (dis_data_.fildes[1], STDERR_FILENO) == -1) - return FALSE; + return FALSE;*/ dis_data_.out = fdopen (dis_data_.fildes[1], "w"); g_return_val_if_fail (dis_data_.out != NULL, FALSE); r = fcntl (dis_data_.fildes[0], F_GETFL, 0); @@ -330,24 +334,24 @@ mixgtk_cmd_dispatcher_init (mixgtk_dialog_id_t top) install_hooks_ (); } - if (!dis_data_.status) - { - dis_data_.status = - mixgtk_widget_factory_get (MIXGTK_MAIN, MIXGTK_WIDGET_STATUSBAR); - g_return_val_if_fail (dis_data_.status != NULL, FALSE); - dis_data_.context = gtk_statusbar_get_context_id (GTK_STATUSBAR - (dis_data_.status), - "cmd_dis_context"); - } - + dis_data_.status = + mixgtk_widget_factory_get (MIXGTK_MAIN, MIXGTK_WIDGET_STATUSBAR); + g_return_val_if_fail (dis_data_.status != NULL, FALSE); + dis_data_.context = gtk_statusbar_get_context_id (GTK_STATUSBAR + (dis_data_.status), + "cmd_dis_context"); if (!dis_data_.completions) init_completions_ (); - read_config_ (); + if (!restart) read_config_ (); #ifdef HAVE_LIBHISTORY - using_history (); - stifle_history (MAX_HISTORY_); + if (!restart) + { + using_history (); + stifle_history (MAX_HISTORY_); + } #endif - + + restart = TRUE; return TRUE; } -- cgit v1.2.3