diff options
| author | Miles Bader | 2007-10-19 00:00:21 +0000 |
|---|---|---|
| committer | Miles Bader | 2007-10-19 00:00:21 +0000 |
| commit | 9c8020a8df03dc67a56d7df15664dcf7ace54bf0 (patch) | |
| tree | 09b0646addff3c39f9e96ba89c04bdcc038a87a7 /src/lisp.h | |
| parent | dfc3268dfa133a2e0a677f1af7c1ee548eae065d (diff) | |
| parent | bd3164743080f3eb5fc316aca7cc5322ca58fe33 (diff) | |
| download | emacs-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.h | 60 |
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 | ||
| 1114 | struct 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 | |||
| 1111 | struct Lisp_Marker | 1121 | struct 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 | ||
| 1217 | struct Lisp_Buffer_Local_Value | 1225 | struct 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 | ||
| 1311 | union Lisp_Misc | 1321 | union 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. */ |