/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 2004--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 2004--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
LilyPond is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
SCM target_alist = scm_car (current_context_val);
- /*
- If the car is a list, the property path comes from a nested override
- using list syntax inside a \context block
- */
- if (scm_is_pair (scm_car (grob_property_path)))
- grob_property_path = scm_car (grob_property_path);
-
SCM symbol = scm_car (grob_property_path);
if (scm_is_pair (scm_cdr (grob_property_path)))
{
SCM entry = scm_car (s);
SCM type = scm_car (entry);
entry = scm_cdr (entry);
- if (!scm_is_pair (entry))
- continue;
- SCM context_prop = scm_car (entry);
- if (scm_is_pair (context_prop))
- {
- if (tg->is_alias (scm_car (context_prop)))
- context_prop = scm_cdr (context_prop);
- else
- continue;
- }
if (type == ly_symbol2scm ("push"))
{
+ SCM context_prop = scm_car (entry);
SCM val = scm_cadr (entry);
SCM grob_prop_path = scm_cddr (entry);
sloppy_general_pushpop_property (tg, context_prop, grob_prop_path, val);
}
else if (type == ly_symbol2scm ("pop"))
{
+ SCM context_prop = scm_car (entry);
SCM val = SCM_UNDEFINED;
SCM grob_prop_path = scm_cdr (entry);
sloppy_general_pushpop_property (tg, context_prop, grob_prop_path, val);
}
else if (type == ly_symbol2scm ("assign"))
- tg->set_property (context_prop, scm_cadr (entry));
+ tg->set_property (scm_car (entry), scm_cadr (entry));
else if (type == ly_symbol2scm ("apply"))
- scm_apply_1 (context_prop, tg->self_scm (), scm_cdr (entry));
+ scm_apply_1 (scm_car (entry), tg->self_scm (), scm_cdr (entry));
+ else if (type == ly_symbol2scm ("unset"))
+ tg->unset_property (scm_car (entry));
}
}