]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.5.23 release/1.5.23
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 29 Nov 2001 17:34:40 +0000 (18:34 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Thu, 29 Nov 2001 17:34:40 +0000 (18:34 +0100)
===========

* Resurrected experimental sketch output, now with dispatch.

* Bugfix: prefix directory defaults to DIR_DATADIR if not defined.

* Rune: more reliable repeat dots (WARNING: FONT CHANGED)

1.5.22.h

44 files changed:
CHANGES
Documentation/header.html.in
Documentation/topdocs/INSTALL.texi
Documentation/user/converters.itely
Documentation/user/refman.itely
Documentation/user/tutorial.itely
Documentation/windows/installing.texi
Documentation/windows/lily-gs.sh
INSTALL.txt
VERSION
input/test/beams.ly
input/trip.ly
lily/bar.cc
lily/completion-note-heads-engraver.cc
lily/grob.cc
lily/lily-guile.cc
lily/lookup.cc
lily/main.cc
lily/my-lily-parser.cc
lily/note-heads-engraver.cc
lily/paper-outputter.cc
lily/parser.yy
lily/stanza-number-engraver.cc
lily/text-engraver.cc
lilypond-mode.el
make/out/lilypond.lsm
make/out/lilypond.mandrake.spec
make/out/lilypond.redhat.spec
make/out/lilypond.suse.spec
mf/GNUmakefile
mf/feta-puntje.mf
scm/ascii-script.scm
scm/lily.scm
scm/ps.scm
scm/pysk.scm
scm/sketch.scm
scm/tex.scm
scm/translator-property-description.scm
scripts/abc2ly.py
scripts/etf2ly.py
scripts/lilypond-book.py
scripts/ly2dvi.py
scripts/update-lily.py
stepmake/stepmake/metafont-rules.make

diff --git a/CHANGES b/CHANGES
index 8b28b189f141a9d9d18251cf5eb6f4cbd645f2e5..5c34ea703ff63de34de74f689f8c0f7b97ce5f37 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,16 +1,20 @@
-1.5.22.jcn4
+1.5.22.jcn1
 ===========
 
-* Stanza number: allow markup texts.
+* Resurrected experimental sketch output, now with dispatch.
 
-* Partial bugfix: ly2dvi: handle spaces in .ly file names (except for
-latex calls).
+* Bugfix: prefix directory defaults to DIR_DATADIR if not defined.
 
-* Bugfix: prepend DATADIR to %loadpath too.
+* Rune: more reliable repeat dots (WARNING: FONT CHANGED)
 
-* Resurrected experimental sketch output, now with dispatch.
+1.5.22.hwn1
+===========
 
-* Documented Linux-2.4.0, Guile-1.4 --with-threads bug.
+* Dashed slur bugfix. 
+
+* GUILE 1.4 compatibility.
+
 
 1.5.22
 ======
index bd4b1165934037407acadeac316128e683dcdef8..f5a7104cacd2a6650c196fb0b1cf70b3a5c16b2b 100644 (file)
@@ -50,7 +50,7 @@ which substitutes some @AT_VARIABLES@ as well.
       </td></tr>
       <tr><td><font size="-1">
        <a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-binaries">GNU/Linux binaries</a><br>
-       <a href="@TOP@Documentation/windows/out-www/installing.html">GNU/Windows binaries</a><br>
+       <a href="@TOP@Documentation/windows/out-www/installing.html">Windows binaries</a><br>
        <a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-source">Source code</a><br>
       </font></td></tr>
       <tr><td bgcolor="#e8e8ff">
index 45eb1b5e4558abedba50e14787210e7eb539aa14..e54217156990ed97cfac0856f4076e161749de4a 100644 (file)
@@ -171,12 +171,10 @@ configure something like:
 
 
 @item pktrace, [OPTIONAL], needed for generating PostScript Type1
-fonts. Get it from
- @uref{http://www.cs.uu.nl/~hanwen/public/software/pktrace-0.1.tar.gz}
+fonts. Get it from  @uref{http://www.cs.uu.nl/~hanwen/pktrace/}
 
 @item autotrace-0.27a, [OPTIONAL], needed for generating PostScript Type1
-fonts. You must apply the patch included pktrace-0.1 first.
-@uref{http://autotrace.sourceforge.net}.
+fonts. @uref{http://autotrace.sourceforge.net}.
  
 @item MetaPost [OPTIONAL] needed for generating PostScript Type3 fonts. Please
 note that tetex-0.4pl8 (included with Red Hat 5.x) does not include
@@ -533,7 +531,7 @@ interfere with your build, you may want to do this before the build too:
 @end example
 
 
-@c Why isn't this in BUGS (where it belongs?)
+
 @section Problems
 
 For help and questions use @email{lilypond-user@@gnu.org}.  Please
@@ -548,7 +546,6 @@ Flex 2.5.4a does not produce g++-3.0 compliant C++ code.  To compile
 LilyPond with gcc-3.0 you may do:
 
 @example
-        rm -f config.cache
         CC=gcc-3.0 CXX=g++-3.0 ./configure --enable-config=gcc-3.0
         make conf=gcc-3.0 -C lily out-gcc-3.0/lexer.cc
         patch -p1 < lexer-gcc-3.0.patch
@@ -557,18 +554,6 @@ LilyPond with gcc-3.0 you may do:
 
 Note that this is fixed in Debian/unstable for flex >= 2.5.4a-13.
 
-@unnumberedsubsec Linux-2.4.0, Guile-1.4 --with-threads
-
-There's a bug in certain kernels around version 2.4.0, that is
-triggered when using Guile 1.4 compiled with pthreads.  You'll see
-random segmentation fault craches of LilyPond.  Upgrade to a newer
-version of Linux.  If you can't do that, you may try to recompiling
-Guile without threads (YMMV):
-
-@example
-         guile-1.4$ ./configure --without-threads; make all install
-#end example
-
 @unnumberedsubsec NetBSD
 
 @itemize @bullet
index 05e31d59ffe4ff5344d1cfc8110903423b717519..1d1e75b1b921c669c90f8fa9af45b89f384a6428 100644 (file)
@@ -33,8 +33,10 @@ therefore not recommended to use midi2ly for human-generated midi
 files. Correcting the quantization mistakes of the human player takes a
 lot of time.
 
-Hackers who know about signal processing are invited to write  a more
-robust midi2ly.
+Hackers who know about signal processing are invited to write a more
+robust midi2ly.  midi2ly is written in Python, using a module written in
+C to parse the MIDI files.
+
 
 @subsection Invoking midi2ly
 
@@ -75,12 +77,6 @@ robust midi2ly.
 @end table
 
 
-Report bugs to @email{bug-lilypond@@gnu.org}.
-
-
-Written by @email{Jan Nieuwenhuizen, janneke@@gnu.org}.
-
-
 @node etf2ly
 @section etf2ly
 
@@ -111,11 +107,9 @@ version information
 
 @refbugs
 
-Known: articulation scripts are buggy.  Empty measures confuse etf2ly.
-
-Written by @email{Han-Wen Nienhuys,hanwen@@cs.uu.nl}.
+The list of articulation scripts is incomplete.  Empty measures confuse
+etf2ly.
 
-Report bugs to @email{bug-lilypond@@gnu.org}.
 
 @node abc2ly
 @section abc2ly
@@ -172,18 +166,12 @@ not.
 
 abc2ly ignores the ABC beaming.
 
-Written by @email{Han-Wen Nienhuys,hanwen@@cs.uu.nl}.
-@c How about Laura?   /MB
-
-Report bugs to @email{bug-lilypond@@gnu.org}.
-
 @node pmx2ly
 @section pmx2ly
 
 PMX is a MusiXTeX preprocessor written by Don Simons, see
 @uref{http://icking-music-archive.sunsite.dk/Misc/Music/musixtex/software/pmx/}.
 
-Report bugs to @email{bug-lilypond@@gnu.org}.
 
 @subsection Invoking pmx2ly
 
@@ -204,10 +192,6 @@ set output filename to FILE
 version information
 @end table
 
-Report bugs to @email{bug-lilypond@@gnu.org}.
-
-Written by @email{Han-Wen Nienhuys,hanwen@@cs.uu.nl}.
-
 
 @node musedata2ly
 @section musedata2ly
@@ -242,10 +226,6 @@ version information
 @var{REFFILE}
 @end table
 
-Report bugs to @email{bug-lilypond@@gnu.org}.
-
-Written by @email{Han-Wen Nienhuys,hanwen@@cs.uu.nl}.
-
 
 @node mup2ly
 @section mup2ly
@@ -287,9 +267,5 @@ print warranty and copyright.  Mup2ly comes with absolutely @strong{NO WARRANTY}
 Currently, only plain notes (pitches, durations), voices and staves are
 converted.
 
-Written by @email{Jan Nieuwenhuizen,janneke@@gnu.org}, based on pmx2ly.
-
-Report bugs to @email{bug-lilypond@@gnu.org}.
-
 
 
index 7acb95d58ac419989247d4a1f1bcc1897259aeae..12adf9a8c4d4c93d1ae8f73327f6c8ba79a0b766 100644 (file)
@@ -329,7 +329,7 @@ r1 r2 r4 r8 r16 r32 r64 r64
 @lilypond[]
 \score {
   \notes \relative c'' {
-        a\breve  \autoBeamOff
+    a\breve  \autoBeamOff
     a1 a2 a4 a8 a16 a32 a64 a64 
     r\longa r\breve  
     r1 r2 r4 r8 r16 r32 r64 r64 
@@ -609,6 +609,7 @@ Shortcut for
   \property Staff.clefOctavation = @var{extra transposition of clefname}
 @end example
 
+
 Any change in these properties creates a clef (A @internalsref{Clef} grob).
 
 Supported clef-names include 
@@ -640,7 +641,12 @@ G clef on 2nd line
 @end table
 
 By adding @code{_8} or @code{^8} to the clef name, the clef is
-transposed one octave down or up, respectively.
+transposed one octave down or up, respectively.  Note that you have to
+enclose @var{clefname} in quotes if you use underscores or digits in the
+name. For example,
+@example
+       \clef "G_8"
+@end example 
 
 Supported associated glyphs (for @code{Staff.clefGlyph}) are:
 
index 5bc98fe20fa9b1dc39a1df7aae277f6e65f124cd..fc88448dd451a06c3f3d5e36fc1620496e4c1a4f 100644 (file)
@@ -837,10 +837,12 @@ at @uref{http://www.ghostscript.com}.
 @unnumberedsubsec Windows users
 Windows users start the terminal by clicking on the LilyPond icon.
 Notepad is sufficient for editing the LilyPond file. Viewing the PS file
-can be done with @code{gsview32 test.ps}.  Viewing DVI files can be done
-with @code{yap test.dvi}.  The "print" button in Yap will print files.
-You can also print from the command line by executing @code{gsview32 /s
-test.ps}
+can be done with @code{gsview32 test.ps}.@footnote{ You can also view
+DVI files with @code{yap test.dvi}, but unfortunately the postscript
+interaction seems broken, meaning that you will not see slurs or beams
+in the Yap window.}  You can also print from the command line by
+executing @code{gsview32 /s test.ps}
+
 
 
 @node The first real tune
index 2df724461ad98167c8e9fe51ddfd9c4840e1883f..daa584aca59a897a3b86be4f440b446b9748a8ca 100644 (file)
@@ -19,41 +19,30 @@ users.  Please remember that we (the developers) rather dislike windows,
 and none of us use it.  Don't complain to us that installing LilyPond is
 too difficult; rather, if you know something about your Windows, send us
 code that works better (see @uref{compiling.html,compiling}).
+Nevertheless, detailed bug reports are appreciated; before you send a
+report, make sure to read the section on bugreports below. 
 
-@section Windows binary setup 
-
-Apart from LilyPond itself, you need Cygwin, GUILE, Python and a TeX
-installation, but all this software be installed by running setup.exe:
-
-@table @asis
-@item LilyPond
-Download and run
-@c let's do http, so that people read the README
-@uref{http://www.lilypond.org/gnu-windows/setup.exe, setup.exe}
-to install LilyPond.
 
-This will install the minimal set of cygwin tools needed to run
-LilyPond.  Make sure to install in the default place, @file{c:/cygwin},
-and install everything.
+@section Windows binary setup 
 
-As of version 1.3.150, you also have the option to install MiKTeX and
-GSView from this installer, which is recommended.  If you choose to
-install these by hand (see below), make sure to install them
-@strong{before} you install LilyPond, otherwise your LilyPond setup will
-be broken.
 
-If you already have cygwin installed, don't worry: nothing will be
-installed twice.  To expand on this minimal set, click
-@uref{http://sources.redhat.com/cygwin/setup.exe,here}, or visit a
-Cygwin @uref{http://sources.redhat.com/cygwin/mirrors.html,mirror site}.
-@end table
+All the software you need is installed by downloading and running
+@uref{http://www.lilypond.org/gnu-windows/setup.exe, setup.exe}.  You
+will be asked some questions. If you are unsure just click "Next".  Do
+not change the default install directory @file{c:/cygwin}.
 
+This installs LilyPond, and Cygwin, GUILE, Python, MiKTeX and GSView If
+you already have some of that software under @file{c:/cygwin}, then
+don't worry: nothing will be installed twice.
 
-@section Windows running setup
+If you want to install any of this software by hand, do this
+@strong{before} you run @file{setup.exe}, otherwise your LilyPond setup
+will not work.
 
-If you're lucky, after running @file{setup.exe} you're all set up.
+@section Testing LilyPond
 
-Open a LilyPond shell (or any bash shell), and type
+Open a LilyPond shell (To open a a lilypond shell, click the "GNU
+LilyPond" icon), and type
 
 @quotation
 @example
@@ -61,7 +50,7 @@ lilypond --help
 @end example
 @end quotation
 
-If you don't see something similar to
+You should see something similar to
 
 @quotation
 @example
@@ -79,25 +68,71 @@ Options:
 @end example
 @end quotation
 
-you should try adding @file{/usr/lilypond-x.y.z/bin} to your @var{PATH},
-do:
+Then, prepare a file called @file{foo.ly}, by issuing
+@example
+notepad foo.ly
+@end example
+Enter the following into the file
+@example
+
+\score @{ \notes @{ c4 ( ) c4 @} @}
+
+@end example
+Close the file and save it. Run the following command a few times until
+it says @code{PS output to `foo.ps', DVI output to `foo.dvi'}.
+@example
+
+ly2dvi -P foo
+
+@end example
+You can now view the file using the following command
+@example
+
+gsview32 foo.ps
+
+@end example
+
+If this works, then you can head to the
+@uref{../../user/out-www/lilypond/Tutorial.html,Tutorial} to start using
+LilyPond.
 
+
+
+@section Removing LilyPond
+
+Start @file{setup.exe}, click Next, select "Install from Local
+Directory". Then click next until you reach "Select packages to
+install". Click "View". Now, for every package, click on the recycle
+icon until it says "Uninstall". Then, click Next.
+
+(If you find this too tedious, you can also simply remove
+@file{c:/cygwin}. This also removes the @file{/home/} directories under
+cygwin (i.e. @file{C:\CYGWIN\HOME}, so make sure that you bring
+important files in safety first.)
+
+@section Troubleshooting
+
+
+@unnumberedsubsec invoking lilypond --help doesn't work
+
+Open the shell, and try adding @file{/usr/lilypond-x.y.z/bin} to your
+@var{PATH}, do:
 @quotation
 @example
 PATH=/usr/lilypond-1.4.2/bin:$PATH
 @end example
 @end quotation
 
-and try again.
-
-
-@subsection Trouble
+Now, invoke @file{lilypond --help}
 
 For problems and solutions see
 @uref{http://lilypond.org/wiki?TroubleshootingWindows,Troubleshooting
 Windows}
 
 
+
+
+@ignore
 @subsection Additional software
 
 LilyPond needs a number of software packages to be really useful.  These
@@ -141,11 +176,8 @@ Click @uref{ftp://mirror.cs.wisc.edu/pub/mirrors/ghost/AFPL/gs650/gs650w32.exe
 @uref{ftp://ftp.cs.wisc.edu/ghost/ghostgum,ftp.cs.wisc.edu}.
 or visit the
 @uref{http://www.cs.wisc.edu/~ghost/,Ghostscript, Ghostview and GSview site}.
-
 @end table
 
-
-
 [TODO:
 
 
@@ -154,9 +186,6 @@ emacs-on-cygwin setup.
 
 ]
 
-
-@ignore 
-
   guile -v
   Guile 1.4.1
 
@@ -188,4 +217,19 @@ in each corner.
 
 @end ignore
 
+@ignore
+@c irrelevant.
+
+If you want to install more of cygwnTo expand on this minimal set,
+@section If you already have MikTeX, GSView or
 
+If you already have cygwin installed, don't worry: nothing will be
+installed twice.  To expand on this minimal set, click
+@uref{http://sources.redhat.com/cygwin/setup.exe,here}, or visit a
+Cygwin @uref{http://sources.redhat.com/cygwin/mirrors.html,mirror site}.
+
+
+This will install the minimal set of cygwin tools needed to run
+LilyPond.  Make sure to install in the default place, @file{c:/cygwin},
+and install everything. 
+@end ignore
index 5ae3acbad1c26922d034d67de55cb9e7ec160b86..c8c9bd4ad697da53378757bf6f4048a24f23d8fc 100644 (file)
@@ -14,12 +14,18 @@ gsview36="/usr/windows/Ghostgum/GSview"
 # "C:\GSTOOLS\GSVIEW\gsview32.exe" "%1"
 
 
+
+## we set GS_LIB although the registry keys have been set.
+##  
+
 if [ -e "$gs550/gswin32.exe" ]; then
        PATH="$gs550:$PATH"
+    GS_LIB='C:\cygwin\usr\windows\gs\gs5.50\lib'
 fi
 
 if [ -e "$gs650/gswin32.exe" ]; then
        PATH="$gs650:$PATH"
+    GS_LIB='C:\cygwin\usr\windows\gs\gs6.50\lib'
 fi
 
 if [ -e "$gsview26/gsview32.exe" ]; then
@@ -29,3 +35,9 @@ fi
 if [ -e "$gsview36/gsview32.exe" ]; then
        PATH="$gsview36:$PATH"
 fi
+
+
+
+
+export GS_LIB 
+export PATH 
index 7fa5e4fe7ccffb7859c1dce59d6def02372f8f46..972e0c14e503a87bd52cfb9e6aeecae45c7a7e3c 100644 (file)
@@ -173,12 +173,10 @@ Compilation
           ./configure --without-kpathsea --enable-tfm-path=/usr/share/texmf/fonts/tfm/public/cm/:/usr/share/texmf/fonts/tfm/ams/symbols
 
    * pktrace, [OPTIONAL], needed for generating PostScript Type1 fonts.
-     Get it from
-     `http://www.cs.uu.nl/~hanwen/public/software/pktrace-0.1.tar.gz'
+     Get it from  `http://www.cs.uu.nl/~hanwen/pktrace/'
 
    * autotrace-0.27a, [OPTIONAL], needed for generating PostScript Type1
-     fonts. You must apply the patch included pktrace-0.1 first.
-     `http://autotrace.sourceforge.net'.
+     fonts. `http://autotrace.sourceforge.net'.
 
    * MetaPost [OPTIONAL] needed for generating PostScript Type3 fonts.
      Please note that tetex-0.4pl8 (included with Red Hat 5.x) does not
diff --git a/VERSION b/VERSION
index 58cd2a286fc66c614bab2b11e5a981cd092a6d3a..753f92fe0eba58d345daa6bad2a4675863bebe42 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=5
-PATCH_LEVEL=22
-MY_PATCH_LEVEL=jcn4
+PATCH_LEVEL=23
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index 0c965477724917b6015aaa2fa5915ce69201a6c7..18e992a57c11bb99c04324d909c2babdad670773 100644 (file)
@@ -13,7 +13,7 @@ TestedFeatures =       "beams and beamflags"
        <
 %              \property Score.beamQuantisation = #'none
                \context GrandStaff < 
-               \notes\transpose c' { 
+\context Staff = SA            \notes\transpose c' { 
 
                        \time 8/4
                        \stemUp [c8 c'' a' f']
@@ -39,7 +39,7 @@ TestedFeatures =       "beams and beamflags"
                }
        >
        <       
-               \notes { 
+\context Staff = SB            \notes { 
 \transpose c' {
                        \time 8/4
                        \stemDown [a'8 a, c e]
index 6aa569f52328c06888cb2507148170b69c5a3650..50add21ba5792cd357e6346b25a0a7de6f8f6ac8 100644 (file)
@@ -91,7 +91,7 @@ praeludiumLeft =  \notes \relative c {
 
 
 
-
+    
 fugaIIRight =  \notes   \relative c''   {
   \key e \major              % E-major
   \clef violin
@@ -202,7 +202,11 @@ fugaIIPedal =  \notes \relative c {
   \clef bass
 
   %13
-  r4 fis,4-\ltoe e4.-\lheel e'8-\rheel | 
+    \property Staff.PhrasingSlur \override #'dashed = #5.0
+    c4 \( ( d ) e\) f
+
+%    r4 fis,4-\ltoe e4.-\lheel e'8-\rheel | 
+
 % tie accs: 2nd should get no acc
 f4-\rtoe~ f8
 fis8-\rtoe fis4-\rtoe [e8-\ltoe a-\rtoe] | 
index 33a04d2f3956df291a9629a566e091179dd23dfe..bd38f9637ce5c17d9fae1d2f938fe2065c612ae0 100644 (file)
@@ -53,6 +53,8 @@ Bar::compound_barline (Grob*me, String str, Real h)
   Real fatline = gh_scm2double (me->get_grob_property ("thick-thickness"));
 
   Real staffline = me->paper_l ()->get_var ("stafflinethickness");
+  Real staffspace = me->paper_l ()->get_var ("staffspace")
+    * Staff_symbol_referencer::staff_space (me);
 
   kern *= staffline;
   thinkern *= staffline;
@@ -61,10 +63,13 @@ Bar::compound_barline (Grob*me, String str, Real h)
   
   Molecule thin = simple_barline (me, hair, h);
   Molecule thick = simple_barline (me, fatline, h);
-  Molecule colon = Font_interface::get_default_font (me)->find_by_name (
-    Staff_symbol_referencer::line_count (me) & 1 == 1 ?
-    "dots-repeatcolon" : "dots-evenrepeatcolon"
-  );
+  Molecule colon;
+  Molecule dot = Font_interface::get_default_font (me)->find_by_name ("dots-dot");
+  Real dist = (2-(Staff_symbol_referencer::line_count (me) & 1))*staffspace;
+  dot.translate_axis(dist/2,Y_AXIS);
+  colon.add_molecule(dot);
+  dot.translate_axis(-dist,Y_AXIS);
+  colon.add_molecule(dot);
 
   Molecule m;
   
index 965f6cda80a8b829bf0fa56c5fd153acbe6fd4e3..85609c295a798272175a488d70ead6c1a88b4761 100644 (file)
@@ -302,5 +302,5 @@ ENTER_DESCRIPTION(Completion_heads_engraver,
 break long notes and automatically tie them into the next measure.",
 /* creats*/       "NoteHead Dots",
 /* acks  */       "",
-/* reads */       "",
+/* reads */       "easyPlay centralCPosition measurePosition measureLength",
 /* write */       "");
index 3f35eb86b8edd66ee21dad151c9429ddb7e42bc3..4251e16c5edb9594cb8d884c6ee5728e896e018e 100644 (file)
@@ -397,7 +397,7 @@ Grob::handle_broken_grobs (SCM src, SCM criterion)
          return SCM_UNDEFINED;
        }
     }
-  else if (SCM_CONSP (src))
+  else if (ly_pair_p (src)) // SCM_CONSP (src))  // huh?
     {
       SCM oldcar =ly_car (src);
       /*
index 526214b48c46ee6f4361707e9663d196f555392d..e01fd24b30ba7330910da96325600344533ee96f 100644 (file)
@@ -261,18 +261,16 @@ prepend_load_path (String p )
 void
 init_lily_guile (String p )
 {
-  // very very ugh: LILYPONDPREFIX (a hack), if set, overrules DATADIR.
-  // DATADIR (the default) should work too!
-  prepend_load_path (DIR_DATADIR);
-  prepend_load_path (DIR_DATADIR "/scm");
-
   prepend_load_path (p);
 
   // todo: junk this. We should make real modules iso. just loading files.
   prepend_load_path (p + "/scm/");
 
+
+#if GUILE_MINOR_VERSION >= 5
   SCM last_mod = scm_current_module ();
   scm_set_current_module (scm_c_resolve_module ("guile"));
+#endif
   
   init_cxx_function_smobs ();
   for (int i=scm_init_funcs_->size () ; i--;)
@@ -281,7 +279,10 @@ init_lily_guile (String p )
   if (verbose_global_b)
     progress_indication ("\n");
   read_lily_scm_file ("lily.scm");
+
+#if GUILE_MINOR_VERSION >= 5
   scm_set_current_module (last_mod);
+#endif
 }
 
 unsigned int ly_scm_hash (SCM s)
index 036ba8895944abbbd2dd12bed515371f0d2aa64b..40af656ee39e06c0b55361966a02d799a869e349 100644 (file)
@@ -125,11 +125,14 @@ Lookup::slur (Bezier curve, Real curvethick, Real linethick)
 {
   Real alpha = (curve.control_[3] - curve.control_[0]).arg ();
   Bezier back = curve;
-
+  Offset perp = curvethick * complex_exp (Offset (0, alpha + M_PI/2)) * 0.5;
   back.reverse ();
-  back.control_[1] += curvethick * complex_exp (Offset (0, alpha + M_PI/2));
-  back.control_[2] += curvethick * complex_exp (Offset (0, alpha + M_PI/2));  
+  back.control_[1] += perp;
+  back.control_[2] += perp;
 
+  curve.control_[1] -= perp;
+  curve.control_[2] -= perp;
+  
   SCM scontrols[8];
 
   for (int i=4; i--;)
@@ -152,8 +155,12 @@ Lookup::slur (Bezier curve, Real curvethick, Real linethick)
                     ly_quote_scm (list),
                     gh_double2scm (linethick),
                     SCM_UNDEFINED));
+  Box b(curve.extent (X_AXIS),
+       curve.extent (Y_AXIS));
+
+  b[X_AXIS].unite (back.extent (X_AXIS));
+  b[Y_AXIS].unite (back.extent (Y_AXIS));
 
-  Box b (curve.extent (X_AXIS), curve.extent (Y_AXIS));
   return Molecule (b, at);
 }
 
index 39e462d9445f649d47e7c5a2927e84304169da3b..67b85396d81d8178d3405c76a03ca29058faabc3 100644 (file)
@@ -255,12 +255,12 @@ setup_paths ()
   /* Adding mf/out make lilypond unchanged source directory, when setting
      LILYPONDPREFIX to lilypond-x.y.z */
   char *suffixes[] = {"ly", "afm", "mf/out", "scm", "tfm", "ps", 0};
-  String prefix = prefix_directory;
-  if (prefix.empty_b ())
-    prefix =  DIR_DATADIR;
+
+  if (prefix_directory.empty_b ())
+    prefix_directory =  DIR_DATADIR;
   for (char **s = suffixes; *s; s++)
     {
-      String p =  prefix + to_str ('/') + String (*s);
+      String p =  prefix_directory + to_str ('/') + String (*s);
       global_path.add (p);
 
 #if !KPATHSEA
@@ -324,6 +324,7 @@ main_prog (void * , int, char**)
 
     Very ugh.
    */
+
   init_lily_guile (prefix_directory);
   cout << endl;
 
index c850a721041932d89cc7c333790a7af35de60fc7..937c0f338aaaa337dbc59d899e4b57fbecaebb7f 100644 (file)
@@ -83,11 +83,6 @@ My_lily_parser::parser_error (String s)
   exit_status_global = 1;
 }
 
-void
-My_lily_parser::set_last_duration (Duration const *d)
-{
-  default_duration_ = *d;
-}
 
 
 Input
index ae238425cd33725d1068d92ff38b246442213dd9..e3eed55cd51dfcb747b7f25003a6cdb0b567ce83 100644 (file)
@@ -139,5 +139,5 @@ ENTER_DESCRIPTION(Note_heads_engraver,
 /* descr */       "Generate one or more noteheads from Music of type Note_req.",
 /* creats*/       "NoteHead Dots",
 /* acks  */       "",
-/* reads */       "",
+/* reads */       "easyPlay centralCPosition",
 /* write */       "");
index abfed8256326a756f274791b9ea91fdcbcce84f8..24ed811878b28200c5cc8576c4ee5f8d860187bc 100644 (file)
@@ -91,7 +91,7 @@ Paper_outputter::output_comment (String str)
 void
 Paper_outputter::output_scheme (SCM scm)
 {
-  scm_apply_2 (output_func_, scm, file_, SCM_EOL);
+  gh_call2 (output_func_, scm, file_);
 }
 
 void
index 21943567633c2675e88ad215841effc835a845f8..022451ca8d30bf4bafb66a4f0a0fd245daaf756a 100644 (file)
@@ -1615,9 +1615,11 @@ optional_notemode_duration:
        }
        | multiplied_duration   {
                $$ = $1;
+               THIS->default_duration_ = *unsmob_duration ($$);
        }
        | explicit_duration {
                $$ = $1;
+               THIS->default_duration_ = *unsmob_duration ($$);
        }       
        ;
 
@@ -1630,15 +1632,11 @@ steno_duration:
                        l =  intlog2 ($1);
 
                $$ = Duration (l, $2).smobbed_copy ();
-
-               THIS->set_last_duration (unsmob_duration ($$));
        }
        | DURATION_IDENTIFIER dots      {
                Duration *d =unsmob_duration ($1);
                Duration k (d->duration_log (),d->dot_count () + $2);
                $$ = k.smobbed_copy ();
-
-               THIS->set_last_duration (unsmob_duration ($$));
        }
        ;
 
index 833241cb530df3cb45cb68f0412b32d87fd77452..ae47a7d189b24ae21fe46bb98a928805ced3d2f0 100644 (file)
@@ -45,7 +45,7 @@ Stanza_number_engraver::process_music ()
 
 
       // TODO
-      if (gh_string_p (s) || gh_pair_p (s))
+      if (gh_string_p (s))
 
        /*
          if (i.grob_l_->has_interface (symbol ("lyric-syllable-interface")))
index 3fdc1a3f71e1495885e91f863e51a64332a2d2b9..5db60e1750c93f641f14cc2021ef8475674771ac 100644 (file)
@@ -145,7 +145,8 @@ Text_engraver::stop_translation_timestep ()
   for (int i=0; i < texts_.size (); i++)
     {
       Item *ti = texts_[i];
-      Side_position_interface::add_staff_support (ti);
+      if (!to_boolean (get_property ("scriptHorizontal")))
+       Side_position_interface::add_staff_support (ti);
       typeset_grob (ti);
     }
   texts_.clear ();
index 60e1a9c2cf502ad09b3c72201faaab8be6b22970..647f03862af862e22fc398817584cd5971e7a08e 100644 (file)
@@ -149,6 +149,18 @@ in LilyPond-include-path."
   :group 'LilyPond
   :type 'string)
 
+(defcustom LilyPond-gv-command "gv -watch"
+  "Command used to display PS files."
+
+  :group 'LilyPond
+  :type 'string)
+
+(defcustom LilyPond-midi-command "timidity"
+  "Command used to play MIDI files."
+
+  :group 'LilyPond
+  :type 'string)
+
 ;; This is the major configuration variable.
 (defcustom LilyPond-command-alist
   `(
@@ -311,6 +323,42 @@ Must be the car of an entry in `LilyPond-command-alist'."
   (LilyPond-command (LilyPond-command-menu "Midi") 'LilyPond-master-file)
 )
 
+(defun LilyPond-command-formatdvi ()
+  "Format the dvi output of the current document."
+  (interactive)
+  (LilyPond-command (LilyPond-command-menu "2Dvi") 'LilyPond-master-file)
+)
+
+(defun LilyPond-command-formatps ()
+  "Format the ps output of the current document."
+  (interactive)
+  (LilyPond-command (LilyPond-command-menu "2PS") 'LilyPond-master-file)
+)
+
+(defun LilyPond-command-smartview ()
+  "View the dvi output of current document."
+  (interactive)
+  (LilyPond-command (LilyPond-command-menu "SmartView") 'LilyPond-master-file)
+)
+
+(defun LilyPond-command-view ()
+  "View the dvi output of current document."
+  (interactive)
+  (LilyPond-command (LilyPond-command-menu "View") 'LilyPond-master-file)
+)
+
+(defun LilyPond-command-viewps ()
+  "View the ps output of current document."
+  (interactive)
+  (LilyPond-command (LilyPond-command-menu "ViewPS") 'LilyPond-master-file)
+)
+
+(defun LilyPond-command-midi ()
+  "View the ps output of current document."
+  (interactive)
+  (LilyPond-command (LilyPond-command-menu "Midi") 'LilyPond-master-file)
+)
+
 ;; FIXME, this is broken
 (defun LilyPond-region-file (begin end)
   (let (
index 77e808cea163a588fecb941d1d61a9cd2027d3c4..e614e84fe3b76ebbc19938dd8555f2faa7c35f01 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Title: LilyPond
-Version: 1.5.22
-Entered-date: 09NOV01
+Version: 1.5.23
+Entered-date: 29NOV01
 Description: @BLURB@
 Keywords: music notation typesetting midi fonts engraving
 Author: hanwen@cs.uu.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys)
 Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
-       1000k lilypond-1.5.22.tar.gz 
+       1000k lilypond-1.5.23.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       1000k lilypond-1.5.22.tar.gz 
+       1000k lilypond-1.5.23.tar.gz 
 Copying-policy: GPL
 End
index e852d43d1dee87375897c016965fc4e8b569a5eb..bf2fd2f6e584b72baf42fccfeb879a28be4818a4 100644 (file)
@@ -1,5 +1,5 @@
 %define name lilypond
-%define version 1.5.22
+%define version 1.5.23
 %define release 1mdk
 
 Name: %{name}
index 95965f7f103a1932f4b21b774b8f7fa9e869e70c..4140712f8a79254afdb64dd21cec82d48edf2624 100644 (file)
@@ -1,11 +1,11 @@
 %define info yes
 
 Name: lilypond
-Version: 1.5.22
+Version: 1.5.23
 Release: 1
 License: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.22.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.23.tar.gz
 Summary: Create and print music notation 
 URL: http://www.lilypond.org/
 BuildRoot: /tmp/lilypond-install
index 4564a645bbc8b484040183d5185f6cddc18d00c1..6acea87cbb7102918b9a9a351f42be1e219ee41b 100644 (file)
 
 Distribution: SuSE Linux 7.0 (i386)
 Name: lilypond
-Version: 1.5.22
+Version: 1.5.23
 Release: 2
 Copyright:    GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.22.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.5.23.tar.gz
 # music notation software for.. ?
 Summary: A program for printing sheet music.
 URL: http://www.lilypond.org/
index 6f4667cf14e1e89b8f1ca8f86b638cc3ca58de11..9b2ae77de20f143f242253fc1c3b85f0d75095b3 100644 (file)
@@ -15,7 +15,7 @@ TEST_FILES = $(wildcard *test*.mf)
 FET_FILES = $(filter-out $(TEST_FILES),$(wildcard feta[0-9]*.mf))
 FONT_FILES = $(filter-out $(TEST_FILES),$(wildcard feta*[0-9].mf))
 
-XPM_FONTS = feta20 feta-nummer10
+XPM_FONTS = feta20 feta-nummer10 feta-braces20
 #CM_AFM_FILES = cmr10
 
 $(outdir)/cmr10.afm:
index 67199364fb9538186efe257448cdf020e7525742..5ad45c1951005b49e3b2fa329a2c11ff2fa628f8 100644 (file)
@@ -10,18 +10,4 @@ fet_beginchar("duration dot","dot", "dot")
        set_char_box(0, dot_diam#, dot_diam#/2, dot_diam#/2);
 fet_endchar;
 
-fet_beginchar("repeat dots", "repeatcolon", "repeatcolon")
-       pickup pencircle scaled dot_diam;
-       draw (dot_diam/2, staff_space/2);
-       addto currentpicture also currentpicture yscaled -1;
-       set_char_box(0, dot_diam#, staff_space#/2, staff_space#/2);
-fet_endchar;
-
-fet_beginchar("even repeat dots", "evenrepeatcolon", "evenrepeatcolon")
-       pickup pencircle scaled dot_diam;
-       draw (dot_diam/2, staff_space);
-       addto currentpicture also currentpicture yscaled -1;
-       set_char_box(0, dot_diam#, staff_space#, staff_space#);
-fet_endchar;
-
 fet_endgroup("dots");
index b3138812f30164dfaa4174dc52e00bd6acf831b3..25255e3f2886171b41417498a05da2e240822ed0 100644 (file)
@@ -1,11 +1,9 @@
 (define-module (scm ascii-script)
-  :export (as-output-expression)
-  :no-backtrace
   )
 
 (define this-module (current-module))
 
-(define (as-output-expression expr port)
+(define-public (as-output-expression expr port)
   (display (eval expr this-module) port)
   )
 
index 8922fef0eaed20729c3dca70db49e167bf9cdd88..5f10a15e7c704fa54d1903f59104cfd5ddd80939 100644 (file)
 ))
 
 
-
-
 (define (find-dumper format )
   (let*
       ((d (assoc format output-alist)))
           "sketch.scm"
           "pdf.scm"
           "pdftex.scm"
-          "ascii-script.scm"
           "c++.scm"
           "grob-property-description.scm"
           "translator-property-description.scm"
 
 
 
+1
index f469ec7ac9a308679542ac94ac1e7955e5e0f90b..6af36d6ab7a897bb502b69a484f47c814c7f2d15 100644 (file)
@@ -8,20 +8,27 @@
 
 
 (define-module (scm ps)
-  :export (ps-output-expression)
-  :no-backtrace
   )
 
 (define this-module (current-module))
 
-(define (ps-output-expression expr port)
-  (display (eval expr this-module) port)
-  )
+(debug-enable 'backtrace)
+
+(if (or (equal? (minor-version) "4")
+       (equal? (minor-version) "3.4"))
+    (define-public (ps-output-expression expr port)
+      (display (eval-in-module expr this-module) port )
+      )
+
+    (define-public (ps-output-expression expr port)
+      (display (eval expr this-module) port )
+      )
+    )
 
  
 (use-modules
  (guile)
- (guile-user))
+)
 
 
 
index e999e00d257dad970f91543c3d7ae8e7f79bab85..e62575af535daeafefd88d3bc86b70b0c1e2f6db 100644 (file)
@@ -8,19 +8,16 @@
 
 
 (define-module (scm pysk)
-  :export (pysk-output-expression)
-  :no-backtrace
   )
 
 (use-modules (scm ps)
             (ice-9 regex)
             (ice-9 string-fun)
-            (guile-user)
             (guile)
             )
 
 (define this-module (current-module))
-(define (pysk-output-expression expr port)
+(define-public (pysk-output-expression expr port)
   (display (pythonify expr) port )
   )
 
index 6a7660dbb7cf7a2474dae326f98818a9c9acc473..c5417abeabe99a810a3f7f7e0105af51e5fc9f29 100644 (file)
    "Fs(20)\n"
    ;; chars > 128 don't work yet
    (format #f "txt('\\~o',(" (modulo i 128))
-;;   (format #f "txt('\\~o',(" i)
-;;   "txt('" (ascii->string i) "',("
-;;         "char(" ,(number->string i)  ",("
+   ;;      "char(" ,(number->string i)  ",("
    (sketch-numbers->string (map mul-scale (list x y)))
    "))\n"))
 
index 01880f90f64e7a28f950b0916b50290c5ceee252..072ed76ecede1241b2d85a716b866b3747798f5a 100644 (file)
@@ -6,16 +6,12 @@
 ;;; Han-Wen Nienhuys <hanwen@cs.uu.nl>
 
 
-(define-module (scm tex)
-  :export (tex-output-expression)
-  :no-backtrace
-  )
-
+(define-module (scm tex) )
+(debug-enable 'backtrace)
 (use-modules (scm ps)
             (ice-9 regex)
             (ice-9 string-fun)
             (ice-9 format)
-            (guile-user)
             (guile)
             )
 
@@ -87,7 +83,7 @@
   (embedded-ps (list 'bracket  arch_angle arch_width arch_height height arch_thick thick)))
 
 (define (dashed-slur thick dash l)
-  (embedded-ps (list 'dashed-slur   thick dash l)))
+  (embedded-ps (list 'dashed-slur thick dash `(quote ,l))))
 
 (define (hairpin thick w sh eh)
   (embedded-ps (list 'hairpin thick w sh eh))
   ""
   )
 
-
 (define (embedded-ps expr)
   (let
       ((os (open-output-string)))
 ;;
 ;; need to do something to make this really safe.
 ;;
-(define (output-tex-string s)
+(define-public (output-tex-string s)
   (if security-paranoia
       (if use-regex
          (regexp-substitute/global #f "\\\\" s 'pre "$\\backslash$" 'post)
                                        ; no-origin not yet supported by Xdvi
 (define (no-origin) "")
 
-(define (tex-output-expression expr port)
-  (display (eval expr this-module) port )
+(define my-eval-in-module eval)
+
+(if (or (equal? (minor-version) "4")
+       (equal? (minor-version) "3.4"))
+    (begin
+      (set! my-eval-in-module eval-in-module)
+
+    ))
+
+(define-public (tex-output-expression expr port)
+  (display (my-eval-in-module expr this-module) port )
   )
+
index bd7963dbb5deecebd7889186940e07e42a3c9391..97abc27d8d842975ef3b731bae4e07629e887a3d 100644 (file)
@@ -301,7 +301,7 @@ help with debugging large scores.")
 (translator-property-description 'squashedPosition integer? " Vertical position of
 squashing for Pitch_squash_engraver.")
 (translator-property-description 'stavesFound list? "list of all staff-symbols found.")
-(translator-property-description 'stanza markup? "Stanza `number' to print at start of a verse. Use in LyricsVoice context.")
+(translator-property-description 'stanza string? "Stanza `number' to print at start of a verse. Use in LyricsVoice context.")
 
 
 (translator-property-description 'stemLeftBeamCount integer? "
index 23aa46d3977c9df9c39fd87349449dac56bfbaab..af8cbf877c8b810b10e0b4813c2416e22859dfc9 100644 (file)
@@ -1269,6 +1269,12 @@ Options:
   
 This program converts ABC music files (see
 http://www.gre.ac.uk/~c.walshaw/abc2mtex/abc.txt) To LilyPond input.
+
+
+Report bugs to bug-gnu-music@gnu.org
+
+Written by Han-Wen Nienhuys <hanwen@cs.uu.nl>, Laura Conrad
+<lconrad@laymusic.org>, Roy Rankin <Roy.Rankin@@alcatel.com.au>
 """
 
 def print_version ():
index f80334bc14d7dac35c0f4953e79d63b7ca4c8d8d..36976017a4240744ac4547d1bc61d8f66d257760 100644 (file)
@@ -1,7 +1,7 @@
 #!@PYTHON@
 
 # info mostly taken from looking at files. See also
-# http://www.cs.uu.nl/~hanwen/lily-devel/etf.html
+# http://lilypond.org/wiki/?EnigmaTransportFormat
 
 # This supports
 #
@@ -24,7 +24,7 @@
 #  * dynamics
 #  * empty measures (eg. twopt03.etf from freenote)
 #
-# 
+
 
 program_name = 'etf2ly'
 version = '@TOPLEVEL_VERSION@'
index 1686b60c6c29f0ceecc1325e410c239e19b2382a..efd48214a34096cda1404358694c4b12cbfc28a1 100644 (file)
 #       geometry.sty and article.cls. Give me a hint, and I'll
 #       fix it.)
 
+#
+# TODO: magnification support should also work for texinfo -> html: eg. add as option to dvips. 
+# 
+
 # This is was the idea for handling of comments:
 #      Multiline comments, @ignore .. @end ignore is scanned for
 #      in read_doc_file, and the chunks are marked as 'ignore', so
@@ -31,6 +35,8 @@
 #      The the rest of the rexeces are searched for. They don't have to test
 #      if they are on a commented out line.
 
+
+
 import os
 import stat
 import string
@@ -927,16 +933,6 @@ def process_lilypond_blocks(outname, chunks):#ugh rename
        return newchunks
 
 
-def find_eps_dims (match):
-       "Fill in dimensions of EPS files."
-       
-       fn =match.group (1)
-       dims = bounding_box_dimensions (fn)
-       if g_outdir:
-               fn = os.path.join(g_outdir, fn)
-       
-       return '%ipt' % dims[0]
-
 
 def system (cmd):
        sys.stderr.write ("invoking `%s'\n" % cmd)
@@ -955,19 +951,20 @@ def get_bbox (filename):
                if m:
                        gr = map (string.atoi, m.groups ())
                        break
-
+       
        return gr
 
 def make_pixmap (name):
        bbox = get_bbox (name + '.eps')
-
+       margin = 3
        fo = open (name + '.trans.eps' , 'w')
-       fo.write ('%d %d translate\n' % (-bbox[0], -bbox[1]))
+       fo.write ('%d %d translate\n' % (-bbox[0]+margin, -bbox[1]+margin))
        fo.close ()
        
        res = 90
-       x = (bbox[2] - bbox[0]) * res / 72.
-       y = (bbox[3] - bbox[1]) * res / 72.
+
+       x = (2* margin + bbox[2] - bbox[0]) * res / 72.
+       y = (2* margin + bbox[3] - bbox[1]) * res / 72.
 
        cmd = r"""gs -g%dx%d -sDEVICE=pgm  -dTextAlphaBits=4 -dGraphicsAlphaBits=4  -q -sOutputFile=- -r%d -dNOPAUSE %s %s -c quit | pnmtopng > %s"""
        
@@ -1187,14 +1184,31 @@ def check_texidoc (chunks):
                n.append (c)
        return n
 
+
+## what's this? Docme --hwn
+##
 def fix_epswidth (chunks):
        newchunks = []
        for c in chunks:
-               if c[0] == 'lilypond' and 'eps' in c[2]:
-                       body = re.sub (r"""\\lilypondepswidth{(.*?)}""", find_eps_dims, c[1])
-                       newchunks.append(('lilypond', body, c[2], c[3], c[4]))
-               else:
+               if c[0] <> 'lilypond' or 'eps' not in c[2]:
                        newchunks.append (c)
+                       continue
+
+               mag = 1.0
+               for o in c[2]:
+                       m  = re.match ('magnification=([0-9.]+)', o)
+                       if m:
+                               mag = string.atof (m.group (1))
+
+               def replace_eps_dim (match, lmag = mag):
+                       filename = match.group (1)
+                       dims = bounding_box_dimensions (filename)
+
+                       return '%fpt' % (dims[0] *lmag)
+       
+               body = re.sub (r"""\\lilypondepswidth{(.*?)}""", replace_eps_dim, c[1])
+               newchunks.append(('lilypond', body, c[2], c[3], c[4]))
+                       
        return newchunks
 
 
index c8ac68ce3cd5fedc72f893cbac15729bbeafffe1..22a9a2245b65a1ba14e94fd69198ba53f546423f 100644 (file)
@@ -414,7 +414,7 @@ def run_lilypond (files, outbase, dep_prefix):
                if dep_prefix:
                        opts = opts + ' --dep-prefix=%s' % dep_prefix
 
-       fs = '"' + string.join (files, '" "') + '"'
+       fs = string.join (files)
 
        if not verbose_p:
                # cmd = cmd + ' 1> /dev/null 2> /dev/null'
@@ -613,7 +613,6 @@ None
        f.write (s)
        f.close ()
 
-       # FIXME: howto escape spaces in file names?
        cmd = 'latex \\\\nonstopmode \\\\input %s' % latex_fn
 
        if not verbose_p:
@@ -639,7 +638,7 @@ None.
        if extra['orientation'] and extra['orientation'][0] == 'landscape':
                opts = opts + ' -tlandscape'
 
-       cmd = 'dvips "%s" -o"%s" "%s"' % (opts, outbase + '.ps', outbase + '.dvi')
+       cmd = 'dvips %s -o%s %s' % (opts, outbase + '.ps', outbase + '.dvi')
        
        if not verbose_p:
                progress ( _("Running %s...") % 'dvips')
index 76d9068fe52710bd0d638c5c1de8777e64cdf423..3ff0442234b070a61a32223c18b5e67e6e8068ec 100644 (file)
@@ -31,19 +31,7 @@ import string
 import sys
 import __main__
 
-
-# if set, LILYPONDPREFIX must take prevalence
-# if datadir is not set, we're doing a build and LILYPONDPREFIX 
-datadir = '@datadir@'
-if os.environ.has_key ('LILYPONDPREFIX') \
-   or '@datadir@' == '@' + 'datadir' + '@':
-       datadir = os.environ['LILYPONDPREFIX']
-else:
-       datadir = '@datadir@'
-
-sys.path.append (os.path.join (datadir, 'python'))
-sys.path.append (os.path.join (datadir, 'python/out'))
-
+package_name = 'lilypond'
 program_name = 'build-lily'
 program_version = '@TOPLEVEL_VERSION@'
 
@@ -105,7 +93,182 @@ option_definitions = [
        ('', 'w', 'warranty', _ ("show warranty and copyright")),
        ]
 
-from lilylib import *
+
+################################################################
+# lilylib.py -- options and stuff
+# 
+# source file of the GNU LilyPond music typesetter
+
+import os
+
+try:
+       import gettext
+       gettext.bindtextdomain ('lilypond', localedir)
+       gettext.textdomain ('lilypond')
+       _ = gettext.gettext
+except:
+       def _ (s):
+               return s
+
+if program_version == '@' + 'TOPLEVEL_VERSION' + '@':
+       program_version = '1.5.17'
+
+def identify ():
+       sys.stdout.write ('%s (GNU LilyPond) %s\n' % (program_name, program_version))
+
+def warranty ():
+       identify ()
+       sys.stdout.write ('\n')
+       sys.stdout.write (_ ('Copyright (c) %s by' % ' 2001'))
+       sys.stdout.write ('\n')
+       sys.stdout.write ('  Han-Wen Nienhuys')
+       sys.stdout.write ('  Jan Nieuwenhuizen')
+       sys.stdout.write ('\n')
+       sys.stdout.write (_ (r'''
+Distributed under terms of the GNU General Public License. It comes with
+NO WARRANTY.'''))
+       sys.stdout.write ('\n')
+
+def progress (s):
+       errorport.write (s + '\n')
+
+def warning (s):
+       progress (_ ("warning: ") + s)
+               
+def error (s):
+
+
+       '''Report the error S.  Exit by raising an exception. Please
+       do not abuse by trying to catch this error. If you do not want
+       a stack trace, write to the output directly.
+
+       RETURN VALUE
+
+       None
+       
+       '''
+       
+       progress (_ ("error: ") + s)
+       raise _ ("Exiting ... ")
+
+def getopt_args (opts):
+       '''Construct arguments (LONG, SHORT) for getopt from  list of options.'''
+       short = ''
+       long = []
+       for o in opts:
+               if o[1]:
+                       short = short + o[1]
+                       if o[0]:
+                               short = short + ':'
+               if o[2]:
+                       l = o[2]
+                       if o[0]:
+                               l = l + '='
+                       long.append (l)
+       return (short, long)
+
+def option_help_str (o):
+       '''Transform one option description (4-tuple ) into neatly formatted string'''
+       sh = '  '       
+       if o[1]:
+               sh = '-%s' % o[1]
+
+       sep = ' '
+       if o[1] and o[2]:
+               sep = ','
+               
+       long = ''
+       if o[2]:
+               long= '--%s' % o[2]
+
+       arg = ''
+       if o[0]:
+               if o[2]:
+                       arg = '='
+               arg = arg + o[0]
+       return '  ' + sh + sep + long + arg
+
+
+def options_help_str (opts):
+       '''Convert a list of options into a neatly formatted string'''
+       w = 0
+       strs =[]
+       helps = []
+
+       for o in opts:
+               s = option_help_str (o)
+               strs.append ((s, o[3]))
+               if len (s) > w:
+                       w = len (s)
+
+       str = ''
+       for s in strs:
+               str = str + '%s%s%s\n' % (s[0], ' ' * (w - len(s[0])  + 3), s[1])
+       return str
+
+def help ():
+       ls = [(_ ("Usage: %s [OPTION]... FILE") % program_name),
+               ('\n\n'),
+               (help_summary),
+               ('\n\n'),
+               (_ ("Options:")),
+               ('\n'),
+               (options_help_str (option_definitions)),
+               ('\n\n'),
+               (_ ("Report bugs to %s") % 'bug-lilypond@gnu.org'),
+               ('\n')]
+       map (sys.stdout.write, ls)
+       
+def setup_temp ():
+       """
+       Create a temporary directory, and return its name. 
+       """
+       global temp_dir
+       if not keep_temp_dir_p:
+               temp_dir = tempfile.mktemp (program_name)
+       try:
+               os.mkdir (temp_dir, 0777)
+       except OSError:
+               pass
+
+       return temp_dir
+
+
+def system (cmd, ignore_error = 0):
+       """Run CMD. If IGNORE_ERROR is set, don't complain when CMD returns non zero.
+
+       RETURN VALUE
+
+       Exit status of CMD
+       """
+       
+       if verbose_p:
+               progress (_ ("Invoking `%s\'") % cmd)
+       st = os.system (cmd)
+       if st:
+               name = re.match ('[ \t]*([^ \t]*)', cmd).group (1)
+               msg = name + ': ' + _ ("command exited with value %d") % st
+               if ignore_error:
+                       warning (msg + ' ' + _ ("(ignored)") + ' ')
+               else:
+                       error (msg)
+
+       return st
+
+
+def cleanup_temp ():
+       if not keep_temp_dir_p:
+               if verbose_p:
+                       progress (_ ("Cleaning %s...") % temp_dir)
+               shutil.rmtree (temp_dir)
+
+
+def strip_extension (f, ext):
+       (p, e) = os.path.splitext (f)
+       if e == ext:
+               e = ''
+       return p + e
+
 
 
 notify = 0
@@ -274,6 +437,7 @@ for opt in options:
                pass
        elif o == '--help' or o == '-h':
                help ()
+               sys.exit (0)
        elif o == '--buid-root' or o == '-b':
                build_root = a
        elif o == '--command' or o == '-c':
index b8d78cf76f178689d6ac4a1b00bb8a5482d790a7..eb2e55b1ab55b2e87d4659eadb287cee56c32b8f 100644 (file)
@@ -33,6 +33,12 @@ $(outdir)/%.pfb:
 
 
 
+
+
+$(outdir)/%.pfb: 
+       pktrace  $(basename $(@F))
+       mv $(basename $(@F)).pfb $(outdir)
+
 #%.afm:
 #      $(SHELL) $(depth)/buildscripts/tfmtoafm.sh $(shell basename $@ .afm)
 #      mv $@ $@.in