aboutsummaryrefslogtreecommitdiffstats
path: root/src/lisp.h
diff options
context:
space:
mode:
authorKaroly Lorentey2004-04-27 15:53:30 +0000
committerKaroly Lorentey2004-04-27 15:53:30 +0000
commit6c8caecfb9c96879b8ea6f1e08314408be40a832 (patch)
treecec3e345d246fe9b789786da588c5c6334215679 /src/lisp.h
parentced7ed5611e2a6e60a5ac7a97e165545843d0fa9 (diff)
parentc4c07982c1a6b3ddd9339ecdb9af1876f70d8792 (diff)
downloademacs-6c8caecfb9c96879b8ea6f1e08314408be40a832.tar.gz
emacs-6c8caecfb9c96879b8ea6f1e08314408be40a832.zip
Merged in changes from CVS trunk.
Patches applied: * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-241 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-242 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-243 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-244 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-245 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-246 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-247 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-248 src/lisp.h (CYCLE_CHECK): Macro moved from xfaces.c * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-249 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-250 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-251 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-252 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-253 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-254 Update from CVS * miles@gnu.org--gnu-2004/emacs--cvs-trunk--0--patch-255 Update from CVS git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-153
Diffstat (limited to 'src/lisp.h')
-rw-r--r--src/lisp.h30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/lisp.h b/src/lisp.h
index bc67f4dbe67..7e59c50c3b4 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -278,6 +278,10 @@ enum pvec_type
278 278
279/* For convenience, we also store the number of elements in these bits. */ 279/* For convenience, we also store the number of elements in these bits. */
280#define PSEUDOVECTOR_SIZE_MASK 0x1ff 280#define PSEUDOVECTOR_SIZE_MASK 0x1ff
281
282/* Number of bits to put in each character in the internal representation
283 of bool vectors. This should not vary across implementations. */
284#define BOOL_VECTOR_BITS_PER_CHAR 8
281 285
282/***** Select the tagging scheme. *****/ 286/***** Select the tagging scheme. *****/
283 287
@@ -3187,6 +3191,32 @@ extern Lisp_Object Vdirectory_sep_char;
3187 ? make_float (val) \ 3191 ? make_float (val) \
3188 : make_number ((EMACS_INT)(val))) 3192 : make_number ((EMACS_INT)(val)))
3189 3193
3194
3195/* Checks the `cycle check' variable CHECK to see if it indicates that
3196 EL is part of a cycle; CHECK must be either Qnil or a value returned
3197 by an earlier use of CYCLE_CHECK. SUSPICIOUS is the number of
3198 elements after which a cycle might be suspected; after that many
3199 elements, this macro begins consing in order to keep more precise
3200 track of elements.
3201
3202 Returns nil if a cycle was detected, otherwise a new value for CHECK
3203 that includes EL.
3204
3205 CHECK is evaluated multiple times, EL and SUSPICIOUS 0 or 1 times, so
3206 the caller should make sure that's ok. */
3207
3208#define CYCLE_CHECK(check, el, suspicious) \
3209 (NILP (check) \
3210 ? make_number (0) \
3211 : (INTEGERP (check) \
3212 ? (XFASTINT (check) < (suspicious) \
3213 ? make_number (XFASTINT (check) + 1) \
3214 : Fcons (el, Qnil)) \
3215 : (!NILP (Fmemq ((el), (check))) \
3216 ? Qnil \
3217 : Fcons ((el), (check)))))
3218
3219
3190#endif /* EMACS_LISP_H */ 3220#endif /* EMACS_LISP_H */
3191 3221
3192/* arch-tag: 9b2ed020-70eb-47ac-94ee-e1c2a5107d5e 3222/* arch-tag: 9b2ed020-70eb-47ac-94ee-e1c2a5107d5e