pspp-cvs
[Top][All Lists]
Advanced

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

[Pspp-cvs] pspp/src/ui/gui syntax-editor.c


From: John Darrington
Subject: [Pspp-cvs] pspp/src/ui/gui syntax-editor.c
Date: Tue, 26 Dec 2006 07:09:23 +0000

CVSROOT:        /sources/pspp
Module name:    pspp
Changes by:     John Darrington <jmd>   06/12/26 07:09:23

Modified files:
        src/ui/gui     : syntax-editor.c 

Log message:
        Re-enabled Save/Save As in syntax editor

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/pspp/src/ui/gui/syntax-editor.c?cvsroot=pspp&r1=1.7&r2=1.8

Patches:
Index: syntax-editor.c
===================================================================
RCS file: /sources/pspp/pspp/src/ui/gui/syntax-editor.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -b -r1.7 -r1.8
--- syntax-editor.c     24 Dec 2006 23:08:25 -0000      1.7
+++ syntax-editor.c     26 Dec 2006 07:09:23 -0000      1.8
@@ -46,6 +46,21 @@
                                     const gchar *filename,
                                     GError **err);
 
+/* Append ".sps" to FILENAME if necessary.
+   The returned result must be freed when no longer required.
+ */
+static gchar *
+append_suffix (const gchar *filename)
+{
+  if ( ! g_str_has_suffix (filename, ".sps" ) &&
+       ! g_str_has_suffix (filename, ".SPS" ) )
+    {
+      return g_strdup_printf ("%s.sps", filename);
+    }
+
+  return strdup (filename);
+}
+
 /* If the buffer's modified flag is set, then save it, and close the window.
    Otherwise just close the window.
 */
@@ -62,7 +77,7 @@
                                GTK_MESSAGE_QUESTION,
                                GTK_BUTTONS_NONE,
                                _("Save contents of syntax editor to %s?"),
-                               e->name ? e->name : _("Untitled")
+                               e->name 
                                );
 
       gtk_dialog_add_button  (GTK_DIALOG (dialog),
@@ -84,8 +99,7 @@
        {
          GError *err = NULL;
 
-         if ( ! save_editor_to_file (se, e->name ? e->name : _("Untitled"),
-                                     &err) )
+         if ( ! save_editor_to_file (se, e->name, &err) )
            {
              msg (ME, err->message);
              g_error_free (err);
@@ -101,8 +115,7 @@
 
 /* Callback for the File->SaveAs menuitem */
 static void
-on_syntax_save_as   (GtkMenuItem     *menuitem,
-                 gpointer         user_data)
+on_syntax_save_as (GtkMenuItem *menuitem, gpointer user_data)
 {
   GtkFileFilter *filter;
   gint response;
@@ -156,9 +169,8 @@
 }
 
 /* Callback for the File->Save menuitem */
-void
-on_syntax_save   (GtkMenuItem     *menuitem,
-                 gpointer         user_data)
+static void
+on_syntax_save (GtkMenuItem *menuitem, gpointer user_data)
 {
   struct syntax_editor *se = user_data;
   struct editor_window *e = user_data;
@@ -167,11 +179,14 @@
     on_syntax_save_as (menuitem, user_data);
   else
     {
-      GError *err;
+      GError *err = NULL;
       save_editor_to_file (se, e->name, &err);
+      if ( err )
+       {
       msg (ME, err->message);
       g_error_free (err);
     }
+    }
 }
 
 
@@ -346,19 +361,16 @@
                    e->window);
 
 
-#if 0
-
-  g_signal_connect (get_widget_assert (xml,"file_save"),
+  g_signal_connect (get_widget_assert (xml, "file_save"),
                    "activate",
                    G_CALLBACK (on_syntax_save),
                    se);
 
-  g_signal_connect (get_widget_assert (xml,"file_save_as"),
+  g_signal_connect (get_widget_assert (xml, "file_save_as"),
                    "activate",
                    G_CALLBACK (on_syntax_save_as),
                    se);
 
-#endif
 
   g_signal_connect (get_widget_assert (xml,"file_quit"),
                    "activate",
@@ -424,10 +436,15 @@
   GtkTextIter start, stop;
   gchar *text;
 
+  gchar *suffixedname;
   gchar *glibfilename;
   g_assert (filename);
 
-  glibfilename = g_filename_from_utf8 (filename, -1, 0, 0, err);
+  suffixedname = append_suffix (filename);
+
+  glibfilename = g_filename_from_utf8 (suffixedname, -1, 0, 0, err);
+
+  g_free ( suffixedname);
 
   if ( ! glibfilename )
     return FALSE;




reply via email to

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