Mercurial > hg > xemacs-beta
comparison src/lisp.h @ 343:8bec6624d99b r21-1-1
Import from CVS: tag r21-1-1
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:52:53 +0200 |
parents | 19dcec799385 |
children | 7c94d56991e1 |
comparison
equal
deleted
inserted
replaced
342:b036ce23deaa | 343:8bec6624d99b |
---|---|
1025 /* next symbol in this obarray bucket */ | 1025 /* next symbol in this obarray bucket */ |
1026 struct Lisp_Symbol *next; | 1026 struct Lisp_Symbol *next; |
1027 struct Lisp_String *name; | 1027 struct Lisp_String *name; |
1028 Lisp_Object value; | 1028 Lisp_Object value; |
1029 Lisp_Object function; | 1029 Lisp_Object function; |
1030 /* non-nil if the symbol is interned in Vobarray */ | |
1031 Lisp_Object obarray; | |
1032 Lisp_Object plist; | 1030 Lisp_Object plist; |
1031 /* Information on obarray status of the symbol. Each symbol can be | |
1032 interned into one and only one obarray during its life-time. An | |
1033 interned symbol can be uninterned, but the reverse does not hold | |
1034 true. We need to know whether the symbol is interned to Vobarray | |
1035 (for the purposes of printing), and whether the symbol is | |
1036 interned anywhere at all. We also need to know whether the | |
1037 symbol is being referenced through a pure structure. | |
1038 | |
1039 The .obarray_flags field is an integer mask with the following | |
1040 meanings for bits: | |
1041 | |
1042 * 1 - symbol is interned somewhere; | |
1043 * 2 - symbol is interned to Vobarray; | |
1044 * 4 - symbol is referenced by a pure structure. | |
1045 | |
1046 All of this is unneeded in 21.2, which does not have pure space in | |
1047 our sense of the word, thanks to Olivier. */ | |
1048 int obarray_flags; | |
1033 }; | 1049 }; |
1034 | 1050 |
1035 #define SYMBOL_IS_KEYWORD(sym) (string_byte (XSYMBOL(sym)->name, 0) == ':') | 1051 #define SYMBOL_IS_KEYWORD(sym) (string_byte (XSYMBOL(sym)->name, 0) == ':') |
1036 #define KEYWORDP(obj) (SYMBOLP (obj) && SYMBOL_IS_KEYWORD (obj)) | 1052 #define KEYWORDP(obj) (SYMBOLP (obj) && SYMBOL_IS_KEYWORD (obj)) |
1037 | 1053 |
1060 #define symbol_next(s) ((s)->next) | 1076 #define symbol_next(s) ((s)->next) |
1061 #define symbol_name(s) ((s)->name) | 1077 #define symbol_name(s) ((s)->name) |
1062 #define symbol_value(s) ((s)->value) | 1078 #define symbol_value(s) ((s)->value) |
1063 #define symbol_function(s) ((s)->function) | 1079 #define symbol_function(s) ((s)->function) |
1064 #define symbol_plist(s) ((s)->plist) | 1080 #define symbol_plist(s) ((s)->plist) |
1081 | |
1082 #define symbol_obarray_flags(s) ((s)->obarray_flags) | |
1083 #define XSYMBOL_OBARRAY_FLAGS(x) (XSYMBOL (x)->obarray_flags) | |
1065 | 1084 |
1066 /*********** subr ***********/ | 1085 /*********** subr ***********/ |
1067 | 1086 |
1068 typedef Lisp_Object (*lisp_fn_t) (void); | 1087 typedef Lisp_Object (*lisp_fn_t) (void); |
1069 | 1088 |
1701 debug_gcpro4 (__FILE__, __LINE__,&nngcpro1,&nngcpro2,&nngcpro3,&nngcpro4,\ | 1720 debug_gcpro4 (__FILE__, __LINE__,&nngcpro1,&nngcpro2,&nngcpro3,&nngcpro4,\ |
1702 &v1,&v2,&v3,&v4) | 1721 &v1,&v2,&v3,&v4) |
1703 #define NNGCPRO5(v1,v2,v3,v4,v5) \ | 1722 #define NNGCPRO5(v1,v2,v3,v4,v5) \ |
1704 debug_gcpro5 (__FILE__, __LINE__,&nngcpro1,&nngcpro2,&nngcpro3,&nngcpro4,\ | 1723 debug_gcpro5 (__FILE__, __LINE__,&nngcpro1,&nngcpro2,&nngcpro3,&nngcpro4,\ |
1705 &nngcpro5,&v1,&v2,&v3,&v4,&v5) | 1724 &nngcpro5,&v1,&v2,&v3,&v4,&v5) |
1706 #define NUNNGCPRO \ | 1725 #define NNUNGCPRO \ |
1707 debug_ungcpro(__FILE__, __LINE__,&nngcpro1) | 1726 debug_ungcpro(__FILE__, __LINE__,&nngcpro1) |
1708 | 1727 |
1709 #else /* ! DEBUG_GCPRO */ | 1728 #else /* ! DEBUG_GCPRO */ |
1710 | 1729 |
1711 #define GCPRO1(varname) \ | 1730 #define GCPRO1(varname) \ |