source file of the GNU LilyPond music typesetter
- (c) 2004--2005 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ (c) 2004--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
*/
#include "context.hh"
#include "engraver.hh"
+#include "international.hh"
#include "item.hh"
#include "main.hh"
+#include "paper-column.hh"
+#include "simple-closure.hh"
#include "spanner.hh"
#include "warn.hh"
-#include "paper-column.hh"
SCM
lookup_nested_property (SCM alist,
bool ok = true;
if (!scm_is_pair (scm_cdr (grob_property_path)))
{
- ok = type_check_assignment (symbol, new_value, ly_symbol2scm ("backend-type?"));
+ if (!ly_is_procedure (new_value)
+ && !is_simple_closure (new_value))
+ ok = type_check_assignment (symbol, new_value,
+ ly_symbol2scm ("backend-type?"));
/*
tack onto alist. We can use set_car, since
{
SCM current_value = scm_car (current_context_val);
SCM daddy = scm_cdr (current_context_val);
+
+ if (!scm_is_pair (grob_property_path)
+ || !scm_is_symbol (scm_car (grob_property_path)))
+ {
+ programming_error ("Grob property path should be list of symbols.");
+ return;
+ }
+
SCM symbol = scm_car (grob_property_path);
SCM new_alist = evict_from_alist (symbol, current_value, daddy);