On Wednesday, 17 February 1999, Han-Wen Nienhuys writes:
> [EMAIL PROTECTED] writes:
> > Something funny happens with the prebreak part of a broken
> > slur, as illustrated in the following example which looks
> > fine in 1.1.27 but quite terrible in 1.1.30.
> > 
> > ------- test.fly ------------
> > c''1 c1 c1 c1 c1 c1 c1 c1 c1 
> > [c8 a f a] [c c16 ( d] [es f es d] | \break
> > [c d c bes ]) a4 r2 | 
> > c1 c1 c1 c1 c1 c1 c1 c1 c1
> > -----------------------------
> 
> I guess this is  related to the recent slur work by Jan.  Jan?

Good guess.  It was a silly reado of an if-clause, fix below.

Jan.


Generated by [EMAIL PROTECTED] using package-diff 0.62,
>From = lilypond-1.1.31, To = lilypond-1.1.31.jcn1

usage 

    cd lilypond-source-dir; patch -E -p1 < lilypond-1.1.31.jcn1.diff

Patches do not contain automatically generated files 
or (urg) empty directories, 
i.e., you should rerun autoconf, configure 
and possibly make outdirs.

--state
1.1.31
1.1.31.jcn1
++state
diff -urN ../lilypond-1.1.31/NEWS ./NEWS
--- ../lilypond-1.1.31/NEWS     Wed Feb 17 13:46:54 1999
+++ ./NEWS      Wed Feb 17 14:15:53 1999
@@ -1,3 +1,5 @@
+pl 31.jcn1
+       - bf: slur-follow-music
 
 pl 30.jcn1
        - sm fixes, intl/ fixes
diff -urN ../lilypond-1.1.31/VERSION ./VERSION
--- ../lilypond-1.1.31/VERSION  Wed Feb 17 13:46:54 1999
+++ ./VERSION   Wed Feb 17 14:16:01 1999
@@ -2,7 +2,7 @@
 MAJOR_VERSION=1
 MINOR_VERSION=1
 PATCH_LEVEL=31
-MY_PATCH_LEVEL=
+MY_PATCH_LEVEL=jcn1
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
diff -urN ../lilypond-1.1.31/lily/slur.cc ./lily/slur.cc
--- ../lilypond-1.1.31/lily/slur.cc     Tue Feb 16 18:01:16 1999
+++ ./lily/slur.cc      Wed Feb 17 14:15:13 1999
@@ -122,6 +122,8 @@
 
   Direction d=LEFT;
  
+#define BROKEN_SLUR_b(dir) \
+  (extrema[dir] != spanned_drul_[d])
 #define NORMAL_SLUR_b(dir) \
   (extrema[dir]->stem_l_ \
    && !extrema[dir]->stem_l_->transparent_b_  \
@@ -129,10 +131,7 @@
 
   do 
     {
-      /*
-        broken slur
-       */
-      if (extrema[d] != spanned_drul_[d]) 
+      if (BROKEN_SLUR_b (d))
        {
          // ugh -- check if needed
          dx_f_drul_[d] = -d 
@@ -180,10 +179,7 @@
   // now that both are set, do dependent
   do 
     {
-      /*
-        broken slur
-       */
-      if (extrema[d] != spanned_drul_[d]) 
+      if (BROKEN_SLUR_b (d))
         {
          Direction u = d;
          flip(&u);
@@ -200,7 +196,8 @@
   /*
     Slur should follow line of music
    */
-  if (NORMAL_SLUR_b (LEFT) && NORMAL_SLUR_b (RIGHT)
+  if (!BROKEN_SLUR_b (LEFT) && !BROKEN_SLUR_b (RIGHT)
+      && NORMAL_SLUR_b (LEFT) && NORMAL_SLUR_b (RIGHT)
       && (extrema[LEFT]->stem_l_ != extrema[RIGHT]->stem_l_))
     {
       Real note_dy = extrema[RIGHT]->stem_l_->head_positions ()[dir_]


Jan Nieuwenhuizen <[EMAIL PROTECTED]> | GNU LilyPond - The music typesetter
http://www.xs4all.nl/~jantien/      | http://www.lilypond.org/

Reply via email to