]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/accidental.cc
Merge branch 'jneeman' of git+ssh://jneem@git.sv.gnu.org/srv/git/lilypond into jneeman
[lilypond.git] / lily / accidental.cc
index 29965135437d00182691bd1b84bd84ba3053b6db..060c97849dcc6dc7ad37924368580512b8c3c8c2 100644 (file)
@@ -47,19 +47,23 @@ Accidental_interface::after_line_breaking (SCM smob)
   Grob *me = unsmob_grob (smob);
   Grob *tie = unsmob_grob (me->get_object ("tie"));
 
-  if (tie && !tie->original ())
-    me->suicide ();
+  if (tie && !tie->original ()
+      && !to_boolean (me->get_property ("forced")))
+    {
+      me->suicide ();
+    }
   return SCM_UNSPECIFIED;
 }
 
-std::vector<Box>
+vector<Box>
 Accidental_interface::accurate_boxes (Grob *a, Grob **common)
 {
   Box b;
   b[X_AXIS] = a->extent (a, X_AXIS);
   b[Y_AXIS] = a->extent (a, Y_AXIS);
 
-  std::vector<Box> boxes;
+  vector<Box> boxes;
 
   bool parens = false;
   if (to_boolean (a->get_property ("cautionary")))
@@ -142,8 +146,8 @@ Accidental_interface::accurate_boxes (Grob *a, Grob **common)
 /*
   todo: this sort of stuff in Scheme. --hwn.
 */
-std::string
-Accidental_interface::get_fontcharname (std::string style, int alteration)
+string
+Accidental_interface::get_fontcharname (string style, int alteration)
 {
   if (alteration == DOUBLE_FLAT
       || alteration == DOUBLE_SHARP)
@@ -202,7 +206,7 @@ Accidental_interface::print (SCM smob)
     }
 
   SCM scm_style = me->get_property ("style");
-  std::string style;
+  string style;
   if (scm_is_symbol (scm_style))
     style = ly_symbol2string (scm_style);
   else
@@ -232,7 +236,7 @@ Accidental_interface::print (SCM smob)
        scm_is_pair (s); s = scm_cdr (s))
     {
       int alteration = scm_to_int (scm_car (s));
-      std::string font_char = get_fontcharname (style, alteration);
+      string font_char = get_fontcharname (style, alteration);
       Stencil acc (fm->find_by_name ("accidentals." + font_char));
 
       if (acc.is_empty ())
@@ -250,12 +254,13 @@ Accidental_interface::print (SCM smob)
 /*
   TODO: should move avoid-slur into item?
 */
-ADD_INTERFACE (Accidental_interface, "accidental-interface",
+ADD_INTERFACE (Accidental_interface,
               "a single accidental",
               "accidentals "
               "avoid-slur "
               "cautionary "
               "cautionary-style "
+              "forced "
               "style "
               "tie "
               );