]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/slur.cc
release: 1.5.28
[lilypond.git] / lily / slur.cc
index 4cc9bf3e5a6aadc91eadd3b99ee8617d3532df67..15a8b30ea8fb2b453794c9dc25f095366cebda2a 100644 (file)
@@ -48,7 +48,7 @@ Slur::add_column (Grob*me, Grob*n)
     warning (_ ("Putting slur over rest.  Ignoring."));
   else
     {
-      Pointer_group_interface::add_element (me, "note-columns",n);
+      Pointer_group_interface::add_grob (me, ly_symbol2scm ("note-columns"), n);
       me->add_dependency (n);
     }
 
@@ -92,7 +92,7 @@ Direction
 Slur::get_default_dir (Grob*me) 
 {
   Link_array<Grob> encompass_arr =
-    Pointer_group_interface__extract_elements (me, (Grob*)0, "note-columns");
+    Pointer_group_interface__extract_grobs (me, (Grob*)0, "note-columns");
   
   Direction d = DOWN;
   for (int i=0; i < encompass_arr.size (); i ++) 
@@ -175,7 +175,17 @@ Slur::set_extremities (Grob *me)
   Direction dir = LEFT;
   do 
     {
-      if (!gh_symbol_p (index_cell (me->get_grob_property ("attachment"), dir)))
+      SCM att = me->get_grob_property ("attachment");
+      /*
+       */
+      if (!gh_pair_p (att))
+       {
+         programming_error ("attachment is not a cons?!");
+         att = gh_cons (SCM_EOL, SCM_EOL);
+         me->set_grob_property ("attachment", att);
+       }
+      
+      if (!gh_symbol_p (index_cell (att, dir)))
        {
          for (SCM s = me->get_grob_property ("extremity-rules");
               s != SCM_EOL; s = ly_cdr (s))
@@ -184,7 +194,7 @@ Slur::set_extremities (Grob *me)
                                 gh_int2scm ((int)dir));
              if (r != SCM_BOOL_F)
                {
-                 index_set_cell (me->get_grob_property ("attachment"), dir,
+                 index_set_cell (att, dir,
                                  ly_cdar (s));
                  break;
                }