diff options
| author | Dan Nicolaescu | 2009-10-19 04:27:09 +0000 |
|---|---|---|
| committer | Dan Nicolaescu | 2009-10-19 04:27:09 +0000 |
| commit | d7306fe6b15ccdc49a066c05e5e86df8e005e859 (patch) | |
| tree | 94c95272d2541ca995105e2b64e96470be9702af /src/eval.c | |
| parent | a9e7f03da3de5df3c3d0563caf4d408ad0858de5 (diff) | |
| download | emacs-d7306fe6b15ccdc49a066c05e5e86df8e005e859.tar.gz emacs-d7306fe6b15ccdc49a066c05e5e86df8e005e859.zip | |
* 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)
* xlwmenu.c:
* lwlib.c:
* lwlib-utils.c:
* lwlib-Xm.c:
* lwlib-Xlw.c:
* lwlib-Xaw.c: Include setjmp.h.
Diffstat (limited to 'src/eval.c')
| -rw-r--r-- | src/eval.c | 37 |
1 files changed, 1 insertions, 36 deletions
diff --git a/src/eval.c b/src/eval.c index 20988392e5f..4611731a65e 100644 --- a/src/eval.c +++ b/src/eval.c | |||
| @@ -20,12 +20,12 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */ | |||
| 20 | 20 | ||
| 21 | 21 | ||
| 22 | #include <config.h> | 22 | #include <config.h> |
| 23 | #include <setjmp.h> | ||
| 23 | #include "lisp.h" | 24 | #include "lisp.h" |
| 24 | #include "blockinput.h" | 25 | #include "blockinput.h" |
| 25 | #include "commands.h" | 26 | #include "commands.h" |
| 26 | #include "keyboard.h" | 27 | #include "keyboard.h" |
| 27 | #include "dispextern.h" | 28 | #include "dispextern.h" |
| 28 | #include <setjmp.h> | ||
| 29 | 29 | ||
| 30 | #if HAVE_X_WINDOWS | 30 | #if HAVE_X_WINDOWS |
| 31 | #include "xterm.h" | 31 | #include "xterm.h" |
| @@ -49,41 +49,6 @@ struct backtrace | |||
| 49 | 49 | ||
| 50 | struct backtrace *backtrace_list; | 50 | struct backtrace *backtrace_list; |
| 51 | 51 | ||
| 52 | /* This structure helps implement the `catch' and `throw' control | ||
| 53 | structure. A struct catchtag contains all the information needed | ||
| 54 | to restore the state of the interpreter after a non-local jump. | ||
| 55 | |||
| 56 | Handlers for error conditions (represented by `struct handler' | ||
| 57 | structures) just point to a catch tag to do the cleanup required | ||
| 58 | for their jumps. | ||
| 59 | |||
| 60 | catchtag structures are chained together in the C calling stack; | ||
| 61 | the `next' member points to the next outer catchtag. | ||
| 62 | |||
| 63 | A call like (throw TAG VAL) searches for a catchtag whose `tag' | ||
| 64 | member is TAG, and then unbinds to it. The `val' member is used to | ||
| 65 | hold VAL while the stack is unwound; `val' is returned as the value | ||
| 66 | of the catch form. | ||
| 67 | |||
| 68 | All the other members are concerned with restoring the interpreter | ||
| 69 | state. */ | ||
| 70 | |||
| 71 | struct catchtag | ||
| 72 | { | ||
| 73 | Lisp_Object tag; | ||
| 74 | Lisp_Object val; | ||
| 75 | struct catchtag *next; | ||
| 76 | struct gcpro *gcpro; | ||
| 77 | jmp_buf jmp; | ||
| 78 | struct backtrace *backlist; | ||
| 79 | struct handler *handlerlist; | ||
| 80 | int lisp_eval_depth; | ||
| 81 | int pdlcount; | ||
| 82 | int poll_suppress_count; | ||
| 83 | int interrupt_input_blocked; | ||
| 84 | struct byte_stack *byte_stack; | ||
| 85 | }; | ||
| 86 | |||
| 87 | struct catchtag *catchlist; | 52 | struct catchtag *catchlist; |
| 88 | 53 | ||
| 89 | #ifdef DEBUG_GCPRO | 54 | #ifdef DEBUG_GCPRO |