X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=src%2Fui%2Fgui%2Fsyntax-editor.c;h=35749fcd4a6f7e03cb511e5dbca871ce16e59190;hb=fc2284433015a514d16a4dbf0aba530d5de3ebaf;hp=643013a3371c90c38c6442a8ae1823c12b2742d2;hpb=5023955f3e48b1b0a703a38d654467360c0794a6;p=pspp-builds.git
diff --git a/src/ui/gui/syntax-editor.c b/src/ui/gui/syntax-editor.c
index 643013a3..35749fcd 100644
--- a/src/ui/gui/syntax-editor.c
+++ b/src/ui/gui/syntax-editor.c
@@ -1,21 +1,18 @@
-/*
- PSPPIRE --- A Graphical User Interface for PSPP
- Copyright (C) 2006 Free Software Foundation
+/* PSPPIRE - a graphical user interface for PSPP.
+ Copyright (C) 2006 Free Software Foundation, Inc.
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- 02110-1301, USA. */
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see . */
#include
#include
@@ -33,6 +30,7 @@
#include "window-manager.h"
+#include
#include
#include
#include
@@ -77,7 +75,7 @@ save_if_modified (struct syntax_editor *se)
GTK_MESSAGE_QUESTION,
GTK_BUTTONS_NONE,
_("Save contents of syntax editor to %s?"),
- e->name
+ e->name
);
gtk_dialog_add_button (GTK_DIALOG (dialog),
@@ -211,20 +209,10 @@ on_quit (GtkMenuItem *menuitem, gpointer user_data)
}
static void
-execute_syntax (const struct syntax_editor *se, GtkTextIter start,
+editor_execute_syntax (const struct syntax_editor *se, GtkTextIter start,
GtkTextIter stop)
{
- getl_append_source (the_source_stream,
- create_syntax_editor_source (se, start, stop));
- for (;;)
- {
- int result = cmd_parse (se->lexer, the_dataset,
- proc_has_source (the_dataset)
- ? CMD_STATE_DATA : CMD_STATE_INITIAL);
-
- if (result == CMD_EOF || result == CMD_FINISH)
- break;
- }
+ execute_syntax (create_syntax_editor_source (se, start, stop));
}
/* Parse and execute all the text in the buffer */
@@ -234,11 +222,10 @@ on_run_all (GtkMenuItem *menuitem, gpointer user_data)
GtkTextIter begin, end;
struct syntax_editor *se = user_data;
- gtk_text_buffer_get_iter_at_line (se->buffer, &begin, 0);
- gtk_text_buffer_get_iter_at_line (se->buffer, &end, -1);
-
+ gtk_text_buffer_get_iter_at_offset (se->buffer, &begin, 0);
+ gtk_text_buffer_get_iter_at_offset (se->buffer, &end, -1);
- execute_syntax (se, begin, end);
+ editor_execute_syntax (se, begin, end);
}
/* Parse and execute the currently selected text */
@@ -249,7 +236,7 @@ on_run_selection (GtkMenuItem *menuitem, gpointer user_data)
struct syntax_editor *se = user_data;
if ( gtk_text_buffer_get_selection_bounds (se->buffer, &begin, &end) )
- execute_syntax (se, begin, end);
+ editor_execute_syntax (se, begin, end);
}
@@ -276,7 +263,7 @@ on_run_current_line (GtkMenuItem *menuitem, gpointer user_data)
gtk_text_buffer_get_iter_at_line (se->buffer, &begin, line);
gtk_text_buffer_get_iter_at_line (se->buffer, &end, line + 1);
- execute_syntax (se, begin, end);
+ editor_execute_syntax (se, begin, end);
}
@@ -305,7 +292,7 @@ on_run_to_end (GtkMenuItem *menuitem, gpointer user_data)
gtk_text_buffer_get_iter_at_line (se->buffer, &begin, line);
gtk_text_buffer_get_iter_at_line (se->buffer, &end, -1);
- execute_syntax (se, begin, end);
+ editor_execute_syntax (se, begin, end);
}
@@ -318,8 +305,7 @@ on_run_to_end (GtkMenuItem *menuitem, gpointer user_data)
struct syntax_editor *
new_syntax_editor (void)
{
- GladeXML *xml =
- glade_xml_new (PKGDATADIR "/syntax-editor.glade", NULL, NULL);
+ GladeXML *xml = XML_NEW ("syntax-editor.glade");
GtkWidget *text_view;
struct syntax_editor *se ;
@@ -351,12 +337,6 @@ new_syntax_editor (void)
G_CALLBACK (new_data_window),
e->window);
- g_signal_connect (get_widget_assert (xml,"file_open_data"),
- "activate",
- G_CALLBACK (open_data_window),
- e->window);
-
-
g_signal_connect (get_widget_assert (xml,"help_about"),
"activate",
G_CALLBACK (about_new),
@@ -483,7 +463,7 @@ save_editor_to_file (struct syntax_editor *se,
/*
Loads the buffer from the file called FILENAME
*/
-static gboolean
+gboolean
load_editor_from_file (struct syntax_editor *se,
const gchar *filename,
GError **err)
@@ -509,6 +489,7 @@ load_editor_from_file (struct syntax_editor *se,
gtk_text_buffer_insert (buffer, &iter, text, -1);
+
window_set_name_from_filename ((struct editor_window *)se, filename);
gtk_text_buffer_set_modified (buffer, FALSE);
@@ -552,7 +533,22 @@ open_syntax_window (GtkMenuItem *menuitem, gpointer parent)
struct syntax_editor *se = (struct syntax_editor *)
window_create (WINDOW_SYNTAX, file_name);
- load_editor_from_file (se, file_name, NULL);
+ if ( load_editor_from_file (se, file_name, NULL) )
+#if RECENT_LISTS_AVAILABLE
+ {
+ GtkRecentManager *manager = gtk_recent_manager_get_default();
+ gchar *uri = g_filename_to_uri (file_name, NULL, NULL);
+
+ gtk_recent_manager_remove_item (manager, uri, NULL);
+ if ( ! gtk_recent_manager_add_item (manager, uri))
+ g_warning ("Could not add item %s to recent list\n",uri);
+
+ g_free (uri);
+ }
+#else
+ ;
+#endif
+
}
gtk_widget_destroy (dialog);