From 13d95cc02b68115f94f8c2128f578b5b2f28e637 Mon Sep 17 00:00:00 2001 From: Gerd Moellmann Date: Thu, 11 Oct 2001 09:04:09 +0000 Subject: [PATCH] (Qcircular_list): New variable. (circular_list_error): New function. (syms_of_data): Initialize it Qcircular_list. --- src/ChangeLog | 8 ++++++++ src/data.c | 18 +++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index 0aaecebaf76..33da6a999e0 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,3 +1,11 @@ +2001-10-11 Gerd Moellmann + + * 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 * window.c, syntax.c, macros.c, frame.c, emacs.c, cmds.c, category.c, diff --git a/src/data.c b/src/data.c index 527edc4ec35..ad39e82a057 100644 --- a/src/data.c +++ b/src/data.c @@ -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, -- 2.39.2