]> code.delx.au - gnu-emacs/commitdiff
(Qcircular_list): New variable.
authorGerd Moellmann <gerd@gnu.org>
Thu, 11 Oct 2001 09:04:09 +0000 (09:04 +0000)
committerGerd Moellmann <gerd@gnu.org>
Thu, 11 Oct 2001 09:04:09 +0000 (09:04 +0000)
(circular_list_error): New function.
(syms_of_data): Initialize it Qcircular_list.

src/ChangeLog
src/data.c

index 0aaecebaf76d77fc592926682414ab5c3e384e52..33da6a999e001521e509fe3e2ea249782e758947 100644 (file)
@@ -1,3 +1,11 @@
+2001-10-11  Gerd Moellmann  <gerd@gnu.org>
+
+       * lisp.h (circular_list_error): Add prototype.
+
+       * data.c (Qcircular_list): New variable.
+       (circular_list_error): New function.
+       (syms_of_data): Initialize it Qcircular_list.
+
 2001-10-10  Stefan Monnier  <monnier@cs.yale.edu>
 
        * window.c, syntax.c, macros.c, frame.c, emacs.c, cmds.c, category.c,
index 527edc4ec3516810fd207f1f1c7db455a2bbe5a0..ad39e82a057b74fed30c189bce2e66c8ed57e916 100644 (file)
@@ -65,7 +65,7 @@ Lisp_Object Qnil, Qt, Qquote, Qlambda, Qsubr, Qunbound;
 Lisp_Object Qerror_conditions, Qerror_message, Qtop_level;
 Lisp_Object Qerror, Qquit, Qwrong_type_argument, Qargs_out_of_range;
 Lisp_Object Qvoid_variable, Qvoid_function, Qcyclic_function_indirection;
-Lisp_Object Qcyclic_variable_indirection;
+Lisp_Object Qcyclic_variable_indirection, Qcircular_list;
 Lisp_Object Qsetting_constant, Qinvalid_read_syntax;
 Lisp_Object Qinvalid_function, Qwrong_number_of_arguments, Qno_catch;
 Lisp_Object Qend_of_file, Qarith_error, Qmark_inactive;
@@ -98,6 +98,15 @@ static Lisp_Object swap_in_symval_forwarding P_ ((Lisp_Object, Lisp_Object));
 
 int most_positive_fixnum, most_negative_fixnum;
 
+
+void
+circular_list_error (list)
+     Lisp_Object list;
+{
+  Fsignal (Qcircular_list, list);
+}
+
+
 Lisp_Object
 wrong_type_argument (predicate, value)
      register Lisp_Object predicate, value;
@@ -2881,6 +2890,13 @@ syms_of_data ()
   Fput (Qcyclic_variable_indirection, Qerror_message,
        build_string ("Symbol's chain of variable indirections contains a loop"));
 
+  Qcircular_list = intern ("circular-list");
+  staticpro (&Qcircular_list);
+  Fput (Qcircular_list, Qerror_conditions,
+       Fcons (Qcircular_list, error_tail));
+  Fput (Qcircular_list, Qerror_message,
+       build_string ("List contains a loop"));
+
   Fput (Qvoid_variable, Qerror_conditions,
        Fcons (Qvoid_variable, error_tail));
   Fput (Qvoid_variable, Qerror_message,