]> git.donarmstrong.com Git - lilypond.git/commitdiff
patch::: 1.5.30.uu1
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Sun, 10 Feb 2002 22:28:34 +0000 (23:28 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Sun, 10 Feb 2002 22:28:34 +0000 (23:28 +0100)
2002-02-07  Han-Wen Nienhuys  <hanwen@cs.uu.nl>

* stepmake/aclocal.m4: fixed bison version check to be more
robust.

* lily/stem.cc (position_noteheads): fix for cluster chords.

* mf/*.mf: many blotting/pixel rounding fixes  by Rune Zedeler

* python 2.2 support.

31 files changed:
ChangeLog
Documentation/topdocs/INSTALL.texi
Documentation/user/refman.itely
VERSION
aclocal.m4
config.hh.in
configure.in
input/regression/breathing-sign.ly
input/regression/non-empty-text.ly
input/regression/stanza-number.ly
input/template/piano-dynamics.ly
input/test/markup.ly
lily/afm.cc
lily/dynamic-engraver.cc
lily/kpath.cc
lily/stem.cc
lily/text-engraver.cc
lilypond-mode.el
ly/engraver-init.ly
mf/feta-bolletjes.mf
mf/feta-eindelijk.mf
mf/feta-klef.mf
mf/feta-macros.mf
mf/feta-params.mf
mf/feta-puntje.mf
mf/feta-schrift.mf
mf/feta-toevallig.mf
python/midi.c
scm/grob-description.scm
scripts/lilypond-book.py
stepmake/aclocal.m4

index 90166e4d2f01ae8bf8fc9c3b395ba59559069bff..07252e7ad57f086ee5916ccabf47322ff33830b3 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,14 @@
+2002-02-07  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
+
+       * stepmake/aclocal.m4: fixed bison version check to be more
+       robust.
+
+       * lily/stem.cc (position_noteheads): fix for cluster chords.
+
+       * mf/*.mf: many blotting/pixel rounding fixes  by Rune Zedeler
+
+       * python 2.2 support.
+
 2002-02-04  Han-Wen  <hanwen@cs.uu.nl>
 
        * VERSION: 1.5.30 released
index a2e4043133ca5695df36776b563aa0965aba5e63..27ddf6868b1e463ac34f39418be687bfddab3adf 100644 (file)
@@ -116,7 +116,7 @@ on the FTP site.
 You need the following packages to compile Lilypond.
 
 @itemize
-@item A reasonably new C++ compiler:  EGCS 1.1, GCC 2.95.2 or
+@item A reasonably new version of the GNU C++ compiler:  EGCS 1.1, GCC 2.95.2 or
 newer. Check out @uref{ftp://ftp.gnu.org/gnu/gcc/, the gcc site}.
 
 @item  Python (version 1.5 or newer; not 2.1.x)
index f34b6ba4ebdc319a5eed9352cc33128d174bc675..4879e3465855bf76690645569e3c7264ba1738ba 100644 (file)
@@ -3541,19 +3541,19 @@ details, see the file @file{scm/font.scm}.
 @cindex @code{papersize}
 
 To change the paper size, you must first set the
-@code{papersize} variable at top level.  Set it to
+@code{papersize} paper variable variable.  Set it to
 the strings @code{a4}, @code{letter}, or @code{legal}.  After this
 specification, you must set the font as described above.  If you want
 the default font, then use the 20 point font.
 
 @example
-        papersize = "a4"
+        \paper{papersize = "a4"}
         \include "paper16.ly"
 @end example
 
 The file @code{paper16.ly}  will now include a file named @file{a4.ly}, which
 will set the paper variables @code{hsize} and @code{vsize} (used by
-@code{ly2dvi})
+Lilypond and @code{ly2dvi})
 
 @c .  {Line break}
 @node Line break
diff --git a/VERSION b/VERSION
index 4b265d335f0864b28f92617e7f3ef7287254590a..a967b76a901a1797f70972151aaf3ff3e8eb4e7c 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=5
 PATCH_LEVEL=30
-MY_PATCH_LEVEL=
+MY_PATCH_LEVEL=uu1
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index 082312d7413a30eea1b2f3ff52f1c1552f7260fd..0c3c31bd785752fe0a345a121641ac08eafadf96 100644 (file)
@@ -482,10 +482,12 @@ AC_DEFUN(AC_STEPMAKE_LEXYACC, [
     AC_CHECK_SEARCH_RESULT($BISON, bison,  Please install Bison, 1.25 or newer)
     AC_CHECK_SEARCH_RESULT($FLEX,  flex, Please install Flex, 2.5 or newer)
 
+
+## Urg. We should fix this configure test. -- so clumsy
     if test $BISON != "error"; then
-       bison_version=`$BISON --version | sed 's/^.*version 1.//g'`
-       if test `echo $bison_version | sed 's/\..*$//g'` -lt 25; then
-           AC_STEPMAKE_WARN(Your bison is a bit old (1.$bison_version). You might have to install 1.25)
+       bison_version=`$BISON --version | head -1 | sed 's/^.* 1\.//g'`
+       if test $bison_version -lt 25; then
+           AC_STEPMAKE_WARN(The bison installed might be too old (1.$bison_version). You might have to install 1.25)
        fi      
     fi
 
index 972377ac504e1a05ffb15c853d68f3e4e3c1e395..fd68a01406c611406c519b9967b4e2840a6b14e1 100644 (file)
@@ -41,6 +41,9 @@
 /* define if you have kpse_find_tfm */
 #define HAVE_KPSE_FIND_TFM 0
 
+/* define if you have python2.2/Python.h header */
+#define HAVE_PYTHON2_2_PYTHON_H 0
+
 /* define if you have python2.1/Python.h header */
 #define HAVE_PYTHON2_1_PYTHON_H 0
 
index 687edd4e4a5877fa25c54fcd9ffb6d8c2265de4e..e7a5ea11b137fa0e6fceafc7313b23ab89a835f3 100644 (file)
@@ -52,7 +52,7 @@ AC_STEPMAKE_MAKEINFO
 
 AC_PATH_PROG(PERL, perl, error)
 
-AC_HAVE_HEADERS(python2.1/Python.h python2.0/Python.h python2/Python.h python/Python.h python1.5/Python.h Python.h)
+AC_HAVE_HEADERS(python2.2/Python.h python2.1/Python.h python2.0/Python.h python2/Python.h python/Python.h python1.5/Python.h Python.h)
 
 
 AC_STEPMAKE_END
index 5ad99b6e825535b1c9cf174c7fb0833b3611e124..a663a8a001aa44b4399237726c47879c1f29ffb0 100644 (file)
@@ -21,7 +21,11 @@ two measures all have the same distance from each other:
     < \context Voice = two { \stemDown es4 \breathe bes es }
       \context Voice = one { \stemUp g4 as g }
     > |
-    es8 d es f g4 \breathe |
+% Change to wedge:
+    \property Voice.BreathingSign \override #'text = #"scripts-upbow"
+    es8 d es f g8 \breathe f |
+% Revert to old layout:
+    \property Voice.BreathingSign \override #'molecule-callback = #Breathing_sign::brew_molecule
     es8 d \breathe es f g f |
     es2 r4 \bar "||"
   }
index d3eee8bedce9bc19272745a0274cd9f6f97b47be..43c81652d8c176354ead6c51d3df0b969b9011a6 100644 (file)
@@ -7,11 +7,12 @@ textNonEmpty is used to respect the horizontal size of text.
 "
 }
 \score { \notes {
-\property Voice.TextScript \override #'no-spacing-rods = ##f
-c4_"very wide and long text" c4
+c2_"very wide and long text" c | \break
+\fatText  % short for \property Voice.textNonEmpty = ##t
+c_"very wide and long text" c
 }
 
 \paper {
-  linewidth  = -1.0
+  linewidth  = 3.\cm
   }
 }
index bd56fc5ad590ad69260f6248a605412dae03282c..55991ad5a29ee7a0cfcae85986f9c92345ca8e76 100644 (file)
@@ -7,7 +7,7 @@ texidoc = "Stanza numbers may differ for the first and following systems."
 < \context LyricsVoice \lyrics {
 
 \property LyricsVoice . stanza =  "first"
-\property LyricsVoice . stz =  "2nd"
+\property LyricsVoice . stz =  #'("2" (super "nd"))
 Foo1 Bar1   }
 
 \notes { c''1 \break c''1 }>} 
index 59a0a0821816bd54a27778162e38ba68fd77cae3..e95a273378de69b2f2de613033a917557568f022 100644 (file)
@@ -26,11 +26,7 @@ lower = \notes\relative c {
 }
 
 dynamics = \notes {
-  \outputproperty #(make-type-checker 'dynamic-interface)
-    #'extra-offset = #'(0 . 2.5)
   s2\fff\> s4
-  \outputproperty #(make-type-checker 'dynamic-interface)
-    #'extra-offset = #'(0 . 2.5)
   \!s\pp
 }
 
@@ -67,6 +63,8 @@ pedal = \notes {
 
       TextScript \override #'font-relative-size = #1
       TextScript \override #'font-shape = #'italic
+      DynamicText \override #'extra-offset = #'(0 . 2.5)
+      Hairpin \override #'extra-offset = #'(0 . 2.5)
 
       \consists "Skip_req_swallow_translator"
 
index 621567dbad6e0c9f25033a80cde19cb00d0c8375..17474621c21663ffbd10153c9c13f936adc0e707 100644 (file)
                d-#'(lines "Violoncello" "    e" "Contrabasso")
                e-#'((lines (baselineskip . 0) (kern . 1.5)) "Violoncello" "    e" "Contrabasso")
                e-#'(((baselineskip . 0) (kern . 1.5) lines) "Violoncello" "    e" "Contrabasso")
+               g-"ÅÖÄÜÇÕ"
                }
        \paper{
                linewidth = -1.\mm
-               \translator{
+               fontenc = "T1"
+               \translator{
                        \ScoreContext
                        TextScript \override #'font-family = #'roman
                        TextScript \override #'font-shape = #'upright
                        TextScript \revert #'no-spacing-rods
                        TextScript \override #'direction = #1
-               }
+                       TextScript \override #'font-encoding = #'T1
+       }
        }
 }
index 4485349e2995309477f966502986323d55526814..10729904304f7bd17220b19a93b67ce7c8e88998 100644 (file)
@@ -15,7 +15,7 @@ Adobe_font_metric::Adobe_font_metric (AFM_Font_info * fi)
   checksum_ = 0;
   font_inf_ = fi;
 
-  for (int i= 256; i--;)
+  for (int i= 256  >? fi->numOfChars; i--;)
     ascii_to_metric_idx_.push (-1);
   
   for (int i=0; i < fi->numOfChars; i++)
index 3fe710acac0adee780e0c6804527a2d48593c27a..fd92417cbc1fd53ea5c58e4ff6431153b41861a7 100644 (file)
@@ -145,7 +145,7 @@ Dynamic_engraver::process_music ()
          Music * rq = accepted_spanreqs_drul_[START];
          if (script_req_l_)
            rq =  script_req_l_ ;
-         announce_grob(line_spanner_, rq->self_scm());
+         announce_grob(line_spanner_, rq ? rq->self_scm(): SCM_EOL);
                         
 
        }
index aed208d5abea6f4bf17d246318faa21c02527b63..c1d2bffaa0aae38e2bb888e1f2c9e630a8b6d9d7 100644 (file)
@@ -13,6 +13,7 @@
 
 #define popen REALLYUGLYKLUDGE
 #define pclose ANOTHERREALLYUGLYKLUDGE
+#define getopt YAKLUDGE
 
 #if HAVE_KPATHSEA_KPATHSEA_H
 extern "C" {
index f02c00598ad430328582aa5eca8324e26145dad3..4f33d16066ba4e1f8e5e839015b06cb832d2e3b5 100644 (file)
@@ -407,7 +407,8 @@ Stem::position_noteheads (Grob*me)
        {
          if (parity)
            {
-             Real l = heads[i]->extent (heads[i], X_AXIS).length ();
+             Real l = Note_head::head_extent (heads[i], X_AXIS).length ();
+
              heads[i]->translate_axis (l * get_direction (me), X_AXIS);
            }
          parity = !parity;
index 3a463407f2d35ac0e2078c7bc02e13f2a1e93c5d..38716da2af5d008b43a8145f37feccc89cc97cf1 100644 (file)
@@ -128,12 +128,17 @@ Text_engraver::create_grobs ()
       text->set_grob_property ("text", r->get_mus_property ("text"));
       
       SCM nonempty = get_property ("textNonEmpty");
-      if (to_boolean (nonempty))
-       /*
-         empty text: signal that no rods should be applied.  
-        */
-       text->set_grob_property ("no-spacing-rods" , SCM_BOOL_F);
-               
+
+      if (gh_boolean_p (nonempty))
+       if (gh_scm2bool (nonempty))
+         /*
+           empty text: signal that no rods should be applied.
+           Default nowadays.
+         */
+         text->set_grob_property ("no-spacing-rods" , SCM_BOOL_F);
+       else
+         text->set_grob_property ("no-spacing-rods" , SCM_BOOL_T);
+       
       announce_grob (text, r->self_scm ());
       texts_.push (text);
     }
index b2331af875e20e5759ec4b82748c88e5300b7a64..23696508eedd6e5c6265da7714c19bd90cbd9dc7 100644 (file)
@@ -262,6 +262,8 @@ Must be the car of an entry in `LilyPond-command-alist'."
                           ;;"LilyPond"
                           LilyPond-command-default))
                        (t LilyPond-command-default)))
+
+         (completion-ignore-case t)
         
         (answer (or LilyPond-command-force
                     (completing-read
index 8acac587dadc5a93b82918dd8a49c47d76855315..5c309e6fb4a53d3809799f331083aa27b2b29e28 100644 (file)
@@ -240,6 +240,7 @@ LyricsVoiceContext= \translator{
        \consists "Extender_engraver"
        \consists "Hyphen_engraver"
        \consists "Stanza_number_engraver"
+       \consists "Skip_req_swallow_translator"
        phrasingPunctuation = #".,:!?\""
        
 }
index 9e24390594de359ced0b7de39eb504240c1fd3fc..d59e748b5f617de8db80216c3a5c1ed06f1fc1a8 100644 (file)
@@ -121,8 +121,8 @@ fet_beginchar ("Brevis notehead", "-1", "brevishead");
        y4 = y2;
        y3 = y1;
 
-       draw z1 -- z2;
-       draw z3 -- z4;
+       draw_gridline(z1,z2,stemthick);
+       draw_gridline(z3,z4,stemthick);
 fet_endchar;
 
 % whole note
@@ -431,19 +431,7 @@ fet_endchar;
 fet_beginchar("Ledger ending", "ledgerending", "ledgerending")
 set_char_box (5/2 ledgerlinethickness#, 5/2 ledgerlinethickness#,
                ledgerlinethickness#/2,ledgerlinethickness#/2);
-       pickup pencircle scaled 1.3 blot_diameter;
-
-       rt x2 = w;
-       lft x1 = -b;
-       x3 = x2;
-       bot y1 = -d;
-       y2 = y1;
-
-       top y3 = h;
-       y4 = y3;
-       x4 = x1;
-
-       filldraw z1 --- z2 --- z3 --- z4 --- cycle ;
+       draw_rounded_block((-b,-d),(w,h),1.3 blot_diameter);
 fet_endchar;
 
 
index 55b73ee4a257085d83f177f1ff82415fb72e7cc8..f81107f1c82efb6a90d8d39b094e2a728766f229 100644 (file)
@@ -73,7 +73,7 @@ fet_beginchar( "whole rest (outside staff)", "0o", "outsidewholerest");
        y5 = y6 = 0;
        lft x5 = - b - block_rest_y;
        rt x6 = w + block_rest_y;
-       draw z5 .. z6;
+       draw_gridline(z5,z6,ledgerlinethickness);
 fet_endchar;
 
 fet_beginchar("half rest (outside staff)", "1o", "outsidehalfrest");
@@ -84,7 +84,7 @@ fet_beginchar("half rest (outside staff)", "1o", "outsidehalfrest");
        y5 = y6 = 0;
        lft x5 = - b - block_rest_y ;  
        rt x6 = w + block_rest_y;
-       draw z5 .. z6;
+       draw_gridline (z5,z6,ledgerlinethickness);
 fet_endchar;
 
 
index cf05a663a5c393aa38ef8d382a765e056ce0f247..39e8f6ee5da62f0f56286d4647e65b7d3a58149e 100644 (file)
@@ -147,10 +147,10 @@ def draw_bass_clef(expr exact_center, reduction) =
        penlabels(1,2,3,4);
 
        save dot_diam;
-       2 dot_diam = reduction* (staff_space - stafflinethickness);
+       2 dot_diam = round reduction* (staff_space - stafflinethickness);
        pickup pencircle scaled dot_diam;
-       draw z5;
-       draw z5 yscaled -1;
+       drawdot z5;
+       drawdot z5 yscaled -1;
 enddef;
 
 
index 6fa8d3a3e6b13341627dd77fe47895e257853a70..26320c6a6bb22ff15bc8034b74fde2308abce665 100644 (file)
@@ -117,26 +117,41 @@ def distorted_ellipse(expr a,b,err_y,err_x,super) =
        superellipse((a,err_x),(-err_y,b),(-a,-err_x),(err_y,-b),super);
        enddef;
 
-% stolen from feta-eindelijk, but still
-% FIXME: too high
-def draw_block (expr bottom_left, top_right) =
-       pickup pencircle scaled blot_diameter;
 
-       begingroup;
-       save x,y;
-       bot y1 = ypart bottom_left;
-       top y2 = ypart top_right;
-       y3 = y2;
-       y4 = y1;
 
-       rt x1 = xpart top_right;
-       x2 = x1;
-       lft x3 = xpart bottom_left;
-       x4 = x3;
-
-       filldraw z1--z2--z3--z4--cycle;
-       endgroup;
-       enddef;
+def draw_rounded_block (expr bottom_left, top_right, roundness) =
+       save round;
+       round = floor min(roundness,xpart (top_right-bottom_left),
+                                   ypart (top_right-bottom_left));
+       pickup pencircle scaled round;
+  
+        begingroup;
+        save x,y;
+       z2+(round/2,round/2) = top_right;
+       z4-(round/2,round/2) = bottom_left;
+        y3 = y2;
+        y4 = y1;
+        x2 = x1;
+        x4 = x3;
+       fill bot z1 .. rt z1 --- rt z2 .. top z2 ---
+            top z3 .. lft z3 --- lft z4 .. bot z4 --- cycle;
+        endgroup;
+        enddef;
+  
+
+
+ def draw_block (expr bottom_left, top_right) =
+       draw_rounded_block (bottom_left, top_right, blot_diameter);
+       enddef;
+ def draw_gridline (expr bottom_left,top_right,thickness) =
+       draw_rounded_block (bottom_left-(thickness/2,thickness/2),
+                           top_right+(thickness/2,thickness/2),
+                           thickness);
+       enddef;
+       
 
 def draw_brush(expr a,w,b,v) =
        save x,y;
index b9c9d9924b3b191b39f0d5be0f2a450d5849c9f8..2f793da49457e4186afb55dfa62df20ab8df1426 100644 (file)
@@ -41,7 +41,7 @@ overdone_heads = 0.0;
 % FIXME: According to [Wanske], only outside corners should be round
 %        I don't think we do this anywhere -- jcn
 numeric blot_diameter;
-blot_diameter# = .4pt#;
+blot_diameter# = .45pt#;
 if (blot_diameter# * hppp) < 1:
        blot_diameter# := 1/hppp;
 fi
index ad04883de9c9adc23e8da86fcdb151534f920287..fbd7c6a9db5e893266d7f84fc2e32dd6abc0265f 100644 (file)
@@ -1,13 +1,13 @@
 fet_begingroup("dots");
 
-save dot_diam;
-2 dot_diam# = staff_space# - stafflinethickness#;
-define_pixels(dot_diam);
+save dot_radius;
+4 dot_radius# = staff_space# - stafflinethickness#;
+define_whole_blacker_pixels(dot_radius);
 
 fet_beginchar("duration dot","dot", "dot")
-       pickup pencircle scaled dot_diam;
-       drawdot (dot_diam/2,0);
-       set_char_box(0, dot_diam#, dot_diam#/2, dot_diam#/2);
+       pickup pencircle scaled dot_radius;
+       drawdot (dot_radius,0);
+       set_char_box(0, 2*dot_radius#, dot_radius#, dot_radius#);
 fet_endchar;
 
 fet_endgroup("dots");
index b9bc92b634623dbb2d427cae11edf83e5d4a80b4..bb9df753077014dc879bd894a3e3968775b40896 100644 (file)
@@ -12,7 +12,7 @@
 fet_begingroup("scripts")
 
 def draw_fermata =
-  save alpha, radius, crook_thinness, crook_fatness, dot_diam;
+  save alpha, radius, crook_thinness, crook_fatness, dot_radius;
   
        % [Wanske] and some  Baerenreiter editions
        % suggest ca 80 degrees iso half-circle
@@ -27,7 +27,7 @@ def draw_fermata =
   set_char_box(w#, w#, crook_thinness#/2, h#);
   
   define_pixels(radius, crook_thinness, crook_fatness);
-  dot_diam = 4/3 crook_fatness;
+  dot_radius = round (4/6 crook_fatness);
 
 
   penpos1(crook_thinness, 0);
@@ -41,10 +41,10 @@ def draw_fermata =
   addto currentpicture also 
   currentpicture xscaled -1;
 
-  pickup pencircle scaled dot_diam;
+  pickup pencircle scaled 2dot_radius;
   x4 =0;
   bot y4 = - crook_thinness/2;
-  draw z4;
+  drawdot z4;
 enddef;
 
 fet_beginchar("fermata up", "ufermata", "ufermata")
@@ -134,9 +134,9 @@ fet_endchar;
 fet_beginchar("staccato dot", "staccato", "staccato")
        save radius;
        radius# = 1.4 stafflinethickness#;
-       define_pixels(radius);
+       define_whole_pixels(radius);
        pickup pencircle scaled 2 radius;
-       draw (0,0);
+       drawdot (0,0);
        set_char_box(radius#, radius#, radius#, radius#);
 fet_endchar;
 
@@ -144,7 +144,8 @@ def draw_staccatissimo =
        save radius, height;
        height# = .8 staff_space#;
        radius# = 2 stafflinethickness#;
-       define_pixels(radius, height);
+       define_whole_pixels(radius);
+       define_pixels(height);
 
        draw_brush((0,0), stafflinethickness, (0, height),2 radius);
        set_char_box(radius#,radius#, blot_diameter#/2, height# + radius#);
@@ -166,14 +167,11 @@ fet_endchar;
 fet_beginchar("portato/single tenuto", "tenuto", "tenuto")
        save thick;
        thick# = 1.4 stafflinethickness#;
-       define_pixels(thick);
+       define_whole_pixels(thick);
 
        set_char_box(.6 staff_space#, .6 staff_space#, thick#/2,thick#/2);
        pickup pencircle scaled thick;
-       lft x1 = -b;
-       rt x2 = w;
-       y1 = y2 = 0;
-       draw z1 .. z2;
+       draw_rounded_block((-b,-thick/2),(w,thick/2),thick);
 fet_endchar;
 
 
@@ -184,19 +182,14 @@ fet_endchar;
 def draw_portato = 
        save thick, radius;
        thick# = 1.4 stafflinethickness#;
-       define_pixels(thick);
        radius# = 1.4 stafflinethickness#;
-       define_pixels(radius);
+       define_whole_pixels(thick,radius);
        
        set_char_box(.6 staff_space#, .6 staff_space#, thick#/2,.5 staff_space#+ radius#);
-       pickup pencircle scaled thick;
-       lft x1 = -b;
-       rt x2 = w;
-       y1 = y2 = 0;
-       draw z1 .. z2;
+       draw_rounded_block((-b,-thick/2),(w,thick/2),thick);
 
        pickup pencircle scaled 2 radius;
-       draw (0,h);
+       drawdot (0,h);
 enddef;
 
 
@@ -280,14 +273,8 @@ fet_beginchar("plus (stopped)", "stopped", "plusstop")
        size# = 1.1 staff_space#;
 
        set_char_box(size#/2, size#/2, size#/2, size#/2);
-       pickup pencircle scaled thick;
-
-       rt x1 = w;
-       y1 = 0;
-       z2 = -z1;
-
-       draw z1 .. z2;
-       draw (z1 .. z2) rotated 90;
+       draw_rounded_block((-b,-thick/2),(w,thick/2),thick);
+       addto currentpicture also currentpicture rotated 90;
 fet_endchar;
 
 %
@@ -316,37 +303,17 @@ fet_endchar;
 
 fet_beginchar("Downbow", "downbow", "downbow")
        save stemthick, beamheight;
-       save wd;
+       save wd,round;
        define_pixels(wd)
 
        wd# = 1.5 staff_space#;
        stemthick = 1.2 stafflinethickness;
-
        set_char_box(wd#/2, wd#/2, 0, 4/3 staff_space#);
 
        beamheight = 4/10 h;
 
-
-       pickup pencircle scaled blot_diameter;
-       top y2 - bot y1  = beamheight;
-       top y2 = h;
-       rt x1 = w;
-       x1 = x2;
-       y2 = y3;
-       y1 = y4;
-       x3 = 0;
-       x4 = x3;
-       save p;
-       path p;
-       filldraw z1 -- z2 -- z3 -- z4 --cycle;
-
-       pickup pencircle scaled stemthick;
-
-       bot y5 =0;
-       rt x5 = rt x6 = w;
-       y6 = h - beamheight;
-       draw z6 -- z5;
-       labels(1, 2,3,4,5,6);
+       draw_rounded_block((-b,h-beamheight),(w,h),blot_diameter);
+       draw_rounded_block((-b,-d),(-b+stemthick,h-stemthick),stemthick);
        addto currentpicture also currentpicture xscaled -1;
 fet_endchar;
 
@@ -716,9 +683,8 @@ fet_beginchar("Coda", "coda", "coda")
        fill halfcoda;
        fill (halfcoda scaled -1);
 
-       pickup pencircle scaled thin;
-       draw (0,-h) -- (0,h);
-       draw (-w,0) -- (w,0);
+       draw_gridline((0,-h),(0,h),thin);
+       draw_gridline((-w,0),(w,0),thin);
 
 fet_endchar;
 
index a71a57aaabcdb053e41e2546cc28b6b3c5eb7860..ed316e66f07fe1a564e0e7858482136e60aa8ebf 100644 (file)
@@ -66,19 +66,16 @@ fet_beginchar("Sharp" , "1", "sharp");
 
        pickup pencircle scaled roundness;
        filldraw (beam shifted (0,-interbeam/2));
-       filldraw (beam shifted (0,interbeam/2));
 
        pickup pencircle scaled stemwidth;
        x3 = x4 = xpart center;
        bot y3 = -1.5 staff_space + ypart center;
        top y4 = 1.5 staff_space + ypart center;
 
-       path stem;
-       stem := z3 .. z4;
        numeric xs;
        xs := interstem* beamwidth / 2;
-       draw stem shifted (- xs, - xs* beamslope);
-       draw stem shifted (xs , xs *beamslope);
+       draw_gridline (z3-(xs,xs* beamslope),z4-(xs,xs*beamslope),stemwidth);
+       addto currentpicture also currentpicture rotated 180 shifted (w,0);
        labels(1,2,3,4);
        fet_endchar;
 
@@ -111,8 +108,8 @@ fet_beginchar( "Natural", "0", "natural")
        top y3 = 1.5 staff_space;
        top y4 = beamtop;
 
-       draw (xpart z1, -y4) .. z3;
-       draw (xpart z2, -y3) .. z4;
+       draw_gridline((xpart z1, -y4),z3,stemwidth);
+       draw_gridline((xpart z2, -y3),z4,stemwidth);
 
        labels(1,2,3,4);
        fet_endchar;
index a5fab33c309aeaa9c816657d09c439851d6f8415..00262016512a90933939e2344572c6a61a5a4f06 100644 (file)
@@ -23,6 +23,8 @@ midi.parse (s)
 /* urg */
 #if HAVE_PYTHON2_PYTHON_H
 #include <python2/Python.h>
+#elif HAVE_PYTHON2_2_PYTHON_H
+#include <python2.2/Python.h>
 #elif HAVE_PYTHON2_1_PYTHON_H
 #include <python2.1/Python.h>
 #elif HAVE_PYTHON2_0_PYTHON_H
index ea731b477ce5c6c008dc8b8f0512b614fefe8aef..af6e7aa0a2dd1843cb312080fcd75f068634e5a9 100644 (file)
        (BreathingSign . (
                (break-align-symbol . Breathing_sign)
                (breakable . #t )
-               (molecule-callback . ,Breathing_sign::brew_molecule)
+               (molecule-callback . ,Text_item::brew_molecule)
+               (lookup . name)
+               (font-family . music)
+               (text . "scripts-rcomma")
                (Y-offset-callbacks . (,Breathing_sign::offset_callback))
                (visibility-lambda . ,begin-of-line-invisible)
-               (meta . ,(grob-description  break-aligned-interface))
+               (meta . ,(grob-description  break-aligned-interface text-interface font-interface))
        ))
 
        (Clef . (
index 2eb4a0c5f257d034824de2d8ab317cae9db3ed62..e1a7f86b31a17c0645b7b6093ca10e135b639af2 100644 (file)
@@ -487,7 +487,7 @@ re_dict = {
                 'lilypond-file': '(?m)^(?!@c)(?P<match>@lilypondfile(\[(?P<options>.*?)\])?{(?P<filename>[^}]+)})',
                 'lilypond' : '(?m)^(?!@c)(?P<match>@lilypond(\[(?P<options>.*?)\])?{(?P<code>.*?)})',
 # pyton2.2b2 barfs on this
-                'lilypond-block': r"""(?m)^(?!@c)(?P<match>(?s)(?P<match>@lilypond(\[(?P<options>.*?)\])?\s(?P<code>.*?)@end lilypond\s))""",
+                'lilypond-block': r"""(?m)^(?!@c)(?P<match1>(?s)(?P<match>@lilypond(\[(?P<options>.*?)\])?\s(?P<code>.*?)@end lilypond\s))""",
 
 # 1.5.2 barfs on this. 
 # 'lilypond-block': r"""(?m)^(?!@c)(?P<match>@lilypond(\[(?P<options>.*?)\])?\s(?P<code>.*?)@end lilypond\s)""",
index 3003cbd938eec27cd4eb075798847334cab0a441..20a3f58ec193ed12b65c6ba9afe0e0bbaf160bbb 100644 (file)
@@ -480,10 +480,12 @@ AC_DEFUN(AC_STEPMAKE_LEXYACC, [
     AC_CHECK_SEARCH_RESULT($BISON, bison,  Please install Bison, 1.25 or newer)
     AC_CHECK_SEARCH_RESULT($FLEX,  flex, Please install Flex, 2.5 or newer)
 
+
+## Urg. We should fix this configure test. -- so clumsy
     if test $BISON != "error"; then
-       bison_version=`$BISON --version | sed 's/^.*version 1.//g'`
-       if test `echo $bison_version | sed 's/\..*$//g'` -lt 25; then
-           AC_STEPMAKE_WARN(Your bison is a bit old (1.$bison_version). You might have to install 1.25)
+       bison_version=`$BISON --version | head -1 | sed 's/^.* 1\.//g'`
+       if test $bison_version -lt 25; then
+           AC_STEPMAKE_WARN(The bison installed might be too old (1.$bison_version). You might have to install 1.25)
        fi      
     fi