From: Joe Neeman Date: Sun, 26 Nov 2006 17:11:30 +0000 (+0200) Subject: Merge with git+ssh://jneem@git.sv.gnu.org/srv/git/lilypond.git X-Git-Tag: release/2.11.16-1^2~16^2 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=6f664e0e318a1651f6fe9317a842bf9c7f476f08;hp=32426e733840b1d33afbf023639ca7e21a9f647e;p=lilypond.git Merge with git+ssh://jneem@git.sv.gnu.org/srv/git/lilypond.git --- diff --git a/.gitignore b/.gitignore index 71835fac08..64f8beaac7 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,4 @@ gcstat*.scm *-systems.tex *-midi.ly a.out +.dotest diff --git a/Documentation/user/cheatsheet.itely b/Documentation/user/cheatsheet.itely index f080f81e41..ced3e2efd0 100644 --- a/Documentation/user/cheatsheet.itely +++ b/Documentation/user/cheatsheet.itely @@ -170,14 +170,14 @@ c\mf c\sfz @end lilypond -@item @code{a\< a \!a} +@item @code{a\< a a\!} @tab crescendo @tab @lilypond[fragment,relative=2] \set Score.timing = ##f \override Staff.TimeSignature #'break-visibility = #all-invisible \set Staff.autoBeaming = ##f -a\< a \!a +a\< a a\! @end lilypond @item @code{a\> a a\!} @@ -226,12 +226,12 @@ f8 c2 d e @item @code{\lyricmode @{ twinkle @}} @tab entering lyrics @tab +twinkle @item @code{\new Lyrics} @tab printing lyrics @tab -twinkle @lilypond[fragment] \new Lyrics \lyricmode { twinkle } @end lilypond @@ -241,7 +241,7 @@ twinkle @tab @lilypond[fragment,relative=2] << - { g'4 g } + { g'1 g } \new Lyrics \lyricsto "" { twin -- kle } >> @end lilypond @@ -260,7 +260,7 @@ twinkle \chords { c:dim f:maj7 } @end lilypond -@item @code{<<@{e f@} \\@{c d@}>>} +@item @code{<<@{e f@} \\ @{c d@}>>} @tab polyphony @tab @lilypond[fragment,relative=2] diff --git a/input/regression/slur-clef.ly b/input/regression/slur-clef.ly index 86d27fbe03..c230f6e55a 100644 --- a/input/regression/slur-clef.ly +++ b/input/regression/slur-clef.ly @@ -1,6 +1,11 @@ +\header { + texidoc = "Slurs avoid clefs, but don't avoid barlines." + } + \paper { ragged-right = ##t - } + +} \version "2.10.0" -\new Staff { \clef bass c^( \clef "G" g') } +\new Staff { \clef bass c4^( \clef "G" g'4) c''1_( f'') } diff --git a/lily/custos.cc b/lily/custos.cc index f57cdc20ea..4e0010dcf6 100644 --- a/lily/custos.cc +++ b/lily/custos.cc @@ -83,4 +83,6 @@ Custos::print (SCM smob) ADD_INTERFACE (Custos, "custos-interface", "A custos object.", - "style neutral-position neutral-direction"); + "style " + "neutral-position " + "neutral-direction "); diff --git a/lily/include/slur.hh b/lily/include/slur.hh index 20667dd25c..d8603485d5 100644 --- a/lily/include/slur.hh +++ b/lily/include/slur.hh @@ -19,6 +19,7 @@ class Slur public: static void add_column (Grob *me, Grob *col); static void add_extra_encompass (Grob *me, Grob *col); + static void replace_breakable_encompass_objects (Grob *me); static void auxiliary_acknowledge_extra_object (Grob_info, vector&, vector&); DECLARE_SCHEME_CALLBACK (print, (SCM)); DECLARE_SCHEME_CALLBACK (calc_control_points, (SCM)); diff --git a/lily/paper-book.cc b/lily/paper-book.cc index 37a156238a..bddeffe150 100644 --- a/lily/paper-book.cc +++ b/lily/paper-book.cc @@ -411,7 +411,7 @@ Paper_book::pages () pages_ = SCM_EOL; SCM proc = paper_->c_variable ("page-breaking-wrapper"); - pages_ = scm_apply_0 (proc, scm_list_1(self_scm ())); + pages_ = scm_apply_0 (proc, scm_list_1 (self_scm ())); /* set systems_ from the pages */ if (systems_ == SCM_BOOL_F) diff --git a/lily/slur-scoring.cc b/lily/slur-scoring.cc index ba8f5c80cc..34e20519c9 100644 --- a/lily/slur-scoring.cc +++ b/lily/slur-scoring.cc @@ -224,13 +224,14 @@ Slur_score_state::fill (Grob *me) slur_ = dynamic_cast (me); columns_ = internal_extract_grob_array (me, ly_symbol2scm ("note-columns")); - + if (columns_.empty ()) { me->suicide (); return; } + Slur::replace_breakable_encompass_objects (me); staff_space_ = Staff_symbol_referencer::staff_space (me); Real lt = me->layout ()->get_dimension (ly_symbol2scm ("line-thickness")); thickness_ = robust_scm2double (me->get_property ("thickness"), 1.0) * lt; diff --git a/lily/slur.cc b/lily/slur.cc index 0128e8cdfd..a87feb6850 100644 --- a/lily/slur.cc +++ b/lily/slur.cc @@ -9,7 +9,7 @@ #include "slur.hh" - +#include "grob-array.hh" #include "beam.hh" #include "bezier.hh" #include "directional-element-interface.hh" @@ -27,7 +27,7 @@ #include "tie.hh" #include "warn.hh" #include "slur-scoring.hh" - +#include "separation-item.hh" #include "script-interface.hh" @@ -160,6 +160,42 @@ Slur::print (SCM smob) return a.smobbed_copy (); } + +/* + it would be better to do this at engraver level, but that is + fragile, as the breakabl items are generated on staff level, at + which point slur starts and ends have to be tracked +*/ +void +Slur::replace_breakable_encompass_objects (Grob *me) +{ + extract_grob_set (me, "encompass-objects", extra_objects); + vector new_encompasses; + + for (vsize i = 0; i < extra_objects.size (); i++) + { + Grob *g = extra_objects[i]; + + if (Separation_item::has_interface (g)) + { + extract_grob_set (g, "elements", breakables); + for (vsize j = 0; j < breakables.size (); j++) + if (breakables[j]->get_property ("avoid-slur") == ly_symbol2scm ("inside")) + new_encompasses.push_back (breakables[j]); + } + else + new_encompasses.push_back (g); + } + + SCM encompass_scm = me->get_object ("encompass-objects"); + if (Grob_array::unsmob (encompass_scm)) + { + vector &arr = + unsmob_grob_array (encompass_scm)->array_reference (); + arr = new_encompasses; + } +} + Bezier Slur::get_curve (Grob *me) { diff --git a/python/convertrules.py b/python/convertrules.py index a037dbd5c4..2ed3b28636 100644 --- a/python/convertrules.py +++ b/python/convertrules.py @@ -2633,9 +2633,9 @@ def conv (str): r"\\override VerticalAxisGroup #'minimum-Y-extent", str) str = re.sub (r"\\set ([a-zA-Z]*\.?)extraVerticalExtent", - r"\\override \1VerticalAxisGroup #'extra-Y-extent") + r"\\override \1VerticalAxisGroup #'extra-Y-extent", str) str = re.sub (r"\\set ([a-zA-Z]*\.?)verticalExtent", - r"\\override \1VerticalAxisGroup #'Y-extent") + r"\\override \1VerticalAxisGroup #'Y-extent", str) return str conversions.append (((2, 7, 14), conv, diff --git a/scm/c++.scm b/scm/c++.scm index adc21cea23..7069ca1a41 100644 --- a/scm/c++.scm +++ b/scm/c++.scm @@ -27,6 +27,9 @@ (define-public (boolean-or-symbol? x) (or (boolean? x) (symbol? x))) +(define-public (string-or-symbol? x) + (or (string? x) (symbol? x))) + (define-public (number-or-string? x) (or (number? x) (string? x))) diff --git a/scm/define-grobs.scm b/scm/define-grobs.scm index 08937eb37f..5e2dd4d86c 100644 --- a/scm/define-grobs.scm +++ b/scm/define-grobs.scm @@ -422,6 +422,7 @@ (stencil . ,ly:clef::print) (glyph-name . ,ly:clef::calc-glyph-name) (non-musical . #t) + (avoid-slur . inside) (font-family . music) (break-align-symbol . clef) (break-visibility . ,begin-of-line-visible) @@ -793,6 +794,7 @@ (KeySignature . ( (stencil . ,ly:key-signature-interface::print) + (avoid-slur . inside) (space-alist . ( (time-signature . (extra-space . 1.15)) (staff-bar . (extra-space . 1.1)) @@ -1809,6 +1811,7 @@ (stencil . ,ly:time-signature::print) (break-align-symbol . time-signature) (break-visibility . ,all-visible) + (avoid-slur . inside) (space-alist . ( (first-note . (fixed-space . 2.0)) (right-edge . (extra-space . 0.5)) diff --git a/scm/define-markup-commands.scm b/scm/define-markup-commands.scm index 71407e60cd..567486bb15 100644 --- a/scm/define-markup-commands.scm +++ b/scm/define-markup-commands.scm @@ -577,7 +577,7 @@ line-width, where X is the number of staff spaces." (ly:make-stencil '() '(1 . -1) '(1 . -1))))) (define-markup-command (justify-field layout props symbol) (symbol?) -- (let* ((m (chain-assoc-get symbol props))) + (let* ((m (chain-assoc-get symbol props))) (if (string? m) (interpret-markup layout props (list justify-string-markup m)) diff --git a/scm/lily.scm b/scm/lily.scm index a0788091a0..f3767ca9f5 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -52,7 +52,7 @@ scheme are caught in the parser. If off, halt on errors, and print a stack trace.") (profile-property-accesses #f "keep statistics of get_property() calls.") - (resolution 101 "resolution for generating bitmaps") + (resolution 101 "resolution for generating PNG bitmaps") (read-file-list #f "Read files to be processed from command line arguments") (safe #f "Run safely") diff --git a/stepmake/stepmake/generic-vars.make b/stepmake/stepmake/generic-vars.make index c61fa5ec82..834a527409 100644 --- a/stepmake/stepmake/generic-vars.make +++ b/stepmake/stepmake/generic-vars.make @@ -45,7 +45,6 @@ INSTALLPY=$(PYTHON) $(step-bindir)/install.py -c INSTALL=$(INSTALLPY) group-dir = $(shell cd $(DEPTH);pwd)/.. -release-dir = $(group-dir)/releases patch-dir = $(group-dir)/patches rpm-sources = $(release-dir) rpm-build = $(group-dir)/RedHat/BUILD diff --git a/stepmake/stepmake/toplevel-targets.make b/stepmake/stepmake/toplevel-targets.make index 5d404ec682..69e08c6ef7 100644 --- a/stepmake/stepmake/toplevel-targets.make +++ b/stepmake/stepmake/toplevel-targets.make @@ -50,9 +50,6 @@ dist: chmod -R a+r $(distdir) chmod a+x `find $(distdir) -type d -print` (cd ./$(depth)/$(outdir); $(TAR) -cf - --owner=0 --group=0 $(DIST_NAME) | gzip -9 > $(DIST_NAME).tar.gz) -# ugh. -# Can't compare "stage1" dist with "stage2" dist in this way? - -ln -f $(depth)/$(outdir)/$(distname).tar.gz $(release-dir) rm -rf $(distdir)/ #