]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/gregorian-ligature-engraver.cc
* Documentation/user/refman.itely (Automatic note splitting):
[lilypond.git] / lily / gregorian-ligature-engraver.cc
index 68cc9ceb7c962a338e025896e25718eadc59c9d2..579aae5c799ed18662c62cbff9fc58dbd8271aa5 100644 (file)
@@ -208,7 +208,12 @@ provide_context_info (Array<Grob_info> primitives)
     int prefix_set = gh_scm2int (primitive->get_grob_property ("prefix-set"));
 
     if (prefix_set & PES_OR_FLEXA)
-      if (pitch > prev_pitch) // pes
+      if (!i) // ligature may not start with 2nd head of pes or flexa
+         {
+           primitive->warning ("may not apply `\\~' on first head of "
+                               "ligature; ignoring `\\~'");
+         }
+      else if (pitch > prev_pitch) // pes
        {
          prev_context_info |= PES_LOWER;
          context_info |= PES_UPPER;
@@ -223,9 +228,9 @@ provide_context_info (Array<Grob_info> primitives)
          primitive->warning ("may not apply `\\~' on heads with "
                              "identical pitch; ignoring `\\~'");
        }
-    if (prev_prefix_set & VIRGA)
+    if (prev_prefix_set & DEMINUTUM)
       {
-       context_info |= AFTER_VIRGA;
+       context_info |= AFTER_DEMINUTUM;
       }
 
     if (prev_primitive)
@@ -263,16 +268,16 @@ Gregorian_ligature_engraver::build_ligature (Spanner *ligature,
 }
 
 void
-Gregorian_ligature_engraver::start_translation_timestep ()
+Gregorian_ligature_engraver::stop_translation_timestep ()
 {
-  Ligature_engraver::start_translation_timestep ();
+  Ligature_engraver::stop_translation_timestep ();
   pes_or_flexa_req_ = 0;
 }
 
 ENTER_DESCRIPTION (Gregorian_ligature_engraver,
 /* descr */       "This is an abstract class.  Subclasses such as Vaticana_ligature_engraver handle ligatures by glueing special ligature heads together.",
 /* creats*/       "",
-/* accepts */     "ligature-event abort-event",
+/* accepts */     "ligature-event",
 /* acks  */      "note-head-interface rest-interface",
 /* reads */       "",
 /* write */       "");