projects
/
pspp-builds.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed buglet managing entries in the recent files lists.
[pspp-builds.git]
/
src
/
ui
/
gui
/
helper.c
diff --git
a/src/ui/gui/helper.c
b/src/ui/gui/helper.c
index 5668496833cdd975d1874be4c345de0db54e67d0..0203999d653b38f6b0a343c82750cea1382f0f61 100644
(file)
--- a/
src/ui/gui/helper.c
+++ b/
src/ui/gui/helper.c
@@
-40,7
+40,8
@@
#include <data/procedure.h>
#include <language/lexer/lexer.h>
#include "psppire-data-store.h"
#include <data/procedure.h>
#include <language/lexer/lexer.h>
#include "psppire-data-store.h"
-
+#include <output/manager.h>
+#include "output-viewer.h"
#include <gettext.h>
#include <gettext.h>
@@
-103,7
+104,7
@@
get_widget_assert (GladeXML *xml, const gchar *name)
w = glade_xml_get_widget (xml, name);
if ( !w )
w = glade_xml_get_widget (xml, name);
if ( !w )
- g_
warning
("Widget \"%s\" could not be found\n", name);
+ g_
critical
("Widget \"%s\" could not be found\n", name);
return w;
}
return w;
}
@@
-164,26
+165,35
@@
extern struct dataset *the_dataset;
extern struct source_stream *the_source_stream;
extern PsppireDataStore *the_data_store;
extern struct source_stream *the_source_stream;
extern PsppireDataStore *the_data_store;
-void
+gboolean
execute_syntax (struct getl_interface *sss)
{
struct lexer *lexer;
execute_syntax (struct getl_interface *sss)
{
struct lexer *lexer;
+ gboolean retval = TRUE;
struct casereader *reader = psppire_data_store_get_reader (the_data_store);
proc_set_active_file_data (the_dataset, reader);
struct casereader *reader = psppire_data_store_get_reader (the_data_store);
proc_set_active_file_data (the_dataset, reader);
- g_return_
if_fail (proc_has_active_file (the_dataset)
);
+ g_return_
val_if_fail (proc_has_active_file (the_dataset), FALSE
);
lexer = lex_create (the_source_stream);
lexer = lex_create (the_source_stream);
- getl_append_source (the_source_stream, sss);
+ getl_append_source (the_source_stream, sss
, GETL_BATCH, ERRMODE_CONTINUE
);
for (;;)
{
for (;;)
{
- int result = cmd_parse (lexer, the_dataset);
+ enum cmd_result result = cmd_parse (lexer, the_dataset);
+
+ if ( cmd_result_is_failure (result))
+ {
+ retval = FALSE;
+ if ( source_stream_current_error_mode (the_source_stream)
+ == ERRMODE_STOP )
+ break;
+ }
- if (result == CMD_EOF || result == CMD_FINISH)
+ if (
result == CMD_EOF || result == CMD_FINISH)
break;
}
break;
}
@@
-199,6
+209,14
@@
execute_syntax (struct getl_interface *sss)
psppire_data_store_set_case_file (the_data_store, pcf);
}
psppire_data_store_set_case_file (the_data_store, pcf);
}
+
+ proc_set_active_file_data (the_dataset, NULL);
+
+ som_flush ();
+
+ reload_the_viewer ();
+
+ return retval;
}
}