X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fcontext.cc;h=4dbb6e5657721e436dc4f52227d24409c62a53e8;hb=3c6191bacd9ee7791b0b5278f9273ead330a1530;hp=36e506cd7e01d88891b57ac5c68f6817183eafc5;hpb=7f3f0083f89d87c5ed0422858e9648fc759e98a4;p=lilypond.git diff --git a/lily/context.cc b/lily/context.cc index 36e506cd7e..4dbb6e5657 100644 --- a/lily/context.cc +++ b/lily/context.cc @@ -1,9 +1,20 @@ /* - context.cc -- implement Context + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 2004--2011 Han-Wen Nienhuys - (c) 2004--2008 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 + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #include "context.hh" @@ -46,9 +57,8 @@ Context::check_removal () } } -Context::Context (Context const &src) +Context::Context (Context const & /* src */) { - (void) src; assert (false); } @@ -104,7 +114,7 @@ Context::create_unique_context (SCM name, string id, SCM operations) if (gthis && gthis->get_score_context ()) return gthis->get_score_context ()->create_unique_context (name, id, operations); - vector path = path_to_acceptable_context (name); + vector path = path_to_acceptable_context (name); if (path.size ()) { Context *current = this; @@ -158,7 +168,7 @@ Context::find_create_context (SCM n, string id, SCM operations) if (n == ly_symbol2scm ("Bottom")) { - Context *tg = get_default_interpreter (); + Context *tg = get_default_interpreter (id); return tg; } @@ -376,7 +386,7 @@ Context::is_bottom_context () const } Context * -Context::get_default_interpreter () +Context::get_default_interpreter (string context_id) { if (!is_bottom_context ()) { @@ -391,8 +401,8 @@ Context::get_default_interpreter () t = unsmob_context_def (this->definition_); } - Context *tg = create_context (t, "", SCM_EOL); - return tg->get_default_interpreter (); + Context *tg = create_context (t, context_id, SCM_EOL); + return tg->get_default_interpreter (context_id); } return this; } @@ -762,3 +772,13 @@ melisma_busy (Context *tr) return busy; } + +bool +check_repeat_count_visibility (Context const *context, SCM count) +{ + SCM proc = context->get_property ("repeatCountVisibility"); + return (ly_is_procedure (proc) + && to_boolean (scm_call_2 (proc, + count, + context->self_scm ()))); +}