summaryrefslogtreecommitdiffstats
path: root/source/ap/vim/patches/7.2.130
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2009-08-26 10:00:38 -0500
committer Eric Hameleers <alien@slackware.com>2018-05-31 22:41:17 +0200
commit5a12e7c134274dba706667107d10d231517d3e05 (patch)
tree55718d5acb710fde798d9f38d0bbaf594ed4b296 /source/ap/vim/patches/7.2.130
downloadcurrent-5a12e7c134274dba706667107d10d231517d3e05.tar.gz
current-5a12e7c134274dba706667107d10d231517d3e05.tar.xz
Slackware 13.0slackware-13.0
Wed Aug 26 10:00:38 CDT 2009 Slackware 13.0 x86_64 is released as stable! Thanks to everyone who helped make this release possible -- see the RELEASE_NOTES for the credits. The ISOs are off to the replicator. This time it will be a 6 CD-ROM 32-bit set and a dual-sided 32-bit/64-bit x86/x86_64 DVD. We're taking pre-orders now at store.slackware.com. Please consider picking up a copy to help support the project. Once again, thanks to the entire Slackware community for all the help testing and fixing things and offering suggestions during this development cycle. As always, have fun and enjoy! -P.
Diffstat (limited to 'source/ap/vim/patches/7.2.130')
-rw-r--r--source/ap/vim/patches/7.2.130413
1 files changed, 413 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.2.130 b/source/ap/vim/patches/7.2.130
new file mode 100644
index 000000000..8d6546820
--- /dev/null
+++ b/source/ap/vim/patches/7.2.130
@@ -0,0 +1,413 @@
+To: vim-dev@vim.org
+Subject: Patch 7.2.130
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.2.130
+Problem: Vim may haing until CTRL-C is typed when using CTRL-Z.
+Solution: Avoid using pause(). Also use "volatile" for variables used in
+ signal functions. (Dominique Pelle)
+Files: src/auto/configure, src/configure.in, src/config.h.in,
+ src/globals.h, src/os_unix.c
+
+
+*** ../vim-7.2.129/src/auto/configure Thu Nov 20 10:36:04 2008
+--- src/auto/configure Mon Mar 2 02:36:52 2009
+***************
+*** 11565,11570 ****
+--- 11565,11631 ----
+
+ 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_n "checking for mode_t... " >&6; }
+ if test "${ac_cv_type_mode_t+set}" = set; then
+*** ../vim-7.2.129/src/configure.in Thu Nov 20 10:36:04 2008
+--- src/configure.in Sun Feb 22 21:47:44 2009
+***************
+*** 2148,2153 ****
+--- 2148,2154 ----
+ dnl Checks for typedefs, structures, and compiler characteristics.
+ AC_PROG_GCC_TRADITIONAL
+ AC_C_CONST
++ AC_C_VOLATILE
+ AC_TYPE_MODE_T
+ AC_TYPE_OFF_T
+ AC_TYPE_PID_T
+*** ../vim-7.2.129/src/config.h.in Tue Jun 24 23:47:46 2008
+--- src/config.h.in Mon Feb 23 00:13:17 2009
+***************
+*** 50,55 ****
+--- 50,58 ----
+ /* Define to empty if the keyword does not work. */
+ #undef const
+
++ /* Define to empty if the keyword does not work. */
++ #undef volatile
++
+ /* Define to `int' if <sys/types.h> doesn't define. */
+ #undef mode_t
+
+*** ../vim-7.2.129/src/globals.h Tue Jan 6 16:13:42 2009
+--- src/globals.h Mon Mar 2 02:40:16 2009
+***************
+*** 482,489 ****
+ /*
+ * While executing external commands or in Ex mode, should not insert GUI
+ * events in the input buffer: Set hold_gui_events to non-zero.
+ */
+! EXTERN int hold_gui_events INIT(= 0);
+
+ /*
+ * When resizing the shell is postponed, remember the new size, and call
+--- 482,491 ----
+ /*
+ * While executing external commands or in Ex mode, should not insert GUI
+ * events in the input buffer: Set hold_gui_events to non-zero.
++ *
++ * volatile because it is used in signal handler sig_sysmouse().
+ */
+! EXTERN volatile int hold_gui_events INIT(= 0);
+
+ /*
+ * When resizing the shell is postponed, remember the new size, and call
+***************
+*** 597,603 ****
+ EXTERN int really_exiting INIT(= FALSE);
+ /* TRUE when we are sure to exit, e.g., after
+ * a deadly signal */
+! EXTERN int full_screen INIT(= FALSE);
+ /* TRUE when doing full-screen output
+ * otherwise only writing some messages */
+
+--- 599,606 ----
+ EXTERN int really_exiting INIT(= FALSE);
+ /* TRUE when we are sure to exit, e.g., after
+ * a deadly signal */
+! /* volatile because it is used in signal handler deathtrap(). */
+! EXTERN volatile int full_screen INIT(= FALSE);
+ /* TRUE when doing full-screen output
+ * otherwise only writing some messages */
+
+***************
+*** 739,748 ****
+ */
+ EXTERN JMP_BUF lc_jump_env; /* argument to SETJMP() */
+ # ifdef SIGHASARG
+! EXTERN int lc_signal; /* catched signal number, 0 when no was signal
+! catched; used for mch_libcall() */
+ # endif
+! EXTERN int lc_active INIT(= FALSE); /* TRUE when lc_jump_env is valid. */
+ #endif
+
+ #if defined(FEAT_MBYTE) || defined(FEAT_POSTSCRIPT)
+--- 747,758 ----
+ */
+ 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
+! 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. */
+ #endif
+
+ #if defined(FEAT_MBYTE) || defined(FEAT_POSTSCRIPT)
+***************
+*** 986,992 ****
+ EXTERN FILE *scriptout INIT(= NULL); /* stream to write script to */
+ EXTERN int read_cmd_fd INIT(= 0); /* fd to read commands from */
+
+! EXTERN int 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 */
+--- 996,1003 ----
+ 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
+ signal occurred */
+ #ifdef USE_TERM_CONSOLE
+ EXTERN int term_console INIT(= FALSE); /* set to TRUE when console used */
+*** ../vim-7.2.129/src/os_unix.c Sun Feb 22 02:51:37 2009
+--- src/os_unix.c Mon Mar 2 01:05:50 2009
+***************
+*** 181,187 ****
+ && defined(FEAT_TITLE) && !defined(FEAT_GUI_GTK)
+ # define SET_SIG_ALARM
+ static RETSIGTYPE sig_alarm __ARGS(SIGPROTOARG);
+! static int sig_alarm_called;
+ #endif
+ static RETSIGTYPE deathtrap __ARGS(SIGPROTOARG);
+
+--- 181,188 ----
+ && defined(FEAT_TITLE) && !defined(FEAT_GUI_GTK)
+ # define SET_SIG_ALARM
+ static RETSIGTYPE sig_alarm __ARGS(SIGPROTOARG);
+! /* volatile because it is used in signal handler sig_alarm(). */
+! static volatile int sig_alarm_called;
+ #endif
+ static RETSIGTYPE deathtrap __ARGS(SIGPROTOARG);
+
+***************
+*** 201,213 ****
+ # define SIG_ERR ((RETSIGTYPE (*)())-1)
+ #endif
+
+! static int do_resize = FALSE;
+ #ifndef __EMX__
+ static char_u *extra_shell_arg = NULL;
+ static int show_shell_mess = TRUE;
+ #endif
+! static int deadly_signal = 0; /* The signal we caught */
+! static int in_mch_delay = FALSE; /* sleeping in mch_delay() */
+
+ static int curr_tmode = TMODE_COOK; /* contains current terminal mode */
+
+--- 202,217 ----
+ # define SIG_ERR ((RETSIGTYPE (*)())-1)
+ #endif
+
+! /* volatile because it is used in signal handler sig_winch(). */
+! static volatile int do_resize = FALSE;
+ #ifndef __EMX__
+ static char_u *extra_shell_arg = NULL;
+ static int show_shell_mess = TRUE;
+ #endif
+! /* volatile because it is used in signal handler deathtrap(). */
+! 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 */
+
+***************
+*** 802,808 ****
+ #endif
+
+ /*
+! * We need correct potatotypes for a signal function, otherwise mean compilers
+ * 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).
+ */
+--- 806,812 ----
+ #endif
+
+ /*
+! * We need correct prototypes for a signal function, otherwise mean compilers
+ * 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).
+ */
+***************
+*** 1068,1080 ****
+ SIGRETURN;
+ }
+
+! #ifdef _REENTRANT
+ /*
+ * On Solaris with multi-threading, suspending might not work immediately.
+ * Catch the SIGCONT signal, which will be used as an indication whether the
+ * suspending has been done or not.
+ */
+! static int sigcont_received;
+ static RETSIGTYPE sigcont_handler __ARGS(SIGPROTOARG);
+
+ /*
+--- 1072,1089 ----
+ SIGRETURN;
+ }
+
+! #if defined(_REENTRANT) && defined(SIGCONT)
+ /*
+ * On Solaris with multi-threading, suspending might not work immediately.
+ * Catch the SIGCONT signal, which will be used as an indication whether the
+ * 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 volatile int sigcont_received;
+ static RETSIGTYPE sigcont_handler __ARGS(SIGPROTOARG);
+
+ /*
+***************
+*** 1118,1132 ****
+ }
+ # endif
+
+! # ifdef _REENTRANT
+ sigcont_received = FALSE;
+ # endif
+ kill(0, SIGTSTP); /* send ourselves a STOP signal */
+! # ifdef _REENTRANT
+! /* When we didn't suspend immediately in the kill(), do it now. Happens
+! * on multi-threaded Solaris. */
+! if (!sigcont_received)
+! pause();
+ # endif
+
+ # ifdef FEAT_TITLE
+--- 1127,1154 ----
+ }
+ # endif
+
+! # if defined(_REENTRANT) && defined(SIGCONT)
+ sigcont_received = FALSE;
+ # endif
+ kill(0, SIGTSTP); /* send ourselves a STOP signal */
+! # if defined(_REENTRANT) && defined(SIGCONT)
+! /*
+! * Wait for the SIGCONT signal to be handled. It generally happens
+! * immediately, but somehow not all the time. Do not call 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
+
+ # ifdef FEAT_TITLE
+***************
+*** 1175,1181 ****
+ #ifdef SIGTSTP
+ signal(SIGTSTP, restricted ? SIG_IGN : SIG_DFL);
+ #endif
+! #ifdef _REENTRANT
+ signal(SIGCONT, sigcont_handler);
+ #endif
+
+--- 1197,1203 ----
+ #ifdef SIGTSTP
+ signal(SIGTSTP, restricted ? SIG_IGN : SIG_DFL);
+ #endif
+! #if defined(_REENTRANT) && defined(SIGCONT)
+ signal(SIGCONT, sigcont_handler);
+ #endif
+
+***************
+*** 1234,1240 ****
+ reset_signals()
+ {
+ catch_signals(SIG_DFL, SIG_DFL);
+! #ifdef _REENTRANT
+ /* SIGCONT isn't in the list, because its default action is ignore */
+ signal(SIGCONT, SIG_DFL);
+ #endif
+--- 1256,1262 ----
+ reset_signals()
+ {
+ catch_signals(SIG_DFL, SIG_DFL);
+! #if defined(_REENTRANT) && defined(SIGCONT)
+ /* SIGCONT isn't in the list, because its default action is ignore */
+ signal(SIGCONT, SIG_DFL);
+ #endif
+***************
+*** 5899,5905 ****
+--- 5921,5929 ----
+ * we are going to suspend or starting an external process
+ * so we shouldn't have problem with this
+ */
++ # ifdef SIGTSTP
+ signal(SIGTSTP, restricted ? SIG_IGN : SIG_DFL);
++ # endif
+ return 1; /* succeed */
+ }
+ if (gpm_fd == -2)
+*** ../vim-7.2.129/src/version.c Mon Mar 2 02:11:09 2009
+--- src/version.c Mon Mar 2 02:36:00 2009
+***************
+*** 678,679 ****
+--- 678,681 ----
+ { /* Add new patch number below this line */
++ /**/
++ 130,
+ /**/
+
+--
+hundred-and-one symptoms of being an internet addict:
+148. You find it easier to dial-up the National Weather Service
+ Weather/your_town/now.html than to simply look out the window.
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ download, build and distribute -- http://www.A-A-P.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///