diff options
author | Bram Moolenaar <Bram@vim.org> | 2018-08-21 19:47:48 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2018-08-21 19:47:48 +0200 |
commit | 8e82c057ffb86cec3210ad8a22ad3f21d52e0953 (patch) | |
tree | 096ec9398f1c11cfbbc13b4e3531c9723d608be6 | |
parent | 8c5e0093c9badced73e382915fb024a5c3ea463b (diff) |
patch 8.1.0312: wrong type for flags used in signal handlersv8.1.0312
Problem: Wrong type for flags used in signal handlers.
Solution: Use sig_atomic_t. (Dominique Pelle, closes #3356)
-rw-r--r-- | src/globals.h | 10 | ||||
-rw-r--r-- | src/os_unix.c | 14 | ||||
-rw-r--r-- | src/os_win32.h | 1 | ||||
-rw-r--r-- | src/version.c | 2 |
4 files changed, 15 insertions, 12 deletions
diff --git a/src/globals.h b/src/globals.h index 09820cfdf2..fa5b493e8a 100644 --- a/src/globals.h +++ b/src/globals.h @@ -518,7 +518,7 @@ EXTERN char *foreground_argument INIT(= NULL); * * volatile because it is used in signal handler sig_sysmouse(). */ -EXTERN volatile int hold_gui_events INIT(= 0); +EXTERN volatile sig_atomic_t hold_gui_events INIT(= 0); /* * When resizing the shell is postponed, remember the new size, and call @@ -655,7 +655,7 @@ EXTERN int entered_free_all_mem INIT(= FALSE); /* TRUE when in or after free_all_mem() */ #endif /* volatile because it is used in signal handler deathtrap(). */ -EXTERN volatile int full_screen INIT(= FALSE); +EXTERN volatile sig_atomic_t full_screen INIT(= FALSE); /* TRUE when doing full-screen output * otherwise only writing some messages */ @@ -800,11 +800,11 @@ EXTERN JMP_BUF x_jump_env; EXTERN JMP_BUF lc_jump_env; /* argument to SETJMP() */ # ifdef SIGHASARG /* volatile because it is used in signal handlers. */ -EXTERN volatile int lc_signal; /* caught signal number, 0 when no was signal +EXTERN volatile sig_atomic_t lc_signal; /* caught signal number, 0 when no was signal caught; used for mch_libcall() */ # endif /* volatile because it is used in signal handler deathtrap(). */ -EXTERN volatile int lc_active INIT(= FALSE); /* TRUE when lc_jump_env is valid. */ +EXTERN volatile sig_atomic_t lc_active INIT(= FALSE); /* TRUE when lc_jump_env is valid. */ #endif #if defined(FEAT_MBYTE) || defined(FEAT_POSTSCRIPT) @@ -1037,7 +1037,7 @@ EXTERN FILE *scriptout INIT(= NULL); /* stream to write script to */ EXTERN int read_cmd_fd INIT(= 0); /* fd to read commands from */ /* volatile because it is used in signal handler catch_sigint(). */ -EXTERN volatile int got_int INIT(= FALSE); /* set to TRUE when interrupt +EXTERN volatile sig_atomic_t got_int INIT(= FALSE); /* set to TRUE when interrupt signal occurred */ #ifdef USE_TERM_CONSOLE EXTERN int term_console INIT(= FALSE); /* set to TRUE when console used */ diff --git a/src/os_unix.c b/src/os_unix.c index 80c61755b1..080f03c7ba 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -161,7 +161,7 @@ static int get_x11_title(int); static int get_x11_icon(int); static char_u *oldtitle = NULL; -static volatile int oldtitle_outdated = FALSE; +static volatile sig_atomic_t oldtitle_outdated = FALSE; static int did_set_title = FALSE; static char_u *oldicon = NULL; static int did_set_icon = FALSE; @@ -205,7 +205,7 @@ static RETSIGTYPE catch_sigpwr SIGPROTOARG; # define SET_SIG_ALARM static RETSIGTYPE sig_alarm SIGPROTOARG; /* volatile because it is used in signal handler sig_alarm(). */ -static volatile int sig_alarm_called; +static volatile sig_atomic_t sig_alarm_called; #endif static RETSIGTYPE deathtrap SIGPROTOARG; @@ -231,13 +231,13 @@ static int save_patterns(int num_pat, char_u **pat, int *num_file, char_u ***fil #endif /* volatile because it is used in signal handler sig_winch(). */ -static volatile int do_resize = FALSE; +static volatile sig_atomic_t do_resize = FALSE; static char_u *extra_shell_arg = NULL; static int show_shell_mess = TRUE; /* volatile because it is used in signal handler deathtrap(). */ -static volatile int deadly_signal = 0; /* The signal we caught */ +static volatile sig_atomic_t deadly_signal = 0; /* The signal we caught */ /* volatile because it is used in signal handler deathtrap(). */ -static volatile int in_mch_delay = FALSE; /* sleeping in mch_delay() */ +static volatile sig_atomic_t in_mch_delay = FALSE; /* sleeping in mch_delay() */ #if defined(FEAT_JOB_CHANNEL) && !defined(USE_SYSTEM) static int dont_check_job_ended = 0; @@ -1247,7 +1247,7 @@ after_sigcont(void) #if defined(SIGCONT) static RETSIGTYPE sigcont_handler SIGPROTOARG; -static volatile int in_mch_suspend = FALSE; +static volatile sig_atomic_t in_mch_suspend = FALSE; /* * With multi-threading, suspending might not work immediately. Catch the @@ -1260,7 +1260,7 @@ static volatile int in_mch_suspend = FALSE; * * volatile because it is used in signal handler sigcont_handler(). */ -static volatile int sigcont_received; +static volatile sig_atomic_t sigcont_received; static RETSIGTYPE sigcont_handler SIGPROTOARG; /* diff --git a/src/os_win32.h b/src/os_win32.h index 5017f532ef..4b1fc39bbf 100644 --- a/src/os_win32.h +++ b/src/os_win32.h @@ -89,6 +89,7 @@ #define FNAME_ILLEGAL "\"*?><|" /* illegal characters in a file name */ +#include <signal.h> #include <stdlib.h> #include <time.h> #include <sys/types.h> diff --git a/src/version.c b/src/version.c index f37cdfcf6f..d752d04ff4 100644 --- a/src/version.c +++ b/src/version.c @@ -795,6 +795,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 312, +/**/ 311, /**/ 310, |