aboutsummaryrefslogtreecommitdiffstats
path: root/src/lisp.h
diff options
context:
space:
mode:
authorJoakim Verona2012-09-19 01:09:51 +0200
committerJoakim Verona2012-09-19 01:09:51 +0200
commit6c86337db3f2b22977d7b94b054458a2d446c504 (patch)
tree04725c50cbd76c8ffd0faf4cdce895a89a506a58 /src/lisp.h
parentaac9139d11cf7f9ee84d931ada85be8fa0c90f21 (diff)
parentfefa299077c02a931e5e72f7646e3dfa28f5e8ff (diff)
downloademacs-6c86337db3f2b22977d7b94b054458a2d446c504.tar.gz
emacs-6c86337db3f2b22977d7b94b054458a2d446c504.zip
not compiling yet
Diffstat (limited to 'src/lisp.h')
-rw-r--r--src/lisp.h36
1 files changed, 23 insertions, 13 deletions
diff --git a/src/lisp.h b/src/lisp.h
index 41fa274a562..37416dc9464 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -20,6 +20,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
20#ifndef EMACS_LISP_H 20#ifndef EMACS_LISP_H
21#define EMACS_LISP_H 21#define EMACS_LISP_H
22 22
23#include <setjmp.h>
23#include <stdalign.h> 24#include <stdalign.h>
24#include <stdarg.h> 25#include <stdarg.h>
25#include <stdbool.h> 26#include <stdbool.h>
@@ -1968,7 +1969,25 @@ extern void defvar_kboard (struct Lisp_Kboard_Objfwd *, const char *, int);
1968 static struct Lisp_Kboard_Objfwd ko_fwd; \ 1969 static struct Lisp_Kboard_Objfwd ko_fwd; \
1969 defvar_kboard (&ko_fwd, lname, offsetof (KBOARD, vname ## _)); \ 1970 defvar_kboard (&ko_fwd, lname, offsetof (KBOARD, vname ## _)); \
1970 } while (0) 1971 } while (0)
1971 1972
1973/* Save and restore the instruction and environment pointers,
1974 without affecting the signal mask. */
1975
1976#ifdef HAVE__SETJMP
1977typedef jmp_buf sys_jmp_buf;
1978# define sys_setjmp(j) _setjmp (j)
1979# define sys_longjmp(j, v) _longjmp (j, v)
1980#elif defined HAVE_SIGSETJMP
1981typedef sigjmp_buf sys_jmp_buf;
1982# define sys_setjmp(j) sigsetjmp (j, 0)
1983# define sys_longjmp(j, v) siglongjmp (j, v)
1984#else
1985/* A platform that uses neither _longjmp nor siglongjmp; assume
1986 longjmp does not affect the sigmask. */
1987typedef jmp_buf sys_jmp_buf;
1988# define sys_setjmp(j) setjmp (j)
1989# define sys_longjmp(j, v) longjmp (j, v)
1990#endif
1972 1991
1973 1992
1974/* Structure for recording Lisp call stack for backtrace purposes. */ 1993/* Structure for recording Lisp call stack for backtrace purposes. */
@@ -2061,7 +2080,7 @@ struct catchtag
2061 Lisp_Object volatile val; 2080 Lisp_Object volatile val;
2062 struct catchtag *volatile next; 2081 struct catchtag *volatile next;
2063 struct gcpro *gcpro; 2082 struct gcpro *gcpro;
2064 jmp_buf jmp; 2083 sys_jmp_buf jmp;
2065 struct backtrace *backlist; 2084 struct backtrace *backlist;
2066 struct handler *handlerlist; 2085 struct handler *handlerlist;
2067 EMACS_INT lisp_eval_depth; 2086 EMACS_INT lisp_eval_depth;
@@ -2093,22 +2112,16 @@ extern char *stack_bottom;
2093 If quit-flag is set to `kill-emacs' the SIGINT handler has received 2112 If quit-flag is set to `kill-emacs' the SIGINT handler has received
2094 a request to exit Emacs when it is safe to do. */ 2113 a request to exit Emacs when it is safe to do. */
2095 2114
2096#ifdef SYNC_INPUT
2097extern void process_pending_signals (void); 2115extern void process_pending_signals (void);
2098extern int pending_signals; 2116extern int pending_signals;
2099#define ELSE_PENDING_SIGNALS \
2100 else if (pending_signals) \
2101 process_pending_signals ();
2102#else /* not SYNC_INPUT */
2103#define ELSE_PENDING_SIGNALS
2104#endif /* not SYNC_INPUT */
2105 2117
2106extern void process_quit_flag (void); 2118extern void process_quit_flag (void);
2107#define QUIT \ 2119#define QUIT \
2108 do { \ 2120 do { \
2109 if (!NILP (Vquit_flag) && NILP (Vinhibit_quit)) \ 2121 if (!NILP (Vquit_flag) && NILP (Vinhibit_quit)) \
2110 process_quit_flag (); \ 2122 process_quit_flag (); \
2111 ELSE_PENDING_SIGNALS \ 2123 else if (pending_signals) \
2124 process_pending_signals (); \
2112 } while (0) 2125 } while (0)
2113 2126
2114 2127
@@ -2832,8 +2845,6 @@ extern void memory_warnings (void *, void (*warnfun) (const char *));
2832/* Defined in alloc.c. */ 2845/* Defined in alloc.c. */
2833extern void check_pure_size (void); 2846extern void check_pure_size (void);
2834extern void allocate_string_data (struct Lisp_String *, EMACS_INT, EMACS_INT); 2847extern void allocate_string_data (struct Lisp_String *, EMACS_INT, EMACS_INT);
2835extern void reset_malloc_hooks (void);
2836extern void uninterrupt_malloc (void);
2837extern void malloc_warning (const char *); 2848extern void malloc_warning (const char *);
2838extern _Noreturn void memory_full (size_t); 2849extern _Noreturn void memory_full (size_t);
2839extern _Noreturn void buffer_memory_full (ptrdiff_t); 2850extern _Noreturn void buffer_memory_full (ptrdiff_t);
@@ -3029,7 +3040,6 @@ extern Lisp_Object Qand_rest;
3029extern Lisp_Object Vautoload_queue; 3040extern Lisp_Object Vautoload_queue;
3030extern Lisp_Object Vsignaling_function; 3041extern Lisp_Object Vsignaling_function;
3031extern Lisp_Object inhibit_lisp_code; 3042extern Lisp_Object inhibit_lisp_code;
3032extern int handling_signal;
3033#if BYTE_MARK_STACK 3043#if BYTE_MARK_STACK
3034extern struct catchtag *catchlist; 3044extern struct catchtag *catchlist;
3035extern struct handler *handlerlist; 3045extern struct handler *handlerlist;