]> git.donarmstrong.com Git - lilypond.git/commitdiff
Merge with git+ssh://jneem@git.sv.gnu.org/srv/git/lilypond.git
authorJoe Neeman <joeneeman@gmail.com>
Sun, 26 Nov 2006 17:11:30 +0000 (19:11 +0200)
committerJoe Neeman <joeneeman@gmail.com>
Sun, 26 Nov 2006 17:11:30 +0000 (19:11 +0200)
15 files changed:
.gitignore
Documentation/user/cheatsheet.itely
input/regression/slur-clef.ly
lily/custos.cc
lily/include/slur.hh
lily/paper-book.cc
lily/slur-scoring.cc
lily/slur.cc
python/convertrules.py
scm/c++.scm
scm/define-grobs.scm
scm/define-markup-commands.scm
scm/lily.scm
stepmake/stepmake/generic-vars.make
stepmake/stepmake/toplevel-targets.make

index 71835fac083b5cdcdd2c61d57a1a39df71cd77cb..64f8beaac7411d080b9b4e5a6d2112ffdd0a545c 100644 (file)
@@ -32,3 +32,4 @@ gcstat*.scm
 *-systems.tex
 *-midi.ly
 a.out
+.dotest
index f080f81e41d086d698938862b2f46d28bbbbb75d..ced3e2efd0d6034d3bcf4682eab33cc439221216 100644 (file)
@@ -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]
index 86d27fbe032d5539ea57830d74d35dcd0663f691..c230f6e55a00c0816b3a1b73c4ea0e62718b53d3 100644 (file)
@@ -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'') } 
index f57cdc20eaa70fa4b3c3c9829a7fa0e0740e57cf..4e0010dcf6af748dc1aa098970496bf496790142 100644 (file)
@@ -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 ");
index 20667dd25cd20c59d38e7b115e23851ffca27fa1..d8603485d524ae892393a63bf564fc3ec0f54ae8 100644 (file)
@@ -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<Grob*>&, vector<Grob*>&);
   DECLARE_SCHEME_CALLBACK (print, (SCM));
   DECLARE_SCHEME_CALLBACK (calc_control_points, (SCM));
index 37a156238a4e898dade1fc801dae3667b3a71a70..bddeffe15084c1370ae85d611a368067357f7e07 100644 (file)
@@ -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)
index ba8f5c80ccd52ba9d6c0a1a85a64ef2c4bee3058..34e20519c96c0ea34afd3ff627abe31b7411f7d2 100644 (file)
@@ -224,13 +224,14 @@ Slur_score_state::fill (Grob *me)
   slur_ = dynamic_cast<Spanner *> (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;
index 0128e8cdfda6f3d4ca3004c429d290fe169b691b..a87feb68506e5f4643ca4695f14886abebc3c88c 100644 (file)
@@ -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<Grob *> 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<Grob *> &arr =
+       unsmob_grob_array (encompass_scm)->array_reference ();
+      arr = new_encompasses;
+    }
+}
+
 Bezier
 Slur::get_curve (Grob *me)
 {
index a037dbd5c4934fac720d9af8da66655485b31aa2..2ed3b2863664fa71b9b22f7918c268c798f83a2d 100644 (file)
@@ -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,
index adc21cea2301769664b8cdc1cd20e78a0f09d2af..7069ca1a41e32e2b2e42fa59f58b0ee55f4ec7f5 100644 (file)
@@ -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)))
 
index 08937eb37f75fc660a43950482d54333e68f6cc3..5e2dd4d86c14ea0572aadc11d7d5ae6a9e2f28b1 100644 (file)
        (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)
     (KeySignature
      . (
        (stencil . ,ly:key-signature-interface::print)
+       (avoid-slur . inside)
        (space-alist . (
                        (time-signature . (extra-space . 1.15))
                        (staff-bar . (extra-space . 1.1))
        (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))
index 71407e60cd31f2645f379f44d55d01cbefeb86be..567486bb15a05e4b7b9b9ba4c792a22c7cc1a297 100644 (file)
@@ -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))
index a0788091a0e4e430b05d1a91f6cfc81f0b627e29..f3767ca9f5fb04e8231a2387ab2cf405272cfc70 100644 (file)
@@ -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")
index c61fa5ec82040fd1f1bac5c18333326dcb927990..834a527409384fbc542e81f76f10f93254905297 100644 (file)
@@ -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
index 5d404ec68230ff21703cd20f866a5e1601a76548..69e08c6ef7910ead923e72401f0d598f03e0028d 100644 (file)
@@ -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)/
 
 #