Fix MS-Windows build broken by 2012-09-15T07:06:56Z!eggert@cs.ucla.edu, completing fix for bug #12446.

src/w32xfns.c:
 src/w32uniscribe.c:
 src/w32term.c:
 src/w32select.c:
 src/w32reg.c:
 src/w32proc.c:
 src/w32menu.c:
 src/w32inevt.c:
 src/w32heap.c:
 src/w32font.c:
 src/w32fns.c:
 src/w32console.c:
 src/w32.c:
 src/w16select.c: Remove inclusion of setjmp.h, as it is now included
 by lisp.h.  This completes removal of setjmp.h inclusion
 erroneously announced in the previous commit.
 src/lisp.h [!HAVE__SETJMP, !HAVE_SIGSETJMP]: Make the commentary
 more accurate.
 src/image.c (_setjmp) [!HAVE__SETJMP]: Define only if 'setjmp' is
 not defined as a macro.  The latter happens on MS-Windows.
This commit is contained in:
Eli Zaretskii 2012-09-15 11:03:11 +03:00
parent 0328b6de4a
commit 7105c8cbf3
17 changed files with 35 additions and 18 deletions

View file

@ -1,8 +1,34 @@
2012-09-15 Eli Zaretskii <eliz@gnu.org>
* w32xfns.c:
* w32uniscribe.c:
* w32term.c:
* w32select.c:
* w32reg.c:
* w32proc.c:
* w32menu.c:
* w32inevt.c:
* w32heap.c:
* w32font.c:
* w32fns.c:
* w32console.c:
* w32.c:
* w16select.c: Remove inclusion of setjmp.h, as it is now included
by lisp.h. This completes removal of setjmp.h inclusion
erroneously announced in the previous commit. (Bug#12446)
* lisp.h [!HAVE__SETJMP, !HAVE_SIGSETJMP]: Make the commentary
more accurate.
* image.c (_setjmp) [!HAVE__SETJMP]: Define only if 'setjmp' is
not defined as a macro. The latter happens on MS-Windows.
(Bug#12446)
2012-09-15 Paul Eggert <eggert@cs.ucla.edu>
Port better to POSIX hosts lacking _setjmp (Bug#12446).
* lisp.h: Include <setjmp.h> here, since we use its symbols here.
All instances of '#include <setjmp.h>' removed, if the
Some instances of '#include <setjmp.h>' removed, if the
only reason for the instance was because "lisp.h" was included.
(sys_jmp_buf, sys_setjmp, sys_longjmp): New symbols.
Unless otherwise specified, replace all uses of jmp_buf, _setjmp,

View file

@ -5516,9 +5516,13 @@ init_png_functions (Lisp_Object libraries)
/* Possibly inefficient/inexact substitutes for _setjmp and _longjmp.
Do not use sys_setjmp, as PNG supports only jmp_buf. The _longjmp
substitute may munge the signal mask, but that should be OK here. */
substitute may munge the signal mask, but that should be OK here.
MinGW (MS-Windows) uses _setjmp and defines setjmp to _setjmp in
the system header setjmp.h; don't mess up that. */
#ifndef HAVE__SETJMP
# define _setjmp(j) setjmp (j)
# ifndef setjmp
# define _setjmp(j) setjmp (j)
# endif
# define _longjmp longjmp
#endif

View file

@ -1977,7 +1977,8 @@ typedef sigjmp_buf sys_jmp_buf;
# define sys_setjmp(j) sigsetjmp (j, 0)
# define sys_longjmp(j, v) siglongjmp (j, v)
#else
/* A non-POSIX platform; assume longjmp does not affect the sigmask. */
/* A platform that uses neither _longjmp nor siglongjmp; assume
longjmp does not affect the sigmask. */
typedef jmp_buf sys_jmp_buf;
# define sys_setjmp(j) setjmp (j)
# define sys_longjmp(j, v) longjmp (j, v)

View file

@ -31,7 +31,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <dpmi.h>
#include <go32.h>
#include <sys/farptr.h>
#include <setjmp.h>
#include "lisp.h"
#include "dispextern.h" /* frame.h seems to want this */
#include "frame.h" /* Need this to get the X window of selected_frame */

View file

@ -33,7 +33,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <sys/utime.h>
#include <mbstring.h> /* for _mbspbrk */
#include <math.h>
#include <setjmp.h>
#include <time.h>
/* must include CRT headers *before* config.h */

View file

@ -26,7 +26,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <stdio.h>
#include <windows.h>
#include <setjmp.h>
#include "lisp.h"
#include "character.h"

View file

@ -26,7 +26,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <limits.h>
#include <errno.h>
#include <math.h>
#include <setjmp.h>
#include "lisp.h"
#include "w32term.h"

View file

@ -21,7 +21,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <math.h>
#include <ctype.h>
#include <commdlg.h>
#include <setjmp.h>
#include "lisp.h"
#include "w32term.h"

View file

@ -22,7 +22,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <config.h>
#include <stdio.h>
#include <setjmp.h>
#include "w32heap.h"
#include "lisp.h" /* for VALMASK */

View file

@ -25,7 +25,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <config.h>
#include <stdio.h>
#include <windows.h>
#include <setjmp.h>
#ifndef MOUSE_MOVED
#define MOUSE_MOVED 1

View file

@ -22,7 +22,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <signal.h>
#include <stdio.h>
#include <mbstring.h>
#include <setjmp.h>
#include "lisp.h"
#include "keyboard.h"

View file

@ -28,7 +28,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <fcntl.h>
#include <signal.h>
#include <sys/file.h>
#include <setjmp.h>
/* must include CRT headers *before* config.h */
#include <config.h>

View file

@ -19,7 +19,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
/* Written by Kevin Gallo */
#include <config.h>
#include <setjmp.h>
#include "lisp.h"
#include "w32term.h"
#include "blockinput.h"

View file

@ -73,7 +73,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
*/
#include <config.h>
#include <setjmp.h>
#include "lisp.h"
#include "w32term.h" /* for all of the w32 includes */
#include "w32heap.h" /* os_subtype */

View file

@ -20,7 +20,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <config.h>
#include <signal.h>
#include <stdio.h>
#include <setjmp.h>
#include "lisp.h"
#include "blockinput.h"
#include "w32term.h"

View file

@ -27,7 +27,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#define _WIN32_WINNT 0x500
#include <windows.h>
#include <usp10.h>
#include <setjmp.h>
#include "lisp.h"
#include "w32term.h"

View file

@ -19,7 +19,6 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <config.h>
#include <signal.h>
#include <stdio.h>
#include <setjmp.h>
#include "lisp.h"
#include "keyboard.h"
#include "frame.h"