bug_16190 fixed
[scilab.git] / scilab / modules / core / src / c / csignal.c
1 /*
2  * Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
3  * Copyright (C) INRIA
4  * Copyright (C) ENPC
5  *
6  * Copyright (C) 2012 - 2016 - Scilab Enterprises
7  *
8  * This file is hereby licensed under the terms of the GNU GPL v2.0,
9  * pursuant to article 5.3.4 of the CeCILL v.2.1.
10  * This file was originally licensed under the terms of the CeCILL v2.1,
11  * and continues to be available under such terms.
12  * For more information, see the COPYING file which you should have received
13  * along with this program.
14  *
15  */
16 #include <stdio.h>
17 #include <string.h>
18 #include <wchar.h>
19 #include "csignal.h"
20 #include "configvariable_interface.h"
21 #include "getKey.h"
22 /* If CTRL-C was pressed. */
23 void controlC_handler(int sig)
24 {
25     setTokenInteruptExecution(DO_NOT_SEND_COMMAND);
26     setExecutionBreak();
27 }
28
29 int csignal(void)
30 {
31     struct sigaction act_controlC;
32
33     memset(&act_controlC, 0, sizeof(act_controlC));
34     act_controlC.sa_sigaction = controlC_handler;
35     if (sigaction(SIGINT, &act_controlC, NULL) != 0)
36     {
37         fprintf(stderr, "Could not set the signal SIGINT to the handler.\n");
38         return -1;
39     }
40
41     return 0;
42 }