]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.1.43 release/1.1.43
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 17 May 1999 11:25:05 +0000 (13:25 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Mon, 17 May 1999 11:25:05 +0000 (13:25 +0200)
294 files changed:
Documentation/engraving.yo [new file with mode: 0644]
Documentation/man/mudela-book.yo
Documentation/man/out/mudela-book.1
Documentation/tex/fonts.doc
Documentation/tex/mudela-book-doc.doc
Documentation/tex/refman.yo
NEWS
TODO
VERSION
aclocal.m4
config.make.in
configure
flower/include/cursor.hh [deleted file]
flower/include/cursor.icc [deleted file]
flower/include/cursor.tcc [deleted file]
flower/include/link.hh [deleted file]
flower/include/link.icc [deleted file]
flower/include/list.hh [deleted file]
flower/include/list.icc [deleted file]
flower/include/list.tcc [deleted file]
flower/include/pcursor.hh [deleted file]
flower/include/pcursor.tcc [deleted file]
flower/include/plist.hh [deleted file]
flower/include/plist.icc [deleted file]
flower/include/plist.tcc [deleted file]
input/bugs/Overture.ly
input/bugs/bar-space.ly
input/example-3.ly
input/just-friends.ly
input/keys.ly
input/kortjakje.ly
input/opus-130.ly
input/part.ly
input/pedal.ly
input/praeludium-fuga-E.ly
input/rhythm.ly
input/scales.ly
input/scripts.ly
input/star-spangled-banner.ly
input/test/abbrev.ly
input/test/alphabet.ly
input/test/auto-staff-switch.ly
input/test/bar-scripts.ly
input/test/beam-chord.ly
input/test/beam-interstaff.ly
input/test/beam-isknee.ly
input/test/beam-pos.ly
input/test/beams.ly
input/test/broken.ly
input/test/chord-inversion.ly
input/test/chord-table.ly
input/test/chords.ly
input/test/clefs.ly
input/test/collisions.ly
input/test/defaultbars.ly
input/test/denneboom.ly
input/test/dotted-slur.ly
input/test/extender.ly
input/test/extra-staff.ly
input/test/find-quarts.ly
input/test/font-body.ly
input/test/font.ly
input/test/font16.ly
input/test/font20.ly
input/test/gourlay.ly
input/test/grace.ly
input/test/hara-kiri.ly
input/test/incipit.ly
input/test/keys.ly
input/test/knee.ly
input/test/mark.ly
input/test/memory.ly
input/test/multi-measure-rest.ly
input/test/multi-rest.ly
input/test/noteheadstyle.ly
input/test/notemode-chords.ly
input/test/orchestscore.ly
input/test/ossia.ly
input/test/repeat.ly
input/test/rest-collision.ly
input/test/score-bar-scripts.ly
input/test/sleur.ly
input/test/slur-bug.ly
input/test/slur-damping.ly
input/test/slur-interstaff.ly
input/test/slur-swap.ly
input/test/slurs.ly
input/test/spacing-2.ly
input/test/spacing.ly
input/test/span-bars.ly
input/test/staff-margin.ly
input/test/staff-side-slur.ly
input/test/staff-size.fly [deleted file]
input/test/staff-size.ly [new file with mode: 0644]
input/test/stem.ly
input/test/tchaikovsky.ly
input/test/test-lyrics.ly
input/test/thumb.ly
input/test/tie-bug.ly
input/test/tie.ly
input/test/title.ly
input/test/transposition.ly
input/test/tup.ly
input/test/updown.fly
input/test/vertical-align.ly
input/test/vertical-text.ly
input/test/wtk-huh.ly
input/tril.ly
input/twinkle-pop.ly
input/twinkle.ly
lib/binary-source-file.cc
lib/duration.cc
lib/source-file.cc
lily/abbreviation-beam-engraver.cc
lily/all-font-metrics.cc
lily/auto-beam-engraver.cc
lily/bar-engraver.cc
lily/beam-engraver.cc
lily/command-request.cc
lily/dynamic-engraver.cc
lily/font-size-engraver.cc
lily/include/beam-engraver.hh
lily/include/command-request.hh
lily/include/folded-repeat-iterator.hh [new file with mode: 0644]
lily/include/lily-proto.hh
lily/include/main.hh
lily/include/music-iterator.hh
lily/include/music-list.hh
lily/include/musical-request.hh
lily/include/new-repeated-music.hh
lily/include/note-performer.hh
lily/include/repeat-engraver.hh
lily/include/repeated-music-iterator.hh [deleted file]
lily/include/repeated-music.hh [deleted file]
lily/include/request.hh
lily/include/sequential-music-iterator.hh
lily/include/simultaneous-music-iterator.hh
lily/include/slur-engraver.hh
lily/include/translator.hh
lily/include/unfolded-repeat-iterator.hh [new file with mode: 0644]
lily/lyric-engraver.cc
lily/main.cc
lily/midi-item.cc
lily/music-iterator.cc
lily/music-list.cc
lily/music-sequence.cc
lily/musical-request.cc
lily/my-lily-lexer.cc
lily/new-repeated-music-iterator.cc
lily/new-repeated-music.cc
lily/parser.yy
lily/repeat-engraver.cc
lily/repeated-music-iterator.cc [deleted file]
lily/repeated-music.cc [deleted file]
lily/score.cc
lily/sequential-music-iterator.cc
lily/simultaneous-music-iterator.cc
lily/slur-engraver.cc
lily/staff-performer.cc
lily/timing-translator.cc
lily/translator-group.cc
lily/type-swallow-trans.cc
lily/unfolded-repeat-iterator.cc [new file with mode: 0644]
ly/accordion-defs.ly
ly/book-fragment.ly
ly/book-init.ly
ly/center-fragment.ly
ly/center.ly
ly/dynamic.ly
ly/engraver.ly
ly/fragment.ly
ly/init.fly
ly/init.ly
ly/init.sly
ly/paper16.ly
ly/paper20.ly
ly/performer.ly
ly/property.ly
make/generic-rules.make
make/out/lelievijver.lsm
make/out/lilypond.lsm
make/out/lilypond.spec
make/stepmake.make
mf/feta-accordion.mf
mudela-mode.el
mutopia/Coriolan/bassi-part.ly
mutopia/Coriolan/clarinetti-part.ly
mutopia/Coriolan/clarinetti.ly
mutopia/Coriolan/clarinetto-1.ly
mutopia/Coriolan/clarinetto-2.ly
mutopia/Coriolan/contrabasso-part.ly
mutopia/Coriolan/contrabasso.ly
mutopia/Coriolan/coriolan-part-paper.ly
mutopia/Coriolan/coriolan.ly
mutopia/Coriolan/corni-part.ly
mutopia/Coriolan/corni.ly
mutopia/Coriolan/corno-1.ly
mutopia/Coriolan/corno-2.ly
mutopia/Coriolan/fagotti-part.ly
mutopia/Coriolan/fagotti.ly
mutopia/Coriolan/fagotto-1.ly
mutopia/Coriolan/fagotto-2.ly
mutopia/Coriolan/flauti-part.ly
mutopia/Coriolan/flauti.ly
mutopia/Coriolan/flauto-1.ly
mutopia/Coriolan/flauto-2.ly
mutopia/Coriolan/global.ly
mutopia/Coriolan/oboe-1.ly
mutopia/Coriolan/oboe-2.ly
mutopia/Coriolan/oboi-part.ly
mutopia/Coriolan/oboi.ly
mutopia/Coriolan/timpani.ly
mutopia/Coriolan/trombe-part.ly
mutopia/Coriolan/trombe.ly
mutopia/Coriolan/trombo-1.ly
mutopia/Coriolan/trombo-2.ly
mutopia/Coriolan/viola-1.ly
mutopia/Coriolan/viola-2.ly
mutopia/Coriolan/viola-part.ly
mutopia/Coriolan/violino-1-part.ly
mutopia/Coriolan/violino-1.ly
mutopia/Coriolan/violino-2-part.ly
mutopia/Coriolan/violino-2.ly
mutopia/Coriolan/violoncello-part.ly
mutopia/Coriolan/violoncello.ly
mutopia/D.Scarlatti/progress.ly
mutopia/D.Scarlatti/sonata-k1-l366.ly
mutopia/D.Scarlatti/sonata-k2-l388.ly
mutopia/D.Scarlatti/sonata-k3-l378.ly
mutopia/D.Scarlatti/sonata-k4-l390.ly
mutopia/D.Zipoli/verso_2.ly
mutopia/E.Satie/gnossienne-4.ly
mutopia/E.Satie/petite-ouverture-a-danser.ly
mutopia/F.Schubert/standchen-16.ly
mutopia/F.Schubert/standchen-20.ly
mutopia/F.Schubert/standchen.ly
mutopia/Hymns/diademata.ly
mutopia/Hymns/laudatedom.ly
mutopia/Hymns/maccabaeus.ly
mutopia/Hymns/ode.ly
mutopia/Hymns/stille.ly
mutopia/J.S.Bach/Cembalo-Partitas/Partita_II_Allemande.ly
mutopia/J.S.Bach/Cembalo-Partitas/Partita_II_Capriccio.ly
mutopia/J.S.Bach/Cembalo-Partitas/Partita_II_Sinfonia.ly
mutopia/J.S.Bach/Petites-Preludes/preludes-1.ly
mutopia/J.S.Bach/Petites-Preludes/preludes-2.ly
mutopia/J.S.Bach/Petites-Preludes/preludes-4.ly
mutopia/J.S.Bach/Petites-Preludes/preludes-5.ly
mutopia/J.S.Bach/Petites-Preludes/preludes-6.ly
mutopia/J.S.Bach/Solo-Cello-Suites/allemande-urtext.ly
mutopia/J.S.Bach/Solo-Cello-Suites/courante-urtext.ly
mutopia/J.S.Bach/Solo-Cello-Suites/gigue-urtext.ly
mutopia/J.S.Bach/Solo-Cello-Suites/menuetto-urtext.ly
mutopia/J.S.Bach/Solo-Cello-Suites/prelude-cello.ly
mutopia/J.S.Bach/Solo-Cello-Suites/prelude-urtext.ly
mutopia/J.S.Bach/Solo-Cello-Suites/prelude-viola.ly
mutopia/J.S.Bach/Solo-Cello-Suites/sarabande-urtext.ly
mutopia/J.S.Bach/viola-i.ly
mutopia/J.S.Bach/violino-i.ly
mutopia/J.S.Bach/violino-viola.ly
mutopia/J.S.Bach/violino-violoncello.ly
mutopia/J.S.Bach/violoncello-i.ly
mutopia/J.S.Bach/wtk1-fugue1.ly
mutopia/J.S.Bach/wtk1-fugue2.ly
mutopia/J.S.Bach/wtk1-prelude1.ly
mutopia/L.Mozart/sinfonia.ly
mutopia/N.W.Gade/brass.ly
mutopia/N.W.Gade/parts.ly
mutopia/N.W.Gade/score.ly
mutopia/N.W.Gade/strings.ly
mutopia/N.W.Gade/wood.ly
mutopia/W.A.Mozart/cadenza.ly
mutopia/W.A.Mozart/horn-concerto-3.ly
mutopia/gallina.ly
mutopia/los-toros-oboe.ly
scm/accordion-script.scm
scripts/convert-mudela.py
scripts/mudela-book.py
stepmake/NEWS
stepmake/VERSION
stepmake/aclocal.m4
stepmake/config.make.in
stepmake/configure
stepmake/make/generic-rules.make
stepmake/make/out/stepmake.lsm
stepmake/make/out/stepmake.spec
stepmake/make/stepmake.make
stepmake/stepmake/podir-targets.make
stepmake/stepmake/prolog-rules.make [new file with mode: 0644]
stepmake/stepmake/prolog-targets.make [new file with mode: 0644]
stepmake/stepmake/prolog-vars.make [new file with mode: 0644]
stepmake/stepmake/script-rules.make
stepmake/stepmake/substitute-rules.make
stepmake/stepmake/substitute-vars.make

diff --git a/Documentation/engraving.yo b/Documentation/engraving.yo
new file mode 100644 (file)
index 0000000..fcbb3aa
--- /dev/null
@@ -0,0 +1,120 @@
+
+
+So to answer your question about staff sizes:
+
+You're asking the wrong question.
+
+Since the 1850's music has bee blown up and shot down to any size you want.
+This is, for reasons I'll get into later, often a really bad mistake. This
+is also the reason why looking at scores and trying to measure their size,
+and then trying to make sense out to the result can be so frustrating.
+
+In real engraving, everything, and I do mean everything, is set up on a
+horizontal AND vertical grid. The real question is not how large is the
+staff, but how many spaces across.
+If you take the height of the staff and divide it into the length, and then
+multiply by 4 you will have the number of units on the staff. Different
+publishing houses have different engraving areas. The old Breitkopf
+classical piano format was 107 accross x 154 high. The modern piano format
+is about 119 accross. The vertical varies with the kind of music and the
+publisher. Because C.F. Peters has a horizontal engraving size of 7 3/8
+inches, there staff is 118 accross. G.Schirmer is 7 5/8 so they wind up with
+121. Score's default is 7.5 inches so you wind up with 119. This is what is
+usualy called a Rastral 3. Rastral 2 is about 107 or 108, Rastral 4 is about
+127 - 132. 
+
+Rastral 3 translates in SCORE to a Code 8 P5 value of .72. This is very
+convienent since the staff is already locked on the grid (which means you
+can move the staff by intering only two digits, rather than four, or using
+the cursor arrows.
+
+In SCORE, the P5 value multiplied by .35 will give you the staff height in
+inches (FORTRAN'S default resolution is 4000 x 4000 dpi). Again divide the
+height into the satff width (7.5 inches for SCORE) and multiply by four for
+the staff width in units that are the same as the vertical space between two
+adjacent staff lines.
+
+Since the default spacing for P5=1 is five spaces between staves, and this
+(for reasons that I will never, ever understand) remains constant when the
+staff sizes is changed, if you want to lock onto the vertical grid you have
+to divide 18 by the P5 value and multiply by -1. For P5 = .72 this will give
+you a value of -25. If you set Code 8 P4 staff Nr. 2 to -25, staff one and
+two will print right on top of each other. If you set the P4 of staff Nr. 3
+to -50 all three staves will print on top of each other. And so on. This is
+very handy for engraving more than one voice on a line since the edit
+function (EDI) will always work. Otherwise it doesn't. 
+
+Now this is getting too long. Think about it, and I'll answer your
+questions. Don't look for any of this in the manuals, it isn't there.
+
+To close up, the trouble with reducing and enlarging is that, as
+typographers figured out in the 16th century, when you change the size of a
+font, the shapes of the symbols have to change too. A nice fat serif in 72
+points will dissapear if the symbol is reduced to 7 points. SCORE's font
+isn't too bad around Rastral 5. Otherwise it needs help. If you look at good
+engraving in SCORE you will notice that different engravers have their own
+symbol libraries. A real music engraving program would have to have a least
+8 different sets of symbols. Which is a bit of work.
+
+george mcguire
+
+****
+
+
+There isn'y really anything usefull written by high quality engraving. The
+reason is simple - the whole system was based on apprenticeship, and if you
+want to sell it, you can't give it away.
+
+Also engravers don't tend to be very verbal. The one great teacher I had,
+Walter Boelke who apprenticed at Roeder and became the chief engraver at
+G.Schirmer in New York, never told me anything. But he would sit next to me
+and grunt when I did something right.
+
+
+*******
+
+
+>
+>My best reference (Wanske) says that Rastral are fixed sizes of
+>staffs, so you are saying that the staff lengths come in fixed sets as
+>well.
+>
+
+The sizes were fixed for the publisher she was working for (Schott), which
+are very close to Breitkopf.
+But the Roeder sizes were different. There is a long history behind this -
+starting with the fact that the first German engraving workshop (methods,
+machinery, tools and engravers) was imported from England (?).
+
+
+******
+
+>If I understand you correctly, you are saying that the scaleable part
+>of msuic isn't so much the height, but how many symbols you can cramp
+>onto one line, and how many lines (systems) on one page.  Or do you
+>mean that I should not be thinking in "dimensions" but "ratios".
+>
+
+Yes, basically the rations are what is important. The horizontal size was
+dependent on the piece of metal.
+On the other hand metal was expensive and the sizes and layout had
+everything to do with how much you could cram on a page.
+
+****
+
+That's okay as far as it goes. But if you look at different size noteheads
+you will notice that they are ovals, and that the angles from the horizontal
+of the main axises change with the size. Of course this is something Tex
+deals with easily and well.
+
+****
+
+Table from Wanske:
+
+
+16.5 15.5 14.5 13.5 12 11.5 9
+143 12 11 10 9 8.5 7
+11 10 9 8 7 6.5 5
+
+
index 03035a61aac58ad898ee076abc568fd5b96db2de..1c79800ae4ca551e7c585199ff717fd4c6e7f3af 100644 (file)
@@ -50,6 +50,10 @@ dit(verbatim)
     CONTENTS is copied into the TeX source enclosed in a verbatim block.
 dit(11pt, 13pt, 16pt, 20pt, 26pt)
     set the fontsize to use for the music
+dit(singleline)
+  linewidth = -1.
+dit(multiline)
+  linewidth = textwidth
 dit(fragment)
 dit(nonfragment)
     Override mudela-book autodetection of what type of code is in the
@@ -97,7 +101,6 @@ music in \footnote{...} or \marginpar{...}.
 
 Ignores almost all LaTeX commands that changes margins and linewidths.
 
-file(\begin{verbatim}) is ignored.
 manpageauthor()
 
 nemail(Han-Wen Nienhuys)(hanwen@cs.uu.nl), lurl(http://www.cs.uu.nl/people/hanwen)
index 601d4e1d451326ffe1435f209293f02e865036fd..46d16ab7dcd21b09f04613aef0250f59b4d1bf8d 100644 (file)
@@ -48,6 +48,10 @@ the middle of a text line, not only as a separate paragraph
 CONTENTS is copied into the TeX source enclosed in a verbatim block\&.
 .IP "11pt, 13pt, 16pt, 20pt, 26pt" 
 set the fontsize to use for the music
+.IP "singleline" 
+linewidth = -1\&.
+.IP "multiline" 
+linewidth = textwidth
 .IP "fragment" 
 .IP "nonfragment" 
 Override mudela-book autodetection of what type of code is in the
@@ -91,7 +95,6 @@ music in \efootnote{\&.\&.\&.} or \emarginpar{\&.\&.\&.}\&.
 .PP 
 Ignores almost all LaTeX commands that changes margins and linewidths\&.
 .PP 
-\fB\ebegin{verbatim}\fP is ignored\&.
 .SH "AUTHOR" 
 .PP 
 Han-Wen Nienhuys <hanwen@cs\&.uu\&.nl>, http://www\&.cs\&.uu\&.nl/people/hanwen
index 37f81eb5ffae4c6e5639017bfc8130dbb21fc834..287dde49b17057461f79394d5b43391d39c22320 100644 (file)
@@ -117,7 +117,7 @@ small and symmetric disturbances.
 \subsection{Tangent method correction}
 
 A somewhat more elaborate\footnote{While staying in the realm 
-of emperic computer science} way of having a slur avoid 
+of empiric computer science} way of having a slur avoid 
 disturbing notes is by first defining the slur's ideal shape 
 and then using the height correction.  The ideal shape of a 
 slur can be guessed by calculating the tangents of the disturbing 
index 22f9d8f3b69014953e571d29ad23bda8d6ee06c3..b905979a1b98f331d37f458a0d5c9bf51f6789d2 100644 (file)
@@ -7,7 +7,7 @@
 \usepackage[rflt]{floatflt}
 %\usepackage{showframe}
 %\sloppy
-\def\postMudelaExample{\setlength{\parindent}{1em}}
+\def\postMudelaExample{\setlength{\parindent}{3.25ex}}
 \title{Mudela-book tutorial}
 \begin{document}
 \maketitle
@@ -88,12 +88,12 @@ will set the \verb|linewidth| variable to -1, so Lilypond
 will make the music as short as possible but without breaking the
 line. Here is a well know harmonic progression:
 \begin{mudela}[veryverbatim, intertext="produce a well known harmonic progression:"]
-\context Voice {  <c' e' g'> <b d' g'> <c'2 e' g'>}
+  <c' e g> <b d g> <c2 e g>
 \end{mudela}
 
 If you want to place music examples in the text,
 \begin{mudela}[eps]
-\context Voice {  <c' e' g'> <b d' g'> <c'2 e' g'>}
+  <c' e g> <b d g> <c2 e g>
 \end{mudela}
 , you can use the \verb|eps| option. This will create the music as
 eps graphics and include it into the document with the 
@@ -102,7 +102,7 @@ eps graphics and include it into the document with the
 The code used look like this:
 \begin{verbatim}
 \begin{mudela}[eps]
-\context Voice {  <c' e' g'> <b d' g'> <c'2 e' g'>}
+  <c' e g> <b d g> <c2 e g>
 \end{mudela}
 \end{verbatim}
 
@@ -129,18 +129,18 @@ be no empty lines between the normal text and the mudela
 environment. 
 
 You can also use \verb|mudelafile| (on a separate line, FIXME), to
-include another file.
+include another file. Files with name ending with \verb|.sly|
 
 \mudelafile{testje.fly}
 
 \section{Fontsize options}
 You can use all lilypond fontsizes in mudela-book. 
 % LONG line just to test multiple \mudela on one line
-The default 16pt fontsize, \mudela{<c' e' g'>}, is probably to big to be included in the middle of the text. 11pt, \mudela[11pt]{<c' e' g'>} or 13pt, \mudela[13pt]{<c' e' g'>} is probably better.
+The default 16pt fontsize, \mudela{<c' e g>}, is probably to big to be included in the middle of the text. 11pt, \mudela[11pt]{<c' e g>} or 13pt, \mudela[13pt]{<c' e g>} is probably better.
 The code can look like this:
 \begin{verbatim}
 \begin{mudela}[13pt, eps]
-<c' e' g'>
+<c' e g>
 \end{mudela}
 \end{verbatim}
 
@@ -185,8 +185,8 @@ The following options set the fontsize:
 
 \section{User defined commands}
 There is an even shorter way to write small musical fragments. This
-triad, \mudela{<c' e' g'>}, was created with this code:
-\verb|\mudela{<c' e' g'>}|
+triad, \mudela{<c' e g>}, was created with this code:
+\verb|\mudela{<c' e g>}|
 
 Mudela-book defines the \verb|\mudela| command, and let you define
 your own commands in a file specified by 
@@ -224,9 +224,17 @@ send fontsize options to the defined commands.
 }
 \end{mudela}
 
+\section{More options}
+\begin{itemize}
+\item The \verb|singleline| option set \verb|linewidth| to -1.0.
+\item The \verb|multiline| option set \verb|linewidth| to a value letting
+the music be aligned to the right margin. The music can span several
+lines. 
+\end{itemize}
+
 \section{Just in case...}
 The options \verb|fragment| and \verb|nonfragment| will override
-mudela-book when it scans the mudela code to see if it is staff
+mudela-book when it scans the mudela code to see if it is voice
 contents or complete code. This might be useful if mudela-book choose
 wrong. 
 
@@ -238,7 +246,8 @@ if you need this one of these options.
 This was all options to \verb|\begin{mudela}|. The rest of the
 document will show some ways you can use mudela in
 \LaTeX~documents. It will also act as a simple test-suite for
-mudela-book. You \marginpar{
+mudela-book. You 
+\marginpar{
 marginpar!
 \begin{mudela}[eps, 11pt]
  \relative c'' {\key c \minor; r4 [g8 g g] es2}
@@ -300,23 +309,23 @@ names of some triads:
 \hline
 
 dur &
-\begin{mudela}[eps]
-\context Voice {<c' e' g'>}
+\begin{mudela}[eps, fragment]
+<c' e g>
 \end{mudela} 
 \\
 \hline moll &
 \begin{mudela}[eps]
-\context Voice {<c' ees' g'>}
+<c' es g>
 \end{mudela}
 \\
 \hline forminsket &
 \begin{mudela}[eps]
-\context Voice {<c' es' ges'>}
+<c' es ges>
 \end{mudela}
 \\
 \hline forstørret &
 \begin{mudela}[eps]
-\context Voice {<c' e' gis'>}
+<c' e gis>
 \end{mudela}
 \\
 \hline 
@@ -330,7 +339,7 @@ into the preamble of your document. Then the line spacing will not be
 increased between the lines where you have music printed with the
 smallest font size.
 
-Since the version number is  low, you should be careful not to
+Since the version number is quite low, you should be careful not to
 mix braces that belongs to mudela-book and \LaTeX~on the same
 line. The following code will probably break:
 
@@ -353,6 +362,10 @@ a feature of \LaTeX. (But you usually put things inside a verbatim
 environment when you don't want \LaTeX~to do any linebreaking)
 
 
+\end{document}
+
+
+
+
 
 
-\end{document}
index 9778cbc9fee2eb2d029fda4fce366c64c0a5032b..eba1f1d98f11cfafbb13b1c142c6df2da7476743 100644 (file)
@@ -478,11 +478,11 @@ If you use code(R) then all of the measure will be filled with whole rests.
 mudela(fragment,verbatim,center)(
 r1 r1*3 R1*3
 )
-If you set the code(Score.SkipBars) property, then only one measure will be
+If you set the code(Score.skipBars) property, then only one measure will be
 printed; with code(R), a number indicating the length of the rest will be
 displayed.  
 mudela(fragment,verbatim,center)(
-\property Score.SkipBars=1
+\property Score.skipBars=1
 r1 r1*3 R1*3
 )
 Even though the code(\times) command is not explicit, it is still
@@ -1030,6 +1030,9 @@ var(code) is unsigned and specifies the dynamic mark to print.
 Normally you should use the more user friendly abbreviations defined
 in the init file file(dynamic.ly).
 
+FIXME: Changed to code(\textscript) var(text) var(style).  Defines
+a text-request.
+
 dit(code(\accepts) var(string)code(;)) This keyword can appear only within a
 code(\translator) block.  It specifies what contexts are allowed with the
 context that is being defined.  See Section ref(translators).  
@@ -1260,6 +1263,8 @@ var(duration).  A gap will be left for the skipped time with no notes
 printed.  It works in Note Mode or Lyrics Mode (but generates a
 mysterious error in lyrics).
 
+OBSOLETE
+
 dit(code(\spandynamic) code({) var(kind) var(toggle) code(})) Internal
 keyword for crescendo and decrescendo symbols.  The first parameter
 var(kind) is set to 1 for a crescendo and -1 for a decrescendo.  The
@@ -1267,6 +1272,13 @@ second parameter is set to 1 to start the mark and 2 to stop it.
 Users should use the abbreviations which are defined in the
 initialization file file(dynamic.ly).
 
+FIXME:
+
+code(\spanrequest) var(startstop) var(type).  Define a
+spanning request var(startstop) is either -1 (start) or 1
+(stop). var(type) is a string that describes what should be started.
+Supported types are "crescendo", "decrescendo", "beam", "slur".
+
 dit(code(\tempo) var(duration) = var(perminute)code(;)) Used within
 code(\midi) or within music to specify the tempo.  For example, 
 `code(\midi { \tempo 4 = 76;})' requests output with 76 quarter notes
@@ -1444,7 +1456,12 @@ mudela(center)(
 }
 )
 
-dit(code("midi_instrument")) Sets the instrument for MIDI output.  This
+
+dit(code(restStyle)) Change the layout of rests shorter than quarter notes. 
+Currently, the standard layout code(restStyle="") and mensural notation
+code(restStyle="mensural") are available.
+
+dit(code("midiInstrument")) Sets the instrument for MIDI output.  This
 property name must be quoted because of the embedded underscore.  If
 this property is not set then LilyPond will use the code(instrument)
 property.  This must be set to one of the strings on the list of MIDI
@@ -1498,10 +1515,13 @@ subscripts.  See above for list of text styles.
 dit(code(textScriptPadding)) Determines the extra space added between
 super-/subscripted text and the closest staff line or note.
 
-dit(code(fontsize)) Can be used to select smaller font sizes for
+dit(code(fontSize)) Can be used to select smaller font sizes for
 music.  The normal font size is 0, and the two smaller sizes are -1
 and -2.
 
+dit(code(abbrev)) Set length for tremolo to be used if no length is
+explicitly specified.
+
 GONE dit(code(markScriptPadding)) Determines the extra space added between
 the mark and the closest staff line or note.
 
@@ -1556,13 +1576,10 @@ dit(code(instrument) and code(instr)) If code(Staff_margin_engraver)
 is added to the Staff translator, then the code(instrument) property
 is used to label the first line of the staff and the code(instr)
 property is used to label subsequent lines.  If the
-code(midi_instrument) property is not set then code(instrument) is
+code(midiInstrument) property is not set then code(instrument) is
 used to determine the instrument for MIDI output.
 COMMENT(This prints the instrument name on top of the staff lines.)
 
-dit(code(abbrev)) Set length for tremolo to be used if no length is
-explicitly specified.
-
 dit(code(createKeyOnClefChange)) Set to a nonempty string if you want key
 signatures to be printed when the clef changes.  Set to the empty string (the
 default) if you do not want key signatures printed.
@@ -1612,10 +1629,6 @@ mudela(center)(
 }
 )
 
-dit(code(restStyle)) Change the layout of rests shorter than quarter notes. 
-Currently, the standard layout code(restStyle="") and mensural notation
-code(restStyle="mensural") are available.
-
 dit(code(clefStyle)) Determines how clefs are typeset. When set to
 code(transparent), the clefs are not printed at all, when set to
 code(fullSizeChanges), clef changes in the middle of a line are
@@ -1640,7 +1653,7 @@ subsubsubsect(Score properties)
 
 description(
 
-dit(code(SkipBars)) Set to 1 to skip the empty bars that are produced
+dit(code(skipBars)) Set to 1 to skip the empty bars that are produced
 by multimeasure notes and rests.  These bars will not appear on the
 printed output.  Set to zero (the default) to expand multimeasure
 notes and rests into their full length, printing the appropriate
@@ -1829,7 +1842,7 @@ description(
   dit(var(integer)) If an integer appears on the left side of an
 assignment then a code(\font) keyword must appear on the right
 side.  This defines a music font at a particular size.  See Voice
-property code(\fontsize).
+property code(fontSize).
 
 dit(code(arithmetic_basicspace) and code(arithmetic_multiplier))
 The space taken by a note is determined by the formula 
@@ -1898,7 +1911,7 @@ dit(code(tie_x_minimum))
 subsect(MIDI Instrument Names)
 label(midilist)
 
-The MIDI instrument name is set by the code(Staff."midi_instrument")
+The MIDI instrument name is set by the code(Staff."midiInstrument")
 property or, if that property is not set, the code(Staff.instrument)
 property.  The instrument name should be chosen from this list.  If
 string does not exactly match one from this list then LilyPond uses
diff --git a/NEWS b/NEWS
index 25c174bfc7801049948f47a1fdf0367624030583..7d1133c0fddafad08e4b3293be8d4f4d96597fc2 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,42 @@
-pl 41.hwn2
+
+
+pl 41.hwn3
+       - reinstated \property inheritance
+       - \property SkipBars -> skipBars
+       - \property midi_instrument -> midiInstrument
+       - \property fontsize -> fontSize (mudela 1.0.18).
+       - bf: add a space after lyrics.
+       - junked flower DLL classes
+       - rewrote repeat music and iterators (mudela 1.0.17)
+         * Folded_repeat_iterator
+         * Unfolded_repeat_iterator
+         * New_repeated_music
+         * syntax change: \repeat FOLDSTRING NUMBER Music [ALTERNATIVE Music_se
+quence]
+       - data struct simplification: junked Dynamic_req,
+Absolute_dynamic_req, Span_dynamic_req, Slur_req, Beam_req. Use
+Span_reqs and Text_script_reqs with type fields instead. 
+
+
+
+pl 42.tca1
+       - updated mudela-book documentation
+       - misc mudela-book.py
+       - accordion: smaller dots + little script renaming
+
+
+pl 42.jcn1
+       - bf: hp-u(rg)x: user build; sm 73
+       - bf: hp-u(rg)x: sm74
+
+pl 41.mb1
+       - convert-mudela: convert textstyle -> textStyle
+       - refman.yo: properties moved to correct contexts.
+       - mudela-book.py: Added singleline, multiline options. 
+         Fixed default line width bug.
+
+***************
+pl 41.hwn2 (may 10, 1999)
        - bf: Score bar line thickness.
        - more paper writing
        - website tweaks.
diff --git a/TODO b/TODO
index 33dd5f04f173cae55e6245da001cc59d9e0bc3d7..534c44f18ebc01bd1e8e3b9fbebb712049feefca 100644 (file)
--- a/TODO
+++ b/TODO
@@ -9,34 +9,29 @@ Most of the items are marked in the code as well
 Grep for TODO and ugh/ugr/urg.  
 
 .* BUGS
-. * rewrite context defs using Scheme
+. * junk separate mudela versioning. 
 . * PostScript
 .  * header for PS enteredby = "bla <bla@bar.com>"
 .  * ps/lily.ps see comments.
 . * devise standard for functioning of Vertical_align_element.
-. * staff size for post/prebreaks
-. * .ly files
-.  * input/star-spangled-banner
 . * midi key.
-. * P.P.S. It can be cool in mudela-book to distinguish in
-pre,postMudelaExample, whether MudelaExample is epsed or not: ( if
-this fragment is floating eps, than 1, otherwise 2). say
-preMudelaExample[eps]{}, and change it in document body sometimes.
+
 . * fix singleStaffBracket
 . * declare performers in \midi
 . * fix MIDI
 . * \shape 1st dim skipped? 
 . * turn slope-damping on/off
 . * tremolo stuff
-. * fix height of / collisions with lyrics (chords), 
-see input/test/vertical-text.ly; input/test/repeat.ly
 . * We need feta-din*.mf files for more sizes than 10.
 . * fix dynamics decently, ie. use kerning & ligatures.  
 . * dots & rest collisions?
 . * mudela-book.py
 .  * fix \mudelafile{} to have decent functionality
+.  * P.P.S. It can be cool in mudela-book to distinguish in
+pre,postMudelaExample, whether MudelaExample is epsed or not: ( if
+this fragment is floating eps, than 1, otherwise 2). say
+preMudelaExample[eps]{}, and change it in document body sometimes.
 .  * use less RE's
-. * support_l_arr_ empty in staff-margin's G_staff_side_item
 . * slurs colllide with lyrics.
 . * Is there any reasonable way to do this: I would like to have one file
 that can generate the same tune in two different modes without having
@@ -58,10 +53,27 @@ There are distinct ways of specifying the first two (although at
 present, they're not properly distinguished) but no distinct way to
 specify the third.  Should there be?
 . * rest collision minimum dist.
+. * 1. is there a "no key signature mode" for lily yet so that i can just
+enter the notes without worrying about it instead of having to
+remember to put a "!" after each accidental?
+
+a note with a circle after it, meaning:
+
+   note + circle = note + 1/4 of its length
+
+   the circle is like a dot that's not filled in.  for example, on
+   page three, the c-sharp on the second line should be a quarter with 
+   a circle, not a quarter tied to a sixteenth.  is this at all
+   possible with lily?
+tuplets that are written as "number : note", for example
+   "3 : [image of a half note here]".  possible?
+"p+" and "p-" for dynamic markings.  possible?
+. * repeat engraver, gallina.ly
+
 . * Matanya's tips: 
 .  * spacing for prefatory matter
 .  * The line length is 7.5 inch (19.05
-cm) and the height of normal size is equivalent to the traditional raster 1
+cm) and the height of normal size is equivalent to the traditional raster 1
 > size. (The Schott company sells Letraset sheets of musical symbols which are
 > measured in raster sizes). It is agreed among most engravers I know that the
 > standard size for adult readers in solo music should 70% of raster 1.  Jeff's
@@ -91,9 +103,8 @@ In the orchestscore.ly file, I tried:
 
 .* Cleanups needed
 . * Beam
-. * Stem + Notehead
+. * Stem
 . * Slur
-. * Repeats
 . * Rhythmic_grouping
 . * Duration
 . * Spring generation
@@ -102,12 +113,10 @@ In the orchestscore.ly file, I tried:
 . * clef grav prop's 
 
 .* TODO before 1.2
-. * \selectmusic to cut pieces from music. 
 . * Morally pure LilyPond.
 .  * Remove mutopia ramblings.
 .  * Remove non-free software links.
 .  * Remove meta article LilyPond.
-. * TODO: merge atom & molecule; make  tree from molecule.
 . * break priority setting from SCM.
 . * Gade score
 .  * remove [] in favour of auto-beamer
@@ -140,7 +149,6 @@ where XX corresponds to the size. I don't know where (or even if) they
 are installed but they are generated in the mf/out/ directory during the
 compilation.
 . * make dependencies () a virtual function.
-. * fix Repeated_music design
 . * one big ly2dvi input that includes *all* tests.
 . * store req -> element, element -> element causes for warnings
 . * include examples in RPM.
@@ -202,6 +210,9 @@ compilation.
 . * compulsory hshift
 . * Give # lines in linebreaking.  
 . * arrows on slurs.
+. * rewrite context defs using Scheme
+. * \selectmusic to cut pieces from music. 
+. * TODO: merge atom & molecule; make  tree from molecule.
 . * Align_element::padding  ?
 . * uniformise property names...
 .  * ydirection <-> yDirection
@@ -249,6 +260,7 @@ gs: Operand stack:
 . * fix title/instrument placements; see input/test/title.ly
 . * <\voiceone c4. \voicetwo c4>
 . * add full cello suites to web site (kom op, Maarten!)
+. * add mudela-book-doc source to webstie.
 . * Rethink Time_description
 \cadenza , \meter, \grouping should all be \properties
 . * rename
@@ -284,8 +296,6 @@ touching it.
 . * timesig C: fat yet less curved.  Check out relations. 
 . * design decent macro for bulbed endings
 . * printer dependencies.
-. * y-refpoint for rests should be the 4th staffline (gclef: b')
-. * clean-up eight+ rests
 . * versioning 
 . * lo-res fixes.
 . * work out sizes of character fonts.
@@ -386,7 +396,6 @@ languages:
 . * add to MIDI output:
 .  * tempo change
 .  * ornaments (and trills?)
-.  * repeat/volta
 .  * slurs
 .  * accents
 .  * dynamics
@@ -561,7 +570,7 @@ hesitate to ask.
 
 .* SMALLISH PROJECTS
 
-. * Faulenzer sign (% repeat)
+. * Faulenzer sign (% repeat).  Perhaps also use \repeat syntax?
 
 . * fix confusing naming in Engraver vs Engraver_group_engraver (context)
 
diff --git a/VERSION b/VERSION
index a284ea5e4f68e2a3a41be8ecc632fbd4b21cffc2..4a5ed98df2bb3e5607c373b9f0a8efadfdd63eb8 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,7 +1,7 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=1
-PATCH_LEVEL=42
+PATCH_LEVEL=43
 MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
index 0a8f9d46b4dd59a760cc2ba2aa89aab3b5390377..e1ea2a59d89e3b5acbba4a5bbd6ed9bf2ae10549 100644 (file)
@@ -1,5 +1,3 @@
-dnl WARNING WARNING WARNING WARNING
-dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
 dnl aclocal.m4   -*-shell-script-*-
 dnl StepMake subroutines for configure.in
 
@@ -275,6 +273,15 @@ dnl        export INSTALL="\$\(depth\)/bin/install-sh"
 dnl    fi
 
     AC_CHECK_PROGS(TAR, tar, error)
+
+    if test "x`uname`" = "xHP-UX"; then
+       AC_STEPMAKE_WARN(avoiding buggy /bin/sh)
+       AC_CHECK_PROGS(SHELL, bash, /bin/ksh)
+    else
+       SHELL=/bin/sh
+       AC_SUBST(SHELL)
+    fi
+
     AC_CHECK_PROGS(BASH, bash, /bin/sh)
 
     AC_PATH_PROG(PYTHON, ${PYTHON:-python}, -echo no python)
index 841d5e28d1bf6342bdba4511382eb0172c5d24bd..e4f53705ca7493625bcfb1301d97d733da04caba 100644 (file)
@@ -56,6 +56,7 @@ MSGFMT = @MSGFMT@
 PATHSEP = @PATHSEP@
 PERL = @PERL@
 PYTHON = @PYTHON@
+SHELL = @SHELL@
 STRIPROFF = @STRIPROFF@
 TAR= @TAR@
 TBL = @TBL@
index 7db90382ff7e3e0746ed499f37a5f5d83402efec..47a2eb6eb8e3445a2d1e9be04ece04b1ebe1af81 100755 (executable)
--- a/configure
+++ b/configure
@@ -58,7 +58,7 @@ fi
 
 
 # Guess values for system-dependent variables and create Makefiles.
-# Generated automatically using autoconf version 2.12 
+# Generated automatically using autoconf version 2.13 
 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
 #
 # This configure script is free software; the Free Software Foundation
@@ -124,6 +124,7 @@ mandir='${prefix}/man'
 # Initialize some other variables.
 subdirs=
 MFLAGS= MAKEFLAGS=
+SHELL=${CONFIG_SHELL-/bin/sh}
 # Maximum number of lines to put in a shell here document.
 ac_max_here_lines=12
 
@@ -407,7 +408,7 @@ EOF
     verbose=yes ;;
 
   -version | --version | --versio | --versi | --vers)
-    echo "configure generated by autoconf version 2.12"
+    echo "configure generated by autoconf version 2.13"
     exit 0 ;;
 
   -with-* | --with-*)
@@ -577,9 +578,11 @@ ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
 cross_compiling=$ac_cv_prog_cc_cross
 
+ac_exeext=
+ac_objext=o
 if (echo "testing\c"; echo 1,2,3) | grep c >/dev/null; then
   # Stardent Vistra SVR4 grep lacks -e, says ghazi@caip.rutgers.edu.
   if (echo -n testing; echo 1,2,3) | sed s/-n/xn/ | grep xn >/dev/null; then
@@ -760,26 +763,26 @@ fi
      
     
 # Make sure we can run config.sub.
-if $ac_config_sub sun4 >/dev/null 2>&1; then :
+if ${CONFIG_SHELL-/bin/sh} $ac_config_sub sun4 >/dev/null 2>&1; then :
 else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:769: checking host system type" >&5
+echo "configure:772: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
 NONE)
   case $nonopt in
   NONE)
-    if host_alias=`$ac_config_guess`; then :
+    if host_alias=`${CONFIG_SHELL-/bin/sh} $ac_config_guess`; then :
     else { echo "configure: error: can not guess host type; you must specify one" 1>&2; exit 1; }
     fi ;;
   *) host_alias=$nonopt ;;
   esac ;;
 esac
 
-host=`$ac_config_sub $host_alias`
+host=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $host_alias`
 host_cpu=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'`
 host_vendor=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'`
 host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
@@ -790,15 +793,16 @@ 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:794: checking for $ac_word" >&5
+echo "configure:797: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MAKE'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$MAKE"; then
   ac_cv_prog_MAKE="$MAKE" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_MAKE="$ac_prog"
@@ -824,15 +828,16 @@ 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:828: checking for $ac_word" >&5
+echo "configure:832: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_FIND'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$FIND"; then
   ac_cv_prog_FIND="$FIND" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_FIND="$ac_prog"
@@ -860,15 +865,16 @@ 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:864: checking for $ac_word" >&5
+echo "configure:869: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_TAR'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$TAR"; then
   ac_cv_prog_TAR="$TAR" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_TAR="$ac_prog"
@@ -889,20 +895,67 @@ test -n "$TAR" && break
 done
 test -n "$TAR" || TAR="error"
 
+
+    if test "x`uname`" = "xHP-UX"; then
+       
+    echo "configure: warning: avoiding buggy /bin/sh" 1>&2
+    warn_b=yes
+
+       for ac_prog in bash
+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:910: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_SHELL'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$SHELL"; then
+  ac_cv_prog_SHELL="$SHELL" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_SHELL="$ac_prog"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+SHELL="$ac_cv_prog_SHELL"
+if test -n "$SHELL"; then
+  echo "$ac_t""$SHELL" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$SHELL" && break
+done
+test -n "$SHELL" || SHELL="/bin/ksh"
+
+    else
+       SHELL=/bin/sh
+       
+    fi
+
     for ac_prog in bash
 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:898: checking for $ac_word" >&5
+echo "configure:950: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_BASH'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$BASH"; then
   ac_cv_prog_BASH="$BASH" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_BASH="$ac_prog"
@@ -927,7 +980,7 @@ test -n "$BASH" || BASH="/bin/sh"
     # Extract the first word of "${PYTHON:-python}", so it can be a program name with args.
 set dummy ${PYTHON:-python}; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:931: checking for $ac_word" >&5
+echo "configure:984: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_PYTHON'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -935,9 +988,13 @@ else
   /*)
   ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
   ;;
+  ?:/*)                         
+  ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a dos path.
+  ;;
   *)
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do 
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_path_PYTHON="$ac_dir/$ac_word"
@@ -1156,15 +1213,16 @@ EOF
     # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1160: checking for $ac_word" >&5
+echo "configure:1217: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_CC="gcc"
@@ -1185,16 +1243,17 @@ if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1189: checking for $ac_word" >&5
+echo "configure:1247: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
   ac_prog_rejected=no
-  for ac_dir in $PATH; do
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       if test "$ac_dir/$ac_word" = "/usr/ucb/cc"; then
@@ -1229,25 +1288,61 @@ else
   echo "$ac_t""no" 1>&6
 fi
 
+  if test -z "$CC"; then
+    case "`uname -s`" in
+    *win32* | *WIN32*)
+      # Extract the first word of "cl", so it can be a program name with args.
+set dummy cl; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1298: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$CC"; then
+  ac_cv_prog_CC="$CC" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_CC="cl"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+CC="$ac_cv_prog_CC"
+if test -n "$CC"; then
+  echo "$ac_t""$CC" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+ ;;
+    esac
+  fi
   test -z "$CC" && { echo "configure: error: no acceptable cc found in \$PATH" 1>&2; exit 1; }
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1237: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1330: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
 cross_compiling=$ac_cv_prog_cc_cross
 
-cat > conftest.$ac_ext <<EOF
-#line 1247 "configure"
+cat > conftest.$ac_ext << EOF
+
+#line 1341 "configure"
 #include "confdefs.h"
+
 main(){return(0);}
 EOF
-if { (eval echo configure:1251: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1346: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -1261,18 +1356,24 @@ else
   ac_cv_prog_cc_works=no
 fi
 rm -fr conftest*
+ac_ext=c
+# CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CPP $CPPFLAGS'
+ac_compile='${CC-cc} -c $CFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CC-cc} -o conftest${ac_exeext} $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cc_cross
 
 echo "$ac_t""$ac_cv_prog_cc_works" 1>&6
 if test $ac_cv_prog_cc_works = no; then
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1271: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1372: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1276: checking whether we are using GNU C" >&5
+echo "configure:1377: checking whether we are using GNU C" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1281,7 +1382,7 @@ else
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1285: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1386: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -1292,11 +1393,15 @@ echo "$ac_t""$ac_cv_prog_gcc" 1>&6
 
 if test $ac_cv_prog_gcc = yes; then
   GCC=yes
-  ac_test_CFLAGS="${CFLAGS+set}"
-  ac_save_CFLAGS="$CFLAGS"
-  CFLAGS=
-  echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1300: checking whether ${CC-cc} accepts -g" >&5
+else
+  GCC=
+fi
+
+ac_test_CFLAGS="${CFLAGS+set}"
+ac_save_CFLAGS="$CFLAGS"
+CFLAGS=
+echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
+echo "configure:1405: checking whether ${CC-cc} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1311,16 +1416,20 @@ rm -f conftest*
 fi
 
 echo "$ac_t""$ac_cv_prog_cc_g" 1>&6
-  if test "$ac_test_CFLAGS" = set; then
-    CFLAGS="$ac_save_CFLAGS"
-  elif test $ac_cv_prog_cc_g = yes; then
+if test "$ac_test_CFLAGS" = set; then
+  CFLAGS="$ac_save_CFLAGS"
+elif test $ac_cv_prog_cc_g = yes; then
+  if test "$GCC" = yes; then
     CFLAGS="-g -O2"
   else
-    CFLAGS="-O2"
+    CFLAGS="-g"
   fi
 else
-  GCC=
-  test "${CFLAGS+set}" = set || CFLAGS="-g"
+  if test "$GCC" = yes; then
+    CFLAGS="-O2"
+  else
+    CFLAGS=
+  fi
 fi
 
     LD='$(CC)'
@@ -1355,7 +1464,7 @@ EOF
 fi
 
 echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
-echo "configure:1359: checking how to run the C++ preprocessor" >&5
+echo "configure:1468: checking how to run the C++ preprocessor" >&5
 if test -z "$CXXCPP"; then
 if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1364,17 +1473,17 @@ else
 # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
 ac_cpp='$CXXCPP $CPPFLAGS'
 ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
 cross_compiling=$ac_cv_prog_cxx_cross
   CXXCPP="${CXX-g++} -E"
   cat > conftest.$ac_ext <<EOF
-#line 1372 "configure"
+#line 1481 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1377: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:1486: \"$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
   :
 else
@@ -1386,6 +1495,12 @@ else
 fi
 rm -f conftest*
   ac_cv_prog_CXXCPP="$CXXCPP"
+ac_ext=C
+# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cxx_cross
 fi
 fi
 CXXCPP="$ac_cv_prog_CXXCPP"
@@ -1396,23 +1511,24 @@ echo "$ac_t""$CXXCPP" 1>&6
 # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
 ac_cpp='$CXXCPP $CPPFLAGS'
 ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
 cross_compiling=$ac_cv_prog_cxx_cross
 
-    for ac_prog in $CCC c++ g++ gcc CC cxx cc++
+    for ac_prog in $CCC c++ g++ gcc CC cxx cc++ cl
 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:1408: checking for $ac_word" >&5
+echo "configure:1523: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$CXX"; then
   ac_cv_prog_CXX="$CXX" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_CXX="$ac_prog"
@@ -1435,21 +1551,23 @@ test -n "$CXX" || CXX="gcc"
 
 
 echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1439: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
+echo "configure:1555: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
 
 ac_ext=C
 # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
 ac_cpp='$CXXCPP $CPPFLAGS'
 ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
-ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
 cross_compiling=$ac_cv_prog_cxx_cross
 
-cat > conftest.$ac_ext <<EOF
-#line 1449 "configure"
+cat > conftest.$ac_ext << EOF
+
+#line 1566 "configure"
 #include "confdefs.h"
-main(){return(0);}
+
+int main(){return(0);}
 EOF
-if { (eval echo configure:1453: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1571: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
   ac_cv_prog_cxx_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -1463,18 +1581,24 @@ else
   ac_cv_prog_cxx_works=no
 fi
 rm -fr conftest*
+ac_ext=C
+# CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
+ac_cpp='$CXXCPP $CPPFLAGS'
+ac_compile='${CXX-g++} -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext 1>&5'
+ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS 1>&5'
+cross_compiling=$ac_cv_prog_cxx_cross
 
 echo "$ac_t""$ac_cv_prog_cxx_works" 1>&6
 if test $ac_cv_prog_cxx_works = no; then
   { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1473: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1597: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6
 cross_compiling=$ac_cv_prog_cxx_cross
 
 echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6
-echo "configure:1478: checking whether we are using GNU C++" >&5
+echo "configure:1602: checking whether we are using GNU C++" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1483,7 +1607,7 @@ else
   yes;
 #endif
 EOF
-if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1487: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1611: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gxx=yes
 else
   ac_cv_prog_gxx=no
@@ -1494,11 +1618,15 @@ echo "$ac_t""$ac_cv_prog_gxx" 1>&6
 
 if test $ac_cv_prog_gxx = yes; then
   GXX=yes
-  ac_test_CXXFLAGS="${CXXFLAGS+set}"
-  ac_save_CXXFLAGS="$CXXFLAGS"
-  CXXFLAGS=
-  echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
-echo "configure:1502: checking whether ${CXX-g++} accepts -g" >&5
+else
+  GXX=
+fi
+
+ac_test_CXXFLAGS="${CXXFLAGS+set}"
+ac_save_CXXFLAGS="$CXXFLAGS"
+CXXFLAGS=
+echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
+echo "configure:1630: checking whether ${CXX-g++} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1513,33 +1641,37 @@ rm -f conftest*
 fi
 
 echo "$ac_t""$ac_cv_prog_cxx_g" 1>&6
-  if test "$ac_test_CXXFLAGS" = set; then
-    CXXFLAGS="$ac_save_CXXFLAGS"
-  elif test $ac_cv_prog_cxx_g = yes; then
+if test "$ac_test_CXXFLAGS" = set; then
+  CXXFLAGS="$ac_save_CXXFLAGS"
+elif test $ac_cv_prog_cxx_g = yes; then
+  if test "$GXX" = yes; then
     CXXFLAGS="-g -O2"
   else
-    CXXFLAGS="-O2"
+    CXXFLAGS="-g"
   fi
 else
-  GXX=
-  test "${CXXFLAGS+set}" = set || CXXFLAGS="-g"
+  if test "$GXX" = yes; then
+    CXXFLAGS="-O2"
+  else
+    CXXFLAGS=
+  fi
 fi
 
 
     ac_safe=`echo "FlexLexer.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for FlexLexer.h""... $ac_c" 1>&6
-echo "configure:1532: checking for FlexLexer.h" >&5
+echo "configure:1664: 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 1537 "configure"
+#line 1669 "configure"
 #include "confdefs.h"
 #include <FlexLexer.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1542: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
+{ (eval echo configure:1674: \"$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*
   eval "ac_cv_header_$ac_safe=yes"
@@ -1589,12 +1721,12 @@ fi
 
 
     echo $ac_n "checking whether explicit instantiation is needed""... $ac_c" 1>&6
-echo "configure:1593: checking whether explicit instantiation is needed" >&5
+echo "configure:1725: 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 1598 "configure"
+#line 1730 "configure"
 #include "confdefs.h"
 
     template <class T> struct foo { static int baz; };
@@ -1604,7 +1736,7 @@ int main() {
  return foo<int>::baz; 
 ; return 0; }
 EOF
-if { (eval echo configure:1608: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1740: \"$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
@@ -1631,15 +1763,16 @@ 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:1635: checking for $ac_word" >&5
+echo "configure:1767: 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
   if test -n "$YACC"; then
   ac_cv_prog_YACC="$YACC" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_YACC="$ac_prog"
@@ -1673,15 +1806,16 @@ 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:1677: checking for $ac_word" >&5
+echo "configure:1810: 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
   if test -n "$BISON"; then
   ac_cv_prog_BISON="$BISON" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_BISON="$ac_prog"
@@ -1707,15 +1841,16 @@ 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:1711: checking for $ac_word" >&5
+echo "configure:1845: 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
   if test -n "$FLEX"; then
   ac_cv_prog_FLEX="$FLEX" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_FLEX="$ac_prog"
@@ -1774,15 +1909,16 @@ 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:1778: checking for $ac_word" >&5
+echo "configure:1913: 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
   if test -n "$AR"; then
   ac_cv_prog_AR="$AR" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_AR="$ac_prog"
@@ -1806,15 +1942,16 @@ 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:1810: checking for $ac_word" >&5
+echo "configure:1946: 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
   if test -n "$RANLIB"; then
   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_RANLIB="ranlib"
@@ -1861,7 +1998,7 @@ fi
 
 
     echo $ac_n "checking language""... $ac_c" 1>&6
-echo "configure:1865: checking language" >&5    
+echo "configure:2002: checking language" >&5    
     case "$language" in
       En* | en* | Am* | am* | US* | us*)
            lang=English;;
@@ -1897,7 +2034,7 @@ EOF
 
 
     echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6
-echo "configure:1901: checking for gettext in -lintl" >&5
+echo "configure:2038: 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
@@ -1905,7 +2042,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lintl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1909 "configure"
+#line 2046 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
@@ -1919,7 +2056,7 @@ int main() {
 gettext()
 ; return 0; }
 EOF
-if { (eval echo configure:1923: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2060: \"$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
@@ -1949,12 +2086,12 @@ fi
     for ac_func in gettext
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1953: checking for $ac_func" >&5
+echo "configure:2090: 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 1958 "configure"
+#line 2095 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -1980,7 +2117,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:1984: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2121: \"$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
@@ -2012,15 +2149,16 @@ 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:2016: checking for $ac_word" >&5
+echo "configure:2153: 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
   if test -n "$MSGFMT"; then
   ac_cv_prog_MSGFMT="$MSGFMT" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_MSGFMT="$ac_prog"
@@ -2042,7 +2180,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:2046: checking whether msgfmt accepts -o" >&5
+echo "configure:2184: 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
@@ -2070,15 +2208,16 @@ 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:2074: checking for $ac_word" >&5
+echo "configure:2212: 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
   if test -n "$METAFONT"; then
   ac_cv_prog_METAFONT="$METAFONT" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_METAFONT="$ac_prog"
@@ -2105,15 +2244,16 @@ 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:2109: checking for $ac_word" >&5
+echo "configure:2248: 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
   if test -n "$MFONT"; then
   ac_cv_prog_MFONT="$MFONT" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_MFONT="$ac_prog"
@@ -2142,15 +2282,16 @@ 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:2286: 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
   if test -n "$METAPOST"; then
   ac_cv_prog_METAPOST="$METAPOST" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_METAPOST="$ac_prog"
@@ -2177,15 +2318,16 @@ 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:2181: checking for $ac_word" >&5
+echo "configure:2322: 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
   if test -n "$MPOST"; then
   ac_cv_prog_MPOST="$MPOST" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_MPOST="$ac_prog"
@@ -2214,15 +2356,16 @@ 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:2218: checking for $ac_word" >&5
+echo "configure:2360: 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
   if test -n "$INIMETAFONT"; then
   ac_cv_prog_INIMETAFONT="$INIMETAFONT" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_INIMETAFONT="$ac_prog"
@@ -2249,15 +2392,16 @@ 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:2253: checking for $ac_word" >&5
+echo "configure:2396: 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
   if test -n "$INIMFONT"; then
   ac_cv_prog_INIMFONT="$INIMFONT" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_INIMFONT="$ac_prog"
@@ -2286,15 +2430,16 @@ 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:2290: checking for $ac_word" >&5
+echo "configure:2434: 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
   if test -n "$INIMETAPOST"; then
   ac_cv_prog_INIMETAPOST="$INIMETAPOST" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_INIMETAPOST="$ac_prog"
@@ -2321,15 +2466,16 @@ 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:2325: checking for $ac_word" >&5
+echo "configure:2470: 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
   if test -n "$INIMPOST"; then
   ac_cv_prog_INIMPOST="$INIMPOST" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_INIMPOST="$ac_prog"
@@ -2366,15 +2512,16 @@ 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:2370: checking for $ac_word" >&5
+echo "configure:2516: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_STRIPROFF'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$STRIPROFF"; then
   ac_cv_prog_STRIPROFF="$STRIPROFF" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_STRIPROFF="$ac_prog"
@@ -2400,15 +2547,16 @@ 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:2404: checking for $ac_word" >&5
+echo "configure:2551: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$YODL"; then
   ac_cv_prog_YODL="$YODL" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_YODL="$ac_prog"
@@ -2434,15 +2582,16 @@ 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:2438: checking for $ac_word" >&5
+echo "configure:2586: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2HTML'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$YODL2HTML"; then
   ac_cv_prog_YODL2HTML="$YODL2HTML" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_YODL2HTML="$ac_prog"
@@ -2468,15 +2617,16 @@ 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:2472: checking for $ac_word" >&5
+echo "configure:2621: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2LATEX'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$YODL2LATEX"; then
   ac_cv_prog_YODL2LATEX="$YODL2LATEX" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_YODL2LATEX="$ac_prog"
@@ -2501,15 +2651,16 @@ 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:2505: checking for $ac_word" >&5
+echo "configure:2655: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2MAN'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$YODL2MAN"; then
   ac_cv_prog_YODL2MAN="$YODL2MAN" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_YODL2MAN="$ac_prog"
@@ -2535,15 +2686,16 @@ 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:2539: checking for $ac_word" >&5
+echo "configure:2690: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2MSLESS'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$YODL2MSLESS"; then
   ac_cv_prog_YODL2MSLESS="$YODL2MSLESS" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_YODL2MSLESS="$ac_prog"
@@ -2569,15 +2721,16 @@ 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:2573: checking for $ac_word" >&5
+echo "configure:2725: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2TEXINFO'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$YODL2TEXINFO"; then
   ac_cv_prog_YODL2TEXINFO="$YODL2TEXINFO" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_YODL2TEXINFO="$ac_prog"
@@ -2603,15 +2756,16 @@ 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:2607: checking for $ac_word" >&5
+echo "configure:2760: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2TXT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   if test -n "$YODL2TXT"; then
   ac_cv_prog_YODL2TXT="$YODL2TXT" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_YODL2TXT="$ac_prog"
@@ -2663,7 +2817,7 @@ test -n "$YODL2TXT" || YODL2TXT="-echo no yodl"
 ## The GUILE_FLAGS macro.
   ## First, let's just see if we can find Guile at all.
   echo $ac_n "checking for Guile""... $ac_c" 1>&6
-echo "configure:2667: checking for Guile" >&5
+echo "configure:2821: checking for Guile" >&5
   guile-config link > /dev/null || {
     echo "configure: cannot find guile-config; is Guile installed?" 1>&2
     exit 1
@@ -2675,7 +2829,7 @@ echo "configure:2667: checking for Guile" >&5
   echo "$ac_t""yes" 1>&6
 
     echo $ac_n "checking for gh_scm2doubles in -lguile""... $ac_c" 1>&6
-echo "configure:2679: checking for gh_scm2doubles in -lguile" >&5
+echo "configure:2833: checking for gh_scm2doubles in -lguile" >&5
 ac_lib_var=`echo guile'_'gh_scm2doubles | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2683,7 +2837,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lguile $GUILE_LDFLAGS      $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2687 "configure"
+#line 2841 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
@@ -2697,7 +2851,7 @@ int main() {
 gh_scm2doubles()
 ; return 0; }
 EOF
-if { (eval echo configure:2701: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2855: \"$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
@@ -2731,7 +2885,7 @@ fi
 
 
 echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-echo "configure:2735: checking for 8-bit clean memcmp" >&5
+echo "configure:2889: 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
@@ -2739,7 +2893,7 @@ else
   ac_cv_func_memcmp_clean=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 2743 "configure"
+#line 2897 "configure"
 #include "confdefs.h"
 #ifdef __cplusplus
 extern "C" void exit(int);
@@ -2752,7 +2906,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:2756: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2910: \"$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
@@ -2767,15 +2921,15 @@ fi
 fi
 
 echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6
-test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.o"
+test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}"
 
 echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:2774: checking for vprintf" >&5
+echo "configure:2928: 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 2779 "configure"
+#line 2933 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char vprintf(); below.  */
@@ -2801,7 +2955,7 @@ vprintf();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2805: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2959: \"$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
@@ -2825,12 +2979,12 @@ fi
 
 if test "$ac_cv_func_vprintf" != yes; then
 echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:2829: checking for _doprnt" >&5
+echo "configure:2983: 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 2834 "configure"
+#line 2988 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char _doprnt(); below.  */
@@ -2856,7 +3010,7 @@ _doprnt();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2860: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3014: \"$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
@@ -2883,12 +3037,12 @@ fi
 for ac_func in memmem snprintf vsnprintf gettext
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2887: checking for $ac_func" >&5
+echo "configure:3041: 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 2892 "configure"
+#line 3046 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2914,7 +3068,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2918: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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_func_$ac_func=yes"
 else
@@ -2953,15 +3107,16 @@ 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:2957: checking for $ac_word" >&5
+echo "configure:3111: 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
   if test -n "$MAKEINFO"; then
   ac_cv_prog_MAKEINFO="$MAKEINFO" # Let the user override the test.
 else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
     test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/$ac_word; then
       ac_cv_prog_MAKEINFO="$ac_prog"
@@ -2994,7 +3149,7 @@ test -n "$MAKEINFO" || MAKEINFO="error"
 
 
 echo $ac_n "checking Checking TFM directory""... $ac_c" 1>&6
-echo "configure:2998: checking Checking TFM directory" >&5
+echo "configure:3153: checking Checking TFM directory" >&5
 CMR10=`kpsewhich tfm cmr10.tfm`
 TEX_TFMDIR=`dirname $CMR10`
 echo "$ac_t""$TEX_TFMDIR" 1>&6
@@ -3024,7 +3179,7 @@ EOF
 # Ultrix sh set writes to stderr and can't be redirected directly,
 # and sets the high bit in the cache file unless we assign to the vars.
 (set) 2>&1 |
-  case `(ac_space=' '; set) 2>&1` in
+  case `(ac_space=' '; set | grep ac_space) 2>&1` in
   *ac_space=\ *)
     # `set' does not quote correctly, so add quotes (double-quote substitution
     # turns \\\\ into \\, and sed turns \\ into \).
@@ -3091,7 +3246,7 @@ do
     echo "running \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion"
     exec \${CONFIG_SHELL-/bin/sh} $0 $ac_configure_args --no-create --no-recursion ;;
   -version | --version | --versio | --versi | --vers | --ver | --ve | --v)
-    echo "$CONFIG_STATUS generated by autoconf version 2.12"
+    echo "$CONFIG_STATUS generated by autoconf version 2.13"
     exit 0 ;;
   -help | --help | --hel | --he | --h)
     echo "\$ac_cs_usage"; exit 0 ;;
@@ -3110,9 +3265,11 @@ sed 's/%@/@@/; s/@%/@@/; s/%g\$/@g/; /@g\$/s/[\\\\&%]/\\\\&/g;
  s/@@/%@/; s/@@/@%/; s/@g\$/%g/' > conftest.subs <<\\CEOF
 $ac_vpsub
 $extrasub
+s%@SHELL@%$SHELL%g
 s%@CFLAGS@%$CFLAGS%g
 s%@CPPFLAGS@%$CPPFLAGS%g
 s%@CXXFLAGS@%$CXXFLAGS%g
+s%@FFLAGS@%$FFLAGS%g
 s%@DEFS@%$DEFS%g
 s%@LDFLAGS@%$LDFLAGS%g
 s%@LIBS@%$LIBS%g
diff --git a/flower/include/cursor.hh b/flower/include/cursor.hh
deleted file mode 100644 (file)
index a7e5a18..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-// cursor.hh
-
-#ifndef __CURSOR_HH
-#define __CURSOR_HH
-
-#include "link.hh"
-template<class T> class List;
-
-/**  iterator to List.  
-  add and insert extend the list
-  items are always stored as copies in List, but:
-  List<String> :  copies of String stored 
-  List<String*> : copies of String* stored!
-
-    the operations add and insert actually delegate the work to List class.
- */
-template<class T>
-class Cursor 
-{
-public:
-  /** create cursor, set at top. The const part isn't true, actually, #list#
-    surely isn't const, but I get tired of the warning messages.  */
-  Cursor (const List<T>& list, Link<T>* pointer = 0);
-  Cursor (const Cursor<T>& cursor);
-
-  T& thing();
-
-  /// return current T
-  T& operator *() { return thing(); }
-  operator T() { return thing(); }
-  Cursor<T> operator =(const Cursor<T>& c);
-
-  /// make cursor with #no# items back
-  Cursor<T> operator -(int no) const;
-
-  /// make cursor with #no# items further
-  Cursor<T> operator +(int no) const;
-  int operator -(Cursor<T> op) const;
-  Cursor<T> operator -=(int);
-  Cursor<T> operator +=(int);
-  /// move one down
-  void next();
-  /// move one up.
-  void previous();
-  /// return current and move one down
-  Cursor<T> operator ++(int);
-    
-  /// return current and move one up
-  Cursor<T> operator --(int); 
-
-  /// point to link?
-  bool ok() const;
-
-  /// ++ items left?
-  bool forward() const;                
-
-  /// -- items left?
-  bool backward() const;
-
-  /**  put (copy) after me in List. 
-    analogously to editor. ok() interpreted as at end
-    of line.
-
-    PRE: !ok, POST: added to bottom()
-
-    PRE: ok, POST: added after me
-
-    cursor points to same object, cursor.next() is newly added
-    object.
-    */
-  void add (T const & thing);
-
-  /**  put (copy) before me in List. 
-    analogously to editor. ok() interpreted as at begin of
-    line.
-      
-    PRE: !ok, POST: add to top()
-
-    PRE: ok, POST: add before me
-
-    cursor points to same object, cursor.previous()
-    is newly inserted object.
-    */
-    
-  void insert (T const & thing);
-  ///
-  void backspace();
-
-  /// 
-  void del();
-    
-  /// access the list this came from
-  List<T>* list_l() const ;
-  Link<T>* pointer();
-  static   int compare (Cursor<T> a,Cursor<T>b) { return a-b; }
-
-private:
-  
-  Link<T>* pointer_;
-  List<T>* list_l_;
-};
-
-
-/*
-  comparisons.
-  */
-#include "compare.hh"
-
-
-TEMPLATE_INSTANTIATE_COMPARE(Cursor<T>, Cursor<T>::compare, template<class T>);
-
-#include "pcursor.hh"
-#include "list.hh"
-#include "cursor.icc"
-#include "iterate.hh"
-
-#endif // CURSOR_HH 
diff --git a/flower/include/cursor.icc b/flower/include/cursor.icc
deleted file mode 100644 (file)
index 90e64a6..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
-  cursor.icc -- implement Cursor
-
-  source file of the Flower Library
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-  Jan Nieuwenhuizen <janneke@gnu.org>
-*/
-
-
-#ifndef CURSOR_ICC
-#define CURSOR_ICC
-
-
-
-#include <assert.h>
-
-/**
-   Initialisation of Cursor.. Set pointer and list fields.  
- */
-template<class T>
-inline
-Cursor<T>::Cursor (const List<T> & list, Link<T>* p )
-{
-  list_l_ =  (List<T> *) &list;        // damn const
-  if (list.size())
-      pointer_ = p ? p : list.top_;
-  else
-      pointer_ = p;
-}
-
-
-
-template<class T>
-inline
-Cursor<T>::Cursor (const Cursor<T>& cursor) 
-{
-  list_l_= cursor.list_l_;
-  pointer_ = cursor.pointer_;
-}
-
-template<class T>
-inline T&
-Cursor<T>::thing()
-{
-  assert (pointer_);
-  return pointer_->thing();
-}
-
-template<class T>
-Cursor<T>
-Cursor<T>::operator =(const Cursor<T>& c)
-{   
-  assert (list_l_ == c.list_l_);
-  pointer_ = c.pointer_;
-  return *this;
-}
-
-template<class T>
-inline void
-Cursor<T>::add (const T& th)
-{
-  list_l_->add (th, *this);
-}
-
-template<class T>
-inline void
-Cursor<T>::insert (const T& th)
-{
-  list_l_->insert (th, *this);
-}
-
-template<class T>
-inline List<T> *
-Cursor<T>::list_l() const
-{
-  return list_l_;              // ugh!
-}
-
-template<class T>
-inline Link<T>*
-Cursor<T>::pointer()
-{
-  return pointer_;
-}
-
-template<class T>
-inline bool
-Cursor<T>::backward() const
-{
-  return (pointer_ != 0);
-}
-
-template<class T>
-inline bool
-Cursor<T>::forward() const
-{
-  return (pointer_ != 0);
-}
-
-template<class T>
-inline bool
-Cursor<T>::ok() const
-{
-  return (pointer_ != 0);
-}
-template<class T>
-inline void
-Cursor<T>::next() 
-{
-  assert (pointer_);
-  pointer_ = pointer_->next();
-}
-
-template<class T>
-inline Cursor<T> 
-Cursor<T>::operator ++(int)    
-{
-  Cursor<T> r (*this);
-  next();
-  return r;
-}
-
-template<class T>
-inline void
-Cursor<T>::previous() 
-{
-  assert (pointer_);
-  pointer_ = pointer_->previous();
-}
-
-template<class T>
-inline Cursor<T>
-Cursor<T>::operator --(int)
-{
-  Cursor<T> r (*this);
-  previous();
-  return r;
-}
-
-
-#endif // CURSOR_ICC
diff --git a/flower/include/cursor.tcc b/flower/include/cursor.tcc
deleted file mode 100644 (file)
index 42b0c52..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-#ifndef CURSOR_CC
-#define CURSOR_CC
-
-#include "cursor.hh"
-#include <assert.h>
-
-template<class T>
-void
-Cursor<T>::backspace()
-{
-  Cursor<T> c (*this);
-  if (c.ok())
-    c--;        
-  list_l_->remove (*this);
-}
-
-template<class T>
-void
-Cursor<T>::del()
-{
-  Cursor<T> c (*this);
-  if (c.ok())
-    c++;
-  list_l_->remove (*this);    
-  *this = c;
-}
-
-
-template<class T>
-Cursor<T> 
-Cursor<T>::operator -=(int j)    
-{
-  while (j--)
-    (*this)--;
-  return *this;
-}
-template<class T>
-Cursor<T> 
-Cursor<T>::operator +=(int j)    
-{
-  while (j++)
-    (*this)++;
-  return *this;
-}
-
-template<class T>
-Cursor<T> 
-Cursor<T>::operator +(int i) const    
-{
-  Cursor<T> r = *this;
-
-  if (i<0)
-    return r -(-i);
-
-  while (i--)
-    r++;
-
-  return r;
-}
-
-template<class T>
-Cursor<T>
-Cursor<T>::operator -(int i) const
-{
-  Cursor<T> r = *this;
-  if (i<0)
-    return r +(-i);
-
-  while (i--)
-    r--;
-  
-  return r;
-}
-/*
-  warning:  can't use Cursor::operator == (Cursor),
-  since it uses Cursor::operator-(Cursor)
- */
-template<class T>
-int
-Cursor<T>::operator-(Cursor<T> rhs) const
-{
-  assert (rhs.list_l_ == list_l_);
-  int dif = 0;
-
-  // search from *this on further up (positive difference)
-  Cursor<T> c (*this);
-  while (c.ok() && c.pointer_ != rhs.pointer_) 
-    {
-      c--;
-      dif++;
-    }
-  
-  if (c.ok())
-    goto gotcha;               // so, sue me.
-
-  // search in direction of bottom. (negative diff)
-  dif =0;
-  c=*this;    
-  while (c.ok() && c.pointer_ !=rhs.pointer_) 
-    {
-      dif --;
-      c++;
-    }
-  assert (c.ok());
-
- gotcha:
-  assert ((*this - dif).pointer_ == c.pointer_);
-  return dif;
-}
-
-#endif
diff --git a/flower/include/link.hh b/flower/include/link.hh
deleted file mode 100644 (file)
index 5fce0ac..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-// link.hh
-
-#ifndef __LINK_HH
-#define __LINK_HH
-template<class T>
-class List;
-
-
-/// class for List 
-template<class T>
-class Link
-{
-//    friend class Cursor<T>;
-public:    
-    Link (T const & thing);
-    
-    Link<T>* previous();
-    Link<T>* next();
-
-    /// put new Link item after me in list
-    void add (T const & thing);
-    /// put new Link item before me in list
-    void insert (T const & thing);     
-    void remove (List<T> &l);
-    
-    T& thing();
-    void OK() const;
-private:    
-    Link (Link<T>* previous, Link<T>* next, T const & thing);
-
-    T thing_;
-    Link<T>* previous_;
-    Link<T>* next_;
-};
-
-#include "link.icc"
-
-#endif // __LINK_HH //
diff --git a/flower/include/link.icc b/flower/include/link.icc
deleted file mode 100644 (file)
index 4b3c886..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-// link.inl -*-c++-*-
-#ifndef LINK_INL
-#define LINK_INL
-#include <assert.h>
-template<class T>
-inline
-void
-Link<T>::OK() const
-{
-#ifndef NDEBUG
-  if (previous_) 
-    {
-      assert (previous_->next_ == this);
-    }
-  if (next_) 
-    {
-      assert (next_->previous_ == this);
-    }
-#endif    
-}
-
-template<class T>
-inline
-Link<T>::Link (const T& thing) : 
-  thing_(thing)
-{
-  previous_ = next_ = 0;
-}
-
-template<class T>
-inline
-Link<T>::Link (Link<T>* previous, Link<T>* next, const T& thing) : 
-  thing_(thing)
-{
-  previous_ = previous;
-  next_ = next;
-}
-
-template<class T>
-inline
-Link<T>*
-Link<T>::next()
-{
-  return next_;
-}
-
-template<class T>
-inline
-Link<T>*
-Link<T>::previous()
-{
-  return previous_;
-}
-
-template<class T>
-inline
-void
-Link<T>::add (const T& thing)
-{
-  
-  Link<T>* l = new Link<T>(this, next_, thing);
-  if (next_)
-    next_->previous_ = l;
-  next_ = l;
-}
-
-template<class T>
-inline void
-Link<T>::insert (const T& thing)
-{
-  //    Link<T>* l = new Link<T>(next_, this, thing);
-                               // bugfix hwn 16/9/96
-  Link<T>* l = new Link<T>(previous_, this, thing);
-  if (previous_)
-    previous_->next_ = l;
-  previous_ = l;
-}
-
-/*
-  don't forget to adjust #l#'s top_ and bottom_.
-  */
-template<class T>
-inline void
-Link<T>::remove (List<T> &l)
-{
-  if (previous_) 
-    previous_->next_ = next_;
-  else 
-    l.top_ = next_;
-
-  if (next_)
-    next_->previous_ = previous_;
-  else
-    l.bottom_ = previous_;
-}
-
-template<class T>
-inline
-T&
-Link<T>::thing()
-{
-  return thing_;
-}
-#endif
diff --git a/flower/include/list.hh b/flower/include/list.hh
deleted file mode 100644 (file)
index 9be3160..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-#ifndef __LIST_HH
-#define __LIST_HH
-
-class ostream;
-template<class T> class Cursor;
-template<class T> class Link;
-
-/**  all-purpose doubly linked list. 
-
-  List can be seen as all items written down on paper,
-  from top to bottom
-
-  class Cursor is used to extend List
-
-   items are always stored as copies in List, but:
-   #List<String># :  copies of #String# stored 
-   #List<String*># : copies of #String*# stored! 
-   (do not use, use \Ref{Link_list} #<String*># instead.)
-   {\bf note:} 
-   retrieving "invalid" cursors, i.e. 
-   #top()/bottom ()# from empty list, #find ()# without success,
-    results in a nonvalid Cursor (#!ok()#)
-
-
-    INVARIANTEN!
-*/
-
-template<class T>
-class List
-{
-public:
-  List (List const&src);
-
-  /// construct empty list                
-  List();    
-  virtual ~List();
-       
-  int size() const;
-
-  Cursor<T> bottom() const;    // const sucks.
-  Cursor<T> top() const;
-
-  void OK() const;             // check list
-  void junk_links();
-    
-protected:
-  friend class Cursor<T>;
-  friend class Link<T>;
-
-  void concatenate (List<T> const &s);
-    
-  /**  make *this empty. 
-
-    POST:
-    size == 0
-      
-    WARNING:
-    contents lost, and not deleted.
-    */
-  void set_empty();
-  
-  void add (T const & thing, Cursor<T> &after_me);
-
-  /// put thing before #before_me#
-  void insert (T const & thing, Cursor<T> &before_me);
-
-  /** Remove link pointed to by me. Destructor of contents called
-    (nop for pointers)
-
-    POST
-    none;
-
-
-    WARNING: do not use #me# after calling
-    */
-  void remove (Cursor<T> me);
-   
-
-  /* ************** */
-    
-  int size_;
-  Link<T>* top_;
-  Link<T>* bottom_;
-};
-
-#include "list.icc"
-#include "cursor.hh"
-
-#endif // __LIST_HH //
-    
-   
-
-
diff --git a/flower/include/list.icc b/flower/include/list.icc
deleted file mode 100644 (file)
index 3faf315..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-/*
-  list.icc -- implement List inline functions
-
-  source file of the Flower Library
-
-  (c) 1996, 1997--1999
-  Jan Nieuwenhuizen <janneke@gnu.org>
-  Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef LIST_ICC
-#define LIST_ICC
-
-template<class T>
-inline
-List<T>::List()
-{
-  set_empty();
-}
-
-template<class T>
-inline void
-List<T>::set_empty()
-{
-  top_ = bottom_ = 0;
-  size_ = 0;
-}
-
-template<class T>
-inline void
-List<T>::remove (Cursor<T> me)
-{
-  if (me.ok())
-    {
-      Link<T> *lp = me.pointer();      
-      lp->remove (*this);
-      delete lp;
-      size_--;
-    }
-}
-
-template<class T>
-inline int
-List<T>::size() const
-{ 
-  return size_;
-}
-
-template<class T>
-inline Cursor<T>
-List<T>::top() const
-{
-  return Cursor<T>(*this, top_);
-}
-
-
-template<class T>
-inline Cursor<T>
-List<T>::bottom() const
-{
-  return Cursor<T>(*this, bottom_);
-}
-
-
-#endif
-
diff --git a/flower/include/list.tcc b/flower/include/list.tcc
deleted file mode 100644 (file)
index 3c66774..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-/*
-  list.tcc -- implement List<T>
-
-  source file of the Flower Library
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-#ifndef LIST_CC
-#define LIST_CC
-
-
-#include "list.hh"
-
-template<class T>
-List<T>::List (List const&src)
-{
-  set_empty();
-  // probably el stupido
-  for (Cursor<T> c (src); c.ok(); c++)
-       bottom().add (c);
-}
-
-template<class T>
-void
-List<T>::OK() const
-{
-  int i = size_;
-  Link<T> *lp = top_;
-  while (i--) 
-    {
-       assert (lp);
-       lp->OK();
-       lp = lp->next();
-    }
-  assert (!lp);
-   i = size_;
-  lp = bottom_;
-  while (i--) 
-    {
-       assert (lp);
-       lp->OK();
-       lp = lp->previous();
-    }
-  assert (!lp);
-}
-
-template<class T>
-void
-List<T>::junk_links()
-{
-  Cursor<T> c (*this);
-  while (c.ok())
-       c.del();
-}
-
-template<class T>
-List<T>::~List()
-{
-  junk_links();
-}
-
-/** 
-
-  add after after_me.
-
-  Procedure:
-  \begin{itemize}
-  \item if #after_me# is #ok()#, add after #after_me#, else
-  \item if list !empty simply add to bottom, else
-  \item list is empty: create first \Ref{Link} and initialize 
-  #bottom_# and #top_#.
-  \end{itemize}
-*/
-template<class T>
-void
-List<T>::add (T const & thing, Cursor<T> &after_me)
-{
-  if (!size_) {                // not much choice if list is empty
-      bottom_ = top_ = new Link<T>(thing);
-       if (!after_me.ok())
-           after_me = bottom();
-    }
-  else {                       // add at aprioprate place
-       if (!after_me.ok())
-           after_me = bottom();
-       Link<T> *p =after_me.pointer();
-       p->add (thing);
-       if (p == bottom_)       // adjust bottom_ if necessary.
-           bottom_ = p->next();
-    }
-
-  size_++;
-}
-
-template<class T>
-void
-List<T>::insert (T const & thing, Cursor<T> &before_me)
-{
-  if (!size_) 
-    {
-       bottom_ = top_ = new Link<T>(thing);
-       if (!before_me.ok())
-           before_me = top();
-       
-    }
-  else 
-    {
-       if (!before_me.ok())
-           before_me = top();
-       
-       Link<T> *p = before_me.pointer() ;
-
-       p->insert (thing);
-       if (p == top_)
-           top_ = p->previous();
-    }
-
-  size_++;
-}
-
-
-template<class T>
-void
-List<T>::concatenate (List<T> const&s)
-{
-  Cursor<T> b (bottom());
-  for (Cursor<T> c (s); c.ok(); c++) 
-    {
-       b.add (c);
-       b++;
-    }
-}
-
-#ifndef __CYGWIN32__ // ugh should check for some gcc/egcs version
-
-// instantiate a template:  explicit instantiation.
-#define LIST_INSTANTIATE(a)  template class List<a>; \
-  template class Cursor<a>; template class Link<a>
-
-#else
-
-#define LIST_INSTANTIATE(T)\
-    static void force_list_members ()\
-    {\
-    List<T> bla;\
-    bla.top().add ((void*)0);\
-    }
-#endif
-
-#endif
-
diff --git a/flower/include/pcursor.hh b/flower/include/pcursor.hh
deleted file mode 100644 (file)
index 9e7959f..0000000
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
-  pcursor.hh -- part of flowerlib
-
-  (c) 1996 Han-Wen Nienhuys&Jan Nieuwenhuizen
-*/
-
-#ifndef PCURSOR_HH
-#define PCURSOR_HH
-
-#include "plist.hh"
-#include "cursor.hh"
-
-/**  cursor to go with Link_list. 
-  don't create Link_list<void*>'s.
-  This cursor is just an interface class for Cursor. It takes care of the
-  appropriate type casts
- */
-template<class T>
-class PCursor : private Cursor<void *> {
-  friend class Pointer_list<T>;
-
-  /// delete contents
-  void junk();
-public:
-  Cursor<void*>::ok;
-  Cursor<void*>::del;
-  Cursor<void*>::backspace;
-  Cursor<void*>::next;
-  Cursor<void*>::previous;
-
-  T remove_p() {
-    T p = ptr();
-    Cursor<void*>::del();
-    return p;
-  }
-  T remove_prev_p() {
-    assert (ok());
-    (*this)--;
-    return remove_p();
-  }
-    
-  Link_list<T> *list_l() { return (Link_list<T> *)Cursor<void*>::list_l (); }
-  PCursor<T> operator++(int) { return Cursor<void*>::operator++(0);}
-  PCursor<T> operator--(int) { return Cursor<void*>::operator--(0); }
-  PCursor<T> operator+=(int i) { return Cursor<void*>::operator+=(i);}
-  PCursor<T> operator-=(int i) { return Cursor<void*>::operator-=(i); }    
-  PCursor<T> operator -(int no) const { return Cursor<void*>::operator-(no);}
-  int operator -(PCursor<T> op) const { return Cursor<void*>::operator-(op);}
-  PCursor<T> operator +(int no) const {return Cursor<void*>::operator+(no);}
-  PCursor (const Link_list<T> & l) : Cursor<void*> (l) {}
-  PCursor (const Cursor<void*>& cursor) : Cursor<void*>(cursor) { }
-  void* vptr() const { return *((Cursor<void*> &) *this); }
-
-  // should return T& ?
-  T ptr() const { return (T) vptr (); }
-  T operator ->() const { return  ptr(); }
-  operator T() { return ptr(); }
-  T operator *() { return ptr(); }
-  void add (T const & p) { Cursor<void*>::add ((void*) p); }
-  void insert (T const & p) { Cursor<void*>::insert ((void*) p);}    
-  static int compare (PCursor<T> a,PCursor<T>b) {
-    return Cursor<void*>::compare (a,b);
-  }
-};
-
-
-
-#include "compare.hh"
-TEMPLATE_INSTANTIATE_COMPARE(PCursor<T>, PCursor<T>::compare, template<class T>);
-
-#endif
diff --git a/flower/include/pcursor.tcc b/flower/include/pcursor.tcc
deleted file mode 100644 (file)
index a1f706b..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-#include "pcursor.hh"
-
-template<class T>
-void
-PCursor<T>::junk()
-{
-#if !defined (NDEBUG) && defined (PARANOID)
-  list_l()->OK();
-#endif
-
-  delete ptr();
-#if !defined (NDEBUG)&&defined (PARANOID)
-  thing() = 0;
-  list_l()->OK();
-#endif
-}
diff --git a/flower/include/plist.hh b/flower/include/plist.hh
deleted file mode 100644 (file)
index 03432c9..0000000
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
-  list.hh -- part of flowerlib
-
-  (c) 1996 Han-Wen Nienhuys & Jan Nieuwenhuizen
-*/
-
-#ifndef PLIST_HH
-#define PLIST_HH
-
-#include "list.hh"
-
-/**
-  A list of pointers.
-  
-  Use for list of pointers, e.g. Link_list<AbstractType*>. 
-  This class does no deletion of the pointers, but it knows how to
-  copy itself (shallow copy). We could have derived it from List<T>,
-  but this design saves a lot of code dup; for all Link_lists in the
-  program only one parent List<void*> is instantiated.
-  */
-template<class T>
-class Link_list : public List<void *>
-{
-public:
-  PCursor<T> top() const{
-    return PCursor<T> (List<void*>::top());
-  }
-  PCursor<T> bottom() const {
-    return PCursor<T> (List<void*>::bottom());
-  }
-  PCursor<T> find (T) const;
-  void concatenate (Link_list<T> const &s) { List<void*>::concatenate (s); }
-
-  Link_list() {}
-};
-
-/**   
-  
-  Link_list which deletes pointers given to it. 
-
-  NOTE:
-  
-  The copy constructor doesn't do what you'd want:
-  Since T might have a virtual ctor, we don't try to do a
-
-    new T(**cursor)
-
-  You have to copy this yourself, or use the macro Link_list__copy
-  
-  TODO
-  operator =()
-  */
-template<class T>
-class Pointer_list : public Link_list<T> {
-    
-public:
-  void junk();
-  Pointer_list (Pointer_list const& l) : Link_list<T> (l) { set_empty(); }
-  Pointer_list() { }
-  ~Pointer_list() { junk (); }
-};
-
-#define Pointer_list__copy(T, to, from, op)   \
-for (PCursor<T> _pc_(from); _pc_.ok(); _pc_++)\
-to.bottom().add (_pc_->op)\
-\
-
-
-template<class T>
-void PL_copy (Pointer_list<T*> &dst,Pointer_list<T*> const&src);
-
-
-
-#include "plist.icc"
-
-#endif
diff --git a/flower/include/plist.icc b/flower/include/plist.icc
deleted file mode 100644 (file)
index b8d3a48..0000000
+++ /dev/null
@@ -1,33 +0,0 @@
-/* -*-c++-*-
-  plist.icc -- part of flowerlib
-
-  (c) 1996, 1997--1999 Han-Wen Nienhuys& Jan Nieuwenhuizen
-*/
-
-#ifndef PLIST_INL
-#define PLIST_INL
-
-template<class T>
-inline void
-PL_copy (Pointer_list<T*> &to, Pointer_list<T*> const&src)
-{
-  for (PCursor<T*> pc (src); pc.ok(); pc++) 
-    {
-       T *q = pc;
-       T *p=new T(*q) ; 
-       to.bottom().add (p);
-    }
-}
-
-
-template<class T>
-inline PCursor<T> 
-Link_list<T>::find (T what) const
-{
-  PCursor<T> i (*this);
-  for (; i.ok(); i++)
-       if (i.ptr() == what)
-          break;
-  return i;    
-}
-#endif
diff --git a/flower/include/plist.tcc b/flower/include/plist.tcc
deleted file mode 100644 (file)
index 24db16f..0000000
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
-  plist.tcc -- implement Pointer_list
-
-  source file of the Flower Library
-
-  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef PLIST_TCC
-#define PLIST_TCC
-
-#include "plist.hh"
-
-template<class T>
-void
-Pointer_list<T>::junk()
-{
-  PCursor<T> c (*this);
-  while (c.ok()) 
-    {
-       delete c.remove_p();
-    }
-}
-
-#ifndef __CYGWIN32__ // ugh should check for some gcc/egcs version
-
-#define POINTERLIST_INSTANTIATE(a) template class Pointer_list<a*>;\
-       template class PCursor<a*>;
-
-#else
-
-#define POINTERLIST_INSTANTIATE(T)\
-    static void force_junk##T ()\
-    {\
-    Pointer_list<T*> bla;\
-    bla.junk ();\
-    }
-
-#endif
-
-#endif // PLIST_TCC
index c7267f3ca2e6784eac59cc5f33eabbe2c8a3f434..1968b768cf41ba61eb8c93c36b5113deca6d669c 100644 (file)
@@ -4,7 +4,7 @@ composer = "Johann Christoph Faber";
 piece = "1.  Overture";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 global=\notes{
        \time 2/2;
index ab96d52a7736b34f76a47df22768395d67a9a6fa..e895cb50aa41a513b3b20ddf2e38725eff0496a9 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.16";
+\version "1.0.19";
 
 scales = \notes\transpose c''{
                f2 f f f f f f f f f\break 
index 18ee3e4957b6f460ce8d6265bb96ef39b2051723..1fea3ac1984f391841b06c3fef05b772f804eb07 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.16";
+\version "1.0.19";
 
 one = \notes\relative c{
        c'' d e f
index faf096639d94bf71cedc20c4b0f2f6112e5f5e5a..74d87dff77b96869238496239a7c37b2c106ad88 100644 (file)
@@ -33,7 +33,7 @@ of a certain tune (Jazz, Real Book, for example), like
        \context ChordNames \chords{
                \property Score.chordInversion = 1
                \property Score.barAtLineStart = 1
-               \repeat 2 {
+               \repeat semi 2 {
                        f1-maj f-maj f-7 bes-7
                        c-maj c-maj es es
                        d-7 g-7 b2-7/fis e-7 a1-7\break
@@ -57,4 +57,4 @@ of a certain tune (Jazz, Real Book, for example), like
        }
 }
 
-\version "1.0.16";
+\version "1.0.18";
index 41733051b0654585c2ead3a43b0da7ca79d28d27..d931c9bf9733a565c4a73bf57579a166139ac2df 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.16";
+\version "1.0.19";
 
 
 blah = \notes {
index 01512d288e94abf1f23bbd1e8fb7ffc144d41e26..09a1db7e40e3963e3541cd89273a01357a6a475f 100644 (file)
@@ -10,7 +10,7 @@ copyright =    "public domain";
 Tested Features: example file with comments
 
 %}
-\version "1.0.16";
+\version "1.0.19";
 
 
 % the % is a comment.
index d8763c7ca487ac2b58958ed248477665a1148f60..4b43254c4905c6a09c7261525574cceb29aada34 100644 (file)
@@ -24,8 +24,10 @@ global = \notes {
        \key g;
        \time 3/8;
        < 
-               \dynamics 
-               \repeat 2 { s4.*8 } 
+               \dynamics
+               s4. *  8
+               s4. *  8
+               % \repeat semi 2 { s4.*8 } 
        >
 }
 
index c6921626a369a3abbb300a4b1bb09b8f40280cd6..904e05f0d886b2c64f591a536f5ace659cd07a91 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.16";
+\version "1.0.19";
 part = \notes {
        c-1 c c c
        r1*3
index 4a570badd2b12ce2da3f3c898c45c1fca02bde8b..1dcb3eb6a35f31afce611fa06f318091197110ac 100644 (file)
@@ -28,7 +28,7 @@
 % \lbheel \lbheel \lfheel \lftoe
 % \rbheel \rbtoe \rfheel \rftoe
 
-\version "1.0.16";
+\version "1.0.19";
 
 \score{
                \notes {
index 0ec40baa3f742a0e1b743f77493efafdb9f405c4..5fd8dfff59a21945a7bc94dca622d97217617a7a 100644 (file)
@@ -23,7 +23,7 @@
    * organ staff...
 %}
 
-\version "1.0.16";
+\version "1.0.19";
 
 
 
index 5e159280bfb6d19cc9a84e752b9d2ff911d7abcd..4b2091264640c74a24c58813f044ca33ddc1c825 100644 (file)
@@ -7,7 +7,7 @@ TestedFeatures =         "multiple meters, beaming, unsynced bars, userdefd engravers";
 
 
 
-\version "1.0.16";
+\version "1.0.19";
 
 ritme = \notes\transpose c'' {
        \time  4/4;
index f69f3791886e8da337b025d2c8121bd88aab3642..8f130977aada3cce9d062753fa4ff39e8e8f9fa0 100644 (file)
@@ -16,7 +16,7 @@ copyright =    "public domain";
 % scales with accents.
 %
 
-\version "1.0.16";
+\version "1.0.19";
 blah =         \notes {
                \time 6/8;      
 \transpose c {
index 1d9333bb1e9485859ee423ba1d79ea0c0e3294ac..bdd00db6235af8ea165674f7a20c56356e9b96a5 100644 (file)
@@ -1,5 +1,5 @@
        
-\version "1.0.16";
+\version "1.0.19";
 
 
 blah =         \notes{ \transpose c'' {
index 4cdf7f5837234f906e3c18296fb6411908bdbe86..4578d11e304b0fc721f0a9f207e0f74e5458839d 100644 (file)
@@ -16,58 +16,57 @@ http://www.Arkkra.com/doc/star.ps
 
 $staff1_voice_1 = \notes {
   a8.()fis16 
-  \repeat 2 { d4 fis4 a4 d'2 fis'8. e'16 d'4 fis4 gis4 a2 a8 a8 
+  \repeat semi 2 { d4 fis4 a4 d'2 fis'8. e'16 d'4 fis4 gis4 a2 a8 a8 
   fis'4. e'8 d'4 cis'2 b8. cis'16 d'4 d'4 a4 }
   \alternative { { fis4 d4 a8. fis16 } { fis4 d4 fis'8. fis'16 } } 
   fis'4 g'4 a'4 a'2 g'8 fis'8 e'4 fis'4
   g'4 g'2 g'4 fis'4. e'8 d'4 cis'2 b8. cis'16 d'4 fis4 gis4 a2 a4
   d'4 d'4 d'8()cis'8 b4 b4 b4 e'4 g'8 ()fis'8  e'8()d'8 
-  d'4~cis'4 a8. a16 d'4.~e'8 fis'8 g'8 a'2 d'8 e'8 fis'4. g'8
+  d'4()cis'4 a8. a16 d'4.()e'8 fis'8 g'8 a'2 d'8 e'8 fis'4. g'8
   e'4 d'2 s4 
 }
 
 $staff1_voice_2 = \notes { 
   a8.()fis16 
-  \repeat 2 { a,4 d4 e4 d4~fis4 fis8. fis16 fis4 d4 d4 cis2
+  \repeat semi 2 { a,4 d4 e4 d4 () fis4 fis8. fis16 fis4 d4 d4 cis2
   e8 e8 a4. a8 a4 a2 a8. a16 a4 a4 a4 }
   \alternative { { fis4 d4 a8. fis16 } { fis4 d4 r4 } }
   a4 a4 d'4 d'2 a8 a8 cis'4 cis'4 cis'4 cis'2 a4 a4. a8 a4 a2
   a8. a16 d4 d4 d4 cis2 e4 fis4 e4 d4 d4 d4 dis4 g4 g8()dis8 e4 e2
-  e8. e16 d4.~a8 a8 a8 a2 g8 g8 a4. a8 g4 fis2 s4 
+  e8. e16 d4.()a8 a8 a8 a2 g8 g8 a4. a8 g4 fis2 s4 
 }
 
 $staff2_voice_1 = \notes { 
   r4 
-  \repeat 2 { fis4 a4 a4 b2 cis'8. cis'16 b4 b4 b4 a2 cis'8 cis'8 
+  \repeat semi 2 { fis4 a4 a4 b2 cis'8. cis'16 b4 b4 b4 a2 cis'8 cis'8 
   d'4. cis'8 d'4 e'2 e'8. e'16 d'4 d'4 a4 }
   \alternative { { fis4 d4 r4 } { fis4 d4 r4 } }
   d4 e4 fis4 fis'2 e'8 d'8 e'4 e'4 e'4 e'2 cis'4 d'4. cis'8 d'4 e'2
   e'8. e'16 a4 a4 e4 e2 cis'4 a4 a4 a4 g4 g4 b4 b4 b4 b4 a2
-  cis'8. cis'16 a4.~cis'8 d'8 d'8 d'2 d'8 d'8 d'4. d'8 cis'4
+  cis'8. cis'16 a4.()cis'8 d'8 d'8 d'2 d'8 d'8 d'4. d'8 cis'4
   a2 s4 
 }
 
 $staff2_voice_2 = \notes { 
   r4 
-  \repeat 2 { d4 d4 cis4 b,2 ais,8. ais,16 b,4 b,4 e4 a,2 a8 a8 
+  \repeat semi 2 { d4 d4 cis4 b,2 ais,8. ais,16 b,4 b,4 e4 a,2 a8 a8 
   d4. e8 fis8 g8 a2 g8. g16 fis4 fis4 a4 }
   \alternative { { fis4 d4 r4 } { fis4 d4 r4 } } 
   d4 d4 d4 d2 d8 d8 a4 a4 a4 a2 a,4 d4. e8 fis8 g8 a2 g8. g16 
   fis4 d4 e4 a,2 a4 d4 e4 fis4 g4 g4 fis4 e4 e8()fis8  g8()gis8 a2 
-  g8. g16 fis4.~a,8 d8 e8 fis2 b8 b8 a4. a8 a,4 d2 s4 
+  g8. g16 fis4.()a,8 d8 e8 fis2 b8 b8 a4. a8 a,4 d2 s4 
 }
 
 text = \lyrics
-\context LyricVoice { Oh4 __ \repeat 2 { }
-  \alternative 
-     { say. can you see,2 by8. the16 dawn's4 ear- ly light2 What8
+ {  Oh4 __ \repeat fold 2 { }
+  \alternative {
+     { say.4 can you | see,2 by8. the16 dawn's4 ear- ly light2 What8
     so8 proud-4. ly8 we4 hailed,2 At8. the16 twi-4 light's last gleam-
     ing. Whose8. broad16 }
 
-    \context LyricVoice = LVB
     { stripes4 and bright stars,2 through8. the16 per-4 il- ous fight,2
     O'er8 the8 ram-4. parts8 we4 watched,2 were8. so16 gal-4 lant- ly }
-  >
+  }
   stream-4 ing. And8. the16 rock-4 ets' red glare,2 the8 bombs8
   burst-4 ing in air,2 gave4 proof4. through8 the4 night2 that8.
   our16 flag4 was still there,2 Oh4 say, does that star- span-
@@ -95,8 +94,9 @@ global = \notes {
                        \notes \transpose c'' {\voiceone \$staff1_voice_1 } 
                        \notes \transpose c'' {\voicetwo \$staff1_voice_2 } 
                >
-               \context Lyrics = one \text
-               \context Staff=staffB < 
+               \context LyricVoice \text
+               \context Staff=staffB <
+               
                        \global
                        \clef bass;
                        \property Staff.voltaVisibility = "0"
@@ -112,11 +112,10 @@ global = \notes {
                        \GrandStaffContext
                        \accepts "Lyrics";
                }
-               \translator {
-                       \BarNumberingStaffContext
-               }
+%              castingalgorithm = \Wordwrap;
        }
+       \midi {}
 }
 
 
-\version "1.0.16";
+\version "1.0.18";
index 864cdc4392157d824299e40bfef112e4ae4ac468..0e41f5b2478d7d021133cd1ff744af3924d8afe8 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "1.0.16";
+\version "1.0.19";
 \score{
        \notes \transpose c'''{
                \stemup
index 1d0b4267f429e8c8108b817f32596084d72d1a66..7df84b510b767906951d2831ff03283ddadcf6bc 100644 (file)
@@ -121,4 +121,4 @@ xxx\break
        }
 }
 
-\version "1.0.16"; 
+\version "1.0.19"; 
index 09f6393cd2b87688a2ea5a98215fb777239e082b..c0e8e2b5670aab932a955ed14ad5891b22cd5f94 100644 (file)
@@ -31,4 +31,4 @@
 
 }}
 
-\version "1.0.16"; 
+\version "1.0.19"; 
index 8e49cd7e8643ca813863fac202ddbe6e5ec3588b..fd08429887372b53118301cc096082d33d132d7a 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "1.0.16";
+\version "1.0.19";
 
 onestaff = \context Staff = foo\notes  {
        \property Staff.instr = instr
index 4d993f2665d19c26677d77688473a60b801e8fe8..7b5cb08c97dd83e90260b2a685d704c4d6e64f8f 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.16";
+\version "1.0.19";
 
 \score{
        \notes\transpose c'{
index 570b34a4d8acad4f016c70e74832d401dfb16b74..660d86d902ae1e98735120343774485ff303c8cc 100644 (file)
@@ -30,4 +30,4 @@
        }
 }
 
-\version "1.0.16"; 
+\version "1.0.19"; 
index e22598d245d10ee3357254fb34b74a0d099d37da..ecaaab30c3a0b312ee1374857d0c4cb71e9a0cfe 100644 (file)
@@ -21,4 +21,4 @@
        }
 }
 
-\version "1.0.16"; 
+\version "1.0.19"; 
index a3cdba917a54e1f52c10df997ed1e4ed1cde3207..40f16d56344d0f2ee29dc63f7db10de0171c1ac6 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.16";
+\version "1.0.19";
 
 \score{
        \notes\transpose c''{
index 9816938c033646340fbf6aaa1ed742b102bce142..47ad0f5258b11e32e733a1b16252ae0bdb3e2c31 100644 (file)
@@ -6,7 +6,7 @@ copyright =      "PD";
 
 TestedFeatures =        "beams and beamflags";
 }
-\version "1.0.16";
+\version "1.0.19";
 
 \score{
        <
index 9023a39b7df6d0579268156615e5025c442eae22..93beafe9ae241c53b42354aa36b761a3a7216f6b 100644 (file)
@@ -5,7 +5,7 @@ TestedFeatures =         "This file tests Feta embedded slurs" +
         "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 shortlong = \notes{
        c4()c( c c  |
index a5b1b330c5644e3673a6025a78bb1b0746863289..443089d7f16252504c2bc2d5ac9906d49cef79dd 100644 (file)
@@ -22,4 +22,4 @@ inversions = \notes\transpose c''\chords{
        >
 }
 
-\version "1.0.16"; 
+\version "1.0.19"; 
index c50102f93bb6ab4369271e021b7650638486a4ad..b2ad9409ded55a1b33e12fde8da43d53564e6f5c 100644 (file)
@@ -41,4 +41,4 @@ tab = \notes\transpose c'''\chords{
 
 }
 
-\version "1.0.16"; 
+\version "1.0.19"; 
index 76dea540939468cf1777cda7255bec5ff8e83753..0ace585d5556ea90fbefb893bec81e792e0f0588 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.16";
+\version "1.0.19";
 
 %{
 Would this be acceptable/good enough/convenient for entry?
index 08c81439100cca63702af8d05c6008b884108044..2fb5476b47f19c034629292235f1f7f03d4be656 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.16";
+\version "1.0.19";
 
 \score {
        \notes{ 
index 89bb44d449d9200566470d08511d4f735ee36e75..ce736b98456bb20ac433c54540509321de013921 100644 (file)
@@ -5,7 +5,7 @@ enteredby =      "HWN,JCN";
 copyright =     "public domain";
 Tested =        "test the Collision resolution ";
 }
-\version "1.0.16";
+\version "1.0.19";
 
 twovoice = \context Staff \notes < 
        \context Voice=i { \stemdown c4 d e f g2~  g4 a [c8 d e f] c2| }
index 4fc3dbbf8bfb9bae39c381a8be3c6a0f3fbb5e32..1bf7fb703d9db66348e7a31839ef12ca36ad1544 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.16";
+\version "1.0.19";
 
 
 \score {
index f0b210ecbd905aa13be206ad69b36f9e7b6bc579..c3debaf4ebbe16eda32de77dcd523fb3e4218d7e 100644 (file)
@@ -7,7 +7,7 @@ TestedFeatures = "This file tests silly line shapes";
 
 \include "paper20.ly"
 
-\version "1.0.16";
+\version "1.0.19";
 
 oden = \lyrics{ 
        O8 |
index 797b3f7024373a2b961d11582fc70d6f8e441e60..bc799418d93c5509df3532ccf3e887cc1c399a0d 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.16";
+\version "1.0.19";
 
 \score{
        \notes{
index 19f3ade9905996a8865f97e4216017da6146ea11..44aa7cfc6c5c94cd93e1ea835b2353b54b99e530 100644 (file)
@@ -5,4 +5,4 @@
        >
 }
 
-\version "1.0.16"; 
+\version "1.0.19"; 
index 9c60a541352be203afc8aa0add1955ae39c5ea66..03b2e26d45d05dd67749211bb6ed5ba5b0842090 100644 (file)
@@ -42,4 +42,4 @@ extra-staff.ly:
 }
 
 
-\version "1.0.16"; 
+\version "1.0.19"; 
index 24f56d82efd6c5e01d8f8eaf399557f9828fe9fc..84aee9850a14e741215ccee6fdd007020f1abd22 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.16";
+\version "1.0.19";
 
 \score{
        \notes \relative c {
index 54c397c26b679799ff93f2b38c5205066cc3cd36..a1991223ca5483777f8916b7589076b85abfaaa2 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.16";
+\version "1.0.19";
 
 FontBody=      \notes\transpose c''{ 
                \bar "|:";
@@ -12,9 +12,9 @@ FontBody=     \notes\transpose c''{
                c4 g c' a' \bar ":|";
                a\ppp-\upbow a\pp-\downbow a\p^\turn a\mp^\fermata |
                a\mf_\fermata a\f-\stopped a\ff-\open a\fff^\trill|
-               a\fp-\reverseturn a4.\sf a4.\sfz |  a\fz % a\rf
+               a\fp-\reverseturn a4.\sf a4.\sfz |  a4\fz % a\rf
                [c8-\prall c-\mordent] [a'-\prallmordent a'-\prallprall]
-               [c-\upprall a'-\downprall] [a' c] |
+               [c8-\upprall a'8-\downprall] [a' c] |
                [c \< d e f] [as' ges' f' e']
                [cis' dis' c' des'] [cisis' disis' \! ceses' deses'] |
                \clef "bass";
index 48e6956caf1d2da3362d2427433f24ad24aa46eb..ad8610de6439e6f41f45cad623ac83d92df7356a 100644 (file)
@@ -7,7 +7,7 @@ description = "This file tests the Feta music font";
 % "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "font-body.ly"
 \score{
index 62fc3e0d1c01717088f916acf7b3b4b4b2502a35..afad636bdc6699f7aa2547915120010f5881e0d2 100644 (file)
@@ -7,7 +7,7 @@ description = "This file tests the Feta music font";
 % "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 \include "paper16.ly"
 \include "font-body.ly"
 
index b3bb7db4aad818804cea88a5d76dab1688847f55..abefe5b00d93ccb591e6225bbe6c671022ab895a 100644 (file)
@@ -17,5 +17,5 @@ TestedFeatures =
            gourlay_maxmeasures =5.;
        }
 }
-\version "1.0.16"; 
+\version "1.0.19"; 
 
index 23ffb2f685b607a7cf88c10f39781fccad76f29e..cbb749af48d03b316a8ecb7ad93fae376d5b475d 100644 (file)
@@ -4,7 +4,7 @@ copyright =      "PD";
 TestedFeatures =        "This file tests some nasty Gourlay spacings";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 %{
 
index 99421486de234e375d6631738cfa43f6d3edffb7..966da1b65f622dd954f900b757ae323153a1fc2b 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "1.0.16";
+\version "1.0.19";
 
 \score{
        <
index c60527d80eba1a40344780a7339f2939f20b0db9..ddbec394f6132f0712f2032b682536c21f8e7e42 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.16";
+\version "1.0.19";
 
 toeter_i = \notes\relative c <{
                \property Staff.instrument = "Toeters"
index 3bf893b9929e020b8a313c89164fe77f1600eaf0..2c2cbb43f4b7d476261119455e481b06eb973b06 100644 (file)
@@ -6,7 +6,7 @@
    /Mats B
 %}
 
-\version "1.0.16";
+\version "1.0.19";
 
 incipit = \notes\relative c'{
   <b1 fis' b d>
index 47d7eff5b0ecfa4889d018210041682e5c1f867a..4eff652fb66c36da7446308fe58943058f9e0c7c 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.16";
+\version "1.0.19";
 
 %{
 test key itemv breaking
index fb289ff63b2cc3f8a7576f5445b97e98bd04c0e5..d0aa3c607ae49b808d96186d401e28d5837b3b71 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.16";
+\version "1.0.19";
 \score{
        \notes\relative c'{
                [c16 \stemdown c'' \stemboth c,, d]
index 692115ee7ce779c01d62845140161c8a7aed272a..ad9848e6f097d9a5be41a22d23a2fde5ca70fb78 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.16";
+\version "1.0.19";
 
 global = \notes {
   s1 | \mark "A";
index edcd4f8092945a9b2200f97925cdb38cb02b6bdf..eafe9308b6bc84439b88bf505847282c15046c98 100644 (file)
@@ -11,5 +11,5 @@ bla = \notes {
        >
        \paper { Gourlay_maxmeaures = 2.; }
 }
-\version "1.0.16"; 
+\version "1.0.19"; 
 
index 4d42739c8d1536f1b530826510bec9f499bbc7e1..1e2e3195ab933c3db8a5ee1250aec888d757611f 100644 (file)
@@ -1,7 +1,7 @@
 
 \score { \notes { \time 3/4; \key cis; R2. R2.*5 }
        \paper {
-       \translator { \ScoreContext SkipBars = 1; }
+       \translator { \ScoreContext skipBars = 1; }
        linewidth = -1.;        
        }
 }
index e0f1d41d0c718e2baadd620b5ff61178d13177a3..6672b777bb3327e29f5adbdea4fed0fb7155beec 100644 (file)
@@ -1,10 +1,10 @@
-\version "1.0.16";
+\version "1.0.19";
 
 voice_one = \notes\transpose c''{  \stemup
        R1 * 2 | f'4-. r r2 | R1 * 3 |
        f'4-. r r2 | R1 * 3 |
        es'4-. r r2 | r1 |
-       \property Score.SkipBars = 1
+       \property Score.skipBars = 1
        g4-. r r2 | g4-. r r2 |
        R1 * 5 |
        r2 r4 g4-. |
@@ -15,7 +15,7 @@ voice_two = \notes
        R1 * 2 | f'4-. r r2 | R1 * 3 |
        f'4-. r r2 | R1 * 3 |
        es'4-. r r2 | r1 |
-       \property Score.SkipBars = 1
+       \property Score.skipBars = 1
        g4-. r r2 | g4-. r r2 |
        R1 * 5 |
        r2 r4 g4-. |
index df11fef63f19a6a6f1477c4dd621fe8fd1ee76d7..946b97b13eab453491d93c1aee068b051aae5e12 100644 (file)
@@ -40,4 +40,4 @@ c4 c2 c8  c16 c16  c1
        }
     }
 }
-\version "1.0.16"; 
+\version "1.0.19"; 
index 61afddc932101abee1f42f76d961b285547ca90f..18ce9944b473ba1f4ad96aa251ca206a3b925bd4 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.16";
+\version "1.0.19";
 
 \score{
        \notes \transpose c''{
index b440c6ff43583fb912b264e431b4d12d3602141a..be7b99479ce10d58e18abc81fec4e255adf91b9c 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.16";
+\version "1.0.19";
 
 m = \notes \relative c''{
 c1 | c2 c | c c | c c | c c | c c | c c | c c | 
index ace006c6d612ca43a6dc4c1335a16d4e248144c2..9ffb5c8e7598a0710b56591f499255776daa2162 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.16";
+\version "1.0.19";
 
 \score {
 
index cb1c8616be059ff10ad907155860198db0023141..96a82264ea026ccf45a5239c59d4422284eea9ea 100644 (file)
@@ -2,16 +2,16 @@
        <
                  \context Staff \notes\relative c'{ 
                          c d e f
-                         \repeat 2 { g a b c }
+                         \repeat semi 2 { g a b c }
                          \alternative { { c b a g } { f e d c } }
                  }
                  \context Lyrics \lyrics {
                          De eer- ste < { maat } { moet } >
-                         \repeat 2 { }
-                         \alternative 
+                         \repeat fold 2 { }
+                         \alternative {
                                  { en dan twee keer } 
                                  { een koe- plet _ } 
-                         > 
+                         }
                          en dan nog dit er ach- ter aan
                  }
        >
index 1b9d1e2a14e622a2e686dcb25f945422144b87a5..92b951c2ce37fc5714e8f3bd8baa11588a3fb922 100644 (file)
@@ -34,4 +34,4 @@ restsII = \context Staff \notes {
        }
 }      
 
-\version "1.0.16"; 
+\version "1.0.19"; 
index 5761183b7df7e5f5aeff0dc708ecb8594fd1bf01..cb5297585ace39a8058f302de04a294e5f9c7368 100644 (file)
@@ -1,7 +1,7 @@
 
 
 
-\version "1.0.16";
+\version "1.0.19";
 
 onestaff =     \context Staff = foo\notes  {
                \property Staff.instr = instr
index 44671d869794be1168eb72d60c0c803941c69640..c290a07d746a425920cff5aa8641306e16573fb0 100644 (file)
@@ -5,7 +5,7 @@ TestedFeatures =         "This file tests Feta embedded slurs" +
         "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 shortlong = \notes{
        c4()c( c c  |
index 8cd78c967f8601867f6506f26b942e31141a3c88..921dfbffe22f08d86945b571fbcdbc1815748d7e 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.16";
+\version "1.0.19";
 
 % bug
 % excentric slur can't handle this ...
index 420093a9a95743203d3f2a993885b081a80a541b..df6ac36c6953c48a3e5795f9f0fd2c37bbd6b707 100644 (file)
@@ -1,5 +1,5 @@
 % test damping
-\version "1.0.16";
+\version "1.0.19";
 
 \score{
        \notes\relative c'{
index 045f16626f8b817f5d4b3b5d731d6d45120af7a7..774855cacbba0b805e059687915a869b01dbc836 100644 (file)
@@ -38,4 +38,4 @@
        }
 }
 
-\version "1.0.16"; 
+\version "1.0.19"; 
index 88e3a44c352c369b90c646dc4da724d60aae7ebe..17174563fdc0f2e4a7f20260e38dd614cff9085c 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.16";
+\version "1.0.19";
 
 % urg, the direction of the slur gets swapped!
 \score{
index d4673750a5816b72bc4b9ad1eb1bd21bdec3adae..cf98f6088c1be8ff1ef7912a66c270fea07bd0c2 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "1.0.16";
+\version "1.0.19";
 
 \score{
        \notes\transpose c'{
index 5c6d15bb4b14b4b3c13a8e99099ce2ccb53465c3..6d1474439bf1161ff8d58580375bf0bdb158123a 100644 (file)
@@ -35,4 +35,4 @@ source = "Petits Preludes et Fugues.  Urtext. Editions Henry Lemoine, Paris.";
 }
 }
 
-\version "1.0.16"; 
+\version "1.0.19"; 
index 5161bef5d237d72dc944a248718a70d0a7ae0091..a1f7a086138ca6f3d897cf00437e1606ea940ba6 100644 (file)
@@ -6,7 +6,7 @@ copyright =      "public domain";
 TestedFeatures =        "This file tests various spacings";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 multipart = \notes \relative c'{ 
     \context StaffGroup < 
index b67017bc6f0c2d3cb19382e8a83db58a7aae35b7..4e917d1434f4409c834aceaaed433a006df54275 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "1.0.16";
+\version "1.0.19";
 nt = \notes { c1 \break c1 c1 } 
 stuff = \notes \relative c'' <
   \context Staff = stone  { \nt }
index d6e8fb863e07026a211dac7469a4e4695ce9424a..16d9f787f91231333d0689a8d777a42ffea06177 100644 (file)
@@ -1,6 +1,6 @@
 
        
-\version "1.0.16";
+\version "1.0.19";
 
 \score {
 
index d0c57aa4b60fb27cdd6238896e9a8eeaee01cf36..3ff8c6bbf035c9b2aef4a6e10b56fce1ea98de78 100644 (file)
@@ -18,4 +18,4 @@
 }
 
 
-\version "1.0.16"; 
+\version "1.0.19"; 
diff --git a/input/test/staff-size.fly b/input/test/staff-size.fly
deleted file mode 100644 (file)
index 08c1bb8..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-< \context Staff = VA {
-       \property Staff.staffLineLeading = "4" \property Staff.fontsize = "-2"
-       \property Voice . dynamicDir = \up \stemdown
-\key gis;
-       c8 d [e f g a] b c \ff
-  }
-
-\context Staff = VB {  \property Voice . dynamicDir = \down c,,4 \ff} 
-
->
-
-\version "1.0.16"; 
diff --git a/input/test/staff-size.ly b/input/test/staff-size.ly
new file mode 100644 (file)
index 0000000..b631184
--- /dev/null
@@ -0,0 +1,17 @@
+\score {
+  \notes \relative c' < \context Voice {
+       \property Staff.staffLineLeading = "4"
+       \property Staff.fontSize = "-1"
+       \property Voice.fontSize = "-1" 
+       
+       \property Voice . dynamicDir = \up \stemdown
+%\key gis;
+       c8 d [e f g a] b c \ff
+  }
+
+\context Staff = VB {  \property Voice . dynamicDir = \down c,,4 \ff c c c  }
+
+>
+\paper { linewidth = -1.; }
+}
+\version "1.0.19"; 
index 22b42ba0045d2f05bab1654229c8ec685a175bbf..fe722bde6af950dbdeb0bc53b4b963f0e97ba45a 100644 (file)
@@ -8,7 +8,7 @@ of beams";
        
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 beamintervals = \notes{
                \time 7/4;
index 3a6941eeea5252238f5ea8ce71353bebea79eb55..2c5e64e254c6cc8fe6ed7b36627c72605929e286 100644 (file)
@@ -7,7 +7,7 @@ enteredby =     "Maarten Storm";
 instrument=    "Violoncello";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 % this is an example of extreme dynamics
 
index e55ef647a5b6ac5b988beaeb27d67f588bf3e41d..4ff7dbad308ed8d95785d4b3c545e930142674f4 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.16";
+\version "1.0.19";
 
 $somewhat_long = \lyrics{
        \property Lyrics . textstyle = "roman" 
index f4baaeaf3c6d4e6d570750ef11640c8b9b294184..e44462f764e4601dff0ad1e060069acea35404eb 100644 (file)
@@ -7,7 +7,7 @@
 % the thumb-script is used in cello music to indicate a note that should
 % be played with your thumb. 
 
-\version "1.0.16";
+\version "1.0.19";
 
 \score { \notes \relative c'' {
                [<a8_\thumb a'8-3(> <)b_\thumb b'-3>
index 35f2ede20838c37789190fc2df45e1605212272d..49876a236ca0215f6d280d338ccfb3d689ae4aba 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.16";
+\version "1.0.19";
 
 
 %  middle tie is wrong
index aa965b7706de58ef63ba3f2a7f1a686f3568d692..322bd528377c4a95349682d36c5be9a969385907 100644 (file)
@@ -1,4 +1,4 @@
-\version "1.0.16";
+\version "1.0.19";
 
 tie = \notes\transpose c''{
 
index 6d5317899065e846a38800c21e472c2d35b61238..d64234015d4c5e3ca2125a399399e0bed15e27d0 100644 (file)
@@ -10,7 +10,7 @@ source =      "urtext";
 instrument=    "Instrument";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 \score{
        \notes
index 142eb644924ebf2f50e303741eea531d29dfe032..548dec1260f99e2d154119f3eb7cb142c21b9724 100644 (file)
@@ -22,7 +22,7 @@ copyright =    "public domain";
 }
 
 
-\version "1.0.16";
+\version "1.0.19";
 
 vOne = \notes \relative c''{
         \clef"violin";
index 3a8f9d0e168eb23be7344becd06447dcb3cc86cb..f0f778ac7e68a92d9193494c4ac34ff12c52f738 100644 (file)
@@ -8,4 +8,4 @@
                 }
 }
 
-\version "1.0.16"; 
+\version "1.0.19"; 
index eba99a194a40ea8de7d2a9f9750ec6fab32ecd06..259013260f9a1b09763472246bddd853041abd5d 100644 (file)
@@ -8,4 +8,4 @@
 {\voicetwo c}>
 
 
-\version "1.0.16"; 
+\version "1.0.19"; 
index cb2664d47b3672f743fe439dfab1d1592ce65430..305dac6480c3f0cfcb1d92fa403644c8af67ac03 100644 (file)
@@ -1,5 +1,5 @@
 
-\version "1.0.16";
+\version "1.0.19";
 
 \score {
 \notes <
index 49a22a946c01fd2d7e88b006fc8761f7be31bdfb..6b42433d09f121f0b6b2196bb08dda4cd6c50d63 100644 (file)
@@ -15,4 +15,4 @@
        }
 }
 
-\version "1.0.16"; 
+\version "1.0.19"; 
index 64c4d07a832b145a9fa2d4a17e52eed77f9a3a51..c36e11ffaecbb449a987401c9bb9f0ed84aa3432 100644 (file)
@@ -21,4 +21,4 @@ What's supposed to be demonstrated here?
        }
 }
 
-\version "1.0.16"; 
+\version "1.0.19"; 
index c6cf0f962eea7891d7187d0e8d4168a6f26e944a..08112efc1263a0369a00b19db01e0def9b22ab8c 100644 (file)
@@ -5,7 +5,7 @@ TestedFeatures =         "This file tests trills" +
         "(Feta definitively is not an abbreviation of Font-En-TjA)";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 \score{
        \notes{ 
index 4c605f54ac446712121c34f66e6fd550da3171f8..802246a3e6515e126c8241e1ad42ae3232e81920 100644 (file)
@@ -11,7 +11,7 @@ copyright =    "public domain";
 Tested Features                lyrics and chords
 %}
 
-\version "1.0.16";
+\version "1.0.19";
 
 melodie = \notes\relative c'' {
         \clef "violin";
index 069e82e830842711516537018b3cfa38e5a2453f..3ab846f61c9b904c0a944e449110ea8936eef717 100644 (file)
@@ -19,7 +19,7 @@ traditional song in various languages.
 Tested Features: lyrics, interleaving lyrics and staffs, repeats
 %}
 
-\version "1.0.16";
+\version "1.0.18";
 
 melody = \notes \relative c'' {
        \clef violin;
@@ -117,13 +117,13 @@ textiii = \lyrics{
 
 \score{
        <
-               \context Staff=i \repeat 2 < \global\melody >
-               \context Lyrics=top \repeat 2 {} \alternative < \tekst \texte >
+               \context Staff=i \repeat semi 2 < \global\melody >
+               \context Lyrics=top \context LyricVoice \repeat semi 2 {} \alternative < \tekst \texte >
                \context GrandStaff <
-                       \context Staff=ii \repeat 2 < \global\melody >
-                       \context Staff=iii \repeat 2 < \global\accompany >
+                       \context Staff=ii \repeat semi 2 < \global\melody >
+                       \context Staff=iii \repeat semi 2 < \global\accompany >
                >
-               \context Lyrics=bottom \repeat 3 {} 
+               \context Lyrics =bottom \context LyricVoice \repeat semi 3 {} 
                        \alternative < \texti \textii \textiii >
        >
        \paper{
index e3f122d5ce760b119009acf7e73a7b9483ff4011..fbece6c65e25db177393b9d04ad4d15658769809 100644 (file)
@@ -11,7 +11,6 @@
 #include <assert.h>
 
 #include "proto.hh"
-#include "plist.hh"
 #include "string.hh"
 #include "source-file.hh"
 #include "binary-source-file.hh"
index 2c27bf17f156d82019b900c6929fbdd065eff375..bd9435fd829167c269d192a2d7f7386c974e3d43 100644 (file)
@@ -5,11 +5,14 @@
 
   (c)  1997--1999 Jan Nieuwenhuizen <janneke@gnu.org>
            Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+
+  UGH. Duration is broken.
 */
 
 #include <assert.h>
+
 #include "proto.hh"
-#include "plist.hh"
 #include "string.hh"
 #include "source-file.hh"
 #include "source.hh"
index 4a1a9a1c300ea92754467772387cdb80e6302569..e6ea86aeb854a35c38bb2079d4e8b618b9c405b2 100644 (file)
@@ -13,7 +13,6 @@
 
 #include "string.hh"
 #include "proto.hh"
-#include "plist.hh"
 #include "warn.hh"
 #include "thank-you-cygnus.hh"
 #include "source-file.hh"
index 4b58b02be4b9c3857eead02fa81a0719cac17c47..2313f13a446aaa16e82de829f28d350f4acbc82f 100644 (file)
@@ -1,3 +1,5 @@
+#if 0
+
 /*
   abbreviation-beam-engraver.cc -- implement Abbreviation_beam_engraver
 
@@ -32,7 +34,7 @@ Abbreviation_beam_engraver::do_try_music (Music*r)
   if (!b)
     return false;
 
-  if (bool (abeam_p_) == bool (b->spantype_ == START))
+  if (bool (abeam_p_) == bool (b->span_dir_ == START))
     return false;
 
   Direction d = (!abeam_p_) ? LEFT : RIGHT;
@@ -93,3 +95,5 @@ Abbreviation_beam_engraver::acknowledge_element (Score_element_info i)
 
   abeam_p_->add_stem (s);
 }
+
+#endif
index 751e7ab15a8781f40e9827bfbb3020a83d9e320d..52e68e6a61618eeba67d4aa8353a2737604b2b0a 100644 (file)
@@ -1,4 +1,4 @@
-#include "pointer.hh"
+
 #include "main.hh"
 #include "all-fonts.hh"
 #include "debug.hh"
@@ -8,14 +8,11 @@
 
 const char * default_font_sz_ = "cmr10";
 
-
-
 All_font_metrics::All_font_metrics (String path)
 {
   search_path_.parse_path (path);
 }
 
-
 Adobe_font_metric *
 All_font_metrics::find_afm (String name)
 {
index c38fd2c5313edc1d1e1409cdb33867e11c67e9fe..3a74ab95cbcecab75d9b6a3256642c5b2cd58907 100644 (file)
@@ -186,10 +186,8 @@ Auto_beam_engraver::create_beam_p ()
 void
 Auto_beam_engraver::end_beam ()
 {
-  DOUT << String ("ending autobeam at: ") + now_mom ().str () + "\n";
   if (stem_l_arr_p_->size () < 2)
     {
-      DOUT << "junking autombeam: less than two stems\n";
       junk_beam ();
     }
   else
@@ -236,7 +234,6 @@ Auto_beam_engraver::do_removal_processing ()
   typeset_beam ();
   if (stem_l_arr_p_ && stem_l_arr_p_->size ())
     {
-      DOUT << "Unfinished beam\n";
       junk_beam ();
     }
 }
@@ -248,7 +245,6 @@ Auto_beam_engraver::acknowledge_element (Score_element_info info)
     {
       if (stem_l_arr_p_)
        {
-         DOUT << "junking autobeam: beam encountered\n";
          junk_beam ();
        }
     }
@@ -256,7 +252,6 @@ Auto_beam_engraver::acknowledge_element (Score_element_info info)
     {
       if (stem_l_arr_p_)
        {
-         DOUT << "junking autobeam: bar encountered\n";
          junk_beam ();
        }
     }
@@ -269,7 +264,6 @@ Auto_beam_engraver::acknowledge_element (Score_element_info info)
 
       if (dynamic_cast<Rest *> (info.elem_l_))
        {
-         DOUT << "junking autobeam: rest encountered\n";
          end_beam ();
          return;
        }
@@ -280,7 +274,6 @@ Auto_beam_engraver::acknowledge_element (Score_element_info info)
 
       if (stem_l->beam_l_)
        {
-         DOUT << "junking autobeam: beamed stem encountered\n";
          junk_beam ();
          return;
        }
@@ -292,7 +285,6 @@ Auto_beam_engraver::acknowledge_element (Score_element_info info)
        */
       if (rhythmic_req->duration_.durlog_i_ <= 2)
        {
-         DOUT << "ending autobeam: stem doesn't fit in beam\n";
          end_beam ();
          return;
        }
@@ -300,7 +292,6 @@ Auto_beam_engraver::acknowledge_element (Score_element_info info)
       Moment start = get_staff_info().time_C_->whole_in_measure_;
       if (!grouping_p_->child_fit_b (start))
        {
-         DOUT << "ending autobeam: stem doesn't fit in group\n";
          end_beam ();
        }
       else
@@ -350,13 +341,10 @@ Auto_beam_engraver::process_acknowledged ()
       if ((extend_mom_ < now)
          || ((extend_mom_ == now) && (last_add_mom_ != now )))
        {
-         DOUT << String ("junking autobeam: no stem added since: ")
-           + last_add_mom_.str () + "\n";
          end_beam ();
        }
       else if (!stem_l_arr_p_->size ())
        {
-         DOUT << "junking started autobeam: no stems\n";
          junk_beam ();
        }
     }
index 434f5bb88da82269816579573415ab56cbce8f23..e38ad23499bbc842f100535a1ad7105752756e7a 100644 (file)
@@ -14,7 +14,6 @@
 #include "command-request.hh"
 #include "time-description.hh"
 #include "engraver-group.hh"
-#include "repeated-music.hh"
 
 Bar_engraver::Bar_engraver()
 {
index 4260dfc44c72a5adf20bfb63ec666665757c5b53..d59d72c920adc1a1ff1aebbf8ef6ba4545d802f7 100644 (file)
@@ -28,9 +28,12 @@ Beam_engraver::Beam_engraver ()
 bool
 Beam_engraver::do_try_music (Music *m)
 {
-  if (Beam_req * c = dynamic_cast<Beam_req*>(m))
+  if (Span_req * c = dynamic_cast<Span_req*>(m))
     {
-      Direction d =c->spantype_;
+      if (c->span_type_str_ != "beam")
+       return false;
+      
+      Direction d =c->span_dir_;
 
       if (d == STOP && !beam_p_)
        {
index 84ff56f9f7f86c33a9859eb14d2a22986610c04b..335c92904251d2de49e8a0dbf46790dda6e176cb 100644 (file)
@@ -39,11 +39,6 @@ Bar_req::do_equal_b (Request*r) const
   return b && type_str_ == b->type_str_;
 }
 
-
-
-
-
-
 void
 Bar_req::do_print() const
 {
@@ -52,7 +47,6 @@ Bar_req::do_print() const
 #endif
 }
 
-
 Bar_req::Bar_req (String s)
 {
   type_str_ = s;
@@ -71,8 +65,6 @@ Partial_measure_req::do_equal_b (Request* r) const
   return p&& p->length_mom_ == length_mom_;
 }
 
-
-
 bool
 Barcheck_req::do_equal_b (Request*r) const
 {
index e2188d4eb7e3c0cce8c5a0067addb9d178f7d923..b5d5d37906e97f6ecf75605916f526c94d1668ff 100644 (file)
@@ -30,8 +30,8 @@ class Dynamic_engraver : public Engraver
   
   Crescendo * to_end_cresc_p_;
   Crescendo * cresc_p_;
-  Span_dynamic_req * cresc_req_l_;
-  Array<Dynamic_req*> dynamic_req_l_arr_;
+  Span_req * cresc_req_l_;
+  Array<Request*> dynamic_req_l_arr_;
   void  typeset_all ();
 public:
   VIRTUAL_COPY_CONS(Translator);
@@ -64,27 +64,41 @@ Dynamic_engraver::do_post_move_processing()
 }
 
 bool
-Dynamic_engraver::do_try_music (Music * r)
+Dynamic_engraver::do_try_music (Music * m)
 {
-  if(Dynamic_req * d = dynamic_cast <Dynamic_req *> (r))
+  Request * r = dynamic_cast<Request*> (m);
+
+  if(Text_script_req * d = dynamic_cast <Text_script_req *> (r))
     {
-      for (int i=0; i < dynamic_req_l_arr_.size (); i++)
-       if (d->equal_b (dynamic_req_l_arr_[i]))
-         return true;
-      
-      dynamic_req_l_arr_.push (d);
-      return true;
+      if (d->style_str_ != "dynamic")
+       return false;
+    }
+  else if (Span_req * s =  dynamic_cast <Span_req*> (r))
+    {
+      if (s-> span_type_str_ != "crescendo"
+         && s->span_type_str_ != "decrescendo")
+       return false;
     }
-  return false;
+  else
+    return false;
+  
+  for (int i=0; i < dynamic_req_l_arr_.size (); i++)
+    if (r->equal_b (dynamic_req_l_arr_[i]))
+      return true;
+  
+  dynamic_req_l_arr_.push (r);
+  return true;
 }
+
+
 void
 Dynamic_engraver::do_process_requests()
 {
   Crescendo*  new_cresc_p=0;
   for (int i=0; i < dynamic_req_l_arr_.size(); i++)
     {
-      Dynamic_req *dreq_l = dynamic_req_l_arr_[i];
-      if (Absolute_dynamic_req *absd = dynamic_cast<Absolute_dynamic_req *> (dreq_l))
+      if (Text_script_req *absd =
+         dynamic_cast<Text_script_req *> ( dynamic_req_l_arr_[i]))
        {
          if (text_p_)
            {
@@ -92,7 +106,7 @@ Dynamic_engraver::do_process_requests()
              continue;
            }
          
-         String loud = absd->loudness_str_;
+         String loud = absd->text_str_;
 
          text_p_ = new G_text_item;
          text_p_->text_str_ =  loud; // ugh
@@ -115,13 +129,13 @@ Dynamic_engraver::do_process_requests()
            }
 
 
-         announce_element (Score_element_info (text_p_, dreq_l));
-         announce_element (Score_element_info (staff_side_p_, dreq_l));
+         announce_element (Score_element_info (text_p_, absd));
+         announce_element (Score_element_info (staff_side_p_, absd));
        }
-      else if (Span_dynamic_req *span_l
-              = dynamic_cast <Span_dynamic_req *> (dreq_l))
+      else if (Span_req *span_l
+              = dynamic_cast <Span_req *> (dynamic_req_l_arr_[i]))
        {
-         if (span_l->spantype_ == STOP)
+         if (span_l->span_dir_ == STOP)
            {
              if (!cresc_p_)
                {
@@ -140,12 +154,12 @@ Dynamic_engraver::do_process_requests()
                  
                }
            }
-         else if (span_l->spantype_ == START)
+         else if (span_l->span_dir_ == START)
            {
              cresc_req_l_ = span_l;
              assert (!new_cresc_p);
              new_cresc_p  = new Crescendo;
-             new_cresc_p->grow_dir_ = span_l->dynamic_dir_;
+             new_cresc_p->grow_dir_ = (span_l->span_type_str_ == "crescendo")  ? BIGGER : SMALLER;
              announce_element (Score_element_info (new_cresc_p, span_l));
            }
        }
index 9730f30dd40f6b6397b76003ac7dda4d23b7e80f..0edf7e59015b150ca8bf1aa062eed1a94c329a22 100644 (file)
@@ -19,7 +19,7 @@ Font_size_engraver::Font_size_engraver ()
 void
 Font_size_engraver::do_process_requests ()
 {
-  Scalar s (get_property ("fontsize", 0));
+  Scalar s (get_property ("fontSize", 0));
   
   if (s.length_i ()  && s.isnum_b ())
     {
index 69d29d6e59851b4254007fe345751cb6a0d5411e..292977680fdc2602bbf87a8f16e9d9ad1de66020 100644 (file)
 #include "drul-array.hh"
 
 class Beam_engraver : public Engraver {
-  Drul_array<Beam_req*> reqs_drul_;
+  Drul_array<Span_req*> reqs_drul_;
 
   Beam *finished_beam_p_;
   Beam *beam_p_;
-  Beam_req * prev_start_req_;
+  Span_req * prev_start_req_;
   Rhythmic_grouping*grouping_p_;
   Rhythmic_grouping*finished_grouping_p_;
   
index 63f8c11135f940ef63dbbc3d761e367c92ce847f..9e065963ce9a4542cd2f2fff6237319bf6697503 100644 (file)
@@ -162,11 +162,5 @@ protected:
   VIRTUAL_COPY_CONS(Music);
 };
 
-class Bracket_req :  public Span_req {
-
-public:
-  VIRTUAL_COPY_CONS(Music);
-};
-
 
 #endif // COMMANDREQUEST_HH
diff --git a/lily/include/folded-repeat-iterator.hh b/lily/include/folded-repeat-iterator.hh
new file mode 100644 (file)
index 0000000..d9215a9
--- /dev/null
@@ -0,0 +1,41 @@
+/*   
+  folded-repeat-iterator.hh -- declare Folded_repeat_iterator
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#ifndef FOLDED_REPEAT_ITERATOR_HH
+#define FOLDED_REPEAT_ITERATOR_HH
+
+#include "music-iterator.hh"
+
+/**
+   Iterate through a repeated section: first do the body, then
+   all alternatives in parallel.
+ */
+class Folded_repeat_iterator : public Music_iterator
+{
+  Music_iterator * main_iter_p_;
+  Music_iterator * alternative_iter_p_;
+  int count_;
+  Moment main_length_mom_;
+public:
+  Folded_repeat_iterator ();
+  ~Folded_repeat_iterator ();
+  
+  virtual void construct_children ();
+  virtual Moment next_moment () const;
+  virtual bool ok () const;
+
+protected:
+  void enter_alternative ();
+  void leave_body ();
+  
+  virtual void do_print () const;
+  virtual void do_process_and_next (Moment);
+};
+#endif /* FOLDED_REPEAT_ITERATOR_HH */
+
index 37d9bce72b3acb2f569ba3eed281a1bd57963bbc..af50e44ca25296b7b6ca9d28db4ba4190c1378ba 100644 (file)
@@ -164,6 +164,9 @@ struct Note_req;
 struct Note_head;
 struct Note_head_engraver;
 struct Notename_table;
+struct New_repeated_music;
+struct Unfolded_repeat_iterator;
+struct Folded_repeat_iterator;
 struct Offset;
 struct Paper_column;
 struct Paper_def;
index 01fe44b47aca8105890e90c06341923bccfff861..16459716301478170d5620eaa0a749956262922e 100644 (file)
@@ -42,5 +42,6 @@ extern String default_outname_suffix_global;
 extern int default_count_global;
 extern All_font_metrics *all_fonts_global_p;
 
-
+class ostream;
+void print_mudela_versions (ostream &os);
 #endif
index 7980affacf0649aaec7348748df51d9331935810..c6a8e9a7d8fd1e9efbdb8ea38c9e06148179b9c4 100644 (file)
@@ -29,6 +29,8 @@ class Music_iterator {
 
 protected:
   Music const * music_l_;
+
+  /// ugh. JUNKME
   bool first_b_;
 
   /**
@@ -46,7 +48,6 @@ protected:
     Get an iterator for MUS, inheriting the translation unit from THIS.
    */
   Music_iterator* get_iterator_p (Music const*mus) const;
-  void set_translator (Translator_group*);
 
   /** Do the actual reporting.  This should be overriden in derived
     classes.  It is called by #process_and_next#, the public interface 
@@ -60,11 +61,13 @@ public:
    */
   Translator_group*report_to_l() const;
 
+  void set_translator (Translator_group*);
   
   /** Get an iterator matching the type of MUS, and use TRANS to find
     an accompanying translation unit
    */
-  static Music_iterator* static_get_iterator_p (Music const* mus,Translator_group* trans);
+  static Music_iterator* static_get_iterator_p (Music const* mus);
+  void init_translator (Music const *, Translator_group *); 
 
   Music_iterator();
     
index ce72ec7a9fc106f8aa88d213a9750528a01f020f..f1de4e7f39347582b4a1cafbd0ce56a55f476541 100644 (file)
@@ -1,5 +1,6 @@
 /*
-  music-list.hh -- declare Music_sequence, Simultaneous_music and Sequential_music
+  music-list.hh -- declare Music_sequence,
+  Simultaneous_music and Sequential_music
 
   source file of the GNU LilyPond music typesetter
 
@@ -41,10 +42,10 @@ public:
   virtual void compress (Moment);
   void add_music (Music *music_p);
 
-
   Moment cumulative_length () const;
   Moment maximum_length () const;
 protected:
+  virtual Musical_pitch to_relative_octave (Musical_pitch);
   virtual void do_print() const;
 };
 
@@ -83,10 +84,8 @@ public:
 class Sequential_music : public Music_sequence
 {
 public:
-  
   VIRTUAL_COPY_CONS(Music);
 
-  virtual Musical_pitch to_relative_octave (Musical_pitch);
   Sequential_music(Music_list*);
   virtual Moment length_mom () const;
 };
index b4950a7971d4a7224df78a0f351a5fbbdbabe8cd..a8f51ab6e8e11ffa4f955ddf53a6812fa617e766 100644 (file)
@@ -24,7 +24,6 @@ public:
   Duration duration_;
   virtual void do_print () const;
 
-
   bool do_equal_b (Request*) const;
   void compress (Moment);
   virtual Moment length_mom () const;
@@ -129,68 +128,12 @@ public:
 class Multi_measure_rest_req : public Rhythmic_req  {
 public:
   VIRTUAL_COPY_CONS(Music);
-
-};
-
-
-/** 
- Start / stop an abbreviation beam at this note. 
- */
-class Abbreviation_beam_req : public Span_req  {
-public:
-  VIRTUAL_COPY_CONS(Abbreviation_beam_req);
-
-  Abbreviation_beam_req ();
-
-  int type_i_;
-};
-
-
-
-/// a slur
-class Slur_req  : public Span_req  {
-public:
-  VIRTUAL_COPY_CONS(Music);
-
 };
 
 /// an extender line
 class Extender_req : public Request  {
 public:
   VIRTUAL_COPY_CONS(Music);
-
-};
-
-
-class Dynamic_req  : public virtual Request  {
-public:
-  VIRTUAL_COPY_CONS(Music);
-};
-/*
-   merge with Articulation_req? 
- */
-class Absolute_dynamic_req  : public Dynamic_req  {
-public:
-  String loudness_str_;
-  Absolute_dynamic_req();
-
-protected:
-  virtual void do_print () const;
-  virtual bool do_equal_b (Request*) const;
-  VIRTUAL_COPY_CONS(Music);
-};
-
-class Span_dynamic_req  : public Dynamic_req, public Span_req  {
-public:
-
-  /// Grow or shrink the volume: 1=cresc, -1 = decresc 
-  Direction dynamic_dir_;
-
-  Span_dynamic_req();
-protected:
-  virtual bool do_equal_b (Request*) const;
-  virtual void do_print () const;
-  VIRTUAL_COPY_CONS(Music);
 };
 
 #endif // MUSICALREQUESTS_HH
index 30a5076340009cd889b1b354c34121ff48acaa21..bc44ca390d032b4a4cbc4756bc2f2b3d091977da 100644 (file)
 
 #include "music.hh"
 
+
+/**
+   Musical repeats.
+
+   A repeat, when played has the form of BODY A BODY B BODY C.
+
+   In this examples, the list {A B C} is put in ALTERNATIVES_P_.  BODY
+   is put in REPEAT_BODY_P_.  Either the body or the alternative may
+   be omitted.
+
+   There are three modes of representing this  music:
+
+   BODY A
+        B
+       C
+
+   is called "folded". Mostly used for lyrics.
+
+   
+   BODY A B C
+
+   is called "semi" folded.  This is common notation
+
+   BODY A BODY B BODY C
+
+   is called unfolded.  Useful for MIDI.
+
+*/
 class New_repeated_music : public Music
 {
 public:
-  bool unfold_b_;
+  bool fold_b_;
+  /// if FOLD_B_ is false, semifold this.
+  bool semi_fold_b_;
+
+  /// how often do we repeat?
   int repeats_i_;
 
-  Music * repeat_begin_p_;
+  Music * repeat_body_p_;
   Music_sequence * alternatives_p_;
 
   virtual Musical_pitch to_relative_octave (Musical_pitch);
@@ -26,6 +58,7 @@ public:
   /// The duration of this piece of music
   virtual Moment length_mom () const;
 
+  Moment alternatives_length_mom () const;
 
   void print() const;
   /// Transpose, with the interval central C to #p#
@@ -35,12 +68,11 @@ public:
   virtual void compress (Moment factor);
   VIRTUAL_COPY_CONS(Music);
 
-  New_repeated_music ();
+  New_repeated_music (Music*, int , Music_sequence*);
   New_repeated_music (New_repeated_music const&);
   ~New_repeated_music ();
 protected:
   virtual void do_print() const;
-
 };
 
 
index 194365af898e618a523a77978f966352bcf4a5f4..837804367b6d05a584d7802de2ab0e4198b49c53 100644 (file)
@@ -9,11 +9,10 @@
 #define NOTE_PERFORMER_HH
 
 #include "performer.hh"
-#include "list.hh"
 
 /**
+Convert reqs to audio notes.
 */
-
 class Note_performer : public Performer {
 public:
   VIRTUAL_COPY_CONS(Translator);
@@ -23,7 +22,6 @@ public:
 
 protected:
   virtual void do_process_requests();
-
   virtual bool do_try_music (Music *req_l) ;
   virtual void do_print() const;
 
index b15519758ebb7c6e6f08cf9bb4496ac3ecedad06..c5bcd04f81ab483b76181451bb971d8ee0cf164c 100644 (file)
@@ -17,7 +17,7 @@
 class Repeat_engraver : public Engraver 
 {
 public:
-  Repeat_engraver ();
+
   VIRTUAL_COPY_CONS(Translator);
   
 protected:
@@ -26,12 +26,11 @@ protected:
   virtual bool do_try_music (Music *req_l);
   virtual void do_process_requests();
   virtual void do_pre_move_processing();
-  virtual void do_post_move_processing();
 
 private:
-  Link_array<Repeated_music> repeated_music_arr_;
+  Link_array<New_repeated_music> repeated_music_arr_;
   Link_array<Music> alternative_music_arr_;
-  //  Link_array<Bar> bar_p_arr_;
+
   Array<bool> bar_b_arr_;
   Link_array<Volta_spanner> volta_p_arr_;
   Array<Moment> stop_mom_arr_;
diff --git a/lily/include/repeated-music-iterator.hh b/lily/include/repeated-music-iterator.hh
deleted file mode 100644 (file)
index 7bbb8d0..0000000
+++ /dev/null
@@ -1,39 +0,0 @@
-/*   
-  repeated-music-iterator.hh -- declare Repeated_music_iterator
-  
-  source file of the GNU LilyPond music typesetter
-  
-  (c) 1998--1999 Jan Nieuwenhuizen <janneke@gnu.org>
-  
- */
-
-#ifndef REPEATED_MUSIC_ITERATOR_HH
-#define REPEATED_MUSIC_ITERATOR_HH
-
-#include "music-list-iterator.hh"
-
-class Repeated_music_iterator : public Music_list_iterator
-{
-public:
-  Repeated_music_iterator ();
-  virtual ~Repeated_music_iterator ();
-
-  virtual void construct_children ();
-  virtual Moment next_moment () const;
-  virtual bool ok () const;
-
-protected:
-  virtual void do_print () const;
-  virtual void do_process_and_next (Moment);
-
-private:
-  void start_next_element ();
-
-  int unfold_i_;
-  Moment here_mom_;
-  Music_iterator* repeat_iter_p_;
-  Music_list_iterator* alternative_iter_p_;
-};
-
-#endif /* REPEATED_MUSIC_ITERATOR_HH */
-
diff --git a/lily/include/repeated-music.hh b/lily/include/repeated-music.hh
deleted file mode 100644 (file)
index 1b85706..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*   
-  repeated-music.hh -- declare Repeated_music
-  
-  source file of the GNU LilyPond music typesetter
-  
-  (c) 1998--1999 Jan Nieuwenhuizen <janneke@gnu.org>
-  
- */
-
-#ifndef REPEATED_MUSIC_HH
-#define REPEATED_MUSIC_HH
-
-#include "music-list.hh"
-
-/**
-   Repeats and voltas
- */
-class Repeated_music : public Music
-{
-public:
-  int repeats_i_;
-  bool unfold_b_;
-  Music* repeat_p_;
-  /*
-    UGH FIXME: this should be:
-
-    Music_list  * alternative_p_;
-   */
-  Music_sequence* alternative_p_;
-
-  Repeated_music (Music*, int n, Music_sequence*);
-  Repeated_music (Repeated_music const& s);
-  virtual ~Repeated_music ();
-  
-  virtual void do_print () const;
-  virtual void transpose (Musical_pitch p);
-  virtual Moment length_mom () const;
-  virtual Musical_pitch to_relative_octave (Musical_pitch p);
-  VIRTUAL_COPY_CONS(Music);
-};
-
-#endif /* REPEATED_MUSIC_HH */
-
index 72134e8c334916475f80cb8083e2d3afb082cd2e..0c47398e5e1b9cfdaca21d23121e1fb8d5830e25 100644 (file)
@@ -43,6 +43,7 @@ public:
   VIRTUAL_COPY_CONS(Music);
 };
 
+#if 0
 /** Put a script above or below this ``note'' or bar. eg upbow, downbow. Why
   a request? These symbols may conflict with slurs and brackets, so
   this also a request */
@@ -59,7 +60,7 @@ public:
   ~Script_req();
   Script_req (Script_req const&);
 };
-
+#endif
 
 /**
   Requests to start or stop something.
@@ -68,8 +69,9 @@ public:
 class Span_req  : public virtual Request  {
 public:
   /// should the spanner start or stop, or is it unwanted?
-  Direction spantype_;
-
+  Direction span_dir_;
+  String span_type_str_;
+  
   Span_req();
 protected:
   virtual bool do_equal_b (Request*) const;
@@ -85,10 +87,4 @@ public:
   VIRTUAL_COPY_CONS(Music);
 };
 
-/** Start / stop a beam at this note */
-class Beam_req  : public Span_req  {
-public:
-  VIRTUAL_COPY_CONS(Music);
-};
-
 #endif
index f7e09f8bf837c8d253b2f69645563776658849bc..f4810c836ca546a352fc0aeb5090ecec9d4b1c72 100644 (file)
@@ -31,6 +31,9 @@ protected:
 
 private:
   Moment here_mom_;
+
+  /// don't go into next element when you finish.
+  bool per_elt_b_;
   Cons<Music> *cursor_;
   Music_iterator * iter_p_;
 
index 7ebb87ffcd8ba19d3401d47838a4b0c6b936e678..a04f3f221605ff257ad9d7b227389cc32ecf6721 100644 (file)
 class Simultaneous_music_iterator : public Music_list_iterator
 {
 public:
+
+  /// make a new context for every child.
+  bool separate_contexts_b_;
+  
   Simultaneous_music_iterator ();
   virtual ~Simultaneous_music_iterator ();
 
index 7c9ad3a88fd8525ca84d23941fe969b95e8520e0..6ccf8e22c779578d91d3eb75b750b1ffdf9d8e67 100644 (file)
@@ -11,8 +11,8 @@
 #include "engraver.hh"
 
 class Slur_engraver :public Engraver {
-  Link_array<Slur_req> requests_arr_;
-  Link_array<Slur_req> new_slur_req_l_arr_;
+  Link_array<Span_req> requests_arr_;
+  Link_array<Span_req> new_slur_req_l_arr_;
   Link_array<Slur> slur_l_stack_;
   Link_array<Slur> end_slur_l_arr_;
 
index 0f945fc3f5d53b67a8bce2cb3bcd8e6e867ce32e..5c3cfec42b649ccb6a1f052ef006d5811049ced9 100644 (file)
@@ -25,7 +25,7 @@
 class Translator : public Input {
 public:
   Music_output_def * output_def_l_;
-  String  type_str_;
+  String type_str_;
   
   virtual const char *name() const;
   bool is_alias_b (String) const;
diff --git a/lily/include/unfolded-repeat-iterator.hh b/lily/include/unfolded-repeat-iterator.hh
new file mode 100644 (file)
index 0000000..1e3e19e
--- /dev/null
@@ -0,0 +1,50 @@
+/*   
+  unfolded-repeat-iterator.hh -- declare Unfolded_repeat_iterator
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+#ifndef UNFOLDED_REPEAT_ITERATOR_HH
+#define UNFOLDED_REPEAT_ITERATOR_HH
+
+#include "music-iterator.hh"
+
+/**
+   Iterate repeats.  First do body, then alternatives one by one,
+   optionally interspersed by the body.
+ */
+class Unfolded_repeat_iterator : public Music_iterator
+{
+public:
+  /**
+     How often have we done the body (assuming bodies are interspersed.)?
+   */
+  int done_count_;
+
+  /// are we busy doing the body?
+  bool do_main_b_;
+
+  /** How far have we progressed into the repeat.
+      This excludes the elt currently being iterated.
+  */
+  Moment done_mom_;
+  
+  Music_iterator * current_iter_p_;
+  Cons<Music> *alternative_cons_l_;
+  ~Unfolded_repeat_iterator();
+  Unfolded_repeat_iterator ();
+
+
+protected:  
+  virtual void construct_children ();
+  virtual Moment next_moment () const;
+  virtual void do_process_and_next (Moment);
+  virtual bool ok () const;
+  virtual void next_element ();
+  virtual void do_print () const;
+};
+#endif /* UNFOLDED_REPEAT_ITERATOR_HH */
+
index f5807666da8b71a4024544a88de1c521969427ee..d93c7b48d9f067106d5abaf41b30f7af05498921 100644 (file)
@@ -43,6 +43,8 @@ Lyric_engraver::do_process_requests()
       text_p_=  new G_text_item;
       text_p_->text_str_ = req_l_->text_str_;
 
+      text_p_->text_str_ += " ";       // ugh.
+
       Scalar style = get_property ("textStyle", 0);
       if (style.length_i ())
        text_p_->style_str_ = style;
index 74de864a09c2ed22ee4f041eb20d69639e510bd0..947140abbecc9bd4218ad7262946826b3a300644 100644 (file)
@@ -151,6 +151,8 @@ usage ()
     "\n";
 
   ;
+
+  print_mudela_versions (cout);
 }
 
 void
index ccb0a5ae90bef25ddb078e5c8b4d2105a9309c74..b358e1843359de320537accbd7e5a50d1a3723b8 100644 (file)
@@ -293,13 +293,19 @@ String
 Midi_instrument::str () const
 {
   Byte program_byte = 0;
-  for (int i = 0; instrument_name_sz_a_[i]; i++)
+  bool found = false;
+  for (int i = 0; !found && instrument_name_sz_a_[i]; i++)
     if (instrument_str_ == String (instrument_name_sz_a_[ i ])) 
       {
        program_byte = (Byte)i;
-       break;
+       found = true;
       }
 
+  if (!found)
+    {
+      warning (_f("No such instrument: `%s'", instrument_str_.ch_C ()));
+    }
+  
   String str = to_str ((char) (0xc0 + channel_i_));
   str += to_str ((char)program_byte);
   return str;
index b9c5e74c24507cc160b1d4662f9a1cac1434d9fb..bcb465f22b1c49d598a14dc99afdc0eed833d470 100644 (file)
 #include "music-wrapper-iterator.hh"
 #include "time-scaled-music-iterator.hh"
 #include "time-scaled-music.hh"
-#include "repeated-music.hh"
-#include "repeated-music-iterator.hh"
 #include "context-specced-music.hh"
+#include "new-repeated-music.hh"
+#include "folded-repeat-iterator.hh"
+#include "unfolded-repeat-iterator.hh"
 
 void
 Music_iterator::do_print() const
@@ -107,9 +108,10 @@ Music_iterator::ok() const
 }
 
 Music_iterator*
-Music_iterator::static_get_iterator_p (Music const *m, Translator_group *report_l)
+Music_iterator::static_get_iterator_p (Music const *m)
 {
   Music_iterator * p =0;
+  
   if (dynamic_cast<Request_chord  const *> (m))
     p = new Request_chord_iterator;
   else if (dynamic_cast<Simultaneous_music  const *> (m)) 
@@ -124,32 +126,45 @@ Music_iterator::static_get_iterator_p (Music const *m, Translator_group *report_
     p = new Time_scaled_music_iterator;
   else if (dynamic_cast<Music_wrapper  const *> (m))
     p = new Music_wrapper_iterator;
-  else if (dynamic_cast<Repeated_music const *> (m))
-    p = new Repeated_music_iterator;
+  else if (New_repeated_music const * n = dynamic_cast<New_repeated_music const *> (m))
+    {
+      if (n->fold_b_)
+       p = new Folded_repeat_iterator;
+      else
+       p = new Unfolded_repeat_iterator;
+    }
   else
     assert (0);
 
+
   p->music_l_ = m;
+  return p;
+}
 
+void
+Music_iterator::init_translator (Music const *m, Translator_group  *report_l)
+{
+  music_l_ = m;
   if (Context_specced_music const * csm =dynamic_cast<Context_specced_music const*>(m))
     {
       Translator_group* a =report_l->
        find_create_translator_l (csm->translator_type_str_, csm->translator_id_str_);
-      p->set_translator (a);
-    }
 
-  if (! p->report_to_l())
-    p ->set_translator (report_l);
+      set_translator (a);
+      
+    }
 
-  
-  return p;
+  if (! report_to_l())
+    set_translator (report_l);
 }
 
 
 Music_iterator*
 Music_iterator::get_iterator_p (Music const*m) const
 {
-  Music_iterator*p = static_get_iterator_p (m, report_to_l());
+  Music_iterator*p = static_get_iterator_p (m);
+  p->init_translator (m, report_to_l());
+  
   p->construct_children();
   return p;
 }
index d3949b67238bee286a31a25789e5d10dc27daa18..1d32d1d08d4bff3307ed35407352dabee705adc6 100644 (file)
@@ -45,11 +45,6 @@ Sequential_music::length_mom () const
   return cumulative_length ();
 }
 
-Musical_pitch
-Sequential_music::to_relative_octave (Musical_pitch p)
-{
-  return do_relative_octave (p, false);
-}
 
 Musical_pitch
 Simultaneous_music::to_relative_octave (Musical_pitch p)
index 2e1a1895175d00f52665c87502291273e16aa6cf..d82888442999914fa84cda6639d783c2cdd0da46 100644 (file)
@@ -57,6 +57,13 @@ Music_sequence::cumulative_length () const
   return  last;
 }
 
+Musical_pitch
+Music_sequence::to_relative_octave (Musical_pitch p)
+{
+  return do_relative_octave (p, false);
+}
+
+
 Moment
 Music_sequence::maximum_length () const
 {
index 369066fa7f19a1f03462551a40510e5ca772506a..59512ca5e17e6fe6766b741d06f772a17dc922cd 100644 (file)
@@ -16,7 +16,7 @@ void
 Span_req::do_print () const
 {
 #ifndef NPRINT
-  DOUT << spantype_;
+  DOUT << span_dir_;
 #endif
 }
 
@@ -110,7 +110,10 @@ Rhythmic_req::compress (Moment m)
 void
 Lyric_req::do_print () const
 {
+#ifndef NPRINT
   Rhythmic_req::do_print ();
+  DOUT <<  "text = " << text_str_;
+#endif
 }
 
 
@@ -148,67 +151,18 @@ Note_req::do_print () const
 }
 
 
-Abbreviation_beam_req::Abbreviation_beam_req ()
-{
-  type_i_ = 0;
-}
-
 bool
 Span_req::do_equal_b (Request*r) const
 {
   Span_req * s = dynamic_cast <Span_req *> (r);
-  return s && spantype_ == s->spantype_;
+  return s && span_dir_ == s->span_dir_;
 }
 
 Span_req::Span_req ()
 {
-  spantype_ = CENTER;
-}
-
-
-void
-Absolute_dynamic_req::do_print () const
-{
-#ifndef NPRINT
-  DOUT << " loudness " <<loudness_str_ ;
-#endif
-}
-
-bool
-Absolute_dynamic_req::do_equal_b (Request *r) const
-{
-  Absolute_dynamic_req *a = dynamic_cast <Absolute_dynamic_req *> (r);
-  return a&& loudness_str_ == a->loudness_str_;
-}
-
-Absolute_dynamic_req::Absolute_dynamic_req ()
-{
-  loudness_str_ = "fm";                // yes, "illegal" on purpose.
-}
-
-
-
-bool
-Span_dynamic_req::do_equal_b (Request *req) const
-{
-  Span_dynamic_req * s = dynamic_cast <Span_dynamic_req *> (req);
-
-  return s&& Span_req::do_equal_b (req) && s->dynamic_dir_ == dynamic_dir_;
-}
-
-Span_dynamic_req::Span_dynamic_req ()
-{
-  dynamic_dir_  = CENTER;
+  span_dir_ = CENTER;
 }
 
-void
-Span_dynamic_req::do_print () const
-{
-#ifndef NPRINT
-  Span_req::do_print ();
-  DOUT << "softer/louder: " << dynamic_dir_;
-#endif
-}
 
 void
 Text_script_req::do_print () const
@@ -227,5 +181,6 @@ bool
 Articulation_req::do_equal_b (Request*r) const
 {
   Articulation_req * a = dynamic_cast<Articulation_req*>(r);
-  return articulation_str_ == a->articulation_str_;
+  
+  return a &&  articulation_str_ == a->articulation_str_;
 }
index 4d5a2a024c0bc0565bdadaa64f07521eb37829a9..a0947945ac6b928f585a409ee53adac80fd7b3d4 100644 (file)
@@ -21,7 +21,7 @@
 #include "scope.hh"
 
 static Keyword_ent the_key_tab[]={
-  {"absdynamic", ABSDYNAMIC},
+  {"spanrequest", SPANREQUEST},
   {"accepts", ACCEPTS},
   {"alternative", ALTERNATIVE},
   {"bar", BAR},
@@ -64,7 +64,7 @@ static Keyword_ent the_key_tab[]={
   {"script", SCRIPT},
   {"shape", SHAPE},
   {"skip", SKIP},
-  {"spandynamic", SPANDYNAMIC},
+  {"textscript", TEXTSCRIPT},
   {"tempo", TEMPO},
   {"translator", TRANSLATOR},
   {"transpose", TRANSPOSE},
index 66028bb2027a65fb21ad997ce2d7e7c2f1eeb1b3..0c168dde63eda96eba0ee583dd09b42d3f952328 100644 (file)
@@ -1,6 +1,5 @@
-#if 0
 /*   
-  new-repeated-music-iterator.cc --  implement New_repeated_music_iterator
+  new-repeated-music-iterator.cc --  implement Folded_repeat_iterator
   
   source file of the GNU LilyPond music typesetter
   
   
  */
 
-#include "music-iterator.hh"
+#include "folded-repeat-iterator.hh"
+#include "new-repeated-music.hh"
+#include "music-list.hh"
+#include "simultaneous-music-iterator.hh"
+#include "translator-group.hh"
 
+Folded_repeat_iterator::Folded_repeat_iterator ()
+{
+  main_iter_p_ = 0;
+  alternative_iter_p_ = 0;
+}
 
-/**
-   
- */
-class New_repeated_music_iterator : public Music_iterator
+bool
+Folded_repeat_iterator::ok () const
+{
+  return main_iter_p_ || alternative_iter_p_;
+}
+
+Folded_repeat_iterator::~Folded_repeat_iterator ()
+{
+  delete main_iter_p_;
+  delete alternative_iter_p_;
+}
+
+Moment
+Folded_repeat_iterator::next_moment () const
+{
+  if (main_iter_p_)
+    {
+      return main_iter_p_->next_moment ();
+    }
+  else
+    return main_length_mom_ + alternative_iter_p_->next_moment ();
+}
+
+void
+Folded_repeat_iterator::construct_children ()
+{
+  New_repeated_music const *  mus = dynamic_cast<New_repeated_music const*> (music_l_);
+  main_iter_p_ = get_iterator_p (mus->repeat_body_p_);
+  if (!main_iter_p_->ok())
+    {
+      leave_body ();
+      enter_alternative ();
+    }
+}
+
+void
+Folded_repeat_iterator::do_process_and_next (Moment m)
 {
-  Music_iterator * main_iter_p_;
-  Music_iterator * alternative_iter_p_;
-  int count_;
+  if (!m)
+    {
+      bool success = report_to_l ()->try_music (music_l_);
+      if (!success)
+       music_l_->warning ( _("No one to print a volta bracket"));
+    }
   
-public:
-  New_repeated_music_iterator ();
-  ~New_repeated_music_iterator ();
+  New_repeated_music const * mus = dynamic_cast<New_repeated_music const*> (music_l_);
   
+  if (main_iter_p_)
+    {
+      main_iter_p_->process_and_next (m);
+      if (!main_iter_p_->ok ())
+       leave_body ();
+    }
+
+  if (!main_iter_p_ && !alternative_iter_p_)
+    {
+      enter_alternative ();
+    }
   
-  virtual void construct_children ();
-  virtual Moment next_moment () const;
-  virtual bool ok () const;
+  if (alternative_iter_p_)
+    {
+      alternative_iter_p_->process_and_next (m - main_length_mom_);
+      if (!alternative_iter_p_->ok ())
+       {
+         delete alternative_iter_p_;
+         alternative_iter_p_ =0;
+       }
+    }
+}
 
-protected:
-  virtual void do_print () const;
-  virtual void do_process_and_next (Moment);
-};
+void
+Folded_repeat_iterator::leave_body ()
+{
+  New_repeated_music const *  mus = dynamic_cast<New_repeated_music const*> (music_l_);
+  delete main_iter_p_;
+  main_iter_p_ = 0;
+  main_length_mom_ +=  mus->repeat_body_p_->length_mom ();
+}
 
-New_repeated_music_iterator::New_repeated_music_iterator ()
+void
+Folded_repeat_iterator::enter_alternative ()
 {
+  New_repeated_music const *  mus = dynamic_cast<New_repeated_music const*> (music_l_);  
+  Simultaneous_music_iterator * s = new Simultaneous_music_iterator;
+  s->separate_contexts_b_ = true;
+  s->init_translator (mus->alternatives_p_, report_to_l ());
   
+  alternative_iter_p_ = s;
+  alternative_iter_p_->construct_children ();
 }
+
+void
+Folded_repeat_iterator::do_print () const
+{
+#ifndef NPRINT
 #endif
+}
index c989de90148d0c7a0bf21537494917dff98aedea..15bd06f660febd3888d21bfc681ac39c3d75e93f 100644 (file)
 #include "new-repeated-music.hh"
 #include "music-list.hh"
 #include "musical-pitch.hh"
+#include "debug.hh"
 
-New_repeated_music::New_repeated_music()
+New_repeated_music::New_repeated_music(Music *beg, int times, Music_sequence * alts)
 {
-  repeat_begin_p_ = 0;
-  unfold_b_ = false;
-  repeats_i_ =0;
-  alternatives_p_ = 0;
+  repeat_body_p_ = beg;
+  fold_b_ = false;
+  repeats_i_ = times;
+  alternatives_p_ = alts;
+  semi_fold_b_ = true;
 }
 
 New_repeated_music::New_repeated_music (New_repeated_music const &s)
   : Music (s)
 {
   repeats_i_ = s.repeats_i_;
-  unfold_b_ = s.unfold_b_;
-
-  repeat_begin_p_ = s.repeat_begin_p_ ? s.repeat_begin_p_->clone () : 0;
+  fold_b_ = s.fold_b_;
+  semi_fold_b_ = s.semi_fold_b_;
+  
+  repeat_body_p_ = s.repeat_body_p_ ? s.repeat_body_p_->clone () : 0;
   alternatives_p_ = s.alternatives_p_
     ? dynamic_cast<Music_sequence*> (s.alternatives_p_->clone ()):0;
 }
 
 New_repeated_music::~New_repeated_music ()
 {
-  delete repeat_begin_p_;
+  delete repeat_body_p_;
   delete alternatives_p_;
 }
 
 void
 New_repeated_music::do_print () const
 {
-  if (repeat_begin_p_)
-    repeat_begin_p_->print();
+#ifndef NPRINT
+  DOUT << "Fold = " << fold_b_ << " reps: " << repeats_i_;
+
+  if (repeat_body_p_)
+    repeat_body_p_->print();
   
   if (alternatives_p_)
     alternatives_p_->print();
+#endif
 }
 
 Musical_pitch
 New_repeated_music::to_relative_octave (Musical_pitch p)
 {
-  if (repeat_begin_p_)
-    p = repeat_begin_p_->to_relative_octave (p);
+  if (repeat_body_p_)
+    p = repeat_body_p_->to_relative_octave (p);
 
   if (alternatives_p_)
     p = alternatives_p_->do_relative_octave (p, true);
@@ -61,8 +68,8 @@ New_repeated_music::to_relative_octave (Musical_pitch p)
 void
 New_repeated_music::transpose (Musical_pitch p)
 {
-  if (repeat_begin_p_)
-    repeat_begin_p_->transpose (p);
+  if (repeat_body_p_)
+    repeat_body_p_->transpose (p);
 
   if (alternatives_p_)
     alternatives_p_->transpose (p);  
@@ -71,34 +78,43 @@ New_repeated_music::transpose (Musical_pitch p)
 void
 New_repeated_music::compress (Moment p)
 {
-  if (repeat_begin_p_)
-    repeat_begin_p_->compress (p);
+  if (repeat_body_p_)
+    repeat_body_p_->compress (p);
 
   if (alternatives_p_)
     alternatives_p_->compress (p);  
 }
 
+Moment
+New_repeated_music::alternatives_length_mom () const
+{
+  if (alternatives_p_)
+    {
+      return  (fold_b_)
+       ? alternatives_p_->maximum_length ()
+       : alternatives_p_->cumulative_length ();
+    }
+  return 0; 
+}
 
 Moment
 New_repeated_music::length_mom () const
 {
   Moment m =0;
-  if (unfold_b_)
+  if (fold_b_)
     {
-      if (repeat_begin_p_)
-       m +=  Rational (repeats_i_) * repeat_begin_p_->length_mom ();
-
-      if (alternatives_p_)
-       m += alternatives_p_->cumulative_length ();
+      if (repeat_body_p_)
+       m += repeat_body_p_->length_mom ();
     }
   else
     {
-      if (repeat_begin_p_)
-       m +=  repeat_begin_p_->length_mom ();
-
-      if (alternatives_p_)
-       m += alternatives_p_->maximum_length ();
+      Moment beg = (repeat_body_p_) ? repeat_body_p_->length_mom () : Rational(0);
+      if (!semi_fold_b_)
+       beg *=  Rational (repeats_i_);
+      m += beg;
     }
+
+  m += alternatives_length_mom ();
   return m;
 }
 
index e6b06a31204cdc3ce54089486f6f1449478f7ee0..34e329be2e236bf75729c44e51321d2264007359 100644 (file)
 #include "relative-music.hh"
 #include "transposed-music.hh"
 #include "time-scaled-music.hh"
-#include "repeated-music.hh"
+#include "new-repeated-music.hh"
 
 // mmm
 Mudela_version oldest_version ("1.0.16");
-Mudela_version version ("1.0.16");
-
+Mudela_version version ("1.0.19");
 
+void
+print_mudela_versions (ostream &os)
+{
+  os << "Mudela versions: oldest  " << oldest_version.str () << " current " << version.str () <<endl;
+}
 // needed for bison.simple's malloc() and free()
 #include <malloc.h>
 
@@ -138,7 +142,7 @@ yylex (YYSTYPE *s,  void * v_l)
 
 /* tokens which are not keywords */
 
-%token ABSDYNAMIC
+%token TEXTSCRIPT
 %token ACCEPTS
 %token ALTERNATIVE
 %token BAR
@@ -180,7 +184,7 @@ yylex (YYSTYPE *s,  void * v_l)
 %token SCRIPT
 %token SHAPE
 %token SKIP
-%token SPANDYNAMIC
+%token SPANREQUEST
 %token TEMPO
 %token TIME_T
 %token TIMES
@@ -244,7 +248,7 @@ yylex (YYSTYPE *s,  void * v_l)
 %type <duration>       duration_length
 
 %type <scalar>  scalar
-%type <music>  Music  relative_music Sequential_music Simultaneous_music
+%type <music>  Music  relative_music Sequential_music Simultaneous_music Music_sequence
 %type <music>  property_def translator_change
 %type <music_list> Music_list
 %type <paper>  paper_block paper_def_body
@@ -714,23 +718,31 @@ Music:
 
 Alternative_music:
        /* empty */ {
-
-               /* UGH*/
-               Music_list* m = new Music_list;
-               $$ = new Sequential_music (m);
+               $$ = 0;
        }
-       | ALTERNATIVE Simultaneous_music {
+       | ALTERNATIVE Music_sequence {
                $$ = $2;
        }
-       | ALTERNATIVE Sequential_music {
-               $$ = $2;
+       ;
+
+
+
+
+Repeated_music:
+       REPEAT STRING unsigned Music Alternative_music
+       {
+               Music_sequence* m = dynamic_cast <Music_sequence*> ($5);
+
+               New_repeated_music * r = new New_repeated_music ($4, $3 >? 1, m);
+               $$ = r;
+               r->fold_b_ = (*$2 == "fold");
+               r->semi_fold_b_ =  (*$2 == "semi");
+               delete $2;
        }
        ;
 
-Repeated_music: REPEAT unsigned Music Alternative_music        {
-               Music_sequence* m = dynamic_cast <Music_sequence*> ($4);
-               assert (m);
-               $$ = new Repeated_music ($3, $2 >? 1, m);
+Music_sequence: '{' Music_list '}'     {
+               $$ = new Music_sequence ($2);
        }
        ;
 
@@ -906,13 +918,15 @@ abbrev_command_req:
                $$ = new Tie_req;
        }
        | '['           {
-               Beam_req*b= new Beam_req;
-               b->spantype_ = START;
+               Span_req*b= new Span_req;
+               b->span_dir_ = START;
+               b->span_type_str_ = "beam";
                $$ =b;
        }
        | ']'           {
-               Beam_req*b= new Beam_req;
-               b->spantype_ = STOP;
+               Span_req*b= new Span_req;
+               b->span_dir_ = STOP;
+               b->span_type_str_ = "beam";
                $$ = b;
        }
        ;
@@ -1035,17 +1049,19 @@ verbose_request:
                $$ = (Request*)$1->access_content_Request (true);
                $$->set_spot (THIS->here_input ());
        }
-       | ABSDYNAMIC '{' STRING '}'     {
-               Absolute_dynamic_req *ad_p = new Absolute_dynamic_req;
-               ad_p ->loudness_str_ = *$3;
-               ad_p->set_spot (THIS->here_input ());
+       | TEXTSCRIPT STRING STRING      {
+               Text_script_req *ts_p = new Text_script_req;
+               ts_p-> text_str_ = *$2;
+               ts_p-> style_str_ = *$3;
+               ts_p->set_spot (THIS->here_input ());
                delete $3;
-               $$ =ad_p;
+               delete $2;
+               $$ = ts_p;
        }
-       | SPANDYNAMIC '{' int int '}' {
-               Span_dynamic_req * sp_p = new Span_dynamic_req;
-               sp_p-> dynamic_dir_  = Direction($3);
-               sp_p->spantype_ = Direction($4);
+       | SPANREQUEST int STRING {
+               Span_req * sp_p = new Span_req;
+               sp_p-> span_dir_  = Direction($2);
+               sp_p->span_type_str_ = *$3;
                sp_p->set_spot (THIS->here_input ());
                $$ = sp_p;
        }
@@ -1160,22 +1176,24 @@ extender_req:
 close_request:
        close_request_parens {
                $$ = $1;
-               dynamic_cast<Span_req*> ($$)->spantype_ = START;
+               dynamic_cast<Span_req*> ($$)->span_dir_ = START;
        }
        
 close_request_parens:
        '('     {
-               $$= new Slur_req;
+               Span_req* s= new Span_req;
+               $$ = s;
+               s->span_type_str_ = "slur";
        }
        | E_SMALLER {
-               Span_dynamic_req*s =new Span_dynamic_req;
+               Span_req*s =new Span_req;
                $$ = s;
-               s->dynamic_dir_ = UP;
+               s->span_type_str_ = "crescendo";
        }
        | E_BIGGER {
-               Span_dynamic_req*s =new Span_dynamic_req;
+               Span_req*s =new Span_req;
                $$ = s;
-               s->dynamic_dir_ = DOWN;
+               s->span_type_str_ = "decrescendo";
        }
        ;
 
@@ -1183,19 +1201,20 @@ close_request_parens:
 open_request:
        open_request_parens {
                $$ = $1;
-               dynamic_cast<Span_req*> ($$)->spantype_ = STOP;
+               dynamic_cast<Span_req*> ($$)->span_dir_ = STOP;
        }
        ;
 
 open_request_parens:
        E_EXCLAMATION   {
-               Span_dynamic_req *s =  new Span_dynamic_req;
-               s->dynamic_dir_ = SMALLER;
+               Span_req *s =  new Span_req;
+               s->span_type_str_ = "crescendo";
                $$ = s;
-               
        }
        | ')'   {
-               $$= new Slur_req
+               Span_req* s= new Span_req;
+               $$ = s;
+               s->span_type_str_ = "slur";
        }
        ;
 
index 8a3cbdf59724680c5564c48e0c1a5f466a797983..8de755f670dc8adc28e6f4c7e8160db8202c816f 100644 (file)
 #include "command-request.hh"
 #include "time-description.hh"
 #include "engraver-group.hh"
-#include "repeated-music.hh"
+#include "new-repeated-music.hh"
 #include "time-description.hh"
 #include "volta-spanner.hh"
 #include "note-column.hh"
 #include "paper-def.hh"
-
+#include "music-list.hh"
 
 ADD_THIS_TRANSLATOR (Repeat_engraver);
 
-Repeat_engraver::Repeat_engraver ()
-{
-}
-
 /*
-  urg. Way too complicated. needs redesign.
+  Urg. Hairy.  Needs redesign?
  */
 bool
 Repeat_engraver::do_try_music (Music* m)
 {
-  if (Repeated_music* r = dynamic_cast<Repeated_music *> (m))
+  if (New_repeated_music* r = dynamic_cast<New_repeated_music *> (m))
     {
-      r->unfold_b_ = get_property ("unfoldRepeats", 0).to_bool ();
-      if (r->unfold_b_)
-        return true;
-      Music_sequence* alt = r->alternative_p_;
-      Moment repeat_length_mom = r->repeat_p_->length_mom ();
+      Music_sequence* alt = r->alternatives_p_;
+      Moment repeat_length_mom = r->repeat_body_p_->length_mom ();
       Moment stop_mom = now_mom () + repeat_length_mom;
       Moment alt_mom = now_mom () + repeat_length_mom;
       if (repeat_length_mom)
        {
-         for (Cons<Music> *i (alt->music_p_list_p_->head_); i && i->next_; i = i->next_)
-           {
-             stop_mom += i->car_->length_mom ();
-             if (dynamic_cast<Simultaneous_music *> (alt))
-               break;
-           }
+         stop_mom += r->alternatives_length_mom ();
          repeated_music_arr_.push (r);
          stop_mom_arr_.push (stop_mom);
        }
@@ -187,9 +174,3 @@ Repeat_engraver::do_pre_move_processing ()
        }
     }
 }
-
-void 
-Repeat_engraver::do_post_move_processing ()
-{
-}
-
diff --git a/lily/repeated-music-iterator.cc b/lily/repeated-music-iterator.cc
deleted file mode 100644 (file)
index 80007e5..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-/*   
-  repeated-music-iterator.cc --  implement Repeated_music_iterator
-  
-  source file of the GNU LilyPond music typesetter
-  
-  (c) 1998--1999 Jan Nieuwenhuizen <janneke@gnu.org>
-  
- */
-
-#include "repeated-music-iterator.hh"
-#include "repeated-music.hh"
-#include "musical-request.hh"
-#include "translator-group.hh"
-#include "command-request.hh"
-
-Repeated_music_iterator::Repeated_music_iterator ()
-{
-  repeat_iter_p_ = 0;
-  alternative_iter_p_ = 0;
-  here_mom_ = 0;
-  unfold_i_ = -1; 
-}
-
-Repeated_music_iterator::~Repeated_music_iterator ()
-{
-  delete repeat_iter_p_;
-  delete alternative_iter_p_;
-}
-
-void
-Repeated_music_iterator::do_print () const
-{
-  if (repeat_iter_p_) repeat_iter_p_->print ();
-  if (alternative_iter_p_) alternative_iter_p_->print ();
-}
-
-void
-Repeated_music_iterator::construct_children ()
-{
-  repeat_iter_p_ = get_iterator_p (dynamic_cast<Repeated_music const*> (music_l_)->repeat_p_);
-}
-
-void
-Repeated_music_iterator::do_process_and_next (Moment m)
-{
-  if (first_b_)
-    {
-      bool success = report_to_l ()->try_music (dynamic_cast<Repeated_music const*> (music_l_));
-      if (!success)
-       music_l_->warning ( _("No one to print a volta bracket"));
-    }
-  if (repeat_iter_p_ && repeat_iter_p_->ok ())
-    repeat_iter_p_->process_and_next (m - here_mom_);
-  else
-    alternative_iter_p_->process_and_next (m - here_mom_);
-  Music_iterator::do_process_and_next (m);
-}
-
-Moment
-Repeated_music_iterator::next_moment () const
-{
-  
-  if (repeat_iter_p_)
-    return repeat_iter_p_->next_moment () + here_mom_;
-  else if (alternative_iter_p_)
-    return alternative_iter_p_->next_moment () + here_mom_;
-
-  Repeated_music const*r = dynamic_cast<Repeated_music const*>(music_l_);
-  return r->alternative_p_->length_mom () + here_mom_;
-}
-
-/*
-  FIXME
- */
-bool
-Repeated_music_iterator::ok () const
-{
-  if (!repeat_iter_p_ && !alternative_iter_p_)
-    return false;
-
-  if ((repeat_iter_p_ && repeat_iter_p_->ok ())
-    || (alternative_iter_p_ && alternative_iter_p_->ok ()))
-    return true;
-
-  Repeated_music_iterator *urg = (Repeated_music_iterator*)this;
-  // urg, we're const
-  urg->start_next_element ();
-
-  return ok ();
-}
-
-
-void
-Repeated_music_iterator::start_next_element ()
-{
-  Repeated_music const*rep =dynamic_cast<Repeated_music const*> (music_l_);
-
-
- if (repeat_iter_p_)
-    {
-      assert (!repeat_iter_p_->ok ());
-      assert (!alternative_iter_p_);
-      delete repeat_iter_p_;
-      repeat_iter_p_ = 0;
-      alternative_iter_p_ = dynamic_cast<Music_list_iterator*>
-       (get_iterator_p ((Music*)rep->alternative_p_));  
-      here_mom_ += rep->repeat_p_->length_mom ();
-    }
-  else if (alternative_iter_p_)
-    {
-      assert (!alternative_iter_p_->ok ());
-      assert (!repeat_iter_p_);
-      delete alternative_iter_p_;
-      alternative_iter_p_ = 0;
-      if (unfold_i_ < 0)
-       unfold_i_ = rep->unfold_b_ ? 
-         rep->repeats_i_ - 1 : 0;
-      if (unfold_i_)
-        {
-         unfold_i_--;
-         repeat_iter_p_ = get_iterator_p (rep->repeat_p_);
-         // urg, assume same length alternatives for now...
-//       here_mom_ += rep->alternative_p_->music_p_list_p_->top ()->length_mom ();
-         /*
-           URG
-           this is *wrong* but at least it doesn't dump core
-           when unfolding, the alternative (sequential) music 
-           shouldn't automatically move to the next alternative
-
-           how to intercept this...
-          */
-         here_mom_ += rep->alternative_p_->length_mom ();
-       }
-    }
-}
-
diff --git a/lily/repeated-music.cc b/lily/repeated-music.cc
deleted file mode 100644 (file)
index 48848dd..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-/*   
-  repeated-music.cc --  implement Repeated_music
-  
-  source file of the GNU LilyPond music typesetter
-  
-  (c) 1998--1999 Jan Nieuwenhuizen <janneke@gnu.org>
-  
- */
-
-#include "repeated-music.hh"
-#include "musical-pitch.hh"
-
-Repeated_music::Repeated_music (Music* r, int n, Music_sequence* a)
-{
-  repeats_i_ = n;
-  unfold_b_ = false;
-  repeat_p_ = r;
-  alternative_p_ = a;
-}
-
-Repeated_music::~Repeated_music ()
-{
-  delete repeat_p_;
-  delete alternative_p_;
-}
-
-Repeated_music::Repeated_music (Repeated_music const& s)
-  : Music (s)
-{
-  repeats_i_ = s.repeats_i_;
-  repeat_p_ = (s.repeat_p_) ? s.repeat_p_->clone () : 0;
-  // urg?
-  alternative_p_ = (s.alternative_p_) ? dynamic_cast <Music_sequence*> (s.alternative_p_->clone ()) : 0;
-}
-
-void
-Repeated_music::do_print () const
-{
-  if (repeat_p_)
-    repeat_p_->print ();
-  if (alternative_p_)
-    alternative_p_->print ();
-}
-
-void
-Repeated_music::transpose (Musical_pitch p)
-{
-  if (repeat_p_)
-    repeat_p_->transpose (p);
-  if (alternative_p_)
-    alternative_p_->transpose (p);
-}
-
-Moment
-Repeated_music::length_mom () const
-{
-  Moment m;
-  if (repeat_p_)
-    m += repeat_p_->length_mom ();
-  if (alternative_p_)
-    m += alternative_p_->length_mom ();
-  return m;
-}
-
-
-Musical_pitch
-Repeated_music::to_relative_octave (Musical_pitch p)
-{
-  p = repeat_p_->to_relative_octave (p);
-
-  p = alternative_p_->do_relative_octave (p, false); 
-  return p;
-  
-  /* ugh.  Should 
-     \relative c'' \repeat 2  { c4 } { < ... > }
-
-     and 
-     
-     \relative c'' \repeat 2  { c4 }
-     { { ...} }
-
-     behave differently?
-   */
-}
index 7f0016f2b9cf24d50efd320bbe894b0cfbae8660..c6d51acd45099ce78e7f95497863948fcd250482 100644 (file)
@@ -59,8 +59,8 @@ Score::run_translator (Music_output_def *odef_l)
   *mlog << '\n' << _("Interpreting music...") << flush;
   trans_p->last_mom_ = music_p_->length_mom ();
 
-  Music_iterator * iter = Music_iterator::static_get_iterator_p (music_p_, trans_p);
-  
+  Music_iterator * iter = Music_iterator::static_get_iterator_p (music_p_);
+  iter->init_translator(music_p_, trans_p);
 
   iter->construct_children();
 
index 66a479efad0599370f7ce047f8a37426ce4a0c58..d75713e30783aef542d65d97b1512c3e911c5aab 100644 (file)
@@ -23,6 +23,7 @@ Sequential_music_iterator::Sequential_music_iterator ()
   cursor_ = 0;
   here_mom_ = 0;
   iter_p_ =0;
+  per_elt_b_ = false;
 }
 
 void
@@ -80,6 +81,9 @@ Sequential_music_iterator::~Sequential_music_iterator()
 void
 Sequential_music_iterator::do_process_and_next (Moment until)
 {
+  if (!iter_p_)
+    return;
+
   while (1) 
     {
       Moment local_until = until - here_mom_;
@@ -91,7 +95,7 @@ Sequential_music_iterator::do_process_and_next (Moment until)
            
          iter_p_->process_and_next (local_until);
        }
-
+      
       if (!iter_p_->ok()) 
        {
          leave_element();
@@ -100,6 +104,9 @@ Sequential_music_iterator::do_process_and_next (Moment until)
            {
              start_next_element();
              set_sequential_music_translator();
+
+             if (per_elt_b_)
+               goto loopexit;  // ugh.
            }
          else 
            {
index 14983adb9caa6e051bc4aa44748a516c4bf25f3b..72e59e1d612fda3b0d44ab0a180242374ca2ae7b 100644 (file)
@@ -14,6 +14,7 @@
 
 Simultaneous_music_iterator::Simultaneous_music_iterator ()
 {
+  separate_contexts_b_ = false;
 }
 
 Simultaneous_music_iterator::~Simultaneous_music_iterator ()
@@ -29,14 +30,21 @@ Simultaneous_music_iterator::construct_children()
 
   for (Cons<Music> *i = sim->music_p_list_p_->head_; i;  i = i->next_, j++)
     {
-      Music_iterator * mi = get_iterator_p (i->car_);
+      Music_iterator * mi = static_get_iterator_p (i->car_);
+
+      /* if separate_contexts_b_ is set, create a new context with the
+        number number as name */
+      
+      Translator_group * t = (j && separate_contexts_b_)
+       ? report_to_l ()->find_create_translator_l (report_to_l()->type_str_,
+                                                   to_str (j))
+       : report_to_l ();
+
+      mi->init_translator (i->car_, t);
+      mi->construct_children ();
+      
       if (mi->ok()) 
        {
-#if 0
-         if  (sim->translator_type_str_.empty_b ())
-           set_translator (mi->report_to_l()->ancestor_l (0)); // huh?
-#endif
-
          children_p_list_.append (new Killing_cons<Music_iterator> (mi,0));
        }
       else
@@ -44,7 +52,6 @@ Simultaneous_music_iterator::construct_children()
     }
 }
 
-
 void
 Simultaneous_music_iterator::do_print() const
 {
index f81a08a45d9094482597c5cef5d7d5d8aecad9fe..ed1462a58493693b8c88e262c9eb29977c89b3e6 100644 (file)
 bool
 Slur_engraver::do_try_music (Music *req_l)
 {
-  if (Slur_req *sl = dynamic_cast <Slur_req *> (req_l))
+  if (Span_req *sl = dynamic_cast <Span_req *> (req_l))
     {
+      if (sl->span_type_str_ != "slur")
+       return false;
       new_slur_req_l_arr_.push (sl);
       return true;
     }
@@ -55,9 +57,9 @@ Slur_engraver::do_process_requests()
   Array<Slur*> start_slur_l_arr_;
   for (int i=0; i< new_slur_req_l_arr_.size(); i++)
     {
-      Slur_req* slur_req_l = new_slur_req_l_arr_[i];
+      Span_req* slur_req_l = new_slur_req_l_arr_[i];
       // end slur: move the slur to other array
-      if (slur_req_l->spantype_ == STOP)
+      if (slur_req_l->span_dir_ == STOP)
        {
          if (slur_l_stack_.empty())
 
@@ -68,7 +70,7 @@ Slur_engraver::do_process_requests()
              requests_arr_.pop();
            }
        }
-      else  if (slur_req_l->spantype_ == START)
+      else  if (slur_req_l->span_dir_ == START)
        {
          // push a new slur onto stack.
          //(use temp. array to wait for all slur STOPs)
index 44597fe411fe2ebd6ae4c6d8fc51dfd631d50899..6628fbeca0b52d482e18c454bbbf532992ccbd20 100644 (file)
@@ -77,7 +77,7 @@ String
 Staff_performer::new_instrument_str () 
 { 
   // mustn't ask Score for instrument: it will return piano!
-  String str = get_property ("midi_instrument", 0);
+  String str = get_property ("midiInstrument", 0);
   if (!str.length_i ())
     str = get_property ("instrument", 0);
   if (str == instrument_str_)
index 1c00d0b5971f789298f2ddb974ba77ac9a375cd2..800fab932bc1fd355a6c22345f9e7b631edf3a7f 100644 (file)
@@ -131,7 +131,7 @@ Timing_translator::do_pre_move_processing()
 
 
   /* allbars == ! skipbars */
-  bool allbars = ! get_property ("SkipBars", 0).to_bool ();
+  bool allbars = ! get_property ("skipBars", 0).to_bool ();
 
   // urg: multi bar rests: should always must process whole of first bar?
   if (!time_.cadenza_b_ && allbars)
index bd451be2b91a599d1dc463a12722abc9f934f6c8..8c244b705b888fa2df4bbf7fce73bce206917aeb 100644 (file)
@@ -457,7 +457,7 @@ Translator_group::get_property (String id,
       return properties_dict_[id];
     }
 
-#if 0
+#if 1
   if (daddy_trans_l_)
     return daddy_trans_l_->get_property (id, where_l);
 #endif
index e911a62f14cefd4158a0b3063d0ccfe95f905bd1..b3d192cdfea106a77f844f979b0017d76e5ac87e 100644 (file)
@@ -21,4 +21,3 @@ Type_swallow_translator::do_try_music (Music*r)
 
 
 DECLARE_REQUEST_SWALLOWER(Skip_req);
-DECLARE_REQUEST_SWALLOWER(Beam_req);
diff --git a/lily/unfolded-repeat-iterator.cc b/lily/unfolded-repeat-iterator.cc
new file mode 100644 (file)
index 0000000..0550a46
--- /dev/null
@@ -0,0 +1,144 @@
+/*   
+  unfolded-repeat-iterator.cc --  implement Unfolded_repeat_iterator
+  
+  source file of the GNU LilyPond music typesetter
+  
+  (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  
+ */
+
+
+#include "new-repeated-music.hh"
+#include "music-list.hh"
+#include "unfolded-repeat-iterator.hh"
+#include "debug.hh"
+#include "translator-group.hh"
+
+Unfolded_repeat_iterator::~Unfolded_repeat_iterator ()
+{
+  delete current_iter_p_;
+}
+
+Unfolded_repeat_iterator::Unfolded_repeat_iterator ()
+{
+  done_count_ =0;
+  current_iter_p_ =0;
+  do_main_b_ = false;
+}
+
+/**
+
+If we are in the body of the repeat always go to the current alternative.
+
+If we are not in the body, then we are in an alternative.  If we are
+fully unfolding, advance the current alternative and go back to main.
+If we are semi-unfolding, advance the current alternative, and go to
+the  alternative just set.
+   
+ */
+void
+Unfolded_repeat_iterator::next_element () 
+{
+  New_repeated_music const* mus =dynamic_cast<New_repeated_music const*> (music_l_);
+  delete current_iter_p_;
+  current_iter_p_ =0;
+
+
+  if (do_main_b_)
+    {
+      done_mom_ += mus->repeat_body_p_->length_mom ();
+      if (alternative_cons_l_)
+       {
+         current_iter_p_ = get_iterator_p (alternative_cons_l_->car_);
+         do_main_b_ = false;
+       }
+    }
+  else
+    {
+      if (alternative_cons_l_)
+       {
+         done_mom_ += alternative_cons_l_->car_->length_mom ();
+         alternative_cons_l_ = alternative_cons_l_->next_;
+         done_count_ ++;         
+       }
+
+      if (done_count_ < mus->repeats_i_ && alternative_cons_l_)
+       {
+         if (mus->semi_fold_b_)
+           current_iter_p_ = get_iterator_p (alternative_cons_l_->car_);
+         else
+           {
+             current_iter_p_ = get_iterator_p (mus->repeat_body_p_);
+             do_main_b_ = true;
+           }
+       }
+    }
+}
+
+bool
+Unfolded_repeat_iterator::ok () const
+{
+  return current_iter_p_ ;
+}
+
+Moment
+Unfolded_repeat_iterator::next_moment () const
+{
+  return done_mom_ + current_iter_p_->next_moment ();
+}
+
+void
+Unfolded_repeat_iterator::construct_children ()
+{
+  New_repeated_music const* mus =dynamic_cast<New_repeated_music const*> (music_l_);
+  alternative_cons_l_ = (mus->alternatives_p_)
+    ? mus->alternatives_p_->music_p_list_p_->head_
+    : 0;
+
+  if (mus->repeat_body_p_)
+    {
+      current_iter_p_  = get_iterator_p (mus->repeat_body_p_);
+      do_main_b_ = true;
+    }
+  else if (alternative_cons_l_)
+    {
+      current_iter_p_ = get_iterator_p (alternative_cons_l_->car_);
+      do_main_b_ = false;
+    }
+}
+
+void
+Unfolded_repeat_iterator::do_process_and_next (Moment m) 
+{
+  if (!m)
+    {
+      bool success = report_to_l ()->try_music (music_l_);
+      if (!success)
+       music_l_->warning ( _("No one to print a volta bracket"));
+    }
+  while (1)
+    {
+      while (!current_iter_p_->ok ())
+       {
+         next_element();
+
+         if (!current_iter_p_)
+           return;
+       }
+      
+      if (m - done_mom_ >= current_iter_p_->next_moment ())
+       current_iter_p_->process_and_next (m - done_mom_);
+      else
+       return;
+    }
+}
+  
+void
+Unfolded_repeat_iterator::do_print () const
+{
+#ifndef NPRINT
+  DOUT << "count " << done_count_ << "done time " << done_mom_ << '\n';
+  DOUT << "current: ";
+  current_iter_p_->print();
+#endif
+}
index 6755df855bd9ae5111ade081630176341a53d50d..b4051d111a8e5059271082d6437b6980424e052f 100644 (file)
@@ -46,10 +46,10 @@ accBayanbaseEE = \script "accBayanbaseEE"
 accBayanbaseTEE = \script "accBayanbaseTEE"
 
 accStdbase = \script "accStdbase"
-accStdbaseTp = \script "accStdbaseTp"
-accStdbaseT = \script "accStdbaseT"
-accStdbaseBp = \script "accStdbaseBp"
-accStdbaseM = \script "accStdbaseM"
+accStdbaseFE = \script "accStdbaseFE"
+accStdbaseTFE = \script "accStdbaseTFE"
+accStdbaseMES = \script "accStdbaseMES"
+accStdbaseTFMES = \script "accStdbaseTFMES"
 
 accSB = \script "accSB"
 accBB = \script "accBB"
index 68c497d4ee3a553564f6ff0dbf464a1be8ab5cf8..cd93221d6c4277632c633413a61beb35c39980f2 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.16";
+\version "1.0.19";
 
 
 \include "declarations.ly"
index ce8bcabc70c2cc546a8afc11f309e5a31a6e5b59..1e1140e6919ef16749fe37f7988008f7543798b4 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.16";
+\version "1.0.19";
 
 
 \include "declarations.ly";
index 08b7fbc43a1e6c8f272cfe43db455efb75b22ec3..4f962b8f8ffc3156a56cb8669012a5610634bd46 100644 (file)
@@ -1,7 +1,7 @@
 % Toplevel initialisation file. 
        
 
-\version "1.0.16";
+\version "1.0.19";
 
 
 \include "declarations.ly"
index 48a1303fdea7d1fdc38cd0dbe208f817b4702109..ee1fbdb1d494cbe03d57c7e8859875cdda85c844 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.16";
+\version "1.0.19";
 
 
 \include "declarations.ly"
index 17f5ed75fc6bcf984fc3253f4bab101b6349359b..a8cd08113053bff14d51a0bff7e478c983485040 100644 (file)
@@ -2,31 +2,31 @@
 % declare the standard dynamic identifiers.
 %
 
-pppppp = \absdynamic { "pppppp" }      
-ppppp = \absdynamic { "ppppp" }
-pppp = \absdynamic { "pppp" }
-ppp = \absdynamic { "ppp" }
-pp = \absdynamic { "pp" }
-p = \absdynamic { "p" }
-mp = \absdynamic { "mp" }
-mf = \absdynamic { "mf" }
-f = \absdynamic { "e" }                        % see feta-din layout
-ff = \absdynamic { "ff" }
-fff = \absdynamic { "fff" }
-ffff = \absdynamic { "ffff" }
-fffff = \absdynamic { "fffff" }
-ffffff = \absdynamic { "ffffff" }
-fp = \absdynamic { "fp" }
-sf = \absdynamic { "sf" }
-sff = \absdynamic { "sff" }
-sfz = \absdynamic { "sfz" }
-fz = \absdynamic { "fz" }
-sp = \absdynamic { "sp" }
-spp = \absdynamic { "spp" }
-rfz = \absdynamic { "rfz" }
+pppppp = \textscript"pppppp" "dynamic" 
+ppppp = \textscript"ppppp" "dynamic"
+pppp = \textscript "pppp" "dynamic"
+ppp = \textscript "ppp" "dynamic"
+pp = \textscript "pp" "dynamic"
+p = \textscript "p" "dynamic"
+mp = \textscript "mp" "dynamic"
+mf = \textscript "mf" "dynamic"
+f = \textscript "e" "dynamic"                  % see feta-din layout
+ff = \textscript "ff" "dynamic"
+fff = \textscript "fff" "dynamic"
+ffff = \textscript "ffff" "dynamic"
+fffff = \textscript "fffff" "dynamic"
+ffffff = \textscript "ffffff" "dynamic"
+fp = \textscript "fp" "dynamic"
+sf = \textscript "sf" "dynamic"
+sff = \textscript "sff" "dynamic"
+sfz = \textscript "sfz" "dynamic"
+fz = \textscript "fz" "dynamic"
+sp = \textscript "sp" "dynamic"
+spp = \textscript "spp" "dynamic"
+rfz = \textscript "rfz" "dynamic"
 
 % 1st arg dynamic (louder/softer). 2nd arg spantype
-cr = \spandynamic { \bigger \start } 
-decr = \spandynamic { \smaller  \start }
-rc = \spandynamic { \bigger  \stop }
-rced = \spandynamic { \smaller \stop }
+cr = \spanrequest \start "crescendo"
+decr = \spanrequest  \start "decrescendo"
+rc = \spanrequest   \stop "crescendo"
+rced = \spanrequest \stop "decrescendo"
index 45bbe4ac3ece6e3e44d1c5af509b1123d4ebadda..bb9afa28e9498a12270acd385de75489360691f2 100644 (file)
@@ -50,6 +50,7 @@ StaffContext=\translator {
 
 
        \consists "Separating_line_group_engraver";
+       \consists "Font_size_engraver";
          
        \accepts "Voice";
        dynamicStyle = "dynamic";
@@ -61,12 +62,14 @@ StaffContext=\translator {
        \name ChoirStaff;
        alignmentReference = \center;   
        \consists "Staff_group_bar_engraver";
+
        \consistsend "Axis_group_engraver";
        \accepts "Staff";
        \accepts "RhythmicStaff";
        \accepts "GrandStaff";
        \accepts "PianoStaff";
-       
+
+               
        \accepts "Lyrics";
        \accepts "ChordNames";
 }
@@ -89,7 +92,7 @@ RhythmicStaffContext=\translator{
 \translator{\RhythmicStaffContext}
 VoiceContext = \translator {
        \type "Engraver_group_engraver";
-       \consists "Dynamic_engraver";
+       \consists "Dynamic_engraver";   % must come before text_engraver.
        \name Voice ;
        beamAuto = "1";
        
@@ -99,7 +102,7 @@ VoiceContext = \translator {
        \consists "Beam_engraver";
        \consists "Auto_beam_engraver";
        \include "auto-beam-settings.ly";
-       \consists "Abbreviation_beam_engraver";
+%      \consists "Abbreviation_beam_engraver";
 %      \consists "Multi_measure_rest_engraver";
 
        % ugh.  Order matters here.
@@ -168,12 +171,13 @@ StaffGroupContext= \translator {
        \consists "Separating_line_group_engraver";
        \consists "Lyric_engraver";
        \consists "Extender_engraver";
-       \consists "Beam_req_swallow_translator";
 }
 
 \translator {
        \type "Engraver_group_engraver";
        \name Lyrics;
+       \consists Vertical_align_engraver;%need this for getting folded repeats right.
+
        \consistsend "Axis_group_engraver";
        
        \accepts "LyricVoice";
index 6715f97705c611f3c725407561094a9675c7a976..c6d18c374c5f83c042c651d04730cb009c60aa07 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.16";
+\version "1.0.19";
 
 
 \include "declarations.ly"
index 5aacc264c1dcff241a3ea16f7ad561f6ab89d05e..0b32b36d0b6404424a4594cdc41509261e505f98 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.16";
+\version "1.0.19";
 
 
 \include "declarations.ly"
index d4b1857f6bf44ac201a21925e87cc8f0c1a404d1..5951158137e6272026f036ea24f66bc272b321ad 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.16";
+\version "1.0.19";
 
 
 \include "declarations.ly";
index 0395103e5f8dea2dd83b07253e32218aeef929a4..9e43e3d773a39e994155c15086c06a68f1296e62 100644 (file)
@@ -1,6 +1,6 @@
 % Toplevel initialisation file. 
        
-\version "1.0.16";
+\version "1.0.19";
 
 
 \include "declarations.ly"
index 2e1f00139dc494a80023e47bf5b51922ce795089..e7b0b5c41422aa9a99397bf0df837fb46b24c347 100644 (file)
@@ -2,7 +2,7 @@
 
 
 
-\version "1.0.16";
+\version "1.0.19";
 
 paper_sixteen = \paper {
        staffheight = 16.0\pt;
index 92662e2ad45e048a613bb70d9a055a51e9b8f4af..39cba96769bb3b804c2aeb0b8b66208c468e361e 100644 (file)
@@ -1,7 +1,7 @@
 % paper20.ly
 
 
-\version "1.0.16";
+\version "1.0.19";
 
 paper_twenty = \paper {
        staffheight = 20.0\pt;
index 78f8b443a5674ded4b26821e794879f2ee967089..a4e4fca95074012b4d0b2592f01f0936fcb04127 100644 (file)
@@ -85,7 +85,7 @@
 
 
        \name Score;
-       instrument = piano;
+       instrument = "bright acoustic";
        \accepts Staff;
        \accepts GrandStaff;
        \accepts PianoStaff;
index 9d98c77b4a18e9c55edae85a32f59d040c5bde95..354d0f5664d48856c5cde856b983cdf5a2f51b12 100644 (file)
@@ -35,6 +35,11 @@ textalignment                -1      left alignment of text
 textalignment          0       center alignment of text
 textalignment          1       right alignment of text
 
+beamAuto                0/1     auto-beam on/off
+beamAutoEnd            "num/den"    end auto-beam
+beamAutoEnd_8          "num/den"    end auto-beam of 8ths
+beamAutoEnd_16         "num/den"    end auto-beam of 16ths
+
 [Score?]
 beamslopedamping       0       no damping              \beamslopeproportional  
 beamslopedamping       1       damping1)               \beamslopedamped
@@ -59,11 +64,6 @@ barAuto                      1       auto-generate bar every measure
 barAtLineStart         0/1     generate bar at beginning of line
 
 [Staff]
-beamAuto                0/1     auto-beam on/off
-beamAutoEnd            "num/den"    end auto-beam
-beamAutoEnd_8          "num/den"    end auto-beam of 8ths
-beamAutoEnd_16         "num/den"    end auto-beam of 16ths
-
 timeSignatureStyle     C       Use C and stroked C for 4/4,2/2
 timeSignatureStyle     old     Use old style mensuration marks
 timeSignatureStyle     1       Use single number
index 1d885c7920faf1094b892d44d92d5033f34c3e93..e81890bf2da83a707bad08164fca5c3acf15e5c1 100644 (file)
@@ -7,7 +7,7 @@ $(outdir)/%.ly: %.lym4
 
 $(outdir)/%: %.in
        rm -f $@
-       cat $< | $(sed-atfiles) | $(sed-atvariables) > $@
+       cat $< | sed $(sed-atfiles) $(sed-atvariables) > $@
 
 
 
index d93780891c11f75ad16e0814577a23a344494d0a..8e5be96a5a7f83c647e3fddf2bd67648d9d191f4 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Titel: LilyPond
-Versie: 1.1.42
-Inschrijf datum: 10MAY99
+Versie: 1.1.43
+Inschrijf datum: 17MAY99
 Beschrijving: @FLAPTEKST@
 Trefwoorden: muziek typezetten midi notatie
 Auteur: hanwen@stack.nl (Han-Wen Nienhuys)
        janneke@gnu.org (Jan Nieuwenhuizen)
 Onderhouden door: hanwen@cs.ruu.nl (Han-Wen Nienhuys)
 Voornaamste plek: sunsite.unc.edu /pub/Linux/apps
-       770k lilypond-1.1.42.tar.gz 
+       770k lilypond-1.1.43.tar.gz 
 Oorspronkelijke plek: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       770k lilypond-1.1.42.tar.gz 
+       770k lilypond-1.1.43.tar.gz 
 Copi-eer voorwaarden: GPL
 End
index a652441b1d4512fea8cd6024880c6d629f8b60fc..118e4d489816be75c6166dac628052d3f6adbf59 100644 (file)
@@ -1,7 +1,7 @@
 Begin3
 Title: LilyPond
-Version: 1.1.42
-Entered-date: 10MAY99
+Version: 1.1.43
+Entered-date: 17MAY99
 Description: 
 LilyPond is the GNU Project music typesetter.  This program can print
 beautiful sheet music from a music definition file.  It can also play
@@ -14,8 +14,8 @@ Author: hanwen@cs.ruu.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
-       770k lilypond-1.1.42.tar.gz 
+       770k lilypond-1.1.43.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       770k lilypond-1.1.42.tar.gz 
+       770k lilypond-1.1.43.tar.gz 
 Copying-policy: GPL
 End
index af07e574468ab5cfd249917cec508262ec6fce7d..139e2594fbf78a8f3a1c389a6d5bb4cea7cf6adb 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 1.1.42
+Version: 1.1.43
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.42.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.43.tar.gz
 Summary: A program for printing sheet music.
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 Packager: Han-Wen Nienhuys <hanwen@cs.uu.nl>
index 07d293704e107cd0ba2a417d1153fb289c76a316..47b5cd6a9037658ac48aedeb984e9edab058187f 100644 (file)
@@ -23,7 +23,10 @@ else
 outdir=out
 endif
 
+# user package
 stepdir = $(stepmake)/stepmake
+# for stepmake packageg
+# stepdir = $(depth)/stepmake
 
 STEPMAKE_TEMPLATES := generic $(STEPMAKE_TEMPLATES) 
 LOCALSTEPMAKE_TEMPLATES:= generic $(LOCALSTEPMAKE_TEMPLATES)
index 190e7e576d7b623d7d33d6cd3c2affd1edf5bea9..5c016724e99eefb9ceb5236c2b08349d3b30c11a 100644 (file)
@@ -1,6 +1,6 @@
 % -*- Fundamental -*-
 
-accreg_dot_size# := .6interline#;
+accreg_dot_size# := .5interline#;
 accreg_linethickness# := 1.3stafflinethickness#;
 
 % This dimention is the same on all registersymbols.
index e78e43ae173b172170fb1014275cd1e767387f1e..25b95171883962405adba2ee74c068b866fa7da3 100644 (file)
   (let* ((keywords '("alternative" "repeat"
                     "accepts" "accidentals" "break" "bar" "cadenza" 
                     "clef" "cm" "consists" "consistsend" "contains" "duration" 
-                    "absdynamic" "scmfile" "lyrics"
+                    "spanrequest" "scmfile" "lyrics"
                     "in" "translator" "context" "key" "maininput" "notes"
                     "musical_pitch" "time" "midi" "mm" "header"
                     "notenames" "octave" "output" "partial" "paper" "plet" "name"
                     "property" "pt" "shape" "relative" "include" "score"
                     "scm" "scmfile"
-                    "script" "skip"  "table" "times" "spandynamic" "symboltables" "type"
+                    "script" "skip"  "table" "times" "textscript" "symboltables" "type"
                     "tempo" "transpose" "version" "grouping"
                     ))
        (kwregex (mapconcat (lambda (x) (concat "\\\\" x))  keywords "\\|")))
index f3e771414e46eaf67753061a976a8f1be19cfb5f..58ef2d7a1d0a5714cef0d339fe26fe72581a03b5 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "global.ly"
 \include "violoncello.ly"
index a2c61557c70c0d9b620358d963a2119fff3edcd3..4dac9d5a0a46e5214872205272c3447be326e521 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "global.ly"
 \include "clarinetti.ly"
index 2ba9a145a84f38c9cf9e43f5eb780b3cd28e7fcb..f749b3337b4002e328b314e70bc53835f0e9f1e6 100644 (file)
@@ -9,13 +9,13 @@ copyright =    "public domain";
 
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "clarinetto-1.ly"
 \include "clarinetto-2.ly"
 
 $clarinetti_staff = \context Staff = clarinetti <
-       \property Staff.midi_instrument = "clarinet"
+       \property Staff.midiInstrument = "clarinet"
        \property Staff.instrument = "2 Clarinetti (B\\textflat)"
        \property Staff.instr = "Cl. (B\\textflat)"
        % urg: can't; only My_midi_lexer:<non-static> () parses pitch?
index 29ecb9c21c87dd99832d74bd18d261808a1b8b4e..011fc4b94614c788b42866268c58b2a773e76615 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 clarinetto1 = \notes \relative c {
        R1 *2 | d''4-.\ff r r2 | R1 *3 | e4-. r r2 | R1 *3 |
index 23087514880e7e73f6a49fd6404f5d64cb908592..2d9b6c1d277a9d1341bc7a1ad9fcfbb25117dfad 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 clarinetto2 = \notes \relative c { 
        R1*2 bes''4-.\ff r r2 | R1*3 | cis4-. r r2 | R1 *3 | 
index 224f28298fc9e39303879dba7b4889a045600042..ecf33ea66f4d9281ed2ff02213ade2c05023cbd4 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "global.ly"
 \include "contrabasso.ly"
index cb879ccfe281ec151dfac97b26b866fa3889b8d0..5bc30649fff327c24ad9d9a3967381a6f595a474 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 contrabasso = \notes \relative c {
 %      \translator Staff=violoncello
@@ -140,7 +140,7 @@ contrabasso = \notes \relative c {
 }
 
 $contrabasso_staff = \context Staff = contrabasso <
-       \property Staff.midi_instrument = "contrabass"
+       \property Staff.midiInstrument = "contrabass"
        \property Staff.instrument = "Contrabasso"
        \property Staff.instr = "Cb."
        \clef "bass";
index 9d24ed2e6127b81e9a4c63ab5026ca7469b292b1..2154b4118ff8c6c88411abf419c708d139a42a2f 100644 (file)
@@ -1,7 +1,7 @@
 \paper {
        \translator { \OrchestralPartStaffContext }
        \translator { \ScoreContext
-               SkipBars = 1;
+               skipBars = 1;
        }
        castingalgorithm = \Wordwrap;
        
index 5779e199c1d773c1c32d5b227041a6721bf540ac..1d962bb2b4e2f949e80015353e88b4567275b22e 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "global.ly"
 
index b2e537037ce9c79190d50a2ee8685d144d83073a..d887b9043254f582ee9dceeed9d07e2924644af0 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "global.ly"
 \include "corni.ly"
index 3c418520e3dfc312561812225306ae081044266e..4a1fe5d350472395e69e51e0708f4daa2aa5cc9d 100644 (file)
@@ -9,13 +9,13 @@ copyright =    "public domain";
 
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "corno-1.ly"
 \include "corno-2.ly"
 
 $corni_staff = \context Staff = corni <
-       \property Staff.midi_instrument = "french horn"
+       \property Staff.midiInstrument = "french horn"
        \property Staff.instrument = "2 Corni (E\\textflat)"
        \property Staff.instr = "Cor. (E\\textflat)"
        % urg: can't; only My_midi_lexer:<non-static> () parses pitch?
index 573ba15ba6f086489b66aa45f4293739e8e89bea..9490995a65df5b8a7d75633e50e522c6c1e6c8c0 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 corno1 = \notes \relative c {
        R1 *2 | f''4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
index 41aed2d76a14eb50d7224e26f423237bd9790a0e..4de35788390e6429ba5d1d931116ce707c5f50a3 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 corno2 = \notes \relative c {
        R1 *2 | d''4-.\ff r r2 | R1 *3 | d4-. r r2 | R1 *3 |
index 20e8d5ca2361459c7c930e373038a9697ff53bd6..d2cdd5b509ed5bf46ad147f98878d7d8c3dc414c 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "global.ly"
 \include "fagotti.ly"
index c37d189ad8add33a55a9dc146671316c22d080b9..963dc803ccf7c0682b95a85b6de4e3cbbafc4371 100644 (file)
@@ -9,13 +9,13 @@ copyright =    "public domain";
 
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "fagotto-1.ly"
 \include "fagotto-2.ly"
 
 $fagotti_staff = \context Staff = fagotti <
-       \property Staff.midi_instrument = "bassoon"
+       \property Staff.midiInstrument = "bassoon"
        \property Staff.instrument = "2 Fagotti"
        \property Staff.instr = "Fg."
        \clef "bass";
index 5f49713a57f4808171779f62d1b07ed98a1c9aac..fa1c8fdd890011cce52ff69e04692cfacc9e603f 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 fagotto1 = \notes \relative c {
        R1 *2 | as'4-.\ff r r2 | R1 *3 | as4-. r r2 | R1 *3 |
index f822ed283d226f906d2d16b8e149ca40ab20ca32..6968a3d9db529da49b020af81c76243f660c966b 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 fagotto2 = \notes \relative c {
        R1 *2 | f4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
index 8cc643201850e9f77415a315030b7e38be50ffb7..41897d5b5df3a90b948593de587c889c35de4911 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "global.ly"
 \include "flauti.ly"
index a8ffaf7f09a426a128cce4b364bd26689f0b7134..146d4393d8fe04aa3f4117a3338084c7f1d54ce3 100644 (file)
@@ -9,13 +9,13 @@ copyright =    "public domain";
 
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "flauto-1.ly"
 \include "flauto-2.ly"
 
 $flauti_staff = \context Staff = flauti <
-       \property Staff.midi_instrument = "flute"
+       \property Staff.midiInstrument = "flute"
        \property Staff.instrument = "2 Flauti"
        \property Staff.instr = "Fl."
        \notes \context Voice=flauti < 
index dfe2529d6b579cb44fd667224bed14fd7964ec1b..dc8e42b044d3fd5f1e91dec7dbd6c7caf2090d9b 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 flauto1 = \notes \relative c {
        R1 *2 | c'''4-.\ff r r2 | R1 *3 | d4-. r r2 | R1 *3 |
index 4dc61cc10a88717a5eb9eb944e1443db0b80c66e..fc7ea80f260f2aa7b2617692c3c937802d79c076 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 flauto2 = \notes \relative c {
        R1 *2 | as'''4-.\ff r r2 | R1 *3 | b4-. r r2 | R1 *3 | 
index 946a86e8a954cc337387e228e63dda2b53a4f1f3..29f30c4ac623b96e95a50949101da1305c9a840d 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 global = \notes {
        \time 4/4;
index 7464da33a6fd51b10bd19e17be6b2085a90c6610..14762ae2ae9206bc61897cdc768260c8aeba92d3 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 oboe1 = \notes \relative c'' {
        R1 *2 | as'4-.\ff r r2 | R1 *3 | as4-. r r2 | R1 *3 |
index 1fd042fb15f7e4423b030cb1ac5a970feef8ed3a..6192a67009a9fc6f015cfa172b2879552f8b8366 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 oboe2 = \notes \relative c{
        R1 *2| f''4-.\ff r r2 | R1 *3 | f4-. r r2 | R1 *3 |
index 9d605f1b97df5eeefe56fca9a790e6cf4863c0db..def281f8ab98e7a8d4450d6d7d85317680bf7cbb 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "global.ly"
 \include "oboi.ly"
index cfff9dd963cfb041f644179fbc516b880eee3638..d11b71327fb6fc6bd1ade3e6667f9ad902f9e36c 100644 (file)
@@ -9,13 +9,13 @@ copyright =    "public domain";
 
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "oboe-1.ly"
 \include "oboe-2.ly"
 
 $oboi_staff = \context Staff = oboi <
-       \property Staff.midi_instrument = "oboe"
+       \property Staff.midiInstrument = "oboe"
        \property Staff.instrument = "2 Oboi"
        \property Staff.instr = "Ob."
        \notes \context Voice=oboi < 
index 60b4ca0a40bf47b063b24fa21a9d58b1c9338b72..47eac136a94e96206d4598ac469df23c57541a43 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 timpani = \notes \relative c {
        R1 *2 | c4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
@@ -21,7 +21,7 @@ timpani = \notes \relative c {
 }
 
 $timpani_staff = \context Staff = timpani <
-       \property Staff.midi_instrument = "timpani"
+       \property Staff.midiInstrument = "timpani"
        \property Staff.instrument = "2 Timpani (C-G)"
        \property Staff.instr = "Timp."
        \clef "bass";
index d05551831511e438227d5ca9ad71b0f08dd84f05..4db3dddbec6b872fe635e02a6649a998c81126f2 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "global.ly"
 \include "trombe.ly"
index 07ac2bce1d233a9be96937ee4f75ac4e7f442d62..54fe26bdc66d3362119eef76b87692cf89b945ce 100644 (file)
@@ -9,13 +9,13 @@ copyright =    "public domain";
 
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "trombo-1.ly"
 \include "trombo-2.ly"
 
 $trombe_staff = \context Staff = trombe <
-       \property Staff.midi_instrument = "trumpet"
+       \property Staff.midiInstrument = "trumpet"
        \property Staff.instrument = "2 Trombe (C)"
        \property Staff.instr = "Tbe."
        \notes \context Voice=trombe < 
index 888ea5807c33082be02dbeec653c05cbc1e4927d..f302239fe5420d705b1adb5025dcc7f93982e940 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 trombo1 = \notes \relative c {
        R1 *2 | c''4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
index e4b3ec8ca406065871867455001ede6da91e9b7f..49235bf749808b13d7e21729d1c0fac76b14210a 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 trombo2 = \notes \relative c {
        R1 *2 | c'4-.\ff r r2 | R1 *3 | c4-. r r2 | R1 *3 |
index b9d80bde3f13cbbb811a7ee76b270fe9f743e17a..78ca458dfece6786c34e77584d8d27b95bb8c6c9 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 viola1 = \notes \relative c {
        \context Voice=one
@@ -292,7 +292,7 @@ viola1 = \notes \relative c {
 
 % $viola1_staff = \context Staff = viola1 <
 $viola1_staff = \context Staff = violai <
-       \property Staff.midi_instrument = "viola"
+       \property Staff.midiInstrument = "viola"
        \property Staff.instrument = "Viola"
        \property Staff.instr = "Vla."
        \clef "alto";
index 78137f47fbbf9ef0d4075c6460398d2d78acfbae..57488543b5c24c9be74e024b312de7dc26fc569f 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 viola2 = \notes \relative c {
        % starts on (actualy, most part is on) same staff as viola1
@@ -32,7 +32,7 @@ viola2 = \notes \relative c {
 
 % $viola2_staff = \context Staff = viola_2 <
 $viola2_staff = \context Staff = violaii <
-       \property Staff.midi_instrument = "viola"
+       \property Staff.midiInstrument = "viola"
        \property Staff.instrument = "Viola II"
        \property Staff.instr = "Vla. II"
        \clef "alto";
index cb8cdbaf18ea8d2656b519a13f2187e18fbb2995..1d32273d91df660afa5aae010b37430f7b775170 100644 (file)
@@ -7,14 +7,14 @@ enteredby =    "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "global.ly"
 \include "viola-1.ly"
 \include "viola-2.ly"
 
 $viola_staff = \context Staff = violai <
-       \property Staff.midi_instrument = "viola"
+       \property Staff.midiInstrument = "viola"
        \property Staff.instrument = "Viola"
        \property Staff.instr = "Vla."
        \clef "alto";
index 5bb957b4fd96ac7b73dc2b09807bf3bd59a46212..525541b9d7ec1dc0dc8aa07366d9ceedac5b6556 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "global.ly"
 \include "violino-1.ly"
index e3eb7ce8d302b40fdf713e30442d30ea481a9c5b..0ed1155615e726184569252a813683d1e75753ad 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 violino1 = \notes \relative c {
        c'1\ff ~ | c | <f4-. c'-. as'-.> r r2 | R1 |
@@ -273,7 +273,7 @@ violino1 = \notes \relative c {
 }
 
 $violino1_staff = \context Staff = violino1 <
-       \property Staff.midi_instrument = "violin"
+       \property Staff.midiInstrument = "violin"
        \property Staff.instrument = "Violino I"
        \property Staff.instr = "Vl. I"
        \notes< 
index 820bebbdbc0eff8f24a23f55608522f75097db54..c9a83493bd0da63f9fe26845fd8f18dab4db4158 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "global.ly"
 \include "violino-2.ly"
index 4c8119367613f4fe17dfa5faa3bdb937c31921ba..dc3afe6c098c4c0bab00aa3fe76b024289fa42c2 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 violino2 = \notes \relative c {
        c'1\ff ~ | c | <f4-. c'-. as'-.> r r2 | R1 |
@@ -293,7 +293,7 @@ violino2 = \notes \relative c {
 $violino2_staff = \context Staff = violino2 <
        % MIDI hoort geeneens verschil tussen een
        % eerste en tweede viool ;-)
-       \property Staff.midi_instrument = "violin"
+       \property Staff.midiInstrument = "violin"
        \property Staff.instrument = "Violino II"
        \property Staff.instr = "Vl. II"
        \notes< 
index d92816b4ecbdada58838b5868b97a262f5e7517a..e7ab26480184d8fb930a1e57c9e778e5c7defe8f 100644 (file)
@@ -7,7 +7,7 @@ enteredby =      "JCN";
 copyright =     "public domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "global.ly"
 \include "violoncello.ly"
index f35c3d7769b640711fe678c1b81836c1278e1f9a..d6c13a21a9632f96c531784e7a7f43c140ffbb68 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 violoncello = \notes \relative c {
        c1\ff ~ | c | f,4-. r r2 | r1 | c'1\ff ~ | c | f,4-. r r2 |
@@ -300,7 +300,7 @@ violoncello = \notes \relative c {
 }
 
 $violoncello_staff = \context Staff = violoncello <
-       \property Staff.midi_instrument = "cello"
+       \property Staff.midiInstrument = "cello"
        \property Staff.instrument = "Violoncello"
        \property Staff.instr = "Vc."
        \clef "bass";
index b61ec33a3ea093e926ea0c30247f3caa2cddf1b7..767eb6d53faaab5e699981afb4f39c59315d0a0e 100644 (file)
@@ -807,4 +807,4 @@ Bar_number_engraver;}}
 
 ----------------------------------------------------
 
-\version "1.0.16";
+\version "1.0.19";
index 13ce839c8c4e30c4cbcf41accfc0766be3e7aa8f..710fee7651bc485714dcab3e83d713048ee95eff 100644 (file)
@@ -266,4 +266,4 @@ s1
 \paper{barsize=50.0; \translator {\StaffContext \consists
 Bar_number_engraver;}}
 }
-\version "1.0.16";
+\version "1.0.19";
index 03df3984fe945419bb594c22f8ed60492b8a02f9..0c2555a10b8c841fd56365f9833e1ad70a6be08c 100644 (file)
@@ -336,4 +336,4 @@ g,4. |
 Bar_number_engraver;}}
 }
 
-\version "1.0.16";
+\version "1.0.19";
index bfda05aac78977bc60306208117aeed87605433e..a83ded214bdba94adbae2f9798f3c8776f82f9c9 100644 (file)
@@ -251,4 +251,4 @@ LHtoL = { \tolower \stemdown }
  
 
 }
-\version "1.0.16";
+\version "1.0.19";
index 4d1dab4d5318236adbcd7802306933062cfc7534..bbff16daa954d33e7973a2f4fbd49dc0ff2359ec 100644 (file)
@@ -311,4 +311,4 @@ s8 [c''16 g'8 fis'16] [bes'' g' f' ees'] |
  \paper{barsize=50.0; \translator {\StaffContext \consists
 Bar_number_engraver;}}
 }
-\version "1.0.16";
+\version "1.0.19";
index 50f75d7dc0078ca07c67cb1e3478dd776dbf8a50..d54e3abbb3d75e0e4cd1caecc3194d9d2f5b4516 100644 (file)
@@ -17,7 +17,7 @@ title = "Verso II";
        under the Gnu Public Licence.
 %}
        
-\version "1.0.16";
+\version "1.0.19";
 
 $voice_one = \notes \relative c' {
        a'2 bes4. [c16 bes] | a4 d ~ d c ~ | c b ~ [b8 a] a4 ~|
index 7cc91b517a64eb0134f759d78f56bef4d9841e81..7a313540c52f2bd1b3901cc6fc5064a024d63bc6 100644 (file)
@@ -12,7 +12,7 @@
  Tested Features: cross staff beams and slurs, grace notes, no bars
 %}
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "nederlands.ly"
 
index 010aedb0b1f4c4f4fe0a536101a81a1131732897..3222aed515f8105a209b41799c12afa5f328e4c3 100644 (file)
@@ -12,7 +12,7 @@
  Tested Features:
 %}
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "nederlands.ly"
 
index abbf68a2300823a9011a12d97676c0f588126ca1..b79169a71431dadc90034e0e1e43b175d240177f 100644 (file)
@@ -9,6 +9,6 @@ description = "A schubert song in 16 pt";
 copyright =     "public domain";
 } 
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "standchen.ly"
index 8d0d5d468ad89abdca19345922569d2d3c8ddc1a..35480ad44aa905f8c2c8a636c7982743b0b02156 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 description = "A schubert song in 20 pt";
 } 
 
-\version "1.0.16";
+\version "1.0.19";
 
 % fool make-website
 % \include "standchen.ly";
index 16ad602cd5e5aecde104af13beb415dcfed15f81..3e9096f8ec31d51c1e9d0e5792a3ac51d5de3b00 100644 (file)
@@ -16,7 +16,7 @@ multiple \paper{}s in one \score
 Note: Original key F.
 %}
 
-\version "1.0.16";
+\version "1.0.19";
 
 $vocal_verse1 = \notes\relative c''{
        % ugh: treble/bass
index 57735bf9842bdc1d2d5bdce17424f11ff81fdf33..4f28bd2703964efe6cdd96f8d940df97e73c5041 100644 (file)
@@ -6,7 +6,7 @@ date = "1868";
 title = "Diademata";
 metre = "6 6. 8 6. D";
 }
-\version "1.0.16";
+\version "1.0.19";
 
 sop=\notes \transpose c''{
        ees2  | ees4 ees4 g2 g2 |  c'1.  \bar "||";
index 1541d103e132677522982fd3c115fa87a22e4418..5a5f21c891a20a7b197a786ddf1eb54114cb92c1 100644 (file)
@@ -4,7 +4,7 @@ composer = "Parry";
 metre = "10 10 . 11 11";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 sop = \notes \transpose c''{
        f4 | d' bes c' | f2 \bar "||";
index 52e100e95838f4adea492189dcc1b7830a9d3dad..61af28cb6bebcc4c093384bf1bb5501a95e4497f 100644 (file)
@@ -7,7 +7,7 @@ title = "Maccabaeus";
 metre = "10 11. 11 11. and refrain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 sop=\notes \relative c'' {
        b2 gis4. a8  |b2 e,2 |
index 38116d4b34f4efef3f3859ef38eb29025e064868..5f59a39a5d7722e75e644cdc5503dfa4243d867a 100644 (file)
@@ -7,7 +7,7 @@ title = "Ode to Joy";
 metre = "8 7 8 7 D";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 sop=\notes \relative c'' {
        b4 b c d | d c b a | g g a b | b4. a8 a2 \bar "||";
index 825dfc202a25f3ad32a124071ab9845b75a2318c..20b145ca573a31feab6d08c53a9fd9da3167ed83 100644 (file)
@@ -8,7 +8,7 @@ poet = "Joseph Mohr";
 }
 
 
-\version "1.0.16";
+\version "1.0.19";
 
 global=\notes {
              \time 6/4;
index 99c3c005c4581ed06e3edc75d91f988d7775ecaf..1de961a843439b4dae552b07da01a3cc511052fb 100644 (file)
@@ -4,7 +4,7 @@
        piece = "Allemande";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 global = \notes{
        \time 4/4;
index 87bc4fdc06cf22964a7f10c82ed03cf4fdc4d857..d28fca30b1ab515f3d4dbceae6b29e42ce83795e 100644 (file)
@@ -10,7 +10,7 @@
 %% 
 %% Noe liknende skjer ogsÃ¥ i mellom andre og tredje stemme i takt 28
 
-\version "1.0.16";
+\version "1.0.19";
 
 global = \notes{
        \time 2/4;
index 7bd1dd7b5f56ae199c94193b4303cbf1efbb7385..30d3c93c3c37cbc9ef2c5f96bcb7a5d91e87b65a 100644 (file)
@@ -10,7 +10,7 @@
   copyright =   "Public Domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 global = \notes {
        \time 4/4;
index 9659b5d23b993ad26bd31e5b8355dff426b7c8c8..1aea92781d8dc61c95f484bb6311d690d961f29d 100644 (file)
@@ -12,7 +12,7 @@ enteredby =    "jcn";
 copyright =     "public domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 % upper = \context Staff \notes\relative c {
 upper = \context Staff=upper \notes\relative c {
index 1b6a870fd137b0c3fabc9199de3db64409a48ad3..62fc254829dd18bb9b5ea128da04fcb3ad23ae0c 100644 (file)
@@ -10,7 +10,7 @@ enteredby =    "jcn";
 copyright =     "public domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 upper = \context Staff \notes\relative c{
        \context Voice=i
        \property Voice . textstyle = "italic"
index 9e8c5b9bb22da37616f1d398fb345516ce6bb415..c5ad7649c23e8b2959ce3c688b7f886485c604fa 100644 (file)
@@ -8,7 +8,7 @@ composer =      "Johann Sebastian Bach (1685-1750)";
 enteredby =    "jcn";
 copyright =    "public domain";
 }
-\version "1.0.16";
+\version "1.0.19";
 
 one = \context Staff \notes\relative c {
        \context Voice=i
index 30d30a0bde9504be3d23f533ed69268291836bec..0727edd6bd67d96f9a25031aa92d28efd06e7841 100644 (file)
@@ -8,7 +8,7 @@ composer =      "Johann Sebastian Bach (1685-1750)";
 enteredby =    "jcn";
 copyright =    "public domain";
 }
-\version "1.0.16";
+\version "1.0.19";
 
 
 upper = \context Staff \notes\relative c{
index 040a27c6a2e1777f67a61d3e9e53e1702b374dc4..1cf5f26662ff28a7b5458be326ebba265e1bdaed 100644 (file)
@@ -8,7 +8,7 @@ composer =      "Johann Sebastian Bach (1685-1750)";
 enteredby =    "jcn";
 copyright =    "public domain";
 }
-\version "1.0.16";
+\version "1.0.19";
 
 
 one = \context Staff \notes\relative c{
index f6e37ada8c04630b1c7414e7fc87b5ed78df4652..102689731681528a18113f1b282a33b78c6a357c 100644 (file)
@@ -104,4 +104,4 @@ allemande = \context Staff \notes<
 >
 
 
-\version "1.0.16";
+\version "1.0.19";
index 25d8b797f2beb70de21bede477790450a97b9584..f643af802110026db659a8cff26c81b62fc83738 100644 (file)
@@ -91,4 +91,4 @@ courante = \context Staff \notes<
  \$courante_b
 >
 
-\version "1.0.16";
+\version "1.0.19";
index ebffb4bbbf23a89dadcfc7df38203c32acdfd910..638f519953fa8617e3b8ed9449d0e6ecf74bbc5b 100644 (file)
@@ -106,4 +106,4 @@ gigue = \notes<
        \$gigue_b
 >
 
-\version "1.0.16";
+\version "1.0.19";
index e351e611f4a61b366180c3629ed4ffed69e01eb8..4a750a49bbe913d23dbd41540490652aaf6ebf0a 100644 (file)
@@ -156,4 +156,4 @@ menuetto_ii = \context Staff\notes \relative c {
        d2.
 }
 
-\version "1.0.16";
+\version "1.0.19";
index 858a55d4aeb7425e76d778c3cd2fb56f3ffa2510..c3dc87ebaf16378db5be22a3e545db68f65c2e01 100644 (file)
@@ -15,7 +15,7 @@ copyright =    "public domain";
  dotted slurs
 %}
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "prelude-urtext.ly";
 
index e03d4d703014f599b5930930aa8cbc289a1ec194..f328ff2e3a684dfdd8c02810643d9b7b3671bf87 100644 (file)
@@ -280,4 +280,4 @@ prelude = \context Staff \notes<
        \$prelude_b
 >
 
-\version "1.0.16";
+\version "1.0.19";
index 47816c7ac65a811e71c124bfe6c8a696b14e084c..1bab6e0727c24068d2ae7dfca87c5a1fe08f9de0 100644 (file)
@@ -15,7 +15,7 @@ copyright =    "public domain";
  dotted slurs
 %}
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "prelude-urtext.ly";
 
index 2cf94f0089c797e6f0fbafb92579f3839d4f0982..6e5124bbc5dae65108afa4653164a68d5a923c2b 100644 (file)
@@ -92,4 +92,4 @@ sarabande = \context Staff \notes<
        \$sarabande_b
 >
 
-\version "1.0.16";
+\version "1.0.19";
index 9d6ea2e36f4a4c27ab3f56bc14797247a5d79a67..4dadc022320d3934e7f9f8c5509fa48e8d6962d5 100644 (file)
@@ -16,4 +16,4 @@ $viola_i_staff = \context Staff = viola <
        \clef alto;
        \$global_i
 >
-\version "1.0.16";
+\version "1.0.19";
index c6791b7e2e7cd52c20989b3e3addef83b4cd5642..0d3fff5b460f06406f35e496df17c55d5c1081a3 100644 (file)
@@ -37,4 +37,4 @@ $violino_i_staff = \context Staff = violino <
        >
        \$global_i
 >
-\version "1.0.16";
+\version "1.0.19";
index 81f1c355567eed28ea649af2b76e9fb88feb5f94..d347fda26540241c5c7d2a1e92eade237f391a30 100644 (file)
@@ -30,4 +30,4 @@ copyright =    "Public Domain";
        }
 }
 
-\version "1.0.16";
+\version "1.0.19";
index 5d0fb5931bec1adfd360ffa2a7eb8fca2491ae72..58392fc2eac178f245ec37e8c8ff6a988dd926dc 100644 (file)
@@ -30,4 +30,4 @@ copyright =    "Public Domain";
        }
 }
 
-\version "1.0.16";
+\version "1.0.19";
index c886a77fa3cc7ae0bcf649f713a8c2a7415cd1f1..db96ad0e509a7ee5526983257e6b0a53f9d154ab 100644 (file)
@@ -28,4 +28,4 @@ $violoncello_i_staff = \context Staff = violoncello <
        \clef bass;
        \$global_i
 >
-\version "1.0.16";
+\version "1.0.19";
index 811c309f501b31c239c2cfa49aa52feca9573ee6..4a811eb1db3913999b47c7f89b3b14a49a4f05fa 100644 (file)
@@ -11,7 +11,7 @@ copyright =    "Public Domain";
 %{
        
 %}
-\version "1.0.16";
+\version "1.0.19";
 
 
 global = 
index c8a4f036bfc8ad074b793317531ae80cbf2d1938..22948fd8e424ddb75349fe8b0011db078f90bc20 100644 (file)
@@ -19,7 +19,7 @@
    * auto beaming
 %}
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "nederlands.ly"                 % for correct parsing of note names
 
index de30f92b85fee758f23457954df4cb57e7d5fd7f..f7c4d9886e8e03b5af873f4319a7cab8a85aa5eb 100644 (file)
@@ -8,7 +8,7 @@ enteredby =      "Shay Rojansky";
 copyright =     "Public Domain";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 global = 
     \notes {
index a95eefa96054ef7d896e8bd4d700e71fa4fe6908..18e11c3871a0105d79a829f390817cd587f67475 100644 (file)
@@ -383,4 +383,4 @@ bassocontinuo = \notes \relative c'{
         \midi{ \tempo 4 = 100; }
 }
 
-\version "1.0.16";
+\version "1.0.19";
index 39c552a780c3e0b116ace80642c87025f22361ca..70378ad16e598ace49d88972310a407841329b80 100644 (file)
@@ -1,9 +1,9 @@
-\version "1.0.16";
+\version "1.0.19";
 
 corI=\notes\relative c'' {
 \key c;
 
-\property Staff."midi_instrument" = "french horn"
+\property Staff."midiInstrument" = "french horn"
 
 [g8. \f ( a16 ] ) g2 |
 [g8.  ( a16 ] ) g2_"dim." |
@@ -247,7 +247,7 @@ a-. [ gis-. gis-. \< g-.] |
 corII=\notes\relative c'' {
 \key c;
 
-\property Staff."midi_instrument" = "french horn"
+\property Staff."midiInstrument" = "french horn"
 
 R2.*19 |
 r4 r [g8^"solo" \p (\< \! ) e'] |
@@ -412,7 +412,7 @@ c'4-. \fz r^\fermata
 trpI=\notes\relative c'' {
 \key c;
 
-\property Staff."midi_instrument" = "trumpet"
+\property Staff."midiInstrument" = "trumpet"
 
 [d8. ( \f e16 ] ) d2 |
 R2.*30 |
@@ -575,7 +575,7 @@ r4 r8 [c'16^"Flauto" ( d] |
 trpII=\notes\relative c' {
 \key c;
 
-\property Staff."midi_instrument" = "trumpet"
+\property Staff."midiInstrument" = "trumpet"
 
 R2.*31 |
 r4 r^\fermata r8 ^\fermata r |
@@ -677,7 +677,7 @@ g4 \fz r^\fermata
 timpani=\notes\relative c, {
 \clef "bass";
 
-\property Staff."midi_instrument" = "timpani"
+\property Staff."midiInstrument" = "timpani"
 
 r2. | % Ensure that the staff is printed on page 1 of the score.
 R2.*5 |
index 4040324fe7cd336f693876c989867445b20cf6c1..6a06446bc88b442f25ca8caca485c3888d946081 100644 (file)
@@ -8,7 +8,7 @@ copyright =     "Mats Bengtsson, 1999. Free circulation permitted and " +
                "Statens Musikbibliotek, Stockholm, Sweden";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "global.ly"
 \include "wood.ly"
@@ -23,7 +23,7 @@ my_paper = \paper {
   }
   \translator { 
     \ScoreContext
-    SkipBars = 1;
+    skipBars = 1;
     markScriptPadding = "6.0";
     textstyle = "italic";
     textEmptyDimension = 1;
index 18e4e45e72bb905b1891982692d4bc770f7de55b..af45976b133bb3f3c1c0288804bbb04f8b377e6f 100644 (file)
@@ -8,7 +8,7 @@ copyright =     "Mats Bengtsson, 1999. Free circulation permitted and " +
                "Statens Musikbibliotek, Stockholm, Sweden";
 }
 
-\version "1.0.16";
+\version "1.0.19";
 
 \include "global.ly"
 \include "wood.ly"
index 94d79324b928d75716c0540fff388df6b86944b6..64594ba0c7272eb4ed08f2c4b5763160bc3d2d96 100644 (file)
@@ -1,8 +1,8 @@
-\version "1.0.16";
+\version "1.0.19";
 
 viI=\notes\relative c'' {
 
-\property Staff."midi_instrument" = "violin"
+\property Staff."midiInstrument" = "violin"
 
 r4 r [g8.-> \mf ( a16 ] |
 ) g4 r c, \p |
@@ -261,7 +261,7 @@ f ( |
 
 viII=\notes\relative c' {
 
-\property Staff."midi_instrument" = "violin"
+\property Staff."midiInstrument" = "violin"
 
 r4 r e->  \mf ~ |
 e r e ( \p |
@@ -564,7 +564,7 @@ es \< es4 \! d8 \f |
 vla=\notes\relative c' {
 \clef "alto";
 
-\property Staff."midi_instrument" = "viola"
+\property Staff."midiInstrument" = "viola"
 
 [c8. \f ( d16 ] ) c2_"dim." |
 \context Staff <{\voiceone s4 c2 |
@@ -838,7 +838,7 @@ a r c-. r |
 vlc=\notes\relative c' {
 \clef "bass";
 
-\property Staff."midi_instrument" = "cello"
+\property Staff."midiInstrument" = "cello"
 
 r4 r [bes8. \mf ( c16] |
 ) bes4 r bes \p ( |
@@ -1108,7 +1108,7 @@ f ( |
 cb=\notes\relative c {
 \clef "bass";
 
-\property Staff."midi_instrument" = "contrabass"
+\property Staff."midiInstrument" = "contrabass"
 
 r4 r c-> \mf ~ |
 c r c \p ( |
index 6907277f2b8d27ea888fd3cafde334c7eacfff88..0167cbc8e11279edf9e97fb9b52a4f934f9ba2dd 100644 (file)
@@ -1,8 +1,8 @@
-\version "1.0.16";
+\version "1.0.19";
 
 oboe=\notes\relative c'' {
 \clef "treble";
-\property Staff."midi_instrument" = "oboe"
+\property Staff."midiInstrument" = "oboe"
 
 [c8. \f ( d16] ) c2_"dim." |
 [c8. ( d16] ) c2 |
@@ -197,7 +197,7 @@ f4-. \fz r^\fermata
 
 flauto=\notes\relative c''' {
 \clef "treble";
-\property Staff."midi_instrument" = "flute"
+\property Staff."midiInstrument" = "flute"
 
 [c8. \f ( d16] c2 |
 )c,8 r r4 r |
@@ -377,7 +377,7 @@ f4 \fz r^\fermata
 clarI=\notes\relative c'' {
 \key G;
 \clef "treble";
-\property Staff."midi_instrument" = "clarinet"
+\property Staff."midiInstrument" = "clarinet"
 
 [d8. \fp ( e16 ] ) d2 |
 [d8._"dim." ( e16 ] ) d2 |
@@ -613,7 +613,7 @@ g'4-. \fz r^\fermata
 clarII=\notes\relative c'' {
 \key G;
 \clef "treble";
-\property Staff."midi_instrument" = "clarinet"
+\property Staff."midiInstrument" = "clarinet"
 
 [d8. \fp ( e16 ] ) d2 |
 [d8._"dim." ( e16 ] ) d2 |
@@ -820,7 +820,7 @@ b4-. \fz r^\fermata
 
 fagotto=\notes\relative c' {
 \clef "bass";
-\property Staff."midi_instrument" = "bassoon"
+\property Staff."midiInstrument" = "bassoon"
 
 [c8. \f ( d16 ] ) c2_"dim." |
 [c8. ( d16 ] ) c4 r |
index 12f88e3f5030ef808a2aef3f55ac51d2152bf8cd..bb1324dea68c274f7b59781bf517df02253197fe 100644 (file)
@@ -13,7 +13,7 @@ Tested Features: cadenza mode
 Ugh.. Wish we had grace notes....  It adds another dimension to this
 piece of music.  %}
 
-\version "1.0.16";
+\version "1.0.19";
 
 
 cad = \notes  \relative c' {
index 9df0fa7a3e57c805d754979f24e588ed7957b3d8..9d97c5244aeda69928a87aac2935cc2cdf6617cf 100644 (file)
@@ -9,7 +9,7 @@ copyright =      "public domain";
 }
 
 
-\version "1.0.16";
+\version "1.0.19";
 
 allegro =
        \notes
@@ -370,7 +370,7 @@ rondo = \notes      \relative c'
 
 \score
 {
-       {       \property Score.SkipBars = 1
+       {       \property Score.skipBars = 1
                \romanze
        }
                \paper{ \tempo 4 = 70; }        
index e1821b98a4569d3d7542679cc604bec6d469fdfb..8dcbb5fb154a0beb18a149d40e6a5b6838461a40 100644 (file)
@@ -97,7 +97,7 @@ vi1=\context Staff = vi1 <
   r8 [d16 a ][ b8 b16 c] a2 |
   b1 | 
   
-  \repeat 2 {
+  \repeat "semi" 2 {
   r4 d d d d d |
   e1. |
   r4 c c c c c |
@@ -115,7 +115,7 @@ vi1=\context Staff = vi1 <
   a [d,8 c] b4 [c8 d] a2 |
   }
 
-  \repeat 2 {
+  \repeat "semi" 2 {
   b1 |
   [d8 d d d] d4 [a16 b c a] |
   [b8 g ][ g g16 a] [b8 g ][ g g16 a] | 
@@ -167,7 +167,7 @@ vi2=\context Staff = vi2 <
   a4 g2 fis4 |
   g1 |
 
-  \repeat 2 {
+  \repeat "semi" 2 {
   r1. |
   r4 [g'8 f] e4 [f8 g] c,4 [d8 e] |
   a,1. |
@@ -185,7 +185,7 @@ vi2=\context Staff = vi2 <
   fis2 g fis! |
   }
 
-  \repeat 2 {
+  \repeat "semi" 2 {
   g1 |
   r1 | r1 |
   [g'8 g g g] g4 [d16 e f d] |
@@ -225,7 +225,7 @@ bc=\context Staff = bc <
   c B c G | d1^"3 4 3" |
   G1 |
 
-  \repeat 2 {
+  \repeat "semi" 2 {
   g1. | c |
   f | d^"\\textsharp" |
   g | c |
@@ -236,7 +236,7 @@ bc=\context Staff = bc <
   d1.^"3 4 3" |
   }
 
-  \repeat 2 {
+  \repeat "semi"  2 {
   G1 |
   g2 fis | g G |
   g1^"3 4 3" | c |
index 504de633a377798c262b70016a16c834bc2bbfe8..f889f73d66a44b0abd63ebc293f04c99d62ea17b 100644 (file)
@@ -8,22 +8,9 @@ enteredby =     "jcn";
 copyright =     "public domain";
 latexheaders=    "headers";
 } 
-\version "1.0.16";
+\version "1.0.19";
 
-%{
-Silly latex file dropped; use ly2dvi
 
-Converted to relative octave from los-toros-oboe.ly:
-    :s/[^\}'/'x/g
-    :s/'x//g
-    (511 substitutions on 155 lines)
-
-    lilypond -f los-toros-oboe 2> bla
-    wc -l bla
-    138
-    138 / 3 =  46 octave quotes of 511 remain!
-
-%}
 
 \include "paper16.ly"
 
@@ -299,7 +286,7 @@ $staff_hoboone = \context Staff = hoboonestaff <
        \global
        \property Staff.instrument = "oboe"
        % don't expand multi-bar rest
-       \property Score.SkipBars = 1
+       \property Score.skipBars = 1
        \hoboone
 >
 
index c1a5d0605d2337843c9a11d1c7205238f38926f8..63877537ec7aff171d2d3aa60ba732d80cf6321e 100644 (file)
        ("accBayanbaseE" . ((accordion "Bayanbase" "E") #f 0 -1 0))
        ("accBayanbaseTE" . ((accordion "Bayanbase" "TE") #f 0 -1 0))
        ("accBayanbaseEE" . ((accordion "Bayanbase" "EE") #f 0 -1 0))
-       ("accBayanbaseTEE" . ((accordion "Bayanbase" "TFEE") #f 0 -1 0))
-;; I don't know what naming of standard base registers is best?
-;; The 'tenor-piano' style of names has been used in some old accordion
-;; scores I have seen. But you never name the registers. These four are
-;; the symbols that are most used then typesetting music, but in the real
-;; world it differs a lot from instrument to instrument what registers
-;; are available.
+       ("accBayanbaseTEE" . ((accordion "Bayanbase" "TEE") #f 0 -1 0))
        ("accStdbase" . ((accordion "Stdbase" "") #f 0 -1 0))
-;; tenor-piano
-       ("accStdbaseTp" . ((accordion "Stdbase" "FE") #f 0 -1 0))
-;; tenor
-       ("accStdbaseT" . ((accordion "Stdbase" "TFE") #f 0 -1 0))
-;; bass-piano
-       ("accStdbaseBp" . ((accordion "Stdbase" "MES") #f 0 -1 0))
-;; master  (changed from accStdbaseM)
-       ("accStdbaseMa" . ((accordion "Stdbase" "TFMES") #f 0 -1 0))
-
        ("accStdbaseFE" . ((accordion "Stdbase" "FE") #f 0 -1 0))
        ("accStdbaseTFE" . ((accordion "Stdbase" "TFE") #f 0 -1 0))
        ("accStdbaseMES" . ((accordion "Stdbase" "MES") #f 0 -1 0))
index 48a2ad709b1e1f4e641733719a8db845bd7307a3..ec6eaa10694a69950fbd66eb0fe04f22bb89aff4 100644 (file)
@@ -287,10 +287,41 @@ if 1:
                newlines =[]
                for x in lines:
                        x =  re.sub ('\\\\type','\\\\context', x)
+                       x =  re.sub ('textstyle','textStyle', x)
                        newlines.append (x)
                return newlines
        
-       conversions.append ((1,0,16), conv, '\\type -> \\context')
+       conversions.append ((1,0,16), conv, '\\type -> \\context, textstyle -> textStyle')
+
+
+if 1:
+       def conv(lines):
+               newlines =[]
+               found = None
+               for x in lines:
+                       found = re.search ('\\\\repeat',x)
+                       newlines.append (x)
+                       if found: break
+               if found:
+                       sys.stderr.write ('\nNot smart enough to convert \\repeat')
+                       raise FatalConversionError()
+               return newlines
+       
+       conversions.append ((1,0,18), conv,
+                           '\\repeat NUM Music Alternative -> \repeat FOLDSTR Music Alternative')
+
+if 1:
+       def conv(lines):
+               newlines =[]
+               for x in lines:
+                       x =  re.sub ('SkipBars','skipBars', x)
+                       x =  re.sub ('fontsize','fontSize', x)
+                       x =  re.sub ('midi_instrument','midiInstrument', x)                     
+                       newlines.append (x)
+               return newlines
+
+       conversions.append ((1,0,19), conv,
+                           'fontsize -> fontSize, midi_instrument -> midiInstrument, SkipBars -> skipBars')
 
 
 
index 2ad7a86eb2abb018e346e1e47b39b5d82ec07f9b..fd535434c8420386560231d05651a0215cd6efa1 100644 (file)
@@ -6,9 +6,11 @@
 #  bug-gnu-music@gnu.org
 #  help-gnu-music@gnu.org
 #
-# All non-english comments are NOT in swedish, they are norwegian!
 #  TODO:
-# * output various stuff either via sys.stderr or sys.stdout, not using print.
+# * Spacing before and after mudela blocks should be fixed. No empy lines
+#   before and after the mudela block should make just little space between
+#   music and text, one or more empy lines should make bigger space, like
+#   between paragraphs.
 # * center option (??)
 # * make mudela-book understand usepackage{geometry}
 # * check that linewidth set in \paper is not wider than actual linewidth?
 # 0.5.5: (Mats B)
 #   - bf: Default fragments have linewidth=-1.0
 #   - Added 'singleline' and 'multiline' options.
-
+# 0.5.6:
+#   - \mudelafile{} set linewith correct, -1 for .sly and texlinewidth for .fly
+#   - changes to Mudela_output
+#   - changed RE to search for pre/postMudelaExample to make it possible to
+#     comment out a definition.
+#   - use sys.stderr and sys.stdout instead of print
 import os
 import string
 import re
@@ -73,7 +80,7 @@ import sys
 
 outdir = 'out'
 initfile = ''
-program_version = '0.5.3'
+program_version = '0.5.6'
 include_path = ['.']
 
 out_files = []
@@ -99,8 +106,8 @@ twocolumn_re = re.compile('\\\\twocolumn')
 onecolumn_re = re.compile('\\\\onecolumn')
 mudela_file_re = re.compile('\\\\mudelafile{([^}]+)}')
 file_ext_re = re.compile('.+\\.([^.}]+$)')
-preMudelaExample_re = re.compile('\\\\def\\\\preMudelaExample')
-postMudelaExample_re = re.compile('\\\\def\\\\postMudelaExample')
+preMudelaExample_re = re.compile('^\s*\\\\def\\\\preMudelaExample')
+postMudelaExample_re = re.compile('^\s*\\\\def\\\\postMudelaExample')
 boundingBox_re = re.compile('%%BoundingBox: ([0-9]+) ([0-9]+) ([0-9]+) ([0-9]+)')
 intertext_re = re.compile("intertext=\"([^\"]*)\"")
 
@@ -238,6 +245,15 @@ class Properties:
 
 
 class Mudela_output:
+    """ Using only self.code_type to deside both value of linewith and
+    if we have to put code into \score{...} was silly. Now we use:
+    self.code_type:  show us what need to be added.
+                        None : init value
+                        'NOTES' : add \context Voice{ ... }
+                        'CONTEXT' : add \score{ ... }
+                        'COMPLETE' : jupp
+    self.single_line_b:   0 : linewidth=-1  1: linewith=textwidth
+    """
     def __init__ (self, basename):
         self.basename = basename
         self.temp_filename = "%s/%s" %(outdir, 'mudela-temp.ly')
@@ -245,48 +261,59 @@ class Mudela_output:
         self.__lines = []
         # 'tex' or 'eps'
         self.graphic_type = 'tex'
-        self.code_type = 'unknown'
-        self.code_type_override = None
+        self.code_type = None
+        self.single_line_b = 1
+        self.optlist = []
     def write (self, line):
-        # match only if there is nothing but whitespace before \begin HACK
+        # match only if there is nothing but whitespace before \begin.
+        # we should not have to do this RE for every line
         if re.search('^\s*\\\\begin{mudela}', line):
-            self.scan_begin_statement(line)
-        else:
-            if self.code_type == 'unknown':
-                if re.search('^\s*\\\\score', line) or \
-                   re.search('^\s*\\\\paper', line) or \
-                   re.search('^\s*\\\\header', line) or \
-                   re.search('^\s*[A-Za-z]*\s*=', line):
-                    self.code_type = 'ly'
+            r  = begin_mudela_opts_re.search(line)
+            if r:
+                o = r.group()[1:-1]
+                self.optlist =  re.compile('[\s,]*').split(o)
+            else:
+                self.optlist = []
+        else: # ugh this is NOT bulletproof...
+            if not self.code_type:
+                if re.search('^\s*%', line) or re.search('^\s*$', line):
+                    pass
+                elif re.search('^\s*\\\\context', line):
+                    self.code_type = 'CONTEXT'
+                    self.single_line_b = 0
+                elif re.search('^\s*\\\\score', line) or \
+                     re.search('^\s*\\\\paper', line) or \
+                     re.search('^\s*\\\\header', line) or \
+                     re.search('^\s*\\\\version', line) or \
+                     re.search('^\s*\\\\include', line) or \
+                     re.search('^\s*[A-Za-z]*\s*=', line):
+                    self.code_type = 'COMPLETE'
+                    self.single_line_b = 0
+                else:
+                    self.code_type = 'NOTES'
+                    self.single_line_b = 1
             self.__lines.append(line)
-    def scan_begin_statement(self, line):
-        r  = begin_mudela_opts_re.search(line)
-        if r:
-            o = r.group()[1:-1]
-            optlist =  re.compile('[\s,]*').split(o)
-        else:
-            optlist = []
-        if 'fragment' in optlist:
-            self.code_type_override = 'sly'
-        if 'nonfragment' in optlist:
-            self.code_type_override = 'ly'
-        if 'singleline' in optlist:
-            self.code_type_override = 'sly'
-        if 'multiline' in optlist:
-            self.code_type_override = 'fly'
-        if 'eps' in optlist:
+    def write_red_tape(self):
+        if 'eps' in self.optlist:
             self.graphic_type = 'eps'
+            #self.single_line_b = 1
+        if 'fragment' in self.optlist:
+            self.code_type = 'NOTES'
+        if 'nonfragment' in self.optlist:
+            self.code_type = 'COMPLETE'
+        if 'multiline' in self.optlist:
+            self.single_line_b = 0
         for pt in fontsize_pt2i.keys():
-            if pt in optlist:
+            if pt in self.optlist:
                 Props.setMudelaFontsize(fontsize_pt2i[pt], 'block')
-    def write_red_tape(self):
         self.file.write ('\\include \"paper%d.ly\"\n' \
                          % Props.getMudelaFontsize())
                          
         s = fontsize_i2a[Props.getMudelaFontsize()]
-        if self.code_type == 'sly':
+        if 'singleline' in self.optlist:
+            self.single_line_b = 1
+        if self.single_line_b:
             linewidth_str = 'linewidth = -1.\cm;'
-            self.code_type = 'fly'
         else:
             linewidth_str = 'linewidth = %i.\\pt;' % Props.getLineWidth()
         self.file.write("\\paper {"
@@ -294,19 +321,18 @@ class Mudela_output:
                         + linewidth_str
                         + "castingalgorithm = \Gourlay; \n}")
                         #+ "castingalgorithm = \Wordwrap; indent = 2.\cm; \n}")
-        if self.code_type == 'fly':
+        if self.code_type == 'CONTEXT':
             self.file.write('\\score{\n\\notes\\relative c{')
+        if self.code_type == 'NOTES' :
+            self.file.write('\\score{\n\\notes\\relative c{\\context Voice{')
     def close (self):
-        if self.code_type == 'unknown':
-            self.code_type = 'sly'
-        if self.code_type_override:
-            self.code_type = self.code_type_override
         self.write_red_tape()
         for l in self.__lines:
             self.file.write(l)
-        if self.code_type == 'fly':
+        if self.code_type == 'CONTEXT':
             self.file.write('}}')
-            
+        elif self.code_type == 'NOTES':
+            self.file.write('}}}')
         self.file.close()
 
         inf = outdir + self.basename + '.ly'
@@ -324,7 +350,7 @@ class Mudela_output:
        return recompile_b
 
     def insert_me_string(self):
-        "Returns a string that can be used directly in latex."
+        "ugh the name of this function is wrong"
         if self.graphic_type == 'tex':
             return ['tex', self.basename]
         elif self.graphic_type == 'eps':
@@ -360,7 +386,7 @@ class Tex_output:
         if s != '':
             e = os.system('cd %s; lilypond %s' %(outdir, s))
             if e:
-                print "error: lilypond exited with value", e
+                sys.stderr.write("error: lilypond exited with value %i\n" % e)
                 sys.exit(e)
         for g in g_vec:
             if g[0] == 'eps':
@@ -373,13 +399,14 @@ class Tex_output:
         for line in self.__lines:
             if type(line)==type([]):
                 if line[0] == 'tex':
-                    file.write('\\preMudelaExample\\input %s\n\postMudelaExample '\
+                    #\\def\\interscoreline{}
+                    file.write('\\preMudelaExample \\input %s \\postMudelaExample\n'\
                               # TeX applies the prefix of the main source automatically.
                                % (line[1]+'.tex'))
 #                               % (outdir+line[1]+'.tex'))
                 if line[0] == 'eps':
                     ps_dim = ps_dimention(outdir+line[1]+'.eps')
-                    file.write('\\parbox{%ipt}{\includegraphics{%s}}\n' \
+                    file.write('\\noindent\\parbox{%ipt}{\includegraphics{%s}}\n' \
                                % (ps_dim[0], line[1]+'.eps'))
 #                               % (ps_dim[0], outdir+line[1]+'.eps'))
             else:
@@ -441,8 +468,7 @@ class Tex_input:
                     retlines = retlines + ls[0]
                     retdeps = retdeps + ls[1]
                 except:
-                    print "warning: can't find %s, let's hope latex will" \
-                          % r_inp.groups()[0]
+                    sys.stderr.write("warning: can't find %s, let's hope latex will\n" % r_inp.groups()[0])
                     retlines.append (line)
             elif r_inc:
                 try:
@@ -453,8 +479,7 @@ class Tex_input:
                     retlines = retlines + ls[0]
                     retdeps = retdeps + ls[1]
                 except:
-                    print "warning: can't find %s, let's hope latex will" \
-                          % r_inc.groups()[0]
+                    sys.stderr.write("warning: can't find %s, let's hope latex will" % r_inc.groups()[0])
                     retlines.append (line)
             else:
                 # This code should be rewritten, it looks terrible
@@ -571,21 +596,20 @@ class Main_tex_input(Tex_input):
                fn = r.group (1)
                full_path = find_file (fn)
                if not full_path:
-                   print 'error: can\'t find file `%s\'.' % fn
+                   sys.stderr.write("error: can't find file '%s'\n" % fn)
                    sys.exit (1)
 
-
-               r = file_ext_re.search(fn)
-                if r:
-                    self.code_type = r.group(1)
-
                f = open (full_path, 'r')
                lines =f.readlines ()
                for x in lines:
                    self.mudela.write (x)
+               r = file_ext_re.search(fn)
+                if r:
+                    if r.group(1) == 'fly':
+                        self.mudela.optlist.append('multiline')
                stat =self.mudela.close ()
                if stat:
-                       print "(File %s needs recompiling)\n" % full_path
+                       sys.stdout.write("(File %s needs recompiling)\n" % full_path)
                 self.mudtex.write (self.mudela.insert_me_string())
                self.deps.append (full_path)
                del self.mudela
@@ -673,7 +697,7 @@ Options:\n
 def write_deps (fn, out,  deps):
        out_fn = os.path.join (outdir, fn)
        
-       print 'writing `%s\'\n' % out_fn
+       sys.stdout.write('writing `%s\'\n' % out_fn)
        
        f = open (out_fn, 'w')
        target = re.sub (os.sep + os.sep, os.sep, os.path.join (outdir, out + '.latex'))
@@ -695,7 +719,7 @@ def main():
                                     'help', 'dependencies', 'include=',
                                     'force-verbatim', 'init='])
     except getopt.error, msg:
-        print "error:", msg
+        sys.stderr.write("error: %s" % msg)
         sys.exit(1)
         
     do_deps = 0
@@ -707,7 +731,7 @@ def main():
        elif o == '--outname' or o == '-o':
             if len(files) > 1:
                 #HACK
-                print "Mudela-book is confused by --outname on multiple files"
+                sys.stderr.write("Mudela-book is confused by --outname on multiple files")
                 sys.exit(1)
             outname = a
         elif o == '--outdir' or o == '-d':
@@ -718,14 +742,14 @@ def main():
             do_deps = 1
         elif o == '--default-mudela-fontsize':
             if not fontsize_pt2i.has_key(a):
-                print "Error: illegal fontsize:", a
-                print " accepted fontsizes are: 11pt, 13pt, 16pt, 20pt, 26pt"
+                sys.stderr.write("Error: illegal fontsize: %s" % a)
+                sys.stderr.write("  accepted fontsizes are: 11pt, 13pt, 16pt, 20pt, 26pt")
                 sys.exit()
             Props.setMudelaFontsize(fontsize_pt2i[a], 'init')
        elif o == '--force-mudela-fontsize':
             if not fontsize_pt2i.has_key(a):
-                print "Error: illegal fontsize:", a
-                print " accepted fontsizes are: 11pt, 13pt, 16pt, 20pt, 26pt"
+                sys.stderr.write("Error: illegal fontsize: %s" % a)
+                sys.stderr.write("  accepted fontsizes are: 11pt, 13pt, 16pt, 20pt, 26pt")
                 sys.exit()
             Props.force_mudela_fontsize = fontsize_pt2i[a]
         elif o == '--force-verbatim':
@@ -737,7 +761,7 @@ def main():
 
     # r""" ... """ means: leave escape seqs alone.
     defined_mudela_cmd = {'mudela': r"""
-\begin{mudela}[eps \fontoptions]
+\begin{mudela}[eps, singleline \fontoptions]
   \context Staff <
     \context Voice{
       \maininput
index 480f8a8cd289547422132fb959de1847b49a148e..d25b32274ed126ec6775aee1b53b705e7ec3439f 100644 (file)
@@ -1,3 +1,11 @@
+pl 74
+       - avoid buggy /bin/sh on hp-ux
+       - bf: make/stepmake.make
+       - simple prolog support
+
+pl 73
+       - bf: invoke sed only once
+
 pl 72
        - bf: mfplain dependency
        - inimf, inimf checking (sigh)
index df407f27e30f792ef85edc7f05f6196063c8f6e9..a9f9a070366163a57873b99023fcd2cfdad873bf 100644 (file)
@@ -1,7 +1,7 @@
 PACKAGE_NAME=StepMake
 MAJOR_VERSION=0
 MINOR_VERSION=1
-PATCH_LEVEL=72
+PATCH_LEVEL=74
 MY_PATCH_LEVEL=
 
 # use the above to send patches, always empty for released version:
index c9e042c0e5cc4efc2cefff60060b7dc12291a646..e1ea2a59d89e3b5acbba4a5bbd6ed9bf2ae10549 100644 (file)
@@ -273,6 +273,15 @@ dnl        export INSTALL="\$\(depth\)/bin/install-sh"
 dnl    fi
 
     AC_CHECK_PROGS(TAR, tar, error)
+
+    if test "x`uname`" = "xHP-UX"; then
+       AC_STEPMAKE_WARN(avoiding buggy /bin/sh)
+       AC_CHECK_PROGS(SHELL, bash, /bin/ksh)
+    else
+       SHELL=/bin/sh
+       AC_SUBST(SHELL)
+    fi
+
     AC_CHECK_PROGS(BASH, bash, /bin/sh)
 
     AC_PATH_PROG(PYTHON, ${PYTHON:-python}, -echo no python)
index f3fcccab6eb4574d7924127add591c9feff6dc32..5eb062aaf0af21f63ee59fd6d1605262648a15be 100644 (file)
@@ -55,6 +55,7 @@ MSGFMT = @MSGFMT@
 PATHSEP = @PATHSEP@
 PERL = @PERL@
 PYTHON = @PYTHON@
+SHELL = @SHELL@
 STRIPROFF = @STRIPROFF@
 TAR= @TAR@
 TBL = @TBL@
index 94dcac8c345b136d897429ea2d201e7a96a94396..736e0ee2d4e776284832cb65fc5253023e8ebdfd 100755 (executable)
@@ -54,6 +54,9 @@ fi
 
 
 
+
+
+
 # Guess values for system-dependent variables and create Makefiles.
 # Generated automatically using autoconf version 2.13 
 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc.
@@ -753,7 +756,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:757: checking host system type" >&5
+echo "configure:760: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -778,7 +781,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:782: checking for $ac_word" >&5
+echo "configure:785: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_MAKE'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -813,7 +816,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:817: checking for $ac_word" >&5
+echo "configure:820: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_FIND'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -850,7 +853,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:854: checking for $ac_word" >&5
+echo "configure:857: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_TAR'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -880,12 +883,58 @@ test -n "$TAR" && break
 done
 test -n "$TAR" || TAR="error"
 
+
+    if test "x`uname`" = "xHP-UX"; then
+       
+    echo "configure: warning: avoiding buggy /bin/sh" 1>&2
+    warn_b=yes
+
+       for ac_prog in bash
+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:898: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_SHELL'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$SHELL"; then
+  ac_cv_prog_SHELL="$SHELL" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
+  ac_dummy="$PATH"
+  for ac_dir in $ac_dummy; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_SHELL="$ac_prog"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+SHELL="$ac_cv_prog_SHELL"
+if test -n "$SHELL"; then
+  echo "$ac_t""$SHELL" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$SHELL" && break
+done
+test -n "$SHELL" || SHELL="/bin/ksh"
+
+    else
+       SHELL=/bin/sh
+       
+    fi
+
     for ac_prog in bash
 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:889: checking for $ac_word" >&5
+echo "configure:938: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_BASH'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -919,7 +968,7 @@ test -n "$BASH" || BASH="/bin/sh"
     # Extract the first word of "${PYTHON:-python}", so it can be a program name with args.
 set dummy ${PYTHON:-python}; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:923: checking for $ac_word" >&5
+echo "configure:972: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_PYTHON'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1086,7 +1135,7 @@ fi
 
 
     echo $ac_n "checking language""... $ac_c" 1>&6
-echo "configure:1090: checking language" >&5    
+echo "configure:1139: checking language" >&5    
     case "$language" in
       En* | en* | Am* | am* | US* | us*)
            lang=English;;
@@ -1119,7 +1168,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:1123: checking for $ac_word" >&5
+echo "configure:1172: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_STRIPROFF'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1154,7 +1203,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:1158: checking for $ac_word" >&5
+echo "configure:1207: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1189,7 +1238,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:1193: checking for $ac_word" >&5
+echo "configure:1242: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2HTML'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1224,7 +1273,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:1228: checking for $ac_word" >&5
+echo "configure:1277: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2LATEX'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1258,7 +1307,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:1262: checking for $ac_word" >&5
+echo "configure:1311: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2MAN'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1293,7 +1342,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:1297: checking for $ac_word" >&5
+echo "configure:1346: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2MSLESS'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1328,7 +1377,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:1332: checking for $ac_word" >&5
+echo "configure:1381: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2TEXINFO'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1363,7 +1412,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:1367: checking for $ac_word" >&5
+echo "configure:1416: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YODL2TXT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1422,7 +1471,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:1426: checking for $ac_word" >&5
+echo "configure:1475: 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
index 0213970378aa17042d12164ccd1ccbf9b984838d..224a5bf1ebfc5a4dba67251dff4c32f93d470b3e 100644 (file)
@@ -6,6 +6,6 @@ include $(depth)/make/substitute.make
 
 $(outdir)/%: %.in
        rm -f $@
-       cat $< | $(sed-atfiles) | $(sed-atvariables) > $@
+       cat $< | sed $(sed-atfiles) $(sed-atvariables) > $@
 
 
index 555662c73ca658c7f9dfac7782e375ab5207d81a..72bfd29001a02ec97d1291fbcb0e269bb9cd117f 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Title: StepMake
-Version: 0.1.72
-Entered-date: 17MAR99
+Version: 0.1.74
+Entered-date: 17MAY99
 Description: 
 Keywords: music notation typesetting midi fonts engraving
 Author: janneke@gnu.org (Jan Nieuwenhuizen)
        hanwen@cs.ruu.nl (Han-Wen Nienhuys)
 Maintained-by: janneke@gnu.org (Jan Nieuwenhuizen)
 Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert
-       40k stepmake-0.1.72.tar.gz 
+       40k stepmake-0.1.74.tar.gz 
 Original-site: pcnov095.win.tue.nl /pub/lilypond/development/
-       40k stepmake-0.1.72.tar.gz 
+       40k stepmake-0.1.74.tar.gz 
 Copying-policy: GPL
 End
index 9516c293120f478430b1c1979062707995ef21ce..532b1c462e0dddf109ce668b18d4aa9c3b428c3e 100644 (file)
@@ -1,9 +1,9 @@
 Name: stepmake
-Version: 0.1.72
+Version: 0.1.74
 Release: 1
 Copyright: GPL
 Group: Development
-Source0: pcnov095.win.tue.nl:/pub/lilypond/development/stepmake-0.1.72.tar.gz
+Source0: pcnov095.win.tue.nl:/pub/lilypond/development/stepmake-0.1.74.tar.gz
 Summary: generic make package
 Packager: janneke@gnu.org (Jan Nieuwenhuizen)
 Buildroot: /tmp/stepmake-install
index 9b114e1b20b2388cc3bdf0621926d539109c0055..3c7dade6d78e94a61627123c8d5a7d907b42a066 100644 (file)
@@ -6,6 +6,8 @@ include $(depth)/make/toplevel-version.make
 ifeq (0,${MAKELEVEL})
   MAKE:=$(MAKE) --no-builtin-rules
 endif
+.SUFFIXES:
+
 
 ifndef config
   configuration=config
@@ -21,19 +23,31 @@ else
 outdir=out
 endif
 
+# user package
+# stepdir = $(stepmake)/stepmake
+# for stepmake packageg
 stepdir = $(depth)/stepmake
 
-LOCALSTEPMAKE_TEMPLATES:=generic $(LOCALSTEPMAKE_TEMPLATES)
 STEPMAKE_TEMPLATES := generic $(STEPMAKE_TEMPLATES) 
+LOCALSTEPMAKE_TEMPLATES:= generic $(LOCALSTEPMAKE_TEMPLATES)
+
+
+all:
+
+-include $(addprefix $(depth)/make/,$(addsuffix -inclusions.make, $(LOCALSTEPMAKE_TEMPLATES)))
+
+-include $(addprefix $(stepdir)/,$(addsuffix -inclusions.make, $(STEPMAKE_TEMPLATES)))
 
-default:
 
+include $(addprefix $(stepdir)/,$(addsuffix -vars.make, $(STEPMAKE_TEMPLATES)))
+
+# ugh. need to do this because of PATH :=$(topdir)/..:$(PATH) 
 include $(addprefix $(depth)/make/,$(addsuffix -vars.make, $(LOCALSTEPMAKE_TEMPLATES))) 
-include $(addprefix $(stepdir)/,$(addsuffix -vars.make, $(STEPMAKE_TEMPLATES))) 
+
+
 include $(addprefix $(depth)/make/,$(addsuffix -rules.make, $(LOCALSTEPMAKE_TEMPLATES))) 
 include $(addprefix $(stepdir)/,$(addsuffix -rules.make, $(STEPMAKE_TEMPLATES))) 
 include $(addprefix $(depth)/make/,$(addsuffix -targets.make, $(LOCALSTEPMAKE_TEMPLATES))) 
 include $(addprefix $(stepdir)/,$(addsuffix -targets.make, $(STEPMAKE_TEMPLATES))) 
 
 
-
index f225effd8fbf853391774d7df8a5554d72ffa253..bb2785d4d418c6c48a69066daa36ebeaa0aa5517 100644 (file)
@@ -6,9 +6,9 @@ $(outdir)/%.mo: %.po
        $(MSGFMT) -o $@ $<
 
 # sed-pofile = sed 's/^. \#: .*//'
-sed-pofile = sed 's/^\#: .*//'
-sed-makestuff = sed 's/[a-zA-Z_/]*make\[[0-9]*\].*//'
-sed-edstuff = sed 's/[ \.,adic0-9]*//' | sed 's/---//' | sort -u
+sed-pofile = -e 's/^\#: .*//'
+sed-makestuff = -e 's/[a-zA-Z_/]*make\[[0-9]*\].*//'
+sed-edstuff = -e 's/[ \.,adic0-9]*//' -e 's/---//' | sort -u
 
 po-update:
        $(foreach i,$(CATALOGS), \
@@ -16,7 +16,7 @@ po-update:
          tupdate $(po-dir)/$(outdir)/$(package).po $(po-dir)/$(i).po \
            > $(po-dir)/$(outdir)/$(i).po && ) true
        $(foreach i,$(CATALOGS), \
-         changes=`$(MAKE) --silent -C $(po-dir) LANGUAGE=$$i po-changes $(ERROR_LOG) | $(sed-makestuff)`; \
+         changes=`$(MAKE) --silent -C $(po-dir) LANGUAGE=$$i po-changes $(ERROR_LOG) | sed $(sed-makestuff)`; \
          if test "$$changes" != "" ; then \
            echo "*** Changes for language $$i; check po/$(outdir)/$$i.po ***"; \
            echo -e "changes: \`$$changes'";\
@@ -25,4 +25,4 @@ po-update:
 
 po-changes:
        diff -e $(po-dir)/$(outdir)/$(LANGUAGE).po $(po-dir)/$(LANGUAGE).po \
-         | $(sed-pofile) | $(sed-edstuff)
+         | sed $(sed-pofile) $(sed-edstuff)
diff --git a/stepmake/stepmake/prolog-rules.make b/stepmake/stepmake/prolog-rules.make
new file mode 100644 (file)
index 0000000..4ac1b8c
--- /dev/null
@@ -0,0 +1,4 @@
+# stepmake/prolog-rules.make
+
+.SUFFIXES: .pl .s
+
diff --git a/stepmake/stepmake/prolog-targets.make b/stepmake/stepmake/prolog-targets.make
new file mode 100644 (file)
index 0000000..8b13789
--- /dev/null
@@ -0,0 +1 @@
+
diff --git a/stepmake/stepmake/prolog-vars.make b/stepmake/stepmake/prolog-vars.make
new file mode 100644 (file)
index 0000000..ad47930
--- /dev/null
@@ -0,0 +1,8 @@
+
+# prolog files:
+PL_FILES := $(wildcard *.pl)
+
+SOURCE_FILES += $(PL_FILES)
+
+TAGS_FILES += $(PL_FILES)
+
index 1dca17b99537070a361275cb41a3c740e7b72731..813ffde61b16f4dc1407bae695cf5be6dee9fc57 100644 (file)
@@ -1,19 +1,14 @@
-# Scripts.make
-
-
-
 
 $(outdir)/%: %.pl
-       cat $< | $(sed-atvariables) > $@
+       cat $< | sed $(sed-atvariables) > $@
        chmod 755 $@
 
 #FIXME.  Check for bash?
 $(outdir)/%: %.sh
-       cat $< | $(sed-atvariables) > $@
+       cat $< | sed $(sed-atvariables) > $@
        chmod 755 $@
 
-
 $(outdir)/%: %.py
-       cat $< | $(sed-atvariables) > $@
+       cat $< | sed $(sed-atvariables) > $@
        chmod 755 $@
 
index 6faf105a3869ec2ef6cf92a2570c3bd33a0bc98c..fa93fed6f6e8df992712adae79f87d231cfddfa6 100644 (file)
@@ -1,5 +1,5 @@
 
 $(outdir)/%: %.in
        rm -f $@
-       cat $< | $(sed-atfiles) | $(sed-atvariables) > $@
+       cat $< | sed $(sed-atfiles) $(sed-atvariables) > $@
 
index 823ada299581316d58ccaaf69b5d7e10b4d0b6ca..d310ae63a2e160a90056fa1aa26813f28a889a60 100644 (file)
@@ -10,12 +10,12 @@ DATE = $(date)
 
 # for all FILE in AT_FILES:
 # substitute occurrences of @FILE@ with contents $(at-dir)BLA$(at-ext)
-sed-atfiles = cat $(foreach i, $(AT_FILES), \
-  | sed '/@$i@/r $(at-dir)$i$(at-ext)' | sed 's%@$i@%%g')
+sed-atfiles = -e '' $(foreach i, $(AT_FILES), \
+  -e '/@$i@/r $(at-dir)$i$(at-ext)' -e 's%@$i@%%g')
 
 # for all VAR in ATVARIABLES
 # substitute occurrences of @VAR@ with $(VAR)
-sed-atvariables = cat $(foreach i, $(ATVARIABLES), | sed 's!@$i@!$($i)!g')
+sed-atvariables = -e '' $(foreach i, $(ATVARIABLES), -e 's!@$i@!$($i)!g')
 
 # these are obsolete
 # use ATVARIABLES