Contents in latest XEmacs 21.2 at 1999-06-24-19.
[chise/xemacs-chise.git.1] / src / symbols.c
index 01bf684..01a6c36 100644 (file)
@@ -58,6 +58,8 @@ Boston, MA 02111-1307, USA.  */
 #include "console.h"
 #include "elhash.h"
 
+#include <stddef.h>
+
 Lisp_Object Qad_advice_info, Qad_activate;
 
 Lisp_Object Qget_value, Qset_value, Qbound_predicate, Qmake_unbound;
@@ -108,9 +110,13 @@ mark_symbol (Lisp_Object obj, void (*markobj) (Lisp_Object))
   }
 }
 
+static const struct lrecord_description symbol_description[] = {
+  { XD_LISP_OBJECT, offsetof(struct Lisp_Symbol, next), 5 }
+};
+
 DEFINE_BASIC_LRECORD_IMPLEMENTATION ("symbol", symbol,
                                     mark_symbol, print_symbol, 0, 0, 0,
-                                    struct Lisp_Symbol);
+                                    symbol_description, struct Lisp_Symbol);
 
 \f
 /**********************************************************************/
@@ -952,28 +958,46 @@ print_symbol_value_magic (Lisp_Object obj,
   write_c_string (buf, printcharfun);
 }
 
+static const struct lrecord_description symbol_value_buffer_local_description[] = {
+  { XD_LISP_OBJECT, offsetof(struct symbol_value_buffer_local, default_value), 4 },
+  { XD_END }
+};
+
+static const struct lrecord_description symbol_value_lisp_magic_description[] = {
+  { XD_LISP_OBJECT, offsetof(struct symbol_value_lisp_magic, handler), 2*MAGIC_HANDLER_MAX+1 },
+  { XD_END }
+};
+
+static const struct lrecord_description symbol_value_varalias_description[] = {
+  { XD_LISP_OBJECT, offsetof(struct symbol_value_varalias, aliasee), 2 },
+  { XD_END }
+};
+
 DEFINE_LRECORD_IMPLEMENTATION ("symbol-value-forward",
                               symbol_value_forward,
                               this_one_is_unmarkable,
-                              print_symbol_value_magic, 0, 0, 0,
+                              print_symbol_value_magic, 0, 0, 0, 0,
                               struct symbol_value_forward);
 
 DEFINE_LRECORD_IMPLEMENTATION ("symbol-value-buffer-local",
                               symbol_value_buffer_local,
                               mark_symbol_value_buffer_local,
                               print_symbol_value_magic, 0, 0, 0,
+                              symbol_value_buffer_local_description,
                               struct symbol_value_buffer_local);
 
 DEFINE_LRECORD_IMPLEMENTATION ("symbol-value-lisp-magic",
                               symbol_value_lisp_magic,
                               mark_symbol_value_lisp_magic,
                               print_symbol_value_magic, 0, 0, 0,
+                              symbol_value_lisp_magic_description,
                               struct symbol_value_lisp_magic);
 
 DEFINE_LRECORD_IMPLEMENTATION ("symbol-value-varalias",
                               symbol_value_varalias,
                               mark_symbol_value_varalias,
                               print_symbol_value_magic, 0, 0, 0,
+                              symbol_value_varalias_description,
                               struct symbol_value_varalias);
 
 \f