]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/global-context.cc
Local LSR updates
[lilypond.git] / lily / global-context.cc
index 26de82b68a15028542e67afc91f77d8de132ea29..8f22b943effe787d69033023ce8196d99486cafb 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 1997--2011 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  Copyright (C) 1997--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -51,7 +51,15 @@ Global_context::Global_context (Output_def *o)
     programming_error ("no `Global' context found");
   else
     globaldef->apply_default_property_operations (this);
-  accepts_list_ = scm_list_1 (ly_symbol2scm ("Score"));
+
+  SCM p = get_property ("EventClasses");
+
+  ancestor_lookup_ = scm_make_hash_table (scm_length (p));
+  for (; scm_is_pair (p); p = scm_cdr (p))
+    scm_hashq_set_x (ancestor_lookup_, scm_caar (p), scm_car (p));
+
+  default_child_ = ly_symbol2scm ("Score");
+  accepts_list_ = scm_list_1 (default_child_);
 }
 
 Output_def *
@@ -147,7 +155,8 @@ Global_context::run_iterator_on_me (Music_iterator *iter)
 
       if (w == prev_mom_)
         {
-          programming_error ("Moment is not increasing. Aborting interpretation.");
+          programming_error ("Moment is not increasing."
+                             "  Aborting interpretation.");
           break;
         }