annotate src/lisp.h @ 4139:0b32ee899a3a

Consistently use the mark bit of the root interval's parent field to say whether or not the interval tree has been visited (and skip it when revisited), and the mark bit of the plist field to say whether or not that interval has been visited (and abort if revisited); don't try to use the plist mark bit for both meanings. * alloc.c (mark_interval_tree): Don't test if the interval tree has already been visited here; let the MARK_INTERVAL_TREE macro do that; avoid function call overhead. Mark the interval tree as having been visited by setting TREE->parent's mark bit. (MARK_INTERVAL_TREE): If the tree has been visited (according to I->parent's mark bit), don't call mark_interval_tree. (gc_sweep): Rebalance the interval trees of those large strings which are still alive. This also clears the mark bits of those trees' root intervals' parent fields. (compact_strings): Rebalance the interval tree of each small strings which is still alive. This also clears the mark bits of that tree's root interval's parent field. Since the string has moved, update the root interval's parent pointer to contain the new address. * lisp.h (struct interval): Doc fix; explain the roles of the mark bits of the parent and plist members.
author Jim Blandy <jimb@redhat.com>
date Sun, 18 Jul 1993 06:26:10 +0000
parents c1b16f1167d4
children 5622149e7f75
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1 /* Fundamental definitions for GNU Emacs Lisp interpreter.
2961
e94a593c3952 Updated copyright years.
Jim Blandy <jimb@redhat.com>
parents: 2872
diff changeset
2 Copyright (C) 1985, 1986, 1987, 1993 Free Software Foundation, Inc.
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
3
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
4 This file is part of GNU Emacs.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
5
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
6 GNU Emacs is free software; you can redistribute it and/or modify
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
7 it under the terms of the GNU General Public License as published by
621
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 516
diff changeset
8 the Free Software Foundation; either version 2, or (at your option)
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
9 any later version.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
10
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
11 GNU Emacs is distributed in the hope that it will be useful,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
14 GNU General Public License for more details.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
15
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
16 You should have received a copy of the GNU General Public License
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
17 along with GNU Emacs; see the file COPYING. If not, write to
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
18 the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
19
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
20
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
21 /* Define the fundamental Lisp data structures */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
22
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
23 /* This is the set of Lisp data types */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
24
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
25 enum Lisp_Type
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
26 {
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
27 /* Integer. XINT(obj) is the integer value. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
28 Lisp_Int,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
29
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
30 /* Symbol. XSYMBOL (object) points to a struct Lisp_Symbol. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
31 Lisp_Symbol,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
32
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
33 /* Marker (buffer ptr). XMARKER(object) points to a struct Lisp_Marker. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
34 Lisp_Marker,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
35
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
36 /* String. XSTRING (object) points to a struct Lisp_String.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
37 The length of the string, and its contents, are stored therein. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
38 Lisp_String,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
39
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
40 /* Vector of Lisp objects. XVECTOR(object) points to a struct Lisp_Vector.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
41 The length of the vector, and its contents, are stored therein. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
42 Lisp_Vector,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
43
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
44 /* Cons. XCONS (object) points to a struct Lisp_Cons. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
45 Lisp_Cons,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
46
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
47 /* Byte-compiled function. A vector of 4 to 6 elements which are the
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
48 arglist, bytecode-string, constant vector, stack size,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
49 (optional) doc string, and (optional) interactive spec. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
50 Lisp_Compiled,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
51
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
52 /* Editor buffer. XBUFFER(obj) points to a struct buffer. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
53 Lisp_Buffer,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
54
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
55 /* Built-in function. XSUBR(obj) points to a struct Lisp_Subr
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
56 which describes how to call the function, and its documentation,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
57 as well as pointing to the code. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
58 Lisp_Subr,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
59
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
60 /* Internal value return by subroutines of read.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
61 The user never sees this data type.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
62 Its value is just a number. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
63 Lisp_Internal,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
64
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
65 /* Forwarding pointer to an int variable.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
66 This is allowed only in the value cell of a symbol,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
67 and it means that the symbol's value really lives in the
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
68 specified int variable.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
69 XINTPTR(obj) points to the int variable. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
70 Lisp_Intfwd,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
71
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
72 /* Boolean forwarding pointer to an int variable.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
73 This is like Lisp_Intfwd except that the ostensible
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
74 "value" of the symbol is t if the int variable is nonzero,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
75 nil if it is zero. XINTPTR(obj) points to the int variable. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
76 Lisp_Boolfwd,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
77
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
78 /* Object describing a connection to a subprocess.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
79 It points to storage of type struct Lisp_Process */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
80 Lisp_Process,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
81
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
82 /* Forwarding pointer to a Lisp_Object variable.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
83 This is allowed only in the value cell of a symbol,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
84 and it means that the symbol's value really lives in the
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
85 specified variable.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
86 XOBJFWD(obj) points to the Lisp_Object variable. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
87 Lisp_Objfwd,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
88
1567
c0c9fc68a006 * lisp.h [not MULTI_FRAME]: Don't declare the Lisp_Frame tag.
Jim Blandy <jimb@redhat.com>
parents: 1518
diff changeset
89 #ifdef MULTI_FRAME
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
90 /* Pointer to a vector-like object describing a display frame
1567
c0c9fc68a006 * lisp.h [not MULTI_FRAME]: Don't declare the Lisp_Frame tag.
Jim Blandy <jimb@redhat.com>
parents: 1518
diff changeset
91 on which Emacs can display a window hierarchy. We don't define
c0c9fc68a006 * lisp.h [not MULTI_FRAME]: Don't declare the Lisp_Frame tag.
Jim Blandy <jimb@redhat.com>
parents: 1518
diff changeset
92 this unless MULTI_FRAME is defined; this helps the compiler catch
c0c9fc68a006 * lisp.h [not MULTI_FRAME]: Don't declare the Lisp_Frame tag.
Jim Blandy <jimb@redhat.com>
parents: 1518
diff changeset
93 code that won't work on a non-MULTI_FRAME configuration. */
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
94 Lisp_Frame,
1567
c0c9fc68a006 * lisp.h [not MULTI_FRAME]: Don't declare the Lisp_Frame tag.
Jim Blandy <jimb@redhat.com>
parents: 1518
diff changeset
95 #endif
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
96
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
97 /* Used when a FILE * value needs to be passed
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
98 in an argument of type Lisp_Object.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
99 You must do *(FILE **) XPNTR(obj) to get the value.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
100 The user will never see this data type. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
101 Lisp_Internal_Stream,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
102
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
103 /* Used in a symbol value cell when the symbol's value is per-buffer.
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 706
diff changeset
104 The actual contents are a cons cell which starts a list like this:
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 706
diff changeset
105 (REALVALUE BUFFER CURRENT-ALIST-ELEMENT . DEFAULT-VALUE).
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
106
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 706
diff changeset
107 BUFFER is the last buffer for which this symbol's value was
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 706
diff changeset
108 made up to date.
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
109
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 706
diff changeset
110 CURRENT-ALIST-ELEMENT is a pointer to an element of BUFFER's
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 706
diff changeset
111 local_var_alist, that being the element whose car is this
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 706
diff changeset
112 variable. Or it can be a pointer to the
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 706
diff changeset
113 (CURRENT-ALIST-ELEMENT . DEFAULT-VALUE),
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 706
diff changeset
114 if BUFFER does not have an element in its alist for this
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 706
diff changeset
115 variable (that is, if BUFFER sees the default value of this
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 706
diff changeset
116 variable).
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
117
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 706
diff changeset
118 If we want to examine or set the value and BUFFER is current,
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 706
diff changeset
119 we just examine or set REALVALUE. If BUFFER is not current, we
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 706
diff changeset
120 store the current REALVALUE value into CURRENT-ALIST-ELEMENT,
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 706
diff changeset
121 then find the appropriate alist element for the buffer now
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 706
diff changeset
122 current and set up CURRENT-ALIST-ELEMENT. Then we set
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 706
diff changeset
123 REALVALUE out of that element, and store into BUFFER.
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
124
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 706
diff changeset
125 If we are setting the variable and the current buffer does not
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 706
diff changeset
126 have an alist entry for this variable, an alist entry is
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 706
diff changeset
127 created.
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
128
732
a8d94735277e *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 706
diff changeset
129 Note that REALVALUE can be a forwarding pointer. Each time it
1277
61f4bd399f61 * lisp.h: Doc elaboration for Lisp_Buffer_Local_Value.
Jim Blandy <jimb@redhat.com>
parents: 1197
diff changeset
130 is examined or set, forwarding must be done. Each time we
61f4bd399f61 * lisp.h: Doc elaboration for Lisp_Buffer_Local_Value.
Jim Blandy <jimb@redhat.com>
parents: 1197
diff changeset
131 switch buffers, buffer-local variables which forward into C
61f4bd399f61 * lisp.h: Doc elaboration for Lisp_Buffer_Local_Value.
Jim Blandy <jimb@redhat.com>
parents: 1197
diff changeset
132 variables are swapped immediately, so the C code can assume
61f4bd399f61 * lisp.h: Doc elaboration for Lisp_Buffer_Local_Value.
Jim Blandy <jimb@redhat.com>
parents: 1197
diff changeset
133 that they are always up to date. */
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
134 Lisp_Buffer_Local_Value,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
135
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
136 /* Like Lisp_Buffer_Local_Value with one difference:
1184
5f4300ccc93f entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 999
diff changeset
137 merely setting the variable while some buffer is current
5f4300ccc93f entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 999
diff changeset
138 does not cause that buffer to have its own local value of this variable.
5f4300ccc93f entered into RCS
Richard M. Stallman <rms@gnu.org>
parents: 999
diff changeset
139 Only make-local-variable does that. */
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
140 Lisp_Some_Buffer_Local_Value,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
141
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
142
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
143 /* Like Lisp_Objfwd except that value lives in a slot
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
144 in the current buffer. Value is byte index of slot within buffer */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
145 Lisp_Buffer_Objfwd,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
146
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
147 /* In symbol value cell, means var is unbound.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
148 In symbol function cell, means function name is undefined. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
149 Lisp_Void,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
150
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
151 /* Window used for Emacs display.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
152 Data inside looks like a Lisp_Vector. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
153 Lisp_Window,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
154
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
155 /* Used by save,set,restore-window-configuration */
2780
cfe7659bbc05 * lisp.h (Lisp_Overlay): New tag.
Jim Blandy <jimb@redhat.com>
parents: 2728
diff changeset
156 Lisp_Window_Configuration,
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
157
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
158 #ifdef LISP_FLOAT_TYPE
2780
cfe7659bbc05 * lisp.h (Lisp_Overlay): New tag.
Jim Blandy <jimb@redhat.com>
parents: 2728
diff changeset
159 Lisp_Float,
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
160 #endif /* LISP_FLOAT_TYPE */
2780
cfe7659bbc05 * lisp.h (Lisp_Overlay): New tag.
Jim Blandy <jimb@redhat.com>
parents: 2728
diff changeset
161
cfe7659bbc05 * lisp.h (Lisp_Overlay): New tag.
Jim Blandy <jimb@redhat.com>
parents: 2728
diff changeset
162 /* The overlay type.
cfe7659bbc05 * lisp.h (Lisp_Overlay): New tag.
Jim Blandy <jimb@redhat.com>
parents: 2728
diff changeset
163 An overlay values is actually a retagged cons, the first in a
cfe7659bbc05 * lisp.h (Lisp_Overlay): New tag.
Jim Blandy <jimb@redhat.com>
parents: 2728
diff changeset
164 list of the form
cfe7659bbc05 * lisp.h (Lisp_Overlay): New tag.
Jim Blandy <jimb@redhat.com>
parents: 2728
diff changeset
165 ((START . END) nil . PLIST)
cfe7659bbc05 * lisp.h (Lisp_Overlay): New tag.
Jim Blandy <jimb@redhat.com>
parents: 2728
diff changeset
166 where START and END are markers in the overlay's buffer, and
cfe7659bbc05 * lisp.h (Lisp_Overlay): New tag.
Jim Blandy <jimb@redhat.com>
parents: 2728
diff changeset
167 PLIST is the overlay's property list. */
cfe7659bbc05 * lisp.h (Lisp_Overlay): New tag.
Jim Blandy <jimb@redhat.com>
parents: 2728
diff changeset
168 Lisp_Overlay
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
169 };
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
170
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
171 #ifndef NO_UNION_TYPE
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
172
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
173 #ifndef BIG_ENDIAN
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
174
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
175 /* Definition of Lisp_Object for little-endian machines. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
176
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
177 typedef
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
178 union Lisp_Object
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
179 {
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
180 /* Used for comparing two Lisp_Objects;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
181 also, positive integers can be accessed fast this way. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
182 int i;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
183
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
184 struct
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
185 {
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
186 int val: 24;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
187 char type;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
188 } s;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
189 struct
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
190 {
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
191 unsigned int val: 24;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
192 char type;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
193 } u;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
194 struct
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
195 {
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
196 unsigned int val: 24;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
197 enum Lisp_Type type: 7;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
198 /* The markbit is not really part of the value of a Lisp_Object,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
199 and is always zero except during garbage collection. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
200 unsigned int markbit: 1;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
201 } gu;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
202 }
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
203 Lisp_Object;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
204
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
205 #else /* If BIG_ENDIAN */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
206
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
207 typedef
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
208 union Lisp_Object
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
209 {
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
210 /* Used for comparing two Lisp_Objects;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
211 also, positive integers can be accessed fast this way. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
212 int i;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
213
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
214 struct
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
215 {
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
216 char type;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
217 int val: 24;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
218 } s;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
219 struct
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
220 {
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
221 char type;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
222 unsigned int val: 24;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
223 } u;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
224 struct
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
225 {
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
226 /* The markbit is not really part of the value of a Lisp_Object,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
227 and is always zero except during garbage collection. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
228 unsigned int markbit: 1;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
229 enum Lisp_Type type: 7;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
230 unsigned int val: 24;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
231 } gu;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
232 }
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
233 Lisp_Object;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
234
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
235 #endif /* BIG_ENDIAN */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
236
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
237 #endif /* NO_UNION_TYPE */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
238
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
239
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
240 /* If union type is not wanted, define Lisp_Object as just a number
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
241 and define the macros below to extract fields by shifting */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
242
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
243 #ifdef NO_UNION_TYPE
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
244
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
245 #define Lisp_Object int
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
246
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
247 /* These values are overridden by the m- file on some machines. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
248 #ifndef VALBITS
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
249 #define VALBITS 24
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
250 #endif
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
251
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
252 #ifndef GCTYPEBITS
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
253 #define GCTYPEBITS 7
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
254 #endif
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
255
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
256 #ifndef VALMASK
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
257 #define VALMASK ((1<<VALBITS) - 1)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
258 #endif
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
259 #define GCTYPEMASK ((1<<GCTYPEBITS) - 1)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
260 #define MARKBIT (1 << (VALBITS + GCTYPEBITS))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
261
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
262 #endif /* NO_UNION_TYPE */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
263
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
264 /* These macros extract various sorts of values from a Lisp_Object.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
265 For example, if tem is a Lisp_Object whose type is Lisp_Cons,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
266 XCONS (tem) is the struct Lisp_Cons * pointing to the memory for that cons. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
267
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
268 #ifdef NO_UNION_TYPE
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
269
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
270 /* One need to override this if there must be high bits set in data space
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
271 (doing the result of the below & ((1 << (GCTYPE + 1)) - 1) would work
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
272 on all machines, but would penalise machines which don't need it)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
273 */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
274 #ifndef XTYPE
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
275 #define XTYPE(a) ((enum Lisp_Type) ((a) >> VALBITS))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
276 #endif
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
277
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
278 #ifndef XSETTYPE
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
279 #define XSETTYPE(a, b) ((a) = XUINT (a) | ((int)(b) << VALBITS))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
280 #endif
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
281
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
282 /* Use XFASTINT for fast retrieval and storage of integers known
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
283 to be positive. This takes advantage of the fact that Lisp_Int is 0. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
284 #define XFASTINT(a) (a)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
285
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
286 /* Extract the value of a Lisp_Object as a signed integer. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
287
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
288 #ifndef XINT /* Some machines need to do this differently. */
638
40b255f55df3 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 621
diff changeset
289 #define XINT(a) (((a) << (INTBITS-VALBITS)) >> (INTBITS-VALBITS))
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
290 #endif
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
291
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
292 /* Extract the value as an unsigned integer. This is a basis
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
293 for extracting it as a pointer to a structure in storage. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
294
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
295 #ifndef XUINT
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
296 #define XUINT(a) ((a) & VALMASK)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
297 #endif
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
298
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
299 #ifndef XPNTR
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
300 #ifdef HAVE_SHM
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
301 /* In this representation, data is found in two widely separated segments. */
336
25114d2b73e3 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 302
diff changeset
302 extern int pure_size;
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
303 #define XPNTR(a) \
336
25114d2b73e3 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 302
diff changeset
304 (XUINT (a) | (XUINT (a) > pure_size ? DATA_SEG_BITS : PURE_SEG_BITS))
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
305 #else /* not HAVE_SHM */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
306 #ifdef DATA_SEG_BITS
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
307 /* This case is used for the rt-pc.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
308 In the diffs I was given, it checked for ptr = 0
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
309 and did not adjust it in that case.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
310 But I don't think that zero should ever be found
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
311 in a Lisp object whose data type says it points to something. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
312 #define XPNTR(a) (XUINT (a) | DATA_SEG_BITS)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
313 #else
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
314 #define XPNTR(a) XUINT (a)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
315 #endif
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
316 #endif /* not HAVE_SHM */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
317 #endif /* no XPNTR */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
318
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
319 #ifndef XSETINT
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
320 #define XSETINT(a, b) ((a) = ((a) & ~VALMASK) | ((b) & VALMASK))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
321 #endif
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
322
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
323 #ifndef XSETUINT
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
324 #define XSETUINT(a, b) XSETINT (a, b)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
325 #endif
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
326
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
327 #ifndef XSETPNTR
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
328 #define XSETPNTR(a, b) XSETINT (a, b)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
329 #endif
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
330
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
331 #ifndef XSET
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
332 #define XSET(var, type, ptr) \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
333 ((var) = ((int)(type) << VALBITS) + ((int) (ptr) & VALMASK))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
334 #endif
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
335
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
336 /* During garbage collection, XGCTYPE must be used for extracting types
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
337 so that the mark bit is ignored. XMARKBIT accesses the markbit.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
338 Markbits are used only in particular slots of particular structure types.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
339 Other markbits are always zero.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
340 Outside of garbage collection, all mark bits are always zero. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
341
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
342 #ifndef XGCTYPE
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
343 #define XGCTYPE(a) ((enum Lisp_Type) (((a) >> VALBITS) & GCTYPEMASK))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
344 #endif
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
345
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
346 #if VALBITS + GCTYPEBITS == INTBITS - 1
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
347 /* Make XMARKBIT faster if mark bit is sign bit. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
348 #ifndef XMARKBIT
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
349 #define XMARKBIT(a) ((a) < 0)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
350 #endif
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
351 #endif /* markbit is sign bit */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
352
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
353 #ifndef XMARKBIT
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
354 #define XMARKBIT(a) ((a) & MARKBIT)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
355 #endif
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
356
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
357 #ifndef XSETMARKBIT
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
358 #define XSETMARKBIT(a,b) ((a) = ((a) & ~MARKBIT) | ((b) ? MARKBIT : 0))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
359 #endif
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
360
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
361 #ifndef XMARK
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
362 #define XMARK(a) ((a) |= MARKBIT)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
363 #endif
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
364
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
365 #ifndef XUNMARK
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
366 #define XUNMARK(a) ((a) &= ~MARKBIT)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
367 #endif
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
368
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
369 #endif /* NO_UNION_TYPE */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
370
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
371 #ifndef NO_UNION_TYPE
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
372
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
373 #define XTYPE(a) ((enum Lisp_Type) (a).u.type)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
374 #define XSETTYPE(a, b) ((a).u.type = (char) (b))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
375
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
376 /* Use XFASTINT for fast retrieval and storage of integers known
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
377 to be positive. This takes advantage of the fact that Lisp_Int is 0. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
378 #define XFASTINT(a) ((a).i)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
379
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
380 #ifdef EXPLICIT_SIGN_EXTEND
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
381 /* Make sure we sign-extend; compilers have been known to fail to do so. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
382 #define XINT(a) (((a).i << 8) >> 8)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
383 #else
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
384 #define XINT(a) ((a).s.val)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
385 #endif /* EXPLICIT_SIGN_EXTEND */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
386
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
387 #define XUINT(a) ((a).u.val)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
388 #define XPNTR(a) ((a).u.val)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
389 #define XSETINT(a, b) ((a).s.val = (int) (b))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
390 #define XSETUINT(a, b) ((a).s.val = (int) (b))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
391 #define XSETPNTR(a, b) ((a).s.val = (int) (b))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
392
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
393 #define XSET(var, vartype, ptr) \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
394 (((var).s.type = ((char) (vartype))), ((var).s.val = ((int) (ptr))))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
395
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
396 /* During garbage collection, XGCTYPE must be used for extracting types
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
397 so that the mark bit is ignored. XMARKBIT access the markbit.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
398 Markbits are used only in particular slots of particular structure types.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
399 Other markbits are always zero.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
400 Outside of garbage collection, all mark bits are always zero. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
401
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
402 #define XGCTYPE(a) ((a).gu.type)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
403 #define XMARKBIT(a) ((a).gu.markbit)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
404 #define XSETMARKBIT(a,b) (XMARKBIT(a) = (b))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
405 #define XMARK(a) (XMARKBIT(a) = 1)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
406 #define XUNMARK(a) (XMARKBIT(a) = 0)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
407
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
408 #endif /* NO_UNION_TYPE */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
409
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
410
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
411 #define XCONS(a) ((struct Lisp_Cons *) XPNTR(a))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
412 #define XBUFFER(a) ((struct buffer *) XPNTR(a))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
413 #define XVECTOR(a) ((struct Lisp_Vector *) XPNTR(a))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
414 #define XSUBR(a) ((struct Lisp_Subr *) XPNTR(a))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
415 #define XSTRING(a) ((struct Lisp_String *) XPNTR(a))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
416 #define XSYMBOL(a) ((struct Lisp_Symbol *) XPNTR(a))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
417 #define XFUNCTION(a) ((Lisp_Object (*)()) XPNTR(a))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
418 #define XMARKER(a) ((struct Lisp_Marker *) XPNTR(a))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
419 #define XOBJFWD(a) ((Lisp_Object *) XPNTR(a))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
420 #define XINTPTR(a) ((int *) XPNTR(a))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
421 #define XWINDOW(a) ((struct window *) XPNTR(a))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
422 #define XPROCESS(a) ((struct Lisp_Process *) XPNTR(a))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
423 #define XFLOAT(a) ((struct Lisp_Float *) XPNTR(a))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
424
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
425 #define XSETCONS(a, b) XSETPNTR(a, (int) (b))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
426 #define XSETBUFFER(a, b) XSETPNTR(a, (int) (b))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
427 #define XSETVECTOR(a, b) XSETPNTR(a, (int) (b))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
428 #define XSETSUBR(a, b) XSETPNTR(a, (int) (b))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
429 #define XSETSTRING(a, b) XSETPNTR(a, (int) (b))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
430 #define XSETSYMBOL(a, b) XSETPNTR(a, (int) (b))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
431 #define XSETFUNCTION(a, b) XSETPNTR(a, (int) (b))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
432 #define XSETMARKER(a, b) XSETPNTR(a, (int) (b))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
433 #define XSETOBJFWD(a, b) XSETPNTR(a, (int) (b))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
434 #define XSETINTPTR(a, b) XSETPNTR(a, (int) (b))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
435 #define XSETWINDOW(a, b) XSETPNTR(a, (int) (b))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
436 #define XSETPROCESS(a, b) XSETPNTR(a, (int) (b))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
437 #define XSETFLOAT(a, b) XSETPNTR(a, (int) (b))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
438
1290
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
439 #ifdef USE_TEXT_PROPERTIES
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
440 /* Basic data type for use of intervals. See the macros in intervals.h */
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
441
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
442 struct interval
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
443 {
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
444 /* The first group of entries deal with the tree structure. */
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
445
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
446 unsigned int total_length; /* Length of myself and both children. */
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
447 unsigned int position; /* Cache of interval's character position */
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
448 struct interval *left; /* Intervals which precede me. */
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
449 struct interval *right; /* Intervals which succeed me. */
4139
0b32ee899a3a Consistently use the mark bit of the root interval's parent field
Jim Blandy <jimb@redhat.com>
parents: 4079
diff changeset
450
0b32ee899a3a Consistently use the mark bit of the root interval's parent field
Jim Blandy <jimb@redhat.com>
parents: 4079
diff changeset
451 /* Parent in the tree, or the Lisp_Object containing this interval tree.
0b32ee899a3a Consistently use the mark bit of the root interval's parent field
Jim Blandy <jimb@redhat.com>
parents: 4079
diff changeset
452
0b32ee899a3a Consistently use the mark bit of the root interval's parent field
Jim Blandy <jimb@redhat.com>
parents: 4079
diff changeset
453 The mark bit on the root interval of an interval tree says
0b32ee899a3a Consistently use the mark bit of the root interval's parent field
Jim Blandy <jimb@redhat.com>
parents: 4079
diff changeset
454 whether we have started (and possibly finished) marking the
0b32ee899a3a Consistently use the mark bit of the root interval's parent field
Jim Blandy <jimb@redhat.com>
parents: 4079
diff changeset
455 tree. If GC comes across an interval tree whose root's parent
0b32ee899a3a Consistently use the mark bit of the root interval's parent field
Jim Blandy <jimb@redhat.com>
parents: 4079
diff changeset
456 field has its markbit set, it leaves the tree alone.
0b32ee899a3a Consistently use the mark bit of the root interval's parent field
Jim Blandy <jimb@redhat.com>
parents: 4079
diff changeset
457
0b32ee899a3a Consistently use the mark bit of the root interval's parent field
Jim Blandy <jimb@redhat.com>
parents: 4079
diff changeset
458 You'd think we could store this information in the parent object
0b32ee899a3a Consistently use the mark bit of the root interval's parent field
Jim Blandy <jimb@redhat.com>
parents: 4079
diff changeset
459 somewhere (after all, that should be visited once and then
0b32ee899a3a Consistently use the mark bit of the root interval's parent field
Jim Blandy <jimb@redhat.com>
parents: 4079
diff changeset
460 ignored too, right?), but strings are GC'd strangely. */
0b32ee899a3a Consistently use the mark bit of the root interval's parent field
Jim Blandy <jimb@redhat.com>
parents: 4079
diff changeset
461 struct interval *parent;
1290
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
462
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
463 /* The remaining components are `properties' of the interval.
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
464 The first four are duplicates for things which can be on the list,
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
465 for purposes of speed. */
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
466
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
467 unsigned char write_protect; /* Non-zero means can't modify. */
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
468 unsigned char visible; /* Zero means don't display. */
1306
01d973b5d81b * lisp.h: Declare Qbuffer_or_string_p.
Joseph Arceneaux <jla@gnu.org>
parents: 1290
diff changeset
469 unsigned char front_sticky; /* Non-zero means text inserted just
1290
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
470 before this interval goes into it. */
1306
01d973b5d81b * lisp.h: Declare Qbuffer_or_string_p.
Joseph Arceneaux <jla@gnu.org>
parents: 1290
diff changeset
471 unsigned char rear_sticky; /* Likewise for just after it. */
1290
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
472
4139
0b32ee899a3a Consistently use the mark bit of the root interval's parent field
Jim Blandy <jimb@redhat.com>
parents: 4079
diff changeset
473 /* Properties of this interval.
0b32ee899a3a Consistently use the mark bit of the root interval's parent field
Jim Blandy <jimb@redhat.com>
parents: 4079
diff changeset
474 The mark bit on this field says whether this particular interval
0b32ee899a3a Consistently use the mark bit of the root interval's parent field
Jim Blandy <jimb@redhat.com>
parents: 4079
diff changeset
475 tree node has been visited. Since intervals should never be
0b32ee899a3a Consistently use the mark bit of the root interval's parent field
Jim Blandy <jimb@redhat.com>
parents: 4079
diff changeset
476 shared, GC aborts if it seems to have visited an interval twice. */
0b32ee899a3a Consistently use the mark bit of the root interval's parent field
Jim Blandy <jimb@redhat.com>
parents: 4079
diff changeset
477 Lisp_Object plist;
1290
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
478 };
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
479
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
480 typedef struct interval *INTERVAL;
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
481
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
482 /* Complain if object is not string or buffer type */
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
483 #define CHECK_STRING_OR_BUFFER(x, i) \
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
484 { if (XTYPE ((x)) != Lisp_String && XTYPE ((x)) != Lisp_Buffer) \
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
485 x = wrong_type_argument (Qbuffer_or_string_p, (x)); }
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
486
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
487 /* Macro used to conditionally compile intervals into certain data
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
488 structures. See, e.g., struct Lisp_String below. */
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
489 #define DECLARE_INTERVALS INTERVAL intervals;
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
490
3591
507f64624555 Apply typo patches from Paul Eggert.
Jim Blandy <jimb@redhat.com>
parents: 3539
diff changeset
491 /* Macro used to conditionally compile interval initialization into
1290
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
492 certain code. See, e.g., alloc.c. */
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
493 #define INITIALIZE_INTERVAL(ptr,val) ptr->intervals = val
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
494
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
495 #else /* No text properties */
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
496
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
497 /* If no intervals are used, make the above definitions go away. */
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
498
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
499 #define CHECK_STRING_OR_BUFFER(x, i)
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
500
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
501 #define INTERVAL
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
502 #define DECLARE_INTERVALS
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
503 #define INITIALIZE_INTERVAL(ptr,val)
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
504
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
505 #endif /* USE_TEXT_PROPERTIES */
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
506
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
507 /* In a cons, the markbit of the car is the gc mark bit */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
508
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
509 struct Lisp_Cons
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
510 {
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
511 Lisp_Object car, cdr;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
512 };
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
513
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
514 /* Like a cons, but records info on where the text lives that it was read from */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
515 /* This is not really in use now */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
516
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
517 struct Lisp_Buffer_Cons
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
518 {
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
519 Lisp_Object car, cdr;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
520 struct buffer *buffer;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
521 int bufpos;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
522 };
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
523
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
524 /* In a string or vector, the sign bit of the `size' is the gc mark bit */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
525
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
526 struct Lisp_String
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
527 {
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
528 int size;
1290
9b0ddca4773b * lisp.h: Conditionally define interval structure and macros.
Joseph Arceneaux <jla@gnu.org>
parents: 1277
diff changeset
529 DECLARE_INTERVALS /* `data' field must be last. */
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
530 unsigned char data[1];
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
531 };
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
532
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
533 struct Lisp_Vector
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
534 {
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
535 int size;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
536 struct Lisp_Vector *next;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
537 Lisp_Object contents[1];
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
538 };
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
539
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
540 /* In a symbol, the markbit of the plist is used as the gc mark bit */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
541
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
542 struct Lisp_Symbol
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
543 {
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
544 struct Lisp_String *name;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
545 Lisp_Object value;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
546 Lisp_Object function;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
547 Lisp_Object plist;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
548 struct Lisp_Symbol *next; /* -> next symbol in this obarray bucket */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
549 };
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
550
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
551 struct Lisp_Subr
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
552 {
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
553 Lisp_Object (*function) ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
554 short min_args, max_args;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
555 char *symbol_name;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
556 char *prompt;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
557 char *doc;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
558 };
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
559
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
560 /* In a marker, the markbit of the chain field is used as the gc mark bit */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
561
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
562 struct Lisp_Marker
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
563 {
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
564 struct buffer *buffer;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
565 Lisp_Object chain;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
566 int bufpos;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
567 int modified;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
568 };
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
569
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
570 #ifdef LISP_FLOAT_TYPE
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
571 /* Optional Lisp floating point type */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
572 struct Lisp_Float
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
573 {
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
574 Lisp_Object type; /* essentially used for mark-bit
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
575 and chaining when on free-list */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
576 double data;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
577 };
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
578 #endif /* LISP_FLOAT_TYPE */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
579
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
580 /* A character, declared with the following typedef, is a member
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
581 of some character set associated with the current buffer. */
3324
b0e1cf2177fc (UCHAR): Don't define if _UCHAR_T.
Richard M. Stallman <rms@gnu.org>
parents: 2979
diff changeset
582 #ifndef _UCHAR_T /* Protect against something in ctab.h on AIX. */
b0e1cf2177fc (UCHAR): Don't define if _UCHAR_T.
Richard M. Stallman <rms@gnu.org>
parents: 2979
diff changeset
583 #define _UCHAR_T
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
584 typedef unsigned char UCHAR;
3324
b0e1cf2177fc (UCHAR): Don't define if _UCHAR_T.
Richard M. Stallman <rms@gnu.org>
parents: 2979
diff changeset
585 #endif
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
586
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
587 /* Meanings of slots in a Lisp_Compiled: */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
588
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
589 #define COMPILED_ARGLIST 0
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
590 #define COMPILED_BYTECODE 1
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
591 #define COMPILED_CONSTANTS 2
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
592 #define COMPILED_STACK_DEPTH 3
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
593 #define COMPILED_DOC_STRING 4
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
594 #define COMPILED_INTERACTIVE 5
2014
637d9ebe3f50 (CHAR_META, CHAR_SHIFT, CHAR_CTL): New macros.
Richard M. Stallman <rms@gnu.org>
parents: 1990
diff changeset
595
2662
5b92bdfb7fbb * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT, CHAR_CTL,
Jim Blandy <jimb@redhat.com>
parents: 2653
diff changeset
596 /* Flag bits in a character. These also get used in termhooks.h.
5b92bdfb7fbb * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT, CHAR_CTL,
Jim Blandy <jimb@redhat.com>
parents: 2653
diff changeset
597 Richard Stallman <rms@gnu.ai.mit.edu> thinks that MULE
5b92bdfb7fbb * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT, CHAR_CTL,
Jim Blandy <jimb@redhat.com>
parents: 2653
diff changeset
598 (MUlti-Lingual Emacs) might need 18 bits for the character value
5b92bdfb7fbb * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT, CHAR_CTL,
Jim Blandy <jimb@redhat.com>
parents: 2653
diff changeset
599 itself, so we probably shouldn't use any bits lower than 0x040000. */
5b92bdfb7fbb * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT, CHAR_CTL,
Jim Blandy <jimb@redhat.com>
parents: 2653
diff changeset
600 #define CHAR_ALT (0x040000)
5b92bdfb7fbb * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT, CHAR_CTL,
Jim Blandy <jimb@redhat.com>
parents: 2653
diff changeset
601 #define CHAR_SUPER (0x080000)
5b92bdfb7fbb * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT, CHAR_CTL,
Jim Blandy <jimb@redhat.com>
parents: 2653
diff changeset
602 #define CHAR_HYPER (0x100000)
5b92bdfb7fbb * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT, CHAR_CTL,
Jim Blandy <jimb@redhat.com>
parents: 2653
diff changeset
603 #define CHAR_SHIFT (0x200000)
5b92bdfb7fbb * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT, CHAR_CTL,
Jim Blandy <jimb@redhat.com>
parents: 2653
diff changeset
604 #define CHAR_CTL (0x400000)
5b92bdfb7fbb * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER, CHAR_SHIFT, CHAR_CTL,
Jim Blandy <jimb@redhat.com>
parents: 2653
diff changeset
605 #define CHAR_META (0x800000)
2728
93c9529b2b69 * config.h.in: Remove mention of GLYPH datatype; that shouldn't be
Jim Blandy <jimb@redhat.com>
parents: 2662
diff changeset
606
93c9529b2b69 * config.h.in: Remove mention of GLYPH datatype; that shouldn't be
Jim Blandy <jimb@redhat.com>
parents: 2662
diff changeset
607
93c9529b2b69 * config.h.in: Remove mention of GLYPH datatype; that shouldn't be
Jim Blandy <jimb@redhat.com>
parents: 2662
diff changeset
608 /* The glyph datatype, used to represent characters on the display. */
93c9529b2b69 * config.h.in: Remove mention of GLYPH datatype; that shouldn't be
Jim Blandy <jimb@redhat.com>
parents: 2662
diff changeset
609
93c9529b2b69 * config.h.in: Remove mention of GLYPH datatype; that shouldn't be
Jim Blandy <jimb@redhat.com>
parents: 2662
diff changeset
610 /* The low eight bits are the character code, and the bits above them
93c9529b2b69 * config.h.in: Remove mention of GLYPH datatype; that shouldn't be
Jim Blandy <jimb@redhat.com>
parents: 2662
diff changeset
611 are the numeric face ID. If FID is the face ID of a glyph on a
93c9529b2b69 * config.h.in: Remove mention of GLYPH datatype; that shouldn't be
Jim Blandy <jimb@redhat.com>
parents: 2662
diff changeset
612 frame F, then F->display.x->faces[FID] contains the description of
93c9529b2b69 * config.h.in: Remove mention of GLYPH datatype; that shouldn't be
Jim Blandy <jimb@redhat.com>
parents: 2662
diff changeset
613 that face. This is an int instead of a short, so we can support a
93c9529b2b69 * config.h.in: Remove mention of GLYPH datatype; that shouldn't be
Jim Blandy <jimb@redhat.com>
parents: 2662
diff changeset
614 good bunch of face ID's; given that we have no mechanism for
93c9529b2b69 * config.h.in: Remove mention of GLYPH datatype; that shouldn't be
Jim Blandy <jimb@redhat.com>
parents: 2662
diff changeset
615 tossing unused frame face ID's yet, we'll probably run out of 255
93c9529b2b69 * config.h.in: Remove mention of GLYPH datatype; that shouldn't be
Jim Blandy <jimb@redhat.com>
parents: 2662
diff changeset
616 pretty quickly. */
93c9529b2b69 * config.h.in: Remove mention of GLYPH datatype; that shouldn't be
Jim Blandy <jimb@redhat.com>
parents: 2662
diff changeset
617 #define GLYPH unsigned int
93c9529b2b69 * config.h.in: Remove mention of GLYPH datatype; that shouldn't be
Jim Blandy <jimb@redhat.com>
parents: 2662
diff changeset
618
93c9529b2b69 * config.h.in: Remove mention of GLYPH datatype; that shouldn't be
Jim Blandy <jimb@redhat.com>
parents: 2662
diff changeset
619 /* Given a character code and a face ID, return the appropriate glyph. */
93c9529b2b69 * config.h.in: Remove mention of GLYPH datatype; that shouldn't be
Jim Blandy <jimb@redhat.com>
parents: 2662
diff changeset
620 #define MAKE_GLYPH(char, face) ((char) | ((face) << 8))
93c9529b2b69 * config.h.in: Remove mention of GLYPH datatype; that shouldn't be
Jim Blandy <jimb@redhat.com>
parents: 2662
diff changeset
621
93c9529b2b69 * config.h.in: Remove mention of GLYPH datatype; that shouldn't be
Jim Blandy <jimb@redhat.com>
parents: 2662
diff changeset
622 /* Return a glyph's character code. */
93c9529b2b69 * config.h.in: Remove mention of GLYPH datatype; that shouldn't be
Jim Blandy <jimb@redhat.com>
parents: 2662
diff changeset
623 #define GLYPH_CHAR(glyph) ((glyph) & 0xff)
93c9529b2b69 * config.h.in: Remove mention of GLYPH datatype; that shouldn't be
Jim Blandy <jimb@redhat.com>
parents: 2662
diff changeset
624
93c9529b2b69 * config.h.in: Remove mention of GLYPH datatype; that shouldn't be
Jim Blandy <jimb@redhat.com>
parents: 2662
diff changeset
625 /* Return a glyph's face ID. */
2979
df018689853e * lisp.h (GLYPH_FACE): Remember that the face portion of a glyph
Jim Blandy <jimb@redhat.com>
parents: 2961
diff changeset
626 #define GLYPH_FACE(glyph) (((glyph) >> 8) & ((1 << 24) - 1))
2728
93c9529b2b69 * config.h.in: Remove mention of GLYPH datatype; that shouldn't be
Jim Blandy <jimb@redhat.com>
parents: 2662
diff changeset
627
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
628
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
629 /* Data type checking */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
630
621
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 516
diff changeset
631 #define NILP(x) (XFASTINT (x) == XFASTINT (Qnil))
1990
c7d6c746fea6 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1923
diff changeset
632 #define GC_NILP(x) GC_EQ (x, Qnil)
621
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 516
diff changeset
633
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 516
diff changeset
634 #ifdef LISP_FLOAT_TYPE
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 516
diff changeset
635 #define NUMBERP(x) (XTYPE (x) == Lisp_Int || XTYPE (x) == Lisp_Float)
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 516
diff changeset
636 #else
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 516
diff changeset
637 #define NUMBERP(x) (XTYPE (x) == Lisp_Int)
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
638 #endif
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
639
2187
12b50e8d3b1c (INTEGERP, SYMBOLP, MARKERP, STRINGP, VECTORP): New macros.
Richard M. Stallman <rms@gnu.org>
parents: 2155
diff changeset
640 #define INTEGERP(x) (XTYPE ((x)) == Lisp_Int)
12b50e8d3b1c (INTEGERP, SYMBOLP, MARKERP, STRINGP, VECTORP): New macros.
Richard M. Stallman <rms@gnu.org>
parents: 2155
diff changeset
641 #define SYMBOLP(x) (XTYPE ((x)) == Lisp_Symbol)
12b50e8d3b1c (INTEGERP, SYMBOLP, MARKERP, STRINGP, VECTORP): New macros.
Richard M. Stallman <rms@gnu.org>
parents: 2155
diff changeset
642 #define MARKERP(x) (XTYPE ((x)) == Lisp_Marker)
12b50e8d3b1c (INTEGERP, SYMBOLP, MARKERP, STRINGP, VECTORP): New macros.
Richard M. Stallman <rms@gnu.org>
parents: 2155
diff changeset
643 #define STRINGP(x) (XTYPE ((x)) == Lisp_String)
12b50e8d3b1c (INTEGERP, SYMBOLP, MARKERP, STRINGP, VECTORP): New macros.
Richard M. Stallman <rms@gnu.org>
parents: 2155
diff changeset
644 #define VECTORP(x) (XTYPE ((x)) == Lisp_Vector)
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
645 #define CONSP(x) (XTYPE ((x)) == Lisp_Cons)
2187
12b50e8d3b1c (INTEGERP, SYMBOLP, MARKERP, STRINGP, VECTORP): New macros.
Richard M. Stallman <rms@gnu.org>
parents: 2155
diff changeset
646 #define COMPILEDP(x) (XTYPE ((x)) == Lisp_Compiled)
12b50e8d3b1c (INTEGERP, SYMBOLP, MARKERP, STRINGP, VECTORP): New macros.
Richard M. Stallman <rms@gnu.org>
parents: 2155
diff changeset
647 #define BUFFERP(x) (XTYPE ((x)) == Lisp_Buffer)
12b50e8d3b1c (INTEGERP, SYMBOLP, MARKERP, STRINGP, VECTORP): New macros.
Richard M. Stallman <rms@gnu.org>
parents: 2155
diff changeset
648 #define SUBRP(x) (XTYPE ((x)) == Lisp_Subr)
12b50e8d3b1c (INTEGERP, SYMBOLP, MARKERP, STRINGP, VECTORP): New macros.
Richard M. Stallman <rms@gnu.org>
parents: 2155
diff changeset
649 #define PROCESSP(x) (XTYPE ((x)) == Lisp_Process)
12b50e8d3b1c (INTEGERP, SYMBOLP, MARKERP, STRINGP, VECTORP): New macros.
Richard M. Stallman <rms@gnu.org>
parents: 2155
diff changeset
650 #define FRAMEP(x) (XTYPE ((x)) == Lisp_Frame)
12b50e8d3b1c (INTEGERP, SYMBOLP, MARKERP, STRINGP, VECTORP): New macros.
Richard M. Stallman <rms@gnu.org>
parents: 2155
diff changeset
651 #define WINDOWP(x) (XTYPE ((x)) == Lisp_Window)
12b50e8d3b1c (INTEGERP, SYMBOLP, MARKERP, STRINGP, VECTORP): New macros.
Richard M. Stallman <rms@gnu.org>
parents: 2155
diff changeset
652 #define WINDOW_CONFIGURATIONP(x) (XTYPE ((x)) == Lisp_Window_Configuration)
2780
cfe7659bbc05 * lisp.h (Lisp_Overlay): New tag.
Jim Blandy <jimb@redhat.com>
parents: 2728
diff changeset
653 #ifdef LISP_FLOAT_TYPE
2187
12b50e8d3b1c (INTEGERP, SYMBOLP, MARKERP, STRINGP, VECTORP): New macros.
Richard M. Stallman <rms@gnu.org>
parents: 2155
diff changeset
654 #define FLOATP(x) (XTYPE ((x)) == Lisp_Float)
2780
cfe7659bbc05 * lisp.h (Lisp_Overlay): New tag.
Jim Blandy <jimb@redhat.com>
parents: 2728
diff changeset
655 #else
cfe7659bbc05 * lisp.h (Lisp_Overlay): New tag.
Jim Blandy <jimb@redhat.com>
parents: 2728
diff changeset
656 #define FLOATP(x) (0)
cfe7659bbc05 * lisp.h (Lisp_Overlay): New tag.
Jim Blandy <jimb@redhat.com>
parents: 2728
diff changeset
657 #endif
cfe7659bbc05 * lisp.h (Lisp_Overlay): New tag.
Jim Blandy <jimb@redhat.com>
parents: 2728
diff changeset
658 #define OVERLAYP(x) (XTYPE ((x)) == Lisp_Overlay)
2187
12b50e8d3b1c (INTEGERP, SYMBOLP, MARKERP, STRINGP, VECTORP): New macros.
Richard M. Stallman <rms@gnu.org>
parents: 2155
diff changeset
659
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
660 #define EQ(x, y) (XFASTINT (x) == XFASTINT (y))
1990
c7d6c746fea6 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1923
diff changeset
661 #define GC_EQ(x, y) (XGCTYPE (x) == XGCTYPE (y) && XPNTR (x) == XPNTR (y))
621
eca8812e61cd *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 516
diff changeset
662
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
663 #define CHECK_LIST(x, i) \
3793
374fc1ccdc3f * lisp.h (CHECK_LIST, CHECK_STRING, CHECK_CONS, CHECK_SYMBOL,
Jim Blandy <jimb@redhat.com>
parents: 3785
diff changeset
664 do { if ((XTYPE ((x)) != Lisp_Cons) && !NILP (x)) x = wrong_type_argument (Qlistp, (x)); } while (0)
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
665
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
666 #define CHECK_STRING(x, i) \
3793
374fc1ccdc3f * lisp.h (CHECK_LIST, CHECK_STRING, CHECK_CONS, CHECK_SYMBOL,
Jim Blandy <jimb@redhat.com>
parents: 3785
diff changeset
667 do { if (XTYPE ((x)) != Lisp_String) x = wrong_type_argument (Qstringp, (x)); } while (0)
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
668
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
669 #define CHECK_CONS(x, i) \
3793
374fc1ccdc3f * lisp.h (CHECK_LIST, CHECK_STRING, CHECK_CONS, CHECK_SYMBOL,
Jim Blandy <jimb@redhat.com>
parents: 3785
diff changeset
670 do { if (XTYPE ((x)) != Lisp_Cons) x = wrong_type_argument (Qconsp, (x)); } while (0)
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
671
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
672 #define CHECK_SYMBOL(x, i) \
3793
374fc1ccdc3f * lisp.h (CHECK_LIST, CHECK_STRING, CHECK_CONS, CHECK_SYMBOL,
Jim Blandy <jimb@redhat.com>
parents: 3785
diff changeset
673 do { if (XTYPE ((x)) != Lisp_Symbol) x = wrong_type_argument (Qsymbolp, (x)); } while (0)
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
674
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
675 #define CHECK_VECTOR(x, i) \
3793
374fc1ccdc3f * lisp.h (CHECK_LIST, CHECK_STRING, CHECK_CONS, CHECK_SYMBOL,
Jim Blandy <jimb@redhat.com>
parents: 3785
diff changeset
676 do { if (XTYPE ((x)) != Lisp_Vector) x = wrong_type_argument (Qvectorp, (x)); } while (0)
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
677
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
678 #define CHECK_BUFFER(x, i) \
3793
374fc1ccdc3f * lisp.h (CHECK_LIST, CHECK_STRING, CHECK_CONS, CHECK_SYMBOL,
Jim Blandy <jimb@redhat.com>
parents: 3785
diff changeset
679 do { if (XTYPE ((x)) != Lisp_Buffer) x = wrong_type_argument (Qbufferp, (x)); } while (0)
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
680
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
681 #define CHECK_WINDOW(x, i) \
3793
374fc1ccdc3f * lisp.h (CHECK_LIST, CHECK_STRING, CHECK_CONS, CHECK_SYMBOL,
Jim Blandy <jimb@redhat.com>
parents: 3785
diff changeset
682 do { if (XTYPE ((x)) != Lisp_Window) x = wrong_type_argument (Qwindowp, (x)); } while (0)
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
683
1442
89ac471c745c * lisp.h (CHECK_LIVE_WINDOW): New predicate.
Jim Blandy <jimb@redhat.com>
parents: 1306
diff changeset
684 /* This macro rejects windows on the interior of the window tree as
89ac471c745c * lisp.h (CHECK_LIVE_WINDOW): New predicate.
Jim Blandy <jimb@redhat.com>
parents: 1306
diff changeset
685 "dead", which is what we want; this is an argument-checking macro, and
89ac471c745c * lisp.h (CHECK_LIVE_WINDOW): New predicate.
Jim Blandy <jimb@redhat.com>
parents: 1306
diff changeset
686 the user should never get access to interior windows.
89ac471c745c * lisp.h (CHECK_LIVE_WINDOW): New predicate.
Jim Blandy <jimb@redhat.com>
parents: 1306
diff changeset
687
89ac471c745c * lisp.h (CHECK_LIVE_WINDOW): New predicate.
Jim Blandy <jimb@redhat.com>
parents: 1306
diff changeset
688 A window of any sort, leaf or interior, is dead iff the buffer,
89ac471c745c * lisp.h (CHECK_LIVE_WINDOW): New predicate.
Jim Blandy <jimb@redhat.com>
parents: 1306
diff changeset
689 vchild, and hchild members are all nil. */
89ac471c745c * lisp.h (CHECK_LIVE_WINDOW): New predicate.
Jim Blandy <jimb@redhat.com>
parents: 1306
diff changeset
690
89ac471c745c * lisp.h (CHECK_LIVE_WINDOW): New predicate.
Jim Blandy <jimb@redhat.com>
parents: 1306
diff changeset
691 #define CHECK_LIVE_WINDOW(x, i) \
3793
374fc1ccdc3f * lisp.h (CHECK_LIST, CHECK_STRING, CHECK_CONS, CHECK_SYMBOL,
Jim Blandy <jimb@redhat.com>
parents: 3785
diff changeset
692 do { \
1442
89ac471c745c * lisp.h (CHECK_LIVE_WINDOW): New predicate.
Jim Blandy <jimb@redhat.com>
parents: 1306
diff changeset
693 if (XTYPE ((x)) != Lisp_Window \
89ac471c745c * lisp.h (CHECK_LIVE_WINDOW): New predicate.
Jim Blandy <jimb@redhat.com>
parents: 1306
diff changeset
694 || NILP (XWINDOW ((x))->buffer)) \
2210
22d78dbb3cc7 Rename `live-window-p' to `window-live-p', for consistency with
Jim Blandy <jimb@redhat.com>
parents: 2187
diff changeset
695 x = wrong_type_argument (Qwindow_live_p, (x)); \
3793
374fc1ccdc3f * lisp.h (CHECK_LIST, CHECK_STRING, CHECK_CONS, CHECK_SYMBOL,
Jim Blandy <jimb@redhat.com>
parents: 3785
diff changeset
696 } while (0)
1442
89ac471c745c * lisp.h (CHECK_LIVE_WINDOW): New predicate.
Jim Blandy <jimb@redhat.com>
parents: 1306
diff changeset
697
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
698 #define CHECK_PROCESS(x, i) \
3793
374fc1ccdc3f * lisp.h (CHECK_LIST, CHECK_STRING, CHECK_CONS, CHECK_SYMBOL,
Jim Blandy <jimb@redhat.com>
parents: 3785
diff changeset
699 do { if (XTYPE ((x)) != Lisp_Process) x = wrong_type_argument (Qprocessp, (x)); } while (0)
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
700
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
701 #define CHECK_NUMBER(x, i) \
3793
374fc1ccdc3f * lisp.h (CHECK_LIST, CHECK_STRING, CHECK_CONS, CHECK_SYMBOL,
Jim Blandy <jimb@redhat.com>
parents: 3785
diff changeset
702 do { if (XTYPE ((x)) != Lisp_Int) x = wrong_type_argument (Qintegerp, (x)); } while (0)
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
703
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
704 #define CHECK_NATNUM(x, i) \
3793
374fc1ccdc3f * lisp.h (CHECK_LIST, CHECK_STRING, CHECK_CONS, CHECK_SYMBOL,
Jim Blandy <jimb@redhat.com>
parents: 3785
diff changeset
705 do { if (XTYPE ((x)) != Lisp_Int || XINT ((x)) < 0) \
374fc1ccdc3f * lisp.h (CHECK_LIST, CHECK_STRING, CHECK_CONS, CHECK_SYMBOL,
Jim Blandy <jimb@redhat.com>
parents: 3785
diff changeset
706 x = wrong_type_argument (Qnatnump, (x)); } while (0)
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
707
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
708 #define CHECK_MARKER(x, i) \
3793
374fc1ccdc3f * lisp.h (CHECK_LIST, CHECK_STRING, CHECK_CONS, CHECK_SYMBOL,
Jim Blandy <jimb@redhat.com>
parents: 3785
diff changeset
709 do { if (XTYPE ((x)) != Lisp_Marker) x = wrong_type_argument (Qmarkerp, (x)); } while (0)
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
710
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
711 #define CHECK_NUMBER_COERCE_MARKER(x, i) \
3793
374fc1ccdc3f * lisp.h (CHECK_LIST, CHECK_STRING, CHECK_CONS, CHECK_SYMBOL,
Jim Blandy <jimb@redhat.com>
parents: 3785
diff changeset
712 do { if (XTYPE ((x)) == Lisp_Marker) XFASTINT (x) = marker_position (x); \
374fc1ccdc3f * lisp.h (CHECK_LIST, CHECK_STRING, CHECK_CONS, CHECK_SYMBOL,
Jim Blandy <jimb@redhat.com>
parents: 3785
diff changeset
713 else if (XTYPE ((x)) != Lisp_Int) x = wrong_type_argument (Qinteger_or_marker_p, (x)); } while (0)
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
714
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
715 #ifdef LISP_FLOAT_TYPE
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
716
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
717 #ifndef DBL_DIG
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
718 #define DBL_DIG 20
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
719 #endif
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
720
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
721 #define XFLOATINT(n) extract_float((n))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
722
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
723 #define CHECK_FLOAT(x, i) \
3793
374fc1ccdc3f * lisp.h (CHECK_LIST, CHECK_STRING, CHECK_CONS, CHECK_SYMBOL,
Jim Blandy <jimb@redhat.com>
parents: 3785
diff changeset
724 do { if (XTYPE (x) != Lisp_Float) \
374fc1ccdc3f * lisp.h (CHECK_LIST, CHECK_STRING, CHECK_CONS, CHECK_SYMBOL,
Jim Blandy <jimb@redhat.com>
parents: 3785
diff changeset
725 x = wrong_type_argument (Qfloatp, (x)); } while (0)
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
726
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
727 #define CHECK_NUMBER_OR_FLOAT(x, i) \
3793
374fc1ccdc3f * lisp.h (CHECK_LIST, CHECK_STRING, CHECK_CONS, CHECK_SYMBOL,
Jim Blandy <jimb@redhat.com>
parents: 3785
diff changeset
728 do { if (XTYPE (x) != Lisp_Float && XTYPE (x) != Lisp_Int) \
374fc1ccdc3f * lisp.h (CHECK_LIST, CHECK_STRING, CHECK_CONS, CHECK_SYMBOL,
Jim Blandy <jimb@redhat.com>
parents: 3785
diff changeset
729 x = wrong_type_argument (Qnumberp, (x)); } while (0)
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
730
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
731 #define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER(x, i) \
3793
374fc1ccdc3f * lisp.h (CHECK_LIST, CHECK_STRING, CHECK_CONS, CHECK_SYMBOL,
Jim Blandy <jimb@redhat.com>
parents: 3785
diff changeset
732 do { if (XTYPE (x) == Lisp_Marker) XFASTINT (x) = marker_position (x); \
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
733 else if (XTYPE (x) != Lisp_Int && XTYPE (x) != Lisp_Float) \
3793
374fc1ccdc3f * lisp.h (CHECK_LIST, CHECK_STRING, CHECK_CONS, CHECK_SYMBOL,
Jim Blandy <jimb@redhat.com>
parents: 3785
diff changeset
734 x = wrong_type_argument (Qnumber_or_marker_p, (x)); } while (0)
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
735
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
736 #else /* Not LISP_FLOAT_TYPE */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
737
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
738 #define CHECK_NUMBER_OR_FLOAT CHECK_NUMBER
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
739
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
740 #define CHECK_NUMBER_OR_FLOAT_COERCE_MARKER CHECK_NUMBER_COERCE_MARKER
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
741
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
742 #define XFLOATINT(n) XINT((n))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
743 #endif /* LISP_FLOAT_TYPE */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
744
2780
cfe7659bbc05 * lisp.h (Lisp_Overlay): New tag.
Jim Blandy <jimb@redhat.com>
parents: 2728
diff changeset
745 #define CHECK_OVERLAY(x, i) \
3793
374fc1ccdc3f * lisp.h (CHECK_LIST, CHECK_STRING, CHECK_CONS, CHECK_SYMBOL,
Jim Blandy <jimb@redhat.com>
parents: 3785
diff changeset
746 do { if (XTYPE ((x)) != Lisp_Overlay) x = wrong_type_argument (Qoverlayp, (x));} while (0)
2780
cfe7659bbc05 * lisp.h (Lisp_Overlay): New tag.
Jim Blandy <jimb@redhat.com>
parents: 2728
diff changeset
747
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
748 /* Cast pointers to this type to compare them. Some machines want int. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
749 #ifndef PNTR_COMPARISON_TYPE
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
750 #define PNTR_COMPARISON_TYPE unsigned int
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
751 #endif
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
752
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
753 /* Define a built-in function for calling from Lisp.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
754 `lname' should be the name to give the function in Lisp,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
755 as a null-terminated C string.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
756 `fnname' should be the name of the function in C.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
757 By convention, it starts with F.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
758 `sname' should be the name for the C constant structure
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
759 that records information on this function for internal use.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
760 By convention, it should be the same as `fnname' but with S instead of F.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
761 It's too bad that C macros can't compute this from `fnname'.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
762 `minargs' should be a number, the minimum number of arguments allowed.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
763 `maxargs' should be a number, the maximum number of arguments allowed,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
764 or else MANY or UNEVALLED.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
765 MANY means pass a vector of evaluated arguments,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
766 in the form of an integer number-of-arguments
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
767 followed by the address of a vector of Lisp_Objects
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
768 which contains the argument values.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
769 UNEVALLED means pass the list of unevaluated arguments
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
770 `prompt' says how to read arguments for an interactive call.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
771 This can be zero or a C string.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
772 Zero means that interactive calls are not allowed.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
773 A string is interpreted in a hairy way:
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
774 it should contain one line for each argument to be read, terminated by \n.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
775 The first character of the line controls the type of parsing:
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
776 s -- read a string.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
777 S -- read a symbol.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
778 k -- read a key sequence and return it as a string.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
779 a -- read a function name (symbol) with completion.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
780 C -- read a command name (symbol) with completion.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
781 v -- read a variable name (symbol) with completion.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
782 b -- read a buffer name (a string) with completion.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
783 B -- buffer name, may be existing buffer or may not be.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
784 f -- read a file name, file must exist.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
785 F -- read a file name, file need not exist.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
786 n -- read a number.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
787 c -- read a character and return it as a number.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
788 p -- use the numeric value of the prefix argument.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
789 P -- use raw value of prefix - can be nil, -, (NUMBER) or NUMBER.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
790 x -- read a Lisp object from the minibuffer.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
791 X -- read a Lisp form from the minibuffer and use its value.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
792 A null string means call interactively with no arguments.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
793 `doc' is documentation for the user.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
794 */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
795
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
796 #define DEFUN(lname, fnname, sname, minargs, maxargs, prompt, doc) \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
797 Lisp_Object fnname (); \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
798 struct Lisp_Subr sname = {fnname, minargs, maxargs, lname, prompt, 0}; \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
799 Lisp_Object fnname
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
800
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
801 /* defsubr (Sname);
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
802 is how we define the symbol for function `name' at start-up time. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
803 extern void defsubr ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
804
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
805 #define MANY -2
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
806 #define UNEVALLED -1
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
807
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
808 extern void defvar_lisp ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
809 extern void defvar_bool ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
810 extern void defvar_int ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
811
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
812 /* Macros we use to define forwarded Lisp variables.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
813 These are used in the syms_of_FILENAME functions. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
814
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
815 #define DEFVAR_LISP(lname, vname, doc) defvar_lisp (lname, vname)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
816 #define DEFVAR_LISP_NOPRO(lname, vname, doc) defvar_lisp_nopro (lname, vname)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
817 #define DEFVAR_BOOL(lname, vname, doc) defvar_bool (lname, vname)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
818 #define DEFVAR_INT(lname, vname, doc) defvar_int (lname, vname)
999
d8d503897aa5 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 765
diff changeset
819 #define DEFVAR_PER_BUFFER(lname, vname, type, doc) \
d8d503897aa5 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 765
diff changeset
820 defvar_per_buffer (lname, vname, type, 0)
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
821
1197
4eee4dc734bb * lisp.h (struct handler): Remove the poll_suppress_count member
Jim Blandy <jimb@redhat.com>
parents: 1184
diff changeset
822 /* Structure for recording Lisp call stack for backtrace purposes. */
4eee4dc734bb * lisp.h (struct handler): Remove the poll_suppress_count member
Jim Blandy <jimb@redhat.com>
parents: 1184
diff changeset
823
4eee4dc734bb * lisp.h (struct handler): Remove the poll_suppress_count member
Jim Blandy <jimb@redhat.com>
parents: 1184
diff changeset
824 /* The special binding stack holds the outer values of variables while
4eee4dc734bb * lisp.h (struct handler): Remove the poll_suppress_count member
Jim Blandy <jimb@redhat.com>
parents: 1184
diff changeset
825 they are bound by a function application or a let form, stores the
4eee4dc734bb * lisp.h (struct handler): Remove the poll_suppress_count member
Jim Blandy <jimb@redhat.com>
parents: 1184
diff changeset
826 code to be executed for Lisp unwind-protect forms, and stores the C
4eee4dc734bb * lisp.h (struct handler): Remove the poll_suppress_count member
Jim Blandy <jimb@redhat.com>
parents: 1184
diff changeset
827 functions to be called for record_unwind_protect.
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
828
1197
4eee4dc734bb * lisp.h (struct handler): Remove the poll_suppress_count member
Jim Blandy <jimb@redhat.com>
parents: 1184
diff changeset
829 If func is non-zero, undoing this binding applies func to old_value;
4eee4dc734bb * lisp.h (struct handler): Remove the poll_suppress_count member
Jim Blandy <jimb@redhat.com>
parents: 1184
diff changeset
830 This implements record_unwind_protect.
4eee4dc734bb * lisp.h (struct handler): Remove the poll_suppress_count member
Jim Blandy <jimb@redhat.com>
parents: 1184
diff changeset
831 If func is zero and symbol is nil, undoing this binding evaluates
4eee4dc734bb * lisp.h (struct handler): Remove the poll_suppress_count member
Jim Blandy <jimb@redhat.com>
parents: 1184
diff changeset
832 the list of forms in old_value; this implements Lisp's unwind-protect
4eee4dc734bb * lisp.h (struct handler): Remove the poll_suppress_count member
Jim Blandy <jimb@redhat.com>
parents: 1184
diff changeset
833 form.
4eee4dc734bb * lisp.h (struct handler): Remove the poll_suppress_count member
Jim Blandy <jimb@redhat.com>
parents: 1184
diff changeset
834 Otherwise, undoing this binding stores old_value as symbol's value; this
4eee4dc734bb * lisp.h (struct handler): Remove the poll_suppress_count member
Jim Blandy <jimb@redhat.com>
parents: 1184
diff changeset
835 undoes the bindings made by a let form or function call. */
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
836 struct specbinding
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
837 {
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
838 Lisp_Object symbol, old_value;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
839 Lisp_Object (*func) ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
840 Lisp_Object unused; /* Dividing by 16 is faster than by 12 */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
841 };
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
842
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
843 extern struct specbinding *specpdl;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
844 extern struct specbinding *specpdl_ptr;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
845 extern int specpdl_size;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
846
1197
4eee4dc734bb * lisp.h (struct handler): Remove the poll_suppress_count member
Jim Blandy <jimb@redhat.com>
parents: 1184
diff changeset
847 /* Everything needed to describe an active condition case. */
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
848 struct handler
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
849 {
1197
4eee4dc734bb * lisp.h (struct handler): Remove the poll_suppress_count member
Jim Blandy <jimb@redhat.com>
parents: 1184
diff changeset
850 /* The handler clauses and variable from the condition-case form. */
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
851 Lisp_Object handler;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
852 Lisp_Object var;
1197
4eee4dc734bb * lisp.h (struct handler): Remove the poll_suppress_count member
Jim Blandy <jimb@redhat.com>
parents: 1184
diff changeset
853
4eee4dc734bb * lisp.h (struct handler): Remove the poll_suppress_count member
Jim Blandy <jimb@redhat.com>
parents: 1184
diff changeset
854 /* Used to effect the longjump out to the handler. */
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
855 struct catchtag *tag;
1197
4eee4dc734bb * lisp.h (struct handler): Remove the poll_suppress_count member
Jim Blandy <jimb@redhat.com>
parents: 1184
diff changeset
856
4eee4dc734bb * lisp.h (struct handler): Remove the poll_suppress_count member
Jim Blandy <jimb@redhat.com>
parents: 1184
diff changeset
857 /* The next enclosing handler. */
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
858 struct handler *next;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
859 };
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
860
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
861 extern struct handler *handlerlist;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
862
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
863 extern struct catchtag *catchlist;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
864 extern struct backtrace *backtrace_list;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
865
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
866 /* An address near the bottom of the stack.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
867 Tells GC how to save a copy of the stack. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
868 extern char *stack_bottom;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
869
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
870 /* Check quit-flag and quit if it is non-nil. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
871
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
872 #define QUIT \
493
8b101799ff37 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 439
diff changeset
873 if (!NILP (Vquit_flag) && NILP (Vinhibit_quit)) \
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
874 { Vquit_flag = Qnil; Fsignal (Qquit, Qnil); }
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
875
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
876 /* Nonzero if ought to quit now. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
877
493
8b101799ff37 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 439
diff changeset
878 #define QUITP (!NILP (Vquit_flag) && NILP (Vinhibit_quit))
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
879
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
880 /* 1 if CH is upper case. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
881
377
759f018b08b1 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 336
diff changeset
882 #define UPPERCASEP(CH) \
759f018b08b1 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 336
diff changeset
883 (XSTRING (current_buffer->downcase_table)->data[CH] != (CH))
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
884
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
885 /* 1 if CH is lower case. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
886
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
887 #define LOWERCASEP(CH) \
377
759f018b08b1 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 336
diff changeset
888 (!UPPERCASEP (CH) \
759f018b08b1 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 336
diff changeset
889 && XSTRING (current_buffer->upcase_table)->data[CH] != (CH))
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
890
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
891 /* 1 if CH is neither upper nor lower case. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
892
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
893 #define NOCASEP(CH) (XSTRING (current_buffer->upcase_table)->data[CH] == (CH))
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
894
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
895 /* Upcase a character, or make no change if that cannot be done. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
896
377
759f018b08b1 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 336
diff changeset
897 #define UPCASE(CH) \
759f018b08b1 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 336
diff changeset
898 (XSTRING (current_buffer->downcase_table)->data[CH] == (CH) \
759f018b08b1 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 336
diff changeset
899 ? UPCASE1 (CH) : (CH))
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
900
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
901 /* Upcase a character known to be not upper case. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
902
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
903 #define UPCASE1(CH) (XSTRING (current_buffer->upcase_table)->data[CH])
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
904
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
905 /* Downcase a character, or make no change if that cannot be done. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
906
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
907 #define DOWNCASE(CH) (XSTRING (current_buffer->downcase_table)->data[CH])
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
908
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
909 /* Current buffer's map from characters to lower-case characters. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
910
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
911 #define DOWNCASE_TABLE XSTRING (current_buffer->downcase_table)->data
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
912
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
913 /* Table mapping each char to the next char with the same lowercase version.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
914 This mapping is a no-op only for characters that don't have case. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
915 #define UPCASE_TABLE XSTRING (current_buffer->upcase_table)->data
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
916
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
917 extern Lisp_Object Vascii_downcase_table, Vascii_upcase_table;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
918
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
919 /* number of bytes of structure consed since last GC */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
920
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
921 extern int consing_since_gc;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
922
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
923 /* threshold for doing another gc */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
924
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
925 extern int gc_cons_threshold;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
926
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
927 /* Structure for recording stack slots that need marking */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
928
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
929 /* This is a chain of structures, each of which points at a Lisp_Object variable
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
930 whose value should be marked in garbage collection.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
931 Normally every link of the chain is an automatic variable of a function,
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
932 and its `val' points to some argument or local variable of the function.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
933 On exit to the function, the chain is set back to the value it had on entry.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
934 This way, no link remains in the chain when the stack frame containing the link disappears.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
935
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
936 Every function that can call Feval must protect in this fashion all
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
937 Lisp_Object variables whose contents will be used again. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
938
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
939 extern struct gcpro *gcprolist;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
940
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
941 struct gcpro
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
942 {
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
943 struct gcpro *next;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
944 Lisp_Object *var; /* Address of first protected variable */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
945 int nvars; /* Number of consecutive protected variables */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
946 };
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
947
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
948 #define GCPRO1(varname) \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
949 {gcpro1.next = gcprolist; gcpro1.var = &varname; gcpro1.nvars = 1; \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
950 gcprolist = &gcpro1; }
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
951
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
952 #define GCPRO2(varname1, varname2) \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
953 {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
954 gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
955 gcprolist = &gcpro2; }
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
956
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
957 #define GCPRO3(varname1, varname2, varname3) \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
958 {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
959 gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
960 gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
961 gcprolist = &gcpro3; }
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
962
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
963 #define GCPRO4(varname1, varname2, varname3, varname4) \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
964 {gcpro1.next = gcprolist; gcpro1.var = &varname1; gcpro1.nvars = 1; \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
965 gcpro2.next = &gcpro1; gcpro2.var = &varname2; gcpro2.nvars = 1; \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
966 gcpro3.next = &gcpro2; gcpro3.var = &varname3; gcpro3.nvars = 1; \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
967 gcpro4.next = &gcpro3; gcpro4.var = &varname4; gcpro4.nvars = 1; \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
968 gcprolist = &gcpro4; }
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
969
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
970 /* Call staticpro (&var) to protect static variable `var'. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
971
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
972 void staticpro();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
973
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
974 #define UNGCPRO (gcprolist = gcpro1.next)
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
975
1990
c7d6c746fea6 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1923
diff changeset
976 /* Evaluate expr, UNGCPRO, and then return the value of expr. I used
c7d6c746fea6 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1923
diff changeset
977 to have a `do ... while' clause around this to make it interact
c7d6c746fea6 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1923
diff changeset
978 with semicolons correctly, but this makes some compilers complain
c7d6c746fea6 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1923
diff changeset
979 that the while is never reached. */
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
980 #define RETURN_UNGCPRO(expr) \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
981 { \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
982 Lisp_Object ret_ungc_val; \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
983 ret_ungc_val = (expr); \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
984 UNGCPRO; \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
985 return ret_ungc_val; \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
986 } \
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
987
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
988 /* Defined in data.c */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
989 extern Lisp_Object Qnil, Qt, Qquote, Qlambda, Qsubr, Qunbound;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
990 extern Lisp_Object Qerror_conditions, Qerror_message, Qtop_level;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
991 extern Lisp_Object Qerror, Qquit, Qwrong_type_argument, Qargs_out_of_range;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
992 extern Lisp_Object Qvoid_variable, Qvoid_function;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
993 extern Lisp_Object Qsetting_constant, Qinvalid_read_syntax;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
994 extern Lisp_Object Qinvalid_function, Qwrong_number_of_arguments, Qno_catch;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
995 extern Lisp_Object Qend_of_file, Qarith_error;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
996 extern Lisp_Object Qbeginning_of_buffer, Qend_of_buffer, Qbuffer_read_only;
4035
465be43d8c05 Declare Qmark_inactive.
Roland McGrath <roland@gnu.org>
parents: 3837
diff changeset
997 extern Lisp_Object Qmark_inactive;
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
998
2653
d547e1a7eb9b * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2605
diff changeset
999 extern Lisp_Object Qrange_error, Qdomain_error, Qsingularity_error;
d547e1a7eb9b * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2605
diff changeset
1000 extern Lisp_Object Qoverflow_error, Qunderflow_error;
2155
3ec142562a65 (Qrange_error, Qdomain_error, Qsingularity_error):
Richard M. Stallman <rms@gnu.org>
parents: 2014
diff changeset
1001
706
86cb5db0b6c3 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 695
diff changeset
1002 extern Lisp_Object Qintegerp, Qnumberp, Qnatnump, Qsymbolp, Qlistp, Qconsp;
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1003 extern Lisp_Object Qstringp, Qarrayp, Qsequencep, Qbufferp;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1004 extern Lisp_Object Qchar_or_string_p, Qmarkerp, Qvectorp;
706
86cb5db0b6c3 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 695
diff changeset
1005 extern Lisp_Object Qinteger_or_marker_p, Qnumber_or_marker_p;
86cb5db0b6c3 *** empty log message ***
Richard M. Stallman <rms@gnu.org>
parents: 695
diff changeset
1006 extern Lisp_Object Qboundp, Qfboundp;
1306
01d973b5d81b * lisp.h: Declare Qbuffer_or_string_p.
Joseph Arceneaux <jla@gnu.org>
parents: 1290
diff changeset
1007 extern Lisp_Object Qbuffer_or_string_p;
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1008 extern Lisp_Object Qcdr;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1009
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1010 #ifdef LISP_FLOAT_TYPE
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1011 extern Lisp_Object Qfloatp, Qinteger_or_floatp, Qinteger_or_float_or_marker_p;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1012 #endif /* LISP_FLOAT_TYPE */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1013
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1014 extern Lisp_Object Qframep;
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1015
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1016 extern Lisp_Object Feq (), Fnull (), Flistp (), Fconsp (), Fatom (), Fnlistp ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1017 extern Lisp_Object Fintegerp (), Fnatnump (), Fsymbolp ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1018 extern Lisp_Object Fvectorp (), Fstringp (), Farrayp (), Fsequencep ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1019 extern Lisp_Object Fbufferp (), Fmarkerp (), Fsubrp (), Fchar_or_string_p ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1020 extern Lisp_Object Finteger_or_marker_p ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1021 #ifdef LISP_FLOAT_TYPE
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1022 extern Lisp_Object Ffloatp(), Finteger_or_floatp();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1023 extern Lisp_Object Finteger_or_float_or_marker_p(), Ftruncate();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1024 #endif /* LISP_FLOAT_TYPE */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1025
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1026 extern Lisp_Object Fcar (), Fcar_safe(), Fcdr (), Fcdr_safe();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1027 extern Lisp_Object Fsetcar (), Fsetcdr ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1028 extern Lisp_Object Fboundp (), Ffboundp (), Fmakunbound (), Ffmakunbound ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1029 extern Lisp_Object Fsymbol_function (), Fsymbol_plist (), Fsymbol_name ();
648
70b112526394 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 638
diff changeset
1030 extern Lisp_Object indirect_function (), Findirect_function ();
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1031 extern Lisp_Object Ffset (), Fsetplist ();
516
ccadad491483 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 493
diff changeset
1032 extern Lisp_Object Fsymbol_value (), find_symbol_value (), Fset ();
1518
eda3ace74d74 * lisp.h (Fdefault_boundp, make_float, Ffloat, Fnth, Fcopy_alist,
Jim Blandy <jimb@redhat.com>
parents: 1442
diff changeset
1033 extern Lisp_Object Fdefault_value (), Fset_default (), Fdefault_boundp ();
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1034
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1035 extern Lisp_Object Faref (), Faset (), Farray_length ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1036
2429
96b55f2f19cd Rename int-to-string to number-to-string, since it can handle
Jim Blandy <jimb@redhat.com>
parents: 2279
diff changeset
1037 extern Lisp_Object Fstring_to_number (), Fnumber_to_string ();
1923
3fad322bb72a * data.c (Fstring_to_int): Rename this to Fstring_to_number, since
Jim Blandy <jimb@redhat.com>
parents: 1779
diff changeset
1038 extern Lisp_Object Feqlsign (), Fgtr (), Flss (), Fgeq (), Fleq ();
3fad322bb72a * data.c (Fstring_to_int): Rename this to Fstring_to_number, since
Jim Blandy <jimb@redhat.com>
parents: 1779
diff changeset
1039 extern Lisp_Object Fneq (), Fzerop ();
3fad322bb72a * data.c (Fstring_to_int): Rename this to Fstring_to_number, since
Jim Blandy <jimb@redhat.com>
parents: 1779
diff changeset
1040 extern Lisp_Object Fplus (), Fminus (), Ftimes (), Fquo (), Frem ();
3fad322bb72a * data.c (Fstring_to_int): Rename this to Fstring_to_number, since
Jim Blandy <jimb@redhat.com>
parents: 1779
diff changeset
1041 extern Lisp_Object Fmax (), Fmin ();
3fad322bb72a * data.c (Fstring_to_int): Rename this to Fstring_to_number, since
Jim Blandy <jimb@redhat.com>
parents: 1779
diff changeset
1042 extern Lisp_Object Flogand (), Flogior (), Flogxor (), Flognot ();
3fad322bb72a * data.c (Fstring_to_int): Rename this to Fstring_to_number, since
Jim Blandy <jimb@redhat.com>
parents: 1779
diff changeset
1043 extern Lisp_Object Flsh (), Fash ();
3fad322bb72a * data.c (Fstring_to_int): Rename this to Fstring_to_number, since
Jim Blandy <jimb@redhat.com>
parents: 1779
diff changeset
1044
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1045 extern Lisp_Object Fadd1 (), Fsub1 ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1046
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1047 extern Lisp_Object make_number ();
2515
c0cdd6a80391 long_to_cons and cons_to_long are generally useful things; they're
Jim Blandy <jimb@redhat.com>
parents: 2439
diff changeset
1048 extern Lisp_Object long_to_cons ();
c0cdd6a80391 long_to_cons and cons_to_long are generally useful things; they're
Jim Blandy <jimb@redhat.com>
parents: 2439
diff changeset
1049 extern unsigned long cons_to_long ();
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1050 extern void args_out_of_range ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1051 extern void args_out_of_range_3 ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1052 extern Lisp_Object wrong_type_argument ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1053 #ifdef LISP_FLOAT_TYPE
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1054 extern Lisp_Object Ffloat_to_int(), Fint_to_float();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1055 extern double extract_float();
1518
eda3ace74d74 * lisp.h (Fdefault_boundp, make_float, Ffloat, Fnth, Fcopy_alist,
Jim Blandy <jimb@redhat.com>
parents: 1442
diff changeset
1056 extern Lisp_Object make_float ();
eda3ace74d74 * lisp.h (Fdefault_boundp, make_float, Ffloat, Fnth, Fcopy_alist,
Jim Blandy <jimb@redhat.com>
parents: 1442
diff changeset
1057 extern Lisp_Object Ffloat ();
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1058 #endif /* LISP_FLOAT_TYPE */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1059
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1060 /* Defined in fns.c */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1061 extern Lisp_Object Qstring_lessp;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1062 extern Lisp_Object Vfeatures;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1063 extern Lisp_Object Fidentity (), Frandom ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1064 extern Lisp_Object Flength ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1065 extern Lisp_Object Fappend (), Fconcat (), Fvconcat (), Fcopy_sequence ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1066 extern Lisp_Object Fsubstring ();
1518
eda3ace74d74 * lisp.h (Fdefault_boundp, make_float, Ffloat, Fnth, Fcopy_alist,
Jim Blandy <jimb@redhat.com>
parents: 1442
diff changeset
1067 extern Lisp_Object Fnth (), Fnthcdr (), Fmemq (), Fassq (), Fassoc ();
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1068 extern Lisp_Object Frassq (), Fdelq (), Fsort ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1069 extern Lisp_Object Freverse (), Fnreverse (), Fget (), Fput (), Fequal ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1070 extern Lisp_Object Ffillarray (), Fnconc (), Fmapcar (), Fmapconcat ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1071 extern Lisp_Object Fy_or_n_p (), do_yes_or_no_p ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1072 extern Lisp_Object Ffeaturep (), Frequire () , Fprovide ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1073 extern Lisp_Object concat2 (), nconc2 ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1074 extern Lisp_Object assq_no_quit ();
1518
eda3ace74d74 * lisp.h (Fdefault_boundp, make_float, Ffloat, Fnth, Fcopy_alist,
Jim Blandy <jimb@redhat.com>
parents: 1442
diff changeset
1075 extern Lisp_Object Fcopy_alist ();
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1076
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1077 /* Defined in alloc.c */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1078 extern Lisp_Object Vpurify_flag;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1079 extern Lisp_Object Fcons (), Flist(), Fmake_list ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1080 extern Lisp_Object Fmake_vector (), Fvector (), Fmake_symbol (), Fmake_marker ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1081 extern Lisp_Object Fmake_string (), build_string (), make_string ();
2014
637d9ebe3f50 (CHAR_META, CHAR_SHIFT, CHAR_CTL): New macros.
Richard M. Stallman <rms@gnu.org>
parents: 1990
diff changeset
1082 extern Lisp_Object make_event_array (), make_uninit_string ();
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1083 extern Lisp_Object Fpurecopy (), make_pure_string ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1084 extern Lisp_Object pure_cons (), make_pure_vector ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1085 extern Lisp_Object Fgarbage_collect ();
1518
eda3ace74d74 * lisp.h (Fdefault_boundp, make_float, Ffloat, Fnth, Fcopy_alist,
Jim Blandy <jimb@redhat.com>
parents: 1442
diff changeset
1086 extern Lisp_Object Fmake_byte_code ();
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1087
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1088 /* Defined in print.c */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1089 extern Lisp_Object Vprin1_to_string_buffer;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1090 extern Lisp_Object Fprin1 (), Fprin1_to_string (), Fprinc ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1091 extern Lisp_Object Fterpri (), Fprint ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1092 extern Lisp_Object Vstandard_output, Qstandard_output;
439
350065270fc8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 381
diff changeset
1093 extern Lisp_Object Qexternal_debugging_output;
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1094 extern void temp_output_buffer_setup (), temp_output_buffer_show ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1095 extern int print_level, print_escape_newlines;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1096 extern Lisp_Object Qprint_escape_newlines;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1097
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1098 /* Defined in lread.c */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1099 extern Lisp_Object Qvariable_documentation, Qstandard_input;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1100 extern Lisp_Object Vobarray, Vstandard_input;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1101 extern Lisp_Object Fread (), Fread_from_string ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1102 extern Lisp_Object Fintern (), Fintern_soft (), Fload ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1103 extern Lisp_Object Fget_file_char (), Fread_char ();
2653
d547e1a7eb9b * lisp.h (CHAR_ALT, CHAR_SUPER, CHAR_HYPER): New constants, in
Jim Blandy <jimb@redhat.com>
parents: 2605
diff changeset
1104 extern Lisp_Object read_filtered_event ();
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1105 extern Lisp_Object Feval_current_buffer (), Feval_region ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1106 extern Lisp_Object intern (), oblookup ();
2605
b3c605e9bb30 (LOADHIST_ATTACH): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 2515
diff changeset
1107 #define LOADHIST_ATTACH(x) \
b3c605e9bb30 (LOADHIST_ATTACH): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 2515
diff changeset
1108 if (initialized) Vcurrent_load_list = Fcons (x, Vcurrent_load_list)
b3c605e9bb30 (LOADHIST_ATTACH): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 2515
diff changeset
1109 extern Lisp_Object Vcurrent_load_list;
b3c605e9bb30 (LOADHIST_ATTACH): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 2515
diff changeset
1110 extern Lisp_Object Vload_history;
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1111
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1112 /* Defined in eval.c */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1113 extern Lisp_Object Qautoload, Qexit, Qinteractive, Qcommandp, Qdefun, Qmacro;
381
0673e72f6c8c *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 377
diff changeset
1114 extern Lisp_Object Vinhibit_quit, Qinhibit_quit, Vquit_flag;
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1115 extern Lisp_Object Vmocklisp_arguments, Qmocklisp, Qmocklisp_arguments;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1116 extern Lisp_Object Vautoload_queue;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1117 extern Lisp_Object Vrun_hooks;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1118 extern Lisp_Object Fand (), For (), Fif (), Fprogn (), Fprog1 (), Fprog2 ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1119 extern Lisp_Object Fsetq (), Fquote ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1120 extern Lisp_Object Fuser_variable_p (), Finteractive_p ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1121 extern Lisp_Object Fdefun (), Flet (), FletX (), Fwhile ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1122 extern Lisp_Object Fcatch (), Fthrow (), Funwind_protect ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1123 extern Lisp_Object Fcondition_case (), Fsignal ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1124 extern Lisp_Object Ffunction_type (), Fautoload (), Fcommandp ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1125 extern Lisp_Object Feval (), Fapply (), Ffuncall ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1126 extern Lisp_Object Fglobal_set (), Fglobal_value (), Fbacktrace ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1127 extern Lisp_Object apply1 (), call0 (), call1 (), call2 (), call3 ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1128 extern Lisp_Object apply_lambda ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1129 extern Lisp_Object internal_catch ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1130 extern Lisp_Object internal_condition_case ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1131 extern Lisp_Object unbind_to ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1132 extern void error ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1133 extern Lisp_Object un_autoload ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1134
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1135 /* Defined in editfns.c */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1136 extern Lisp_Object Vprefix_arg, Qminus, Vcurrent_prefix_arg;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1137 extern Lisp_Object Fgoto_char ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1138 extern Lisp_Object Fpoint_min_marker (), Fpoint_max_marker ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1139 extern Lisp_Object Fpoint_min (), Fpoint_max ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1140 extern Lisp_Object Fpoint (), Fpoint_marker (), Fmark_marker ();
516
ccadad491483 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 493
diff changeset
1141 extern Lisp_Object Ffollowing_char (), Fprevious_char (), Fchar_after ();
ccadad491483 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 493
diff changeset
1142 extern Lisp_Object Finsert ();
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1143 extern Lisp_Object Feolp (), Feobp (), Fbolp (), Fbobp ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1144 extern Lisp_Object Fformat (), format1 ();
648
70b112526394 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 638
diff changeset
1145 extern Lisp_Object make_buffer_string (), Fbuffer_substring ();
70b112526394 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 638
diff changeset
1146 extern Lisp_Object Fbuffer_string ();
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1147 extern Lisp_Object Fstring_equal (), Fstring_lessp (), Fbuffer_substring_lessp ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1148 extern Lisp_Object save_excursion_save (), save_restriction_save ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1149 extern Lisp_Object save_excursion_restore (), save_restriction_restore ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1150 extern Lisp_Object Fchar_to_string ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1151
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1152 /* defined in buffer.c */
3539
a9b1e2a5523b Don't declare malloc or realloc.
Richard M. Stallman <rms@gnu.org>
parents: 3324
diff changeset
1153 extern Lisp_Object Vbuffer_alist, Vinhibit_read_only;
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1154 extern Lisp_Object Fget_buffer (), Fget_buffer_create (), Fset_buffer ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1155 extern Lisp_Object Fbarf_if_buffer_read_only ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1156 extern Lisp_Object Fcurrent_buffer (), Fswitch_to_buffer (), Fpop_to_buffer ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1157 extern Lisp_Object Fother_buffer ();
2780
cfe7659bbc05 * lisp.h (Lisp_Overlay): New tag.
Jim Blandy <jimb@redhat.com>
parents: 2728
diff changeset
1158 extern Lisp_Object Qoverlayp;
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1159 extern struct buffer *all_buffers;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1160
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1161 /* defined in marker.c */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1162
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1163 extern Lisp_Object Fmarker_position (), Fmarker_buffer ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1164 extern Lisp_Object Fcopy_marker ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1165
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1166 /* Defined in fileio.c */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1167
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1168 extern Lisp_Object Qfile_error;
1681
a03b87a92614 * fileio.c (find_file_handler): Rename this to
Jim Blandy <jimb@redhat.com>
parents: 1567
diff changeset
1169 extern Lisp_Object Ffind_file_name_handler ();
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1170 extern Lisp_Object Ffile_name_as_directory ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1171 extern Lisp_Object Fexpand_file_name (), Ffile_name_nondirectory ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1172 extern Lisp_Object Fsubstitute_in_file_name ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1173 extern Lisp_Object Ffile_symlink_p ();
1518
eda3ace74d74 * lisp.h (Fdefault_boundp, make_float, Ffloat, Fnth, Fcopy_alist,
Jim Blandy <jimb@redhat.com>
parents: 1442
diff changeset
1174 extern Lisp_Object Fverify_visited_file_modtime ();
eda3ace74d74 * lisp.h (Fdefault_boundp, make_float, Ffloat, Fnth, Fcopy_alist,
Jim Blandy <jimb@redhat.com>
parents: 1442
diff changeset
1175 extern Lisp_Object Ffile_exists_p ();
eda3ace74d74 * lisp.h (Fdefault_boundp, make_float, Ffloat, Fnth, Fcopy_alist,
Jim Blandy <jimb@redhat.com>
parents: 1442
diff changeset
1176 extern Lisp_Object Fdirectory_file_name ();
eda3ace74d74 * lisp.h (Fdefault_boundp, make_float, Ffloat, Fnth, Fcopy_alist,
Jim Blandy <jimb@redhat.com>
parents: 1442
diff changeset
1177 extern Lisp_Object Ffile_name_directory ();
eda3ace74d74 * lisp.h (Fdefault_boundp, make_float, Ffloat, Fnth, Fcopy_alist,
Jim Blandy <jimb@redhat.com>
parents: 1442
diff changeset
1178 extern Lisp_Object expand_and_dir_to_file ();
eda3ace74d74 * lisp.h (Fdefault_boundp, make_float, Ffloat, Fnth, Fcopy_alist,
Jim Blandy <jimb@redhat.com>
parents: 1442
diff changeset
1179 extern Lisp_Object Ffile_accessible_directory_p ();
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1180
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1181 /* Defined in abbrev.c */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1182
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1183 extern Lisp_Object Vfundamental_mode_abbrev_table;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1184
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1185 /* defined in search.c */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1186 extern Lisp_Object Fstring_match ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1187 extern Lisp_Object Fscan_buffer ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1188
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1189 /* defined in minibuf.c */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1190
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1191 extern Lisp_Object last_minibuf_string;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1192 extern Lisp_Object read_minibuf (), Fcompleting_read ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1193 extern Lisp_Object Fread_from_minibuffer ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1194 extern Lisp_Object Fread_variable (), Fread_buffer (), Fread_key_sequence ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1195 extern Lisp_Object Fread_minibuffer (), Feval_minibuffer ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1196 extern Lisp_Object Fread_string (), Fread_file_name ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1197 extern Lisp_Object Fread_no_blanks_input ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1198
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1199 /* Defined in callint.c */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1200
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1201 extern Lisp_Object Vcommand_history;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1202 extern Lisp_Object Qcall_interactively;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1203 extern Lisp_Object Fcall_interactively ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1204 extern Lisp_Object Fprefix_numeric_value ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1205
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1206 /* defined in casefiddle.c */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1207
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1208 extern Lisp_Object Fdowncase (), Fupcase (), Fcapitalize ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1209
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1210 /* defined in keyboard.c */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1211
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1212 extern Lisp_Object Qdisabled;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1213 extern Lisp_Object Vhelp_form, Vtop_level;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1214 extern Lisp_Object Fdiscard_input (), Frecursive_edit ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1215 extern Lisp_Object Fcommand_execute (), Finput_pending_p ();
1990
c7d6c746fea6 Use the term `scroll bar', instead of `scrollbar'.
Jim Blandy <jimb@redhat.com>
parents: 1923
diff changeset
1216 extern Lisp_Object Qvertical_scroll_bar;
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1217
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1218 /* defined in keymap.c */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1219
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1220 extern Lisp_Object Qkeymap;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1221 extern Lisp_Object current_global_map;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1222 extern Lisp_Object Fkey_description (), Fsingle_key_description ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1223 extern Lisp_Object Fwhere_is_internal ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1224 extern Lisp_Object access_keymap (), store_in_keymap ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1225 extern Lisp_Object get_keyelt (), get_keymap();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1226
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1227 /* defined in indent.c */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1228 extern Lisp_Object Fvertical_motion (), Findent_to (), Fcurrent_column ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1229
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1230 /* defined in window.c */
3800
41923469aefa Remove decl for Qvisible.
Jim Blandy <jimb@redhat.com>
parents: 3793
diff changeset
1231 extern Lisp_Object Qwindowp, Qwindow_live_p;
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1232 extern Lisp_Object Fget_buffer_window ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1233 extern Lisp_Object Fsave_window_excursion ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1234 extern Lisp_Object Fset_window_configuration (), Fcurrent_window_configuration ();
439
350065270fc8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 381
diff changeset
1235 extern Lisp_Object Fcoordinates_in_window_p ();
350065270fc8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 381
diff changeset
1236 extern Lisp_Object Fwindow_at ();
1779
6f0c4252940f * window.c (window_internal_width): New function.
Jim Blandy <jimb@redhat.com>
parents: 1713
diff changeset
1237 extern int window_internal_height (), window_internal_width ();
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1238
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1239 /* defined in frame.c */
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1240 extern Lisp_Object Fframep ();
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1241 extern Lisp_Object Fselect_frame ();
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1242 extern Lisp_Object Ffocus_frame ();
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1243 extern Lisp_Object Funfocus_frame ();
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1244 extern Lisp_Object Fselected_frame ();
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1245 extern Lisp_Object Fwindow_frame ();
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1246 extern Lisp_Object Fframe_root_window ();
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1247 extern Lisp_Object Fframe_selected_window ();
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1248 extern Lisp_Object Fframe_list ();
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1249 extern Lisp_Object Fnext_frame ();
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1250 extern Lisp_Object Fdelete_frame ();
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1251 extern Lisp_Object Fread_mouse_position ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1252 extern Lisp_Object Fset_mouse_position ();
765
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1253 extern Lisp_Object Fmake_frame_visible ();
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1254 extern Lisp_Object Fmake_frame_invisible ();
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1255 extern Lisp_Object Ficonify_frame ();
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1256 extern Lisp_Object Fdeiconify_frame ();
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1257 extern Lisp_Object Fframe_visible_p ();
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1258 extern Lisp_Object Fvisible_frame_list ();
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1259 extern Lisp_Object Fframe_parameters ();
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1260 extern Lisp_Object Fmodify_frame_parameters ();
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1261 extern Lisp_Object Fframe_pixel_size ();
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1262 extern Lisp_Object Fframe_height ();
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1263 extern Lisp_Object Fframe_width ();
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1264 extern Lisp_Object Fset_frame_height ();
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1265 extern Lisp_Object Fset_frame_width ();
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1266 extern Lisp_Object Fset_frame_size ();
e4093444f9f8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 732
diff changeset
1267 extern Lisp_Object Fset_frame_position ();
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1268 #ifndef HAVE_X11
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1269 extern Lisp_Object Frubber_band_rectangle ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1270 #endif /* HAVE_X11 */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1271
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1272 /* defined in emacs.c */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1273 extern Lisp_Object decode_env_path ();
2279
012b04efa234 * emacs.c (Finvocation_name): New function.
Jim Blandy <jimb@redhat.com>
parents: 2210
diff changeset
1274 extern Lisp_Object Vinvocation_name;
3837
85652925d5b8 * emacs.c (Fkill_emacs): Pass third argument to shut_down_emacs.
Jim Blandy <jimb@redhat.com>
parents: 3800
diff changeset
1275 void shut_down_emacs ( /* int signal, int no_x, Lisp_Object stuff */ );
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1276 /* Nonzero means don't do interactive redisplay and don't change tty modes */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1277 extern int noninteractive;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1278 /* Nonzero means don't do use window-system-specific display code */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1279 extern int inhibit_window_system;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1280
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1281 /* defined in process.c */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1282 extern Lisp_Object Fget_process (), Fget_buffer_process (), Fprocessp ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1283 extern Lisp_Object Fprocess_status (), Fkill_process ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1284
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1285 /* defined in callproc.c */
439
350065270fc8 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 381
diff changeset
1286 extern Lisp_Object Vexec_path, Vexec_directory, Vdata_directory;
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1287
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1288 /* defined in doc.c */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1289 extern Lisp_Object Vdoc_file_name;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1290 extern Lisp_Object Fsubstitute_command_keys ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1291 extern Lisp_Object Fdocumentation (), Fdocumentation_property ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1292
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1293 /* defined in bytecode.c */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1294 extern Lisp_Object Qbytecode;
1518
eda3ace74d74 * lisp.h (Fdefault_boundp, make_float, Ffloat, Fnth, Fcopy_alist,
Jim Blandy <jimb@redhat.com>
parents: 1442
diff changeset
1295 extern Lisp_Object Fbyte_code ();
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1296
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1297 /* defined in macros.c */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1298 extern Lisp_Object Qexecute_kbd_macro;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1299 extern Lisp_Object Fexecute_kbd_macro ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1300
1518
eda3ace74d74 * lisp.h (Fdefault_boundp, make_float, Ffloat, Fnth, Fcopy_alist,
Jim Blandy <jimb@redhat.com>
parents: 1442
diff changeset
1301 /* defined in undo.c */
eda3ace74d74 * lisp.h (Fdefault_boundp, make_float, Ffloat, Fnth, Fcopy_alist,
Jim Blandy <jimb@redhat.com>
parents: 1442
diff changeset
1302 extern Lisp_Object Fundo_boundary ();
eda3ace74d74 * lisp.h (Fdefault_boundp, make_float, Ffloat, Fnth, Fcopy_alist,
Jim Blandy <jimb@redhat.com>
parents: 1442
diff changeset
1303 extern Lisp_Object truncate_undo_list ();
eda3ace74d74 * lisp.h (Fdefault_boundp, make_float, Ffloat, Fnth, Fcopy_alist,
Jim Blandy <jimb@redhat.com>
parents: 1442
diff changeset
1304
4067
379b03502e48 (Qinsert_before_hooks, Qinsert_after_hooks): Declared.
Richard M. Stallman <rms@gnu.org>
parents: 4035
diff changeset
1305 /* defined in textprop.c */
4079
c1b16f1167d4 (Qinsert_in_front_hooks, Qinsert_behind_hooks): Declared.
Richard M. Stallman <rms@gnu.org>
parents: 4067
diff changeset
1306 extern Lisp_Object Qmodification_hooks;
c1b16f1167d4 (Qinsert_in_front_hooks, Qinsert_behind_hooks): Declared.
Richard M. Stallman <rms@gnu.org>
parents: 4067
diff changeset
1307 extern Lisp_Object Qinsert_in_front_hooks, Qinsert_behind_hooks;
4067
379b03502e48 (Qinsert_before_hooks, Qinsert_after_hooks): Declared.
Richard M. Stallman <rms@gnu.org>
parents: 4035
diff changeset
1308
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1309 /* Nonzero means Emacs has already been initialized.
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1310 Used during startup to detect startup of dumped Emacs. */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1311 extern int initialized;
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1312
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1313 extern int immediate_quit; /* Nonzero means ^G can quit instantly */
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1314
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1315 extern void debugger ();
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1316
2872
0ab5a9f88ff3 * lisp.h (malloc, realloc): Declare these to return void *, to
Jim Blandy <jimb@redhat.com>
parents: 2780
diff changeset
1317 extern char *getenv (), *ctime (), *getwd ();
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1318 extern long *xmalloc (), *xrealloc ();
2439
b6c62e4abf59 Put interrupt input blocking in a separate file from xterm.h.
Jim Blandy <jimb@redhat.com>
parents: 2429
diff changeset
1319 extern void xfree ();
302
7c3ce5b350b8 Initial revision
Jim Blandy <jimb@redhat.com>
parents:
diff changeset
1320
493
8b101799ff37 *** empty log message ***
Jim Blandy <jimb@redhat.com>
parents: 439
diff changeset
1321 extern char *egetenv ();
2605
b3c605e9bb30 (LOADHIST_ATTACH): New macro.
Richard M. Stallman <rms@gnu.org>
parents: 2515
diff changeset
1322