aboutsummaryrefslogtreecommitdiffstats
path: root/src/lisp.h
diff options
context:
space:
mode:
authorMiles Bader2007-10-19 00:00:21 +0000
committerMiles Bader2007-10-19 00:00:21 +0000
commit9c8020a8df03dc67a56d7df15664dcf7ace54bf0 (patch)
tree09b0646addff3c39f9e96ba89c04bdcc038a87a7 /src/lisp.h
parentdfc3268dfa133a2e0a677f1af7c1ee548eae065d (diff)
parentbd3164743080f3eb5fc316aca7cc5322ca58fe33 (diff)
downloademacs-9c8020a8df03dc67a56d7df15664dcf7ace54bf0.tar.gz
emacs-9c8020a8df03dc67a56d7df15664dcf7ace54bf0.zip
Merge from emacs--devo--0
Patches applied: * emacs--devo--0 (patch 890-898) - Update from CVS - Merge from emacs--rel--22 * emacs--rel--22 (patch 122-128) - Update from CVS - Merge from gnus--rel--5.10 * gnus--rel--5.10 (patch 257-258) - Merge from emacs--rel--22 - Update from CVS Revision: emacs@sv.gnu.org/emacs--unicode--0--patch-270
Diffstat (limited to 'src/lisp.h')
-rw-r--r--src/lisp.h60
1 files changed, 40 insertions, 20 deletions
diff --git a/src/lisp.h b/src/lisp.h
index 231cfcc7379..9ce5b3429e7 100644
--- a/src/lisp.h
+++ b/src/lisp.h
@@ -214,7 +214,6 @@ enum Lisp_Misc_Type
214 Lisp_Misc_Objfwd, 214 Lisp_Misc_Objfwd,
215 Lisp_Misc_Buffer_Objfwd, 215 Lisp_Misc_Buffer_Objfwd,
216 Lisp_Misc_Buffer_Local_Value, 216 Lisp_Misc_Buffer_Local_Value,
217 Lisp_Misc_Some_Buffer_Local_Value,
218 Lisp_Misc_Overlay, 217 Lisp_Misc_Overlay,
219 Lisp_Misc_Kboard_Objfwd, 218 Lisp_Misc_Kboard_Objfwd,
220 Lisp_Misc_Save_Value, 219 Lisp_Misc_Save_Value,
@@ -512,16 +511,20 @@ extern size_t pure_size;
512/* Misc types. */ 511/* Misc types. */
513 512
514#define XMISC(a) ((union Lisp_Misc *) XPNTR(a)) 513#define XMISC(a) ((union Lisp_Misc *) XPNTR(a))
515#define XMISCTYPE(a) (XMARKER (a)->type) 514#define XMISCANY(a) (eassert (MISCP (a)), &(XMISC(a)->u_any))
516#define XMARKER(a) (&(XMISC(a)->u_marker)) 515#define XMISCTYPE(a) (XMISCANY (a)->type)
517#define XINTFWD(a) (&(XMISC(a)->u_intfwd)) 516#define XMARKER(a) (eassert (MARKERP (a)), &(XMISC(a)->u_marker))
518#define XBOOLFWD(a) (&(XMISC(a)->u_boolfwd)) 517#define XINTFWD(a) (eassert (INTFWDP (a)), &(XMISC(a)->u_intfwd))
519#define XOBJFWD(a) (&(XMISC(a)->u_objfwd)) 518#define XBOOLFWD(a) (eassert (BOOLFWDP (a)), &(XMISC(a)->u_boolfwd))
520#define XBUFFER_OBJFWD(a) (&(XMISC(a)->u_buffer_objfwd)) 519#define XOBJFWD(a) (eassert (OBJFWDP (a)), &(XMISC(a)->u_objfwd))
521#define XBUFFER_LOCAL_VALUE(a) (&(XMISC(a)->u_buffer_local_value)) 520#define XOVERLAY(a) (eassert (OVERLAYP (a)), &(XMISC(a)->u_overlay))
522#define XOVERLAY(a) (&(XMISC(a)->u_overlay)) 521#define XSAVE_VALUE(a) (eassert (SAVE_VALUEP (a)), &(XMISC(a)->u_save_value))
523#define XKBOARD_OBJFWD(a) (&(XMISC(a)->u_kboard_objfwd)) 522#define XBUFFER_OBJFWD(a) \
524#define XSAVE_VALUE(a) (&(XMISC(a)->u_save_value)) 523 (eassert (BUFFER_OBJFWDP (a)), &(XMISC(a)->u_buffer_objfwd))
524#define XBUFFER_LOCAL_VALUE(a) \
525 (eassert (BUFFER_LOCAL_VALUEP (a)), &(XMISC(a)->u_buffer_local_value))
526#define XKBOARD_OBJFWD(a) \
527 (eassert (KBOARD_OBJFWDP (a)), &(XMISC(a)->u_kboard_objfwd))
525 528
526/* Pseudovector types. */ 529/* Pseudovector types. */
527 530
@@ -1108,6 +1111,13 @@ struct Lisp_Hash_Table
1108 1111
1109/* These structures are used for various misc types. */ 1112/* These structures are used for various misc types. */
1110 1113
1114struct Lisp_Misc_Any /* Supertype of all Misc types. */
1115{
1116 int type : 16; /* = Lisp_Misc_Marker */
1117 unsigned gcmarkbit : 1;
1118 int spacer : 15;
1119};
1120
1111struct Lisp_Marker 1121struct Lisp_Marker
1112{ 1122{
1113 int type : 16; /* = Lisp_Misc_Marker */ 1123 int type : 16; /* = Lisp_Misc_Marker */
@@ -1208,19 +1218,19 @@ struct Lisp_Buffer_Objfwd
1208 binding into `realvalue' (or through it). Also update 1218 binding into `realvalue' (or through it). Also update
1209 LOADED-BINDING to point to the newly loaded binding. 1219 LOADED-BINDING to point to the newly loaded binding.
1210 1220
1211 Lisp_Misc_Buffer_Local_Value and Lisp_Misc_Some_Buffer_Local_Value 1221 `local_if_set' indicates that merely setting the variable creates a local
1212 both use this kind of structure. With the former, merely setting 1222 binding for the current buffer. Otherwise the latter, setting the
1213 the variable creates a local binding for the current buffer. With 1223 variable does not do that; only make-local-variable does that. */
1214 the latter, setting the variable does not do that; only
1215 make-local-variable does that. */
1216 1224
1217struct Lisp_Buffer_Local_Value 1225struct Lisp_Buffer_Local_Value
1218 { 1226 {
1219 int type : 16; /* = Lisp_Misc_Buffer_Local_Value 1227 int type : 16; /* = Lisp_Misc_Buffer_Local_Value */
1220 or Lisp_Misc_Some_Buffer_Local_Value */
1221 unsigned gcmarkbit : 1; 1228 unsigned gcmarkbit : 1;
1222 int spacer : 12; 1229 int spacer : 11;
1223 1230
1231 /* 1 means that merely setting the variable creates a local
1232 binding for the current buffer */
1233 unsigned int local_if_set : 1;
1224 /* 1 means this variable is allowed to have frame-local bindings, 1234 /* 1 means this variable is allowed to have frame-local bindings,
1225 so check for them when looking for the proper binding. */ 1235 so check for them when looking for the proper binding. */
1226 unsigned int check_frame : 1; 1236 unsigned int check_frame : 1;
@@ -1310,7 +1320,8 @@ struct Lisp_Free
1310 1320
1311union Lisp_Misc 1321union Lisp_Misc
1312 { 1322 {
1313 struct Lisp_Free u_free; 1323 struct Lisp_Misc_Any u_any; /* Supertype of all Misc types. */
1324 struct Lisp_Free u_free; /* Includes padding to force alignment. */
1314 struct Lisp_Marker u_marker; 1325 struct Lisp_Marker u_marker;
1315 struct Lisp_Intfwd u_intfwd; 1326 struct Lisp_Intfwd u_intfwd;
1316 struct Lisp_Boolfwd u_boolfwd; 1327 struct Lisp_Boolfwd u_boolfwd;
@@ -1452,8 +1463,17 @@ typedef unsigned char UCHAR;
1452#define OBJFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Objfwd) 1463#define OBJFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Objfwd)
1453#define BUFFER_OBJFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Buffer_Objfwd) 1464#define BUFFER_OBJFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Buffer_Objfwd)
1454#define BUFFER_LOCAL_VALUEP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Buffer_Local_Value) 1465#define BUFFER_LOCAL_VALUEP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Buffer_Local_Value)
1466<<<<<<< TREE
1455#define SOME_BUFFER_LOCAL_VALUEP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Some_Buffer_Local_Value) 1467#define SOME_BUFFER_LOCAL_VALUEP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Some_Buffer_Local_Value)
1468=======
1469#define GC_BUFFER_LOCAL_VALUEP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Buffer_Local_Value)
1470>>>>>>> MERGE-SOURCE
1456#define KBOARD_OBJFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Kboard_Objfwd) 1471#define KBOARD_OBJFWDP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Kboard_Objfwd)
1472<<<<<<< TREE
1473=======
1474#define GC_KBOARD_OBJFWDP(x) (GC_MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Kboard_Objfwd)
1475#define SAVE_VALUEP(x) (MISCP (x) && XMISCTYPE (x) == Lisp_Misc_Save_Value)
1476>>>>>>> MERGE-SOURCE
1457 1477
1458 1478
1459/* True if object X is a pseudovector whose code is CODE. */ 1479/* True if object X is a pseudovector whose code is CODE. */