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/