projects
/
pspp
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Continue work on bug 12859, plus some code cleanup.
[pspp]
/
src
/
main.c
diff --git
a/src/main.c
b/src/main.c
index b09a200a66bcf6f23215f3fcad058b9270e637fe..ab3a0b6d0ec30cf1eb710a1cc2e23b9d6aaea7c0 100644
(file)
--- a/
src/main.c
+++ b/
src/main.c
@@
-14,8
+14,8
@@
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
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., 5
9 Temple Place - Suite 330
, Boston, MA
- 0211
1-1307
, USA. */
+ Foundation, Inc., 5
1 Franklin Street, Fifth Floor
, Boston, MA
+ 0211
0-1301
, USA. */
#include <config.h>
#include <stdio.h>
#include <config.h>
#include <stdio.h>
@@
-54,17
+54,26
@@
char curdate[12];
/* 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);
+/* Handle quit/term/int signals */
+void interrupt_handler(int sig);
+
/* Whether we're dropping down to interactive mode immediately because
we hit end-of-file unexpectedly (or whatever). */
int start_interactive;
/* Whether we're dropping down to interactive mode immediately because
we hit end-of-file unexpectedly (or whatever). */
int start_interactive;
+
+
+
+
/* Program entry point. */
int
main (int argc, char **argv)
{
/* Program entry point. */
int
main (int argc, char **argv)
{
+
signal (SIGSEGV, bug_handler);
signal (SIGSEGV, bug_handler);
- signal (SIGFPE, bug_handler);
+ signal (SIGFPE, bug_handler);
+ signal (SIGINT, interrupt_handler);
gsl_set_error_handler_off();
gsl_set_error_handler_off();
@@
-199,3
+208,10
@@
bug_handler(int sig UNUSED)
break;
}
}
break;
}
}
+
+
+void
+interrupt_handler(int sig UNUSED)
+{
+ err_hcf(0);
+}