X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fcontext-property.cc;h=fa77969e1c886f1a3c6a10593655f1d9563cd127;hb=9e781b7dc83b60a543ce218aa1a5f139f74c760f;hp=1ccfe5a970973e7ce3be409406985dcafd0e42f7;hpb=2f0c6eb19208485a86d3416db3f3640a1d54752a;p=lilypond.git diff --git a/lily/context-property.cc b/lily/context-property.cc index 1ccfe5a970..fa77969e1c 100644 --- a/lily/context-property.cc +++ b/lily/context-property.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 2004--2012 Han-Wen Nienhuys + Copyright (C) 2004--2014 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -91,13 +91,6 @@ execute_override_property (Context *context, 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))) { @@ -230,33 +223,27 @@ apply_property_operations (Context *tg, SCM pre_init_ops) 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)); } }