pspp-cvs
[Top][All Lists]
Advanced

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

[Pspp-cvs] psppire ./TODO src/Makefile.am src/callbacks.c ...


From: John Darrington
Subject: [Pspp-cvs] psppire ./TODO src/Makefile.am src/callbacks.c ...
Date: Fri, 23 Dec 2005 06:50:09 +0000

CVSROOT:        /cvsroot/pspp
Module name:    psppire
Branch:         
Changes by:     John Darrington <address@hidden>        05/12/23 06:50:09

Modified files:
        .              : TODO 
        src            : Makefile.am callbacks.c stubs.c 
Added files:
        src            : error-dialog.c error-dialog.h 

Log message:
        Added a dialog box implementation of error message functions.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pspp/psppire/TODO.diff?tr1=1.19&tr2=1.20&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/pspp/psppire/src/Makefile.am.diff?tr1=1.11&tr2=1.12&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/pspp/psppire/src/callbacks.c.diff?tr1=1.17&tr2=1.18&r1=text&r2=text
http://cvs.savannah.gnu.org/viewcvs/pspp/psppire/src/error-dialog.c?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/pspp/psppire/src/error-dialog.h?rev=1.1
http://cvs.savannah.gnu.org/viewcvs/pspp/psppire/src/stubs.c.diff?tr1=1.7&tr2=1.8&r1=text&r2=text

Patches:
Index: psppire/TODO
diff -u psppire/TODO:1.19 psppire/TODO:1.20
--- psppire/TODO:1.19   Thu Dec 22 08:56:59 2005
+++ psppire/TODO        Fri Dec 23 06:50:09 2005
@@ -41,8 +41,6 @@
 
 * Implement mechanism for handling errors (use GError ?). 
 
-* If attempt to load *.SAV file fails, then the GUI crashes.
-
 * Load/Save portable files.
 
 * data_sheet.c: value_format_func is one big memory leak.
Index: psppire/src/Makefile.am
diff -u psppire/src/Makefile.am:1.11 psppire/src/Makefile.am:1.12
--- psppire/src/Makefile.am:1.11        Sat Dec  3 00:13:34 2005
+++ psppire/src/Makefile.am     Fri Dec 23 06:50:09 2005
@@ -18,6 +18,7 @@
        main.c \
        pspp-object.c pspp-object.h \
        pspp-dict.c pspp-dict.h \
+       error-dialog.c error-dialog.h \
        callbacks.c callbacks.h\
        customentry.c customentry.h \
        var_type_dialog.c var_type_dialog.h \
Index: psppire/src/callbacks.c
diff -u psppire/src/callbacks.c:1.17 psppire/src/callbacks.c:1.18
--- psppire/src/callbacks.c:1.17        Sun Dec 11 10:14:39 2005
+++ psppire/src/callbacks.c     Fri Dec 23 06:50:09 2005
@@ -105,8 +105,6 @@
                                        GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
                                        GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
                                        NULL);
-
-
   GtkFileFilter *filter ;
 
   filter = gtk_file_filter_new();
@@ -127,115 +125,126 @@
   gtk_file_chooser_add_filter(GTK_FILE_CHOOSER(dialog), filter);
 
 
-  if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
-    {
-      GtkWidget *data_sheet = get_widget_assert(xml, "data_sheet");
-      g_assert(data_sheet);
+  bool finished = FALSE;
+  do {
 
-      GtkWidget *var_sheet = get_widget_assert(xml, "variable_sheet");
-      g_assert(var_sheet);
+    if (gtk_dialog_run (GTK_DIALOG (dialog)) == GTK_RESPONSE_ACCEPT)
+      {
+       GtkWidget *data_sheet = get_widget_assert(xml, "data_sheet");
+       g_assert(data_sheet);
 
-      char *filename = gtk_file_chooser_get_filename
-       (GTK_FILE_CHOOSER (dialog));
+       GtkWidget *var_sheet = get_widget_assert(xml, "variable_sheet");
+       g_assert(var_sheet);
 
-      if ( psppire_handle ) 
-       destroy_file_handle(psppire_handle, 0);
+       char *filename = gtk_file_chooser_get_filename
+         (GTK_FILE_CHOOSER (dialog));
 
-      psppire_handle = 
-       create_file_handle_with_defaults (handle_name, filename);
+       if ( psppire_handle ) 
+         destroy_file_handle(psppire_handle, 0);
 
-      if ( !psppire_handle ) 
-       {
-         g_warning("Cannot read handle for reading system file \"%s\"\n", 
-                   filename);
-         return;
-       }
+       psppire_handle = 
+         create_file_handle_with_defaults (handle_name, filename);
 
-      /* Clear everything */
-      PSPP_Dict *dict = psppire_var_sheet_get_dictionary(var_sheet);
-      pspp_dict_clear(dict);
+       if ( !psppire_handle ) 
+         {
+           g_warning("Cannot read handle for reading system file \"%s\"\n", 
+                     filename);
+           continue;
+         }
 
-      psppire_var_sheet_clear(GTK_SHEET(var_sheet));
-      psppire_data_sheet_clear(GTK_SHEET(data_sheet));
+       /* Clear everything */
+       PSPP_Dict *dict = psppire_var_sheet_get_dictionary(var_sheet);
+       pspp_dict_clear(dict);
 
-      struct dictionary *new_dict;
-      struct sfm_read_info ri;
-      struct sfm_reader *reader ; 
+       psppire_var_sheet_clear(GTK_SHEET(var_sheet));
+       psppire_data_sheet_clear(GTK_SHEET(data_sheet));
 
-      reader = sfm_open_reader (psppire_handle, &new_dict, &ri);
-      g_assert(reader);
+       struct dictionary *new_dict;
+       struct sfm_read_info ri;
+       struct sfm_reader *reader ; 
 
-      dict = pspp_dict_new_from_dict(new_dict);
+       reader = sfm_open_reader (psppire_handle, &new_dict, &ri);
+      
+       if ( ! reader ) 
+         continue;
 
-      psppire_var_sheet_set_dictionary(GTK_SHEET(var_sheet), dict);
-      psppire_data_sheet_set_dictionary(GTK_SHEET(data_sheet), dict);
+       dict = pspp_dict_new_from_dict(new_dict);
 
-      psppire_set_window_title(basename(filename));
+       psppire_var_sheet_set_dictionary(GTK_SHEET(var_sheet), dict);
+       psppire_data_sheet_set_dictionary(GTK_SHEET(data_sheet), dict);
 
-      g_free (filename);
+       psppire_set_window_title(basename(filename));
 
-      const int ni = dict_get_next_value_idx(dict->dict);
-      if ( ni == 0 ) 
-       return;
-
-      gint var_idx;      
-
-      for ( var_idx = 0 ; 
-           var_idx < pspp_dict_get_var_cnt(dict); 
-           ++var_idx)
-       pspp_dict_var_changed(dict, var_idx);
-      
-      gint case_num;
-      for(case_num=0;;case_num++)
-      {
-       struct ccase mycase;
+       g_free (filename);
 
-       case_create(&mycase, ni);
+       const int ni = dict_get_next_value_idx(dict->dict);
+       if ( ni == 0 ) 
+         goto done;
 
-       if ( ! sfm_read_case (reader, &mycase) ) 
-         {
-           case_destroy(&mycase);
-           break;
-         }
+       gint var_idx;      
 
        for ( var_idx = 0 ; 
              var_idx < pspp_dict_get_var_cnt(dict); 
              ++var_idx)
+         pspp_dict_var_changed(dict, var_idx);
+      
+       gint case_num;
+       for(case_num=0;;case_num++)
          {
-           GValue val = {0};
-           const struct variable *v = pspp_dict_get_var(dict, var_idx);
-           const union value *value = case_data(&mycase, v->fv);
+           struct ccase mycase;
+
+           case_create(&mycase, ni);
 
-           if ( v->type == ALPHA) 
+           if ( ! sfm_read_case (reader, &mycase) ) 
              {
-               gchar *text = g_malloc(sizeof (gchar) * (v->width + 1));
-               g_value_init(&val, G_TYPE_STRING);
-               
-               memset(text, 0, v->width + 1);
-               memcpy(text, value->s, v->width);
-           
-               g_value_set_string(&val, text);
-               g_free(text);
+               case_destroy(&mycase);
+               break;
              }
-           else
+
+           for ( var_idx = 0 ; 
+                 var_idx < pspp_dict_get_var_cnt(dict); 
+                 ++var_idx)
              {
-               g_value_init(&val, G_TYPE_DOUBLE);
-               g_value_set_double(&val, value->f);
-             }
+               GValue val = {0};
+               const struct variable *v = pspp_dict_get_var(dict, var_idx);
+               const union value *value = case_data(&mycase, v->fv);
+
+               if ( v->type == ALPHA) 
+                 {
+                   gchar *text = g_malloc(sizeof (gchar) * (v->width + 1));
+                   g_value_init(&val, G_TYPE_STRING);
+               
+                   memset(text, 0, v->width + 1);
+                   memcpy(text, value->s, v->width);
+           
+                   g_value_set_string(&val, text);
+                   g_free(text);
+                 }
+               else
+                 {
+                   g_value_init(&val, G_TYPE_DOUBLE);
+                   g_value_set_double(&val, value->f);
+                 }
 
-           data_sheet_set_cell_value(GTK_SHEET(data_sheet), 
-                                     case_num, var_idx, &val);
+               data_sheet_set_cell_value(GTK_SHEET(data_sheet), 
+                                         case_num, var_idx, &val);
 
-           g_value_unset(&val);
+               g_value_unset(&val);
+             }
+
+           case_destroy(&mycase);
          }
 
-       case_destroy(&mycase);
+       sfm_close_reader(reader);
+       finished = TRUE;
       }
+    else
+      {
+       finished = TRUE;
+      }
+  } while ( ! finished ) ;
 
-      sfm_close_reader(reader);
-
-    }
-
+ done:
   gtk_widget_destroy (dialog);
 }
 
Index: psppire/src/stubs.c
diff -u psppire/src/stubs.c:1.7 psppire/src/stubs.c:1.8
--- psppire/src/stubs.c:1.7     Mon Dec 19 06:45:02 2005
+++ psppire/src/stubs.c Fri Dec 23 06:50:09 2005
@@ -1,40 +1,8 @@
-#include <stdio.h>
-#include <stdarg.h>
-#include "settings.h"
 
-void 
-err_assert_fail(const char *expr, const char *file, int line)
-{
-  fprintf(stderr,"Assertion failed: %s:%d; (%s)\n",file,line,expr);
-  
-  exit(1);
-}
+struct file_locator;
 
-void msg(int i, char *fmt, ...)
+void err_location (struct file_locator *x)
 {
-  va_list ap;
-  va_start(ap, fmt);
-  vprintf(fmt, ap);
-  putchar('\n');
-  va_end(ap);
 }
 
-void err_cond_fail(void)
-{
-}
-
-
-int
-err_location()
-{
-}
-
-
-struct error;
-
-void
-err_vmsg (const struct error *e, const char *format, va_list args)
-{
-  vprintf(format, args);
-}
 




reply via email to

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