0
0
mirror of https://github.com/vim/vim.git synced 2025-09-28 04:24:06 -04:00

updated for version 7.2-130

This commit is contained in:
Bram Moolenaar
2009-03-02 01:47:02 +00:00
parent e8bd5cea37
commit 76243bd847
6 changed files with 118 additions and 21 deletions

61
src/auto/configure vendored
View File

@@ -11565,6 +11565,67 @@ _ACEOF
fi fi
{ $as_echo "$as_me:$LINENO: checking for working volatile" >&5
$as_echo_n "checking for working volatile... " >&6; }
if test "${ac_cv_c_volatile+set}" = set; then
$as_echo_n "(cached) " >&6
else
cat >conftest.$ac_ext <<_ACEOF
/* confdefs.h. */
_ACEOF
cat confdefs.h >>conftest.$ac_ext
cat >>conftest.$ac_ext <<_ACEOF
/* end confdefs.h. */
int
main ()
{
volatile int x;
int * volatile y = (int *) 0;
return !x && !y;
;
return 0;
}
_ACEOF
rm -f conftest.$ac_objext
if { (ac_try="$ac_compile"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
$as_echo "$ac_try_echo") >&5
(eval "$ac_compile") 2>conftest.er1
ac_status=$?
grep -v '^ *+' conftest.er1 >conftest.err
rm -f conftest.er1
cat conftest.err >&5
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); } && {
test -z "$ac_c_werror_flag" ||
test ! -s conftest.err
} && test -s conftest.$ac_objext; then
ac_cv_c_volatile=yes
else
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_cv_c_volatile=no
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
fi
{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_volatile" >&5
$as_echo "$ac_cv_c_volatile" >&6; }
if test $ac_cv_c_volatile = no; then
cat >>confdefs.h <<\_ACEOF
#define volatile /**/
_ACEOF
fi
{ $as_echo "$as_me:$LINENO: checking for mode_t" >&5 { $as_echo "$as_me:$LINENO: checking for mode_t" >&5
$as_echo_n "checking for mode_t... " >&6; } $as_echo_n "checking for mode_t... " >&6; }
if test "${ac_cv_type_mode_t+set}" = set; then if test "${ac_cv_type_mode_t+set}" = set; then

View File

@@ -50,6 +50,9 @@
/* Define to empty if the keyword does not work. */ /* Define to empty if the keyword does not work. */
#undef const #undef const
/* Define to empty if the keyword does not work. */
#undef volatile
/* Define to `int' if <sys/types.h> doesn't define. */ /* Define to `int' if <sys/types.h> doesn't define. */
#undef mode_t #undef mode_t

View File

@@ -2148,6 +2148,7 @@ fi
dnl Checks for typedefs, structures, and compiler characteristics. dnl Checks for typedefs, structures, and compiler characteristics.
AC_PROG_GCC_TRADITIONAL AC_PROG_GCC_TRADITIONAL
AC_C_CONST AC_C_CONST
AC_C_VOLATILE
AC_TYPE_MODE_T AC_TYPE_MODE_T
AC_TYPE_OFF_T AC_TYPE_OFF_T
AC_TYPE_PID_T AC_TYPE_PID_T

View File

@@ -482,8 +482,10 @@ EXTERN char *foreground_argument INIT(= NULL);
/* /*
* While executing external commands or in Ex mode, should not insert GUI * While executing external commands or in Ex mode, should not insert GUI
* events in the input buffer: Set hold_gui_events to non-zero. * events in the input buffer: Set hold_gui_events to non-zero.
*
* volatile because it is used in signal handler sig_sysmouse().
*/ */
EXTERN int hold_gui_events INIT(= 0); EXTERN volatile int hold_gui_events INIT(= 0);
/* /*
* When resizing the shell is postponed, remember the new size, and call * When resizing the shell is postponed, remember the new size, and call
@@ -597,7 +599,8 @@ EXTERN int exiting INIT(= FALSE);
EXTERN int really_exiting INIT(= FALSE); EXTERN int really_exiting INIT(= FALSE);
/* TRUE when we are sure to exit, e.g., after /* TRUE when we are sure to exit, e.g., after
* a deadly signal */ * a deadly signal */
EXTERN int full_screen INIT(= FALSE); /* volatile because it is used in signal handler deathtrap(). */
EXTERN volatile int full_screen INIT(= FALSE);
/* TRUE when doing full-screen output /* TRUE when doing full-screen output
* otherwise only writing some messages */ * otherwise only writing some messages */
@@ -739,10 +742,12 @@ EXTERN JMP_BUF x_jump_env;
*/ */
EXTERN JMP_BUF lc_jump_env; /* argument to SETJMP() */ EXTERN JMP_BUF lc_jump_env; /* argument to SETJMP() */
# ifdef SIGHASARG # ifdef SIGHASARG
EXTERN int lc_signal; /* catched signal number, 0 when no was signal /* volatile because it is used in signal handlers. */
catched; used for mch_libcall() */ EXTERN volatile int lc_signal; /* caught signal number, 0 when no was signal
caught; used for mch_libcall() */
# endif # endif
EXTERN int lc_active INIT(= FALSE); /* TRUE when lc_jump_env is valid. */ /* volatile because it is used in signal handler deathtrap(). */
EXTERN volatile int lc_active INIT(= FALSE); /* TRUE when lc_jump_env is valid. */
#endif #endif
#if defined(FEAT_MBYTE) || defined(FEAT_POSTSCRIPT) #if defined(FEAT_MBYTE) || defined(FEAT_POSTSCRIPT)
@@ -986,7 +991,8 @@ EXTERN int curscript INIT(= 0); /* index in scriptin[] */
EXTERN FILE *scriptout INIT(= NULL); /* stream to write script to */ EXTERN FILE *scriptout INIT(= NULL); /* stream to write script to */
EXTERN int read_cmd_fd INIT(= 0); /* fd to read commands from */ EXTERN int read_cmd_fd INIT(= 0); /* fd to read commands from */
EXTERN int got_int INIT(= FALSE); /* set to TRUE when interrupt /* volatile because it is used in signal handler catch_sigint(). */
EXTERN volatile int got_int INIT(= FALSE); /* set to TRUE when interrupt
signal occurred */ signal occurred */
#ifdef USE_TERM_CONSOLE #ifdef USE_TERM_CONSOLE
EXTERN int term_console INIT(= FALSE); /* set to TRUE when console used */ EXTERN int term_console INIT(= FALSE); /* set to TRUE when console used */

View File

@@ -181,7 +181,8 @@ static RETSIGTYPE catch_sigpwr __ARGS(SIGPROTOARG);
&& defined(FEAT_TITLE) && !defined(FEAT_GUI_GTK) && defined(FEAT_TITLE) && !defined(FEAT_GUI_GTK)
# define SET_SIG_ALARM # define SET_SIG_ALARM
static RETSIGTYPE sig_alarm __ARGS(SIGPROTOARG); static RETSIGTYPE sig_alarm __ARGS(SIGPROTOARG);
static int sig_alarm_called; /* volatile because it is used in signal handler sig_alarm(). */
static volatile int sig_alarm_called;
#endif #endif
static RETSIGTYPE deathtrap __ARGS(SIGPROTOARG); static RETSIGTYPE deathtrap __ARGS(SIGPROTOARG);
@@ -201,13 +202,16 @@ static int save_patterns __ARGS((int num_pat, char_u **pat, int *num_file, char_
# define SIG_ERR ((RETSIGTYPE (*)())-1) # define SIG_ERR ((RETSIGTYPE (*)())-1)
#endif #endif
static int do_resize = FALSE; /* volatile because it is used in signal handler sig_winch(). */
static volatile int do_resize = FALSE;
#ifndef __EMX__ #ifndef __EMX__
static char_u *extra_shell_arg = NULL; static char_u *extra_shell_arg = NULL;
static int show_shell_mess = TRUE; static int show_shell_mess = TRUE;
#endif #endif
static int deadly_signal = 0; /* The signal we caught */ /* volatile because it is used in signal handler deathtrap(). */
static int in_mch_delay = FALSE; /* sleeping in mch_delay() */ static volatile int 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 int curr_tmode = TMODE_COOK; /* contains current terminal mode */ static int curr_tmode = TMODE_COOK; /* contains current terminal mode */
@@ -802,7 +806,7 @@ init_signal_stack()
#endif #endif
/* /*
* We need correct potatotypes for a signal function, otherwise mean compilers * We need correct prototypes for a signal function, otherwise mean compilers
* will barf when the second argument to signal() is ``wrong''. * will barf when the second argument to signal() is ``wrong''.
* Let me try it with a few tricky defines from my own osdef.h (jw). * Let me try it with a few tricky defines from my own osdef.h (jw).
*/ */
@@ -1068,13 +1072,18 @@ deathtrap SIGDEFARG(sigarg)
SIGRETURN; SIGRETURN;
} }
#ifdef _REENTRANT #if defined(_REENTRANT) && defined(SIGCONT)
/* /*
* On Solaris with multi-threading, suspending might not work immediately. * On Solaris with multi-threading, suspending might not work immediately.
* Catch the SIGCONT signal, which will be used as an indication whether the * Catch the SIGCONT signal, which will be used as an indication whether the
* suspending has been done or not. * suspending has been done or not.
*
* On Linux, signal is not always handled immediately either.
* See https://bugs.launchpad.net/bugs/291373
*
* volatile because it is used in in signal handler sigcont_handler().
*/ */
static int sigcont_received; static volatile int sigcont_received;
static RETSIGTYPE sigcont_handler __ARGS(SIGPROTOARG); static RETSIGTYPE sigcont_handler __ARGS(SIGPROTOARG);
/* /*
@@ -1118,15 +1127,28 @@ mch_suspend()
} }
# endif # endif
# ifdef _REENTRANT # if defined(_REENTRANT) && defined(SIGCONT)
sigcont_received = FALSE; sigcont_received = FALSE;
# endif # endif
kill(0, SIGTSTP); /* send ourselves a STOP signal */ kill(0, SIGTSTP); /* send ourselves a STOP signal */
# ifdef _REENTRANT # if defined(_REENTRANT) && defined(SIGCONT)
/* When we didn't suspend immediately in the kill(), do it now. Happens /*
* on multi-threaded Solaris. */ * Wait for the SIGCONT signal to be handled. It generally happens
if (!sigcont_received) * immediately, but somehow not all the time. Do not call pause()
pause(); * because there would be race condition which would hang Vim if
* signal happened in between the test of sigcont_received and the
* call to pause(). If signal is not yet received, call sleep(0)
* to just yield CPU. Signal should then be received. If somehow
* it's still not received, sleep 1, 2, 3 ms. Don't bother waiting
* further if signal is not received after 1+2+3+4 ms (not expected
* to happen).
*/
{
long wait;
for (wait = 0; !sigcont_received && wait <= 3L; wait++)
/* Loop is not entered most of the time */
mch_delay(wait, FALSE);
}
# endif # endif
# ifdef FEAT_TITLE # ifdef FEAT_TITLE
@@ -1175,7 +1197,7 @@ set_signals()
#ifdef SIGTSTP #ifdef SIGTSTP
signal(SIGTSTP, restricted ? SIG_IGN : SIG_DFL); signal(SIGTSTP, restricted ? SIG_IGN : SIG_DFL);
#endif #endif
#ifdef _REENTRANT #if defined(_REENTRANT) && defined(SIGCONT)
signal(SIGCONT, sigcont_handler); signal(SIGCONT, sigcont_handler);
#endif #endif
@@ -1234,7 +1256,7 @@ catch_int_signal()
reset_signals() reset_signals()
{ {
catch_signals(SIG_DFL, SIG_DFL); catch_signals(SIG_DFL, SIG_DFL);
#ifdef _REENTRANT #if defined(_REENTRANT) && defined(SIGCONT)
/* SIGCONT isn't in the list, because its default action is ignore */ /* SIGCONT isn't in the list, because its default action is ignore */
signal(SIGCONT, SIG_DFL); signal(SIGCONT, SIG_DFL);
#endif #endif
@@ -5899,7 +5921,9 @@ gpm_open()
* we are going to suspend or starting an external process * we are going to suspend or starting an external process
* so we shouldn't have problem with this * so we shouldn't have problem with this
*/ */
# ifdef SIGTSTP
signal(SIGTSTP, restricted ? SIG_IGN : SIG_DFL); signal(SIGTSTP, restricted ? SIG_IGN : SIG_DFL);
# endif
return 1; /* succeed */ return 1; /* succeed */
} }
if (gpm_fd == -2) if (gpm_fd == -2)

View File

@@ -676,6 +676,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
130,
/**/ /**/
129, 129,
/**/ /**/