]> git.donarmstrong.com Git - lilypond.git/commitdiff
(compound_barline): backport ||: fix.
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 18 Jun 2004 23:20:26 +0000 (23:20 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 18 Jun 2004 23:20:26 +0000 (23:20 +0000)
ChangeLog
lily/accidental-engraver.cc
lily/bar-line.cc
lily/lyric-engraver.cc
ly/engraver-init.ly

index b9e9bdee2bafa9ee47c2ba84b34d15b71359f909..e6f65b5ce5bcfd1d2d6cd54b7fdea2786077da85 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2004-06-19  Han-Wen Nienhuys   <hanwen@xs4all.nl>
+
+       * lily/bar-line.cc (compound_barline): backport ||: fix.
+
+2004-06-12  Han-Wen Nienhuys   <hanwen@xs4all.nl>
+
+       * ly/engraver-init.ly (AncientRemoveEmptyStaffContext): remove
+       override for Beam::position-callbacks in grace.  Fixes:
+       weird-stem-size-grace
+
+2004-06-11  Han-Wen Nienhuys   <hanwen@xs4all.nl>
+
+       * lily/accidental-engraver.cc (number_accidentals_from_sig):
+       backport additional fixes.
+
 2004-06-07  Mats Bengtsson  <mabe@drongo.s3.kth.se>
 
        * scripts/lilypond-book.py (latex_filter_cmd): Use a temporary
index 3f01958370b6cdd1a02a284b67930bf84f219c6f..7ee21578dbcf5265e4407428b27b0f6a2c414856 100644 (file)
@@ -124,7 +124,7 @@ Accidental_engraver::initialize ()
 */
 static int
 number_accidentals_from_sig (bool *different,
-                            SCM sig, Pitch *pitch, SCM scurbarnum, SCM lazyness, 
+                            SCM sig, Pitch *pitch, SCM scurbarnum, SCM laziness, 
                             bool ignore_octave)
 {
   int curbarnum = gh_scm2int (scurbarnum);
@@ -132,56 +132,45 @@ number_accidentals_from_sig (bool *different,
   int n = pitch->get_notename ();
   int o = pitch->get_octave ();
   int a = pitch->get_alteration ();
-  int accbarnum = -1;
 
-  SCM prevs[3];
-  int bar_nums[3] = {-1,-1,-1};
-  int prev_idx = 0;
-  
+  SCM prev_alt = SCM_BOOL_F;
+
   if (!ignore_octave)
     {
-      prevs[prev_idx] = scm_assoc (scm_cons (scm_int2num (o), scm_int2num (n)), sig);
-
-      if (gh_pair_p (prevs[prev_idx]))
-       prev_idx++;
-    }
-  
-  prevs[prev_idx] = scm_assoc (scm_int2num (n), sig);
-  if (gh_pair_p (prevs[prev_idx]))
-    prev_idx++;
+      SCM prev_local
+       = scm_assoc (scm_cons (scm_int2num (o), scm_int2num (n)), sig);
 
-  for (int i= 0; i < prev_idx; i++)
-    {
-      if (gh_pair_p (prevs[i])
-         && gh_pair_p (gh_cdr (prevs[i])))
+      if (gh_pair_p (prev_local))
        {
-         bar_nums[i]  = gh_scm2int (gh_cddr (prevs[i]));
-         prevs[i] = scm_cons (gh_car (prevs[i]), gh_cadr (prevs[i]));
-       }
-    }
-  
+         if (gh_pair_p (ly_cdr (prev_local))
+             && gh_number_p (laziness)
+             )
+           {
+             int barnum = gh_scm2int (ly_cddr (prev_local));
 
-  SCM prev_acc = scm_int2num (0);
-  for (int i= 0; i < prev_idx; i++)
-    {
-      if (accbarnum < 0
-         || (gh_number_p (lazyness)
-             && curbarnum > accbarnum + gh_scm2int (lazyness)))
-       {
-         prev_acc = gh_cdr (prevs[i]);
-         break;
+             prev_local = scm_cons (ly_car (prev_local), ly_cadr (prev_local));
+             if (curbarnum <= barnum + gh_scm2int (laziness))
+               prev_alt = prev_local;
+           }
        }
     }
 
+  if (prev_alt == SCM_BOOL_F)
+    prev_alt = scm_assoc (scm_int2num (n), sig);
+
+
+  prev_alt =  (prev_alt == SCM_BOOL_F) ? scm_int2num (0) : ly_cdr (prev_alt); 
+    
   /*
     UGH. prev_acc can be #t in case of ties. What is this for?
     
    */
-  int p = gh_number_p (prev_acc) ? gh_scm2int (prev_acc) : 0;
+  int p = gh_number_p (prev_alt) ? gh_scm2int (prev_alt) : 0;
+
 
 
   int num;
-  if (a == p && gh_number_p (prev_acc))
+  if (a == p && gh_number_p (prev_alt))
     num = 0;
   else if ( (abs (a)<abs (p) || p*a<0) && a != 0 )
     num = 2;
index f7f1d7808c91222458e657c05dbea8bef430a537..7767447a5c8c5b9553e2fbe79ae1b696200f2c51 100644 (file)
@@ -71,6 +71,9 @@ Bar_line::compound_barline (Grob*me, String str, Real h)
   colon.translate_axis (-dist/2,Y_AXIS);
 
   Stencil m;
+  if (str == "||:")
+    str = "|:";
+  
   
   if (str == "")
     {
index d6d6268b30e6129d1020d0a95a002b27b8c1feaf..4c914d4e90fca0ec2b5eb45e9801bf00a3c45e9b 100644 (file)
@@ -106,6 +106,7 @@ get_voice_to_lyrics (Context *lyrics)
 
   return voice;
 }
+
 Grob *
 get_current_note_head (Context * voice)
 {
index 7b0d7b99b039c4149b0386ede2fb053be8d9d9bf..49245a2fbe6e8b14c4e657a14e22e84924ab837c 100644 (file)
@@ -553,9 +553,6 @@ AncientRemoveEmptyStaffContext = \context {
        (Voice Beam space-function ,(lambda (beam mult)
                                     (* 0.8 (Beam::space_function
                                             beam mult))))
-       (Voice Beam position-callbacks (,Beam::least_squares
-                                       ,Beam::check_concave
-                                       ,Beam::slope_damping))
        (Voice Accidental font-size -4)
        (Voice Slur direction -1)
     )