Hi, Here's a patch which makes sure that there's a check that an engraver exists before an attempt is made to remove it within a \with block.
There are two related issues which I'm concerned about: - Should an unknown engraver cause compilation to fail? I was wondering whether it might be better to issue a warning rather than an error in get_translator (). - There's a redundant error message in Context_def::add_context_mod (); it never gets called, since compilation stops in get_translator (): if (!get_translator (sym)) error (_f ("program has no such type: `%s'", ly_symbol2string (sym).c_str ())); Regards, Neil
From 78c462d30e23ec7b5e0f3a3f3329aef31fa23ecb Mon Sep 17 00:00:00 2001 From: Neil Puttock <[EMAIL PROTECTED]> Date: Fri, 15 Aug 2008 17:40:16 +0100 Subject: [PATCH] Fix #655. --- lily/context-def.cc | 3 ++- 1 files changed, 2 insertions(+), 1 deletions(-) diff --git a/lily/context-def.cc b/lily/context-def.cc index a810159..6bb2fbd 100644 --- a/lily/context-def.cc +++ b/lily/context-def.cc @@ -265,7 +265,8 @@ Context_def::get_translator_names (SCM user_mod) const if (ly_symbol2scm ("consists") == tag) l1 = scm_cons (arg, l1); - else if (ly_symbol2scm ("remove") == tag) + else if (ly_symbol2scm ("remove") == tag + && get_translator (arg)) l1 = scm_delete_x (arg, l1); } -- 1.5.4.3
_______________________________________________ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel