diff options
Diffstat (limited to 'src/main.cpp')
-rw-r--r-- | src/main.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/main.cpp b/src/main.cpp index 2adb505..f5cd780 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -23,6 +23,7 @@ #include <stdio.h> #include <string.h> #include <stdlib.h> +#include <signal.h> #include <glib.h> #include <glib/gprintf.h> @@ -51,6 +52,12 @@ namespace Flags { static gchar *mung_file = NULL; +sig_atomic_t sigint_occurred = FALSE; + +extern "C" { +static void sigint_handler(int signal); +} + void Interface::stdio_vmsg(MessageType type, const gchar *fmt, va_list ap) { @@ -160,6 +167,8 @@ main(int argc, char **argv) static GotoTable cmdline_goto_table; static QRegisterTable local_qregs; + signal(SIGINT, sigint_handler); + process_options(argc, argv); interface.ssm(SCI_SETCARETSTYLE, CARETSTYLE_BLOCK); @@ -213,3 +222,13 @@ main(int argc, char **argv) return 0; } + +/* + * Callbacks + */ + +static void +sigint_handler(int signal __attribute__((unused))) +{ + sigint_occurred = TRUE; +} |