]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/translator-group.cc
release: 1.3.93
[lilypond.git] / lily / translator-group.cc
index 0477d3e645581a067ae1d7937adc60377eb898c4..24416817d00941fb8a32113d78cbf357e636f99a 100644 (file)
@@ -272,12 +272,7 @@ Translator_group::each (Method_pointer method)
   static_each (trans_group_list_, method);
 }
 
-void
-Translator_group::do_print() const
-{
-#ifndef NPRINT
-#endif
-}
+
 
 void
 Translator_group::do_add_processing ()
@@ -307,15 +302,14 @@ Translator_group::where_defined (SCM sym) const
 SCM
 Translator_group::get_property (SCM sym) const
 {
-  if (properties_dict ()->elem_b (sym))
-    {
-      return properties_dict ()->get (sym);
-    }
+  SCM val =SCM_UNDEFINED;
+  if (properties_dict ()->try_retrieve (sym, &val))
+    return val;
 
   if (daddy_trans_l_)
     return daddy_trans_l_->get_property (sym);
   
-  return SCM_UNDEFINED;
+  return val;
 }
 
 void
@@ -343,8 +337,15 @@ Translator_group::execute_single_pushpop_property (SCM prop, SCM eltprop, SCM va
        {
          SCM prev = get_property (prop);
 
-         prev = gh_cons (gh_cons (eltprop, val), prev);
-         set_property (prop, prev);
+         /*
+           we don't tack onto SCM_UNDEFINED, because it creates
+           errors down the line, if we do scm_assoc().
+          */
+         if (gh_pair_p (prev) || prev == SCM_EOL)
+           {
+                 prev = gh_cons (gh_cons (eltprop, val), prev);
+                 set_property (prop, prev);
+           }
        }
       else
        {