Mercurial > hg > xemacs-beta
comparison src/symeval.h @ 211:78478c60bfcd r20-4b4
Import from CVS: tag r20-4b4
author | cvs |
---|---|
date | Mon, 13 Aug 2007 10:05:51 +0200 |
parents | 3d6bfa290dbd |
children | c5d627a313b1 |
comparison
equal
deleted
inserted
replaced
210:49f55ca3ba57 | 211:78478c60bfcd |
---|---|
74 struct lcrecord_header lcheader; | 74 struct lcrecord_header lcheader; |
75 enum symbol_value_type type; | 75 enum symbol_value_type type; |
76 }; | 76 }; |
77 #define SYMBOL_VALUE_MAGIC_P(x) \ | 77 #define SYMBOL_VALUE_MAGIC_P(x) \ |
78 (LRECORDP (x) \ | 78 (LRECORDP (x) \ |
79 && (XRECORD_LHEADER (x)->implementation->printer \ | 79 && (XRECORD_LHEADER_IMPLEMENTATION (x)->printer \ |
80 == print_symbol_value_magic)) | 80 == print_symbol_value_magic)) |
81 #define XSYMBOL_VALUE_MAGIC_TYPE(v) \ | 81 #define XSYMBOL_VALUE_MAGIC_TYPE(v) \ |
82 (((struct symbol_value_magic *) XPNTR (v))->type) | 82 (((struct symbol_value_magic *) XPNTR (v))->type) |
83 #define XSETSYMBOL_VALUE_MAGIC(s, p) XSETOBJ (s, Lisp_Type_Record, p) | 83 #define XSETSYMBOL_VALUE_MAGIC(s, p) XSETOBJ (s, Lisp_Type_Record, p) |
84 extern void print_symbol_value_magic (Lisp_Object, Lisp_Object, int); | 84 extern void print_symbol_value_magic (Lisp_Object, Lisp_Object, int); |
298 These are used in the syms_of_FILENAME functions. */ | 298 These are used in the syms_of_FILENAME functions. */ |
299 | 299 |
300 extern void defvar_mumble (CONST char *names, | 300 extern void defvar_mumble (CONST char *names, |
301 CONST void *magic, int sizeof_magic); | 301 CONST void *magic, int sizeof_magic); |
302 | 302 |
303 #ifdef USE_INDEXED_LRECORD_IMPLEMENTATION | |
304 # define symbol_value_forward_lheader_initializer { 1, 0, 0 } | |
305 #else | |
306 # define symbol_value_forward_lheader_initializer \ | |
307 { lrecord_symbol_value_forward } | |
308 #endif | |
309 | |
303 #define DEFVAR_HEADER(lname, c_location, forward_type) do { \ | 310 #define DEFVAR_HEADER(lname, c_location, forward_type) do { \ |
304 static CONST struct symbol_value_forward I_hate_C \ | 311 static CONST struct symbol_value_forward I_hate_C \ |
305 = { { { { lrecord_symbol_value_forward }, \ | 312 = { { { symbol_value_forward_lheader_initializer, \ |
306 (struct lcrecord_header *) (c_location), 69 }, \ | 313 (struct lcrecord_header *) (c_location), 69 }, \ |
307 forward_type }, 0 }; \ | 314 forward_type }, 0 }; \ |
308 defvar_mumble ((lname), &I_hate_C, sizeof (I_hate_C)); \ | 315 defvar_mumble ((lname), &I_hate_C, sizeof (I_hate_C)); \ |
309 } while (0) | 316 } while (0) |
310 | 317 |
311 #define DEFVAR_MAGIC_HEADER(lname, c_location, forward_type, magicfun) do { \ | 318 #define DEFVAR_MAGIC_HEADER(lname, c_location, forward_type, magicfun) do { \ |
312 static CONST struct symbol_value_forward I_hate_C \ | 319 static CONST struct symbol_value_forward I_hate_C \ |
313 = { { { { lrecord_symbol_value_forward }, \ | 320 = { { { symbol_value_forward_lheader_initializer, \ |
314 (struct lcrecord_header *) (c_location), 69 }, \ | 321 (struct lcrecord_header *) (c_location), 69 }, \ |
315 forward_type }, magicfun }; \ | 322 forward_type }, magicfun }; \ |
316 defvar_mumble ((lname), &I_hate_C, sizeof (I_hate_C)); \ | 323 defvar_mumble ((lname), &I_hate_C, sizeof (I_hate_C)); \ |
317 } while (0) | 324 } while (0) |
318 | 325 |