X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmusic-output-def.cc;h=c05534131b0f5197c561d589ed133015d66d93f0;hb=2b0aa2c5bbb4af4e7d0d3c057de066dc1d6d6b8d;hp=4622d11526283d967e25a8cfb0f14e3323822e48;hpb=75be12aa75a535af753d6125bfc03da3ee303b36;p=lilypond.git diff --git a/lily/music-output-def.cc b/lily/music-output-def.cc index 4622d11526..c05534131b 100644 --- a/lily/music-output-def.cc +++ b/lily/music-output-def.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 1997--1998 Han-Wen Nienhuys + (c) 1997--1999 Han-Wen Nienhuys */ #include "scope.hh" @@ -39,22 +39,27 @@ Music_output_def::Music_output_def (Music_output_def const &s) { scope_p_ = new Scope (*s.scope_p_); translator_p_dict_p_ = new Scope (*s.translator_p_dict_p_); + default_properties_ = s.default_properties_; for (Scope_iter i (*translator_p_dict_p_); i.ok (); i++) { - Translator * t = i.val ()->access_content_Translator (false); + Translator * t = i.val ()->access_content_Translator_group (false); t-> output_def_l_ = this; } } void -Music_output_def::assign_translator (Translator*tp) +Music_output_def::assign_translator (Translator_group*tp) { String s =tp->type_str_; + if (s.empty_b ()) + { + tp->warning (_("Interpretation context with empty type")); + } if (translator_p_dict_p_->elem_b (s)) delete translator_p_dict_p_->elem (s); - translator_p_dict_p_->elem (s) = new Translator_identifier (tp, 0); + translator_p_dict_p_->elem (s) = new Translator_group_identifier (tp, 0); tp ->output_def_l_ = this; } @@ -62,7 +67,7 @@ Translator* Music_output_def::find_translator_l (String name) const { if (translator_p_dict_p_->elem_b (name)) - return translator_p_dict_p_->elem (name)->access_content_Translator (false); + return translator_p_dict_p_->elem (name)->access_content_Translator_group (false); if (global_translator_dict_p->elem_b (name)) return global_translator_dict_p->elem(name); @@ -76,7 +81,7 @@ Music_output_def::get_global_translator_p () { Translator * t = find_translator_l ("Score"); if (!t) - error (_("Can't find Score context")); + error (_f ("Can't find `%s' context", "Score")); t = t->clone (); Global_translator *g = dynamic_cast (t); t->add_processing (); @@ -88,7 +93,9 @@ void Music_output_def::print () const { #ifndef NPRINT + DEBUG_OUT << "Translators: \n"; translator_p_dict_p_->print (); + DEBUG_OUT << "Other definitions.\n"; scope_p_->print( ); #endif } @@ -96,13 +103,11 @@ Music_output_def::print () const String Music_output_def::get_default_output () const { - static SCM output_sym; - if (!output_sym) - output_sym = scm_protect_object (ly_symbol ("output")); - if (safe_global_b || !scope_p_->elem_b (output_sym)) + if (safe_global_b || !scope_p_->elem_b ("output")) return ""; - Identifier * id = scope_p_->elem (output_sym); + Identifier * id = scope_p_->elem ("output"); String *p = id->access_content_String (false); return p ? *p : String (""); } +