projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Move definition of OUTPUT_FILE_NAME to before first use.
[pspp]
/
src
/
ui
/
terminal
/
main.c
diff --git
a/src/ui/terminal/main.c
b/src/ui/terminal/main.c
index e3d3dbd7df5d7aaf92daa164ef566eea5dc8abd9..b8cabb3acb0fff818faf3e1de71766309b21f7ce 100644
(file)
--- a/
src/ui/terminal/main.c
+++ b/
src/ui/terminal/main.c
@@
-34,7
+34,6
@@
#include <data/file-handle-def.h>
#include <libpspp/getl.h>
#include <data/file-name.h>
#include <data/file-handle-def.h>
#include <libpspp/getl.h>
#include <data/file-name.h>
-#include <data/format.h>
#include <data/procedure.h>
#include <data/settings.h>
#include <data/variable.h>
#include <data/procedure.h>
#include <data/settings.h>
#include <data/variable.h>
@@
-53,6
+52,7
@@
#include <ui/terminal/read-line.h>
#include <ui/terminal/terminal.h>
#include <ui/terminal/read-line.h>
#include <ui/terminal/terminal.h>
+#include "fatal-signal.h"
#include "progname.h"
#include "gettext.h"
#include "progname.h"
#include "gettext.h"
@@
-61,7
+61,7
@@
static void i18n_init (void);
static void fpu_init (void);
static void i18n_init (void);
static void fpu_init (void);
-static void
terminate (bool success) NO_RETURN
;
+static void
clean_up (void)
;
/* If a segfault happens, issue a message to that effect and halt */
void bug_handler(int sig);
/* If a segfault happens, issue a message to that effect and halt */
void bug_handler(int sig);
@@
-84,13
+84,12
@@
main (int argc, char **argv)
signal (SIGABRT, bug_handler);
signal (SIGSEGV, bug_handler);
signal (SIGFPE, bug_handler);
signal (SIGABRT, bug_handler);
signal (SIGSEGV, bug_handler);
signal (SIGFPE, bug_handler);
-
signal (SIGINT, interrupt_handler
);
+
at_fatal_signal (clean_up
);
i18n_init ();
fpu_init ();
gsl_set_error_handler_off ();
i18n_init ();
fpu_init ();
gsl_set_error_handler_off ();
- fmt_init ();
outp_init ();
fn_init ();
fh_init ();
outp_init ();
fn_init ();
fh_init ();
@@
-109,7
+108,7
@@
main (int argc, char **argv)
if (parse_command_line (argc, argv, the_source_stream))
{
msg_ui_init (the_source_stream);
if (parse_command_line (argc, argv, the_source_stream))
{
msg_ui_init (the_source_stream);
- if (!get_testing_mode ())
+ if (!
settings_
get_testing_mode ())
outp_read_devices ();
else
outp_configure_driver_line (
outp_read_devices ();
else
outp_configure_driver_line (
@@
-137,7
+136,8
@@
main (int argc, char **argv)
}
}
}
}
- terminate (!any_errors ());
+ clean_up ();
+ return any_errors ();
}
\f
static void
}
\f
static void
@@
-188,17
+188,9
@@
bug_handler(int sig)
}
}
}
}
-void
-interrupt_handler(int sig UNUSED)
-{
- terminate (false);
-}
-
-
-/* Terminate PSPP. SUCCESS should be true to exit successfully,
- false to exit as a failure. */
+/* Clean up PSPP in preparation for termination. */
static void
static void
-
terminate (bool success
)
+
clean_up (void
)
{
static bool terminating = false;
if (!terminating)
{
static bool terminating = false;
if (!terminating)
@@
-214,10
+206,7
@@
terminate (bool success)
destroy_source_stream (the_source_stream);
prompt_done ();
readln_uninitialize ();
destroy_source_stream (the_source_stream);
prompt_done ();
readln_uninitialize ();
-
outp_done ();
msg_ui_done ();
outp_done ();
msg_ui_done ();
- fmt_done ();
}
}
- exit (success ? EXIT_SUCCESS : EXIT_FAILURE);
}
}