X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fapply-context-iterator.cc;h=6f69bbc7b8e8843177122d3c51183d5db6897b70;hb=9bea477a992947adbbba48bc479c3f551cde8225;hp=38036708c0dd867c0f966b0c4929032cd1f3093e;hpb=947454c5cc430a9627262de4f25274a64789d3c2;p=lilypond.git diff --git a/lily/apply-context-iterator.cc b/lily/apply-context-iterator.cc index 38036708c0..6f69bbc7b8 100644 --- a/lily/apply-context-iterator.cc +++ b/lily/apply-context-iterator.cc @@ -1,10 +1,19 @@ +/* + apply-context-iterator.cc -- implement Apply_context_iterator + + source file of the GNU LilyPond music typesetter + + (c) 2004--2005 Han-Wen Nienhuys +*/ + #include "simple-music-iterator.hh" #include "context.hh" #include "music.hh" +#include "input.hh" /** - Iterate a property. - */ + Iterate a property. +*/ class Apply_context_iterator : public Simple_music_iterator { public: @@ -13,16 +22,18 @@ protected: virtual void process (Moment); }; - void Apply_context_iterator::process (Moment m) { SCM proc = get_music ()->get_property ("procedure"); - scm_call_1 (proc, get_outlet ()->self_scm ()); - + if (ly_c_procedure_p (proc)) + scm_call_1 (proc, get_outlet ()->self_scm ()); + else + get_music ()->origin ()->warning (_ ("\\applycontext argument is not a procedure")); + Simple_music_iterator::process (m); } IMPLEMENT_CTOR_CALLBACK (Apply_context_iterator); - +