* alloc.c: Do not define struct catchtag.
authorDan Nicolaescu <dann@ics.uci.edu>
Mon, 19 Oct 2009 04:27:09 +0000 (04:27 +0000)
committerDan Nicolaescu <dann@ics.uci.edu>
Mon, 19 Oct 2009 04:27:09 +0000 (04:27 +0000)
* eval.c: Move struct catchtag definition ...
* lisp.h: ... here.

* image.c: Move png.h #include earlier to avoid warnings.

* xterm.c:
* xsmfns.c:
* xselect.c:
* xrdb.c:
* xmenu.c:
* xftfont.c:
* xfont.c:
* xfns.c:
* xfaces.c:
* xdisp.c:
* window.c:
* widget.c:
* 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:
* vm-limit.c:
* unexsol.c:
* unexec.c:
* unexcw.c:
* unexaix.c:
* undo.c:
* tparam.c:
* textprop.c:
* terminfo.c:
* terminal.c:
* termcap.c:
* term.c:
* syntax.c:
* sound.c:
* sheap.c:
* search.c:
* scroll.c:
* region-cache.c:
* regex.c:
* ralloc.c:
* process.c:
* print.c:
* msdos.c:
* minibuf.c:
* menu.c:
* marker.c:
* macros.c:
* keymap.c:
* keyboard.c:
* intervals.c:
* insdel.c:
* indent.c:
* gtkutil.c:
* ftxfont.c:
* ftfont.c:
* fringe.c:
* frame.c:
* fontset.c:
* font.c:
* fns.c:
* floatfns.c:
* filelock.c:
* fileio.c:
* emacs.c:
* editfns.c:
* dosfns.c:
* doprnt.c:
* doc.c:
* dispnew.c:
* dired.c:
* dbusbind.c:
* data.c:
* composite.c:
* coding.c:
* cmds.c:
* cm.c:
* chartab.c:
* charset.c:
* character.c:
* ccl.c:
* category.c:
* casetab.c:
* casefiddle.c:
* callproc.c:
* callint.c:
* bytecode.c:
* buffer.c:
* atimer.c: Include setjmp.h.  (Bug#4643)

* xlwmenu.c:
* lwlib.c:
* lwlib-utils.c:
* lwlib-Xm.c:
* lwlib-Xlw.c:
* lwlib-Xaw.c: Include setjmp.h.

106 files changed:
lwlib/ChangeLog
lwlib/lwlib-Xaw.c
lwlib/lwlib-Xlw.c
lwlib/lwlib-Xm.c
lwlib/lwlib-utils.c
lwlib/lwlib.c
lwlib/xlwmenu.c
src/ChangeLog
src/alloc.c
src/atimer.c
src/buffer.c
src/bytecode.c
src/callint.c
src/callproc.c
src/casefiddle.c
src/casetab.c
src/category.c
src/ccl.c
src/character.c
src/charset.c
src/chartab.c
src/cm.c
src/cmds.c
src/coding.c
src/composite.c
src/data.c
src/dbusbind.c
src/dired.c
src/dispnew.c
src/doc.c
src/doprnt.c
src/dosfns.c
src/editfns.c
src/emacs.c
src/eval.c
src/fileio.c
src/filelock.c
src/floatfns.c
src/fns.c
src/font.c
src/fontset.c
src/frame.c
src/fringe.c
src/ftfont.c
src/ftxfont.c
src/gtkutil.c
src/image.c
src/indent.c
src/insdel.c
src/intervals.c
src/keyboard.c
src/keymap.c
src/lisp.h
src/macros.c
src/marker.c
src/menu.c
src/minibuf.c
src/msdos.c
src/print.c
src/process.c
src/ralloc.c
src/regex.c
src/region-cache.c
src/scroll.c
src/search.c
src/sheap.c
src/sound.c
src/syntax.c
src/term.c
src/termcap.c
src/terminal.c
src/terminfo.c
src/textprop.c
src/tparam.c
src/undo.c
src/unexaix.c
src/unexcw.c
src/unexec.c
src/unexsol.c
src/vm-limit.c
src/w16select.c
src/w32.c
src/w32console.c
src/w32fns.c
src/w32font.c
src/w32heap.c
src/w32inevt.c
src/w32menu.c
src/w32proc.c
src/w32reg.c
src/w32select.c
src/w32term.c
src/w32uniscribe.c
src/w32xfns.c
src/widget.c
src/window.c
src/xdisp.c
src/xfaces.c
src/xfns.c
src/xfont.c
src/xftfont.c
src/xmenu.c
src/xrdb.c
src/xselect.c
src/xsmfns.c
src/xterm.c

index bd9902c..27f14f5 100644 (file)
@@ -1,3 +1,12 @@
+2009-10-19  Dan Nicolaescu  <dann@ics.uci.edu>
+
+       * xlwmenu.c:
+       * lwlib.c:
+       * lwlib-utils.c:
+       * lwlib-Xm.c:
+       * lwlib-Xlw.c:
+       * lwlib-Xaw.c: Include setjmp.h.
+
 2009-06-21  Chong Yidong  <cyd@stupidchicken.com>
 
        * Branch for 23.1.
index 14d85db..4923e58 100644 (file)
@@ -25,6 +25,7 @@ Boston, MA 02110-1301, USA.  */
 #endif
 
 #include <stdio.h>
+#include <setjmp.h>
 
 #include "../src/lisp.h"
 
index 658899f..5ed075c 100644 (file)
@@ -24,6 +24,7 @@ Boston, MA 02110-1301, USA.  */
 #include <config.h>
 #endif
 
+#include <setjmp.h>
 #include "lisp.h"
 
 #include "lwlib-Xlw.h"
index 6fdd236..48faea3 100644 (file)
@@ -26,6 +26,7 @@ Boston, MA 02110-1301, USA.  */
 
 #include <unistd.h>
 #include <stdio.h>
+#include <setjmp.h>
 
 #include <X11/StringDefs.h>
 #include <X11/IntrinsicP.h>
index dbdaf3c..1b9f04f 100644 (file)
@@ -31,6 +31,7 @@ Boston, MA 02110-1301, USA.  */
 #undef index
 #undef rindex
 
+#include <setjmp.h>
 #include "../src/lisp.h"
 
 #include <X11/Xatom.h>
index 80619e5..c887d8b 100644 (file)
@@ -24,6 +24,7 @@ Boston, MA 02110-1301, USA.  */
 #include <config.h>
 #endif
 
+#include <setjmp.h>
 #include "../src/lisp.h"
 
 #include <sys/types.h>
index db12eb4..8eb6c75 100644 (file)
@@ -26,6 +26,7 @@ Boston, MA 02110-1301, USA.  */
 #include <config.h>
 #endif
 
+#include <setjmp.h>
 #include "lisp.h"
 
 #include <stdio.h>
index 7d4c0a2..51c01fb 100644 (file)
@@ -1,3 +1,106 @@
+2009-10-19  Dan Nicolaescu  <dann@ics.uci.edu>
+
+       * alloc.c: Do not define struct catchtag.
+       * eval.c: Move struct catchtag definition ...
+       * lisp.h: ... here.
+
+       * image.c: Move png.h #include earlier to avoid warnings.
+
+       * xterm.c:
+       * xsmfns.c:
+       * xselect.c:
+       * xrdb.c:
+       * xmenu.c:
+       * xftfont.c:
+       * xfont.c:
+       * xfns.c:
+       * xfaces.c:
+       * xdisp.c:
+       * window.c:
+       * widget.c:
+       * 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:
+       * vm-limit.c:
+       * unexsol.c:
+       * unexec.c:
+       * unexcw.c:
+       * unexaix.c:
+       * undo.c:
+       * tparam.c:
+       * textprop.c:
+       * terminfo.c:
+       * terminal.c:
+       * termcap.c:
+       * term.c:
+       * syntax.c:
+       * sound.c:
+       * sheap.c:
+       * search.c:
+       * scroll.c:
+       * region-cache.c:
+       * regex.c:
+       * ralloc.c:
+       * process.c:
+       * print.c:
+       * msdos.c:
+       * minibuf.c:
+       * menu.c:
+       * marker.c:
+       * macros.c:
+       * keymap.c:
+       * keyboard.c:
+       * intervals.c:
+       * insdel.c:
+       * indent.c:
+       * gtkutil.c:
+       * ftxfont.c:
+       * ftfont.c:
+       * fringe.c:
+       * frame.c:
+       * fontset.c:
+       * font.c:
+       * fns.c:
+       * floatfns.c:
+       * filelock.c:
+       * fileio.c:
+       * emacs.c:
+       * editfns.c:
+       * dosfns.c:
+       * doprnt.c:
+       * doc.c:
+       * dispnew.c:
+       * dired.c:
+       * dbusbind.c:
+       * data.c:
+       * composite.c:
+       * coding.c:
+       * cmds.c:
+       * cm.c:
+       * chartab.c:
+       * charset.c:
+       * character.c:
+       * ccl.c:
+       * category.c:
+       * casetab.c:
+       * casefiddle.c:
+       * callproc.c:
+       * callint.c:
+       * bytecode.c:
+       * buffer.c:
+       * atimer.c: Include setjmp.h.  (Bug#4643)
+
 2009-10-18  Stefan Monnier  <monnier@iro.umontreal.ca>
 
        Remove leftover table unibyte_to_multibyte_table.
index d11eff3..557621a 100644 (file)
@@ -21,6 +21,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <config.h>
 #include <stdio.h>
 #include <limits.h>            /* For CHAR_BIT.  */
+#include <setjmp.h>
 
 #ifdef STDC_HEADERS
 #include <stddef.h>            /* For offsetof, used by PSEUDOVECSIZE. */
@@ -4939,13 +4940,6 @@ staticpro (varaddress)
     abort ();
 }
 
-struct catchtag
-{
-    Lisp_Object tag;
-    Lisp_Object val;
-    struct catchtag *next;
-};
-
 \f
 /***********************************************************************
                          Protection from GC
index 4fc593b..308d468 100644 (file)
@@ -20,6 +20,7 @@ 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 <syssignal.h>
 #include <systime.h>
index d74a40a..2fc7a8b 100644 (file)
@@ -26,6 +26,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <sys/param.h>
 #include <errno.h>
 #include <stdio.h>
+#include <setjmp.h>
 
 #ifndef USE_CRT_DLL
 extern int errno;
index 0335af8..4a1e2da 100644 (file)
@@ -34,6 +34,7 @@ by Hallvard:
  */
 
 #include <config.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "buffer.h"
 #include "character.h"
index 074f9c0..a9f8f23 100644 (file)
@@ -20,6 +20,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 
 #include <config.h>
+#include <setjmp.h>
 
 #include "lisp.h"
 #include "buffer.h"
index 14d1ac0..b1918b9 100644 (file)
@@ -23,6 +23,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <signal.h>
 #include <errno.h>
 #include <stdio.h>
+#include <setjmp.h>
 
 #ifndef USE_CRT_DLL
 extern int errno;
index f01faa0..112198b 100644 (file)
@@ -19,6 +19,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 
 #include <config.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "buffer.h"
 #include "character.h"
index 95fca03..5ae4ee2 100644 (file)
@@ -20,6 +20,7 @@ You should have received a copy of the GNU General Public License
 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "buffer.h"
 #include "character.h"
index 84af413..babed58 100644 (file)
@@ -30,6 +30,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 #include <ctype.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "buffer.h"
 #include "character.h"
index f110291..0360015 100644 (file)
--- a/src/ccl.c
+++ b/src/ccl.c
@@ -27,6 +27,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <config.h>
 
 #include <stdio.h>
+#include <setjmp.h>
 
 #include "lisp.h"
 #include "character.h"
index e289644..bfe9976 100644 (file)
@@ -34,6 +34,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #ifdef emacs
 
 #include <sys/types.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "character.h"
 #include "buffer.h"
index 7ca9240..cfdf955 100644 (file)
@@ -31,6 +31,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <unistd.h>
 #include <ctype.h>
 #include <sys/types.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "character.h"
 #include "charset.h"
index 30f7e8b..79906c3 100644 (file)
@@ -19,6 +19,7 @@ You should have received a copy of the GNU General Public License
 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "character.h"
 #include "charset.h"
index 563a488..4077073 100644 (file)
--- a/src/cm.c
+++ b/src/cm.c
@@ -21,6 +21,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 #include <stdio.h>
+#include <setjmp.h>
 
 #include "lisp.h"
 #include "frame.h"
index 19073dc..5b5c6de 100644 (file)
@@ -20,6 +20,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 
 #include <config.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "commands.h"
 #include "buffer.h"
index 405284f..678bafa 100644 (file)
@@ -289,6 +289,7 @@ encode_coding_XXX (coding)
 
 #include <config.h>
 #include <stdio.h>
+#include <setjmp.h>
 
 #include "lisp.h"
 #include "buffer.h"
index cd84f39..a654b5e 100644 (file)
@@ -24,6 +24,7 @@ You should have received a copy of the GNU General Public License
 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "buffer.h"
 #include "character.h"
index 96e29a6..6d469e1 100644 (file)
@@ -22,6 +22,7 @@ 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 "puresize.h"
 #include "character.h"
index f4a5c68..86ec866 100644 (file)
@@ -22,6 +22,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <stdlib.h>
 #include <stdio.h>
 #include <dbus/dbus.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "frame.h"
 #include "termhooks.h"
index 10d8782..67002d3 100644 (file)
@@ -23,6 +23,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <stdio.h>
 #include <sys/types.h>
 #include <sys/stat.h>
+#include <setjmp.h>
 
 #ifdef HAVE_PWD_H
 #include <pwd.h>
index e43a1a9..ba50b00 100644 (file)
@@ -22,6 +22,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <signal.h>
 #include <stdio.h>
 #include <ctype.h>
+#include <setjmp.h>
 
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
index 71308e6..6a53e0d 100644 (file)
--- a/src/doc.c
+++ b/src/doc.c
@@ -24,6 +24,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <sys/types.h>
 #include <sys/file.h>  /* Must be after sys/types.h for USG*/
 #include <ctype.h>
+#include <setjmp.h>
 
 #ifdef HAVE_FCNTL_H
 #include <fcntl.h>
index 95d6b78..2d5b893 100644 (file)
@@ -23,6 +23,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <config.h>
 #include <stdio.h>
 #include <ctype.h>
+#include <setjmp.h>
 
 #ifdef STDC_HEADERS
 #include <float.h>
index 62594f1..30daed3 100644 (file)
@@ -26,6 +26,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <stdio.h>
 #include <string.h>
 #include <dos.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "buffer.h"
 #include "termchar.h"
index 859e396..8dfea1f 100644 (file)
@@ -22,6 +22,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <config.h>
 #include <sys/types.h>
 #include <stdio.h>
+#include <setjmp.h>
 
 #ifdef HAVE_PWD_H
 #include <pwd.h>
index 1afcd08..2724aee 100644 (file)
@@ -26,6 +26,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <sys/types.h>
 #include <sys/file.h>
+#include <setjmp.h>
 
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
index 2098839..4611731 100644 (file)
@@ -20,12 +20,12 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 
 #include <config.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "blockinput.h"
 #include "commands.h"
 #include "keyboard.h"
 #include "dispextern.h"
-#include <setjmp.h>
 
 #if HAVE_X_WINDOWS
 #include "xterm.h"
@@ -49,41 +49,6 @@ struct backtrace
 
 struct backtrace *backtrace_list;
 
-/* This structure helps implement the `catch' and `throw' control
-   structure.  A struct catchtag contains all the information needed
-   to restore the state of the interpreter after a non-local jump.
-
-   Handlers for error conditions (represented by `struct handler'
-   structures) just point to a catch tag to do the cleanup required
-   for their jumps.
-
-   catchtag structures are chained together in the C calling stack;
-   the `next' member points to the next outer catchtag.
-
-   A call like (throw TAG VAL) searches for a catchtag whose `tag'
-   member is TAG, and then unbinds to it.  The `val' member is used to
-   hold VAL while the stack is unwound; `val' is returned as the value
-   of the catch form.
-
-   All the other members are concerned with restoring the interpreter
-   state.  */
-
-struct catchtag
-{
-  Lisp_Object tag;
-  Lisp_Object val;
-  struct catchtag *next;
-  struct gcpro *gcpro;
-  jmp_buf jmp;
-  struct backtrace *backlist;
-  struct handler *handlerlist;
-  int lisp_eval_depth;
-  int pdlcount;
-  int poll_suppress_count;
-  int interrupt_input_blocked;
-  struct byte_stack *byte_stack;
-};
-
 struct catchtag *catchlist;
 
 #ifdef DEBUG_GCPRO
index cfe1f54..b83ef6f 100644 (file)
@@ -28,6 +28,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <stdio.h>
 #include <sys/types.h>
 #include <sys/stat.h>
+#include <setjmp.h>
 
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
index c845a80..bed0057 100644 (file)
@@ -24,6 +24,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <sys/stat.h>
 #include <signal.h>
 #include <stdio.h>
+#include <setjmp.h>
 
 #ifdef HAVE_PWD_H
 #include <pwd.h>
index 15077ef..5aaf5f7 100644 (file)
@@ -48,6 +48,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 #include <signal.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "syssignal.h"
 
index e143125..be5d9a9 100644 (file)
--- a/src/fns.c
+++ b/src/fns.c
@@ -24,6 +24,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <unistd.h>
 #endif
 #include <time.h>
+#include <setjmp.h>
 
 /* Note on some machines this defines `vector' as a typedef,
    so make sure we don't use that name in this file.  */
index 2e5db2d..6e33b9b 100644 (file)
@@ -23,6 +23,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <stdio.h>
 #include <stdlib.h>
 #include <ctype.h>
+#include <setjmp.h>
 
 #include "lisp.h"
 #include "buffer.h"
index 35e186b..cba84dc 100644 (file)
@@ -28,6 +28,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 #include <stdio.h>
+#include <setjmp.h>
 
 #include "lisp.h"
 #include "blockinput.h"
index 47e084e..a66d4dd 100644 (file)
@@ -21,6 +21,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <stdio.h>
 #include <ctype.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "character.h"
 #ifdef HAVE_X_WINDOWS
index 41fc24d..df62bee 100644 (file)
@@ -20,6 +20,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 #include <stdio.h>
+#include <setjmp.h>
 
 #include "lisp.h"
 #include "frame.h"
index 367b796..ed9cb6f 100644 (file)
@@ -21,6 +21,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 #include <stdio.h>
+#include <setjmp.h>
 
 #include <fontconfig/fontconfig.h>
 #include <fontconfig/fcfreetype.h>
index 2cf45bb..1f97a94 100644 (file)
@@ -21,6 +21,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 #include <stdio.h>
+#include <setjmp.h>
 #include <X11/Xlib.h>
 
 #include "lisp.h"
index 9da2c7e..8aa877a 100644 (file)
@@ -23,6 +23,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <string.h>
 #include <signal.h>
 #include <stdio.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "xterm.h"
 #include "blockinput.h"
index fa4eecd..d35bd83 100644 (file)
@@ -27,6 +27,14 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <unistd.h>
 #endif
 
+#ifdef HAVE_PNG
+#if defined HAVE_LIBPNG_PNG_H
+# include <libpng/png.h>
+#else
+# include <png.h>
+#endif
+#endif 
+
 /* This makes the fields of a Display accessible, in Xlib header files.  */
 
 #define XLIB_ILLEGAL_ACCESS
@@ -5787,12 +5795,6 @@ png_image_p (object)
 
 #ifdef HAVE_PNG
 
-#if defined HAVE_LIBPNG_PNG_H
-# include <libpng/png.h>
-#else
-# include <png.h>
-#endif
-
 #ifdef HAVE_NTGUI
 /* PNG library details.  */
 
index f10b235..5a73fa1 100644 (file)
@@ -20,6 +20,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 #include <stdio.h>
+#include <setjmp.h>
 
 #include "lisp.h"
 #include "buffer.h"
index b09bed6..2790116 100644 (file)
@@ -20,6 +20,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 
 #include <config.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "intervals.h"
 #include "buffer.h"
index ee18dd5..bb60233 100644 (file)
@@ -39,6 +39,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 
 #include <config.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "intervals.h"
 #include "buffer.h"
index 396f22f..de4e1c5 100644 (file)
@@ -21,6 +21,7 @@ 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 "termchar.h"
 #include "termopts.h"
index e4f68d3..d050191 100644 (file)
@@ -21,6 +21,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 #include <stdio.h>
+#include <setjmp.h>
 #if HAVE_ALLOCA_H
 # include <alloca.h>
 #endif
index 6751898..4685578 100644 (file)
@@ -1826,6 +1826,41 @@ struct handler
 
 extern struct handler *handlerlist;
 
+/* This structure helps implement the `catch' and `throw' control
+   structure.  A struct catchtag contains all the information needed
+   to restore the state of the interpreter after a non-local jump.
+
+   Handlers for error conditions (represented by `struct handler'
+   structures) just point to a catch tag to do the cleanup required
+   for their jumps.
+
+   catchtag structures are chained together in the C calling stack;
+   the `next' member points to the next outer catchtag.
+
+   A call like (throw TAG VAL) searches for a catchtag whose `tag'
+   member is TAG, and then unbinds to it.  The `val' member is used to
+   hold VAL while the stack is unwound; `val' is returned as the value
+   of the catch form.
+
+   All the other members are concerned with restoring the interpreter
+   state.  */
+
+struct catchtag
+{
+  Lisp_Object tag;
+  Lisp_Object val;
+  struct catchtag *next;
+  struct gcpro *gcpro;
+  jmp_buf jmp;
+  struct backtrace *backlist;
+  struct handler *handlerlist;
+  int lisp_eval_depth;
+  int pdlcount;
+  int poll_suppress_count;
+  int interrupt_input_blocked;
+  struct byte_stack *byte_stack;
+};
+
 extern struct catchtag *catchlist;
 extern struct backtrace *backtrace_list;
 
index c6ae0de..0d69b92 100644 (file)
@@ -19,6 +19,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 
 #include <config.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "macros.h"
 #include "commands.h"
index dbaaf87..fd2b8b9 100644 (file)
@@ -19,6 +19,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 
 #include <config.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "buffer.h"
 #include "character.h"
index 5331cbc..74d455a 100644 (file)
@@ -19,6 +19,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 #include <stdio.h>
+#include <setjmp.h>
 
 #include "lisp.h"
 #include "keyboard.h"
index 138581f..fc87637 100644 (file)
@@ -21,6 +21,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 #include <stdio.h>
+#include <setjmp.h>
 
 #include "lisp.h"
 #include "commands.h"
index 9783e8c..b6820b5 100644 (file)
@@ -26,6 +26,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <config.h>
 
 #ifdef MSDOS
+#include <setjmp.h>
 #include "lisp.h"
 #include <stdio.h>
 #include <stdlib.h>
index 5eee386..f90ec27 100644 (file)
@@ -21,6 +21,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 #include <stdio.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "buffer.h"
 #include "character.h"
index 99f57d3..b405f1e 100644 (file)
@@ -38,6 +38,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <sys/types.h>         /* some typedefs are used in sys/file.h */
 #include <sys/file.h>
 #include <sys/stat.h>
+#include <setjmp.h>
 #ifdef HAVE_INTTYPES_H
 #include <inttypes.h>
 #endif
@@ -7641,6 +7642,7 @@ The variable takes effect when `start-process' is called.  */);
 #include <sys/stat.h>
 #include <stdlib.h>
 #include <fcntl.h>
+#include <setjmp.h>
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
index f5ebb84..6faee2c 100644 (file)
@@ -26,6 +26,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #ifdef emacs
 
 #include <config.h>
+#include <setjmp.h>
 #include "lisp.h"              /* Needed for VALBITS.  */
 #include "blockinput.h"
 
index 0c9e137..ac7b751 100644 (file)
    that make sense only in Emacs. */
 #ifdef emacs
 
+# include <setjmp.h>
 # include "lisp.h"
 # include "buffer.h"
 
index 1f1df5f..22caf6e 100644 (file)
@@ -20,6 +20,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 #include <stdio.h>
+#include <setjmp.h>
 
 #include "lisp.h"
 #include "buffer.h"
index 4d57a2a..c7c2630 100644 (file)
@@ -21,6 +21,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <config.h>
 #include <stdio.h>
 #include <string.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "termchar.h"
 #include "dispextern.h"
index e6ae4b6..8bfe61d 100644 (file)
@@ -20,6 +20,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 
 #include <config.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "syntax.h"
 #include "category.h"
index 96511e6..5e32776 100644 (file)
@@ -20,6 +20,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 #include <stdio.h>
+#include <setjmp.h>
 #include "lisp.h"
 
 #include <unistd.h>
index 58a8a9c..6f1f538 100644 (file)
@@ -44,6 +44,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <unistd.h>
 #include <sys/types.h>
 #include <errno.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "dispextern.h"
 #include "atimer.h"
index 3c5a21d..048f0ee 100644 (file)
@@ -21,6 +21,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 #include <ctype.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "commands.h"
 #include "buffer.h"
index 9e18df3..d860a93 100644 (file)
@@ -37,6 +37,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <signal.h>
 #include <stdarg.h>
+#include <setjmp.h>
 
 #include "lisp.h"
 #include "termchar.h"
index 2ad31d7..46254c6 100644 (file)
@@ -24,6 +24,7 @@ Boston, MA 02110-1301, USA.  */
 
 #ifdef emacs
 
+#include <setjmp.h>
 #include <lisp.h>              /* xmalloc is here */
 /* Get the O_* definitions for open et al.  */
 #include <sys/file.h>
index d9951db..c89f2e6 100644 (file)
@@ -18,6 +18,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 #include <stdio.h>
+#include <setjmp.h>
 
 #include "lisp.h"
 #include "frame.h"
index 9b6b76b..03187c6 100644 (file)
@@ -18,6 +18,7 @@ You should have received a copy of the GNU General Public License
 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
+#include <setjmp.h>
 #include "lisp.h"
 
 /* Define these variables that serve as global parameters to termcap,
index 0018088..e82af12 100644 (file)
@@ -18,6 +18,7 @@ You should have received a copy of the GNU General Public License
 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "intervals.h"
 #include "buffer.h"
index dabf0ed..dcf79a3 100644 (file)
@@ -23,6 +23,7 @@ Boston, MA 02110-1301, USA.  */
 #endif
 
 #ifdef emacs
+#include <setjmp.h>
 #include "lisp.h"              /* for xmalloc */
 #else
 
index 39ca983..f2a37cb 100644 (file)
@@ -19,6 +19,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 
 #include <config.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "buffer.h"
 #include "commands.h"
index c224a36..5f61b5a 100644 (file)
@@ -104,6 +104,7 @@ static int adjust_lnnoptrs (int, int, char *);
 static int pagemask;
 
 #ifdef emacs
+#include <setjmp.h>
 #include "lisp.h"
 
 static void
index a7f4b6b..1e65d65 100644 (file)
@@ -19,6 +19,7 @@ You should have received a copy of the GNU General Public License
 along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
+#include <setjmp.h>
 #include <lisp.h>
 #include <stdio.h>
 #include <fcntl.h>
index a6852af..c655583 100644 (file)
@@ -204,6 +204,7 @@ static int pagemask;
 
 #ifdef emacs
 
+#include <setjmp.h>
 #include "lisp.h"
 
 static
index 9f919fa..04e3f40 100644 (file)
@@ -3,6 +3,7 @@
 #include <config.h>
 #include <stdlib.h>
 #include <dlfcn.h>
+#include <setjmp.h>
 
 #include "lisp.h"
 #include "buffer.h"
index 5abf048..06e99c6 100644 (file)
@@ -19,6 +19,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #ifdef emacs
 #include <config.h>
+#include <setjmp.h>
 #include "lisp.h"
 #endif
 
index 91ce8f1..4d24760 100644 (file)
@@ -32,6 +32,7 @@ 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 */
index e8b7abc..786f8e2 100644 (file)
--- a/src/w32.c
+++ b/src/w32.c
@@ -34,6 +34,7 @@ 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>
 
 /* must include CRT headers *before* config.h */
 
index 947ff75..6b96c05 100644 (file)
@@ -29,6 +29,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <stdio.h>
 #include <windows.h>
 #include <string.h>
+#include <setjmp.h>
 
 #include "lisp.h"
 #include "character.h"
index 8003d79..c06fa4e 100644 (file)
@@ -27,6 +27,7 @@ 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"
index 995500a..6946251 100644 (file)
@@ -21,6 +21,7 @@ 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"
index efdcdfa..408917d 100644 (file)
@@ -27,6 +27,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <stdlib.h>
 #include <stdio.h>
+#include <setjmp.h>
 
 #include "w32heap.h"
 #include "lisp.h"  /* for VALMASK */
index ac7ca64..960e14d 100644 (file)
@@ -30,6 +30,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <stdlib.h>
 #include <stdio.h>
 #include <windows.h>
+#include <setjmp.h>
 
 #ifndef MOUSE_MOVED
 #define MOUSE_MOVED   1
index 677de1b..c573e37 100644 (file)
@@ -23,6 +23,7 @@ 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"
index 40829f0..ab5c91f 100644 (file)
@@ -29,6 +29,7 @@ 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 */
 
index 2b5b352..94f5196 100644 (file)
@@ -20,6 +20,7 @@ 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"
index ce93b54..9c67fab 100644 (file)
@@ -73,6 +73,7 @@ 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 */
index b7642b4..008042c 100644 (file)
@@ -22,6 +22,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <signal.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "blockinput.h"
 #include "w32term.h"
index 9e75b67..2cb55d4 100644 (file)
@@ -27,6 +27,7 @@ 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"
index 5bf3996..37ec500 100644 (file)
@@ -20,6 +20,7 @@ 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"
index 91072c4..32b3649 100644 (file)
@@ -31,6 +31,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 #include <stdio.h>
+#include <setjmp.h>
 #include "lisp.h"
 #include "xterm.h"
 
index 9b50a85..4630b6d 100644 (file)
@@ -21,6 +21,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 #include <stdio.h>
+#include <setjmp.h>
 
 #include "lisp.h"
 #include "buffer.h"
index a750a1b..f887504 100644 (file)
@@ -168,6 +168,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <config.h>
 #include <stdio.h>
 #include <limits.h>
+#include <setjmp.h>
 
 #include "lisp.h"
 #include "keyboard.h"
index 4f808e4..f120dfc 100644 (file)
@@ -204,6 +204,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <stdio.h>              /* This needs to be before termchar.h */
+#include <setjmp.h>
 
 #include "lisp.h"
 #include "character.h"
index 87ff21b..4fc0892 100644 (file)
@@ -21,6 +21,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <config.h>
 #include <stdio.h>
 #include <math.h>
+#include <setjmp.h>
 
 #ifdef HAVE_UNISTD_H
 #include <unistd.h>
index 7db7cae..36ac09f 100644 (file)
@@ -22,6 +22,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <config.h>
 #include <stdio.h>
 #include <stdlib.h>
+#include <setjmp.h>
 #include <X11/Xlib.h>
 
 #include "lisp.h"
index 2b576c3..e66b538 100644 (file)
@@ -21,6 +21,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 #include <stdio.h>
+#include <setjmp.h>
 #include <X11/Xlib.h>
 #include <X11/Xft/Xft.h>
 
index c6d7b0d..f899dda 100644 (file)
@@ -37,6 +37,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #endif
 
 #include <stdio.h>
+#include <setjmp.h>
 
 #include "lisp.h"
 #include "keyboard.h"
index fac97e4..3ae7068 100644 (file)
@@ -31,6 +31,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <epaths.h>
 
 #include <stdio.h>
+#include <setjmp.h>
 
 #if 1 /* I'd really appreciate it if this code could go away...  -JimB */
 /* This avoids lossage in the `dual-universe' headers on AT&T SysV
index 5cf4f74..79e0c0a 100644 (file)
@@ -22,6 +22,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <config.h>
 #include <stdio.h>      /* termhooks.h needs this */
+#include <setjmp.h>
 
 #ifdef HAVE_SYS_TYPES_H
 #include <sys/types.h>
index 80c4802..3e8220b 100644 (file)
@@ -32,6 +32,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 
 #include <sys/param.h>
 #include <stdio.h>
+#include <setjmp.h>
 
 #include "lisp.h"
 #include "systime.h"
index 72aea94..c77136e 100644 (file)
@@ -28,6 +28,7 @@ along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.  */
 #include <signal.h>
 
 #include <stdio.h>
+#include <setjmp.h>
 
 #ifdef HAVE_X_WINDOWS