]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.4.9 release/1.4.9
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 20 Nov 2001 17:43:00 +0000 (18:43 +0100)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Tue, 20 Nov 2001 17:43:00 +0000 (18:43 +0100)
==========

* More flexible lyric alignment:
  - new properties "alignment", "ignore-length-mismatch", "begin-alignment" an\d "end-alignment" to control non-centered lyric alignment

1.4.8.h

69 files changed:
CHANGES
Documentation/footer.html.in
Documentation/header.html.in
Documentation/topdocs/INSTALL.texi
Documentation/user/refman.itely
Documentation/windows/installing.texi
INSTALL.txt
VERSION
buildscripts/lilypond-login.sh
configure
debian/changelog
debian/control
debian/control.foka
debian/control.potato
debian/lilypond1.3.copyright
debian/rules
input/emacs-lily.fly [deleted file]
input/regression/lyric_align.ly [new file with mode: 0644]
input/test/beam-pos.ly
input/test/beams.ly
lily/lily-guile.cc
lily/lookup.cc
lily/musical-request.cc
lily/my-lily-parser.cc
lily/paper-outputter.cc
lily/parser.yy
lily/syllable-group.cc
lily/text-engraver.cc
lilypond-font-lock.el
lilypond-init.el
lilypond-mode.el
ly/init-as.fly [deleted file]
ly/init.fly [deleted file]
ly/init.sly [deleted file]
make/lilypond-vars.make
make/lilypond.redhat.spec.in
make/mutopia-targets.make
make/mutopia-vars.make
make/out/lilypond.lsm
make/out/lilypond.redhat.spec
make/out/lilypond.suse.spec
mf/GNUmakefile
po/da.po
po/de.po
po/fr.po
po/it.po
po/ja.po
po/lilypond.pot
po/nl.po
po/ru.po
po/sv.po [new file with mode: 0644]
scm/basic-properties.scm
scm/beam.scm
scm/grob-description.scm
scm/grob-property-description.scm
scm/interface-description.scm
scm/lily.scm
scm/translator-description.scm
scripts/abc2ly.py
scripts/as2text.scm
scripts/etf2ly.py
scripts/lilypond-book.py
scripts/ly2dvi.py
scripts/update-lily.py
stepmake/bin/add-html-footer.py
stepmake/stepmake/metafont-rules.make
stepmake/stepmake/metafont-targets.make
tex/lily-ps-defs.tex
tex/lilyponddefs.tex

diff --git a/CHANGES b/CHANGES
index 0d336259300d9c6e96b1a64ead4b8904f0db8493..e397b74e5a7a500fb7232243448e6d6ba561d782 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,46 +1,55 @@
---- ../lilypond-1.4.8.jcn2/CHANGES     Mon Nov 12 15:35:25 2001
-++ b/CHANGES   Wed Nov 14 09:11:12 2001
-@@ -1,5 +1,7 @@
--1.4.8.jcn2
-1.4.8.jcn3
- ==========
+1.4.8.moh2
+==========
 
-* Dropped-in fixed c++ midi2ly from 1.5.
- * Backported lilypond-login.sh fixes.
- --- ../lilypond-1.4.8.jcn1/CHANGES    Mon Oct  1 13:45:09 2001
-++ b/CHANGES   Mon Nov 12 15:35:25 2001
-@@ -1,7 +1,11 @@
--1.4.8.jcn1
-1.4.8.jcn2
- ==========
-* Backported lilypond-login.sh fixes.
+* More flexible lyric alignment:
+  - new properties "alignment", "ignore-length-mismatch", "begin-alignment" an\d "end-alignment" to control non-centered lyric alignment
 
- * Backported more guile > 1.4 compatibility stuff.
 
-* Backported ly2dvi resource fix for windows.
- 1.4.8
- =====--- ../lilypond-1.4.8/CHANGES    Wed Oct 17 09:25:04 2001
-++ b/CHANGES   Wed Oct 17 10:55:11 2001
-@@ -1,3 +1,12 @@
-1.4.8.moh1
+1.4.8.hwn2
 ==========
 
-* new property "end-alignment" to control non-centered lyric alignment
+* Bugfix: neutral direction of Beam
 
+* Makefile rules for pktrace.
 
-1.4.8
-=====
+* logout message for redhat spec
+
+* links from refman to internal doco.
+
+* search link on the webpage.
+
+* Fast pixmap crop for lilypond-book.
+
+* Add Percent_repeat_engraver description.
+
+* Guile 1.5.4 compatibility now working.
 
- 1.4.7.jcn2
- ==========
- 1.4.8.jcn1
+* ly2dvi.py: resource import.
+
+* Mats' fixes for Miktex and PS output.
+
+* Bugfix for scriptHorizontal.
+
+* Change default duration behavior: copy duration fraction fields as
+well. Incompatible change: \tempo doesn't set default duration
+
+* Updates from 1.5 for ly2dvi, etf2ly, abc2ly, emacs, rest/skip documentation
+
+* Bugfix: be strict about slur dimensions. 
+
+* Bugfix: insert extra margin around pixmaps in lilpyond-book.
+
+* lilypond-book: magnification option for EPS
+
+1.4.8.jcn3
 ==========
 
+* Dropped-in fixed c++ midi2ly from 1.5.
+  
 * Backported more guile > 1.4 compatibility stuff.
 
+* Danish and Swedish .po files
+
 1.4.8
 =====
 
@@ -71,7 +80,7 @@
 
 * Backported compatibility fixes for GUILE 1.5
 
-* default-neutral-direction -> neutral-direction
+* Change default-neutral-direction to neutral-direction everywhere.
 
 * Danish .po file.
 
index cfb235d2774102d3aefbb858230498a8f9991160..e29ed0496062d75783a4621dc45a6d220106c507 100644 (file)
@@ -25,7 +25,6 @@ Please send GNU LilyPond questions and comments to
 
 Please send comments on these web pages to 
 <a href="mailto:@MAILADDRESS@"><em>@MAILADDRESS@</em></a>
-
 <p>
 
 Copyright (c) 1997--2001 Han-Wen Nienhuys and Jan Nieuwenhuizen.
index 481ad838c6043f8826b0d79080fd97f20b2e1ffb..7e33d9b00241b072ca3a8e17e77bc2ec55dbb7dd 100644 (file)
@@ -49,8 +49,8 @@ which substitutes some @AT_VARIABLES@ as well.
        <b>Download </b>
       </td></tr>
       <tr><td><font size="-1">
-       <a href="@TOP@Documentation/topdocs/out-www/INSTALL.html#download-binaries">Linux</a><br>
-       <a href="@TOP@Documentation/windows/out-www/installing.html">Windows</a><br>
+       <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">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">
@@ -68,6 +68,7 @@ which substitutes some @AT_VARIABLES@ as well.
       </td></tr>
       <tr><td><font size="-1">
        <a href="@TOP@Documentation/topdocs/out-www/README.html#mailing-lists">Mailing lists</a><br>
+        <a href="http://www.lilypond.org/search/">Search</a><br>
         <a href="http://www.lilypond.org/wiki/">WikiWiki</a><br>
        <a href="http://www.lilypond.org/wiki?LilyPondFaqs">FAQs</a><br>        
        <br>
index ed10f24052145f97a2637396daa4aad2b7e583c7..96886c203c37e85561cbf44af603baf65ebe987c 100644 (file)
@@ -481,7 +481,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
@@ -493,15 +493,31 @@ Bugs that are not fault of LilyPond are documented here.
 @unnumberedsubsec Debian GNU/Linux unstable gcc-3.0
 
 Flex (2.5.4a-11) in unstable does not produce g++-3.0 compliant C++
-code.  To compile LilyPond with gcc-3.0 you may do:
+code.  To compile LilyPond with gcc-3.0, please first upgrade to
+flex_2.5.4a-13 or newer.  Otherwise, 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
         make conf=gcc-3.0 -C lily
 @end example
 
+@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 4df8e41c5a95da2e3563d13c33b3c39dcbba9148..25e1c229def1e6e93239b98e135dd9939845d4b6 100644 (file)
 
 @end macro
 
+@ifhtml
+@macro internalsref{NAME}
+@uref{../lilypond-internals/\NAME\.html,\NAME\}
+@cindex \NAME\
+@end macro
+@macro seeinternals{NAME}
+See @internalsref{\NAME\}
+@end macro
+@end ifhtml
+
+
+@ifnothtml
+@macro seeinternals{NAME}
+@end macro
+@macro internalsref{NAME}
+\NAME\
+@cindex \NAME\
+
+@end macro
+@end ifnothtml
 
 @c .{Reference Manual}
 
@@ -151,6 +171,8 @@ question mark `@code{?}' after the pitch.
   cis' d' e' cis'  c'? d' e' c'!
 @end lilypond
 
+The grob for a note head is called @internalsref{NoteHead}.
+
 
 @c .  {Pitches}
 @node Pitches
@@ -219,26 +241,51 @@ octave; each @code{,} lowers the pitch by an octave.
 @subsection Rests
 @cindex Rests
 
-Rests are entered like notes, with note name `@code{r}'. The grob is
-@code{Rest}. Whole bar rests centered in the bar are specified using
-@code{R}, see @ref{Multi measure rests}.
+A rest is entered like a note, with note name `@code{r}':
 
+@lilypond[singleline,verbatim]
+r1 r2 r4 r8
+@end lilypond
+
+The grob is @internalsref{Rest}. Whole bar rests centered in the bar are
+specified using @code{R}, see @ref{Multi measure rests}.
 
 @c .  {Skips}
 @node Skips
 @subsection Skips
 @cindex Skip
 
+An invisible rest, or skip, can be entered like a note with note name
+`@code{s}':
 
-@example
-  \skip @var{duration} 
-  s@var{duration}
-@end example
-@cindex @code{\skip}
+@lilypond[singleline,verbatim]
+a2 s4 a4 s1 a4
+@end lilypond
 
-Skips the amount of time specified by @var{duration}.  If no other music
-is played, a gap will be left for the skipped time without any notes
-printed.  The shorthand is only available in Note and Chord mode.
+Actually, this is a shorthand for the @code{\skip} command, and it is
+only available in Note mode and Chord mode.
+
+@c FIXME: in lyrics mode, we have " " and _
+
+In Lyrics mode, you can use `@code{" "}' and `@code{_}':
+@lilypond[singleline,verbatim]
+<
+  \context Lyrics \lyrics { lah2 di4 " " dah2 _4 di }
+  \notes\relative c'' { a2 a4 a a2 a4 a }
+>
+@end lilypond
+
+The unabbreviated `@code{\skip} @var{duration}' also works outside of
+note mode:
+
+@lilypond[singleline,verbatim]
+\score {
+  \context Staff <
+    { \time 4/8 \skip 2 \time 4/4 } 
+    \notes\relative c'' { a2 a1 }
+  >
+}
+@end lilypond
 
 @c .  {Durations}
 @node Durations
@@ -271,7 +318,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 
@@ -351,7 +398,8 @@ exactly the same concept.
 \time 3/4 c'2. c'2 ~ c'4
 @end lilypond
 
-The name of the tie grob is  @code{Voice.Tie}.
+The name of the tie grob is  @internalsref{Tie}. It is usually created
+in the @internalsref{Voice} context.
 
 @refbugs
 
@@ -423,7 +471,7 @@ The typesetting of brackets and numbers is controlled by the properties
 @cindex @code{tupletNumberFormatFunction}
 @cindex tuplet formatting 
 
-Tuplet brackets are printed as @code{TupletBracket} grobs
+Tuplet brackets are printed as @internalsref{TupletBracket} grobs
 
 @c .  {Defining pitch names}
 @node Defining pitch names
@@ -459,12 +507,12 @@ Hal-Leonard Inc.  music publishers.
 @lilypond[singleline,verbatim]
 \include "paper23.ly"
 \score {
-        \notes { c'2 e'4 f' | g'1 }
-        \paper { \translator { \EasyNotation } } 
+  \notes { c'2 e'4 f' | g'1 }
+  \paper { \translator { \EasyNotation } } 
 }
 @end lilypond
 
-Note that @code{EasyNotation} overrides a @code{Score} context.  You
+Note that @code{EasyNotation} overrides a @internalsref{Score} context.  You
 probably will want to print it with magnification to make it more
 readable, see @ref{Output scaling}.
 
@@ -525,7 +573,7 @@ This command sets the context property @code{Staff.keySignature}.
 Non-standard key signatures can be specified by setting this property
 directly, see the generated documentation for @rgrob{KeySignature}.
 
-The printed signature is a @code{KeySignature} grob.
+The printed signature is a @internalsref{KeySignature} grob.
 
 @cindex @code{keySignature}
 
@@ -547,7 +595,7 @@ Shortcut for
   \property Staff.clefOctavation = @var{extra transposition of clefname}
 @end example
 
-Any change in these properties creates a clef (a @code{Clef} grob).
+Any change in these properties creates a clef (a @internalsref{Clef} grob).
 
 Supported clef-names include 
 
@@ -653,7 +701,7 @@ should be inserted, and how automatic beams should be
 generated.
 
 Changing the value of @code{timeSignatureFraction} also causes a
-fraction to be printed. This grob is @code{TimeSignature}.
+fraction to be printed. This grob is @internalsref{TimeSignature}.
 
 The actual symbol that's printed can be customized with the style
 property.
@@ -771,7 +819,7 @@ a measure it is set to @code{defaultBarType}. The contents of
 @code{\bar  }.  These settings take precedence over the automatic
 @code{whichBar} settings. 
 
-@code{BarLine} grobs are created by the @code{Bar_engraver}.
+@internalsref{BarLine} grobs are created by the @internalsref{Bar_engraver}.
 
 @c .   {Polyphony}
 @node Polyphony
@@ -791,7 +839,7 @@ When there are more than two voices on a staff, you must also indicate
 which voice should moved horizontally in case of a collision. This can
 be done with the identifiers @code{\shiftOff}, @code{\shiftOn},
 @code{\shiftOnn}, etc. (which sets the grob property @code{horizontal-shift}
-in @code{NoteColumn}).
+in @internalsref{NoteColumn}).
 
 @lilypond[fragment, verbatim]
   \context Staff \notes\relative c''<
@@ -845,11 +893,9 @@ LilyPond also vertically shifts rests that are opposite of a stem.
 @end lilypond
 
 Note head collisions (horizontal shifting of note heads) are handled by
-the @code{NoteCollision} grob. @code{RestCollision} handles vertical
-shifting of rests.
+the @internalsref{NoteCollision} grob. @internalsref{RestCollision}
+handles vertical shifting of rests.
 
-@cindex @code{NoteCollision}
-@cindex @code{RestCollision}
 
 
 @refbugs
@@ -996,7 +1042,7 @@ property, it's value will be used only once, and then it is erased.
 @end lilypond
 @cindex @code{stemRightBeamCount}
 
-The beam symbol (grob @code{Voice.Beam}, both for automatic and manual
+The beam symbol (grob @internalsref{Beam}, both for automatic and manual
 beams) can be tweaked through grob-properties @code{height} and
 @code{staff-position}. These specify vertical location and vertical
 span. Both are measured in half staff-spaces, @code{staff-position=0}
@@ -1048,8 +1094,9 @@ They are entered using parentheses:
 Slurs avoid crossing stems, and are generally attached to note heads.
 However, in some situations with beams, slurs may be attached to stem
 ends.  If you want to override this layout you can do this through the
-@code{Voice.Slur}'s grob-property @code{attachment}. It's value is a
-pair of symbols, specifying the attachment type of the left and right end points.
+@internalsref{Slur}'s grob-property @code{attachment}. It's value is a
+pair of symbols, specifying the attachment type of the left and right
+end points.
 
 @lilypond[fragment,relative,verbatim]
   \property Voice.Slur \set #'direction = #1
@@ -1075,11 +1122,12 @@ stems might look better:
 Similarly, the curvature of a slur is adjusted to stay clear of note
 heads and stems.  When that would increase the curvature too much, the
 slur is reverted to its default shape.  The threshold for this decision
-is in @code{Voice.Slur}'s grob-property @code{beautiful}.  It is loosely
-related to the enclosed area between the slur and the notes.  Usually,
-the default setting works well, but in some cases you may prefer a
-curved slur when LilyPond decides for a vertically moved one.  You can
-indicate this preference by increasing the @code{beautiful} value:
+is in @internalsref{Slur}'s grob-property @code{beautiful}.  It is
+loosely related to the enclosed area between the slur and the notes.
+Usually, the default setting works well, but in some cases you may
+prefer a curved slur when LilyPond decides for a vertically moved one.
+You can indicate this preference by increasing the @code{beautiful}
+value:
 
 @lilypond[verbatim,singleline,relative]
   \property Voice.Beam \override #'direction = #-1
@@ -1112,18 +1160,19 @@ respectively.
 @end lilypond
 
 Typographically, the phrasing slur behaves almost exactly like a normal
-slur. The grob associated with it is @code{Voice.PhrasingSlur}.
+slur. The grob associated with it is @internalsref{PhrasingSlur}.
 
 @node Breath marks
 @subsection Breath marks
 
 Breath marks are entered using @code{\breathe}.  The result is a
-@code{Voice.BreathingSign} grob.
+@internalsref{BreathingSign} grob.
 
 @lilypond[fragment,relative]
 c'4 \breathe d4
 @end lilypond
 
+Note that the skip does not produce any output, not even transparent output.
 
 
 
@@ -1169,9 +1218,9 @@ is as follows:
 \spanrequest \start "text"
 \spanrequest \stop "text"
 @end example
-LilyPond will respond by creating a @code{Voice.TextSpanner} grob.  The
-string to be printed, as well as the style is set through grob
-properties.
+LilyPond will respond by creating a @internalsref{TextSpanner} grob (typically
+in @internalsref{Voice} context).  The string to be printed, as well as the
+style is set through grob properties.
 
 An application---or rather, a hack---is to fake octavation indications.
 @lilypond[fragment,relative,verbatim]
@@ -1287,7 +1336,7 @@ accesses a script definition from the table:
 Usually the @code{\script} keyword is not used directly.  Various
 helpful identifier definitions appear in @file{script.ly}.
 
-Grobs for these objects are @code{Script} and @code{Fingering}.
+Grobs for these objects are @internalsref{Script} and @internalsref{Fingering}.
 
 @refbugs
 
@@ -1316,7 +1365,8 @@ includes.
 \relative c' { c4^"longtext" \fatText c4_"longlongtext" c4 }
 @end lilypond
 
-Text scripts are created in form of @code{Voice.TextScript} grobs.
+Text scripts are created in form of @internalsref{TextScript} grobs, in
+@internalsref{Voice} context.
 
 @ref{Text markup} describes how to change the font or access
 special symbols in text scripts.
@@ -1395,8 +1445,8 @@ also be implemented.
 
 @cindex @code{\glissando}
 
-A glissando line (grob @code{Voice.Glissando}) can be requested by attaching a
-@code{\glissando} to a note:
+A glissando line (grob @internalsref{Glissando}) can be requested by
+attaching a @code{\glissando} to a notte:
 
 @lilypond[fragment,relative,verbatim]
   c'-\glissando c'
@@ -1488,9 +1538,9 @@ For everyday use, we recommend the identifiers @code{\cresc},
 
 @cindex diminuendo
 
-Dynamics are grobs of @code{Voice.DynamicText} and
-@code{Voice.Hairpin}. They are put together on
-@code{Voice.DynamicLineSpanner} to align them vertically.
+Dynamics are grobs of @internalsref{DynamicText} and
+@internalsref{Hairpin}. They are put together on
+@internalsref{DynamicLineSpanner} to align them vertically.
 
 
 @c .  {Repeats}
@@ -1642,7 +1692,7 @@ command can be
 @end lilypond
 
 
-Repeats brackets are @code{Staff.VoltaBracket} grobs.
+Repeats brackets are @internalsref{VoltaBracket} grobs.
 
 @node Tremolo repeats
 @subsection Tremolo repeats
@@ -1661,8 +1711,8 @@ style.
 }
 @end lilypond
 
-Tremolo beams are @code{Voice.Beam} grobs. Single stem tremolos are
-@code{Voice.StemTremolo}.
+Tremolo beams are @internalsref{Beam} grobs. Single stem tremolos are
+@internalsref{StemTremolo}.
 
 @refbugs
 
@@ -1708,8 +1758,8 @@ patterns that divide the measure length are replaced by slashes.
 }
 @end lilypond
 
-The signs are represented by these grobs: @code{Voice.RepeatSlash} and
-@code{Voice.PercentRepeat} and @code{Voice.DoublePercentRepeat}.
+The signs are represented by these grobs: @internalsref{RepeatSlash} and
+@internalsref{PercentRepeat} and @internalsref{DoublePercentRepeat}.
 
 @refbugs
 
@@ -1746,8 +1796,8 @@ are squashed, and the  staff itself  looks has  a single staff line:
 Piano music is an odd type of notation. Piano staffs are two normal
 staffs coupled with a brace.  The staffs are largely independent, but
 sometimes voices can cross between the two staffs.  The
-@code{PianoStaff} is especially built to handle this cross-staffing
-behavior.  In this section we discuss the @code{PianoStaff} and some
+@internalsref{PianoStaff} is especially built to handle this cross-staffing
+behavior.  In this section we discuss the @internalsref{PianoStaff} and some
 other pianistic peculiarities.
 
 @menu
@@ -1771,7 +1821,7 @@ staff. The syntax for this is
 @end example
 This will switch the interpretation context of @var{musicexp} between a
 @var{contexttype} named @code{up} and @code{down}. Typically, you use
-@code{Staff} for @var{contexttype}.  The autochanger switches on basis
+@internalsref{Staff} for @var{contexttype}.  The autochanger switches on basis
 of pitch (central C is the turning point), and it looks ahead skipping
 over rests to switch rests in advance.
         
@@ -1827,7 +1877,7 @@ Piano pedal instruction can be expressed using
 @code{\treCorde}, @code{\sostenutoDown} and @code{\sostenutoUp}.
 
 These identifiers are shorthands for spanner commands of the types
-@code{Sustain}, @code{UnaCorda} and @code{Sostenuto}:
+@internalsref{Sustain}, @internalsref{UnaCorda} and @internalsref{Sostenuto}:
 
 @lilypond[fragment,verbatim]
 c''4 \spanrequest \start "Sustain" c''4
@@ -1874,8 +1924,8 @@ to the chords in both staffs, and set
   >  
 @end lilypond
 
-This command creates @code{Voice.Arpeggio} grobs.  Cross staff arpeggios
-are @code{PianoStaff.Arpeggio}.
+This command creates @internalsref{Arpeggio} grobs.  Cross staff arpeggios
+are @code{PianoStaff.Arpeggio}. @internalsref{Arpeggio}
 
 @refbugs
 
@@ -1909,7 +1959,7 @@ can be printed automatically. This is enabled if the property
   >  
 @end lilypond
 
-The associated grob is @code{Voice.VoiceFollower}.
+The associated grob is @internalsref{VoiceFollower}.
 
 
 @node Lyrics
@@ -1958,7 +2008,7 @@ definition}.
 @subsection Printing lyrics
 @cindex lyrics
 
-Lyrics are printed by interpreting them in the @code{Lyrics}  context.
+Lyrics are printed by interpreting them in the @internalsref{Lyrics}  context.
 
 @c Maybe more pedagogical to avoid \addlyrics in this first example? /MB
 
@@ -2263,10 +2313,8 @@ adds a fourth, but also removes the third.
 @cindex printing chord names
 @cindex chord names
 @cindex chords
-@cindex @code{ChordNames}
-
 
-For displaying printed chord names, use the @code{ChordNames} context.
+For displaying printed chord names, use the @internalsref{ChordNames} context.
 The chords may be entered either using the notation described above, or
 directly using simultaneous music.
 
@@ -2383,7 +2431,7 @@ problems in orchestral music.
 @cindex Rehearsal marks
 @cindex mark
 @cindex @code{\mark}
-@cindex @code{Mark_engraver}
+
 
 @example
   \mark @var{unsigned}
@@ -2407,13 +2455,13 @@ automatically incremented.
 }
 @end lilypond
 
-The grob is @code{Score.RehearsalMark}. See
+The grob is @internalsref{RehearsalMark} in @internalsref{Score} context. See
 @code{input/test/boxed-molecule.ly} if you need boxes around the marks.
 
 @node Bar numbers
 @subsection Bar numbers
 
-Bar numbers (grob: @code{BarNumber}) are printed at the start of the
+Bar numbers (grob: @internalsref{BarNumber}) are printed at the start of the
 line. See @code{input/test/boxed-molecule.ly} for boxed bar numbers.
 
 @refbugs
@@ -2529,6 +2577,8 @@ measure.
 
 @cindex whole rests for a full measure 
 
+The grob for this object is @internalsref{MultiMeasureRest}.
+
 @refbugs
 
 Currently, there is no way to automatically condense multiple rests into
@@ -2601,8 +2651,8 @@ There are a number of other properties that you can use to tweak the
 behavior of part combining, refer to the automatically generated
 documentation of @reng{Thread_devnull_engraver} and
 @reng{Voice_devnull_engraver}. Look at the documentation of the
-responsible engravers, @code{Thread_devnull_engraver},
-@code{Voice_devnull_engraver} and @code{A2_engraver}.
+responsible engravers, @internalsref{Thread_devnull_engraver},
+@internalsref{Voice_devnull_engraver} and @internalsref{A2_engraver}.
 
 @refbugs
 
@@ -2622,9 +2672,6 @@ measure.
   >
 @end lilypond
 
-@cindex @code{Thread_devnull_engraver}
-@cindex @code{Voice_engraver}
-@cindex @code{A2_engraver}
 
 @node Hara kiri staffs
 @subsection Hara kiri staffs
@@ -2637,10 +2684,10 @@ it finds itself to be empty after the line-breaking process.  It will
 not disappear when it contains normal rests, you must use multi measure
 rests.
 
-The hara kiri staff is specialized version of the Staff context. It is
-available as the context identifier @code{\HaraKiriStaffContext}.
-Observe how the second staff in this example disappears in the second
-line.
+The hara kiri staff is specialized version of the @internalsref{Staff}
+context. It is available as the context identifier
+@code{\HaraKiriStaffContext}.  Observe how the second staff in this
+example disappears in the second line.
 
 @lilypond[verbatim]
 \score  {
@@ -2689,8 +2736,8 @@ Nowadays, they have survived only in special forms of musical notation
 such as via the @emph{editio vaticana} dating back to the beginning of
 the 20th century.
 
-For typesetting custodes, just put a @code{Custos_engraver} into the
-@code{StaffContext} when declaring the @code{\paper} block.  In this
+For typesetting custodes, just put a @internalsref{Custos_engraver} into the
+@internalsref{Staff} context when declaring the @code{\paper} block.  In this
 block, you can also globally control the appearance of the custos symbol
 by setting the custos @code{style} property.  Currently supported styles
 are @code{vaticana}, @code{medicaea}, @code{hufnagel} and
@@ -2782,7 +2829,7 @@ mechanism.
 The definition of a grob is actually a list of default grob
 properties. For example, the definition of the Stem grob (available in
 @file{scm/grob-description.scm}), defines the following values for
-@code{Stem}
+@internalsref{Stem}
 
 @example
         (thickness . 0.8)
@@ -2888,7 +2935,7 @@ feature.  The syntax is as follows:
 @end example
 Here @code{predicate} is a Scheme function taking a grob argument, and
 returning a boolean.  This statement is processed by the
-@code{Output_property_engraver}.  It instructs the engraver to feed all
+@internalsref{Output_property_engraver}.  It instructs the engraver to feed all
 grobs that it sees to @var{predicate}. Whenever the predicate returns
 true, the grob property @var{symbol} will be set to @var{value}.
 
@@ -3035,8 +3082,8 @@ There are also pre-cooked font selection qualifiers. These are selected
 through the grob property @code{font-style}.  For example, the style
 @code{finger} selects family @code{number} and relative size @code{-3}.
 Styles available include @code{volta}, @code{finger}, @code{tuplet},
-@code{timesig}, @code{mmrest}, @code{script}, @code{large}, @code{Large}
-and @code{dynamic}.
+@code{timesig}, @code{mmrest}, @code{script}, @code{large},
+@code{Large} and @code{dynamic}.
 
 The style sheets and tables for selecting fonts are located in
 @file{scm/font.scm}. Refer to this file for more information.
@@ -4003,10 +4050,10 @@ like
        the measure, etc.?
 @end itemize
 
-Contexts are grouped hierarchically: A @code{Voice} context is
-contained in a @code{Staff} context (because a staff can contain
-multiple voices at any point), a @code{Staff} context is contained in
-@code{Score}, @code{StaffGroup}, or @code{ChoirStaff} context.
+Contexts are grouped hierarchically: A @internalsref{Voice} context is
+contained in a @internalsref{Staff} context (because a staff can contain
+multiple voices at any point), a @internalsref{Staff} context is contained in
+@internalsref{Score}, @internalsref{StaffGroup}, or @internalsref{ChoirStaff} context.
 
 Contexts associated with sheet music output are called @emph{notation
 contexts}, those for sound output are called @emph{performance
@@ -4093,6 +4140,10 @@ This is a convenient mechanism, but do not expect opening chords to work
 without @code{\context}. For every note, a separate staff is
 instantiated.
 
+@cindex explicit context
+@cindex starting with chords
+@cindex chords, starting with
+
 @lilypond[verbatim, singleline]
 \score { \notes <c'4 es'> } 
 @end lilypond
@@ -4122,8 +4173,8 @@ specified Scheme expression @var{value}.  All @var{propname} and
 
 Properties that are set in one context are inherited by all of the
 contained contexts.  This means that a property valid for the
-@code{Voice} context can be set in the @code{Score} context (for
-example) and thus take effect in all @code{Voice} contexts.
+@internalsref{Voice} context can be set in the @internalsref{Score} context (for
+example) and thus take effect in all @internalsref{Voice} contexts.
 
 Properties can be unset using the following expression:
 @example
@@ -4235,25 +4286,20 @@ This is an example:
 
 The argument of @code{\type} is the name for a special engraver that
 handles cooperation between simple engravers such as
-@code{Note_head_engraver} and @code{Staff_symbol_engraver}. Alternatives
+@internalsref{Note_head_engraver} and @internalsref{Staff_symbol_engraver}. Alternatives
 for this engraver are the following:
 @table @code
-@cindex @code{Engraver_group_engraver}
-  @item @code{Engraver_group_engraver}  
+  @item @internalsref{Engraver_group_engraver}  
     The standard cooperation engraver.
 
-@cindex @code{Score_engraver}
+  @item @internalsref{Score_engraver}
 
-  @item @code{Score_engraver}  
-    This is cooperation module that should be in the top level context,
+  This is cooperation module that should be in the top level context,
 and only the top level context.
 
-@cindex @code{Grace_engraver_group}
-
-  @item @code{Grace_engraver_group}  
-    This is a special cooperation module (resembling
-    @code{Score_engraver}) that is used to create an embedded
-    `miniscore'.
+  @item @internalsref{Grace_engraver_group} This is a special
+cooperation module (resembling @internalsref{Score_engraver}) that is
+used to create an embedded `miniscore'.
 @end table 
 
 Other modifiers   are
@@ -4282,8 +4328,8 @@ completeness, but is never used in practice.
  
   
   @item  @code{\name} @var{contextname} 
-    This sets the type name of the context, e.g. @code{Staff},
-    @code{Voice}.  If the name is not specified, the translator won't do
+    This sets the type name of the context, e.g. @internalsref{Staff},
+    @internalsref{Voice}.  If the name is not specified, the translator won't do
     anything. 
 @end itemize
 
index 18f9949792a01ca129214d877dba4d4e7676e0dc..085fb63e8dbd9ff2a70cf18c10d42ee46d96b9ca 100644 (file)
@@ -11,10 +11,10 @@ This document explains how to install the binary release for windows
 on a Microsoft Windows 95, 98, NT or 2000 machine.
 
 This release is a free extra service of the developers to assist windows
-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}).
+users.  When reporting problems,  please keep in mind that we (the developers)
+do not use Windows.  In fact,  if you know something about Windows, and
+are able to write code, please send us code that works better (see
+@uref{compiling.html,compiling}).
 
 @section Windows binary setup 
 
index 7df4df6cb27d575d93f4df7aff657382de0fbcba..c82132525f6ef98d77677e7f048935b0032b2ad3 100644 (file)
@@ -27,6 +27,7 @@ INSTALL - compiling and installing GNU LilyPond
     Debian GNU/Linux
   Problems
     Debian GNU/Linux unstable gcc-3.0
+    Linux-2.4.0, Guile-1.4 -with-threads
     NetBSD
     Solaris:
     AIX
@@ -467,13 +468,26 @@ Debian GNU/Linux unstable gcc-3.0
 ---------------------------------
 
    Flex (2.5.4a-11) in unstable does not produce g++-3.0 compliant C++
-code.  To compile LilyPond with gcc-3.0 you may do:
+code.  To compile LilyPond with gcc-3.0, please first upgrade to
+flex_2.5.4a-13 or newer.  Otherwise, you may do:
 
+             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
              make conf=gcc-3.0 -C lily
 
+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):
+
+              guile-1.4$ ./configure --without-threads; make all install
+
 NetBSD
 ------
 
diff --git a/VERSION b/VERSION
index ca27b24fd31d6a5675764f746ce301f2e05dfe93..aa75071590ec95ec3043d73ca10d52cf3ae6b7a5 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=4
-PATCH_LEVEL=8
-MY_PATCH_LEVEL=jcn3
+PATCH_LEVEL=9
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index e809b66224adbbe5b98984311f8600e80fbe41e5..ec2dac64dfd6670dd44b05650ad3da6b62b87ec7 100755 (executable)
@@ -7,17 +7,8 @@
 # strange shell, this C
 set datadir="@datadir@"
 
-if ( $?GS_FONTPATH ) then
-       setenv GS_FONTPATH "$datadir/afm:/usr/share/lilypond/pfa:$GS_FONTPATH"
- else
-       setenv GS_FONTPATH "$datadir/afm:/usr/share/lilypond/pfa"
- endif
- if ( $?GS_LIB ) then
-       setenv GS_LIB "$datadir/ps:$GS_LIB"
- else
-       setenv GS_LIB "$datadir/ps"
- endif
-
+setenv GS_FONTPATH "$datadir/afm:@datadir@/pfa:$GS_FONTPATH"
+setenv GS_LIB "$datadir/ps:$GS_LIB"
 
 # setenv LILYPONDPREFIX "$datadir"
 
index 08ddca3adbe2ebb6e146a73fbec8136051a992d7..0e09423923cf53b50c6f9b513abc2666aab84cc5 100755 (executable)
--- a/configure
+++ b/configure
@@ -1886,20 +1886,71 @@ else
   fi
 fi
 
+for ac_declaration in \
+   ''\
+   '#include <stdlib.h>' \
+   'extern "C" void std::exit (int) throw (); using std::exit;' \
+   'extern "C" void std::exit (int); using std::exit;' \
+   'extern "C" void exit (int) throw ();' \
+   'extern "C" void exit (int);' \
+   'void exit (int);'
+do
+  cat > conftest.$ac_ext <<EOF
+#line 1900 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+$ac_declaration
+int main() {
+exit (42);
+; return 0; }
+EOF
+if { (eval echo configure:1908: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  continue
+fi
+rm -f conftest*
+  cat > conftest.$ac_ext <<EOF
+#line 1918 "configure"
+#include "confdefs.h"
+$ac_declaration
+int main() {
+exit (42);
+; return 0; }
+EOF
+if { (eval echo configure:1925: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+if test -n "$ac_declaration"; then
+  echo '#ifdef __cplusplus' >>confdefs.h
+  echo $ac_declaration      >>confdefs.h
+  echo '#endif'             >>confdefs.h
+fi
+
+
 
     ac_safe=`echo "FlexLexer.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for FlexLexer.h""... $ac_c" 1>&6
-echo "configure:1893: checking for FlexLexer.h" >&5
+echo "configure:1944: checking for FlexLexer.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1898 "configure"
+#line 1949 "configure"
 #include "confdefs.h"
 #include <FlexLexer.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1903: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1954: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -1936,7 +1987,7 @@ fi
 
 
     echo $ac_n "checking "g++ version"""... $ac_c" 1>&6
-echo "configure:1940: checking "g++ version"" >&5
+echo "configure:1991: checking "g++ version"" >&5
     cxx_version=`$CXX --version`
     echo "$ac_t"""$cxx_version"" 1>&6
         # urg, egcs: how to check for egcs >= 1.1?
@@ -1954,12 +2005,12 @@ echo "configure:1940: checking "g++ version"" >&5
 
 
     echo $ac_n "checking whether explicit instantiation is needed""... $ac_c" 1>&6
-echo "configure:1958: checking whether explicit instantiation is needed" >&5
+echo "configure:2009: checking whether explicit instantiation is needed" >&5
 if eval "test \"`echo '$''{'lily_cv_need_explicit_instantiation'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1963 "configure"
+#line 2014 "configure"
 #include "confdefs.h"
 
     template <class T> struct foo { static int baz; };
@@ -1969,7 +2020,7 @@ int main() {
  return foo<int>::baz; 
 ; return 0; }
 EOF
-if { (eval echo configure:1973: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2024: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   lily_cv_need_explicit_instantiation=no
 else
@@ -1996,7 +2047,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2000: checking for $ac_word" >&5
+echo "configure:2051: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2039,7 +2090,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2043: checking for $ac_word" >&5
+echo "configure:2094: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_BISON'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2074,7 +2125,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2078: checking for $ac_word" >&5
+echo "configure:2129: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_FLEX'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2142,7 +2193,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2146: checking for $ac_word" >&5
+echo "configure:2197: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2175,7 +2226,7 @@ test -n "$AR" || AR="error"
     # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2179: checking for $ac_word" >&5
+echo "configure:2230: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2230,7 +2281,7 @@ fi
 
 
     echo $ac_n "checking language""... $ac_c" 1>&6
-echo "configure:2234: checking language" >&5    
+echo "configure:2285: checking language" >&5    
     case "$language" in
       En* | en* | Am* | am* | US* | us*)
            lang=English;;
@@ -2266,7 +2317,7 @@ EOF
 
 
     echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6
-echo "configure:2270: checking for gettext in -lintl" >&5
+echo "configure:2321: checking for gettext in -lintl" >&5
 ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2274,7 +2325,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lintl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2278 "configure"
+#line 2329 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
@@ -2288,7 +2339,7 @@ int main() {
 gettext()
 ; return 0; }
 EOF
-if { (eval echo configure:2292: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2343: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2318,12 +2369,12 @@ fi
     for ac_func in gettext
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2322: checking for $ac_func" >&5
+echo "configure:2373: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2327 "configure"
+#line 2378 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2349,7 +2400,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2353: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2404: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2381,7 +2432,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2385: checking for $ac_word" >&5
+echo "configure:2436: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MSGFMT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2412,7 +2463,7 @@ done
 test -n "$MSGFMT" || MSGFMT="\$(SHELL) \$(step-bindir)/fake-msgfmt.sh "
 
     echo $ac_n "checking whether msgfmt accepts -o""... $ac_c" 1>&6
-echo "configure:2416: checking whether msgfmt accepts -o" >&5
+echo "configure:2467: checking whether msgfmt accepts -o" >&5
     msgfmt_output="`msgfmt -o bla 2>&1 | grep usage`"
     if test "$msgfmt_output" = ""; then
        echo "$ac_t""yes" 1>&6
@@ -2440,7 +2491,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2444: checking for $ac_word" >&5
+echo "configure:2495: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_METAFONT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2476,7 +2527,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2480: checking for $ac_word" >&5
+echo "configure:2531: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MFONT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2514,7 +2565,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2518: checking for $ac_word" >&5
+echo "configure:2569: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_METAPOST'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2550,7 +2601,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2554: checking for $ac_word" >&5
+echo "configure:2605: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MPOST'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2589,7 +2640,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2593: checking for $ac_word" >&5
+echo "configure:2644: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_INIMETAFONT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2625,7 +2676,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2629: checking for $ac_word" >&5
+echo "configure:2680: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_INIMFONT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2663,7 +2714,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2667: checking for $ac_word" >&5
+echo "configure:2718: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_INIMETAPOST'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2699,7 +2750,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2703: checking for $ac_word" >&5
+echo "configure:2754: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_INIMPOST'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2733,7 +2784,7 @@ test -n "$INIMPOST" || INIMPOST="-echo no inimp or inimpost"
     fi
 
     echo $ac_n "checking for working metafont mode""... $ac_c" 1>&6
-echo "configure:2737: checking for working metafont mode" >&5
+echo "configure:2788: checking for working metafont mode" >&5
     modelist='ljfour lj4 lj3 lj2 ljet laserjet'
     for MFMODE in $modelist; do
        $METAFONT "\mode:=$MFMODE; mode_setup; end." > /dev/null 2>&1
@@ -2744,7 +2795,7 @@ echo "configure:2737: checking for working metafont mode" >&5
     echo "$ac_t""$MFMODE" 1>&6
 
     echo $ac_n "checking for mfplain.mp""... $ac_c" 1>&6
-echo "configure:2748: checking for mfplain.mp" >&5
+echo "configure:2799: checking for mfplain.mp" >&5
     #
     # For now let people define these in their environments
     #
@@ -2752,7 +2803,7 @@ echo "configure:2748: checking for mfplain.mp" >&5
     echo "$ac_t""$MFPLAIN_MP" 1>&6
 
     echo $ac_n "checking for inimetapost flags""... $ac_c" 1>&6
-echo "configure:2756: checking for inimetapost flags" >&5
+echo "configure:2807: checking for inimetapost flags" >&5
     if test  ${INIMETAPOST} = "inimp" ; then
        : ${INIMETAPOST_FLAGS=''}
     else
@@ -2785,7 +2836,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2789: checking for $ac_word" >&5
+echo "configure:2840: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_KPSEWHICH'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2816,7 +2867,7 @@ done
 test -n "$KPSEWHICH" || KPSEWHICH="no"
 
     echo $ac_n "checking for tfm path""... $ac_c" 1>&6
-echo "configure:2820: checking for tfm path" >&5
+echo "configure:2871: checking for tfm path" >&5
 
     TFM_FONTS="cmr msam"
 
@@ -2844,13 +2895,13 @@ echo "configure:2820: checking for tfm path" >&5
 
     ## First, let's just see if we can find Guile at all.
     echo $ac_n "checking "for guile-config"""... $ac_c" 1>&6
-echo "configure:2848: checking "for guile-config"" >&5
+echo "configure:2899: checking "for guile-config"" >&5
     for guile_config in guile-config $target-guile-config $build-guile-config; do
        echo "$ac_t"""$guile_config"" 1>&6
        if ! $guile_config --version > /dev/null 2>&1 ; then
            echo "configure: warning: "cannot execute $guile_config"" 1>&2
            echo $ac_n "checking "if we are cross compiling"""... $ac_c" 1>&6
-echo "configure:2854: checking "if we are cross compiling"" >&5
+echo "configure:2905: checking "if we are cross compiling"" >&5
            guile_config=error
        else
            break
@@ -2861,7 +2912,7 @@ echo "configure:2854: checking "if we are cross compiling"" >&5
        exit 1
     fi
     echo $ac_n "checking "Guile version"""... $ac_c" 1>&6
-echo "configure:2865: checking "Guile version"" >&5
+echo "configure:2916: checking "Guile version"" >&5
     need_guile_version="1.3.4"
     need_guile_version_numeric=100304
     guile_version=`$guile_config --version 2>&1 | awk '{print $NF}'`
@@ -2882,7 +2933,7 @@ else {last =0}}
         
 ## The GUILE_FLAGS macro.
   echo $ac_n "checking for Guile""... $ac_c" 1>&6
-echo "configure:2886: checking for Guile" >&5
+echo "configure:2937: checking for Guile" >&5
   if ! $guile_config link > /dev/null ; then
       echo "$ac_t"""cannot execute $guile_config"" 1>&6
       { echo "configure: error: "cannot find guile-config; is Guile installed?"" 1>&2; exit 1; }
@@ -2897,7 +2948,7 @@ echo "configure:2886: checking for Guile" >&5
     # Extract the first word of "guile", so it can be a program name with args.
 set dummy guile; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2901: checking for $ac_word" >&5
+echo "configure:2952: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_GUILE'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2958,17 +3009,17 @@ fi
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2962: checking for $ac_hdr" >&5
+echo "configure:3013: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2967 "configure"
+#line 3018 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2972: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3023: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2995,7 +3046,7 @@ fi
 done
 
        echo $ac_n "checking for kpse_find_file in -lkpathsea""... $ac_c" 1>&6
-echo "configure:2999: checking for kpse_find_file in -lkpathsea" >&5
+echo "configure:3050: checking for kpse_find_file in -lkpathsea" >&5
 ac_lib_var=`echo kpathsea'_'kpse_find_file | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3003,7 +3054,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lkpathsea  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3007 "configure"
+#line 3058 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
@@ -3017,7 +3068,7 @@ int main() {
 kpse_find_file()
 ; return 0; }
 EOF
-if { (eval echo configure:3021: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3072: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -3047,12 +3098,12 @@ fi
        for ac_func in kpse_find_file
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3051: checking for $ac_func" >&5
+echo "configure:3102: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3056 "configure"
+#line 3107 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3078,7 +3129,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3082: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3133: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -3105,7 +3156,7 @@ done
 
     fi
     echo $ac_n "checking whether to use kpathsea""... $ac_c" 1>&6
-echo "configure:3109: checking whether to use kpathsea" >&5
+echo "configure:3160: checking whether to use kpathsea" >&5
     if test "$kpathsea_b" != no; then
         echo "$ac_t""yes" 1>&6
        KPATHSEA=1
@@ -3126,7 +3177,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3130: checking for $ac_word" >&5
+echo "configure:3181: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_BIBTEX2HTML'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3167,7 +3218,7 @@ test -n "$BIBTEX2HTML" || BIBTEX2HTML="error"
 
 
 echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-echo "configure:3171: checking for 8-bit clean memcmp" >&5
+echo "configure:3222: checking for 8-bit clean memcmp" >&5
 if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3175,11 +3226,8 @@ else
   ac_cv_func_memcmp_clean=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 3179 "configure"
+#line 3230 "configure"
 #include "confdefs.h"
-#ifdef __cplusplus
-extern "C" void exit(int) throw();
-#endif
 
 main()
 {
@@ -3188,7 +3236,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:3192: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3240: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_memcmp_clean=yes
 else
@@ -3206,12 +3254,12 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6
 test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}"
 
 echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:3210: checking for vprintf" >&5
+echo "configure:3258: checking for vprintf" >&5
 if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3215 "configure"
+#line 3263 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char vprintf(); below.  */
@@ -3237,7 +3285,7 @@ vprintf();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3241: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3289: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_vprintf=yes"
 else
@@ -3261,12 +3309,12 @@ fi
 
 if test "$ac_cv_func_vprintf" != yes; then
 echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:3265: checking for _doprnt" >&5
+echo "configure:3313: checking for _doprnt" >&5
 if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3270 "configure"
+#line 3318 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char _doprnt(); below.  */
@@ -3292,7 +3340,7 @@ _doprnt();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3296: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3344: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func__doprnt=yes"
 else
@@ -3319,12 +3367,12 @@ fi
 for ac_func in memmem snprintf vsnprintf gettext isinf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3323: checking for $ac_func" >&5
+echo "configure:3371: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3328 "configure"
+#line 3376 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3350,7 +3398,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3354: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3402: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -3390,7 +3438,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3394: checking for $ac_word" >&5
+echo "configure:3442: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -3422,7 +3470,7 @@ test -n "$MAKEINFO" || MAKEINFO="error"
 
     if test "$MAKEINFO" != "error"; then
        echo $ac_n "checking whether makeinfo can split html by @node""... $ac_c" 1>&6
-echo "configure:3426: checking whether makeinfo can split html by @node" >&5
+echo "configure:3474: checking whether makeinfo can split html by @node" >&5
        mkdir -p out
        makeinfo --html --output=out/split <<EOF
 \input texinfo
@@ -3450,7 +3498,7 @@ EOF
 # Extract the first word of "perl", so it can be a program name with args.
 set dummy perl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3454: checking for $ac_word" >&5
+echo "configure:3502: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
index 37cfe0df1a78253f4fb184b413b250c13689eedf..7329576d363d0c4724f016691a02e5fc79653ae8 100644 (file)
@@ -1,3 +1,44 @@
+lilypond (1.4.8-1) unstable; urgency=high
+
+  * New upstream release.  (Closes: Bug#111132)
+  * Stopped using $(PWD) in make, as it doesn't seems to work on
+    potato systems with older "make".  Reverted to `pwd`.
+    Thanks to Wolfgang Schnitker for notifying me this problem.
+  * Changed the lilypond1.3 dummy package's Architecture from "all"
+    to "arm i386 m68k powerpc sparc".  Also, as upstream updated
+    config.sub and config.guess to recognize ia64 and hppa.
+    Thanks to Anthony Towns for the bug report.  (Closes: Bug#114266)
+  * Versioned Build-Depends: flex (>= 2.5.4a-14) to ensure gcc-3.0
+    compatibility.
+
+ -- Anthony Fok <foka@debian.org>  Sun, 14 Oct 2001 18:28:45 +0800
+
+lilypond (1.4.5-1) unstable; urgency=low
+
+  * New upstream release.
+  * Upstream includes lexer-gcc-3.0.patch which should fix compilation
+    problems with g++-3.0.  (Closes: Bug#105001)
+  * Hurray!  texinfo-4.0b is finally in Debian!  Thanks, Josip!  :-)
+    Updated Build-Depends.
+
+ -- Anthony Fok <foka@debian.org>  Wed, 25 Jul 2001 03:04:37 +0800
+
+lilypond (1.4.3-1) unstable; urgency=high
+
+  * New upstream release.
+  * Urgency high because Lilypond-1.2.17 is too buggy and yet it has
+    been stuck in testing forever.  Lilypond-1.4.x fixes multiple
+    serious bugs.  :-)
+  * Ah, silly me, lilypond was conflicting against itself!  I forgot
+    to remove this relics during the switch from lilypond1.3 to lilypond.
+  * Fixed a new bug in lily/main.cc which caused lilypond to skip over every
+    other command-line argument.
+  * [configure.in]: Added -mieee to CFLAGS and CXXFLAGS when building on
+     Alpha to prevent FP exception.  Thanks to Christopher C. Chimelis
+     for the fix!
+
+ -- Anthony Fok <foka@debian.org>  Fri, 15 Jun 2001 00:42:46 -0600
+
 lilypond (1.4.2-1) unstable; urgency=low
 
   * New upstream release.
index 7998422c27d78bd36beea40ec8bd558becf93e71..c856770ec11d406682943b64a06939f2c645a4e7 100644 (file)
@@ -1,10 +1,10 @@
 Source: lilypond
-Build-Depends: debhelper (>= 3.0.5), python-base (>= 1.5.2-4), libguile-dev (>= 1:1.4-9), tetex-bin, libkpathsea-dev, tetex-extra, flex, bison, texinfo (>= 4.0-1), groff, m4, gettext (>= 0.10.36-1)
+Build-Depends: debhelper (>= 3.0.5), python-base (>= 1.5.2-4), libguile-dev (>= 1:1.4-9), tetex-bin, libkpathsea-dev, tetex-extra, flex (>= 2.5.4a-14), bison, texinfo (>= 4.0b-2), groff, m4, gettext (>= 0.10.36-1)
 Build-Depends-Indep: bibtex2html, gs | gs-aladdin, netpbm (>= 2:9.10-1)
 Section: tex
 Priority: optional
 Maintainer: Anthony Fok <foka@debian.org>
-Standards-Version: 3.5.4
+Standards-Version: 3.5.5
 
 Package: lilypond
 Architecture: any
@@ -12,7 +12,7 @@ Replaces: lilypond1.3
 Provides: lilypond1.3
 Depends: ${shlibs:Depends}, tetex-bin (>= 1.0.5-1), python-base (>= 1.5.2-4), guile
 Recommends: lilypond-doc, tetex-extra (>= 1.0-1)
-Conflicts: lilypond, lilypond1.3 (<= 1.3.132-1), musixtex-fonts
+Conflicts: lilypond1.3 (<= 1.3.132-1), musixtex-fonts
 Description: A program for printing sheet music.
  LilyPond is a music typesetter.  It produces beautiful sheet music
  using a high level description file as input.  LilyPond is part of 
@@ -28,15 +28,14 @@ Description: A program for printing sheet music.
 Package: lilypond-doc
 Section: doc
 Architecture: all
-Suggests: lilypond (>= 1.4.1-1)
-Suggests: postscript-viewer, www-browser
+Suggests: lilypond (>= 1.4.8-1), postscript-viewer, www-browser
 Description: LilyPond Documentation in HTML, PS and DVI formats
  This package contains the HTML, PostScript and DVI documentation for the
  LilyPond music typestting software.
 
 Package: lilypond1.3
-Architecture: all
-Depends: lilypond (>= 1.3.150-1)
+Architecture: arm i386 m68k powerpc sparc
+Depends: lilypond (>= 1.4.8-1)
 Description: Dummy package for transition to new stable lilypond.
  This dummy package provides a transition from the previous lilypond1.3
  package back to a newer lilypond because the stable 1.4 series has arrived.
index 78f5b60f09045106d3849ebe2c03fcfa4e224ec3..c856770ec11d406682943b64a06939f2c645a4e7 100644 (file)
@@ -1,10 +1,10 @@
 Source: lilypond
-Build-Depends: debhelper (>= 3.0.5), python-base (>= 1.5.2-4), libguile-dev (>= 1:1.4-9), tetex-bin, libkpathsea-dev, tetex-extra, flex, bison, texinfo (>= 4.0-1), groff, m4, gettext (>= 0.10.36-1)
+Build-Depends: debhelper (>= 3.0.5), python-base (>= 1.5.2-4), libguile-dev (>= 1:1.4-9), tetex-bin, libkpathsea-dev, tetex-extra, flex (>= 2.5.4a-14), bison, texinfo (>= 4.0b-2), groff, m4, gettext (>= 0.10.36-1)
 Build-Depends-Indep: bibtex2html, gs | gs-aladdin, netpbm (>= 2:9.10-1)
 Section: tex
 Priority: optional
 Maintainer: Anthony Fok <foka@debian.org>
-Standards-Version: 3.5.4
+Standards-Version: 3.5.5
 
 Package: lilypond
 Architecture: any
@@ -12,7 +12,7 @@ Replaces: lilypond1.3
 Provides: lilypond1.3
 Depends: ${shlibs:Depends}, tetex-bin (>= 1.0.5-1), python-base (>= 1.5.2-4), guile
 Recommends: lilypond-doc, tetex-extra (>= 1.0-1)
-Conflicts: lilypond, lilypond1.3 (<= 1.3.132-1), musixtex-fonts
+Conflicts: lilypond1.3 (<= 1.3.132-1), musixtex-fonts
 Description: A program for printing sheet music.
  LilyPond is a music typesetter.  It produces beautiful sheet music
  using a high level description file as input.  LilyPond is part of 
@@ -28,15 +28,14 @@ Description: A program for printing sheet music.
 Package: lilypond-doc
 Section: doc
 Architecture: all
-Suggests: lilypond (>= 1.4.1-1)
-Suggests: postscript-viewer, www-browser
-Description: LilyPond Documentation in HTML and PS formats
- This package contains the HTML and PostScript documentation for the
+Suggests: lilypond (>= 1.4.8-1), postscript-viewer, www-browser
+Description: LilyPond Documentation in HTML, PS and DVI formats
+ This package contains the HTML, PostScript and DVI documentation for the
  LilyPond music typestting software.
 
 Package: lilypond1.3
-Architecture: all
-Depends: lilypond (>= 1.3.150-1)
+Architecture: arm i386 m68k powerpc sparc
+Depends: lilypond (>= 1.4.8-1)
 Description: Dummy package for transition to new stable lilypond.
  This dummy package provides a transition from the previous lilypond1.3
  package back to a newer lilypond because the stable 1.4 series has arrived.
index 0a3ff854e5ba5a3a311bcc2ae592f0b30566901a..c7bd20e761b709956472148440f2da625e97ae9e 100644 (file)
@@ -12,7 +12,7 @@ Replaces: lilypond1.3
 Provides: lilypond1.3
 Depends: ${shlibs:Depends}, tetex-bin (>= 1.0.5-1), python-base (>= 1.5.2-4), guile
 Recommends: lilypond-doc, tetex-extra (>= 1.0-1)
-Conflicts: lilypond, lilypond1.3 (<= 1.3.132-1), musixtex-fonts
+Conflicts: lilypond1.3 (<= 1.3.132-1), musixtex-fonts
 Description: A program for printing sheet music.
  LilyPond is a music typesetter.  It produces beautiful sheet music
  using a high level description file as input.  LilyPond is part of 
@@ -28,18 +28,7 @@ Description: A program for printing sheet music.
 Package: lilypond-doc
 Section: doc
 Architecture: all
-Suggests: lilypond (>= 1.4.1-1)
-Suggests: postscript-viewer, www-browser
+Suggests: lilypond (>= 1.4.8-1), postscript-viewer, www-browser
 Description: LilyPond Documentation in HTML, PS and DVI formats
  This package contains the HTML, PostScript and DVI documentation for the
  LilyPond music typestting software.
-
-Package: lilypond1.3
-Architecture: all
-Depends: lilypond (>= 1.3.150-1)
-Description: Dummy package for transition to new stable lilypond.
- This dummy package provides a transition from the previous lilypond1.3
- package back to a newer lilypond because the stable 1.4 series has arrived.
- .
- Please feel free to remove this dummy package after you have upgraded
- to the latest lilypond.
index 0366d2af74d2609e74f24638e965374604d38c5d..29e3390e68270d9542a2486fa446822d1d1df38b 100644 (file)
@@ -3,27 +3,6 @@ This is a dummy package to aid the transition from the old
 It was created by Anthony Fok <foka@debian.org>
 Mon, 16 Apr 2001 22:17:10 -0600
 
-Copyright:
-
-  This program is free software; you can redistribute it and/or modify
-  it under the terms of the GNU General Public License as published by
-  the Free Software Foundation; either version 2 of the License, or
-  (at your option) any later version.
-
-  This program is distributed in the hope that it will be useful,
-  but WITHOUT ANY WARRANTY; without even the implied warranty of
-  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-  GNU General Public License for more details.
-
-  You should have received a copy of the GNU General Public License with
-  the Debian GNU/Linux distribution in file /usr/share/common-licenses/GPL;
-  if not, write to the Free Software Foundation, Inc., 59 Temple Place,
-  Suite 330, Boston, MA  02111-1307  USA
-This is a dummy package to aid the transition from the old
-"lilypond1.3" package to the newer "lilypond" package.
-It was created by Anthony Fok <foka@debian.org>
-Mon, 16 Apr 2001 22:17:10 -0600
-
 Copyright:
 
   This program is free software; you can redistribute it and/or modify
index 15dbc650d634371f6bb64639188cc1151915e3c9..d854c688eb293703d36509f065ca9db21d17b69d 100755 (executable)
@@ -64,7 +64,6 @@ clean:
 
        # Still not clean enough?  Let's use... BRUTE STRENGTH!  :-)
        find . -type d -name 'out' -o -name 'out-www' | xargs rm -rf
-       rm -f debian/doc-base debian/TODO
 
        dh_clean
 
diff --git a/input/emacs-lily.fly b/input/emacs-lily.fly
deleted file mode 100644 (file)
index fefa8e3..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-\
-cpp -P -traditional -o l-fake.ly  -DFAKE_GRACE les-nereides.ly
diff --git a/input/regression/lyric_align.ly b/input/regression/lyric_align.ly
new file mode 100644 (file)
index 0000000..a660e4c
--- /dev/null
@@ -0,0 +1,73 @@
+\version "1.3.146"
+\header{
+  texidoc="Lyric alignment
+
+  Lyric alignment is adjustable both interms of alignment between stanzas and on notehead.
+
+  If the property alignment is not set, there is automatic determination of alignment type based on punctuation. (ee lyric-phrasing.ly)
+
+"
+}
+
+%\paper { linewidth = -1. }
+\score {
+  \addlyrics
+    \context Voice = "v" \notes  \relative c'' {
+      \property Staff.automaticMelismata = ##t
+      \cadenzaOn
+      a\breve  \bar "||" a1 \bar "|"  a \bar "|"  a \bar "||" \break a \bar "|" a \bar "|" a  \bar "|" a \bar "||" \break a \bar "|" a \bar "|."
+    }
+    \context Lyrics <
+      \context LyricsVoice = "v-1" \lyrics {
+%        \property LyricsVoice . stanza = "1:"
+       \property Lyrics . LyricText \override #'ignore-length-mismatch = ##t
+       \property Lyrics . LyricText \override #'alignment = #-1
+       \property Lyrics . LyricText \override #'begin-alignment = #8
+
+       "Particularly useful for reciting notes  "
+       left
+
+       \property Lyrics . LyricText \override #'alignment = #0
+
+       centered
+
+       \property Lyrics . LyricText \override #'alignment = #1        
+
+       right
+
+       \property Lyrics . LyricText \override #'alignment = #-1 
+       \property Lyrics . LyricText \override #'begin-alignment = #2 
+
+       left_half_way
+
+       \property Lyrics . LyricText \override #'begin-alignment = #4 
+
+       left_one_quarter
+
+       \property Lyrics . LyricText \override #'begin-alignment = #10
+
+       left_one_tenth
+
+       \property Lyrics . LyricText \override #'begin-alignment = #1
+
+       left_one_whole
+
+       \property Lyrics . LyricText \override #'ignore-length-mismatch = ##f
+       \property Lyrics . LyricText \override #'begin-alignment = #4
+
+       Very_short_lyrics_remain_in_touch_with_their_note
+
+       \property Lyrics . LyricText \override #'alignment = #1
+       \property Lyrics . LyricText \override #'end-alignment = #1.1
+       \property Lyrics . LyricText \override #'ignore-length-mismatch = ##t
+
+
+       Unless_ignore-length-mismatch_is_true
+
+      }
+      \context LyricsVoice = "v-2" \lyrics {
+%        \property LyricsVoice . stanza = "2:"
+        " with many syllables under them." l c r l l l x x x  note' true'
+      }
+   >
+}
index 14b92742d8ef05abb28cdf705f8ece07b073ecca..2917db77dd1a492c568baa96c5035ea5545e93ed 100644 (file)
@@ -5,6 +5,7 @@ filename =       "beam-pos.ly"
 composer =      "jcn"
 enteredby =     "jcn"
 copyright =     "PD"
+title = "Beam quantization"
 
 TestedFeatures =        "beam quant positions"
 }
index 0c965477724917b6015aaa2fa5915ce69201a6c7..1ed95c0c803dafe671ebe50fabd42dd6c9e5fb86 100644 (file)
@@ -12,7 +12,8 @@ TestedFeatures =       "beams and beamflags"
 \score{
        <
 %              \property Score.beamQuantisation = #'none
-               \context GrandStaff < 
+               \context GrandStaff <
+               \context Staff = SA
                \notes\transpose c' { 
 
                        \time 8/4
@@ -39,6 +40,7 @@ TestedFeatures =       "beams and beamflags"
                }
        >
        <       
+               \context Staff = SB
                \notes { 
 \transpose c' {
                        \time 8/4
index da3193526ea8e351596b7fa05a3d4180c01b176a..53b0105064ce5f7d008359cd7f46e1f703c9a354 100644 (file)
@@ -396,7 +396,7 @@ ly_number2string (SCM s)
 
   char str[400];                       // ugh.
 
-  if (scm_integer_p (s) == SCM_BOOL_F)
+  if (scm_exact_p (s) == SCM_BOOL_F)
     {
       Real r (gh_scm2double (s));
 
index b01db45413ca14b3f931ec242ae3804dacf7dc76..42b49417ca922bf8c04ac7c8ab7175ea13d1728c 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 71a04ef12a47fa72164e730630640b0caf398a01..ec9e50a3ab691306fc76d3553033139a34b1af55 100644 (file)
@@ -52,8 +52,13 @@ Rhythmic_req::do_equal_b (Request const* r) const
 Moment
 Rhythmic_req::length_mom () const
 {
-  return  unsmob_duration (get_mus_property ("duration"))->length_mom ();
-
+  Duration *d = unsmob_duration (get_mus_property ("duration"));
+  if (!d){
+    Moment m ;
+    programming_error("Rhythmic_req has no duration");
+    return m;
+  }
+  return d->length_mom ();
 }
 
 void
index 4a44f5919a8f814821e23923db12fd8f430bdaa2..cf2497c0e374880c20cc4d4e097073f5cbf2d0c8 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 59d4fb4ba5b3044f5b22b7799743286495645c39..5f34e73951ca70e80ad4c352ef999e4cd342e339 100644 (file)
@@ -162,7 +162,8 @@ Paper_outputter::output_scope (Scope *scope, String prefix)
        {
          output_String_def (prefix + s, ly_scm2string (v));
        }
-      else if (scm_integer_p (v) == SCM_BOOL_T)
+      else if (scm_exact_p (v) == SCM_BOOL_T
+              && scm_integer_p (v) == SCM_BOOL_T)
        {
          output_int_def (prefix + s, gh_scm2int (v));    
        }
index 591cfe1d4218857fbbbcc9714c69c57b70de4fc9..464826db50514df95a9304a7a8122798f9d4825e 100644 (file)
@@ -1567,9 +1567,11 @@ optional_notemode_duration:
        }
        | multiplied_duration   {
                $$ = $1;
+               THIS->default_duration_ = *unsmob_duration ($$);
        }
        | explicit_duration {
                $$ = $1;
+               THIS->default_duration_ = *unsmob_duration ($$);
        }       
        ;
 
@@ -1582,15 +1584,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 9016333fb1ab557976e52aeb797104f392517ce0..2c37426c219891c99c3ffe4038c776207729e2cd 100644 (file)
@@ -104,7 +104,7 @@ Syllable_group::set_lyric_align (const char *punc, Grob *default_notehead_l)
 
   Grob * lyric;
   alignment_i_ = appropriate_alignment (punc);
-
+  
   // If there was no notehead in the matching voice context, use the first 
   // notehead caught from any voice context (any port in a storm).
   if (!notehead_l_) {
@@ -131,7 +131,7 @@ Syllable_group::set_lyric_align (const char *punc, Grob *default_notehead_l)
 /** determine the distance to translate lyrics to get correct alignment
     Rules: If alignment is centre, translate = 0
            Otherwise,
-             If (length of longest lyric) < property("end-alignment") * (length of shortest lyric),
+             If (length of longest lyric) < (property {begin,end}-alignment) * (length of shortest lyric),
                 - centre longest lyric on notehead
              Otherwise
                 - move so shortest lyric just reaches notehead centre
@@ -141,11 +141,20 @@ Syllable_group::amount_to_translate ()
 {
   Real translate = 0.0;
   if (alignment_i_ != CENTER) {
-    // FIXME: do we really know the lyric extent here? Some font sizing comes later?
-    Real l1 = longest_lyric_l_->extent (longest_lyric_l_, X_AXIS).length () / gh_scm2double (longest_lyric_l_->get_grob_property("end-alignment"));
-    Real l2 = shortest_lyric_l_->extent (shortest_lyric_l_, X_AXIS).length ();
-
-    translate = l1 <? l2;
+    switch (alignment_i_) {
+      // FIXME: do we really know the lyric extent here? Some font sizing comes later?
+    case LEFT: 
+      translate =  longest_lyric_l_->extent (longest_lyric_l_, X_AXIS).length () / gh_scm2double (longest_lyric_l_->get_grob_property("begin-alignment"));
+      break;
+    case RIGHT: 
+      translate =   longest_lyric_l_->extent (longest_lyric_l_, X_AXIS).length () / gh_scm2double (longest_lyric_l_->get_grob_property("end-alignment"));
+      break;
+    }
+    if (!gh_scm2bool(longest_lyric_l_->get_grob_property("ignore-length-mismatch"))) {
+      Real l = shortest_lyric_l_->extent (shortest_lyric_l_, X_AXIS).length ();
+      translate = l <? translate;
+    }
+    
     translate *= alignment_i_ ;
   }
   return translate;
@@ -153,13 +162,20 @@ Syllable_group::amount_to_translate ()
 
 
 /** determine what alignment we want.
-    Rules: if first_in_phrase_b_ is set, then alignment is LEFT.
+    Rules: if property alignment is set it specifies the alignment
+           if first_in_phrase_b_ is set, then alignment is LEFT.
            otherwise if each syllable ends in punctuation, then alignment is RIGHT
           otherwise alignment is centre.
 */
 int 
 Syllable_group::appropriate_alignment (const char *punc)
 {
+
+  SCM s=this->longest_lyric_l_->get_grob_property ("alignment");
+    if (s!=SCM_EOL) {
+      return gh_scm2int (s);
+    }
+
   if (first_in_phrase_b_)
     return LEFT;
 
index ed9473e000d3213ad08b762506a7b75b2572f7b9..7757efcfadcb818ec72ff0ba2dd4a1e5c3fe30b9 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 ee0b3c7553977a8881aa86cddd8d16e84802766e..166db820be7af570ac990a679fa10fc6c6b81125 100644 (file)
@@ -1,13 +1,16 @@
-;; lilypond-font-lock.el
+;;; lilypond-font-lock.el --- syntax coloring for LilyPond mode
 
 ;; Copyright (C) 1992,1993,1994  Tim Peters
 
+;; Author: 2001: Heikki Junes
+;;  * Emacs-mode: new keywords, reserved words, identifiers, notenames, 
+;;    some dynamics and brackets are font-lock-keywords
 ;; Author: 1997: Han-Wen Nienhuys
 ;; Author: 1995-1996 Barry A. Warsaw
 ;;         1992-1994 Tim Peters
 ;; Created:       Feb 1992
 ;; Version:       0.0
-;; Last Modified: 12SEP97
+;; Last Modified: 14SEP2001
 ;; Keywords: lilypond languages music notation
 
 ;; This software is provided as-is, without express or implied
 ;; This started out as a cannabalised version of python-mode.el, by hwn
 ;; For changes see the LilyPond ChangeLog
 ;;
+
 ;; TODO:
 ;;   - should handle block comments too.
 ;;   - handle lexer modes (\header, \melodic, \lyric) etc.
 ;;   - indentation
-;;   - notenames?
-;;   - fontlock: \melodic \melodic
 
 (defconst LilyPond-font-lock-keywords
-  (let* ((keywords '(
-
-"apply" "arpeggio" "autochange" "spanrequest" "commandspanrequest"
-"simultaneous" "sequential" "accepts" "alternative" "bar" "breathe"
-"char" "chordmodifiers" "chords" "clef" "cm" "consists" "consistsend"
-"context" "denies" "duration" "dynamicscript" "elementdescriptions"
-"font" "grace" "header" "in" "lyrics" "key" "mark" "musicalpitch"
-"time" "times" "midi" "mm" "name" "notenames" "notes" "outputproperty"
-"override" "set" "revert" "partial" "paper" "penalty" "property" "pt"
-"relative" "remove" "repeat" "addlyrics" "partcombine" "score"
-"script" "stylesheet" "skip" "textscript" "tempo" "translator"
-"transpose" "type" "unset" 
+  (let* ((keywords '( ; need special order due to over[lapping] of words
+
+;; all letters are lowercase
+"accepts" "accompany" "addlyrics" "aeolian" "alias" "alternative"
+"apply" "arpeggio" "autochange" "bar" "break" "breathe" "breve"
+"beamintervals" "broken" "blend" "bcincipit" "char" "ch" "cg"
+"chord\\(s\\|stest\\|chordmodifiers\\)?"
+"clef \\(bass\\|treble\\|violin\\|tenor\\)?"
+"clipping" "cm" "coda" "complex" "commandspanrequest" "consists\\(end\\)?"
+"context" "contrabasso" "decr" "default" "denies" "different" "dirs"
+"down\\(bow\\|prall\\)?" "dorian" "duration" "dynamicscript"
+"eccentric" "eg" "embeddedps" "endincipit" "elementdescriptions"
+"ex\\(treme\\)?" "fermata" "f+" "font" "flageolet" "fp" "fragment" "fz"
+"gliss\\(ando\\)?" "global" "gg" "gmsus" "grace" "gr\\(and\\)?staff"
+"header" "hsize" "in\\(clude\\|versions\\|visible\\)?" "ionian"
+"key\\(s\\(ignature\\)?\\)?" "lag" "lheel" "line\\(break\\|prall\\)"
+"locrian" "longa" "lower" "ltoe" "lydian" "lyrics"
+"maintainer" "mark" "maxima" "mel\\(isma\\|ody\\)?" "midi" "major"
+"minor" "mixolydian" "mordent" "monstrous" "multipart" "music"
+"musicalpitch" "m\\(p\\|f\\|m\\)?" "name" "newpage" "noise\\(beat\\)?"
+"normal\\(key\\|size\\)" "note\\(name\\)?s" "nt?"
+"one\\(staff\\)?" "open" "outputproperty" "over\\(ride\\)?"
+"paper" "partcombine" "partial" "penalty" "phrygian" "pitch" "p+"
+"property" "pt" "prall\\(mordent\\|prall\\|up\\)?" "quickmeasure"
+"relative" "remove" "repeat" "rever\\(t\\|seturn\\)" "rf" "rheel" "rhythm"
+"right" "rtoe" "scales?" "scheme" "score" "scpaper" "script" "scscore" "sd"
+"segno" "sequential" "set\\(tings\\)?" "sf\\(f\\|z\\)?" "shortlong"
+"simultaneous" "singlepart" "skip" "small" "smarttranspose" "spanrequest"
+"staccato" "staff\\(height\\|space\\)" "start" "stop\\(ped\\)?"
+"st\\(paper\\|score\\)" "stuff" "stylesheet" "su" "tab" "tempo" "tenuto" 
+"textscript" "thenotes" "thrd" "threevoice" "thumb" "tilt\\(down\\|up\\)" 
+"timb" "times?" "timpani" "tiny" "toeters" "touch" "trans\\(lator\\|pose\\)" 
+"trill" "trombe" "turn" "type" "t\\(wo\\(voice\\(steminvert\\)?\\)?\\)?" 
+"un\\(der\\|set\\)" "up\\(bow\\|per\\|prall\\)?" "version" 
+"viol\\(a\\|in\\(incipit\\)?\\|oncello\\)" "visible" "voicedefault" "vsize"
+"x" "zagers?" "z\\(eu\\|o\\)ger"
+
                      ))
-       (kwregex (mapconcat (lambda (x) (concat "\\\\" x))  keywords "\\|")))
+
+  (identifiers '( 
+
+;; in principle, have one or more uppercase letters
+"\\(\\(BarNumbering\\|Choir\\|Grand\\|HaraKiri\\|OrchestralPart\\|Piano\\|Rhythmic\\)Staff\\|\\(Cue\\|Lyrics\\)?Voice\\|\\(Orchestral\\)?Score\\|ChordNames\\|Grace\\|Lyrics\\|StaffGroup\\|Thread\\)Context" ; *Context
+"\\(script\\|dots\\|dynamic\\|slur\\|stem\\|sustain\\|tie\\|tuplet\\)\\(Both\\|Down\\|Up\\)" ; *(Both/Down/Up)
+"\\(slur\\|tie\\)\\(Dotted\\|Solid\\)" ; *(Dotted/Solid)
+"\\(autoBeam\\|cadenza\\|impro\\|turn\\)\\(Off\\|On\\)" ; *(On/Off)
+"\\(empty\\|fat\\)Text" ; *Text
+"shift\\(On+\\|Off\\|I\\|II\\|III\\|IV\\|V\\)" ; shift*
+"EasyNotation"
+"\\(hide\\|show\\)StaffSwitch"
+"\\(lower\\|upper\\)Voice"
+"voice\\(One\\|Two\\|Three\\|Four\\|B\\|C\\|D\\|E\\)" ; voice*
+"paper\\(Eleven\\|Sixteen\\|Thirteen\\|TwentySix\\)" ; paper*
+"\\(lower\\|upper\\)\\(Octave\\|One\\)" ; (lower/upper)*
+"hairyChord"
+"\\(Piano\\|Rhythmic\\)\\(Staff\\)?"
+"\\(clarinetti\\|fagotti\\|flauti\\|melodic\\|oboi\\|\\(quite\\|rather\\|somewhat\\)LongLyrics\\|violinoII?\\)?\\(Staff\\)?" ; *Staff
+"\\(archi\\|bassi\\|legni\\|ottoni\\|timpani\\|viole\\|violini\\)\\(Group\\)" ; *Group
+"melisma\\(End\\)?" "staff\\(One\\|Two\\)?" "rests\\(II\\)?" "specialKey"
+"noBreak" "paperTwentysix" "endHorizScript" "FontBody" "text(I)+"
+
+                      ))
+
+  (reservedwords '(
+
+;; Other words which look nicer when colored
+"Accidentals" "autoBeamSettings" "BarLine" "Beam"
+"ChordName\\([s]?\\|s.[a-zA-Z]*\\)" "Grace\\(.[a-zA-Z]*\\)?"
+"\\(Grand\\|Piano\\)Staff" "Lyrics\\(.[a-zA-Z]*\\)?" "NoteHead" 
+"Score\\(.[a-zA-Z]*\\)" "Stem" "Staff\\(Symbol\\)?" "TextScript" 
+"TimeSignature" "Voice\\(.[a-zA-Z]*\\)?"
+
+                     ))
+
+       (kwregex (mapconcat (lambda (x) (concat "\\\\" x))  keywords "\\|"))
+       (iregex (mapconcat (lambda (x) (concat "\\\\" x))  identifiers "\\|"))
+       (rwregex (mapconcat (lambda (x) (concat "" x))  reservedwords "\\|"))
+)
 
     (list 
-      (concat ".\\(" kwregex "\\)[^a-zA-Z]")
-      (concat "^\\(" kwregex "\\)[^a-zA-Z]")
-      '(".\\(\\\\[a-zA-Z][a-zA-Z]*\\)" 1 font-lock-variable-name-face)
-      '("^[\t ]*\\([a-zA-Z][_a-zA-Z]*\\) *=" 1 font-lock-variable-name-face)     
-    ))
+;; Fonts in use (from GNU Emacs Lisp Reference Manual, elisp.ps):
+;; font-lock- comment / string / keyword / builtin / function-name / 
+;;            variable-name / type / constant / warning -face
+
+      '("\\([_^]?\\\\[a-zA-Z][a-zA-Z]*\\)" 1 font-lock-constant-face)
+      '("\\(\\(#'\\)?[a-zA-Z][_a-zA-Z.\-]*[ \t]*=[ \t]*#\\)" 1 font-lock-variable-name-face)
+      '("\\([a-zA-Z][_a-zA-Z.\-]*\\)[ \t]*=[ \t]*" 1 font-lock-variable-name-face)
+      '("[ \t]*=[ \t]*\\([a-zA-Z][_a-zA-Z]*\\)" 1 font-lock-variable-name-face)
+
+
+;; other reserved words
+      (cons (concat "\\(" rwregex "\\)") 'font-lock-variable-name-face)
+
+;; highlight note names; separate notes from (other than ')'-type) brackets
+      '("[ <\{[~()\t]\\(\\(\\(\\(do\\|re\\|mi\\|fa\\|sol\\|la\\|si\\)\\(bb?\\|dd?\\|ss?\\)?\\)\\|\\([a-hsr]\\(flat\\(flat\\)?\\|sharp\\(sharp\\)?\\|ff?\\|ss?\\|is\\(siss\\|s\\|is\\)?\\|es\\(sess\\|s\\|es\\)?\\)?\\)\\|\\(as\\(as\\|es\\)?\\)\\|\\(es\\(es\\)?\\)\\|\\(bb\\)\\)[,']*\\(64\\|32\\|16\\|8\\|4\\|2\\|1\\)?[.]*\\)" 1 font-lock-type-face)
+
+;; highlight identifiers
+      (cons (concat "\\([_^]?\\(" iregex "\\)\\)+\\($\\|[] \t(~{}>\\\\]\\)") '(0 font-lock-function-name-face t))
+
+;; highlight keywords
+      (cons (concat "\\([_^]?\\(" kwregex "\\)\\)+\\($\\|[] \t(~{}>\\\\]\\)") '(0 font-lock-keyword-face t))
+
+      '("\\([][><}{]\\)" 0 font-lock-warning-face t)
+
+      '("\\([(~)]\\|\\\\<\\|\\\\!\\|\\\\>\\)" 0 font-lock-builtin-face t)
+
+;; highlight comments (again)
+      '("\\(%.*\\)" 0 font-lock-comment-face t)
+
+      )
+    )
   "Additional expressions to highlight in LilyPond mode.")
 
 ;; define a mode-specific abbrev table for those who use such things
index 98beddabc54bb60ab3e02711f6b6162cb60b7a47..b92bed22d3c7b63ec7a0d7f68ffa328f5d797a58 100644 (file)
@@ -1,4 +1,7 @@
-;; install this into emacs site-start.d/
+;;; lilypond-init.el --- Startup code for LilyPond mode
+;;;
+;;; Add this to your ~/.emacs or ~/.emacs.el, or
+;;; install this file into Emacs' site-start.d
 
 (autoload 'LilyPond-mode "lilypond-mode")
 (setq auto-mode-alist
@@ -6,6 +9,3 @@
 
 (add-hook 'LilyPond-mode-hook (lambda () (turn-on-font-lock)))
 
-
-
-
index bf72c82cfac13415f3d0c4a6060804b70ab9ca1f..60e1a9c2cf502ad09b3c72201faaab8be6b22970 100644 (file)
@@ -4,11 +4,16 @@
 ;;; source file of the GNU LilyPond music typesetter
 ;;; 
 ;;; (c) 1999--2001 Jan Nieuwenhuizen <janneke@gnu.org>
+;;; 
+;;; Changed 2001 Heikki Junes <heikki.junes@hut.fi>
+;;;    * Add PS-compilation, PS-viewing and MIDI-play (29th Aug 2001)
+;;;    * Keyboard shortcuts (12th Sep 2001)
+;;;    * Inserting tags, inspired on sgml-mode (11th Oct 2001)
 
 ;;; Inspired on auctex
 
 ;;;
-;;; Add this to your .emacs.el
+;;; Add this to your ~/.emacs or ~/.emacs.el
 ;;;     (load-library "lilypond-mode.el")
 ;;;     (setq auto-mode-alist
 ;;;      (append '(("\\.ly$" . LilyPond-mode) auto-mode-alist)))
@@ -31,6 +36,9 @@
 (defvar LilyPond-kick-xdvi nil
   "If true, no simultaneous xdvi's are started, but reload signal is sent.")
 
+(defvar LilyPond-command-history nil
+  "Command history list.")
+       
 (defvar LilyPond-regexp-alist
   '(("\\([a-zA-Z]?:?[^:( \t\n]+\\)[:( \t]+\\([0-9]+\\)[:) \t]" 1 2))
   "Regexp used to match LilyPond errors.  See `compilation-error-regexp-alist'.")
@@ -129,6 +137,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
   `(
@@ -136,6 +156,7 @@ in LilyPond-include-path."
     ("TeX" . ("tex '\\nonstopmode\\input %t'" . "View"))
 
     ("2Dvi" . ("ly2dvi %s" . "View"))
+    ("2PS" . ("ly2dvi -P %s" . "View"))
 
     ("Book" . ("lilypond-book %x" . "LaTeX"))
     ("LaTeX" . ("latex '\\nonstopmode\\input %l'" . "View"))
@@ -145,6 +166,10 @@ in LilyPond-include-path."
     
     ;; refreshes when kicked USR1
     ("View" . (,(concat LilyPond-xdvi-command " %d") . "LilyPond"))
+
+    ("ViewPS" . (,(concat LilyPond-gv-command " %p") . "LilyPond"))
+
+    ("Midi" . (,(concat LilyPond-midi-command " %m") . "LilyPond"))
     )
 
   "AList of commands to execute on the current document.
@@ -177,6 +202,7 @@ LilyPond-expand-list.
     ("%p" . ".ps")
     ("%l" . ".latex")
     ("%x" . ".tely")
+    ("%m" . ".midi")
     )
     
   "Alist of expansion strings for LilyPond command names."
@@ -228,7 +254,7 @@ Must be the car of an entry in `LilyPond-command-alist'."
         (answer (or LilyPond-command-force
                     (completing-read
                      (concat "Command: (default " default ") ")
-                     LilyPond-command-alist nil t))))
+                     LilyPond-command-alist nil t nil 'LilyPond-command-history))))
 
     ;; If the answer is "LilyPond" it will not be expanded to "LilyPond"
     (let ((answer (car-safe (assoc answer LilyPond-command-alist))))
@@ -249,6 +275,42 @@ Must be the car of an entry in `LilyPond-command-alist'."
   (LilyPond-command (LilyPond-command-query (LilyPond-master-file))
                    '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 (
@@ -358,10 +420,46 @@ command."
   (define-key LilyPond-mode-map "\C-c\C-b" 'LilyPond-command-buffer)
   (define-key LilyPond-mode-map "\C-c\C-k" 'LilyPond-kill-job)
   (define-key LilyPond-mode-map "\C-c\C-c" 'LilyPond-command-master)
+  (define-key LilyPond-mode-map "\C-c\C-d" 'LilyPond-command-formatdvi)
+  (define-key LilyPond-mode-map "\C-c\C-f" 'LilyPond-command-formatps)
+  (define-key LilyPond-mode-map "\C-c\C-s" 'LilyPond-command-smartview)
+  (define-key LilyPond-mode-map "\C-c\C-v" 'LilyPond-command-view)
+  (define-key LilyPond-mode-map "\C-c\C-p" 'LilyPond-command-viewps)
+  (define-key LilyPond-mode-map "\C-c\C-m" 'LilyPond-command-midi)
+  (define-key LilyPond-mode-map "\C-cn" 'lilypond-notes)
+  (define-key LilyPond-mode-map "\C-cs" 'lilypond-score)
   )
 
 ;;; Menu Support
 
+(define-skeleton lilypond-notes
+  "Lilypond notes tag."
+  nil
+;  (if (bolp) nil ?\n)
+  "\\notes"
+  (if (y-or-n-p "Set \"\\relative\" attribute? ")
+      (concat " \\relative " (skeleton-read "Relative: " "" str)))
+  " { " _ " }")
+
+(define-skeleton lilypond-score
+  "Lilypond score tag."
+  nil
+  (if (bolp) nil ?\n)
+  "\\score {\n"
+  "   " _ "\n"
+  "   \\paper {  }\n"
+  (if (y-or-n-p "Insert \"\\header\" field? ")
+      (concat "   \\header {\n      " 
+             (skeleton-read "Piece: " "piece = " str) "\n"
+             (if (y-or-n-p "Insert \"opus\" field? ")
+                 (concat "      " (skeleton-read "Opus: " "opus = " str) "\n"))
+             "   }\n"))
+  (if (y-or-n-p "Insert \"\\midi\" field? ")
+      (concat "   \\midi { " 
+             (skeleton-read "Midi: " "\\tempo 4 = " str)  
+             " }\n"))
+  "}\n")
+
 (defun LilyPond-command-menu-entry (entry)
   ;; Return LilyPond-command-alist ENTRY as a menu item.
   (let ((name (car entry)))
@@ -390,9 +488,26 @@ command."
             [ "Region" LilyPond-command-select-region
               :keys "C-c C-r" :style radio
               :selected (eq LilyPond-command-current 'LilyPond-command-region) ]))
-         (let ((file 'LilyPond-command-on-current))
-           (mapcar 'LilyPond-command-menu-entry LilyPond-command-alist))))
-
+         '(("Insert"
+            [ "\\notes..."  lilypond-notes
+              :keys "C-c n" ]
+            [ "\\score..."  lilypond-score
+              :keys "C-c s" ]
+            ))
+;        (let ((file 'LilyPond-command-on-current))
+;          (mapcar 'LilyPond-command-menu-entry LilyPond-command-alist))
+;;; Some kind of mapping which includes :keys might be more elegant
+         '([ "LilyPond" (LilyPond-command (LilyPond-command-menu "ViewPS") 'LilyPond-master-file) ])
+         '([ "TeX" (LilyPond-command (LilyPond-command-menu "TeX") 'LilyPond-master-file) ])
+         '([ "2Dvi" (LilyPond-command (LilyPond-command-menu "2Dvi") 'LilyPond-master-file) :keys "C-c C-d"])
+         '([ "2PS" (LilyPond-command (LilyPond-command-menu "2PS") 'LilyPond-master-file) :keys "C-c C-f"])
+         '([ "Book" (LilyPond-command (LilyPond-command-menu "Book") 'LilyPond-master-file) ])
+         '([ "LaTeX" (LilyPond-command (LilyPond-command-menu "LaTeX") 'LilyPond-master-file) ])
+         '([ "SmartView" (LilyPond-command (LilyPond-command-menu "SmartView") 'LilyPond-master-file) :keys "C-c C-s"])
+         '([ "View" (LilyPond-command (LilyPond-command-menu "View") 'LilyPond-master-file) :keys "C-c C-v"])
+         '([ "ViewPS" (LilyPond-command (LilyPond-command-menu "ViewPS") 'LilyPond-master-file) :keys "C-c C-p"])
+         '([ "Midi" (LilyPond-command (LilyPond-command-menu "Midi") 'LilyPond-master-file) :keys "C-c C-m"])
+         ))
 
 (defconst LilyPond-imenu-generic-re "^\\([a-zA-Z_][a-zA-Z0-9_]*\\) *="
   "Regexp matching Identifier definitions.")
@@ -414,7 +529,7 @@ command."
 (defun LilyPond-command-select-region ()
   (interactive)
   (message "Next command will be on the region")
-  (setq LilyPond-command-current 'LilPond-command-region))
+  (setq LilyPond-command-current 'LilyPond-command-region))
 
 (defun LilyPond-command-menu (name)
   ;; Execute LilyPond-command-alist NAME from a menu.
@@ -454,7 +569,7 @@ LilyPond-xdvi-command\t\tcommand to display dvi files -- bit superfluous"
   (setq comment-start-skip "%{? *")
 
   (make-local-variable 'comment-end)
-  (setq comment-end "\n")
+  (setq comment-end "")
 
   (make-local-variable 'block-comment-start)
   (setq block-comment-start "%{")
diff --git a/ly/init-as.fly b/ly/init-as.fly
deleted file mode 100644 (file)
index 757ca7c..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-% Toplevel AsciiScript initialisation file. 
-
-\version "1.3.146"
-
-\include "declarations-as.ly"
-
-% burp.  need to override lily.scm
-#(define cmr-alist
-  '(("bold" . "as-dummy") 
-    ("brace" . "as-braces")
-    ("default" . "as-dummy") 
-    ("dynamic" . "as-dummy") 
-    ("feta" . "feta") 
-    ("feta-1" . "feta") 
-    ("feta-2" . "feta") 
-    ("finger" . "as-number") 
-    ("typewriter" . "as-dummy") 
-    ("italic" . "as-dummy") 
-    ("roman" . "as-dummy") 
-    ("script" . "as-dummy") 
-    ("large" . "as-dummy") 
-    ("Large" . "as-dummy") 
-    ("mark" . "as-number") 
-    ("number" . "as-number") 
-    ("timesig" . "as-number")
-    ("volta" . "as-number"))
-)
-
-\score { 
-  \context Voice \notes\relative c {
-    \maininput
-  }
-  \paper {
-    \paper_as_nine
-    %linewidth=-1.0
-    %indent = 0.0
-    \translator { \StaffContext barSize = \staffheight }
-
-    % no beam-slope
-    %\translator { \VoiceContext beamHeight = #0 }
-  }  
-  %\midi{ }
-}
diff --git a/ly/init.fly b/ly/init.fly
deleted file mode 100644 (file)
index 640f136..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-% Toplevel initialisation file. 
-       
-\version "1.3.146"
-
-
-\include "declarations.ly"
-
-\score { 
-  \context Voice \notes\relative c {
-    \maininput
-  }
-  \paper { }  
-  \midi { }
-}
diff --git a/ly/init.sly b/ly/init.sly
deleted file mode 100644 (file)
index 497dfd8..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-% Toplevel initialisation file. 
-       
-\version "1.3.146"
-
-
-\include "declarations.ly"
-
-\score { 
-  \context Voice \notes\relative c {
-    \maininput
-  }
-  \paper {
-
-       % indent = 0.0
-  }  
-  \midi{ }
-}
index 1634bdbcf0388f00a6a45dbfc21df9ee92019374..4e039620160fb0f049c3ce5c597f8d740ed1aad9 100644 (file)
@@ -12,11 +12,12 @@ export MT_DESTROOT := $(topdir)/mf/out
 export DVIPSMAKEPK := mktexpk --destdir $(topdir)/mf/out
 endif
 
-export LILYPONDPREFIX:=$(depth)/
+# LilyPond is often run from within $(outdir), making a relative
+# PREFIX incorrect.
+export LILYPONDPREFIX:=$(shell cd $(depth)/ ; pwd)
 export PYTHONPATH:=$(buildscript-dir)/$(outdir):$(PYTHONPATH)
 
 # guile load path?
-
 the-script-dir=$(wildcard $(script-dir))
 
 ifneq ($(the-script-dir),)
index 6eeba3c36dab5b91d875948f58feb537ada3a94f..1b4342f66e88e2aedef5841004fdd5f4946c8b50 100644 (file)
@@ -86,6 +86,9 @@ rm `find /var/lib/texmf -name 'feta*pk -print' -or -name 'feta*tfm -print'` /tmp
 /sbin/install-info %{_prefix}/info/lilypond.info.gz %{_prefix}/info/dir 
 %endif
 
+
+echo 'Please logout first before using LilyPond.'
+
 %preun
 
 %if info=="yes"
index 09168cb9cd992f949f37df5e5ff80ed25ee554c7..1b041638a49f2cac87603a51ad5558b9114e43de 100644 (file)
@@ -10,7 +10,7 @@ include $(stepdir)/www-targets.make
 
 all: $(OUT_FILES)
 
-local-WWW: $(ly_examples) $(fly_examples) $(ps_examples) $(png_examples)
+local-WWW: $(ly_examples) $(ps_examples) $(png_examples) $(dvi_examples)
 
 tar:
        mkdir -p $(outdir)/$(tarball)
index edecfad30bfd62672011db78b6c8d4d3c70fb8da..7e2362e6344d8aad398e3290faf83da82b54e2d5 100644 (file)
@@ -5,22 +5,17 @@ include $(make-dir)/lilypond-vars.make
 LY_FILES = $(wildcard *.ly)
 SCORE_LY_FILES = $(shell fgrep -l score *.ly)
 
-FLY_FILES = $(wildcard *.fly)
-SLY_FILES = $(wildcard *.sly)
 
 M4_FILES = $(wildcard *.m4)
 LYM4_FILES = $(wildcard *.lym4)
-EXTRA_DIST_FILES += $(FLY_FILES) $(SLY_FILES) $(LY_FILES) $(M4_FILES) $(LYM4_FILES)
+EXTRA_DIST_FILES += $(LY_FILES) $(M4_FILES) $(LYM4_FILES)
 
 ly_examples=$(addprefix $(outdir)/, $(addsuffix .ly.txt, $(examples)))
-fly_examples=$(addprefix $(outdir)/, $(addsuffix .fly.txt, $(flexamples)))
-sly_examples=$(addprefix $(outdir)/, $(addsuffix .sly.txt, $(slexamples)))
 
-all_examples=$(flexamples) $(slexamples) $(examples)
-
-ps_examples=$(addprefix $(outdir)/, $(addsuffix .ps.gz, $(all_examples)))
-gif_examples=$(addprefix $(outdir)/, $(addsuffix .gif, $(all_examples)))
-png_examples=$(addprefix $(outdir)/, $(addsuffix .png, $(all_examples)))
+ps_examples=$(addprefix $(outdir)/, $(addsuffix .ps.gz, $(examples)))
+dvi_examples=$(addprefix $(outdir)/, $(addsuffix .dvi, $(examples)))
+gif_examples=$(addprefix $(outdir)/, $(addsuffix .gif, $(examples)))
+png_examples=$(addprefix $(outdir)/, $(addsuffix .png, $(examples)))
 
 html_subdirs=$(addprefix --subdirs ,$(SUBDIRS))
 
@@ -30,4 +25,4 @@ name-stem= $(notdir $(basename $<))
 OUT_FILES = $(addprefix $(outdir)/,$(M4_FILES:%.m4=%)) \
  $(addprefix $(outdir)/,$(LYM4_FILES:%.lym4=%.ly))
 
-score_ps = $(addprefix $(outdir)/, $(addsuffix .ps.gz, $($SCORE_LY_FILES)))
\ No newline at end of file
+score_ps = $(addprefix $(outdir)/, $(addsuffix .ps.gz, $($SCORE_LY_FILES)))
index 9ecf27559df236bfb94b65fc35b3690dddb38d06..67127499c7a62f51f429f1e132d8c3bdd9a05911 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Title: LilyPond
-Version: 1.4.8
-Entered-date: 24SEP01
+Version: 1.4.9
+Entered-date: 20NOV01
 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.4.8.tar.gz 
+       1000k lilypond-1.4.9.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       1000k lilypond-1.4.8.tar.gz 
+       1000k lilypond-1.4.9.tar.gz 
 Copying-policy: GPL
 End
index ba1f4308710f2ba8f33321d6efaa74ba421286a1..d98202de4244a426e3312866f16f16119ee256da 100644 (file)
@@ -1,11 +1,11 @@
 %define info yes
 
 Name: lilypond
-Version: 1.4.8
+Version: 1.4.9
 Release: 1
 License: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.4.8.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.4.9.tar.gz
 Summary: Create and print music notation 
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 BuildRoot: /tmp/lilypond-install
@@ -86,6 +86,9 @@ rm `find /var/lib/texmf -name 'feta*pk -print' -or -name 'feta*tfm -print'` /tmp
 /sbin/install-info %{_prefix}/info/lilypond.info.gz %{_prefix}/info/dir 
 %endif
 
+
+echo 'Please logout first before using LilyPond.'
+
 %preun
 
 %if info=="yes"
index 7b46cd9b29749efed9f712e49f53aa7e1b2caa57..41e5b2ccaa5e8a4a20d78887762ed63cf0cfcb86 100644 (file)
 
 Distribution: SuSE Linux 7.0 (i386)
 Name: lilypond
-Version: 1.4.8
+Version: 1.4.9
 Release: 2
 Copyright:    GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.4.8.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.4.9.tar.gz
 # music notation software for.. ?
 Summary: A program for printing sheet music.
 URL: http://www.lilypond.org/
index a2a9463991b640476edff63c028ce5eaeb4ae937..0c34abafe0353af1960a5215abc31a990c9c46c7 100644 (file)
@@ -26,6 +26,8 @@ TEXTABLES = $(addprefix $(outdir)/, $(FET_FILES:.mf=.tex))
 AFM_FILES = $(addprefix $(outdir)/, $(FET_FILES:.mf=.afm) $(AF_FILES:.af=.afm) $(addsuffix .afm, $(CM_AFM_FILES)))
 TFM_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.tfm))
 PFA_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.pfa)) 
+PFB_FILES = $(addprefix $(outdir)/, $(FONT_FILES:.mf=.pfb))
+
 
 # Make tfm files first, log files last, 
 # so that normally log files aren't made twice
index 932804b83d6e4a3db4890382b6d662efc8fe938c..2089c55f3daeb2d549b99b7f2a2e00330b54c54e 100644 (file)
--- a/po/da.po
+++ b/po/da.po
@@ -1,64 +1,64 @@
 # Danish translation of lilypond
 # Copyright (C) 2001 Free Software Foundation, Inc.
 # Keld Simonsen <keld@dkuug.dk>, 2001.
+# Reviewed 2001-09-28 Rune Zedeler <rz@daimi.au.dk>
 #
 msgid ""
 msgstr ""
 "Project-Id-Version: lilypond 1.4.6\n"
-"POT-Creation-Date: 2001-10-09 19:29+0200\n"
-"PO-Revision-Date: 2001-09-22 21:00+0200\n"
+"POT-Creation-Date: 2001-06-14 13:22+0200\n"
+"PO-Revision-Date: 2001-09-28 21:00+0200\n"
 "Last-Translator: Keld Simonsen <keld@dkuug.dk>\n"
 "Language-Team: Danish <dansk@klid.dk>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=iso-8859-1\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ly2dvi.py:109
+#: ly2dvi.py:105
 msgid "Generate .dvi with LaTeX for LilyPond"
 msgstr "Generér .dvi med LaTeX for LilyPond"
 
-#: data-file.cc:118 input.cc:85 ly2dvi.py:191 midi-parser.cc:100 mup2ly.py:93
-#: update-lily.py:119 warn.cc:23
+#: data-file.cc:118 input.cc:85 ly2dvi.py:190 midi-parser.cc:100 mup2ly.py:93
+#: update-lily.py:118 warn.cc:23
 msgid "warning: "
 msgstr "advarsel: "
 
-#: input.cc:90 ly2dvi.py:206 ly2dvi.py:638 ly2dvi.py:656 ly2dvi.py:847
-#: mup2ly.py:98 mup2ly.py:188 update-lily.py:124 update-lily.py:212 warn.cc:9
-#: warn.cc:17
+#: input.cc:90 ly2dvi.py:205 ly2dvi.py:804 mup2ly.py:98 mup2ly.py:188
+#: update-lily.py:123 update-lily.py:211 warn.cc:9 warn.cc:17
 msgid "error: "
 msgstr "fejl: "
 
-#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:126
+#: ly2dvi.py:206 mup2ly.py:100 update-lily.py:125
 msgid "Exiting ... "
 msgstr "Afslutter... "
 
-#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:184
+#: ly2dvi.py:264 mup2ly.py:158 update-lily.py:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE"
 msgstr "Brug: %s [FLAG]... FIL"
 
-#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:188
+#: ly2dvi.py:268 main.cc:120 main.cc:148 mup2ly.py:162 update-lily.py:187
 msgid "Options:"
 msgstr "Flag:"
 
-#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:192
+#: ly2dvi.py:272 main.cc:124 main.cc:171 mup2ly.py:168 update-lily.py:191
 #, c-format
 msgid "Report bugs to %s"
 msgstr ""
 "Rapportér programfejl til %s\n"
 "Rapportér fejl i oversættelsen til <dansk@klid.dk>"
 
-#: ly2dvi.py:305 mup2ly.py:185 update-lily.py:209
+#: ly2dvi.py:305 mup2ly.py:185 update-lily.py:208
 #, c-format
 msgid "Invoking `%s'"
 msgstr "Starter \"%s\""
 
-#: ly2dvi.py:309 mup2ly.py:188 update-lily.py:212
+#: ly2dvi.py:309 mup2ly.py:188 update-lily.py:211
 #, c-format
 msgid "command exited with value %d"
 msgstr "kommandoen afsluttede med værdi %d"
 
-#: ly2dvi.py:311 mup2ly.py:190 update-lily.py:214
+#: ly2dvi.py:311 mup2ly.py:190 update-lily.py:213
 msgid "(ignored)"
 msgstr "(ignoreret)"
 
@@ -68,21 +68,21 @@ msgstr "(ignoreret)"
 msgid "Cleaning %s..."
 msgstr "Renser %s..."
 
-#: ly2dvi.py:336 mup2ly.py:214 update-lily.py:238
+#: ly2dvi.py:336 mup2ly.py:214 update-lily.py:237
 #, c-format
 msgid "no such setting: %s"
 msgstr "indstillingen findes ikke: %s"
 
-#: ly2dvi.py:349 main.cc:113
+#: ly2dvi.py:349 main.cc:112
 msgid "write Makefile dependencies for every input file"
 msgstr "skriv Makefile-afhængigheder for hver inddatafil"
 
 # forklaring af flag -h
-#: ly2dvi.py:350 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:252
+#: ly2dvi.py:350 main.cc:96 main.cc:108 mup2ly.py:1117 update-lily.py:251
 msgid "this help"
 msgstr "denne hjælp"
 
-#: ly2dvi.py:351 main.cc:111 main.cc:116
+#: ly2dvi.py:351 main.cc:110 main.cc:115
 msgid "DIR"
 msgstr "KATALOG"
 
@@ -100,11 +100,11 @@ msgstr "behold al uddata, og navngiv kataloget %s.dir"
 msgid "don't run LilyPond"
 msgstr "kør ikke LilyPond"
 
-#: ly2dvi.py:354 main.cc:114
+#: ly2dvi.py:354 main.cc:113
 msgid "produce MIDI output only"
 msgstr "lav kun MIDI-uddata"
 
-#: ly2dvi.py:355 ly2dvi.py:356 main.cc:99 main.cc:112 main.cc:115
+#: ly2dvi.py:355 main.cc:99 main.cc:111 main.cc:114
 msgid "FILE"
 msgstr "FIL"
 
@@ -112,85 +112,71 @@ msgstr "FIL"
 msgid "write ouput to FILE"
 msgstr "skriv uddata til FIL"
 
-#: ly2dvi.py:356
-msgid "find pfa fonts used in FILE"
-msgstr ""
-
-#: ly2dvi.py:358
+#: ly2dvi.py:357
 msgid "generate PostScript output"
 msgstr "lav PostScript-uddata"
 
-#: ly2dvi.py:359
+#: ly2dvi.py:358
 msgid "KEY=VAL"
 msgstr "NØGLE=VÆRDI"
 
-#: ly2dvi.py:359
+#: ly2dvi.py:358
 msgid "change global setting KEY to VAL"
 msgstr "ændr global indstilling NØGLE til VÆRDI"
 
 # Førklaring til --verbose (borde være længre)
-#: ly2dvi.py:360 main.cc:119 mup2ly.py:1120 update-lily.py:256
+#: ly2dvi.py:359 main.cc:118 mup2ly.py:1120 update-lily.py:255
 msgid "verbose"
 msgstr "udførlig uddata"
 
-#: ly2dvi.py:361 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:257
+#: ly2dvi.py:360 main.cc:105 main.cc:117 mup2ly.py:1121 update-lily.py:256
 msgid "print version number"
 msgstr "vis versionsnummer"
 
-#: ly2dvi.py:362 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:259
+#: ly2dvi.py:361 main.cc:107 main.cc:119 mup2ly.py:1122 update-lily.py:258
 msgid "show warranty and copyright"
 msgstr "vis garanti og copyright"
 
-#: ly2dvi.py:384 ly2dvi.py:579 ly2dvi.py:604
+#: ly2dvi.py:383 ly2dvi.py:578 ly2dvi.py:603
 #, c-format
 msgid "Running %s..."
 msgstr "Kør %s..."
 
-#: ly2dvi.py:397
+#: ly2dvi.py:396
 #, c-format
 msgid "Analyzing %s..."
 msgstr "Analyserer %s..."
 
-#: ly2dvi.py:453
+#: ly2dvi.py:452
 #, c-format
 msgid "no lilypond output found for %s"
 msgstr "ingen lilyponduddata fundet for %s"
 
-#: ly2dvi.py:495
+#: ly2dvi.py:494
 #, c-format
 msgid "invalid value: %s"
 msgstr "ugyldigt værdi: %s"
 
-#: ly2dvi.py:638
-#, fuzzy, c-format
-msgid "not a PostScript file: `%s'"
-msgstr "kan ikke åbne fil: \"%s\""
-
-#: ly2dvi.py:656
-#, c-format
-msgid "getopt says: `%s'"
-msgstr ""
-
 # hær er det spørg om skrivning til en fil
-#: ly2dvi.py:823 scores.cc:44
+#: ly2dvi.py:781 scores.cc:44
 #, c-format
 msgid "dependencies output to `%s'..."
 msgstr "afhængigheder udskrevet til \"%s\"..."
 
 # hær er det spørg om skrivning til en fil (første parametern er t.ex
 # DVI, LATEX, MIDI, TEX)
-#: ly2dvi.py:834
+#: ly2dvi.py:791
 #, c-format
 msgid "%s output to `%s'..."
 msgstr "%s udskrevet til \"%s\"..."
 
-#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:836
+#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:793
 #: midi-score-parser.cc:24 scores.cc:136 scores.cc:142
 #, c-format
 msgid "can't find file: `%s'"
 msgstr "kan ikke finde fil: \"%s\""
 
-#: ly2dvi.py:847
+#: ly2dvi.py:804
 msgid "no files specified on command line."
 msgstr "ingen filer angivne på kommandolinjen."
 
@@ -217,7 +203,7 @@ msgstr "fejls
 msgid "define macro NAME [optional expansion EXP]"
 msgstr "definér makro NAVN [valfri makroudvidelse EXP]"
 
-#: main.cc:115 mup2ly.py:1118
+#: main.cc:114 mup2ly.py:1118
 msgid "write output to FILE"
 msgstr "skriv uddata til FIL"
 
@@ -239,80 +225,80 @@ msgstr "Skriver \"%s\"..."
 msgid "Fetch and rebuild from latest source package"
 msgstr "Hent og byg om fra seneste kildekodepakke"
 
-#: update-lily.py:224
+#: update-lily.py:223
 #, c-format
 msgid "Cleaning `%s'..."
 msgstr "Renser \"%s\"..."
 
-#: update-lily.py:244
+#: update-lily.py:243
 #, c-format
 msgid "unpack and build in DIR [%s]"
 msgstr "udpak og byg i DIR [%s]"
 
-#: update-lily.py:245
+#: update-lily.py:244
 msgid "execute COMMAND, subtitute:"
 msgstr "kør COMMAND, erstat:"
 
-#: update-lily.py:246
+#: update-lily.py:245
 msgid "%b: build root"
 msgstr "%b: rod for opbygning"
 
-#: update-lily.py:247
+#: update-lily.py:246
 #, c-format
 msgid "%n: package name"
 msgstr "%n: pakkenavn"
 
-#: update-lily.py:248
+#: update-lily.py:247
 msgid "%r: release directory"
 msgstr "%r: katalog for programudgivelse"
 
-#: update-lily.py:249
+#: update-lily.py:248
 msgid "%t: tarball"
 msgstr "%t: tarball"
 
-#: update-lily.py:250
+#: update-lily.py:249
 msgid "%v: package version"
 msgstr "%v: pakkeversion"
 
-#: update-lily.py:253
+#: update-lily.py:252
 #, c-format
 msgid "keep all output, and name the directory %s"
 msgstr "behold al uddata, og døb kataloget til %s"
 
-#: update-lily.py:254
+#: update-lily.py:253
 msgid "upon failure notify EMAIL[,EMAIL]"
 msgstr "ved fejl, underret EMAIL[,EMAIL]"
 
-#: update-lily.py:255
+#: update-lily.py:254
 msgid "remove previous build"
 msgstr "fjern foregående bygning"
 
-#: update-lily.py:258
+#: update-lily.py:257
 #, c-format
 msgid "fetch and build URL [%s]"
 msgstr "hent og byg URL [%s]"
 
-#: update-lily.py:366
+#: update-lily.py:365
 #, c-format
 msgid "Listing `%s'..."
 msgstr "Lister \"%s\"..."
 
-#: update-lily.py:427
+#: update-lily.py:426
 #, c-format
 msgid "latest is: %s"
 msgstr "seneste er: %s"
 
-#: update-lily.py:428
+#: update-lily.py:427
 #, c-format
 msgid "relax, %s is up to date"
 msgstr "slap af, %s er seneste version"
 
-#: update-lily.py:436 update-lily.py:449
+#: update-lily.py:435 update-lily.py:448
 #, c-format
 msgid "Fetching `%s'..."
 msgstr "Henter \"%s\"..."
 
-#: update-lily.py:458
+#: update-lily.py:457
 #, c-format
 msgid "Building `%s'..."
 msgstr "Bygger \"%s\"..."
@@ -403,12 +389,8 @@ msgid "does not match: `%s'"
 msgstr "matcher ikke: \"%s\""
 
 #: all-font-metrics.cc:102
-msgid ""
-" Rebuild all .afm files, and remove all .pk and .tfm files.  Rerun with -V "
-"to show font paths."
-msgstr ""
-" Genopbyg alle .afm-filer, og fjern alle .pk- og .tfm-filer. Kør igen med -V "
-"for at vise skrifttypesøgestier."
+msgid " Rebuild all .afm files, and remove all .pk and .tfm files.  Rerun with -V to show font paths."
+msgstr " Genopbyg alle .afm-filer, og fjern alle .pk- og .tfm-filer. Kør igen med -V for at vise skrifttypesøgestier."
 
 #: all-font-metrics.cc:167
 #, c-format
@@ -438,6 +420,14 @@ msgstr "Giver op"
 msgid "Can't switch translators, I'm there already"
 msgstr "Kan ikke skifte oversætter, jeg er her allerede"
 
+#: beam.cc:86
+msgid "beam has less than two stems"
+msgstr "bjælke har mindre end to nodehalse"
+
+#: beam.cc:637
+msgid "weird beam vertical offset"
+msgstr "underlig lodret afstand for bjælke"
+
 #: beam-engraver.cc:91 beam-engraver.cc:124
 msgid "can't find start of beam"
 msgstr "kan ikke finde start på bjælke"
@@ -462,14 +452,6 @@ msgstr "nodehalsen passer ikke i bj
 msgid "beam was started here"
 msgstr "bjælken startede her"
 
-#: beam.cc:86
-msgid "beam has less than two stems"
-msgstr "bjælke har mindre end to nodehalse"
-
-#: beam.cc:637
-msgid "weird beam vertical offset"
-msgstr "underligt lodret afstand for bjælke"
-
 #: break-align-item.cc:136
 #, c-format
 msgid "unknown spacing pair `%s', `%s'"
@@ -494,28 +476,28 @@ msgstr "Jeg er selv 
 msgid "none of these in my family"
 msgstr "ingen af disse i min familie"
 
-#: chord-tremolo-engraver.cc:141 percent-repeat-engraver.cc:192
-msgid "unterminated chord tremolo"
-msgstr "ikke-afsluttet akkordtremolo"
-
-#: chord-tremolo-iterator.cc:48
-msgid "no one to print a tremolos"
-msgstr "der er ingen som kan skrive en tremolo"
-
-#: chord.cc:376
+#: chord.cc:369
 #, c-format
 msgid "invalid subtraction: not part of chord: %s"
 msgstr "ugyldig subtraktion: ikke del af akkord: %s"
 
 # "pitch" hær skal alltså være en ton i et akkord
-#: chord.cc:405
+#: chord.cc:398
 #, c-format
 msgid "invalid inversion pitch: not part of chord: %s"
 msgstr "ugyldig tone for inversion: ikke del af en akkord: %s"
 
+#: chord-tremolo-engraver.cc:141 percent-repeat-engraver.cc:192
+msgid "unterminated chord tremolo"
+msgstr "ikke-afsluttet akkordtremolo"
+
+#: chord-tremolo-iterator.cc:48
+msgid "no one to print a tremolos"
+msgstr "der er ingen som kan skrive en tremolo"
+
 #: collision.cc:127
 msgid "Too many clashing notecolumns.  Ignoring them."
-msgstr "For mange sammenhængende nodekolonner. Ignorerer dem."
+msgstr "For mange overlappende nodekolonner. Ignorerer dem."
 
 #: dimensions.cc:13
 msgid "NaN"
@@ -543,13 +525,11 @@ msgstr "uafsluttet udvider"
 
 #: extender-engraver.cc:109
 msgid "Nothing to connect extender to on the left.  Ignoring extender request."
-msgstr ""
-"Der er ingenting at forbinde udvideren mod til venstre. Ignorerer ønsket om "
-"udvider"
+msgstr "Der er ingenting at forbinde udvideren mod til venstre. Ignorerer ønsket om udvider"
 
 #: folded-repeat-iterator.cc:78
 msgid "no one to print a repeat brace"
-msgstr "det er ingen som kan skrive et gentagelsestegn"
+msgstr "der er ingen som kan skrive et gentagelsestegn"
 
 #: font-interface.cc:237
 msgid "couldn't find any font satisfying "
@@ -561,11 +541,11 @@ msgstr "Ingen mulig linjebrydning fandtes"
 
 #: grace-iterator.cc:43
 msgid "no Grace context available"
-msgstr "ingen prydomgivelse tilgængelig"
+msgstr "ingen forslagsnodeomgivelse (Grace) tilgængelig"
 
 #: grace-position-engraver.cc:96
 msgid "Unattached grace notes.  Attaching to last musical column."
-msgstr "Ikke-fæstede prydsnoder. Fæster ved sidste musikkolonne."
+msgstr "Ikke-fæstede forslagsnoder. Fæster ved sidste musikkolonne."
 
 #: hairpin.cc:93
 msgid "decrescendo too small"
@@ -581,9 +561,7 @@ msgstr "uafsluttet bindestreg"
 
 #: hyphen-engraver.cc:102
 msgid "Nothing to connect hyphen to on the left.  Ignoring hyphen request."
-msgstr ""
-"Det er ingenting at forbinde bindestregen mod til venstre. Ignorerer "
-"bindestregsforespørgslen."
+msgstr "Der er ingenting at forbinde bindestregen med til venstre. Ignorerer bindestregsforespørgslen."
 
 #: key-engraver.cc:99
 msgid "Conflicting key signatures found."
@@ -600,7 +578,7 @@ msgstr "FIX: tonartsskiftsfletning"
 #: lily-guile.cc:141
 #, c-format
 msgid "(load path: `%s')"
-msgstr "(indlæsningssøgesti: \"%s\""
+msgstr "(indlæsningssøgesti: \"%s\")"
 
 #: line-of-score.cc:96
 #, c-format
@@ -618,68 +596,67 @@ msgstr "Beregner kolonnepositioner..."
 
 #: lyric-phrasing-engraver.cc:284
 msgid "lyrics found without any matching notehead"
-msgstr "tekst fundet uden noget matchende nodehoved"
+msgstr "tekst fundet uden noget tilhørende nodehoved"
 
 #: lyric-phrasing-engraver.cc:289
 msgid "Huh? Melismatic note found to have associated lyrics."
 msgstr "Øh? Melismatisk node har tilhørende tekst."
 
-#. print example usage:  lilypond -e "(set-lily-option 'help 0)" ?
-#: main.cc:105
+#: main.cc:104
 msgid "EXPR"
 msgstr "UDTR"
 
-#: main.cc:105
+#: main.cc:104
 msgid "evalute EXPR as Scheme after .scm init is read"
 msgstr "evaluér UDTR som Scheme efter .scm-init er læst"
 
 #. another bug in option parser: --output=foe is taken as an abbreviation
 #. for --output-format
-#: main.cc:108
+#: main.cc:107
 msgid "EXT"
 msgstr "FMT"
 
-#: main.cc:108
+#: main.cc:107
 msgid "use output format EXT (scm, ps, tex or as)"
 msgstr "brug uddataformat FMT (scm, ps, tex eller as)"
 
-#: main.cc:110
+#: main.cc:109
 msgid "FIELD"
 msgstr "FELT"
 
-#: main.cc:110
+#: main.cc:109
 msgid "write header field to BASENAME.FIELD"
-msgstr "skriv rubrikfælt til BASNAVN.FELT"
+msgstr "skriv rubrikfelt til BASENAVN.FELT"
 
-#: main.cc:111
+#: main.cc:110
 msgid "add DIR to search path"
 msgstr "tilføj KATALOG til søgestien"
 
-#: main.cc:112
+#: main.cc:111
 msgid "use FILE as init file"
 msgstr "brug FIL som init-fil"
 
-#: main.cc:116
+#: main.cc:115
 msgid "prepend DIR to dependencies"
 msgstr "tilføj KATALOG efter afhængigheder"
 
-#: main.cc:117
+#: main.cc:116
 msgid "inhibit file output naming and exporting"
 msgstr "hindr navngivning af filuddata og eksportering"
 
 #.
 #. No version number or newline here. It confuses help2man
 #.
-#: main.cc:137
+#: main.cc:136
 #, c-format
 msgid "Usage: %s [OPTION]... FILE..."
 msgstr "Brug: %s [FLAG]... FIL..."
 
-#: main.cc:139
+#: main.cc:138
 msgid "Typeset music and or play MIDI from FILE"
 msgstr "Typesæt musik og/eller afspil MIDI fra FIL"
 
-#: main.cc:143
+#: main.cc:142
 msgid ""
 "LilyPond is a music typesetter.  It produces beautiful sheet music\n"
 "using a high level description file as input.  LilyPond is part of \n"
@@ -689,11 +666,11 @@ msgstr ""
 "højniveaubeskrivning af musikken i en fil. LilyPond er en del af\n"
 "GNU-projektet.\n"
 
-#: main.cc:153
+#: main.cc:152
 msgid "This binary was compiled with the following options:"
 msgstr "Dette program blev oversat med følgende flag:"
 
-#: main.cc:56 main.cc:180
+#: main.cc:56 main.cc:179
 #, c-format
 msgid ""
 "This is free software.  It is covered by the GNU General Public License,\n"
@@ -704,16 +681,16 @@ msgstr ""
 "og du må ændre og/eller distribuere kopier af det under visse\n"
 "betingelser. Kør \"%s --warranty\" for mere information.\n"
 
-#: main.cc:63 main.cc:187 main.cc:199
+#: main.cc:63 main.cc:186 main.cc:198
 #, c-format
 msgid "Copyright (c) %s by"
 msgstr "Copyright © %s af"
 
-#: main.cc:197
+#: main.cc:196
 msgid "GNU LilyPond -- The music typesetter"
 msgstr "GNU Lilypond -- Musiktypesætteren"
 
-#: main.cc:72 main.cc:205
+#: main.cc:72 main.cc:204
 msgid ""
 "    This program is free software; you can redistribute it and/or\n"
 "modify it under the terms of the GNU General Public License version 2\n"
@@ -755,10 +732,10 @@ msgstr "t
 msgid "silly pitch"
 msgstr "tåbelig tone"
 
-#: music-output-def.cc:115
+#: musical-request.cc:28
 #, c-format
-msgid "can't find `%s' context"
-msgstr "kan ikke finde omgivelsen \"%s\""
+msgid "Transposition by %s makes accidental larger than two"
+msgstr "Transponering med %s medfører løst fortegn større end to"
 
 #: music.cc:232
 msgid "ly_get_mus_property (): Not a Music"
@@ -780,10 +757,10 @@ msgstr "ly_make_music (): Ikke en streng"
 msgid "ly_music_name (): Not a music expression"
 msgstr "ly_music_name (): Ikke et musikudtryk"
 
-#: musical-request.cc:28
+#: music-output-def.cc:115
 #, c-format
-msgid "Transposition by %s makes accidental larger than two"
-msgstr "Transponering med %s gør accicental større end to"
+msgid "can't find `%s' context"
+msgstr "kan ikke finde omgivelsen \"%s\""
 
 #: my-lily-lexer.cc:139
 #, c-format
@@ -801,7 +778,7 @@ msgstr "Tolker..."
 
 #: my-lily-parser.cc:57
 msgid "Braces don't match"
-msgstr "Krølleparenteser passer ikke"
+msgstr "Klammer passer ikke"
 
 #: output-property-music-iterator.cc:20 request-chord-iterator.cc:76
 #, c-format
@@ -857,11 +834,11 @@ msgstr "ingen af disse i min familie: \"%s\""
 
 #: percent-repeat-engraver.cc:117
 msgid "Don't know how to handle a percent repeat of this length."
-msgstr "Véd ikke hvordan en procentgentagelse af denne længde skal håndteres."
+msgstr "Véd ikke hvordan en procenttegnsgentagelse (percent) af denne længde skal håndteres."
 
 #: percent-repeat-iterator.cc:53
 msgid "no one to print a percent"
-msgstr "der er ingen som kan skrive en procent"
+msgstr "der er ingen som kan skrive et procent-tegn"
 
 #: performance.cc:51
 msgid "Track ... "
@@ -890,7 +867,7 @@ msgid "can't find start of phrasing slur"
 msgstr "kan ikke finde start på fraseringsbue"
 
 #: piano-pedal-engraver.cc:142 piano-pedal-engraver.cc:154
-#: piano-pedal-performer.cc:86
+#: piano-pedal-performer.cc:87
 #, c-format
 msgid "can't find start of piano pedal: `%s'"
 msgstr "kan ikke finde start på pianopedal: \"%s\""
@@ -921,15 +898,10 @@ msgstr "for mange kolliderende pauser"
 msgid "too many notes for rest collision"
 msgstr "for mange noder for pausesammenstød"
 
-#: scm-option.cc:63
+#: scm-option.cc:59
 msgid "Scheme options:"
 msgstr "Scheme-flag:"
 
-#: score-engraver.cc:188
-#, c-format
-msgid "unbound spanner `%s'"
-msgstr "ubunden bro \"%s\""
-
 #: score.cc:78
 msgid "Interpreting music..."
 msgstr "Tolker musik..."
@@ -948,6 +920,11 @@ msgstr "Fejl fundne/*, behandler ikke partitur*/"
 msgid "elapsed time: %.2f seconds"
 msgstr "tidsforbrug: %.2f sekunder"
 
+#: score-engraver.cc:188
+#, c-format
+msgid "unbound spanner `%s'"
+msgstr "ubunden bro \"%s\""
+
 #: scores.cc:106
 msgid "Score contains errors; will not process it"
 msgstr "Partitur indholder fejl; vil ikke behandle det"
@@ -967,32 +944,36 @@ msgstr "Kan ikke tolke artikulering \"%s\""
 msgid "Separation_item:  I've been drinking too much"
 msgstr "Separation_item: Jeg har drukket for meget"
 
+#: slur.cc:48
+msgid "Putting slur over rest.  Ignoring."
+msgstr "Sætter legatobue over pause. Ignorerer."
+
+#: slur.cc:383
+msgid "Slur over rest?"
+msgstr "Legatobue over pause?"
+
 #: slur-engraver.cc:127
 msgid "unterminated slur"
-msgstr "uafsluttet bue"
+msgstr "uafsluttet legatobue"
 
 #. How to shut up this warning, when Voice_devnull_engraver has
 #. eaten start request?
 #: slur-engraver.cc:144
 msgid "can't find start of slur"
-msgstr "kan ikke finde start på bue"
+msgstr "kan ikke finde start på legatobue"
 
-#: slur.cc:48
-msgid "Putting slur over rest.  Ignoring."
-msgstr "Sætter bue over pause. Ignorerer."
-
-#: slur.cc:383
-msgid "Slur over rest?"
-msgstr "Bue over pause?"
+#: stem.cc:116
+msgid "Weird stem size; check for narrow beams"
+msgstr "Mærkelig nodehalsstørrelse; tjek for smalle bjælker"
 
 #: stem-engraver.cc:115
 #, c-format
 msgid "Adding note head to incompatible stem (type = %d)"
-msgstr "Tilføjer nodehoved til inkompatibel bue (type = %d)"
+msgstr "Tilføjer nodehoved til inkompatibel nodehals (type = %d)"
 
-#: stem.cc:116
-msgid "Weird stem size; check for narrow beams"
-msgstr "Mærkelig nodehalsstørrelse; tjek for smalle bjælker"
+#: text-spanner.cc:121
+msgid "Text_spanner too small"
+msgstr "Tekst_bro for lille"
 
 #: text-spanner-engraver.cc:94
 msgid "can't find start of text spanner"
@@ -1006,9 +987,10 @@ msgstr "har allerede en tekstbro"
 msgid "unterminated text spanner"
 msgstr "uafsluttet tekstbro"
 
-#: text-spanner.cc:121
-msgid "Text_spanner too small"
-msgstr "Tekst_bro for lille"
+#: tfm.cc:77
+#, c-format
+msgid "can't find ascii character: %d"
+msgstr "kan ikke finde ASCII-tegn: %d"
 
 #: tfm-reader.cc:106
 #, c-format
@@ -1018,27 +1000,21 @@ msgstr "TFM-rubrik i \"%s\" har kun %u ord"
 #: tfm-reader.cc:140
 #, c-format
 msgid "%s: TFM file has %u parameters, which is more than the %u I can handle"
-msgstr ""
-"%s: TFM-fil har %u parametre, hvilket er mere end de %u jeg kan håndtere"
-
-#: tfm.cc:77
-#, c-format
-msgid "can't find ascii character: %d"
-msgstr "kan ikke finde ASCII-tegn: %d"
+msgstr "%s: TFM-fil har %u parametre, hvilket er mere end de %u jeg kan håndtere"
 
 #. How to shut up this warning, when no notes appeared because
 #. they were suicided by Thread_devnull_engraver?
 #: tie-engraver.cc:220 tie-performer.cc:173
 msgid "No ties were created!"
-msgstr "Ingen buer blev lavet!"
+msgstr "Ingen bindebuer blev lavet!"
 
 #: tie-engraver.cc:240
 msgid "lonely tie"
-msgstr "ensom bue"
+msgstr "ensom bindebue"
 
 #: time-scaled-music-iterator.cc:25
 msgid "no one to print a tuplet start bracket"
-msgstr "der findes ingen som kan skrive en startparentes for tuppel"
+msgstr "der findes ingen som kan skrive en startklamme for tuppel"
 
 #: timing-translator.cc:38
 #, c-format
@@ -1081,18 +1057,13 @@ msgstr "kan ikke finde eller oprette: \"%s\""
 
 #: translator-group.cc:414
 #, c-format
-msgid ""
-"Can't find property type-check for `%s'.  Perhaps you made a typing error? "
-"Doing assignment anyway."
-msgstr ""
-"Kan ikke finde egenskabstypekontrol for \"%s\". Måske har du lavet en "
-"tastefejl? Laver tildeling alligevel."
+msgid "Can't find property type-check for `%s'.  Perhaps you made a typing error? Doing assignment anyway."
+msgstr "Kan ikke finde egenskabstypekontrol for \"%s\". Måske har du lavet en tastefejl? Laver tildeling alligevel."
 
 #: translator-group.cc:428
 #, c-format
 msgid "Type check for `%s' failed; value `%s' must be of type `%s'"
-msgstr ""
-"Typekontrol for \"%s\" mislykkedes; værdi \"%s\" skal have typen \"%s\""
+msgstr "Typekontrol for \"%s\" mislykkedes; værdi \"%s\" skal have typen \"%s\""
 
 #. programming_error?
 #: translator-group.cc:447
@@ -1101,11 +1072,11 @@ msgstr "ly-get-trans-property: forventede et Translator_group-argument"
 
 #: volta-engraver.cc:87
 msgid "No volta spanner to end"
-msgstr "Ingen reprisebro til slut"
+msgstr "Ingen volte-bro at afslutte"
 
 #: volta-engraver.cc:104
 msgid "Already have a volta spanner.  Stopping that one prematurely."
-msgstr "Har allerede en reprisebro. Stopper denne for tidligt."
+msgstr "Har allerede en volte-bro. Stopper denne for tidligt."
 
 #: volta-engraver.cc:108
 msgid "Also have a stopped spanner.  Giving up."
@@ -1122,7 +1093,7 @@ msgstr "Identificerer m
 
 #: parser.yy:697
 msgid "More alternatives than repeats.  Junking excess alternatives."
-msgstr "Flere alternativer end repriser. Stryger tiloversblevne alternativer."
+msgstr "Flere alternativer end gentagelser. Stryger tiloversblevne alternativer."
 
 #: parser.yy:761
 msgid "Second argument must be a symbol"
@@ -1132,32 +1103,32 @@ msgstr "Andet argument skal v
 msgid "First argument must be a procedure taking 1 argument"
 msgstr "Første argument skal være en procedure som tager 1 argument"
 
-#: parser.yy:1264
+#: parser.yy:1263
 msgid "Expecting string as script definition"
 msgstr "Forventer streng som skriptdefinition"
 
-#: parser.yy:1274
+#: parser.yy:1273
 msgid "Can't specify direction for this request"
 msgstr "Kan ikke angive retning for denne forespørgsel"
 
-#: parser.yy:1399
+#: parser.yy:1398
 msgid "Expecting musical-pitch value"
 msgstr "Forventer nodeværdi"
 
-#: parser.yy:1410
+#: parser.yy:1409
 msgid "Must have duration object"
 msgstr "Skal have tidslængdeobjekt"
 
-#: parser.yy:1419 parser.yy:1427
+#: parser.yy:1418 parser.yy:1426
 msgid "Have to be in Lyric mode for lyrics"
 msgstr "Skal være i teksttilstand (Lyric mode) for tekst"
 
-#: parser.yy:1580 parser.yy:1637
+#: parser.yy:1579 parser.yy:1636
 #, c-format
 msgid "not a duration: %d"
 msgstr "ikke en tidslængde: %d"
 
-#: parser.yy:1648
+#: parser.yy:1645
 msgid "Have to be in Note mode for notes"
 msgstr "Skal være i nodetilstand (Note mode) for noder"
 
@@ -1165,7 +1136,7 @@ msgstr "Skal v
 msgid "Have to be in Chord mode for chords"
 msgstr "Skal være i akkordtilstand (Chord mode) for akkord"
 
-#: parser.yy:1911
+#: parser.yy:1910
 msgid "need integer number arg"
 msgstr "behøver heltalsargument"
 
@@ -1309,9 +1280,8 @@ msgid "ACC[:MINOR]"
 msgstr "TONE[:MOL]"
 
 #: main.cc:97
-#, fuzzy
-msgid "set key: ACC +sharps/-flats; :1 minor"
-msgstr "sæt tonart: TONE +forhøjelser/-sænkninger; :1 mol"
+msgid "set key: ACC +sharps/-flads; :1 minor"
+msgstr "sæt toneart: TONE +forhøjelser/-sænkninger; :1 mol"
 
 #: main.cc:98
 msgid "don't output tuplets, double dots or rests, smallest is 32"
index 4f736b4a919c12670f1e9ae88d1e81798ce594af..e40f655d1c3a7a69712b22ef43e97b70be88f1cd 100644 (file)
--- a/po/de.po
+++ b/po/de.po
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: Lilypond 1.2.8\n"
-"POT-Creation-Date: 2001-10-09 19:29+0200\n"
+"POT-Creation-Date: 2001-09-09 17:30+0200\n"
 "PO-Revision-Date: 1999-09-18 01:30+0200\n"
 "Last-Translator: Erwin Dieterich <bamse@gmx.de>\n"
 "Language-Team: LANGUAGE <de@li.org>\n"
@@ -13,181 +13,181 @@ msgstr ""
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Content-Transfer-Encoding: ENCODING\n"
 
-#: ly2dvi.py:109
+#: ly2dvi.py:106
 msgid "Generate .dvi with LaTeX for LilyPond"
 msgstr ""
 
 #: data-file.cc:118 input.cc:85 ly2dvi.py:191 midi-parser.cc:100 mup2ly.py:93
-#: update-lily.py:119 warn.cc:23
+#: update-lily.py:118 warn.cc:23
 msgid "warning: "
 msgstr "Warnung: "
 
-#: input.cc:90 ly2dvi.py:206 ly2dvi.py:638 ly2dvi.py:656 ly2dvi.py:847
-#: mup2ly.py:98 mup2ly.py:188 update-lily.py:124 update-lily.py:212 warn.cc:9
+#: input.cc:90 ly2dvi.py:206 ly2dvi.py:639 ly2dvi.py:657 ly2dvi.py:848
+#: mup2ly.py:98 mup2ly.py:188 update-lily.py:123 update-lily.py:211 warn.cc:9
 #: warn.cc:17
 msgid "error: "
 msgstr "Fehler: "
 
-#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:126
+#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:125
 #, fuzzy
 msgid "Exiting ... "
 msgstr "Linie ... "
 
-#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:184
+#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:183
 #, fuzzy, c-format
 msgid "Usage: %s [OPTION]... FILE"
 msgstr "Verwendung: %s [OPTIONEN] ... [DATEI]"
 
-#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:188
+#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:187
 msgid "Options:"
 msgstr "Optionen:"
 
-#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:192
+#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:191
 #, fuzzy, c-format
 msgid "Report bugs to %s"
 msgstr "Melde Fehler an"
 
-#: ly2dvi.py:305 mup2ly.py:185 update-lily.py:209
+#: ly2dvi.py:306 mup2ly.py:185 update-lily.py:208
 #, fuzzy, c-format
 msgid "Invoking `%s'"
 msgstr "Uralt-Bitte: `%s'"
 
-#: ly2dvi.py:309 mup2ly.py:188 update-lily.py:212
+#: ly2dvi.py:310 mup2ly.py:188 update-lily.py:211
 #, c-format
 msgid "command exited with value %d"
 msgstr ""
 
-#: ly2dvi.py:311 mup2ly.py:190 update-lily.py:214
+#: ly2dvi.py:312 mup2ly.py:190 update-lily.py:213
 msgid "(ignored)"
 msgstr ""
 
-#: ly2dvi.py:321
+#: ly2dvi.py:322
 #, fuzzy, c-format
 msgid "Cleaning %s..."
 msgstr "Uralt-Bitte: `%s'"
 
-#: ly2dvi.py:336 mup2ly.py:214 update-lily.py:238
+#: ly2dvi.py:337 mup2ly.py:214 update-lily.py:237
 #, fuzzy, c-format
 msgid "no such setting: %s"
 msgstr "Kein solches instrument: `%s'"
 
-#: ly2dvi.py:349 main.cc:113
+#: ly2dvi.py:350 main.cc:113
 msgid "write Makefile dependencies for every input file"
 msgstr "Schreibe Makefile-Abhängigkeiten für jede Eingabedatei"
 
-#: ly2dvi.py:350 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:252
+#: ly2dvi.py:351 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:251
 msgid "this help"
 msgstr "Diese Hilfe"
 
-#: ly2dvi.py:351 main.cc:111 main.cc:116
+#: ly2dvi.py:352 main.cc:111 main.cc:116
 msgid "DIR"
 msgstr "DIR"
 
-#: ly2dvi.py:351
+#: ly2dvi.py:352
 #, fuzzy
 msgid "add DIR to LilyPond's search path"
 msgstr "Hänge DIR an den Suchpfad an"
 
-#: ly2dvi.py:352
+#: ly2dvi.py:353
 #, c-format
 msgid "keep all output, and name the directory %s.dir"
 msgstr ""
 
-#: ly2dvi.py:353
+#: ly2dvi.py:354
 msgid "don't run LilyPond"
 msgstr ""
 
-#: ly2dvi.py:354 main.cc:114
+#: ly2dvi.py:355 main.cc:114
 #, fuzzy
 msgid "produce MIDI output only"
 msgstr "Nur Midiausgabe"
 
-#: ly2dvi.py:355 ly2dvi.py:356 main.cc:99 main.cc:112 main.cc:115
+#: ly2dvi.py:356 ly2dvi.py:357 main.cc:99 main.cc:112 main.cc:115
 msgid "FILE"
 msgstr "DATEI"
 
-#: ly2dvi.py:355
+#: ly2dvi.py:356
 #, fuzzy
 msgid "write ouput to FILE"
 msgstr "Schreibe die Ausgabe in BASENAME[-x].Erweiterung"
 
-#: ly2dvi.py:356
+#: ly2dvi.py:357
 msgid "find pfa fonts used in FILE"
 msgstr ""
 
-#: ly2dvi.py:358
+#: ly2dvi.py:359
 #, fuzzy
 msgid "generate PostScript output"
 msgstr "Degenerierte Zwangsbedingungen"
 
-#: ly2dvi.py:359
+#: ly2dvi.py:360
 msgid "KEY=VAL"
 msgstr ""
 
-#: ly2dvi.py:359
+#: ly2dvi.py:360
 msgid "change global setting KEY to VAL"
 msgstr ""
 
-#: ly2dvi.py:360 main.cc:119 mup2ly.py:1120 update-lily.py:256
+#: ly2dvi.py:361 main.cc:119 mup2ly.py:1120 update-lily.py:255
 #, fuzzy
 msgid "verbose"
 msgstr "Sei geschwätzig"
 
-#: ly2dvi.py:361 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:257
+#: ly2dvi.py:362 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:256
 msgid "print version number"
 msgstr "Zeige die Versionsnummer"
 
-#: ly2dvi.py:362 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:259
+#: ly2dvi.py:363 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:258
 msgid "show warranty and copyright"
 msgstr "Zeige Garantie und Urheberrechte"
 
-#: ly2dvi.py:384 ly2dvi.py:579 ly2dvi.py:604
+#: ly2dvi.py:385 ly2dvi.py:580 ly2dvi.py:605
 #, fuzzy, c-format
 msgid "Running %s..."
 msgstr "Uralt-Bitte: `%s'"
 
-#: ly2dvi.py:397
+#: ly2dvi.py:398
 #, fuzzy, c-format
 msgid "Analyzing %s..."
 msgstr "Uralt-Bitte: `%s'"
 
-#: ly2dvi.py:453
+#: ly2dvi.py:454
 #, c-format
 msgid "no lilypond output found for %s"
 msgstr ""
 
-#: ly2dvi.py:495
+#: ly2dvi.py:496
 #, fuzzy, c-format
 msgid "invalid value: %s"
 msgstr "Ungültiger Buchstabe `%c'"
 
-#: ly2dvi.py:638
+#: ly2dvi.py:639
 #, fuzzy, c-format
 msgid "not a PostScript file: `%s'"
 msgstr "Kann die Datei %s nicht öffnen"
 
-#: ly2dvi.py:656
+#: ly2dvi.py:657
 #, c-format
 msgid "getopt says: `%s'"
 msgstr ""
 
-#: ly2dvi.py:823 scores.cc:44
+#: ly2dvi.py:824 scores.cc:44
 #, fuzzy, c-format
 msgid "dependencies output to `%s'..."
 msgstr "Ausgabe auf Papier auf %s..."
 
-#: ly2dvi.py:834
+#: ly2dvi.py:835
 #, fuzzy, c-format
 msgid "%s output to `%s'..."
 msgstr "MIDI-Ausgabe nach %s..."
 
-#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:836
+#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:837
 #: midi-score-parser.cc:24 scores.cc:136 scores.cc:142
 #, c-format
 msgid "can't find file: `%s'"
 msgstr "Kann Datei `%s' nicht finden"
 
-#: ly2dvi.py:847
+#: ly2dvi.py:848
 msgid "no files specified on command line."
 msgstr ""
 
@@ -236,81 +236,81 @@ msgstr "Linie ... "
 msgid "Fetch and rebuild from latest source package"
 msgstr ""
 
-#: update-lily.py:224
+#: update-lily.py:223
 #, fuzzy, c-format
 msgid "Cleaning `%s'..."
 msgstr "Uralt-Bitte: `%s'"
 
-#: update-lily.py:244
+#: update-lily.py:243
 #, c-format
 msgid "unpack and build in DIR [%s]"
 msgstr ""
 
-#: update-lily.py:245
+#: update-lily.py:244
 msgid "execute COMMAND, subtitute:"
 msgstr ""
 
-#: update-lily.py:246
+#: update-lily.py:245
 msgid "%b: build root"
 msgstr ""
 
-#: update-lily.py:247
+#: update-lily.py:246
 #, c-format
 msgid "%n: package name"
 msgstr ""
 
-#: update-lily.py:248
+#: update-lily.py:247
 #, fuzzy
 msgid "%r: release directory"
 msgstr "Kann ein `%s' weder finden noch erzeugen"
 
-#: update-lily.py:249
+#: update-lily.py:248
 msgid "%t: tarball"
 msgstr ""
 
-#: update-lily.py:250
+#: update-lily.py:249
 msgid "%v: package version"
 msgstr ""
 
-#: update-lily.py:253
+#: update-lily.py:252
 #, c-format
 msgid "keep all output, and name the directory %s"
 msgstr ""
 
-#: update-lily.py:254
+#: update-lily.py:253
 msgid "upon failure notify EMAIL[,EMAIL]"
 msgstr ""
 
-#: update-lily.py:255
+#: update-lily.py:254
 msgid "remove previous build"
 msgstr ""
 
-#: update-lily.py:258
+#: update-lily.py:257
 #, c-format
 msgid "fetch and build URL [%s]"
 msgstr ""
 
-#: update-lily.py:366
+#: update-lily.py:365
 #, fuzzy, c-format
 msgid "Listing `%s'..."
 msgstr "Linie ... "
 
-#: update-lily.py:427
+#: update-lily.py:426
 #, c-format
 msgid "latest is: %s"
 msgstr ""
 
-#: update-lily.py:428
+#: update-lily.py:427
 #, c-format
 msgid "relax, %s is up to date"
 msgstr ""
 
-#: update-lily.py:436 update-lily.py:449
+#: update-lily.py:435 update-lily.py:448
 #, fuzzy, c-format
 msgid "Fetching `%s'..."
 msgstr "Uralt-Bitte: `%s'"
 
-#: update-lily.py:458
+#: update-lily.py:457
 #, fuzzy, c-format
 msgid "Building `%s'..."
 msgstr "Uralt-Bitte: `%s'"
@@ -914,7 +914,7 @@ msgid "can't find start of phrasing slur"
 msgstr "Kann nicht beide Enden von %s finden"
 
 #: piano-pedal-engraver.cc:142 piano-pedal-engraver.cc:154
-#: piano-pedal-performer.cc:86
+#: piano-pedal-performer.cc:87
 #, fuzzy, c-format
 msgid "can't find start of piano pedal: `%s'"
 msgstr "Kann keine kürzeste Note bei %s finden"
@@ -1165,34 +1165,34 @@ msgstr ""
 msgid "First argument must be a procedure taking 1 argument"
 msgstr ""
 
-#: parser.yy:1264
+#: parser.yy:1263
 msgid "Expecting string as script definition"
 msgstr ""
 
-#: parser.yy:1274
+#: parser.yy:1273
 msgid "Can't specify direction for this request"
 msgstr ""
 
-#: parser.yy:1399
+#: parser.yy:1398
 msgid "Expecting musical-pitch value"
 msgstr ""
 
-#: parser.yy:1410
+#: parser.yy:1409
 #, fuzzy
 msgid "Must have duration object"
 msgstr "Setze kürzeste Dauer (?)"
 
-#: parser.yy:1419 parser.yy:1427
+#: parser.yy:1418 parser.yy:1426
 #, fuzzy
 msgid "Have to be in Lyric mode for lyrics"
 msgstr "Um Text zu verarbeiten, muß ich im Text-(Lyrics)-Modus sein"
 
-#: parser.yy:1580 parser.yy:1637
+#: parser.yy:1579 parser.yy:1636
 #, c-format
 msgid "not a duration: %d"
 msgstr "Keine Dauer: %d"
 
-#: parser.yy:1648
+#: parser.yy:1645
 #, fuzzy
 msgid "Have to be in Note mode for notes"
 msgstr "Für Noten muß ich im Noten-(Note)-Modus sein"
index 1def9ca86990990c153c9df2f1f9294025764249..feffb8014308cbe619c00a100eaf3eef51dc2138 100644 (file)
--- a/po/fr.po
+++ b/po/fr.po
 msgid ""
 msgstr ""
 "Project-Id-Version: lilypond 1.3.18\n"
-"POT-Creation-Date: 2001-10-09 19:29+0200\n"
+"POT-Creation-Date: 2001-09-09 17:30+0200\n"
 "PO-Revision-Date: 1999-12-28 00:32 +1\n"
 "Last-Translator: Laurent Martelli <laurent@linuxfan.com>\n"
 "Language-Team: \n"
 "MIME-Version: 1.0\n"
 
-#: ly2dvi.py:109
+#: ly2dvi.py:106
 msgid "Generate .dvi with LaTeX for LilyPond"
 msgstr ""
 
 #: data-file.cc:118 input.cc:85 ly2dvi.py:191 midi-parser.cc:100 mup2ly.py:93
-#: update-lily.py:119 warn.cc:23
+#: update-lily.py:118 warn.cc:23
 msgid "warning: "
 msgstr "avertissement: "
 
-#: input.cc:90 ly2dvi.py:206 ly2dvi.py:638 ly2dvi.py:656 ly2dvi.py:847
-#: mup2ly.py:98 mup2ly.py:188 update-lily.py:124 update-lily.py:212 warn.cc:9
+#: input.cc:90 ly2dvi.py:206 ly2dvi.py:639 ly2dvi.py:657 ly2dvi.py:848
+#: mup2ly.py:98 mup2ly.py:188 update-lily.py:123 update-lily.py:211 warn.cc:9
 #: warn.cc:17
 msgid "error: "
 msgstr "erreur: "
 
-#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:126
+#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:125
 #, fuzzy
 msgid "Exiting ... "
 msgstr "Ligne ..."
 
-#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:184
+#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:183
 #, fuzzy, c-format
 msgid "Usage: %s [OPTION]... FILE"
 msgstr "Usage: %s [OPTION... [FICHIER]"
 
-#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:188
+#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:187
 msgid "Options:"
 msgstr "Options: "
 
-#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:192
+#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:191
 #, fuzzy, c-format
 msgid "Report bugs to %s"
 msgstr "Rapporter les bugs "
 
-#: ly2dvi.py:305 mup2ly.py:185 update-lily.py:209
+#: ly2dvi.py:306 mup2ly.py:185 update-lily.py:208
 #, c-format
 msgid "Invoking `%s'"
 msgstr ""
 
-#: ly2dvi.py:309 mup2ly.py:188 update-lily.py:212
+#: ly2dvi.py:310 mup2ly.py:188 update-lily.py:211
 #, c-format
 msgid "command exited with value %d"
 msgstr ""
 
-#: ly2dvi.py:311 mup2ly.py:190 update-lily.py:214
+#: ly2dvi.py:312 mup2ly.py:190 update-lily.py:213
 msgid "(ignored)"
 msgstr ""
 
-#: ly2dvi.py:321
+#: ly2dvi.py:322
 #, fuzzy, c-format
 msgid "Cleaning %s..."
 msgstr "Cration des voix..."
 
-#: ly2dvi.py:336 mup2ly.py:214 update-lily.py:238
+#: ly2dvi.py:337 mup2ly.py:214 update-lily.py:237
 #, fuzzy, c-format
 msgid "no such setting: %s"
 msgstr "Pas d'instrument tel: `%s'"
 
-#: ly2dvi.py:349 main.cc:113
+#: ly2dvi.py:350 main.cc:113
 msgid "write Makefile dependencies for every input file"
 msgstr ""
 
-#: ly2dvi.py:350 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:252
+#: ly2dvi.py:351 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:251
 msgid "this help"
 msgstr "cette aide"
 
-#: ly2dvi.py:351 main.cc:111 main.cc:116
+#: ly2dvi.py:352 main.cc:111 main.cc:116
 msgid "DIR"
 msgstr "REP"
 
-#: ly2dvi.py:351
+#: ly2dvi.py:352
 #, fuzzy
 msgid "add DIR to LilyPond's search path"
 msgstr "ajoute REP au chemin de recherche"
 
-#: ly2dvi.py:352
+#: ly2dvi.py:353
 #, c-format
 msgid "keep all output, and name the directory %s.dir"
 msgstr ""
 
-#: ly2dvi.py:353
+#: ly2dvi.py:354
 msgid "don't run LilyPond"
 msgstr ""
 
-#: ly2dvi.py:354 main.cc:114
+#: ly2dvi.py:355 main.cc:114
 #, fuzzy
 msgid "produce MIDI output only"
 msgstr "produit seulement la sortie MIDI"
 
-#: ly2dvi.py:355 ly2dvi.py:356 main.cc:99 main.cc:112 main.cc:115
+#: ly2dvi.py:356 ly2dvi.py:357 main.cc:99 main.cc:112 main.cc:115
 msgid "FILE"
 msgstr "FICHIER"
 
-#: ly2dvi.py:355
+#: ly2dvi.py:356
 msgid "write ouput to FILE"
 msgstr ""
 
-#: ly2dvi.py:356
+#: ly2dvi.py:357
 msgid "find pfa fonts used in FILE"
 msgstr ""
 
-#: ly2dvi.py:358
+#: ly2dvi.py:359
 msgid "generate PostScript output"
 msgstr ""
 
-#: ly2dvi.py:359
+#: ly2dvi.py:360
 msgid "KEY=VAL"
 msgstr ""
 
-#: ly2dvi.py:359
+#: ly2dvi.py:360
 msgid "change global setting KEY to VAL"
 msgstr ""
 
-#: ly2dvi.py:360 main.cc:119 mup2ly.py:1120 update-lily.py:256
+#: ly2dvi.py:361 main.cc:119 mup2ly.py:1120 update-lily.py:255
 msgid "verbose"
 msgstr ""
 
-#: ly2dvi.py:361 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:257
+#: ly2dvi.py:362 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:256
 msgid "print version number"
 msgstr "afficher le numro de version"
 
-#: ly2dvi.py:362 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:259
+#: ly2dvi.py:363 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:258
 msgid "show warranty and copyright"
 msgstr ""
 
-#: ly2dvi.py:384 ly2dvi.py:579 ly2dvi.py:604
+#: ly2dvi.py:385 ly2dvi.py:580 ly2dvi.py:605
 #, fuzzy, c-format
 msgid "Running %s..."
 msgstr "Cration des voix..."
 
-#: ly2dvi.py:397
+#: ly2dvi.py:398
 #, fuzzy, c-format
 msgid "Analyzing %s..."
 msgstr "Cration des voix..."
 
-#: ly2dvi.py:453
+#: ly2dvi.py:454
 #, c-format
 msgid "no lilypond output found for %s"
 msgstr ""
 
-#: ly2dvi.py:495
+#: ly2dvi.py:496
 #, fuzzy, c-format
 msgid "invalid value: %s"
 msgstr "caractres illgal: `%c'"
 
-#: ly2dvi.py:638
+#: ly2dvi.py:639
 #, fuzzy, c-format
 msgid "not a PostScript file: `%s'"
 msgstr "impossible d'ouvrir le fichier: `%s'"
 
-#: ly2dvi.py:656
+#: ly2dvi.py:657
 #, c-format
 msgid "getopt says: `%s'"
 msgstr ""
 
-#: ly2dvi.py:823 scores.cc:44
+#: ly2dvi.py:824 scores.cc:44
 #, fuzzy, c-format
 msgid "dependencies output to `%s'..."
 msgstr "Sortie papier vers %s..."
 
-#: ly2dvi.py:834
+#: ly2dvi.py:835
 #, fuzzy, c-format
 msgid "%s output to `%s'..."
 msgstr "Sortie de Lily vers %s..."
 
-#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:836
+#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:837
 #: midi-score-parser.cc:24 scores.cc:136 scores.cc:142
 #, c-format
 msgid "can't find file: `%s'"
 msgstr "ne peut pas trouver le fichier: `%s'"
 
-#: ly2dvi.py:847
+#: ly2dvi.py:848
 msgid "no files specified on command line."
 msgstr ""
 
@@ -231,81 +231,81 @@ msgstr "Ligne ..."
 msgid "Fetch and rebuild from latest source package"
 msgstr ""
 
-#: update-lily.py:224
+#: update-lily.py:223
 #, fuzzy, c-format
 msgid "Cleaning `%s'..."
 msgstr "Cration des voix..."
 
-#: update-lily.py:244
+#: update-lily.py:243
 #, c-format
 msgid "unpack and build in DIR [%s]"
 msgstr ""
 
-#: update-lily.py:245
+#: update-lily.py:244
 msgid "execute COMMAND, subtitute:"
 msgstr ""
 
-#: update-lily.py:246
+#: update-lily.py:245
 msgid "%b: build root"
 msgstr ""
 
-#: update-lily.py:247
+#: update-lily.py:246
 #, c-format
 msgid "%n: package name"
 msgstr ""
 
-#: update-lily.py:248
+#: update-lily.py:247
 #, fuzzy
 msgid "%r: release directory"
 msgstr "ne peut pas trouver ou crer `%s'"
 
-#: update-lily.py:249
+#: update-lily.py:248
 msgid "%t: tarball"
 msgstr ""
 
-#: update-lily.py:250
+#: update-lily.py:249
 msgid "%v: package version"
 msgstr ""
 
-#: update-lily.py:253
+#: update-lily.py:252
 #, c-format
 msgid "keep all output, and name the directory %s"
 msgstr ""
 
-#: update-lily.py:254
+#: update-lily.py:253
 msgid "upon failure notify EMAIL[,EMAIL]"
 msgstr ""
 
-#: update-lily.py:255
+#: update-lily.py:254
 msgid "remove previous build"
 msgstr ""
 
-#: update-lily.py:258
+#: update-lily.py:257
 #, c-format
 msgid "fetch and build URL [%s]"
 msgstr ""
 
-#: update-lily.py:366
+#: update-lily.py:365
 #, fuzzy, c-format
 msgid "Listing `%s'..."
 msgstr "Ligne ..."
 
-#: update-lily.py:427
+#: update-lily.py:426
 #, c-format
 msgid "latest is: %s"
 msgstr ""
 
-#: update-lily.py:428
+#: update-lily.py:427
 #, c-format
 msgid "relax, %s is up to date"
 msgstr ""
 
-#: update-lily.py:436 update-lily.py:449
+#: update-lily.py:435 update-lily.py:448
 #, fuzzy, c-format
 msgid "Fetching `%s'..."
 msgstr "Cration des voix..."
 
-#: update-lily.py:458
+#: update-lily.py:457
 #, fuzzy, c-format
 msgid "Building `%s'..."
 msgstr "Cration des voix..."
@@ -888,7 +888,7 @@ msgid "can't find start of phrasing slur"
 msgstr "impossible de trouver le caractres numro %d"
 
 #: piano-pedal-engraver.cc:142 piano-pedal-engraver.cc:154
-#: piano-pedal-performer.cc:86
+#: piano-pedal-performer.cc:87
 #, fuzzy, c-format
 msgid "can't find start of piano pedal: `%s'"
 msgstr "ne peut pas trouver le fichier: `%s'"
@@ -1130,34 +1130,34 @@ msgstr ""
 msgid "First argument must be a procedure taking 1 argument"
 msgstr ""
 
-#: parser.yy:1264
+#: parser.yy:1263
 msgid "Expecting string as script definition"
 msgstr ""
 
-#: parser.yy:1274
+#: parser.yy:1273
 msgid "Can't specify direction for this request"
 msgstr ""
 
-#: parser.yy:1399
+#: parser.yy:1398
 msgid "Expecting musical-pitch value"
 msgstr ""
 
-#: parser.yy:1410
+#: parser.yy:1409
 #, fuzzy
 msgid "Must have duration object"
 msgstr "Positionne la plus petite dure (?)"
 
-#: parser.yy:1419 parser.yy:1427
+#: parser.yy:1418 parser.yy:1426
 #, fuzzy
 msgid "Have to be in Lyric mode for lyrics"
 msgstr "il fayt tre en mode Parole pour les paroles"
 
-#: parser.yy:1580 parser.yy:1637
+#: parser.yy:1579 parser.yy:1636
 #, c-format
 msgid "not a duration: %d"
 msgstr "pas une dure: %d"
 
-#: parser.yy:1648
+#: parser.yy:1645
 #, fuzzy
 msgid "Have to be in Note mode for notes"
 msgstr "il faut tre en mode Note pour les notes"
index 8bc2fefd77b9031e75e24bd9573ca6f624b54330..af424e7b1e4b463d684a7170785326eabfcfde3f 100644 (file)
--- a/po/it.po
+++ b/po/it.po
@@ -5,7 +5,7 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"POT-Creation-Date: 2001-10-09 19:29+0200\n"
+"POT-Creation-Date: 2001-09-09 17:30+0200\n"
 "Content-Type: text/plain; charset=ISO-8859-1\n"
 "Date: 1998-05-30 00:17:12+0200\n"
 "From:  <jantien@xs4all.nl>\n"
@@ -13,182 +13,182 @@ msgstr ""
 "out --add-comments --keyword=_ --keyword=_f\n"
 "Files: bow.cc int.cc\n"
 
-#: ly2dvi.py:109
+#: ly2dvi.py:106
 msgid "Generate .dvi with LaTeX for LilyPond"
 msgstr ""
 
 #: data-file.cc:118 input.cc:85 ly2dvi.py:191 midi-parser.cc:100 mup2ly.py:93
-#: update-lily.py:119 warn.cc:23
+#: update-lily.py:118 warn.cc:23
 msgid "warning: "
 msgstr "attenzione: "
 
-#: input.cc:90 ly2dvi.py:206 ly2dvi.py:638 ly2dvi.py:656 ly2dvi.py:847
-#: mup2ly.py:98 mup2ly.py:188 update-lily.py:124 update-lily.py:212 warn.cc:9
+#: input.cc:90 ly2dvi.py:206 ly2dvi.py:639 ly2dvi.py:657 ly2dvi.py:848
+#: mup2ly.py:98 mup2ly.py:188 update-lily.py:123 update-lily.py:211 warn.cc:9
 #: warn.cc:17
 msgid "error: "
 msgstr "errore: "
 
-#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:126
+#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:125
 msgid "Exiting ... "
 msgstr ""
 
-#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:184
+#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:183
 #, fuzzy, c-format
 msgid "Usage: %s [OPTION]... FILE"
 msgstr "Uso: %s [OPZIONE... [FILE]"
 
-#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:188
+#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:187
 msgid "Options:"
 msgstr "Opzioni: "
 
-#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:192
+#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:191
 #, c-format
 msgid "Report bugs to %s"
 msgstr ""
 
-#: ly2dvi.py:305 mup2ly.py:185 update-lily.py:209
+#: ly2dvi.py:306 mup2ly.py:185 update-lily.py:208
 #, c-format
 msgid "Invoking `%s'"
 msgstr ""
 
-#: ly2dvi.py:309 mup2ly.py:188 update-lily.py:212
+#: ly2dvi.py:310 mup2ly.py:188 update-lily.py:211
 #, c-format
 msgid "command exited with value %d"
 msgstr ""
 
-#: ly2dvi.py:311 mup2ly.py:190 update-lily.py:214
+#: ly2dvi.py:312 mup2ly.py:190 update-lily.py:213
 msgid "(ignored)"
 msgstr ""
 
-#: ly2dvi.py:321
+#: ly2dvi.py:322
 #, fuzzy, c-format
 msgid "Cleaning %s..."
 msgstr "Genero le voci..."
 
-#: ly2dvi.py:336 mup2ly.py:214 update-lily.py:238
+#: ly2dvi.py:337 mup2ly.py:214 update-lily.py:237
 #, fuzzy, c-format
 msgid "no such setting: %s"
 msgstr "% strumento:"
 
-#: ly2dvi.py:349 main.cc:113
+#: ly2dvi.py:350 main.cc:113
 #, fuzzy
 msgid "write Makefile dependencies for every input file"
 msgstr ""
 "  -d, --dependencies     scrive le dependenze del Makefile per ogni file di "
 "input\n"
 
-#: ly2dvi.py:350 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:252
+#: ly2dvi.py:351 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:251
 msgid "this help"
 msgstr ""
 
-#: ly2dvi.py:351 main.cc:111 main.cc:116
+#: ly2dvi.py:352 main.cc:111 main.cc:116
 msgid "DIR"
 msgstr ""
 
-#: ly2dvi.py:351
+#: ly2dvi.py:352
 #, fuzzy
 msgid "add DIR to LilyPond's search path"
 msgstr "  -I, --include=DIR      aggiunge DIR ai path di ricerca\n"
 
-#: ly2dvi.py:352
+#: ly2dvi.py:353
 #, c-format
 msgid "keep all output, and name the directory %s.dir"
 msgstr ""
 
-#: ly2dvi.py:353
+#: ly2dvi.py:354
 msgid "don't run LilyPond"
 msgstr ""
 
-#: ly2dvi.py:354 main.cc:114
+#: ly2dvi.py:355 main.cc:114
 #, fuzzy
 msgid "produce MIDI output only"
 msgstr "  -M, --no-paper         produce solo output midi\n"
 
-#: ly2dvi.py:355 ly2dvi.py:356 main.cc:99 main.cc:112 main.cc:115
+#: ly2dvi.py:356 ly2dvi.py:357 main.cc:99 main.cc:112 main.cc:115
 msgid "FILE"
 msgstr ""
 
-#: ly2dvi.py:355
+#: ly2dvi.py:356
 msgid "write ouput to FILE"
 msgstr ""
 
-#: ly2dvi.py:356
+#: ly2dvi.py:357
 msgid "find pfa fonts used in FILE"
 msgstr ""
 
-#: ly2dvi.py:358
+#: ly2dvi.py:359
 #, fuzzy
 msgid "generate PostScript output"
 msgstr "vincoli degenerati"
 
-#: ly2dvi.py:359
+#: ly2dvi.py:360
 msgid "KEY=VAL"
 msgstr ""
 
-#: ly2dvi.py:359
+#: ly2dvi.py:360
 msgid "change global setting KEY to VAL"
 msgstr ""
 
-#: ly2dvi.py:360 main.cc:119 mup2ly.py:1120 update-lily.py:256
+#: ly2dvi.py:361 main.cc:119 mup2ly.py:1120 update-lily.py:255
 msgid "verbose"
 msgstr ""
 
-#: ly2dvi.py:361 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:257
+#: ly2dvi.py:362 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:256
 msgid "print version number"
 msgstr ""
 
-#: ly2dvi.py:362 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:259
+#: ly2dvi.py:363 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:258
 #, fuzzy
 msgid "show warranty and copyright"
 msgstr "  -w, --warranty         mostra la garanzia e il copyright\n"
 
-#: ly2dvi.py:384 ly2dvi.py:579 ly2dvi.py:604
+#: ly2dvi.py:385 ly2dvi.py:580 ly2dvi.py:605
 #, fuzzy, c-format
 msgid "Running %s..."
 msgstr "Genero le voci..."
 
-#: ly2dvi.py:397
+#: ly2dvi.py:398
 #, fuzzy, c-format
 msgid "Analyzing %s..."
 msgstr "Genero le voci..."
 
-#: ly2dvi.py:453
+#: ly2dvi.py:454
 #, c-format
 msgid "no lilypond output found for %s"
 msgstr ""
 
-#: ly2dvi.py:495
+#: ly2dvi.py:496
 #, fuzzy, c-format
 msgid "invalid value: %s"
 msgstr "carattere illegale: `%c'"
 
-#: ly2dvi.py:638
+#: ly2dvi.py:639
 #, fuzzy, c-format
 msgid "not a PostScript file: `%s'"
 msgstr "non posso aprire il file: `%s'"
 
-#: ly2dvi.py:656
+#: ly2dvi.py:657
 #, c-format
 msgid "getopt says: `%s'"
 msgstr ""
 
-#: ly2dvi.py:823 scores.cc:44
+#: ly2dvi.py:824 scores.cc:44
 #, fuzzy, c-format
 msgid "dependencies output to `%s'..."
 msgstr "L'output stampato è inviato a %s..."
 
-#: ly2dvi.py:834
+#: ly2dvi.py:835
 #, fuzzy, c-format
 msgid "%s output to `%s'..."
 msgstr "L'output MIDI è inviato a %s..."
 
-#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:836
+#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:837
 #: midi-score-parser.cc:24 scores.cc:136 scores.cc:142
 #, c-format
 msgid "can't find file: `%s'"
 msgstr "non trovo il file: `%s'"
 
-#: ly2dvi.py:847
+#: ly2dvi.py:848
 msgid "no files specified on command line."
 msgstr ""
 
@@ -236,81 +236,81 @@ msgstr "Genero le voci..."
 msgid "Fetch and rebuild from latest source package"
 msgstr ""
 
-#: update-lily.py:224
+#: update-lily.py:223
 #, fuzzy, c-format
 msgid "Cleaning `%s'..."
 msgstr "Genero le voci..."
 
-#: update-lily.py:244
+#: update-lily.py:243
 #, c-format
 msgid "unpack and build in DIR [%s]"
 msgstr ""
 
-#: update-lily.py:245
+#: update-lily.py:244
 msgid "execute COMMAND, subtitute:"
 msgstr ""
 
-#: update-lily.py:246
+#: update-lily.py:245
 msgid "%b: build root"
 msgstr ""
 
-#: update-lily.py:247
+#: update-lily.py:246
 #, c-format
 msgid "%n: package name"
 msgstr ""
 
-#: update-lily.py:248
+#: update-lily.py:247
 #, fuzzy
 msgid "%r: release directory"
 msgstr "non trovo e non posso creare `%s'"
 
-#: update-lily.py:249
+#: update-lily.py:248
 msgid "%t: tarball"
 msgstr ""
 
-#: update-lily.py:250
+#: update-lily.py:249
 msgid "%v: package version"
 msgstr ""
 
-#: update-lily.py:253
+#: update-lily.py:252
 #, c-format
 msgid "keep all output, and name the directory %s"
 msgstr ""
 
-#: update-lily.py:254
+#: update-lily.py:253
 msgid "upon failure notify EMAIL[,EMAIL]"
 msgstr ""
 
-#: update-lily.py:255
+#: update-lily.py:254
 msgid "remove previous build"
 msgstr ""
 
-#: update-lily.py:258
+#: update-lily.py:257
 #, c-format
 msgid "fetch and build URL [%s]"
 msgstr ""
 
-#: update-lily.py:366
+#: update-lily.py:365
 #, fuzzy, c-format
 msgid "Listing `%s'..."
 msgstr "Genero le voci..."
 
-#: update-lily.py:427
+#: update-lily.py:426
 #, c-format
 msgid "latest is: %s"
 msgstr ""
 
-#: update-lily.py:428
+#: update-lily.py:427
 #, c-format
 msgid "relax, %s is up to date"
 msgstr ""
 
-#: update-lily.py:436 update-lily.py:449
+#: update-lily.py:435 update-lily.py:448
 #, fuzzy, c-format
 msgid "Fetching `%s'..."
 msgstr "Genero le voci..."
 
-#: update-lily.py:458
+#: update-lily.py:457
 #, fuzzy, c-format
 msgid "Building `%s'..."
 msgstr "Genero le voci..."
@@ -906,7 +906,7 @@ msgid "can't find start of phrasing slur"
 msgstr "non trovo le estremità di %s"
 
 #: piano-pedal-engraver.cc:142 piano-pedal-engraver.cc:154
-#: piano-pedal-performer.cc:86
+#: piano-pedal-performer.cc:87
 #, fuzzy, c-format
 msgid "can't find start of piano pedal: `%s'"
 msgstr "non risco a trovare una ruling note a %s"
@@ -1154,34 +1154,34 @@ msgstr ""
 msgid "First argument must be a procedure taking 1 argument"
 msgstr ""
 
-#: parser.yy:1264
+#: parser.yy:1263
 msgid "Expecting string as script definition"
 msgstr ""
 
-#: parser.yy:1274
+#: parser.yy:1273
 msgid "Can't specify direction for this request"
 msgstr ""
 
-#: parser.yy:1399
+#: parser.yy:1398
 msgid "Expecting musical-pitch value"
 msgstr ""
 
-#: parser.yy:1410
+#: parser.yy:1409
 #, fuzzy
 msgid "Must have duration object"
 msgstr "indicazione durata priva di senso"
 
-#: parser.yy:1419 parser.yy:1427
+#: parser.yy:1418 parser.yy:1426
 #, fuzzy
 msgid "Have to be in Lyric mode for lyrics"
 msgstr "bisogna essere in Lyric mode per i testi"
 
-#: parser.yy:1580 parser.yy:1637
+#: parser.yy:1579 parser.yy:1636
 #, c-format
 msgid "not a duration: %d"
 msgstr "non è una durata: %d"
 
-#: parser.yy:1648
+#: parser.yy:1645
 #, fuzzy
 msgid "Have to be in Note mode for notes"
 msgstr "bisogna essere in Note mode per le note"
index dac25c1b5d311423f925e04dce3217b8b27955e7..c62e92717370a682b17dc903f38fbb2e92d4f636 100644 (file)
--- a/po/ja.po
+++ b/po/ja.po
@@ -5,7 +5,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: lilypond 1.2.17\n"
-"POT-Creation-Date: 2001-10-09 19:29+0200\n"
+"POT-Creation-Date: 2001-09-09 17:30+0200\n"
 "PO-Revision-Date: 2000-03-29 20:50+0900\n"
 "Last-Translator: Daisuke Yamashita <yamad@mb.infoweb.ne.jp>\n"
 "Language-Team: Japanese <ja@li.org>\n"
@@ -13,180 +13,180 @@ msgstr ""
 "Content-Type: text/plain; charset=EUC-JP\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ly2dvi.py:109
+#: ly2dvi.py:106
 msgid "Generate .dvi with LaTeX for LilyPond"
 msgstr ""
 
 #: data-file.cc:118 input.cc:85 ly2dvi.py:191 midi-parser.cc:100 mup2ly.py:93
-#: update-lily.py:119 warn.cc:23
+#: update-lily.py:118 warn.cc:23
 msgid "warning: "
 msgstr "·Ù¹ð: "
 
-#: input.cc:90 ly2dvi.py:206 ly2dvi.py:638 ly2dvi.py:656 ly2dvi.py:847
-#: mup2ly.py:98 mup2ly.py:188 update-lily.py:124 update-lily.py:212 warn.cc:9
+#: input.cc:90 ly2dvi.py:206 ly2dvi.py:639 ly2dvi.py:657 ly2dvi.py:848
+#: mup2ly.py:98 mup2ly.py:188 update-lily.py:123 update-lily.py:211 warn.cc:9
 #: warn.cc:17
 msgid "error: "
 msgstr "¥¨¥é¡¼: "
 
-#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:126
+#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:125
 #, fuzzy
 msgid "Exiting ... "
 msgstr "¹Ô ..."
 
-#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:184
+#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:183
 #, fuzzy, c-format
 msgid "Usage: %s [OPTION]... FILE"
 msgstr "»È¤¤Êý: %s [¥ª¥×¥·¥ç¥ó]... [¥Õ¥¡¥¤¥ë]"
 
-#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:188
+#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:187
 msgid "Options:"
 msgstr "¥ª¥×¥·¥ç¥ó:"
 
-#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:192
+#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:191
 #, c-format
 msgid "Report bugs to %s"
 msgstr "¥Ð¥°¥ì¥Ý¡¼¥È¤Ï %s ¤Ø"
 
-#: ly2dvi.py:305 mup2ly.py:185 update-lily.py:209
+#: ly2dvi.py:306 mup2ly.py:185 update-lily.py:208
 #, fuzzy, c-format
 msgid "Invoking `%s'"
 msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
 
-#: ly2dvi.py:309 mup2ly.py:188 update-lily.py:212
+#: ly2dvi.py:310 mup2ly.py:188 update-lily.py:211
 #, c-format
 msgid "command exited with value %d"
 msgstr ""
 
-#: ly2dvi.py:311 mup2ly.py:190 update-lily.py:214
+#: ly2dvi.py:312 mup2ly.py:190 update-lily.py:213
 msgid "(ignored)"
 msgstr ""
 
-#: ly2dvi.py:321
+#: ly2dvi.py:322
 #, fuzzy, c-format
 msgid "Cleaning %s..."
 msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
 
-#: ly2dvi.py:336 mup2ly.py:214 update-lily.py:238
+#: ly2dvi.py:337 mup2ly.py:214 update-lily.py:237
 #, fuzzy, c-format
 msgid "no such setting: %s"
 msgstr "¤½¤ÎÍͤʳڴï¤Ï¤¢¤ê¤Þ¤»¤ó: `%s'"
 
-#: ly2dvi.py:349 main.cc:113
+#: ly2dvi.py:350 main.cc:113
 msgid "write Makefile dependencies for every input file"
 msgstr "Á´¤Æ¤ÎÆþÎÏ¥Õ¥¡¥¤¥ë¤Î Makefile °Í¸´Ø·¸¤ò½ñ¤­¹þ¤à"
 
-#: ly2dvi.py:350 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:252
+#: ly2dvi.py:351 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:251
 msgid "this help"
 msgstr "¤³¤Î¥Ø¥ë¥×"
 
-#: ly2dvi.py:351 main.cc:111 main.cc:116
+#: ly2dvi.py:352 main.cc:111 main.cc:116
 msgid "DIR"
 msgstr "DIR"
 
-#: ly2dvi.py:351
+#: ly2dvi.py:352
 #, fuzzy
 msgid "add DIR to LilyPond's search path"
 msgstr "DIR ¤ò¸¡º÷¥Ñ¥¹¤ËÄɲÃ"
 
-#: ly2dvi.py:352
+#: ly2dvi.py:353
 #, c-format
 msgid "keep all output, and name the directory %s.dir"
 msgstr ""
 
-#: ly2dvi.py:353
+#: ly2dvi.py:354
 msgid "don't run LilyPond"
 msgstr ""
 
-#: ly2dvi.py:354 main.cc:114
+#: ly2dvi.py:355 main.cc:114
 msgid "produce MIDI output only"
 msgstr "MIDI ½ÐÎϤÎÀ¸À®¤Î¤ß"
 
-#: ly2dvi.py:355 ly2dvi.py:356 main.cc:99 main.cc:112 main.cc:115
+#: ly2dvi.py:356 ly2dvi.py:357 main.cc:99 main.cc:112 main.cc:115
 msgid "FILE"
 msgstr "FILE"
 
-#: ly2dvi.py:355
+#: ly2dvi.py:356
 #, fuzzy
 msgid "write ouput to FILE"
 msgstr "BASENAME[-x].³ÈÄ¥»Ò ¤Ø½ÐÎϤò½ñ¤­¹þ¤à"
 
-#: ly2dvi.py:356
+#: ly2dvi.py:357
 msgid "find pfa fonts used in FILE"
 msgstr ""
 
-#: ly2dvi.py:358
+#: ly2dvi.py:359
 #, fuzzy
 msgid "generate PostScript output"
 msgstr "À©¸Â¤ò´ËÏÂ"
 
-#: ly2dvi.py:359
+#: ly2dvi.py:360
 msgid "KEY=VAL"
 msgstr ""
 
-#: ly2dvi.py:359
+#: ly2dvi.py:360
 msgid "change global setting KEY to VAL"
 msgstr ""
 
-#: ly2dvi.py:360 main.cc:119 mup2ly.py:1120 update-lily.py:256
+#: ly2dvi.py:361 main.cc:119 mup2ly.py:1120 update-lily.py:255
 #, fuzzy
 msgid "verbose"
 msgstr "¾ÜºÙ¤Ê¾ðÊó¤òɽ¼¨¤·¤Þ¤¹"
 
-#: ly2dvi.py:361 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:257
+#: ly2dvi.py:362 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:256
 msgid "print version number"
 msgstr "¥Ð¡¼¥¸¥ç¥óÈÖ¹æ¤òɽ¼¨"
 
-#: ly2dvi.py:362 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:259
+#: ly2dvi.py:363 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:258
 msgid "show warranty and copyright"
 msgstr "ÊݾڤÈÃøºî¸¢¤Ë¤Ä¤¤¤Æɽ¼¨¤¹¤ë"
 
-#: ly2dvi.py:384 ly2dvi.py:579 ly2dvi.py:604
+#: ly2dvi.py:385 ly2dvi.py:580 ly2dvi.py:605
 #, fuzzy, c-format
 msgid "Running %s..."
 msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
 
-#: ly2dvi.py:397
+#: ly2dvi.py:398
 #, fuzzy, c-format
 msgid "Analyzing %s..."
 msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
 
-#: ly2dvi.py:453
+#: ly2dvi.py:454
 #, c-format
 msgid "no lilypond output found for %s"
 msgstr ""
 
-#: ly2dvi.py:495
+#: ly2dvi.py:496
 #, fuzzy, c-format
 msgid "invalid value: %s"
 msgstr "̵¸ú¤Êʸ»ú: `%c'"
 
-#: ly2dvi.py:638
+#: ly2dvi.py:639
 #, fuzzy, c-format
 msgid "not a PostScript file: `%s'"
 msgstr "¥Õ¥¡¥¤¥ë¤ò³«¤±¤Þ¤»¤ó: `%s'"
 
-#: ly2dvi.py:656
+#: ly2dvi.py:657
 #, c-format
 msgid "getopt says: `%s'"
 msgstr ""
 
-#: ly2dvi.py:823 scores.cc:44
+#: ly2dvi.py:824 scores.cc:44
 #, fuzzy, c-format
 msgid "dependencies output to `%s'..."
 msgstr "%s ¤Ø paper ½ÐÎÏ..."
 
-#: ly2dvi.py:834
+#: ly2dvi.py:835
 #, fuzzy, c-format
 msgid "%s output to `%s'..."
 msgstr "%s ¤Ø¤Î MIDI ½ÐÎÏ"
 
-#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:836
+#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:837
 #: midi-score-parser.cc:24 scores.cc:136 scores.cc:142
 #, fuzzy, c-format
 msgid "can't find file: `%s'"
 msgstr "¥Õ¥¡¥¤¥ë¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
 
-#: ly2dvi.py:847
+#: ly2dvi.py:848
 msgid "no files specified on command line."
 msgstr ""
 
@@ -235,81 +235,81 @@ msgstr "
 msgid "Fetch and rebuild from latest source package"
 msgstr ""
 
-#: update-lily.py:224
+#: update-lily.py:223
 #, fuzzy, c-format
 msgid "Cleaning `%s'..."
 msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
 
-#: update-lily.py:244
+#: update-lily.py:243
 #, c-format
 msgid "unpack and build in DIR [%s]"
 msgstr ""
 
-#: update-lily.py:245
+#: update-lily.py:244
 msgid "execute COMMAND, subtitute:"
 msgstr ""
 
-#: update-lily.py:246
+#: update-lily.py:245
 msgid "%b: build root"
 msgstr ""
 
-#: update-lily.py:247
+#: update-lily.py:246
 #, c-format
 msgid "%n: package name"
 msgstr ""
 
-#: update-lily.py:248
+#: update-lily.py:247
 #, fuzzy
 msgid "%r: release directory"
 msgstr "¸«¤Ä¤«¤é¤Ê¤¤¤«ºî¤ì¤Þ¤»¤ó: `%s'"
 
-#: update-lily.py:249
+#: update-lily.py:248
 msgid "%t: tarball"
 msgstr ""
 
-#: update-lily.py:250
+#: update-lily.py:249
 msgid "%v: package version"
 msgstr ""
 
-#: update-lily.py:253
+#: update-lily.py:252
 #, c-format
 msgid "keep all output, and name the directory %s"
 msgstr ""
 
-#: update-lily.py:254
+#: update-lily.py:253
 msgid "upon failure notify EMAIL[,EMAIL]"
 msgstr ""
 
-#: update-lily.py:255
+#: update-lily.py:254
 msgid "remove previous build"
 msgstr ""
 
-#: update-lily.py:258
+#: update-lily.py:257
 #, c-format
 msgid "fetch and build URL [%s]"
 msgstr ""
 
-#: update-lily.py:366
+#: update-lily.py:365
 #, fuzzy, c-format
 msgid "Listing `%s'..."
 msgstr "¹Ô ..."
 
-#: update-lily.py:427
+#: update-lily.py:426
 #, c-format
 msgid "latest is: %s"
 msgstr ""
 
-#: update-lily.py:428
+#: update-lily.py:427
 #, c-format
 msgid "relax, %s is up to date"
 msgstr ""
 
-#: update-lily.py:436 update-lily.py:449
+#: update-lily.py:435 update-lily.py:448
 #, fuzzy, c-format
 msgid "Fetching `%s'..."
 msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
 
-#: update-lily.py:458
+#: update-lily.py:457
 #, fuzzy, c-format
 msgid "Building `%s'..."
 msgstr "Í×µá¤ò¼Î¤Æ¤Þ¤¹: `%s'"
@@ -924,7 +924,7 @@ msgid "can't find start of phrasing slur"
 msgstr "ËöÈø¤Ø¤Î(¥Ç)¥¯¥ì¥Ã¥·¥§¥ó¥É¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó"
 
 #: piano-pedal-engraver.cc:142 piano-pedal-engraver.cc:154
-#: piano-pedal-performer.cc:86
+#: piano-pedal-performer.cc:87
 #, fuzzy, c-format
 msgid "can't find start of piano pedal: `%s'"
 msgstr "¸Æ¤Ó½Ð¤µ¤ì¤¿Ê¸»ú¤¬¸«¤Ä¤«¤ê¤Þ¤»¤ó: `%s'"
@@ -1166,33 +1166,33 @@ msgstr ""
 msgid "First argument must be a procedure taking 1 argument"
 msgstr ""
 
-#: parser.yy:1264
+#: parser.yy:1263
 msgid "Expecting string as script definition"
 msgstr ""
 
-#: parser.yy:1274
+#: parser.yy:1273
 msgid "Can't specify direction for this request"
 msgstr "¤³¤ÎÍ×µá¤ËÂФ¹¤ëÊý¸þ¤ò»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Þ¤»¤ó"
 
-#: parser.yy:1399
+#: parser.yy:1398
 msgid "Expecting musical-pitch value"
 msgstr ""
 
-#: parser.yy:1410
+#: parser.yy:1409
 #, fuzzy
 msgid "Must have duration object"
 msgstr "²»Ä¹¤òºÇ¾®¤ËÀßÄꤷ¤Þ¤¹"
 
-#: parser.yy:1419 parser.yy:1427
+#: parser.yy:1418 parser.yy:1426
 msgid "Have to be in Lyric mode for lyrics"
 msgstr "²Î»ì¤Ï Lyric ¥â¡¼¥ÉÆâ¤Ë½ñ¤¤¤Æ¤¯¤À¤µ¤¤"
 
-#: parser.yy:1580 parser.yy:1637
+#: parser.yy:1579 parser.yy:1636
 #, c-format
 msgid "not a duration: %d"
 msgstr "²»Ä¹¤Ç¤Ï¤¢¤ê¤Þ¤»¤ó: %d"
 
-#: parser.yy:1648
+#: parser.yy:1645
 msgid "Have to be in Note mode for notes"
 msgstr "²»Éä¤Ï Note ¥â¡¼¥ÉÆâ¤Ë½ñ¤¤¤Æ¤¯¤À¤µ¤¤"
 
index eeb3072b20dbabe2734737d9030f2ee0df8ea37b..6f6e3e2a1ed12fa104c06a9db27c5d2d001aee85 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2001-10-09 19:29+0200\n"
+"POT-Creation-Date: 2001-09-09 17:30+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -14,175 +14,175 @@ msgstr ""
 "Content-Type: text/plain; charset=CHARSET\n"
 "Content-Transfer-Encoding: 8bit\n"
 
-#: ly2dvi.py:109
+#: ly2dvi.py:106
 msgid "Generate .dvi with LaTeX for LilyPond"
 msgstr ""
 
 #: data-file.cc:118 input.cc:85 ly2dvi.py:191 midi-parser.cc:100 mup2ly.py:93
-#: update-lily.py:119 warn.cc:23
+#: update-lily.py:118 warn.cc:23
 msgid "warning: "
 msgstr ""
 
-#: input.cc:90 ly2dvi.py:206 ly2dvi.py:638 ly2dvi.py:656 ly2dvi.py:847
-#: mup2ly.py:98 mup2ly.py:188 update-lily.py:124 update-lily.py:212 warn.cc:9
+#: input.cc:90 ly2dvi.py:206 ly2dvi.py:639 ly2dvi.py:657 ly2dvi.py:848
+#: mup2ly.py:98 mup2ly.py:188 update-lily.py:123 update-lily.py:211 warn.cc:9
 #: warn.cc:17
 msgid "error: "
 msgstr ""
 
-#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:126
+#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:125
 msgid "Exiting ... "
 msgstr ""
 
-#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:184
+#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE"
 msgstr ""
 
-#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:188
+#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:187
 msgid "Options:"
 msgstr ""
 
-#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:192
+#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:191
 #, c-format
 msgid "Report bugs to %s"
 msgstr ""
 
-#: ly2dvi.py:305 mup2ly.py:185 update-lily.py:209
+#: ly2dvi.py:306 mup2ly.py:185 update-lily.py:208
 #, c-format
 msgid "Invoking `%s'"
 msgstr ""
 
-#: ly2dvi.py:309 mup2ly.py:188 update-lily.py:212
+#: ly2dvi.py:310 mup2ly.py:188 update-lily.py:211
 #, c-format
 msgid "command exited with value %d"
 msgstr ""
 
-#: ly2dvi.py:311 mup2ly.py:190 update-lily.py:214
+#: ly2dvi.py:312 mup2ly.py:190 update-lily.py:213
 msgid "(ignored)"
 msgstr ""
 
-#: ly2dvi.py:321
+#: ly2dvi.py:322
 #, c-format
 msgid "Cleaning %s..."
 msgstr ""
 
-#: ly2dvi.py:336 mup2ly.py:214 update-lily.py:238
+#: ly2dvi.py:337 mup2ly.py:214 update-lily.py:237
 #, c-format
 msgid "no such setting: %s"
 msgstr ""
 
-#: ly2dvi.py:349 main.cc:113
+#: ly2dvi.py:350 main.cc:113
 msgid "write Makefile dependencies for every input file"
 msgstr ""
 
-#: ly2dvi.py:350 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:252
+#: ly2dvi.py:351 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:251
 msgid "this help"
 msgstr ""
 
-#: ly2dvi.py:351 main.cc:111 main.cc:116
+#: ly2dvi.py:352 main.cc:111 main.cc:116
 msgid "DIR"
 msgstr ""
 
-#: ly2dvi.py:351
+#: ly2dvi.py:352
 msgid "add DIR to LilyPond's search path"
 msgstr ""
 
-#: ly2dvi.py:352
+#: ly2dvi.py:353
 #, c-format
 msgid "keep all output, and name the directory %s.dir"
 msgstr ""
 
-#: ly2dvi.py:353
+#: ly2dvi.py:354
 msgid "don't run LilyPond"
 msgstr ""
 
-#: ly2dvi.py:354 main.cc:114
+#: ly2dvi.py:355 main.cc:114
 msgid "produce MIDI output only"
 msgstr ""
 
-#: ly2dvi.py:355 ly2dvi.py:356 main.cc:99 main.cc:112 main.cc:115
+#: ly2dvi.py:356 ly2dvi.py:357 main.cc:99 main.cc:112 main.cc:115
 msgid "FILE"
 msgstr ""
 
-#: ly2dvi.py:355
+#: ly2dvi.py:356
 msgid "write ouput to FILE"
 msgstr ""
 
-#: ly2dvi.py:356
+#: ly2dvi.py:357
 msgid "find pfa fonts used in FILE"
 msgstr ""
 
-#: ly2dvi.py:358
+#: ly2dvi.py:359
 msgid "generate PostScript output"
 msgstr ""
 
-#: ly2dvi.py:359
+#: ly2dvi.py:360
 msgid "KEY=VAL"
 msgstr ""
 
-#: ly2dvi.py:359
+#: ly2dvi.py:360
 msgid "change global setting KEY to VAL"
 msgstr ""
 
-#: ly2dvi.py:360 main.cc:119 mup2ly.py:1120 update-lily.py:256
+#: ly2dvi.py:361 main.cc:119 mup2ly.py:1120 update-lily.py:255
 msgid "verbose"
 msgstr ""
 
-#: ly2dvi.py:361 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:257
+#: ly2dvi.py:362 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:256
 msgid "print version number"
 msgstr ""
 
-#: ly2dvi.py:362 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:259
+#: ly2dvi.py:363 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:258
 msgid "show warranty and copyright"
 msgstr ""
 
-#: ly2dvi.py:384 ly2dvi.py:579 ly2dvi.py:604
+#: ly2dvi.py:385 ly2dvi.py:580 ly2dvi.py:605
 #, c-format
 msgid "Running %s..."
 msgstr ""
 
-#: ly2dvi.py:397
+#: ly2dvi.py:398
 #, c-format
 msgid "Analyzing %s..."
 msgstr ""
 
-#: ly2dvi.py:453
+#: ly2dvi.py:454
 #, c-format
 msgid "no lilypond output found for %s"
 msgstr ""
 
-#: ly2dvi.py:495
+#: ly2dvi.py:496
 #, c-format
 msgid "invalid value: %s"
 msgstr ""
 
-#: ly2dvi.py:638
+#: ly2dvi.py:639
 #, c-format
 msgid "not a PostScript file: `%s'"
 msgstr ""
 
-#: ly2dvi.py:656
+#: ly2dvi.py:657
 #, c-format
 msgid "getopt says: `%s'"
 msgstr ""
 
-#: ly2dvi.py:823 scores.cc:44
+#: ly2dvi.py:824 scores.cc:44
 #, c-format
 msgid "dependencies output to `%s'..."
 msgstr ""
 
-#: ly2dvi.py:834
+#: ly2dvi.py:835
 #, c-format
 msgid "%s output to `%s'..."
 msgstr ""
 
-#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:836
+#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:837
 #: midi-score-parser.cc:24 scores.cc:136 scores.cc:142
 #, c-format
 msgid "can't find file: `%s'"
 msgstr ""
 
-#: ly2dvi.py:847
+#: ly2dvi.py:848
 msgid "no files specified on command line."
 msgstr ""
 
@@ -230,80 +230,80 @@ msgstr ""
 msgid "Fetch and rebuild from latest source package"
 msgstr ""
 
-#: update-lily.py:224
+#: update-lily.py:223
 #, c-format
 msgid "Cleaning `%s'..."
 msgstr ""
 
-#: update-lily.py:244
+#: update-lily.py:243
 #, c-format
 msgid "unpack and build in DIR [%s]"
 msgstr ""
 
-#: update-lily.py:245
+#: update-lily.py:244
 msgid "execute COMMAND, subtitute:"
 msgstr ""
 
-#: update-lily.py:246
+#: update-lily.py:245
 msgid "%b: build root"
 msgstr ""
 
-#: update-lily.py:247
+#: update-lily.py:246
 #, c-format
 msgid "%n: package name"
 msgstr ""
 
-#: update-lily.py:248
+#: update-lily.py:247
 msgid "%r: release directory"
 msgstr ""
 
-#: update-lily.py:249
+#: update-lily.py:248
 msgid "%t: tarball"
 msgstr ""
 
-#: update-lily.py:250
+#: update-lily.py:249
 msgid "%v: package version"
 msgstr ""
 
-#: update-lily.py:253
+#: update-lily.py:252
 #, c-format
 msgid "keep all output, and name the directory %s"
 msgstr ""
 
-#: update-lily.py:254
+#: update-lily.py:253
 msgid "upon failure notify EMAIL[,EMAIL]"
 msgstr ""
 
-#: update-lily.py:255
+#: update-lily.py:254
 msgid "remove previous build"
 msgstr ""
 
-#: update-lily.py:258
+#: update-lily.py:257
 #, c-format
 msgid "fetch and build URL [%s]"
 msgstr ""
 
-#: update-lily.py:366
+#: update-lily.py:365
 #, c-format
 msgid "Listing `%s'..."
 msgstr ""
 
-#: update-lily.py:427
+#: update-lily.py:426
 #, c-format
 msgid "latest is: %s"
 msgstr ""
 
-#: update-lily.py:428
+#: update-lily.py:427
 #, c-format
 msgid "relax, %s is up to date"
 msgstr ""
 
-#: update-lily.py:436 update-lily.py:449
+#: update-lily.py:435 update-lily.py:448
 #, c-format
 msgid "Fetching `%s'..."
 msgstr ""
 
-#: update-lily.py:458
+#: update-lily.py:457
 #, c-format
 msgid "Building `%s'..."
 msgstr ""
@@ -855,7 +855,7 @@ msgid "can't find start of phrasing slur"
 msgstr ""
 
 #: piano-pedal-engraver.cc:142 piano-pedal-engraver.cc:154
-#: piano-pedal-performer.cc:86
+#: piano-pedal-performer.cc:87
 #, c-format
 msgid "can't find start of piano pedal: `%s'"
 msgstr ""
@@ -1091,32 +1091,32 @@ msgstr ""
 msgid "First argument must be a procedure taking 1 argument"
 msgstr ""
 
-#: parser.yy:1264
+#: parser.yy:1263
 msgid "Expecting string as script definition"
 msgstr ""
 
-#: parser.yy:1274
+#: parser.yy:1273
 msgid "Can't specify direction for this request"
 msgstr ""
 
-#: parser.yy:1399
+#: parser.yy:1398
 msgid "Expecting musical-pitch value"
 msgstr ""
 
-#: parser.yy:1410
+#: parser.yy:1409
 msgid "Must have duration object"
 msgstr ""
 
-#: parser.yy:1419 parser.yy:1427
+#: parser.yy:1418 parser.yy:1426
 msgid "Have to be in Lyric mode for lyrics"
 msgstr ""
 
-#: parser.yy:1580 parser.yy:1637
+#: parser.yy:1579 parser.yy:1636
 #, c-format
 msgid "not a duration: %d"
 msgstr ""
 
-#: parser.yy:1648
+#: parser.yy:1645
 msgid "Have to be in Note mode for notes"
 msgstr ""
 
index 9c6db9b93591414f9d9a91dfe4109c7f5a9940fe..a979126749ce5199374cf0d093b1868c5e300acf 100644 (file)
--- a/po/nl.po
+++ b/po/nl.po
@@ -9,9 +9,9 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: lilypond 1.4.8\n"
-"POT-Creation-Date: 2001-10-09 19:29+0200\n"
-"PO-Revision-Date: 2001-10-09 19:30+0200\n"
+"Project-Id-Version: lilypond 1.4.6\n"
+"POT-Creation-Date: 2001-09-09 17:30+0200\n"
+"PO-Revision-Date: 2001-09-09 17:34+0200\n"
 "Last-Translator: Jan Nieuwenhuizen <janneke@gnu.org>\n"
 "Language-Team: Dutch <nl@li.org>\n"
 "MIME-Version: 1.0\n"
@@ -19,181 +19,180 @@ msgstr ""
 "Content-Transfer-Encoding: 8bit\n"
 "Date: 2001-05-09 23:29+0200\n"
 "From:  <janneke@gnu.org>\n"
-"Xgettext-Options: --c++ --default-domain=lilypond --join --output-dir=../po "
-"--add-comments --keyword=_\n"
+"Xgettext-Options: --c++ --default-domain=lilypond --join --output-dir=../po --add-comments --keyword=_\n"
 "Files: bow.cc int.cc\n"
 
-#: ly2dvi.py:109
+#: ly2dvi.py:106
 msgid "Generate .dvi with LaTeX for LilyPond"
 msgstr "Genereer .dvi met LaTeX voor LilyPond"
 
 #: data-file.cc:118 input.cc:85 ly2dvi.py:191 midi-parser.cc:100 mup2ly.py:93
-#: update-lily.py:119 warn.cc:23
+#: update-lily.py:118 warn.cc:23
 msgid "warning: "
 msgstr "waarschuwing: "
 
-#: input.cc:90 ly2dvi.py:206 ly2dvi.py:638 ly2dvi.py:656 ly2dvi.py:847
-#: mup2ly.py:98 mup2ly.py:188 update-lily.py:124 update-lily.py:212 warn.cc:9
+#: input.cc:90 ly2dvi.py:206 ly2dvi.py:639 ly2dvi.py:657 ly2dvi.py:848
+#: mup2ly.py:98 mup2ly.py:188 update-lily.py:123 update-lily.py:211 warn.cc:9
 #: warn.cc:17
 msgid "error: "
 msgstr "fout: "
 
-#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:126
+#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:125
 msgid "Exiting ... "
-msgstr "Beëidigen ..."
+msgstr "Beëindigen ..."
 
-#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:184
+#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:183
 #, c-format
 msgid "Usage: %s [OPTION]... FILE"
-msgstr "Gebruik: %s [OPTIE]... BESTAND"
+msgstr ""
 
-#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:188
+#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:187
 msgid "Options:"
 msgstr "Opties:"
 
-#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:192
+#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:191
 #, c-format
 msgid "Report bugs to %s"
 msgstr ""
 "Meld luizen in het programma aan %s;\n"
 "meld onjuistheden in de vertaling aan <janneke@gnu.org> of <hanwen@cs.uu.nl>"
 
-#: ly2dvi.py:305 mup2ly.py:185 update-lily.py:209
+#: ly2dvi.py:306 mup2ly.py:185 update-lily.py:208
 #, c-format
 msgid "Invoking `%s'"
 msgstr "Uitvoeren `%s'"
 
-#: ly2dvi.py:309 mup2ly.py:188 update-lily.py:212
+#: ly2dvi.py:310 mup2ly.py:188 update-lily.py:211
 #, c-format
 msgid "command exited with value %d"
 msgstr "opdracht eindigde met waarde %d"
 
-#: ly2dvi.py:311 mup2ly.py:190 update-lily.py:214
+#: ly2dvi.py:312 mup2ly.py:190 update-lily.py:213
 msgid "(ignored)"
 msgstr "(genegeerd)"
 
-#: ly2dvi.py:321
+#: ly2dvi.py:322
 #, c-format
 msgid "Cleaning %s..."
 msgstr "Schoonmaken %s..."
 
-#: ly2dvi.py:336 mup2ly.py:214 update-lily.py:238
+#: ly2dvi.py:337 mup2ly.py:214 update-lily.py:237
 #, c-format
 msgid "no such setting: %s"
 msgstr "geen dergelijke instelling: %s"
 
-#: ly2dvi.py:349 main.cc:113
+#: ly2dvi.py:350 main.cc:113
 msgid "write Makefile dependencies for every input file"
 msgstr "schrijf Makefile afhankelijkheden voor elk invoerbestand"
 
-#: ly2dvi.py:350 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:252
+#: ly2dvi.py:351 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:251
 msgid "this help"
 msgstr "deze hulp"
 
-#: ly2dvi.py:351 main.cc:111 main.cc:116
+#: ly2dvi.py:352 main.cc:111 main.cc:116
 msgid "DIR"
 msgstr "DIR"
 
-#: ly2dvi.py:351
+#: ly2dvi.py:352
 msgid "add DIR to LilyPond's search path"
 msgstr "voeg DIR toe aan LilyPonds zoekpad"
 
-#: ly2dvi.py:352
+#: ly2dvi.py:353
 #, c-format
 msgid "keep all output, and name the directory %s.dir"
 msgstr "bewaar alle uitvoer, en noem de directory %s.dir"
 
-#: ly2dvi.py:353
+#: ly2dvi.py:354
 msgid "don't run LilyPond"
 msgstr "draai LilyPond niet"
 
-#: ly2dvi.py:354 main.cc:114
+#: ly2dvi.py:355 main.cc:114
 msgid "produce MIDI output only"
 msgstr "produceer alleen MIDI uitvoer"
 
-#: ly2dvi.py:355 ly2dvi.py:356 main.cc:99 main.cc:112 main.cc:115
+#: ly2dvi.py:356 ly2dvi.py:357 main.cc:99 main.cc:112 main.cc:115
 msgid "FILE"
 msgstr "BESTAND"
 
-#: ly2dvi.py:355
+#: ly2dvi.py:356
 msgid "write ouput to FILE"
 msgstr "schrijf uitvoer naar BESTAND"
 
-#: ly2dvi.py:356
+#: ly2dvi.py:357
 msgid "find pfa fonts used in FILE"
 msgstr "zoek pfa fonts gebruikt in BESTAND"
 
-#: ly2dvi.py:358
+#: ly2dvi.py:359
 msgid "generate PostScript output"
 msgstr "genereer PostScipt uitvoer"
 
-#: ly2dvi.py:359
+#: ly2dvi.py:360
 msgid "KEY=VAL"
 msgstr "SEUTEL=WAARDE"
 
-#: ly2dvi.py:359
+#: ly2dvi.py:360
 msgid "change global setting KEY to VAL"
 msgstr "verander globale instelling SLEUTEL in WAARDE"
 
-#: ly2dvi.py:360 main.cc:119 mup2ly.py:1120 update-lily.py:256
+#: ly2dvi.py:361 main.cc:119 mup2ly.py:1120 update-lily.py:255
 msgid "verbose"
 msgstr "breedsprakig"
 
-#: ly2dvi.py:361 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:257
+#: ly2dvi.py:362 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:256
 msgid "print version number"
 msgstr "druk versienummer af"
 
-#: ly2dvi.py:362 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:259
+#: ly2dvi.py:363 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:258
 msgid "show warranty and copyright"
 msgstr "toon garantie en auteursrechten"
 
-#: ly2dvi.py:384 ly2dvi.py:579 ly2dvi.py:604
+#: ly2dvi.py:385 ly2dvi.py:580 ly2dvi.py:605
 #, c-format
 msgid "Running %s..."
 msgstr "Uitvoeren %s..."
 
-#: ly2dvi.py:397
+#: ly2dvi.py:398
 #, c-format
 msgid "Analyzing %s..."
 msgstr "Analyseer %s..."
 
-#: ly2dvi.py:453
+#: ly2dvi.py:454
 #, c-format
 msgid "no lilypond output found for %s"
 msgstr "geen lilypond uitvoer gevonden voor %s"
 
-#: ly2dvi.py:495
+#: ly2dvi.py:496
 #, c-format
 msgid "invalid value: %s"
 msgstr "ongeldige waarde: %s"
 
-#: ly2dvi.py:638
+#: ly2dvi.py:639
 #, c-format
 msgid "not a PostScript file: `%s'"
 msgstr "geen PostScript bestand: `%s'"
 
-#: ly2dvi.py:656
+#: ly2dvi.py:657
 #, c-format
 msgid "getopt says: `%s'"
 msgstr "getopt zegt: `%s'"
 
-#: ly2dvi.py:823 scores.cc:44
+#: ly2dvi.py:824 scores.cc:44
 #, c-format
 msgid "dependencies output to `%s'..."
 msgstr "afhankelijkheden uitvoer naar `%s'..."
 
-#: ly2dvi.py:834
+#: ly2dvi.py:835
 #, c-format
 msgid "%s output to `%s'..."
 msgstr "%s uitvoer naar `%s'..."
 
-#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:836
+#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:837
 #: midi-score-parser.cc:24 scores.cc:136 scores.cc:142
 #, c-format
 msgid "can't find file: `%s'"
 msgstr "kan bestand niet vinden: `%s'"
 
-#: ly2dvi.py:847
+#: ly2dvi.py:848
 msgid "no files specified on command line."
 msgstr "geen bestanden gespecificeerd op de commandoregel."
 
@@ -241,80 +240,80 @@ msgstr "Schrijven van `%s'..."
 msgid "Fetch and rebuild from latest source package"
 msgstr "Grijp en herbouw van meest recente source pakket"
 
-#: update-lily.py:224
+#: update-lily.py:223
 #, c-format
 msgid "Cleaning `%s'..."
 msgstr "Schoonmaken van `%s'..."
 
-#: update-lily.py:244
+#: update-lily.py:243
 #, c-format
 msgid "unpack and build in DIR [%s]"
 msgstr "pak uit en bouw in DIR [%s]"
 
-#: update-lily.py:245
+#: update-lily.py:244
 msgid "execute COMMAND, subtitute:"
 msgstr "voer COMMAND uit, substitueer:"
 
-#: update-lily.py:246
+#: update-lily.py:245
 msgid "%b: build root"
 msgstr "%b: bouw-root"
 
-#: update-lily.py:247
+#: update-lily.py:246
 #, c-format
 msgid "%n: package name"
 msgstr "%n: pakketnaam"
 
-#: update-lily.py:248
+#: update-lily.py:247
 msgid "%r: release directory"
 msgstr "%r: uitgave directory"
 
-#: update-lily.py:249
+#: update-lily.py:248
 msgid "%t: tarball"
 msgstr "%t: tar-bal"
 
-#: update-lily.py:250
+#: update-lily.py:249
 msgid "%v: package version"
 msgstr "%v: pakketversie"
 
-#: update-lily.py:253
+#: update-lily.py:252
 #, c-format
 msgid "keep all output, and name the directory %s"
 msgstr "bewaar alle uitvoer, en noem de directory %s"
 
-#: update-lily.py:254
+#: update-lily.py:253
 msgid "upon failure notify EMAIL[,EMAIL]"
 msgstr "bij fout bericht EMAIL[,EMAIL]"
 
-#: update-lily.py:255
+#: update-lily.py:254
 msgid "remove previous build"
 msgstr "verwijder vorige bouw"
 
-#: update-lily.py:258
+#: update-lily.py:257
 #, c-format
 msgid "fetch and build URL [%s]"
 msgstr "grijp en bouw URL [%s]"
 
-#: update-lily.py:366
+#: update-lily.py:365
 #, c-format
 msgid "Listing `%s'..."
 msgstr "Lijst van `%s'"
 
-#: update-lily.py:427
+#: update-lily.py:426
 #, c-format
 msgid "latest is: %s"
 msgstr "meest recente is: %s"
 
-#: update-lily.py:428
+#: update-lily.py:427
 #, c-format
 msgid "relax, %s is up to date"
 msgstr "ontspan, %s is bij de tijd"
 
-#: update-lily.py:436 update-lily.py:449
+#: update-lily.py:435 update-lily.py:448
 #, c-format
 msgid "Fetching `%s'..."
 msgstr "Grijpen van `%s'..."
 
-#: update-lily.py:458
+#: update-lily.py:457
 #, c-format
 msgid "Building `%s'..."
 msgstr "Bouwen van `%s'..."
@@ -890,7 +889,7 @@ msgid "can't find start of phrasing slur"
 msgstr "kan start van fraseringsboog niet vinden"
 
 #: piano-pedal-engraver.cc:142 piano-pedal-engraver.cc:154
-#: piano-pedal-performer.cc:86
+#: piano-pedal-performer.cc:87
 #, c-format
 msgid "can't find start of piano pedal: `%s'"
 msgstr "kan start van piano pedaal niet vinden: `%s'"
@@ -1131,32 +1130,32 @@ msgstr "Tweede argument moet een symbool zijn"
 msgid "First argument must be a procedure taking 1 argument"
 msgstr "Eerste argument moet een procedure zijn met 1 argument"
 
-#: parser.yy:1264
+#: parser.yy:1263
 msgid "Expecting string as script definition"
 msgstr "Verwacht string voor script definitie"
 
-#: parser.yy:1274
+#: parser.yy:1273
 msgid "Can't specify direction for this request"
 msgstr "Kan richting voor dit verzoek niet specificeren"
 
-#: parser.yy:1399
+#: parser.yy:1398
 msgid "Expecting musical-pitch value"
 msgstr "Verwacht musical-pitch waarde"
 
-#: parser.yy:1410
+#: parser.yy:1409
 msgid "Must have duration object"
 msgstr "Moet duur object hebben"
 
-#: parser.yy:1419 parser.yy:1427
+#: parser.yy:1418 parser.yy:1426
 msgid "Have to be in Lyric mode for lyrics"
 msgstr "Moet in Lyric modus zijn voor liedteksten"
 
-#: parser.yy:1580 parser.yy:1637
+#: parser.yy:1579 parser.yy:1636
 #, c-format
 msgid "not a duration: %d"
 msgstr "geen duur: %d"
 
-#: parser.yy:1648
+#: parser.yy:1645
 msgid "Have to be in Note mode for notes"
 msgstr "Moet in Note modus zijn voor noten"
 
@@ -1289,6 +1288,7 @@ msgid "% Automatically generated"
 msgstr "% Automatisch gegenereerd"
 
 #: lilypond-stream.cc:97
+#, c-format
 msgid "% from input file: "
 msgstr "% van invoerbestand: "
 
index 1845dc32009fa42e4fbb2bd1f8ddf45560eacee5..a1b406243fec914b95873711e70d92d4b08662d5 100644 (file)
--- a/po/ru.po
+++ b/po/ru.po
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2001-10-09 19:29+0200\n"
+"POT-Creation-Date: 2001-09-09 17:30+0200\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: August S.Sigov <august@infran.ru>\n"
 "Language-Team: Russian <ru@li.org>\n"
@@ -14,178 +14,178 @@ msgstr ""
 "Content-Type: text/plain; charset=koi8-r\n"
 "Content-Transfer-Encoding: ENCODING\n"
 
-#: ly2dvi.py:109
+#: ly2dvi.py:106
 msgid "Generate .dvi with LaTeX for LilyPond"
 msgstr ""
 
 #: data-file.cc:118 input.cc:85 ly2dvi.py:191 midi-parser.cc:100 mup2ly.py:93
-#: update-lily.py:119 warn.cc:23
+#: update-lily.py:118 warn.cc:23
 msgid "warning: "
 msgstr "ÐÒÅÄÕÐÒÅÖÄÁÀ: "
 
-#: input.cc:90 ly2dvi.py:206 ly2dvi.py:638 ly2dvi.py:656 ly2dvi.py:847
-#: mup2ly.py:98 mup2ly.py:188 update-lily.py:124 update-lily.py:212 warn.cc:9
+#: input.cc:90 ly2dvi.py:206 ly2dvi.py:639 ly2dvi.py:657 ly2dvi.py:848
+#: mup2ly.py:98 mup2ly.py:188 update-lily.py:123 update-lily.py:211 warn.cc:9
 #: warn.cc:17
 msgid "error: "
 msgstr "ÏÛÉÂËÁ: "
 
-#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:126
+#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:125
 msgid "Exiting ... "
 msgstr ""
 
-#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:184
+#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:183
 #, fuzzy, c-format
 msgid "Usage: %s [OPTION]... FILE"
 msgstr "éÓÐÏÌØÚÏ×ÁÎÉÅ: %s [ïðãéñ]... [æáêì]"
 
-#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:188
+#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:187
 msgid "Options:"
 msgstr "ïÐÃÉÉ:"
 
-#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:192
+#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:191
 #, c-format
 msgid "Report bugs to %s"
 msgstr "óÏÏÂÝÁÊÔÅ Ï ÏÛÉÂËÁÈ ÐÏ %s"
 
-#: ly2dvi.py:305 mup2ly.py:185 update-lily.py:209
+#: ly2dvi.py:306 mup2ly.py:185 update-lily.py:208
 #, fuzzy, c-format
 msgid "Invoking `%s'"
 msgstr "÷ÙÂÒÁÓÙ×ÁÀ ÍÕÚÙËÕ: `%s'"
 
-#: ly2dvi.py:309 mup2ly.py:188 update-lily.py:212
+#: ly2dvi.py:310 mup2ly.py:188 update-lily.py:211
 #, c-format
 msgid "command exited with value %d"
 msgstr ""
 
-#: ly2dvi.py:311 mup2ly.py:190 update-lily.py:214
+#: ly2dvi.py:312 mup2ly.py:190 update-lily.py:213
 msgid "(ignored)"
 msgstr ""
 
-#: ly2dvi.py:321
+#: ly2dvi.py:322
 #, fuzzy, c-format
 msgid "Cleaning %s..."
 msgstr "÷ÙÂÒÁÓÙ×ÁÀ ÍÕÚÙËÕ: `%s'"
 
-#: ly2dvi.py:336 mup2ly.py:214 update-lily.py:238
+#: ly2dvi.py:337 mup2ly.py:214 update-lily.py:237
 #, fuzzy, c-format
 msgid "no such setting: %s"
 msgstr "ÎÅÔ ÔÁËÏÇÏ ÉÎÓÔÒÕÍÅÎÔÁ: `%s'"
 
-#: ly2dvi.py:349 main.cc:113
+#: ly2dvi.py:350 main.cc:113
 msgid "write Makefile dependencies for every input file"
 msgstr "ÚÁÐÉÓÙ×ÁÔØ ÚÁ×ÉÓÉÍÏÓÔÉ Makefile ÄÌÑ ËÁÖÄÏÇÏ ×ÈÏÄÎÏÇÏ ÆÁÊÌÁ"
 
-#: ly2dvi.py:350 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:252
+#: ly2dvi.py:351 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:251
 msgid "this help"
 msgstr "ÜÔÁ ÓÐÒÁ×ËÁ"
 
-#: ly2dvi.py:351 main.cc:111 main.cc:116
+#: ly2dvi.py:352 main.cc:111 main.cc:116
 msgid "DIR"
 msgstr "ëáô"
 
-#: ly2dvi.py:351
+#: ly2dvi.py:352
 #, fuzzy
 msgid "add DIR to LilyPond's search path"
 msgstr "ÄÏÂÁ×ÉÔØ ëáô Ë ÐÕÔÉ ÐÏÉÓËÁ"
 
-#: ly2dvi.py:352
+#: ly2dvi.py:353
 #, c-format
 msgid "keep all output, and name the directory %s.dir"
 msgstr ""
 
-#: ly2dvi.py:353
+#: ly2dvi.py:354
 msgid "don't run LilyPond"
 msgstr ""
 
-#: ly2dvi.py:354 main.cc:114
+#: ly2dvi.py:355 main.cc:114
 msgid "produce MIDI output only"
 msgstr "ÐÒÏÉÚ×ÏÄÉÔØ ×Ù×ÏÄ ÔÏÌØËÏ MIDI"
 
-#: ly2dvi.py:355 ly2dvi.py:356 main.cc:99 main.cc:112 main.cc:115
+#: ly2dvi.py:356 ly2dvi.py:357 main.cc:99 main.cc:112 main.cc:115
 msgid "FILE"
 msgstr "æáêì"
 
-#: ly2dvi.py:355
+#: ly2dvi.py:356
 #, fuzzy
 msgid "write ouput to FILE"
 msgstr "ÚÁÐÉÓÙ×ÁÔØ ×Ù×ÏÄ × ïóîï÷á[-x].ÒÁÓÛÉÒÅÎÉÅ"
 
-#: ly2dvi.py:356
+#: ly2dvi.py:357
 msgid "find pfa fonts used in FILE"
 msgstr ""
 
-#: ly2dvi.py:358
+#: ly2dvi.py:359
 msgid "generate PostScript output"
 msgstr ""
 
-#: ly2dvi.py:359
+#: ly2dvi.py:360
 msgid "KEY=VAL"
 msgstr ""
 
-#: ly2dvi.py:359
+#: ly2dvi.py:360
 msgid "change global setting KEY to VAL"
 msgstr ""
 
-#: ly2dvi.py:360 main.cc:119 mup2ly.py:1120 update-lily.py:256
+#: ly2dvi.py:361 main.cc:119 mup2ly.py:1120 update-lily.py:255
 #, fuzzy
 msgid "verbose"
 msgstr "ÂÙÔØ ÂÏÌÔÌÉ×ÙÍ"
 
-#: ly2dvi.py:361 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:257
+#: ly2dvi.py:362 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:256
 msgid "print version number"
 msgstr "×Ù×ÏÄÉÔØ ÎÏÍÅÒ ×ÅÒÓÉÉ"
 
-#: ly2dvi.py:362 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:259
+#: ly2dvi.py:363 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:258
 msgid "show warranty and copyright"
 msgstr "ÐÏËÁÚÁÔØ ÇÁÒÁÎÔÉÀ É copyright"
 
-#: ly2dvi.py:384 ly2dvi.py:579 ly2dvi.py:604
+#: ly2dvi.py:385 ly2dvi.py:580 ly2dvi.py:605
 #, fuzzy, c-format
 msgid "Running %s..."
 msgstr "÷ÙÂÒÁÓÙ×ÁÀ ÍÕÚÙËÕ: `%s'"
 
-#: ly2dvi.py:397
+#: ly2dvi.py:398
 #, fuzzy, c-format
 msgid "Analyzing %s..."
 msgstr "÷ÙÂÒÁÓÙ×ÁÀ ÍÕÚÙËÕ: `%s'"
 
-#: ly2dvi.py:453
+#: ly2dvi.py:454
 #, c-format
 msgid "no lilypond output found for %s"
 msgstr ""
 
-#: ly2dvi.py:495
+#: ly2dvi.py:496
 #, fuzzy, c-format
 msgid "invalid value: %s"
 msgstr "ÎÅ×ÅÒÎÙÊ ÓÉÍ×ÏÌ: `%c'"
 
-#: ly2dvi.py:638
+#: ly2dvi.py:639
 #, fuzzy, c-format
 msgid "not a PostScript file: `%s'"
 msgstr "ÎÅ ÍÏÇÕ ÏÔËÒÙÔØ ÆÁÊÌ: `%s'"
 
-#: ly2dvi.py:656
+#: ly2dvi.py:657
 #, c-format
 msgid "getopt says: `%s'"
 msgstr ""
 
-#: ly2dvi.py:823 scores.cc:44
+#: ly2dvi.py:824 scores.cc:44
 #, fuzzy, c-format
 msgid "dependencies output to `%s'..."
 msgstr "\"ÂÕÍÁÖÎÙÊ\" ×Ù×ÏÄ × %s..."
 
-#: ly2dvi.py:834
+#: ly2dvi.py:835
 #, fuzzy, c-format
 msgid "%s output to `%s'..."
 msgstr "×Ù×ÏÄ MIDI × %s..."
 
-#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:836
+#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:837
 #: midi-score-parser.cc:24 scores.cc:136 scores.cc:142
 #, c-format
 msgid "can't find file: `%s'"
 msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ ÆÁÊÌ: `%s'"
 
-#: ly2dvi.py:847
+#: ly2dvi.py:848
 msgid "no files specified on command line."
 msgstr ""
 
@@ -234,81 +234,81 @@ msgstr "
 msgid "Fetch and rebuild from latest source package"
 msgstr ""
 
-#: update-lily.py:224
+#: update-lily.py:223
 #, fuzzy, c-format
 msgid "Cleaning `%s'..."
 msgstr "÷ÙÂÒÁÓÙ×ÁÀ ÍÕÚÙËÕ: `%s'"
 
-#: update-lily.py:244
+#: update-lily.py:243
 #, c-format
 msgid "unpack and build in DIR [%s]"
 msgstr ""
 
-#: update-lily.py:245
+#: update-lily.py:244
 msgid "execute COMMAND, subtitute:"
 msgstr ""
 
-#: update-lily.py:246
+#: update-lily.py:245
 msgid "%b: build root"
 msgstr ""
 
-#: update-lily.py:247
+#: update-lily.py:246
 #, c-format
 msgid "%n: package name"
 msgstr ""
 
-#: update-lily.py:248
+#: update-lily.py:247
 #, fuzzy
 msgid "%r: release directory"
 msgstr "ÎÅ ÍÏÇÕ ÎÁÊÔÉ ÉÌÉ ÓÏÚÄÁÔØ: `%s'"
 
-#: update-lily.py:249
+#: update-lily.py:248
 msgid "%t: tarball"
 msgstr ""
 
-#: update-lily.py:250
+#: update-lily.py:249
 msgid "%v: package version"
 msgstr ""
 
-#: update-lily.py:253
+#: update-lily.py:252
 #, c-format
 msgid "keep all output, and name the directory %s"
 msgstr ""
 
-#: update-lily.py:254
+#: update-lily.py:253
 msgid "upon failure notify EMAIL[,EMAIL]"
 msgstr ""
 
-#: update-lily.py:255
+#: update-lily.py:254
 msgid "remove previous build"
 msgstr ""
 
-#: update-lily.py:258
+#: update-lily.py:257
 #, c-format
 msgid "fetch and build URL [%s]"
 msgstr ""
 
-#: update-lily.py:366
+#: update-lily.py:365
 #, fuzzy, c-format
 msgid "Listing `%s'..."
 msgstr "÷ÙÂÒÁÓÙ×ÁÀ ÍÕÚÙËÕ: `%s'"
 
-#: update-lily.py:427
+#: update-lily.py:426
 #, c-format
 msgid "latest is: %s"
 msgstr ""
 
-#: update-lily.py:428
+#: update-lily.py:427
 #, c-format
 msgid "relax, %s is up to date"
 msgstr ""
 
-#: update-lily.py:436 update-lily.py:449
+#: update-lily.py:435 update-lily.py:448
 #, fuzzy, c-format
 msgid "Fetching `%s'..."
 msgstr "÷ÙÂÒÁÓÙ×ÁÀ ÍÕÚÙËÕ: `%s'"
 
-#: update-lily.py:458
+#: update-lily.py:457
 #, fuzzy, c-format
 msgid "Building `%s'..."
 msgstr "÷ÙÂÒÁÓÙ×ÁÀ ÍÕÚÙËÕ: `%s'"
@@ -876,7 +876,7 @@ msgid "can't find start of phrasing slur"
 msgstr "ÞÔÏ-ÔÏ ÎÅ ÎÁÊÄÕ ÎÁÞÁÌÏ ÇÒÕÐÐÉÒÏ×ËÉ ÛÔÉÌÅÊ"
 
 #: piano-pedal-engraver.cc:142 piano-pedal-engraver.cc:154
-#: piano-pedal-performer.cc:86
+#: piano-pedal-performer.cc:87
 #, fuzzy, c-format
 msgid "can't find start of piano pedal: `%s'"
 msgstr "ÞÔÏ-ÔÏ ÎÅ ÎÁÊÄÕ ÎÁÞÁÌÏ ÇÒÕÐÐÉÒÏ×ËÉ ÛÔÉÌÅÊ"
@@ -1118,33 +1118,33 @@ msgstr "
 msgid "First argument must be a procedure taking 1 argument"
 msgstr ""
 
-#: parser.yy:1264
+#: parser.yy:1263
 msgid "Expecting string as script definition"
 msgstr ""
 
-#: parser.yy:1274
+#: parser.yy:1273
 msgid "Can't specify direction for this request"
 msgstr "îÅ ÍÏÇÕ ÕËÁÚÁÔØ ÎÁÐÒÁ×ÌÅÎÉÅ ÄÌÑ ÜÔÏÇÏ ÚÁÐÒÏÓÁ"
 
-#: parser.yy:1399
+#: parser.yy:1398
 msgid "Expecting musical-pitch value"
 msgstr ""
 
-#: parser.yy:1410
+#: parser.yy:1409
 #, fuzzy
 msgid "Must have duration object"
 msgstr "ÕÓÔÁÎÏ×ÉÔØ ÎÁÉÍÅÎØÛÕÀ ÐÒÏÄÏÌÖÉÔÅÌØÎÏÓÔØ"
 
-#: parser.yy:1419 parser.yy:1427
+#: parser.yy:1418 parser.yy:1426
 msgid "Have to be in Lyric mode for lyrics"
 msgstr "äÏÌÖÅΠÂÙÔØ × ìÉÒÉÞÅÓËÏÍ ÒÅÖÉÍÅ ÄÌÑ ÌÉÒÉËÉ"
 
-#: parser.yy:1580 parser.yy:1637
+#: parser.yy:1579 parser.yy:1636
 #, c-format
 msgid "not a duration: %d"
 msgstr "ÎÅ ÐÒÏÄÏÌÖÉÔÅÌØÎÏÓÔØ: %d"
 
-#: parser.yy:1648
+#: parser.yy:1645
 msgid "Have to be in Note mode for notes"
 msgstr "äÏÌÖÅΠÂÙÔØ × îÏÔÎÏÍ ÒÅÖÉÍÅ ÄÌÑ ÎÏÔ"
 
diff --git a/po/sv.po b/po/sv.po
new file mode 100644 (file)
index 0000000..1c33f80
--- /dev/null
+++ b/po/sv.po
@@ -0,0 +1,1423 @@
+# Swedish translation of lilypond
+# Copyright (C) 2001 Free Software Foundation, Inc.
+# Martin Norbäck <d95mback@dtek.chalmers.se>, 2001.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: lilypond 1.4.8\n"
+"POT-Creation-Date: 2001-09-09 17:30+0200\n"
+"PO-Revision-Date: 2001-09-29 11:20+0200\n"
+"Last-Translator: Martin Norbäck <d95mback@dtek.chalmers.se>\n"
+"Language-Team: Swedish <sv@li.org>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=iso-8859-1\n"
+"Content-Transfer-Encoding: 8bit\n"
+
+#: ly2dvi.py:106
+msgid "Generate .dvi with LaTeX for LilyPond"
+msgstr "Generera .dvi med LaTeX för LilyPond"
+
+#: data-file.cc:118 input.cc:85 ly2dvi.py:191 midi-parser.cc:100 mup2ly.py:93
+#: update-lily.py:118 warn.cc:23
+msgid "warning: "
+msgstr "varning: "
+
+#: input.cc:90 ly2dvi.py:206 ly2dvi.py:639 ly2dvi.py:657 ly2dvi.py:848
+#: mup2ly.py:98 mup2ly.py:188 update-lily.py:123 update-lily.py:211 warn.cc:9
+#: warn.cc:17
+msgid "error: "
+msgstr "fel: "
+
+#: ly2dvi.py:207 mup2ly.py:100 update-lily.py:125
+msgid "Exiting ... "
+msgstr "Avslutar... "
+
+#: ly2dvi.py:265 mup2ly.py:158 update-lily.py:183
+#, c-format
+msgid "Usage: %s [OPTION]... FILE"
+msgstr "Användning: %s [FLAGGA]... FIL"
+
+#: ly2dvi.py:269 main.cc:120 main.cc:149 mup2ly.py:162 update-lily.py:187
+msgid "Options:"
+msgstr "Flaggor:"
+
+#: ly2dvi.py:273 main.cc:124 main.cc:172 mup2ly.py:168 update-lily.py:191
+#, c-format
+msgid "Report bugs to %s"
+msgstr ""
+"Rapportera programfel till %s\n"
+"Rapportera fel i översättningen till <sv@li.org>"
+
+#: ly2dvi.py:306 mup2ly.py:185 update-lily.py:208
+#, c-format
+msgid "Invoking `%s'"
+msgstr "Startar \"%s\""
+
+#: ly2dvi.py:310 mup2ly.py:188 update-lily.py:211
+#, c-format
+msgid "command exited with value %d"
+msgstr "kommandot avslutade med värde %d"
+
+#: ly2dvi.py:312 mup2ly.py:190 update-lily.py:213
+msgid "(ignored)"
+msgstr "(ignorerat)"
+
+# här är det fråga om rensning av en temporärkatalog
+#: ly2dvi.py:322
+#, c-format
+msgid "Cleaning %s..."
+msgstr "Rensar %s..."
+
+#: ly2dvi.py:337 mup2ly.py:214 update-lily.py:237
+#, c-format
+msgid "no such setting: %s"
+msgstr "inställningen finns inte: %s"
+
+#: ly2dvi.py:350 main.cc:113
+msgid "write Makefile dependencies for every input file"
+msgstr "skriv Makefile-beroenden för varje indatafil"
+
+# förklaring av flaggan -h
+#: ly2dvi.py:351 main.cc:96 main.cc:109 mup2ly.py:1117 update-lily.py:251
+msgid "this help"
+msgstr "denna hjälp"
+
+#: ly2dvi.py:352 main.cc:111 main.cc:116
+msgid "DIR"
+msgstr "KATALOG"
+
+#: ly2dvi.py:352
+msgid "add DIR to LilyPond's search path"
+msgstr "lägg till KATALOG till LilyPonds sökväg"
+
+# %s är programmets namn
+#: ly2dvi.py:353
+#, c-format
+msgid "keep all output, and name the directory %s.dir"
+msgstr "behåll all utdata, och namnge katalogen %s.dir"
+
+#: ly2dvi.py:354
+msgid "don't run LilyPond"
+msgstr "kör inte LilyPond"
+
+#: ly2dvi.py:355 main.cc:114
+msgid "produce MIDI output only"
+msgstr "skapa enbart MIDI-utdata"
+
+#: ly2dvi.py:356 ly2dvi.py:357 main.cc:99 main.cc:112 main.cc:115
+msgid "FILE"
+msgstr "FIL"
+
+#: ly2dvi.py:356
+msgid "write ouput to FILE"
+msgstr "skriv utdata till FIL"
+
+#: ly2dvi.py:357
+msgid "find pfa fonts used in FILE"
+msgstr "hitta pfa-typsnitt som används i FIL"
+
+#: ly2dvi.py:359
+msgid "generate PostScript output"
+msgstr "skapa PostScript-utdata"
+
+#: ly2dvi.py:360
+msgid "KEY=VAL"
+msgstr "NYCKEL=VÄRDE"
+
+#: ly2dvi.py:360
+msgid "change global setting KEY to VAL"
+msgstr "ändra global inställning NYCKEL till VÄRDE"
+
+# Förklaring till --verbose (borde vara längre)
+#: ly2dvi.py:361 main.cc:119 mup2ly.py:1120 update-lily.py:255
+msgid "verbose"
+msgstr "utförlig utdata"
+
+#: ly2dvi.py:362 main.cc:105 main.cc:118 mup2ly.py:1121 update-lily.py:256
+msgid "print version number"
+msgstr "visa versionsnummer"
+
+#: ly2dvi.py:363 main.cc:107 main.cc:120 mup2ly.py:1122 update-lily.py:258
+msgid "show warranty and copyright"
+msgstr "visa garanti och copyright"
+
+#: ly2dvi.py:385 ly2dvi.py:580 ly2dvi.py:605
+#, c-format
+msgid "Running %s..."
+msgstr "Kör %s..."
+
+#: ly2dvi.py:398
+#, c-format
+msgid "Analyzing %s..."
+msgstr "Analyserar %s..."
+
+#: ly2dvi.py:454
+#, c-format
+msgid "no lilypond output found for %s"
+msgstr "ingen lilypondutdata funnen för %s"
+
+#: ly2dvi.py:496
+#, c-format
+msgid "invalid value: %s"
+msgstr "ogiltigt värde: %s"
+
+#: ly2dvi.py:639
+#, c-format
+msgid "not a PostScript file: `%s'"
+msgstr "inte en PostScript-fil: \"%s\""
+
+#: ly2dvi.py:657
+#, c-format
+msgid "getopt says: `%s'"
+msgstr "getopt säger: \"%s\""
+
+# här är det fråga om skrivning till en fil
+#: ly2dvi.py:824 scores.cc:44
+#, c-format
+msgid "dependencies output to `%s'..."
+msgstr "beroenden skrivna till \"%s\"..."
+
+# här är det fråga om skrivning till en fil (första parametern är t.ex
+# DVI, LATEX, MIDI, TEX)
+#: ly2dvi.py:835
+#, c-format
+msgid "%s output to `%s'..."
+msgstr "%s skrivet till \"%s\"..."
+
+#: includable-lexer.cc:49 lily-guile.cc:139 ly2dvi.py:837
+#: midi-score-parser.cc:24 scores.cc:136 scores.cc:142
+#, c-format
+msgid "can't find file: `%s'"
+msgstr "kan inte hitta fil: \"%s\""
+
+#: ly2dvi.py:848
+msgid "no files specified on command line."
+msgstr "inga filer angivna på kommandoraden."
+
+#: mup2ly.py:51
+msgid "Convert mup to ly"
+msgstr "Konvertera mup till ly"
+
+# %s är programnamnet (mup2ly)
+#: mup2ly.py:166
+#, c-format
+msgid "%s is far from completed.  Not all constructs are recognised."
+msgstr "%s är långt ifrån färdig, och kan inte alla konstruktioner."
+
+#: mup2ly.py:964
+#, c-format
+msgid "no such context: %s"
+msgstr "omgivning finns inte: %s"
+
+#: mup2ly.py:1115
+msgid "debug"
+msgstr "felsökningsutdata"
+
+#: mup2ly.py:1116
+msgid "define macro NAME [optional expansion EXP]"
+msgstr "definiera makro NAME [valfri makroersättning EXP]"
+
+#: main.cc:115 mup2ly.py:1118
+msgid "write output to FILE"
+msgstr "skriv utdata till FIL"
+
+#: mup2ly.py:1119
+msgid "only pre-process"
+msgstr "förbehandla enbart"
+
+#: mup2ly.py:1200
+#, c-format
+msgid "Processing `%s'..."
+msgstr "Behandlar \"%s\"..."
+
+#: mup2ly.py:1219
+#, c-format
+msgid "Writing `%s'..."
+msgstr "Skriver \"%s\"..."
+
+#: update-lily.py:51
+msgid "Fetch and rebuild from latest source package"
+msgstr "Hämta och bygg om från senaste källkodspaketet"
+
+#: update-lily.py:223
+#, c-format
+msgid "Cleaning `%s'..."
+msgstr "Rensar \"%s\"..."
+
+#: update-lily.py:243
+#, c-format
+msgid "unpack and build in DIR [%s]"
+msgstr "packa upp och bygg i DIR [%s]"
+
+#: update-lily.py:244
+msgid "execute COMMAND, subtitute:"
+msgstr "kör COMMAND, ersätt:"
+
+#: update-lily.py:245
+msgid "%b: build root"
+msgstr "%b: byggrot"
+
+#: update-lily.py:246
+#, c-format
+msgid "%n: package name"
+msgstr "%n: paketnamn"
+
+#: update-lily.py:247
+msgid "%r: release directory"
+msgstr "%r: programsläppskatalog"
+
+#: update-lily.py:248
+msgid "%t: tarball"
+msgstr "%t: tarboll"
+
+#: update-lily.py:249
+msgid "%v: package version"
+msgstr "%v: paketversion"
+
+#: update-lily.py:252
+#, c-format
+msgid "keep all output, and name the directory %s"
+msgstr "behåll all utdata, och döp katalogen till %s"
+
+#: update-lily.py:253
+msgid "upon failure notify EMAIL[,EMAIL]"
+msgstr "vid fel, meddela EMAIL[,EMAIL]"
+
+#: update-lily.py:254
+msgid "remove previous build"
+msgstr "ta bort föregående bygge"
+
+#: update-lily.py:257
+#, c-format
+msgid "fetch and build URL [%s]"
+msgstr "hämta och bygg URL [%s]"
+
+#: update-lily.py:365
+#, c-format
+msgid "Listing `%s'..."
+msgstr "Listar \"%s\"..."
+
+#: update-lily.py:426
+#, c-format
+msgid "latest is: %s"
+msgstr "senaste är: %s"
+
+#: update-lily.py:427
+#, c-format
+msgid "relax, %s is up to date"
+msgstr "lugn, %s är senaste versionen"
+
+#: update-lily.py:435 update-lily.py:448
+#, c-format
+msgid "Fetching `%s'..."
+msgstr "Hämtar \"%s\"..."
+
+#: update-lily.py:457
+#, c-format
+msgid "Building `%s'..."
+msgstr "Bygger \"%s\"..."
+
+#: data-file.cc:54
+msgid "EOF in a string"
+msgstr "EOF i en sträng"
+
+#: getopt-long.cc:145
+#, c-format
+msgid "option `%s' requires an argument"
+msgstr "flaggan \"%s\" kräver ett argument"
+
+#: getopt-long.cc:149
+#, c-format
+msgid "option `%s' doesn't allow an argument"
+msgstr "flaggan \"%s\" tillåter inget argument"
+
+#: getopt-long.cc:153
+#, c-format
+msgid "unrecognized option: `%s'"
+msgstr "okänd flagga: \"%s\""
+
+#: getopt-long.cc:160
+#, c-format
+msgid "invalid argument `%s' to option `%s'"
+msgstr "ogiltigt argument \"%s\" till flaggan \"%s\""
+
+#: input.cc:96
+msgid "non fatal error: "
+msgstr "icke-fatalt fel: "
+
+#: input.cc:104 source-file.cc:63 source-file.cc:156
+msgid "position unknown"
+msgstr "okänd position"
+
+# det handlar om mmap här
+#: mapped-file-storage.cc:74
+msgid "can't map file"
+msgstr "kan inte göra \"mmap\" på filen"
+
+#: lilypond-stream.cc:111 mapped-file-storage.cc:87 paper-stream.cc:45
+#: scores.cc:48 simple-file-storage.cc:44 text-stream.cc:23
+#, c-format
+msgid "can't open file: `%s'"
+msgstr "kan inte öppna fil: \"%s\""
+
+#: simple-file-storage.cc:56
+#, c-format
+msgid "Huh?  Got %d, expected %d characters"
+msgstr "Öh? Fick %d, väntade %d tecken"
+
+#: text-stream.cc:10
+msgid "<stdin>"
+msgstr "<stdin>"
+
+#: warn.cc:36
+msgid "programming error: "
+msgstr "programmeringsfel: "
+
+#: warn.cc:36
+msgid " (Continuing; cross thumbs)"
+msgstr " (Fortsätter, håll tummarna)"
+
+#: afm.cc:59
+#, c-format
+msgid "can't find character number: %d"
+msgstr "kan inte hitta teckennummer: %d"
+
+#: afm.cc:74
+#, c-format
+msgid "can't find character called: `%s'"
+msgstr "kan inte hitta tecken som heter: \"%s\""
+
+#: afm.cc:124
+#, c-format
+msgid "Error parsing AFM file: `%s'"
+msgstr "Fel vid tolkning av AFM-fil: \"%s\""
+
+#: all-font-metrics.cc:95
+#, c-format
+msgid "checksum mismatch for font file: `%s'"
+msgstr "felaktig checksumma för typsnittsfil: \"%s\""
+
+#: all-font-metrics.cc:97
+#, c-format
+msgid "does not match: `%s'"
+msgstr "matchar inte: \"%s\""
+
+#: all-font-metrics.cc:102
+msgid " Rebuild all .afm files, and remove all .pk and .tfm files.  Rerun with -V to show font paths."
+msgstr " Bygg om alla .afm-filer, och ta bort alla .pk- och .tfm-filer. Kör igen med -V för att visa typsnittssökvägar."
+
+#: all-font-metrics.cc:167
+#, c-format
+msgid "can't find font: `%s'"
+msgstr "kan inte hitta typsnitt: \"%s\""
+
+#: all-font-metrics.cc:168
+msgid "Loading default font"
+msgstr "Läser in standardtypsnitt"
+
+#: all-font-metrics.cc:183
+#, c-format
+msgid "can't find default font: `%s'"
+msgstr "kan inte hitta standardtypsnitt: \"%s\""
+
+#: all-font-metrics.cc:184 includable-lexer.cc:51 scores.cc:137
+#, c-format
+msgid "(search path: `%s')"
+msgstr "(sökväg: \"%s\")"
+
+#: all-font-metrics.cc:185
+msgid "Giving up"
+msgstr "Ger upp"
+
+#: auto-change-iterator.cc:43 change-iterator.cc:59
+#: part-combine-music-iterator.cc:97
+msgid "Can't switch translators, I'm there already"
+msgstr "Kan inte byta översättare, jag är redan där"
+
+#: beam-engraver.cc:91 beam-engraver.cc:124
+msgid "can't find start of beam"
+msgstr "kan inte hitta start på balk"
+
+#: beam-engraver.cc:158
+msgid "already have a beam"
+msgstr "har redan en balk"
+
+#: beam-engraver.cc:222
+msgid "unterminated beam"
+msgstr "oavslutad balk"
+
+#: beam-engraver.cc:260 chord-tremolo-engraver.cc:195
+msgid "stem must have Rhythmic structure"
+msgstr "skaft måste ha en rytmisk struktur"
+
+#: beam-engraver.cc:272
+msgid "stem doesn't fit in beam"
+msgstr "skaftet passar inte i balken"
+
+#: beam-engraver.cc:273
+msgid "beam was started here"
+msgstr "balken startade här"
+
+#: beam.cc:86
+msgid "beam has less than two stems"
+msgstr "balk har mindre än två skaft"
+
+#: beam.cc:637
+msgid "weird beam vertical offset"
+msgstr "underligt vertikalt avstånd för balk"
+
+#: break-align-item.cc:136
+#, c-format
+msgid "unknown spacing pair `%s', `%s'"
+msgstr "okänt avståndspar \"%s\", \"%s\""
+
+#: change-iterator.cc:21
+#, c-format
+msgid "can't change `%s' to `%s'"
+msgstr "kan inte ändra \"%s\" till \"%s\""
+
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_str_  = change_l ()->change_to_id_str_;
+#.
+#: change-iterator.cc:78
+msgid "I'm one myself"
+msgstr "Jag är en själv"
+
+#: change-iterator.cc:81
+msgid "none of these in my family"
+msgstr "ingen av dessa i min familj"
+
+#: chord-tremolo-engraver.cc:141 percent-repeat-engraver.cc:192
+msgid "unterminated chord tremolo"
+msgstr "icke avslutat ackordtremolo"
+
+#: chord-tremolo-iterator.cc:48
+msgid "no one to print a tremolos"
+msgstr "det finns ingen som kan skriva tremolon"
+
+#: chord.cc:376
+#, c-format
+msgid "invalid subtraction: not part of chord: %s"
+msgstr "ogiltig subtraktion: inte del av ackord: %s"
+
+# "pitch" här ska alltså vara en ton i ett ackord
+#: chord.cc:405
+#, c-format
+msgid "invalid inversion pitch: not part of chord: %s"
+msgstr "ogiltig ton för inversion: inte del av ett ackord: %s"
+
+#: collision.cc:127
+msgid "Too many clashing notecolumns.  Ignoring them."
+msgstr "För många krockande notkolumner. Ignorerar dem."
+
+#: dimensions.cc:13
+msgid "NaN"
+msgstr "-"
+
+#: dynamic-engraver.cc:197 span-dynamic-performer.cc:86
+msgid "can't find start of (de)crescendo"
+msgstr "kan inte hitta start på crescendo/diminuendo"
+
+#: dynamic-engraver.cc:222
+msgid "already have a crescendo"
+msgstr "har redan ett crescendo"
+
+#: dynamic-engraver.cc:223
+msgid "already have a decrescendo"
+msgstr "har redan ett diminuendo"
+
+#: dynamic-engraver.cc:317
+msgid "unterminated (de)crescendo"
+msgstr "oavslutat crescendo/diminuendo"
+
+#: extender-engraver.cc:97
+msgid "unterminated extender"
+msgstr "oavslutad utökare"
+
+#: extender-engraver.cc:109
+msgid "Nothing to connect extender to on the left.  Ignoring extender request."
+msgstr "Det finns inget att koppla utökaren mot till vänster. Ignorerar utökarförfrågan"
+
+#: folded-repeat-iterator.cc:78
+msgid "no one to print a repeat brace"
+msgstr "det finns ingen som kan skriva ett repristecken"
+
+#: font-interface.cc:237
+msgid "couldn't find any font satisfying "
+msgstr "kunde inte hitta något typsnitt som uppfyller "
+
+#: gourlay-breaking.cc:157
+msgid "No feasible line breaking found"
+msgstr "Ingen lämplig radbrytning hittades"
+
+#: grace-iterator.cc:43
+msgid "no Grace context available"
+msgstr "ingen prydnadsomgivning tillgänglig"
+
+#: grace-position-engraver.cc:96
+msgid "Unattached grace notes.  Attaching to last musical column."
+msgstr "Ej fastsatta prydnadsnoter. Fäster vid sista musikkolumnen."
+
+#: hairpin.cc:93
+msgid "decrescendo too small"
+msgstr "diminuendo för litet"
+
+#: hairpin.cc:94
+msgid "crescendo too small"
+msgstr "crescendo för litet"
+
+#: hyphen-engraver.cc:90
+msgid "unterminated hyphen"
+msgstr "oavslutat bindestreck"
+
+#: hyphen-engraver.cc:102
+msgid "Nothing to connect hyphen to on the left.  Ignoring hyphen request."
+msgstr "Det finns inget att koppla bindestrecket mot till vänster. Ignorerar bindestrecksförfrågan."
+
+#: key-engraver.cc:99
+msgid "Conflicting key signatures found."
+msgstr "Motsägande tonartssignaturer funna."
+
+#: key-engraver.cc:100
+msgid "This was the other key definition."
+msgstr "Detta var den andra tonartsdefinitionen."
+
+#: key-performer.cc:77
+msgid "FIXME: key change merge"
+msgstr "FIXA: tonartsbytessammanslagning"
+
+#: lily-guile.cc:141
+#, c-format
+msgid "(load path: `%s')"
+msgstr "(inläsningssökväg: \"%s\""
+
+#: line-of-score.cc:96
+#, c-format
+msgid "Element count %d."
+msgstr "Elementantal %d."
+
+#: line-of-score.cc:253 paper-score.cc:77
+#, c-format
+msgid "Element count %d "
+msgstr "Elementantal %d "
+
+#: line-of-score.cc:267
+msgid "Calculating column positions..."
+msgstr "Beräknar kolumnpositioner..."
+
+#: lyric-phrasing-engraver.cc:284
+msgid "lyrics found without any matching notehead"
+msgstr "text hittad utan något matchande nothuvud"
+
+#: lyric-phrasing-engraver.cc:289
+msgid "Huh? Melismatic note found to have associated lyrics."
+msgstr "Öh? Melismatisk not har tillhörande text."
+
+#. print example usage:  lilypond -e "(set-lily-option 'help 0)" ?
+#: main.cc:105
+msgid "EXPR"
+msgstr "UTTR"
+
+#: main.cc:105
+msgid "evalute EXPR as Scheme after .scm init is read"
+msgstr "evaluera UTTR som Scheme efter .scm-init har lästs"
+
+#. another bug in option parser: --output=foe is taken as an abbreviation
+#. for --output-format
+#: main.cc:108
+msgid "EXT"
+msgstr "FMT"
+
+#: main.cc:108
+msgid "use output format EXT (scm, ps, tex or as)"
+msgstr "använd utdataformat FMT (scm, ps, tex eller as)"
+
+#: main.cc:110
+msgid "FIELD"
+msgstr "FÄLT"
+
+#: main.cc:110
+msgid "write header field to BASENAME.FIELD"
+msgstr "skriv rubrikfält till BASNAMN.FÄLT"
+
+#: main.cc:111
+msgid "add DIR to search path"
+msgstr "lägg till KATALOG till sökvägen"
+
+#: main.cc:112
+msgid "use FILE as init file"
+msgstr "använd FIL som init-fil"
+
+#: main.cc:116
+msgid "prepend DIR to dependencies"
+msgstr "lägg till KATALOG efter beroenden"
+
+#: main.cc:117
+msgid "inhibit file output naming and exporting"
+msgstr "hindra namngivning av filutdata och exportering"
+
+#.
+#. No version number or newline here. It confuses help2man
+#.
+#: main.cc:137
+#, c-format
+msgid "Usage: %s [OPTION]... FILE..."
+msgstr "Användning: %s [FLAGGA]... FIL..."
+
+#: main.cc:139
+msgid "Typeset music and or play MIDI from FILE"
+msgstr "Typsätt musik och/eller spela MIDI från FIL"
+
+#: main.cc:143
+msgid ""
+"LilyPond is a music typesetter.  It produces beautiful sheet music\n"
+"using a high level description file as input.  LilyPond is part of \n"
+"the GNU Project.\n"
+msgstr ""
+"LilyPond är en musiktypsättare. Den producerar vackra noter från en\n"
+"högnivåbeskrivning av musiken i en fil. LilyPond är en del av\n"
+"GNU-projektet.\n"
+
+#: main.cc:153
+msgid "This binary was compiled with the following options:"
+msgstr "Detta program kompilerades med följande alternativ:"
+
+#: main.cc:56 main.cc:180
+#, c-format
+msgid ""
+"This is free software.  It is covered by the GNU General Public License,\n"
+"and you are welcome to change it and/or distribute copies of it under\n"
+"certain conditions.  Invoke as `%s --warranty' for more information.\n"
+msgstr ""
+"Det här är fri programvara. Den täcks av \"GNU General Public License\",\n"
+"och du får ändra och/eller distribuera kopior av den under vissa\n"
+"villkor. Kör \"%s --warranty\" för mer information.\n"
+
+#: main.cc:63 main.cc:187 main.cc:199
+#, c-format
+msgid "Copyright (c) %s by"
+msgstr "Copyright © %s av"
+
+#: main.cc:197
+msgid "GNU LilyPond -- The music typesetter"
+msgstr "GNU Lilypond -- Musiktypsättaren"
+
+#: main.cc:72 main.cc:205
+msgid ""
+"    This program is free software; you can redistribute it and/or\n"
+"modify it under the terms of the GNU General Public License version 2\n"
+"as published by the Free Software Foundation.\n"
+"\n"
+"    This program is distributed in the hope that it will be useful,\n"
+"but WITHOUT ANY WARRANTY; without even the implied warranty of\n"
+"MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU\n"
+"General Public License for more details.\n"
+"\n"
+"    You should have received a copy (refer to the file COPYING) of the\n"
+"GNU General Public License along with this program; if not, write to\n"
+"the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,\n"
+"USA.\n"
+msgstr ""
+"Detta program är fri programvara. Du kan distribuera det och/eller\n"
+"modifiera det under villkoren i GNU General Public License, publicerad\n"
+"av Free Software Foundation, antingen version 2 eller (om du så vill)\n"
+"någon senare version. \n"
+"\n"
+"Detta program distribueras i hopp om att det ska vara användbart, men\n"
+"UTAN NÅGON SOM HELST GARANTI, även utan underförstådd garanti om\n"
+"SÄLJBARHET eller LÄMPLIGHET FÖR NÅGOT SPECIELLT ÄNDAMÅL.  Se GNU General\n"
+"Public License för ytterligare information.\n"
+"\n"
+"Du bör ha fått en kopia av GNU General Public License tillsammans med\n"
+"detta program. Om inte, skriv till Free Software Foundation, Inc., 59\n"
+"Temple Place - Suite 330, Boston, MA 02111-1307, USA.\n"
+
+#: midi-item.cc:139
+#, c-format
+msgid "no such instrument: `%s'"
+msgstr "instrumentet finns inte: \"%s\""
+
+#: midi-item.cc:228
+msgid "silly duration"
+msgstr "tokig längd"
+
+#: midi-item.cc:241
+msgid "silly pitch"
+msgstr "tokig ton"
+
+#: music-output-def.cc:115
+#, c-format
+msgid "can't find `%s' context"
+msgstr "kan inte hitta omgivningen \"%s\""
+
+#: music.cc:232
+msgid "ly_get_mus_property (): Not a Music"
+msgstr "ly_get_mus_property (): Inte en \"Music\""
+
+#: music.cc:246
+msgid "ly_set_mus_property (): Not a symbol"
+msgstr "ly_set_mus_property (): inte en symbol"
+
+#: music.cc:258
+msgid "ly_set_mus_property ():  not of type Music"
+msgstr "ly_set_mus_property (): inte av typen \"Music\""
+
+#: music.cc:272
+msgid "ly_make_music (): Not a string"
+msgstr "ly_make_music (): Inte en sträng"
+
+#: music.cc:292
+msgid "ly_music_name (): Not a music expression"
+msgstr "ly_music_name (): Inte ett musikuttryck"
+
+#: musical-request.cc:28
+#, c-format
+msgid "Transposition by %s makes accidental larger than two"
+msgstr "Transponering med %s gör höjning/sänkning större än två"
+
+#: my-lily-lexer.cc:139
+#, c-format
+msgid "Identifier name is a keyword: `%s'"
+msgstr "Identifierarnamn är ett nyckelord: \"%s\""
+
+#: my-lily-lexer.cc:159
+#, c-format
+msgid "error at EOF: %s"
+msgstr "fel vid filslut: %s"
+
+#: midi-score-parser.cc:94 my-lily-parser.cc:47
+msgid "Parsing..."
+msgstr "Tolkar..."
+
+#: my-lily-parser.cc:57
+msgid "Braces don't match"
+msgstr "Krullparenteser matchar inte"
+
+#: output-property-music-iterator.cc:20 request-chord-iterator.cc:76
+#, c-format
+msgid "Junking request: `%s'"
+msgstr "Slänger förfrågan: \"%s\""
+
+#: paper-def.cc:109
+#, c-format
+msgid "paper output to `%s'..."
+msgstr "pappersutdata till \"%s\"..."
+
+#: lilypond-stream.cc:93 paper-outputter.cc:85 performance.cc:99
+msgid ", at "
+msgstr ", vid "
+
+#: paper-outputter.cc:232
+#, c-format
+msgid "writing header field `%s' to `%s'..."
+msgstr "skriver rubrikfält \"%s\" till \"%s\"..."
+
+#: paper-score.cc:80
+msgid "Preprocessing elements..."
+msgstr "Förbehandlar element..."
+
+#: paper-score.cc:114
+msgid "Outputting Score, defined at: "
+msgstr "Matar ut partitur, definierade vid: "
+
+#: paper-stream.cc:41
+#, c-format
+msgid "can't create directory: `%s'"
+msgstr "kan inte skapa katalog: \"%s\""
+
+#: paper-stream.cc:55
+msgid "Error syncing file (disk full?)"
+msgstr "Fel vid synkning av fil (disken full?)"
+
+#.
+#. We could change the current translator's id, but that would make
+#. errors hard to catch
+#.
+#. last->translator_id_str_  = change_l ()->change_to_id_str_;
+#.
+#: part-combine-music-iterator.cc:116
+#, c-format
+msgid "I'm one myself: `%s'"
+msgstr "Jag är en själv: \"%s\""
+
+#: part-combine-music-iterator.cc:119
+#, c-format
+msgid "none of these in my family: `%s'"
+msgstr "ingen av dessa i min familj: \"%s\""
+
+#: percent-repeat-engraver.cc:117
+msgid "Don't know how to handle a percent repeat of this length."
+msgstr "Vet inte hur en procentupprepning av denna längd ska hanteras."
+
+#: percent-repeat-iterator.cc:53
+msgid "no one to print a percent"
+msgstr "det finns ingen som kan skriva procent"
+
+#: performance.cc:51
+msgid "Track ... "
+msgstr "Spår... "
+
+#: performance.cc:83
+msgid "Creator: "
+msgstr "Skapare: "
+
+#: performance.cc:113
+#, c-format
+msgid "from musical definition: %s"
+msgstr "från musikdefinition: %s"
+
+#: performance.cc:168
+#, c-format
+msgid "MIDI output to `%s'..."
+msgstr "MIDI-utdata till \"%s\"..."
+
+#: phrasing-slur-engraver.cc:119
+msgid "unterminated phrasing slur"
+msgstr "oavslutad fraseringsbåge"
+
+#: phrasing-slur-engraver.cc:134
+msgid "can't find start of phrasing slur"
+msgstr "kan inte hitta start på fraseringsbåge"
+
+#: piano-pedal-engraver.cc:142 piano-pedal-engraver.cc:154
+#: piano-pedal-performer.cc:87
+#, c-format
+msgid "can't find start of piano pedal: `%s'"
+msgstr "kan inte hitta start på pianopedal: \"%s\""
+
+#: pitch.cc:25
+msgid "Pitch arguments out of range"
+msgstr "Tonargument utanför intervallet"
+
+#: property-engraver.cc:121
+#, c-format
+msgid ""
+"`%s' is deprecated.  Use\n"
+" \\property %s.%s \\override #'%s = #%s"
+msgstr ""
+"\"%s\" är föråldrat. Använd\n"
+" \\property %s.%s \\override #'%s = #%s"
+
+#: property-engraver.cc:145
+#, c-format
+msgid "Wrong type for property: %s, type: %s, value found: %s, type: %s"
+msgstr "Fel typ för egenskap: %s, typ: %s, värde funnet: %s, typ: %s"
+
+#: rest-collision.cc:194
+msgid "too many colliding rests"
+msgstr "för många krockande pauser"
+
+#: rest-collision.cc:198
+msgid "too many notes for rest collision"
+msgstr "för många toner för pauskrock"
+
+#: scm-option.cc:63
+msgid "Scheme options:"
+msgstr "Scheme-alternativ:"
+
+#: score-engraver.cc:188
+#, c-format
+msgid "unbound spanner `%s'"
+msgstr "obunden bryggare \"%s\""
+
+#: score.cc:78
+msgid "Interpreting music..."
+msgstr "Tolkar musik..."
+
+#: score.cc:92
+msgid "Need music in a score"
+msgstr "Behöver musik i partitur"
+
+#. should we? hampers debugging.
+#: score.cc:105
+msgid "Errors found/*, not processing score*/"
+msgstr "Fel funna/*, behandlar inte partitur*/"
+
+#: score.cc:112
+#, c-format
+msgid "elapsed time: %.2f seconds"
+msgstr "tidsåtgång: %.2f sekunder"
+
+#: scores.cc:106
+msgid "Score contains errors; will not process it"
+msgstr "Partitur innehåller fel; kommer inte behandla det"
+
+#: scores.cc:152
+#, c-format
+msgid "Now processing: `%s'"
+msgstr "Behandlar nu: \"%s\""
+
+#: script-engraver.cc:66
+#, c-format
+msgid "Don't know how to interpret articulation `%s'"
+msgstr "Kan inte tolka artikulering \"%s\""
+
+#. this shouldn't happen, but let's continue anyway.
+#: separation-item.cc:47
+msgid "Separation_item:  I've been drinking too much"
+msgstr "Separation_item: Jag har druckit för mycket"
+
+#: slur-engraver.cc:127
+msgid "unterminated slur"
+msgstr "oavslutat båge"
+
+#. How to shut up this warning, when Voice_devnull_engraver has
+#. eaten start request?
+#: slur-engraver.cc:144
+msgid "can't find start of slur"
+msgstr "kan inte hitta start på båge"
+
+#: slur.cc:48
+msgid "Putting slur over rest.  Ignoring."
+msgstr "Sätter båge över paus. Ignorerar."
+
+#: slur.cc:383
+msgid "Slur over rest?"
+msgstr "Båge över paus?"
+
+#: stem-engraver.cc:115
+#, c-format
+msgid "Adding note head to incompatible stem (type = %d)"
+msgstr "Lägger till nothuvud till inkompatibel båge (typ = %d)"
+
+#: stem.cc:116
+msgid "Weird stem size; check for narrow beams"
+msgstr "Konstig skaftstorlek; kolla efter smala balkar"
+
+#: text-spanner-engraver.cc:94
+msgid "can't find start of text spanner"
+msgstr "kan inte hitta start på textbryggare"
+
+#: text-spanner-engraver.cc:114
+msgid "already have a text spanner"
+msgstr "har redan en textbryggare"
+
+#: text-spanner-engraver.cc:169
+msgid "unterminated text spanner"
+msgstr "oavslutad textbryggare"
+
+#: text-spanner.cc:121
+msgid "Text_spanner too small"
+msgstr "Textbryggare för liten"
+
+#: tfm-reader.cc:106
+#, c-format
+msgid "TFM header of `%s' has only %u word (s)"
+msgstr "TFM-rubrik i \"%s\" har bara %u ord"
+
+#: tfm-reader.cc:140
+#, c-format
+msgid "%s: TFM file has %u parameters, which is more than the %u I can handle"
+msgstr "%s: TFM-fil har %u parametrar, vilket är mer än de %u jag kan hantera"
+
+#: tfm.cc:77
+#, c-format
+msgid "can't find ascii character: %d"
+msgstr "kan inte hitta ASCII-tecken: %d"
+
+#. How to shut up this warning, when no notes appeared because
+#. they were suicided by Thread_devnull_engraver?
+#: tie-engraver.cc:220 tie-performer.cc:173
+msgid "No ties were created!"
+msgstr "Inga bågar skapades!"
+
+#: tie-engraver.cc:240
+msgid "lonely tie"
+msgstr "ensam båge"
+
+#: time-scaled-music-iterator.cc:25
+msgid "no one to print a tuplet start bracket"
+msgstr "det finns ingen som kan skriva en starthake för tupel"
+
+#: timing-translator.cc:38
+#, c-format
+msgid "barcheck failed at: %s"
+msgstr "taktkontroll misslyckades vid: %s"
+
+#: translator-ctors.cc:40
+#, c-format
+msgid "unknown translator: `%s'"
+msgstr "okänd översättare: \"%s\""
+
+#: translator-def.cc:99
+msgid "Program has no such type"
+msgstr "Programmet har ingen sådan typ"
+
+#: translator-def.cc:105
+#, c-format
+msgid "Already contains: `%s'"
+msgstr "Innehåller redan: \"%s\""
+
+#: translator-def.cc:106
+#, c-format
+msgid "Not adding translator: `%s'"
+msgstr "Lägger inte till översättare: \"%s\""
+
+#: translator-def.cc:224
+#, c-format
+msgid "can't find: `%s'"
+msgstr "kan inte hitta: \"%s\""
+
+#: translator-group.cc:146
+#, c-format
+msgid "can't find or create `%s' called `%s'"
+msgstr "kan inte hitta eller skapa \"%s\" kallad \"%s\""
+
+#: translator-group.cc:231
+#, c-format
+msgid "can't find or create: `%s'"
+msgstr "kan inte hitta eller skapa: \"%s\""
+
+#: translator-group.cc:414
+#, c-format
+msgid "Can't find property type-check for `%s'.  Perhaps you made a typing error? Doing assignment anyway."
+msgstr "Kan inte hitta egenskapstypkontroll för \"%s\". Kanske har du gjort ett typfel? Gör tilldelning i alla fall."
+
+#: translator-group.cc:428
+#, c-format
+msgid "Type check for `%s' failed; value `%s' must be of type `%s'"
+msgstr "Typkontroll för \"%s\" misslyckades. Värde \"%s\" måste ha typen \"%s\""
+
+#. programming_error?
+#: translator-group.cc:447
+msgid "ly-get-trans-property: expecting a Translator_group argument"
+msgstr "ly-get-trans-property: väntade ett Translator_group-argument"
+
+#: volta-engraver.cc:87
+msgid "No volta spanner to end"
+msgstr "Ingen reprisbryggare till slutet"
+
+#: volta-engraver.cc:104
+msgid "Already have a volta spanner.  Stopping that one prematurely."
+msgstr "Har redan en reprisbryggare. Stoppar den tidigare."
+
+#: volta-engraver.cc:108
+msgid "Also have a stopped spanner.  Giving up."
+msgstr "Har också en stoppad bryggare. Ger upp."
+
+#: parser.yy:121
+#, c-format
+msgid "Expecting %d arguments"
+msgstr "Väntade %d argument"
+
+#: parser.yy:423
+msgid "Identifier should have  alphabetic characters only"
+msgstr "Identifierare får bara innehålla alfabetiska tecken"
+
+#: parser.yy:697
+msgid "More alternatives than repeats.  Junking excess alternatives."
+msgstr "Fler alternativ än repriser. Slänger överblivna alternativ."
+
+#: parser.yy:761
+msgid "Second argument must be a symbol"
+msgstr "Andra argumentet måste vara en symbol"
+
+#: parser.yy:766
+msgid "First argument must be a procedure taking 1 argument"
+msgstr "Första argumentet måste vara en procedur som tar 1 argument"
+
+#: parser.yy:1263
+msgid "Expecting string as script definition"
+msgstr "Väntade sträng som skriptdefinition"
+
+#: parser.yy:1273
+msgid "Can't specify direction for this request"
+msgstr "Kan inte ange riktning för denna förfrågan"
+
+#: parser.yy:1398
+msgid "Expecting musical-pitch value"
+msgstr "Väntade notvärde"
+
+#: parser.yy:1409
+msgid "Must have duration object"
+msgstr "Måste ha längdobjekt"
+
+#: parser.yy:1418 parser.yy:1426
+msgid "Have to be in Lyric mode for lyrics"
+msgstr "Måste vara i textläge (Lyric mode) för text"
+
+#: parser.yy:1579 parser.yy:1636
+#, c-format
+msgid "not a duration: %d"
+msgstr "inte en längd: %d"
+
+#: parser.yy:1645
+msgid "Have to be in Note mode for notes"
+msgstr "Måste vara i notläge (Note mode) för noter"
+
+#: parser.yy:1731
+msgid "Have to be in Chord mode for chords"
+msgstr "Måste vara i ackordläge (Chord mode) för ackord"
+
+#: parser.yy:1911
+msgid "need integer number arg"
+msgstr "behöver heltalsargument"
+
+#: lexer.ll:174
+msgid "EOF found inside a comment"
+msgstr "filslut hittat inuti en kommentar"
+
+#: lexer.ll:188
+msgid "\\maininput disallowed outside init files"
+msgstr "\\maininput förbjudet utanför init-filer"
+
+#: lexer.ll:212
+#, c-format
+msgid "wrong or undefined identifier: `%s'"
+msgstr "felaktig eller odefinierad identifierare: \"%s\""
+
+#. backup rule
+#: lexer.ll:221
+msgid "Missing end quote"
+msgstr "Saknat slutcitationstecken"
+
+#. backup rule
+#: lexer.ll:243 lexer.ll:247
+msgid "white expected"
+msgstr "väntade tomrum"
+
+#: lexer.ll:256
+msgid "Can't evaluate Scheme in safe mode"
+msgstr "Kan inte evaluera Scheme i säkert läge"
+
+#: lexer.ll:349
+msgid "Brace found at end of lyric. Did you forget a space?"
+msgstr "Krullparentes funnen i slutet på text. Glömde du ett mellanslag?"
+
+#: lexer.ll:457
+#, c-format
+msgid "invalid character: `%c'"
+msgstr "ogiltigt tecken: \"%c\""
+
+#: lexer.ll:538
+#, c-format
+msgid "unknown escaped string: `\\%s'"
+msgstr "okänd \"escaped\" sträng: \"\\%s\""
+
+#: lexer.ll:617
+#, c-format
+msgid "Oldest supported input version: %s"
+msgstr "Äldsta indataversion som stöds: %s"
+
+#: lexer.ll:629
+#, c-format
+msgid "incorrect lilypond version: %s (%s, %s)"
+msgstr "felaktig lilypond-version: %s (%s, %s)"
+
+#: lexer.ll:630
+msgid "Consider converting the input with the convert-ly script"
+msgstr "Fundera på att konvertera indata med skriptet \"convert-ly\""
+
+#: lilypond-item.cc:161
+#, c-format
+msgid "#32 in quarter: %d"
+msgstr "#32 i fjärdedel: %d"
+
+#: lilypond-score.cc:108
+#, c-format
+msgid "LY output to `%s'..."
+msgstr "LY-utdata till \"%s\"..."
+
+#: lilypond-score.cc:119
+#, c-format
+msgid "track %d:"
+msgstr "spår %d:"
+
+#: lilypond-score.cc:155
+msgid "Processing..."
+msgstr "Behandlar..."
+
+#: lilypond-score.cc:164
+msgid "Creating voices..."
+msgstr "Skapar stämmor..."
+
+#: lilypond-score.cc:168
+msgid "track "
+msgstr "spår "
+
+#: lilypond-score.cc:177
+msgid "NOT Filtering tempo..."
+msgstr "Filtrerar INTE tempo..."
+
+#: lilypond-score.cc:186
+msgid "NOT Quantifying columns..."
+msgstr "Kvantifierar INTE kolumner..."
+
+#: lilypond-score.cc:190
+msgid "Quantifying columns..."
+msgstr "Kvantifierar kolumner..."
+
+#: lilypond-score.cc:223
+msgid "Settling columns..."
+msgstr "Bestämmer kolumner..."
+
+#: lilypond-staff.cc:209
+msgid "% MIDI copyright:"
+msgstr "% MIDI-copyright:"
+
+#: lilypond-staff.cc:210
+msgid "% MIDI instrument:"
+msgstr "% MIDI-instrument:"
+
+#: lilypond-stream.cc:37
+#, c-format
+msgid "lily indent level: %d"
+msgstr "indenteringsnivå för lily: %d"
+
+# Kanske man inte ska översätta, men då får de ta bort _() i stället för
+# att skriva en fånig kommentar
+#. Maybe better not to translate these?
+#: lilypond-stream.cc:83
+msgid "% Creator: "
+msgstr "% Skapare: "
+
+#: lilypond-stream.cc:88
+msgid "% Automatically generated"
+msgstr "% Automatgenererad"
+
+#: lilypond-stream.cc:97
+#, c-format
+msgid "% from input file: "
+msgstr "% från indatafil: "
+
+#: main.cc:94
+msgid "write exact durations, e.g.: a4*385/384"
+msgstr "skriv exakta länger, t.ex: a4*385/384"
+
+#: main.cc:95
+msgid "enable debugging output"
+msgstr "slå på felsökningsutdata"
+
+#: main.cc:97
+msgid "ACC[:MINOR]"
+msgstr "TON[:MOLL]"
+
+#: main.cc:97
+msgid "set key: ACC +sharps/-flats; :1 minor"
+msgstr "sätt tonart: TON +höjningar/-sänkningar; :1 moll"
+
+#: main.cc:98
+msgid "don't output tuplets, double dots or rests, smallest is 32"
+msgstr "mata inte ut tupler, dubbelpunkteringar eller pauser, minsta är 32"
+
+#: main.cc:99
+msgid "set FILE as default output"
+msgstr "sätt FIL som standardutdata"
+
+#: main.cc:100
+msgid "don't output tuplets"
+msgstr "mata inte ut tupler"
+
+#: main.cc:101
+msgid "be quiet"
+msgstr "var tyst"
+
+#: main.cc:102
+msgid "don't output rests or skips"
+msgstr "mata inte ut pauser eller hopp"
+
+#: main.cc:103
+msgid "DUR"
+msgstr "LÄNGD"
+
+#: main.cc:103
+msgid "set smallest duration"
+msgstr "ställ in minsta längd"
+
+#: main.cc:104
+msgid "don't timestamp the output"
+msgstr "tidsstämpla inte utdata"
+
+#: main.cc:106
+msgid "be verbose"
+msgstr "var utförlig"
+
+#: main.cc:108
+msgid "assume no double dotted notes"
+msgstr "anta inga dubbelpunkterade noter"
+
+#: main.cc:115
+#, c-format
+msgid "Usage: %s [OPTION]... [FILE]"
+msgstr "Användning: %s [FLAGGA]... [FIL]"
+
+#: main.cc:117
+msgid "Translate MIDI-file to lilypond"
+msgstr "Översätt MIDI-fil till lilypond"
+
+#: main.cc:131
+#, c-format
+msgid "no_double_dots: %d\n"
+msgstr "no_double_dots: %d\n"
+
+#: main.cc:133
+#, c-format
+msgid "no_rests: %d\n"
+msgstr "no_rests: %d\n"
+
+#: main.cc:135
+#, c-format
+msgid "no_quantify_b_s: %d\n"
+msgstr "no_quantify_b_s: %d\n"
+
+#: main.cc:137
+#, c-format
+msgid "no_smaller_than: %d (1/%d)\n"
+msgstr "no_smaller_than: %d (1/%d)\n"
+
+#: main.cc:140
+#, c-format
+msgid "no_tuplets: %d\n"
+msgstr "no_tuplets: %d\n"
+
+#: midi-parser.cc:64
+msgid "zero length string encountered"
+msgstr "sträng med längd noll påträffad"
+
+#: midi-score-parser.cc:44
+msgid "MIDI header expected"
+msgstr "väntade MIDI-rubrik"
+
+#: midi-score-parser.cc:49
+msgid "invalid header length"
+msgstr "felaktig rubriklängd"
+
+#: midi-score-parser.cc:52
+msgid "invalid MIDI format"
+msgstr "ogiltigt MIDI-format"
+
+#: midi-score-parser.cc:55
+msgid "invalid number of tracks"
+msgstr "ogiltigt antal spår"
+
+#: midi-score-parser.cc:58
+msgid "can't handle non-metrical time"
+msgstr "kan inte hantera icke-metrisk tid"
+
+#: midi-track-parser.cc:68
+#, c-format
+msgid "Junking note-end event: channel = %d, pitch = %d"
+msgstr "Slänger notslutshändelse: kanal = %d, ton = %d"
+
+#: midi-track-parser.cc:124
+msgid "invalid running status"
+msgstr "ogiltig körstatus"
+
+#: midi-track-parser.cc:328
+msgid "unimplemented MIDI meta-event"
+msgstr "oimplementerad MIDI-metahändelse"
+
+#: midi-track-parser.cc:333
+msgid "invalid MIDI event"
+msgstr "ogiltig MIDI-händelse"
+
+#: midi-track-parser.cc:348
+msgid "MIDI track expected"
+msgstr "väntade MIDI-spår"
+
+#: midi-track-parser.cc:353
+msgid "invalid track length"
+msgstr "ogiltig spårlängd"
index e76878cf5fdf6926904efa7b32e08bcadc4e7a42..38f5b974bf210fcc7e7cf346b4c7591f084ad2d9 100644 (file)
@@ -26,6 +26,7 @@
    (let ((result (assoc glyph 
                        '((":|:" . (":|" . "|:"))
                          ("|" . ("|" . ""))
+                         ("||:" . ("||" . "|:"))
                          ("|s" . (nil . "|"))
                          ("|:" . ("|" . "|:"))
                          ("|." . ("|." . nil))
index f7afad28fcbb0b561f081445099f87547c195268..b0feb6008fbec2b73ff54486fa0aea6f73f05ed5 100644 (file)
@@ -95,6 +95,8 @@
 (define (beam-dir-majority count total)
   (dir-compare (car count) (cdr count)))
 
+(beam-dir-majority '(0 . 0) '(0 . 0))
+
 (define (beam-dir-mean count total)
   (dir-compare (car total) (cdr total)))
 
index 9090ee659ca8a75fa12ebf8547a73c1f95b1e9a6..059f564213e41100a8b97352493abd243a70c404 100644 (file)
                (self-alignment-X . 0)
                (non-rhythmic . #t)
                (word-space . 0.6)
-               (end-alignment . 5)
+                (ignore-length-mismatch . #f)
+                (begin-alignment . 4)
+                (end-alignment . 2)
                (font-family . roman)
                (font-shape . upright)
                (meta . ,(grob-description "LyricText" lyric-syllable-interface text-interface font-interface ))
index 63526597ceb27a3c5a4e180706e4ed180761e09a..b03c1cd9b1f40e4271c190b195ae1f142a10a68b 100644 (file)
@@ -360,7 +360,10 @@ function of type (beam multiplicity dy staff-line-thickness) -> real.  Default v
 (grob-property-description 'visibility-lambda procedure? "a function that takes the break direction and returns a  cons of booleans containing (TRANSPARENT . EMPTY).")
 (grob-property-description 'when moment? "when does this column happen?.")
 (grob-property-description 'word-space number? "elongate left by this much (FIXME: cumbersome semantics).")
-(grob-property-description 'end-alignment number? "proportion of lyric length to align with note-head for non-centered lyrics.")
+(grob-property-description 'alignment number? "alignment of lyrics on notehead, -1 is LEFT, 0 is CENTRE, 1 is RIGHT .")
+(grob-property-description 'ignore-length-mismatch boolean? "if #t, stanzas with shorter lyrics can be moved away from their respective note-head by the lyric alignment code.")
+(grob-property-description 'begin-alignment number? "proportion of lyric length from beginning to align with note-head for left-aligned lyrics.")
+(grob-property-description 'end-alignment number? "proportion of lyric length from end to align with note-head for right-aligned lyrics.")
 (grob-property-description 'x-gap number? "horizontal gap between notehead and tie.")
 (grob-property-description 'y-free number? "minimal vertical gap between slur and noteheads or stems.")
 (grob-property-description 'y-offset number? "extra vertical offset for ties away from the center line.")
index 7f6496664773d075064d99369d50c3f01a7acc87..d8d710124738200fda02c1de3676f052a7af01da 100644 (file)
@@ -533,6 +533,9 @@ that helps show the length of a melissima (tied/slurred note)."
    "a single piece of lyrics"
    '(
     word-space
+    alignment
+    ignore-length-mismatch
+    begin-alignment
     end-alignment
     ))
 
index b8f28858fe2bb9342ede77af788c90aabf788858..f9f7a17bae422864f3d067ba600655091444fea3 100644 (file)
@@ -60,7 +60,7 @@
 
 (define (sign x)
   (if (= x 0)
-      1
+      0
       (if (< x 0) -1 1)))
 
 (define (write-me n x)
index b56382bfe976f74875ae2264fc5be5cd069a1ea1..24441828ef31781c1d2e5e32c6a8771c129b5b1e 100644 (file)
@@ -449,6 +449,13 @@ to any Graphic objects that satisfies the predicate."
      '(SostenutoPedal SustainPedal UnaCordaPedal)
      '(pedalSostenutoStrings pedalSustainStrings pedalUnaCordaStrings
       )))
+   (cons
+    'Percent_repeat_engraver
+    (engraver-description
+     "Percent_repeat_engraver"
+     "Engrave percent repeats."
+     '(PercentRepeat DoublePercentRepeat RepeatSlash)
+     '(      )))
 
    (cons 
     'Pitch_squash_engraver
index b4295e933f597fa6db6b0a7ca854b1c298d1b074..af8cbf877c8b810b10e0b4813c2416e22859dfc9 100644 (file)
@@ -32,7 +32,8 @@
 # the default placement for text in abc is above the staff.
 # %%LY now supported.
 # \breve and \longa supported.
-                       
+# M:none doesn't crash lily.
+
 # Limitations
 #
 # Multiple tunes in single file not supported
@@ -67,6 +68,7 @@ import os
 
 UNDEF = 255
 state = UNDEF
+strict = 0
 voice_idx_dict = {}
 header = {}
 header['footnotes'] = ''
@@ -88,6 +90,13 @@ DIGITS='0123456789'
 alphabet="ABCDEFGHIJKLMNOPQRSTUVWXYZ"  
 HSPACE=' \t'
 midi_specs = ''
+
+
+def error (msg):
+       sys.stderr.write (msg)
+       if strict:
+               sys.exit (1)
+       
        
 def check_clef(s):
       if not s:
@@ -155,6 +164,7 @@ def dump_header (outf,hdr):
        ks = hdr.keys ()
        ks.sort ()
        for k in ks:
+               hdr[k] = re.sub('"', '\\"', hdr[k])             
                outf.write ('\t%s = "%s"\n'% (k,hdr[k]))
        outf.write ('}')
 
@@ -217,7 +227,7 @@ def try_parse_q(a):
                array2=string.split(array[1],'=')
                denominator=array2[0]
                perminute=array2[1]
-               duration=str(string.atof(denominator)/string.atoi(numerator))
+               duration=str(string.atoi(denominator)/string.atoi(numerator))
                midi_specs=string.join(["\\tempo", duration, "=", perminute])
        else:
                sys.stderr.write("abc2ly: Warning, unable to parse Q specification: %s\n" % a)
@@ -457,6 +467,7 @@ def compute_key (k):
                key_count = flat_key_seq.index (keytup)
                accseq = map (lambda x: (3*x + 3 ) % 7, range (1, key_count + 1))
        else:
+               error ("Huh?")
                raise "Huh"
        
        key_table = [0] * 7
@@ -480,8 +491,10 @@ def try_parse_tuplet_begin (str, state):
        if re.match ('\([2-9]', str):
                dig = str[1]
                str = str[2:]
-               state.parsing_tuplet = string.atoi (dig[0])
-               
+               prev_tuplet_state = state.parsing_tuplet
+               state.parsing_tuplet = string.atoi (dig[0])
+               if prev_tuplet_state:
+                       voices_append ("}")             
                voices_append ("\\times %s {" % tup_lookup[dig])
        return str
 
@@ -576,7 +589,10 @@ def try_parse_header_line (ln, state):
                        a = re.sub('[ \t]*$','', a)     #strip trailing blanks
                        if header.has_key('title'):
                                if a:
-                                       header['title'] = header['title'] + '\\\\\\\\' + a
+                                       if len(header['title']):
+                                               header['title'] = header['title'] + '\\\\\\\\' + a
+                                       else:
+                                               header['subtitle'] = a
                        else:
                                header['title'] =  a
                if g == 'M':    # Meter
@@ -594,7 +610,8 @@ def try_parse_header_line (ln, state):
                                set_default_len_from_time_sig (a)
                        else:
                                length_specified = 0
-                       voices_append ('\\time %s' % a)
+                       if not a == 'none':
+                               voices_append ('\\time %s' % a)
                        state.next_bar = ''
                if g == 'K': # KEY
                        a = check_clef(a)
@@ -703,6 +720,9 @@ def duration_to_lilypond_duration  (multiply_tup, defaultlen, dots):
        if base == 1:
                if (multiply_tup[0] / multiply_tup[1])  == 2:
                        base = '\\breve'
+               if (multiply_tup[0] / multiply_tup[1]) == 3:
+                       base = '\\breve'
+                       dots = 1
                if (multiply_tup[0] / multiply_tup[1]) == 4:
                        base = '\longa'
        return '%s%s' % ( base, '.'* dots)
@@ -1226,8 +1246,7 @@ def parse_file (fn):
                        ln = junk_space (ln)
 
                if ln:
-                       msg = "%s: %d: Huh?  Don't understand\n" % (fn, lineno)
-                       sys.stderr.write (msg)
+                       error ("%s: %d: Huh?  Don't understand\n" % (fn, lineno))
                        left = orig_ln[0:-len (ln)]
                        sys.stderr.write (left + '\n')
                        sys.stderr.write (' ' *  len (left) + ln + '\n')        
@@ -1246,9 +1265,16 @@ Options:
   -h, --help          this help
   -o, --output=FILE   set output filename to FILE
   -v, --version       version information
-
+  -s, --strict        be strict about succes.
+  
 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 ():
@@ -1256,7 +1282,7 @@ def print_version ():
 
 
 
-(options, files) = getopt.getopt (sys.argv[1:], 'vo:h', ['help','version', 'output='])
+(options, files) = getopt.getopt (sys.argv[1:], 'vo:hs', ['help','version', 'output=', 'strict'])
 out_filename = ''
 
 for opt in options:
@@ -1265,11 +1291,12 @@ for opt in options:
        if o== '--help' or o == '-h':
                help ()
                sys.exit (0)
-       if o == '--version' or o == '-v':
+       elif o == '--version' or o == '-v':
                print_version ()
                sys.exit(0)
-               
-       if o == '--output' or o == '-o':
+       elif o == '--strict' or o == '-s':
+               strict = 1
+       elif o == '--output' or o == '-o':
                out_filename = a
        else:
                print o
index d9a41a08343299f7e2d562e963c3948a18b6010f..6fa3d6ae4bf21fa1ea519312047df64a658a28fa 100644 (file)
@@ -162,12 +162,14 @@ Options:
 
 ;;; Helper functions
 
+
+
 (define (af-gulp-file name)
   ;; urg
   (let ((old-load-path %load-path))
        (set! %load-path 
             (cons (string-append 
-                   (or (getenv 'LILYPONDPREFIX) ".") "/mf")
+                   (or (getenv "LILYPONDPREFIX") ".") "/mf")
                   (cons (string-append lily-home "/mf") %load-path)))
        (let* ((path (%search-load-path name)) 
              (text (if path
index 731b061d2aa145f309bc3b57746ec5596ebd0321..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
 #
@@ -13,7 +13,7 @@
 #  * articulation
 #  * grace notes
 #  * tuplets
-
+#
 
 # todo:
 #  * slur/stem directions
@@ -22,7 +22,7 @@
 #  * beams (better use autobeam?)
 #  * more robust: try entertainer.etf (freenote)
 #  * dynamics
-#  * automatic `deletion' of invalid items
+#  * empty measures (eg. twopt03.etf from freenote)
 #
 
 
@@ -174,16 +174,7 @@ def lily_notename (tuple2):
        (n, a) = tuple2
        nn = chr ((n+ 2)%7 + ord ('a'))
 
-       if a == -1:
-               nn = nn + 'es'
-       elif a == -2:
-               nn = nn + 'eses'
-       elif a == 1:
-               nn = nn + 'is'
-       elif a == 2:
-               nn = nn + 'isis'
-
-       return nn
+       return nn + {-2:'eses', -1:'es', 0:'', 1:'is', 2:'isis'}[a]
 
 
 class Tuplet:
@@ -225,16 +216,16 @@ class Tuplet:
                        sys.stderr.write ("\nHuh? Tuplet starting at entry %d was too short." % self.start_note)
                
 class Slur:
-       def __init__ (self, number):
+       def __init__ (self, number, params):
                self.number = number
-               self.finale = []
+               self.finale = params
 
        def append_entry (self, finale_e):
                self.finale.append (finale_e)
 
        def calculate (self, chords):
-               startnote = self.finale[0][5]
-               endnote = self.finale[3][2]
+               startnote = self.finale[5]
+               endnote = self.finale[3*6 + 2]
                try:
                        cs = chords[startnote]
                        ce = chords[endnote]
@@ -254,7 +245,9 @@ class Global_measure:
                self.number = number
                self.keysignature = None
                self.scale = None
-
+               self.force_break = 0
+               
+               self.repeats = []
                self.finale = []
 
        def __str__ (self):
@@ -263,7 +256,8 @@ class Global_measure:
        def set_timesig (self, finale):
                (beats, fdur) = finale
                (log, dots) = EDU_to_duration (fdur)
-               assert dots == 0
+               if dots <> 0:
+                       sys.stderr.write ("\nHuh? Beat duration has a dot? (EDU Duration = %d)" % fdur) 
                self.timesig = (beats, log)
 
        def length (self):
@@ -274,32 +268,60 @@ class Global_measure:
                self.keysignature = k
                self.scale = find_scale (k)
 
+       def set_flags (self,flag1, flag2):
+               
+               # flag1 isn't all that interesting.
+               if flag2 & 0x8000:
+                       self.force_break = 1
+                       
+               if flag2 & 0x0008:
+                       self.repeats.append ('start')
+               if flag2 & 0x0004:
+                       self.repeats.append ('stop')
+                       
+               if flag2 & 0x0002:
+                       if flag2 & 0x0004:
+                               self.repeats.append ('bracket')
 
 articulation_dict ={
-       11: '\\prall',
-       12: '\\mordent',
-       8: '\\fermata',
-       4: '^',
-       1: '.',
-       3: '>',
-       18: '"arp"' , # arpeggio
+       94: '^',
+       109: '\\prall',
+       84: '\\turn',
+       62: '\\mordent',
+       85: '\\fermata',
+       46: '.',
+#      3: '>',
+#      18: '\arpeggio' ,
 }
 
+class Articulation_def:
+       def __init__ (self, n, a, b):
+               self.finale_glyph = a & 0xff
+               self.number = n
+
+       def dump (self):
+               try:
+                       return articulation_dict[self.finale_glyph]
+               except KeyError:
+                       sys.stderr.write ("\nUnknown articulation no. %d" % self.finale_glyph)
+                       sys.stderr.write ("\nPlease add an entry to articulation_dict in the Python source")                    
+                       return None
+       
 class Articulation:
        def __init__ (self, a,b, finale):
-               self.type = finale[0]
+               self.definition = finale[0]
                self.notenumber = b
-       def calculate (self, chords):
+               
+       def calculate (self, chords, defs):
                c = chords[self.notenumber]
 
-               try:
-                       a = articulation_dict[self.type]
-               except KeyError:
-                       sys.stderr.write ("\nUnknown articulation no. %d on note no. %d" % (self.type, self.notenumber))
-                       sys.stderr.write ("\nPlease add an entry to articulation_dict in the Python source")
-                       a = '"art"'
-                       
-               c.note_suffix = '-' + a + c.note_suffix
+               adef = defs[self.definition]
+               lystr =adef.dump()
+               if lystr == None:
+                       lystr = '"art"'
+                       sys.stderr.write ("\nThis happened on note %d" % self.notenumber)
+
+               c.note_suffix = '-' + lystr
 
 class Syllable:
        def __init__ (self, a,b , finale):
@@ -355,8 +377,6 @@ class Measure:
                self.staff = None
                self.valid = 1
                
-       def add_finale_entry (self, entry):
-               self.finale.append (entry)
 
        def valid (self):
                return self.valid
@@ -365,13 +385,11 @@ class Measure:
 
                if len (self.finale) < 2:
                        fs = self.finale[0]
-                       fs = map (string.atoi, list (fs))
+
                        self.clef = fs[1]
                        self.frames = [fs[0]]
                else:
-                       fs = self.finale[0] + self.finale[1]
-                       
-                       fs = map (string.atoi, list (fs))
+                       fs = self.finale
                        self.clef = fs[0]
                        self.flags = fs[1]
                        self.frames = fs[2:]
@@ -438,15 +456,13 @@ class Staff:
                self.measures = []
 
        def get_measure (self, no):
-               if len (self.measures) <= no:
-                       self.measures = self.measures + [None]* (1 + no - len (self.measures))
+               fill_list_to (self.measures, no)
 
                if self.measures[no] == None:
                        m = Measure (no)
                        self.measures [no] =m
                        m.staff = self
 
-
                return self.measures[no]
        def staffid (self):
                return 'staff' + encodeint (self.number - 1)
@@ -465,13 +481,35 @@ class Staff:
                        
                        g = m.global_measure
                        e = ''
-                       if g and last_key <> g.keysignature:
-                               e = e + "\\key %s \\major " % lily_notename (g.keysignature)
-                               last_key = g.keysignature
-                       if g and last_time <> g.timesig :
-                               e = e + "\\time %d/%d " % g.timesig
-                               last_time = g.timesig
+                       
+                       if g:
+                               if last_key <> g.keysignature:
+                                       e = e + "\\key %s \\major " % lily_notename (g.keysignature)
+                                       last_key = g.keysignature
+                               if last_time <> g.timesig :
+                                       e = e + "\\time %d/%d " % g.timesig
+                                       last_time = g.timesig
+
+                               if 'start' in g.repeats:
+                                       e = e + ' \\bar "|:" ' 
 
+
+                               # we don't attempt voltas since they fail easily.
+                               if 0 : # and g.repeat_bar == '|:' or g.repeat_bar == ':|:' or g.bracket:
+                                       strs = []
+                                       if g.repeat_bar == '|:' or g.repeat_bar == ':|:' or g.bracket == 'end':
+                                               strs.append ('#f')
+
+                                       
+                                       if g.bracket == 'start':
+                                               strs.append ('"0."')
+
+                                       str = string.join (map (lambda x: '(volta %s)' % x, strs))
+                                       
+                                       e = e + ' \\property Score.repeatCommands =  #\'(%s) ' % str
+
+                               if g.force_break:
+                                       e = e + ' \\break '  
                        
                        if last_clef <> m.clef :
                                e = e + '\\clef "%s"' % lily_clef (m.clef)
@@ -484,7 +522,8 @@ class Staff:
                                
                        if g:
                                gap = rat_add (gap, g.length ())
-
+                               if 'stop' in g.repeats:
+                                       k = k + ' \\bar ":|" '
                                
                k = '%sglobal = \\notes  { %s }\n\n ' % (self.staffid (), k)
                return k
@@ -501,17 +540,15 @@ class Staff:
                        gap = (0,1)
                        for m in self.measures[1:]:
                                if not m or not m.valid:
-                                       sys.stderr.write ("Skipping non-existant measure")
+                                       sys.stderr.write ("Skipping non-existant or invalid measure\n")
                                        continue
 
                                fr = None
                                try:
                                        fr = m.frames[x]
                                except IndexError:
-                                       
-                                       sys.stderr.write ("Skipping nonexistent frame")
-                                       laystr = laystr + "% FOOBAR ! \n"
-                                       print laystr
+                                       sys.stderr.write ("Skipping nonexistent frame %d\n" % x)
+                                       laystr = laystr + "%% non existent frame %d (skipped) \n" % x
                                if fr:
                                        first_frame = fr
                                        if gap <> (0,1):
@@ -543,15 +580,24 @@ class Staff:
 
                                
 
+def ziplist (l):
+       if len (l) < 2:
+               return []
+       else:
+               return [(l[0], l[1])] + ziplist (l[2:])
+
 
 class Chord:
-       def __init__ (self, finale_entry):
+       def __init__ (self, number, contents):
                self.pitches = []
                self.frame = None
-               self.finale = finale_entry
+               self.finale = contents[:7]
+
+               self.notelist = ziplist (contents[7:])
                self.duration  = None
                self.next = None
                self.prev = None
+               self.number = number
                self.note_prefix= ''
                self.note_suffix = ''
                self.chord_suffix = ''
@@ -579,37 +625,37 @@ class Chord:
                        mylen = rat_multiply (mylen, self.tuplet.factor())
                return mylen
                
-       def number (self):
-               return self.finale[0][0]
 
        def EDU_duration (self):
-               return self.finale[0][3]
+               return self.finale[2]
        def set_duration (self):
                self.duration = EDU_to_duration(self.EDU_duration ())
+               
        def calculate (self):
                self.find_realpitch ()
                self.set_duration ()
 
-               flag = self.finale[0][5]
+               flag = self.finale[4]
                if Chord.GRACE_MASK & flag:
                        self.grace = 1
                
-               
+       
        def find_realpitch (self):
-               
-               ((no, prev, next, dur, pos, entryflag, extended, follow), notelist) = self.finale
 
                meas = self.measure ()
                tiestart = 0
                if not meas or not meas.global_measure  :
-                       print 'note %d not in measure' % self.number ()
+                       sys.stderr.write ('note %d not in measure\n' % self.number)
                elif not meas.global_measure.scale:
-                       print  'note %d: no scale in this measure.' % self.number ()
+                       sys.stderr.write ('note %d: no scale in this measure.' % self.number)
                else:
-                       for p in notelist:
+                       
+                       for p in self.notelist:
                                (pitch, flag) = p
-                               
+
+
                                nib1 = pitch & 0x0f
+                               
                                if nib1 > 8:
                                        nib1 = -(nib1 - 8)
                                rest = pitch / 16
@@ -632,7 +678,8 @@ class Chord:
 
                rest = ''
 
-               if not (self.finale[0][5] & Chord.REST_MASK):
+
+               if not (self.finale[4] & Chord.REST_MASK):
                        rest = 'r'
                
                for p in self.pitches:
@@ -664,40 +711,141 @@ class Chord:
                s = self.chord_prefix + s + self.chord_suffix
                return s
 
-GFre = re.compile(r"""^\^GF\(([0-9-]+),([0-9-]+)\) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+)""")
-BCre = re.compile (r"""^\^BC\(([0-9-]+)\) ([0-9-]+) .*$""")
-eEre = re.compile(r"""^\^eE\(([0-9-]+)\) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+) \$([0-9A-Fa-f]+) ([0-9-]+) ([0-9-]+)""")
-FRre = re.compile (r"""^\^FR\(([0-9-]+)\) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+)""")
-MSre = re.compile (r"""^\^MS\(([0-9-]+)\) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+)""")
-note_re = re.compile (r"""^ +([0-9-]+) \$([A-Fa-f0-9]+)""")
-Sxre  = re.compile (r"""^\^Sx\(([0-9-]+)\) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+)""")
-IMre = re.compile (r"""^\^IM\(([0-9-]+),([0-9-]+)\) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+)""")
-vere = re.compile(r"""^\^(ve|ch|se)\(([0-9-]+),([0-9-]+)\) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+)""")
-versere = re.compile(r"""^\^verse\(([0-9]+)\)(.*)\^end""")
 
-TPre = re.compile(r"""^\^TP\(([0-9]+),([0-9]+)\) *([0-9-]+) ([0-9-]+) ([0-9-]+) ([0-9-]+)""")
+def fill_list_to (list, no):
+       """
+Add None to LIST until it contains entry number NO.
+       """
+       while len (list) <= no:
+               list.extend ([None] * (no - len(list) + 1))
+       return list
+
+def read_finale_value (str):
+       """
+Pry off one value from STR. The value may be $hex, decimal, or "string".
+Return: (value, rest-of-STR)
+       """
+       while str and str[0] in ' \t\n':
+               str = str[1:]
+
+       if not str:
+               return (None,str)
+       
+       if str[0] == '$':
+               str = str [1:]
+
+               hex = ''
+               while str and str[0] in '0123456789ABCDEF':
+                       hex = hex  + str[0]
+                       str = str[1:]
+
+               
+               return (string.atol (hex, 16), str)
+       elif str[0] == '"':
+               str = str[1:]
+               s = ''
+               while str and str[0] <> '"':
+                       s = s + str[0]
+                       str = str[1:]
+
+               return (s,str)
+       elif str[0] in '-0123456789':
+               dec = ''
+               while str and str[0] in '-0123456789':
+                       dec = dec  + str[0]
+                       str = str[1:]
+                       
+               return (string.atoi (dec), str)
+       else:
+               sys.stderr.write ("Can't convert `%s'\n" % str)
+               return (None, str)
+
+
+
+       
+def parse_etf_file (fn, tag_dict):
+
+       """ Read FN, putting ETF info into
+       a giant dictionary.  The keys of TAG_DICT indicate which tags
+       to put into the dict.
+       """
+       
+       sys.stderr.write ('parsing ... ' )
+       f = open (fn)
+       
+       gulp = re.sub ('[\n\r]+', '\n',  f.read ())
+       ls = string.split (gulp, '\n^')
+
+       etf_file_dict = {}
+       for k in tag_dict.keys (): 
+               etf_file_dict[k] = {}
+
+       last_tag = None
+       last_numbers = None
+
+
+       for l in  ls:
+               m = re.match ('^([a-zA-Z0-9&]+)\(([^)]+)\)', l)
+               if m and tag_dict.has_key (m.group (1)):
+                       tag = m.group (1)
+
+                       indices = tuple (map (string.atoi, string.split (m.group (2), ',')))
+                       content = l[m.end (2)+1:]
+
+
+                       tdict = etf_file_dict[tag]
+                       if not tdict.has_key (indices):
+                               tdict[indices] = []
+
+
+                       parsed = []
+
+                       if tag == 'verse' or tag == 'block':
+                               m2 = re.match ('(.*)\^end', content)
+                               if m2:
+                                       parsed = [m2.group (1)]
+                       else:
+                               while content:
+                                       (v, content) = read_finale_value (content)
+                                       if v <> None:
+                                               parsed.append (v)
+
+                       tdict [indices].extend (parsed)
+
+                       last_indices = indices
+                       last_tag = tag
+
+                       continue
+
+# let's not do this: this really confuses when eE happens to be before  a ^text.
+#              if last_tag and last_indices:
+#                      etf_file_dict[last_tag][last_indices].append (l)
+                       
+       sys.stderr.write ('\n') 
+       return etf_file_dict
+
+       
+
 
 
 class Etf_file:
        def __init__ (self, name):
                self.measures = [None]
-               self.entries = [None]
                self.chords = [None]
                self.frames = [None]
                self.tuplets = [None]
                self.staffs = [None]
-               self.slur_dict = {}
+               self.slurs = [None]
                self.articulations = [None]
                self.syllables = [None]
                self.verses = [None]
-               
+               self.articulation_defs = [None]
+
                ## do it
                self.parse (name)
 
        def get_global_measure (self, no):
-               if len (self.measures) <= no:
-                       self.measures = self.measures + [None]* (1 + no - len (self.measures))
-
+               fill_list_to (self.measures, no)
                if self.measures[no] == None:
                        self.measures [no] = Global_measure (no)
 
@@ -705,178 +853,124 @@ class Etf_file:
 
                
        def get_staff(self,staffno):
-               if len (self.staffs) <= staffno:
-                       self.staffs = self.staffs + [None] * (1 + staffno - len (self.staffs))
-
+               fill_list_to (self.staffs, staffno)
                if self.staffs[staffno] == None:
                        self.staffs[staffno] = Staff (staffno)
 
                return self.staffs[staffno]
 
        # staff-spec
-       def try_IS (self, l):
+       def try_IS (self, indices, contents):
                pass
 
-       def try_BC (self, l):
-               m =  BCre.match  (l)
-               if m:
-                       bn = string.atoi (m.group (1))
-                       where = string.atoi (m.group (2)) / 1024.0
-               return m
-       def try_TP(self, l):
-               m = TPre.match (l)
-               if m:
-                       (nil, num) = map (string.atoi, (m.groups ()[0:2]))
-                       entries = map (string.atoi, (m.groups ()[2:]))
-
-                       if self.tuplets[-1] == None or num <> self.tuplets[-1].start_note:
-                               self.tuplets.append (Tuplet (num))
-
-                       self.tuplets[-1].append_finale (entries)
-                       
-       def try_IM (self, l):
-               m = IMre.match (l)
-               if m:
-                       a = string.atoi (m.group (1))
-                       b = string.atoi (m.group (2))
-
-                       fin = map (string.atoi, m.groups ()[2:])
-
-                       self.articulations.append (Articulation (a,b,fin))
-               return m
-       def try_verse (self,l):
-               m =  versere .match (l)
-               if m:
-                       a = string.atoi (m.group (1))
-                       body =m.group (2)
-
-                       body = re.sub (r"""\^[a-z]+\([^)]+\)""", "", body)
-                       body = re.sub ("\^[a-z]+", "", body)
-                       self.verses.append (Verse (a, body))
-                       
-               return m
-       def try_ve (self,l):
-               m = vere .match (l)
-               if m:
-                       a = string.atoi (m.group (1))
-                       b = string.atoi (m.group (2))
-
-                       fin = map (string.atoi, m.groups ()[2:])
-
-                       self.syllables.append (Syllable (a,b,fin))
-               return m
-       def try_eE (self, l):
-               m = eEre.match (l)
-               if m:
-                       tup = m.groups()
-                       (no, prev, next, dur, pos, entryflag, extended, follow) = tup
-                       (no, prev, next, dur, pos,extended, follow) \
-                         = tuple (map (string.atoi, [no,prev,next,dur,pos,extended,follow]))
-
-                       entryflag = string.atol (entryflag,16)
-                       if len (self.entries) <= no:
-                               # missing entries seem to be quite common.
-                               # we fill'em up with None.
-                               self.entries = self.entries + [None] * (no - len (self.entries) + 1)
-                                       
-                       current_entry = ((no, prev, next, dur, pos, entryflag, extended, follow), [])
-                       self.entries[no] = current_entry
-               return m
-
-       def try_Sx(self,l):
-               m = Sxre.match (l)
-               if m:
-                       slurno = string.atoi (m.group (1))
-
-                       sl = None
-                       try:
-                               sl = self.slur_dict[slurno]
-                       except KeyError:
-                               sl = Slur (slurno)
-                               self.slur_dict[slurno] = sl
-
-                       params = list (m.groups ()[1:])
-                       params = map (string.atoi, params)
-                       sl.append_entry (params)
-
-               return m        
-       def try_GF(self, l):
-               m = GFre.match (l)
-               if m:
-                       (staffno,measno) = m.groups ()[0:2]
-                       s = string.atoi (staffno)
-                       me = string.atoi (measno)
-                       
-                       entry = m.groups () [2:]
-                       st = self.get_staff (s)
-                       meas = st.get_measure (me)
-                       meas.add_finale_entry (entry)
-               
-       # frame  ?
-       def try_FR(self, l):
-               m = FRre.match (l)
-               if m:
-                       (frameno, startnote, endnote, foo, bar) = m.groups ()
-                       (frameno, startnote, endnote)  = tuple (map (string.atoi, [frameno, startnote, endnote]))
-                       if len (self.frames) <= frameno:
-                               self.frames = self.frames + [None]  * (frameno - len(self.frames) + 1)
-                       
-                       self.frames[frameno] = Frame ((frameno, startnote, endnote))
-                       
-               return m
-       
-       def try_MS (self, l):
-               m = MSre.match (l)
-               if m:
-                       measno = string.atoi (m.group (1))
-                       keynum = string.atoi (m.group (3))
-                       meas =self. get_global_measure (measno)
-                       meas.set_keysig (keynum)
-
-                       beats = string.atoi (m.group (4))
-                       beatlen = string.atoi (m.group (5))
-                       meas.set_timesig ((beats, beatlen))
-                                               
-               return m
-
-       def try_note (self, l):
-               m = note_re.match (l)
-               if m:
-                       (pitch, flag) = m.groups ()
-                       pitch = string.atoi (pitch)
-                       flag = string.atol (flag,16)
-                       self.entries[-1][1].append ((pitch,flag))
-
-       def parse (self, name):
-               sys.stderr.write ('parsing ...')
-               sys.stderr.flush ()
+       def try_BC (self, indices, contents):
+               bn = indices[0]
+               where = contents[0] / 1024.0
+       def try_TP(self,  indices, contents):
+               (nil, num) = indices
+
+               if self.tuplets[-1] == None or num <> self.tuplets[-1].start_note:
+                       self.tuplets.append (Tuplet (num))
+
+               self.tuplets[-1].append_finale (contents)
+
+       def try_IM (self, indices, contents):
+               (a,b) = indices
+               fin = contents
+               self.articulations.append (Articulation (a,b,fin))
+       def try_verse (self, indices, contents):
+               a = indices[0]
+               body = contents[0]
+
+               body = re.sub (r"""\^[a-z]+\([^)]+\)""", "", body)
+               body = re.sub ("\^[a-z]+", "", body)
+               self.verses.append (Verse (a, body))
+       def try_ve (self,indices, contents):
+               (a,b) = indices
+               self.syllables.append (Syllable (a,b,contents))
+
+       def try_eE (self,indices, contents):
+               no = indices[0]
+               (prev, next, dur, pos, entryflag, extended, follow) = contents[:7]
+
+               fill_list_to (self.chords, no)
+               self.chords[no]  =Chord (no, contents)
+
+       def try_Sx(self,indices, contents):
+               slurno = indices[0]
+               fill_list_to (self.slurs, slurno)
+               self.slurs[slurno] = Slur(slurno, contents)
+
+       def try_IX (self, indices, contents):
+               n = indices[0]
+               a = contents[0]
+               b = contents[1]
+
+               ix= None
+               try:
+                       ix = self.articulation_defs[n]
+               except IndexError:
+                       ix = Articulation_def (n,a,b)
+                       self.articulation_defs.append (Articulation_def (n, a, b))
 
-               gulp = open (name).read ()
+       def try_GF(self, indices, contents):
+               (staffno,measno) = indices
 
-               gulp = re.sub ('[\n\r]+', '\n',  gulp)
-               ls = string.split (gulp, '\n')
+               st = self.get_staff (staffno)
+               meas = st.get_measure (measno)
+               meas.finale = contents
                
-               for l in ls:
-                       m = None
-                       if not m: 
-                               m = self.try_MS (l)
-                       if not m: 
-                               m = self.try_FR (l)
-                       if not m: 
-                               m = self.try_GF (l)
-                       if not m: 
-                               m = self.try_note (l)
-                       if not m: 
-                               m = self.try_eE (l)
-                       if not m:
-                               m = self.try_IM (l)
-                       if not m:
-                               m = self.try_Sx (l)
-                       if not m:
-                               m = self.try_TP (l)
-                       if not m:
-                               m = self.try_verse (l)
+       def try_FR(self, indices, contents):
+               frameno = indices [0]
+               
+               startnote = contents[0]
+               endnote = contents[1]
 
+               fill_list_to (self.frames, frameno)
+       
+               self.frames[frameno] = Frame ((frameno, startnote, endnote))
+       
+       def try_MS (self, indices, contents):
+               measno = indices[0]
+               keynum = contents[1]
+               meas =self. get_global_measure (measno)
+               meas.set_keysig (keynum)
+
+               beats = contents[2]
+               beatlen = contents[3]
+               meas.set_timesig ((beats, beatlen))
+
+               meas_flag1 = contents[4]
+               meas_flag2 = contents[5]
+
+               meas.set_flags (meas_flag1, meas_flag2);
+
+
+       routine_dict = {
+               'MS': try_MS,
+               'FR': try_FR,
+               'GF': try_GF,
+               'IX': try_IX,
+               'Sx' : try_Sx,
+               'eE' : try_eE,
+               'verse' : try_verse,
+               've' : try_ve,
+               'IM' : try_IM,
+               'TP' : try_TP,
+               'BC' : try_BC,
+               'IS' : try_IS,
+               }
+       
+       def parse (self, etf_dict):
+               sys.stderr.write ('reconstructing ...')
+               sys.stderr.flush ()
+
+               for (tag,routine) in Etf_file.routine_dict.items ():
+                       ks = etf_dict[tag].keys ()
+                       ks.sort ()
+                       for k in ks:
+                               routine (self, k, etf_dict[tag][k])
+                       
                sys.stderr.write ('processing ...')
                sys.stderr.flush ()
 
@@ -899,8 +993,11 @@ class Etf_file:
                                
                                frame_obj_list = [None]
                                for frno in m.frames:
-                                       fr = self.frames[frno]
-                                       frame_obj_list.append (fr)
+                                       try:
+                                               fr = self.frames[frno]
+                                               frame_obj_list.append (fr)
+                                       except IndexError:
+                                               sys.stderr.write ("\nNon-existent frame %d"  % frno)
 
                                m.frames = frame_obj_list
                                for fr in frame_obj_list[1:]:
@@ -925,10 +1022,12 @@ class Etf_file:
                for t in self.tuplets[1:]:
                        t.calculate (self.chords)
                        
-               for s in self.slur_dict.values():
-                       s.calculate (self.chords)
+               for s in self.slurs[1:]:
+                       if s:
+                               s.calculate (self.chords)
+                       
                for s in self.articulations[1:]:
-                       s.calculate (self.chords)
+                       s.calculate (self.chords, self.articulation_defs)
                        
        def get_thread (self, startno, endno):
 
@@ -942,7 +1041,7 @@ class Etf_file:
                        return []
 
                
-               while c and c.number () <> endno:
+               while c and c.number <> endno:
                        thread.append (c)
                        c = c.next
 
@@ -978,24 +1077,18 @@ class Etf_file:
                return 'ETF FILE %s %s' % (self.measures,  self.entries)
        
        def unthread_entries (self):
-               self.chords = [None]
-               for e in self.entries[1:]:
-                       ch = None
-                       if e:           
-                               ch = Chord (e)
-                       self.chords.append (ch)
-                               
                for e in self.chords[1:]:
                        if not e:
                                continue
-                       e.prev = self.chords[e.finale[0][1]]
-                       e.next = self.chords[e.finale[0][2]]
+
+                       e.prev = self.chords[e.finale[0]]
+                       e.next = self.chords[e.finale[1]]
 
 def identify():
        sys.stderr.write ("%s from LilyPond %s\n" % (program_name, version))
 
 def help ():
-       print """Usage: etf2ly [OPTION]... ETF-FILE
+       sys.stdout.write("""Usage: etf2ly [OPTION]... ETF-FILE
 
 Convert ETF to LilyPond.
 
@@ -1008,20 +1101,20 @@ Enigma Transport Format is a format used by Coda Music Technology's
 Finale product. This program will convert a subset of ETF to a
 ready-to-use lilypond file.
 
-Report bugs to bug-lilypond@gnu.org
+Report bugs to bug-gnu-music@gnu.org
 
 Written by  Han-Wen Nienhuys <hanwen@cs.uu.nl>
-"""
+""")
 
 def print_version ():
-       print r"""etf2ly (GNU lilypond) %s
+       sys.stdout.write (r"""etf2ly (GNU lilypond) %s
 
 This is free software.  It is covered by the GNU General Public License,
 and you are welcome to change it and/or distribute copies of it under
 certain conditions.  Invoke as `midi2ly --warranty' for more information.
 
 Copyright (c) 2000 by Han-Wen Nienhuys <hanwen@cs.uu.nl>
-""" % version
+""" % version)
 
 
 
@@ -1052,7 +1145,9 @@ for f in files:
                f = ''
 
        sys.stderr.write ('Processing `%s\'\n' % f)
-       e = Etf_file(f)
+
+       dict = parse_etf_file (f, Etf_file.routine_dict)
+       e = Etf_file(dict)
        if not out_filename:
                out_filename = os.path.basename (re.sub ('(?i).etf$', '.ly', f))
                
index 96a29680f72fd7f83f99b69532265a69bdf9aeca..caf8efc2fc9cb92dbe947bde15698509d287b5a3 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
@@ -43,7 +49,7 @@ import operator
 
 program_version = '@TOPLEVEL_VERSION@'
 if program_version == '@' + 'TOPLEVEL_VERSION' + '@':
-       program_version = '1.4pre'
+       program_version = '1.4.9'
 
 #
 # Try to cater for bad installations of LilyPond, that have
@@ -365,8 +371,8 @@ output_dict= {
                'output-verbatim': "\\begin{verbatim}%s\\end{verbatim}",
                'output-default-post': "\\def\postLilypondExample{}\n",
                'output-default-pre': "\\def\preLilypondExample{}\n",
-               'usepackage-graphics': '\\usepackage{graphics}\n',
-               'output-eps': '\\noindent\\parbox{\\lilypondepswidth{%(fn)s.eps}}{\includegraphics{%(fn)s.eps}}',
+               'usepackage-graphics': '\\usepackage{graphicx}\n',
+               'output-eps': '\\noindent\\parbox{\\lilypondepswidth{%(fn)s.eps}}{\includegraphics[width=\\lilypondepswidth{%(fn)s.eps}]{%(fn)s.eps}}',
                'output-tex': '\\preLilypondExample \\input %(fn)s.tex \\postLilypondExample\n',
                'pagebreak': r'\pagebreak',
                },
@@ -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)
@@ -945,6 +941,40 @@ def system (cmd):
                error ('Error command exited with value %d\n' % st)
        return st
 
+
+def get_bbox (filename):
+       f = open (filename)
+       gr = []
+       while 1:
+               l =f.readline ()
+               m = re.match ('^%%BoundingBox: ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+)', l)
+               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]+margin, -bbox[1]+margin))
+       fo.close ()
+       
+       res = 90
+
+       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"""
+       
+       cmd = cmd % (x, y, res, name + '.trans.eps', name + '.eps',name + '.png')
+       try:
+               status = system (cmd)
+       except:
+               os.unlink (name + '.png')
+               error ("Removing output file")
+
 def compile_all_files (chunks):
        global foutn
        eps = []
@@ -1001,14 +1031,9 @@ def compile_all_files (chunks):
        for e in eps:
                system(r"tex '\nonstopmode \input %s'" % e)
                system(r"dvips -E -o %s %s" % (e + '.eps', e))
+               
        for g in png:
-               cmd = r"""gs -sDEVICE=pgm  -dTextAlphaBits=4 -dGraphicsAlphaBits=4  -q -sOutputFile=- -r90 -dNOPAUSE %s -c quit | pnmcrop | pnmtopng > %s"""
-               cmd = cmd % (g + '.eps', g + '.png')
-               try:
-                       status = system (cmd)
-               except:
-                       os.unlink (g + '.png')
-                       error ("Removing output file")
+               make_pixmap (g)
                
        os.chdir (d)
 
@@ -1159,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 5c49dbc344ae5040479e81f3b3b4225fb8e2f8e5..22a9a2245b65a1ba14e94fd69198ba53f546423f 100644 (file)
@@ -55,6 +55,9 @@ TODO:
 '''
 
 
+
+
+
 import os
 import stat
 import string
@@ -67,111 +70,24 @@ import operator
 import tempfile
 import traceback
 
-# Attempt to fix problems with limited stack size set by Python!
-# Sets unlimited stack size. Note that the resource module only
-# is available on UNIX.
-try:
-       import resource
-       resource.setrlimit (resource.RLIMIT_STACK, (-1, -1))
-except:
-       pass
 
+################################################################
+# lilylib.py -- options and stuff
+# 
+# source file of the GNU LilyPond music typesetter
 
-datadir = '@datadir@'
-sys.path.append (datadir + '/python')
 try:
        import gettext
-       gettext.bindtextdomain ('lilypond', '@localedir@')
-       gettext.textdomain('lilypond')
+       gettext.bindtextdomain ('lilypond', localedir)
+       gettext.textdomain ('lilypond')
        _ = gettext.gettext
 except:
        def _ (s):
                return s
 
-
-layout_fields = ['dedication', 'title', 'subtitle', 'subsubtitle',
-         'footer', 'head', 'composer', 'arranger', 'instrument',
-         'opus', 'piece', 'metre', 'meter', 'poet', 'texttranslator']
-
-
-# init to empty; values here take precedence over values in the file
-
-## TODO: change name.
-extra_init = {
-       'language' : [],
-       'latexheaders' : [],
-       'latexpackages' :  ['geometry'],
-       'latexoptions' : [],
-       'papersize' : [],
-       'pagenumber' : [1],
-       'textheight' : [], 
-       'linewidth' : [],
-       'orientation' : []
-}
-
-extra_fields = extra_init.keys ()
-
-fields = layout_fields + extra_fields
-program_name = 'ly2dvi'
-help_summary = _ ("Generate .dvi with LaTeX for LilyPond")
-
-include_path = ['.']
-lily_p = 1
-paper_p = 1
-cache_pks_p = 1
-
-PK_PATTERN='feta.*\.[0-9]+pk'
-
-output_name = ''
-targets = {
-       'DVI' : 0,
-       'LATEX' : 0,
-       'MIDI' : 0,
-       'TEX' : 0,
-       }
-
-track_dependencies_p = 0
-dependency_files = []
-
-
-# lily_py.py -- options and stuff
-# 
-# source file of the GNU LilyPond music typesetter
-
-# BEGIN Library for these?
-# cut-n-paste from ly2dvi
-
 program_version = '@TOPLEVEL_VERSION@'
 if program_version == '@' + 'TOPLEVEL_VERSION' + '@':
-       program_version = '1.3.148'
-
-
-original_dir = os.getcwd ()
-temp_dir = os.path.join (original_dir,  '%s.dir' % program_name)
-
-keep_temp_dir_p = 0
-verbose_p = 0
-
-#
-# Try to cater for bad installations of LilyPond, that have
-# broken TeX setup.  Just hope this doesn't hurt good TeX
-# setups.  Maybe we should check if kpsewhich can find
-# feta16.{afm,mf,tex,tfm}, and only set env upon failure.
-#
-environment = {
-       'MFINPUTS' : datadir + '/mf' + ':',
-       'TEXINPUTS': datadir + '/tex:' + datadir + '/ps' + ':',
-       'TFMFONTS' : datadir + '/tfm' + ':',
-       'GS_FONTPATH' : datadir + '/afm:' + datadir + '/pfa',
-       'GS_LIB' : datadir + '/ps',
-}
-
-def setup_environment ():
-       for key in environment.keys ():
-               val = environment[key]
-               if os.environ.has_key (key):
-                       val = os.environ[key] + os.pathsep + val 
-               os.environ[key] = val
+       program_version = '1.5.17'
 
 def identify ():
        sys.stdout.write ('%s (GNU LilyPond) %s\n' % (program_name, program_version))
@@ -189,8 +105,6 @@ Distributed under terms of the GNU General Public License. It comes with
 NO WARRANTY.'''))
        sys.stdout.write ('\n')
 
-errorport=sys.stderr
-
 def progress (s):
        errorport.write (s + '\n')
 
@@ -303,10 +217,6 @@ def system (cmd, ignore_error = 0):
 
        Exit status of CMD
        """
-
-        # Attempt to fix problems with limited stack size set by Python!
-        # Sets unlimited stack size.
-        resource.setrlimit(resource.RLIMIT_STACK, (-1,-1))
        
        if verbose_p:
                progress (_ ("Invoking `%s\'") % cmd)
@@ -329,29 +239,64 @@ def cleanup_temp ():
                shutil.rmtree (temp_dir)
 
 
-#what a name.
-def set_setting (dict, key, val):
-       try:
-               val = string.atof (val)
-       except ValueError:
-               #warning (_ ("invalid value: %s") % `val`)
-               pass
-
-       try:
-               dict[key].append (val)
-       except KeyError:
-               warning (_ ("no such setting: %s") % `key`)
-               dict[key] = [val]
-
-
 def strip_extension (f, ext):
        (p, e) = os.path.splitext (f)
        if e == ext:
                e = ''
        return p + e
 
+################################################################
 # END Library
 
+
+
+
+
+
+# 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') :
+# huh ? this always leads to exception.
+# or '@datadir@' == '@' + 'datadir' + '@':   
+       datadir = os.environ['LILYPONDPREFIX']
+else:
+       datadir = '@datadir@'
+
+
+while datadir[-1] == os.sep:
+       datadir= datadir[:-1]
+
+program_name = 'ly2dvi'
+
+original_dir = os.getcwd ()
+temp_dir = os.path.join (original_dir,  '%s.dir' % program_name)
+errorport = sys.stderr
+keep_temp_dir_p = 0
+verbose_p = 0
+
+try:
+       import gettext
+       gettext.bindtextdomain ('lilypond', '@localedir@')
+       gettext.textdomain ('lilypond')
+       _ = gettext.gettext
+except:
+       def _ (s):
+               return s
+
+# Attempt to fix problems with limited stack size set by Python!
+# Sets unlimited stack size. Note that the resource module only
+# is available on UNIX.
+try:
+       import resource
+       resource.setrlimit (resource.RLIMIT_STACK, (-1, -1))
+except:
+       pass
+
+help_summary = _ ("Generate .dvi with LaTeX for LilyPond")
+
 option_definitions = [
        ('', 'd', 'dependencies', _ ("write Makefile dependencies for every input file")),
        ('', 'h', 'help', _ ("this help")),
@@ -369,6 +314,90 @@ option_definitions = [
        ('', 'w', 'warranty', _ ("show warranty and copyright")),
        ]
 
+layout_fields = ['dedication', 'title', 'subtitle', 'subsubtitle',
+         'footer', 'head', 'composer', 'arranger', 'instrument',
+         'opus', 'piece', 'metre', 'meter', 'poet', 'texttranslator']
+
+
+# init to empty; values here take precedence over values in the file
+
+## TODO: change name.
+extra_init = {
+       'language' : [],
+       'latexheaders' : [],
+       'latexpackages' :  ['geometry'],
+       'latexoptions' : [],
+       'papersize' : [],
+       'pagenumber' : [1],
+       'textheight' : [], 
+       'linewidth' : [],
+       'orientation' : []
+}
+
+extra_fields = extra_init.keys ()
+fields = layout_fields + extra_fields
+
+include_path = ['.']
+lily_p = 1
+paper_p = 1
+cache_pks_p = 1
+
+PK_PATTERN='feta.*\.[0-9]+pk'
+
+output_name = ''
+targets = {
+       'DVI' : 0,
+       'LATEX' : 0,
+       'MIDI' : 0,
+       'TEX' : 0,
+       }
+
+track_dependencies_p = 0
+dependency_files = []
+
+
+#
+# Try to cater for bad installations of LilyPond, that have
+# broken TeX setup.  Just hope this doesn't hurt good TeX
+# setups.  Maybe we should check if kpsewhich can find
+# feta16.{afm,mf,tex,tfm}, and only set env upon failure.
+#
+environment = {
+       'MFINPUTS' : datadir + '/mf' + ':',
+       'TEXINPUTS': datadir + '/tex:' + datadir + '/ps:' + '.:'
+               + os.getcwd() + ':',
+       'TFMFONTS' : datadir + '/tfm' + ':',
+       'GS_FONTPATH' : datadir + '/afm:' + datadir + '/pfa',
+       'GS_LIB' : datadir + '/ps',
+}
+
+
+def setup_environment ():
+       for key in environment.keys ():
+               val = environment[key]
+               if os.environ.has_key (key):
+                       val = os.environ[key] + os.pathsep + val 
+               os.environ[key] = val
+
+#what a name.
+def set_setting (dict, key, val):
+       try:
+               val = string.atof (val)
+       except ValueError:
+               #warning (_ ("invalid value: %s") % `val`)
+               pass
+
+       try:
+               dict[key].append (val)
+       except KeyError:
+               warning (_ ("no such setting: %s") % `key`)
+               dict[key] = [val]
+
+
+def print_environment ():
+       for (k,v) in os.environ.items ():
+               sys.stderr.write ("%s=\"%s\"\n" % (k,v)) 
+
 def run_lilypond (files, outbase, dep_prefix):
        opts = ''
 #      opts = opts + '--output=%s.tex' % outbase
@@ -388,11 +417,14 @@ def run_lilypond (files, outbase, dep_prefix):
        fs = string.join (files)
 
        if not verbose_p:
-               progress ( _("Running %s...") % 'LilyPond')
                # cmd = cmd + ' 1> /dev/null 2> /dev/null'
+               progress ( _("Running %s...") % 'LilyPond')
        else:
                opts = opts + ' --verbose'
-       
+
+               # for better debugging!
+               print_environment ()
+       print opts, fs  
        system ('lilypond %s %s ' % (opts, fs))
 
 def analyse_lilypond_output (filename, extra):
@@ -544,7 +576,8 @@ lily output file in TFILES after that, and return the Latex file constructed.  '
 '''
        
        if extra['pagenumber'] and extra['pagenumber'][-1] and extra['pagenumber'][-1] != 'no':
-               s = s + '\\pagestyle{plain}\n'
+               s = s + '\setcounter{page}{%s}\n' % (extra['pagenumber'][-1])
+                s = s + '\\pagestyle{plain}\n'
        else:
                s = s + '\\pagestyle{empty}\n'
 
@@ -655,12 +688,12 @@ def find_pfa_fonts (name):
        return pfa
 
        
-(sh, long) = getopt_args (__main__.option_definitions)
+(sh, long) = getopt_args (option_definitions)
 try:
        (options, files) = getopt.getopt(sys.argv[1:], sh, long)
 except getopt.error, s:
        errorport.write ('\n')
-       errorport.write (_"error: ") + _ ("getopt says: `%s\'" % s))
+       errorport.write (_ ("error: ") + _ ("getopt says: `%s\'" % s))
        errorport.write ('\n')
        errorport.write ('\n')
        help ()
@@ -751,6 +784,9 @@ if files and files[0] != '-':
        # Ugh, maybe make a setup () function
        files = map (lambda x: strip_extension (x, '.ly'), files)
 
+       # hmmm. Wish I'd 've written comments when I wrote this.
+       # now it looks complicated.
+       
        (outdir, outbase) = ('','')
        if not output_name:
                outbase = os.path.basename (files[0])
@@ -763,8 +799,8 @@ if files and files[0] != '-':
 
        for i in ('.dvi', '.latex', '.ly', '.ps', '.tex'):
                output_name = strip_extension (output_name, i)
-
-       files = map (abspath, files) 
+               outbase = strip_extension (outbase, i)
+       files = map (abspath, files)
 
        if os.path.dirname (output_name) != '.':
                dep_prefix = os.path.dirname (output_name)
@@ -781,6 +817,8 @@ if files and files[0] != '-':
                os.chdir (outdir)
                cp_to_dir (PK_PATTERN, tmpdir)
 
+       # to be sure, add tmpdir *in front* of inclusion path.
+       #os.environ['TEXINPUTS'] =  tmpdir + ':' + os.environ['TEXINPUTS']
        os.chdir (tmpdir)
        
        if lily_p:
@@ -851,7 +889,7 @@ if files and files[0] != '-':
 else:
        # FIXME: read from stdin when files[0] = '-'
        help ()
-       errorport.write ("ly2dvi: " + _ ("error: ") + _ ("no files specified on command line.") + '\n')
+       errorport.write (program_name + ":" + _ ("error: ") + _ ("no files specified on command line.") + '\n')
        sys.exit (2)
 
 
index 178a62a9a2823cfba0418e619efc0c5739974c4f..15920ab109048e335126123e081a7e693ca2949c 100644 (file)
@@ -64,7 +64,6 @@ tar xzf %r/%t &&
 rm -f building &&
 ln -s %n-%v building &&
 cd %n-%v &&
-rm -f config.cache &&
 ./configure --prefix=$HOME/usr && make all web
 ) >> %n-%v/log.txt 2>&1 &&
 rm -f %n &&
index 4e23ef714c7eb06a67732f5e3591d8c1f1aa5536..fbbfe3ecbd2bdb974216ee10fe9700a091c78096 100644 (file)
@@ -38,9 +38,10 @@ default_footer = r"""<hr>Please take me <a href=@INDEX@>back to the index</a>
 of @PACKAGE_NAME@
 """
 
+
 built = r"""<hr>
 <p><font size="-1">
-This page was built from @PACKAGE_NAME@-@PACKAGE_VERSION@ by<br>
+This page was built from @PACKAGE_NAME@-@PACKAGE_VERSION@ (@BRANCH@) by<br>
 </font>
 <address><font size="-1">@GCOS@ &lt;<a href="mailto:%s">@MAILADDRESS@</a>&gt;,
 @LOCALTIME@.</font></address>"""
@@ -188,6 +189,12 @@ def do_file (f):
                #       index = "./index.html"
                #       top = "./"
 
+
+       versiontup = string.split(package_version, '.')
+       branch_str = 'stable-branch' 
+       if string.atoi ( versiontup[1]) %  2:
+               branch_str = 'development-branch'
+               
        s = re.sub ('@INDEX@', index, s)
        s = re.sub ('@TOP@', top, s)
        s = re.sub ('@PACKAGE_NAME@', package_name, s)
@@ -196,6 +203,7 @@ def do_file (f):
        s = re.sub ('@GCOS@', gcos, s)
        s = re.sub ('@LOCALTIME@', localtime, s)
        s = re.sub ('@MAILADDRESS@', mail_address, s)
+       s = re.sub ('@BRANCH@', branch_str, s)  
 
        open (f, 'w').write (s)
 
index 01feec1d1b388811ceeb7616521bd9224aecb8f0..de8bb4da4cd785a0602a560f7f957c6dab12e9b6 100644 (file)
@@ -26,6 +26,12 @@ $(outdir)/%.$(XPM_RESOLUTION)gf: %.mf
 $(outdir)/%.$(XPM_RESOLUTION)pk: $(outdir)/%.$(XPM_RESOLUTION)gf
        gftopk $< $@
 
+
+
+$(outdir)/%.pfb: 
+       pktrace  $(basename $(@F))
+       mv $(basename $(@F)).pfb $(outdir)
+
 #%.afm:
 #      $(SHELL) $(depth)/buildscripts/tfmtoafm.sh $(shell basename $@ .afm)
 #      mv $@ $@.in
index 5dffa458204e21f077f51f4cbfffcd7c98909450..b24d08f2ec5c09426a1b1e96ed44e8269468cd62 100644 (file)
@@ -8,3 +8,6 @@ pks: $(addprefix $(outdir)/, $(XPM_FONTS:%=%.$(XPM_RESOLUTION)pk))
 
 xpms: $(addprefix $(outdir)/, $(XPM_FONTS:%=%.afm)) pks
        $(foreach i, $(XPM_FONTS), $(SHELL) $(depth)/buildscripts/mf-to-xpms.sh $(i) && ) true
+
+
+pfb: $(PFB_FILES)
index 6cae405e8a105d3938c665f46e0effc334b0322d..7bd36b8e777ef876bed8260856a0a4f47f8f24e1 100644 (file)
@@ -9,6 +9,7 @@
 %
 % escape the colon with \string to avoid problems with french babel
 %
+\def\PSsetTeXdimen#1{\expandafter\special{! /#1 (\csname #1\endcsname) set_tex_dimen}}
 \def\lilySpace{ }
 \def\turnOnPostScript{%
         % This sets CTM so that you get to the currentpoint
index 78efb4bc8b39421a5abdbffa08b1109a57d6532d..433fab126a2d769472372f70c6a6fdcf0056e390 100644 (file)
         \botalign{\hbox{\raise #1\leftalign{\kern #2{}#3}}}}%
 
 % Are we using PDFTeX?  If so, use pdf definitions.
+% MiKTeX checks \pdfoutput the wrong way, makes our
+% check more complicated.
 \ifx\pdfoutput\undefined  
   \input lily-ps-defs
 \else
-  \pdfoutput=1
-  \input lily-pdf-defs
+  \ifx\pdfoutput\relax
+    \input lily-ps-defs
+  \else
+    \pdfoutput=1
+    \input lily-pdf-defs
+  \fi
 \fi
 
 \def\EndLilyPondOutput{%