]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.1.0 release/1.1.0
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 23 Oct 1998 13:51:54 +0000 (15:51 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Fri, 23 Oct 1998 13:51:54 +0000 (15:51 +0200)
205 files changed:
Documentation/man/GNUmakefile
Documentation/topdocs/PATCHES.yo
NEWS
NEWS-1.0 [new file with mode: 0644]
TODO
VERSION
aclocal.m4
config.make.in
configure
configure.in
dstreamrc
flower/dstream.cc
flower/include/dictionary.hh
init/GNUmakefile
init/catalan.ly [new file with mode: 0644]
init/declarations.ly
init/paper20.ly
init/script.ly
input/GNUmakefile
input/test/thumb.ly [new file with mode: 0644]
lily/GNUmakefile
lily/abbrev.cc
lily/abbreviation-beam-engraver.cc
lily/atom.cc
lily/auto-plet-engraver.cc
lily/axis-group-element.cc
lily/axis-group-item.cc
lily/axis-group-spanner.cc
lily/bar-column-engraver.cc
lily/bar-column.cc
lily/bar-engraver.cc
lily/bar-number-engraver.cc
lily/beam-engraver.cc
lily/beam.cc
lily/clef-engraver.cc
lily/collision-engraver.cc
lily/collision.cc
lily/command-request.cc
lily/dimensions.cc [new file with mode: 0644]
lily/dot-column-engraver.cc
lily/dot-column.cc
lily/dynamic-engraver.cc
lily/engraver-group.cc
lily/engraver.cc
lily/gourlay-breaking.cc
lily/graphical-lisp-element.cc [new file with mode: 0644]
lily/hara-kiri-line-group-engraver.cc
lily/hara-kiri-vertical-group-spanner.cc
lily/head-engraver.cc
lily/heads-engraver.cc
lily/include/atom.hh
lily/include/auto-plet-engraver.hh
lily/include/dimensions.hh
lily/include/engraver.hh
lily/include/lily-guile.hh
lily/include/lily-proto.hh
lily/include/lookup.hh
lily/include/main.hh
lily/include/paper-def.hh
lily/include/paper-outputter.hh
lily/include/paper-stream.hh
lily/include/ps-lookup.hh [deleted file]
lily/include/ps-outputter.hh [deleted file]
lily/include/ps-stream.hh [deleted file]
lily/include/score-element-info.hh
lily/include/score-engraver.hh
lily/include/tex-lookup.hh [deleted file]
lily/include/tex-outputter.hh [deleted file]
lily/include/tex-stream.hh [deleted file]
lily/item.cc
lily/key-engraver.cc
lily/key-performer.cc
lily/line-of-score.cc
lily/local-key-engraver.cc
lily/local-key-item.cc
lily/lookup.cc
lily/lyric-engraver.cc
lily/lyric-performer.cc
lily/main.cc
lily/mark-engraver.cc
lily/midi-item.cc
lily/multi-measure-rest-engraver.cc
lily/music-list.cc
lily/music-output-def.cc
lily/musical-request.cc
lily/my-lily-lexer.cc
lily/my-lily-parser.cc
lily/note-column.cc
lily/note-performer.cc
lily/p-score.cc
lily/paper-def.cc
lily/paper-outputter.cc
lily/paper-stream.cc
lily/parser.yy
lily/performer.cc
lily/pitch-squash-engraver.cc
lily/plet-engraver.cc
lily/plet-spanner.cc
lily/plet-swallow-engraver.cc
lily/priority-halign-engraver.cc
lily/ps-lookup.cc [deleted file]
lily/ps-outputter.cc [deleted file]
lily/ps-stream.cc [deleted file]
lily/rest-collision-engraver.cc
lily/rest-collision.cc
lily/rest-engraver.cc
lily/rhythmic-column-engraver.cc
lily/rhythmic-head.cc
lily/score-element-info.cc
lily/score-element.cc
lily/score-engraver.cc
lily/score-priority-engraver.cc
lily/scores.cc
lily/script-column.cc
lily/script-engraver.cc
lily/script.cc
lily/separating-group-spanner.cc
lily/separating-line-group-engraver.cc
lily/single-malt-grouping-item.cc
lily/slur-engraver.cc
lily/slur.cc
lily/span-bar-engraver.cc
lily/span-score-bar-engraver.cc
lily/spanner.cc
lily/staff-margin-engraver.cc
lily/stem-engraver.cc
lily/stem.cc
lily/super-element.cc
lily/tex-lookup.cc [deleted file]
lily/tex-outputter.cc [deleted file]
lily/tex-stream.cc [deleted file]
lily/text-spanner.cc
lily/tie.cc
lily/ties-engraver.cc
lily/time-signature-engraver.cc
lily/time-signature-performer.cc
lily/timing-translator.cc
lily/translator-group.cc
make/out/lelievijver.lsm
make/out/lilypond.lsm
make/out/lilypond.spec
make/stepmake.make
make/toplevel.make.in
mf/GNUmakefile
mf/feta-autometric.mf
mf/feta-beum.mf
mf/feta-bolletjes.mf
mf/feta-braces16.mf
mf/feta-braces20.mf
mf/feta-eindelijk.mf
mf/feta-generic.mf
mf/feta-klef.mf
mf/feta-nummer.mf
mf/feta-schrift.mf
mf/feta-sleur.mf
mf/feta-toevallig.mf
mf/mfmp.ini [deleted file]
mf/mfplain.ini [new file with mode: 0644]
mf/out/feta11.afm
mf/out/feta13.afm
mf/out/feta16.afm
mf/out/feta19.afm
mf/out/feta20.afm
mf/out/feta23.afm
mf/out/feta26.afm
ps/GNUmakefile
scripts/mudela-book.py
stepmake/Documentation/GNUmakefile
stepmake/Documentation/out/automake.txt [new file with mode: 0644]
stepmake/Documentation/out/layout.txt [new file with mode: 0644]
stepmake/Documentation/topdocs/GNUmakefile
stepmake/Documentation/topdocs/out/AUTHORS.txt [new file with mode: 0644]
stepmake/Documentation/topdocs/out/BLURB [new file with mode: 0644]
stepmake/Documentation/topdocs/out/INSTALL.txt [new file with mode: 0644]
stepmake/NEWS
stepmake/VERSION
stepmake/aclocal.m4
stepmake/bin/GNUmakefile
stepmake/bin/package-diff.py
stepmake/config.make.in
stepmake/configure
stepmake/make/GNUmakefile
stepmake/make/out/stepmake.lsm
stepmake/make/out/stepmake.spec
stepmake/make/toplevel.make.in
stepmake/stepmake/GNUmakefile
stepmake/stepmake/documentation-targets.make
stepmake/stepmake/executable-vars.make
stepmake/stepmake/generic-targets.make
stepmake/stepmake/generic-vars.make
stepmake/stepmake/install-out-rules.make [new file with mode: 0644]
stepmake/stepmake/install-out-targets.make [new file with mode: 0644]
stepmake/stepmake/install-out-vars.make [new file with mode: 0644]
stepmake/stepmake/install-out.sub.make [new file with mode: 0644]
stepmake/stepmake/install-outfiles.make [deleted file]
stepmake/stepmake/install-outfiles.sub.make [deleted file]
stepmake/stepmake/install-rules.make [new file with mode: 0644]
stepmake/stepmake/install-targets.make [new file with mode: 0644]
stepmake/stepmake/install-vars.make [new file with mode: 0644]
stepmake/stepmake/install.sub.make [new file with mode: 0644]
stepmake/stepmake/installfiles.make [deleted file]
stepmake/stepmake/metapost-rules.make
stepmake/stepmake/toplevel-targets.make
tex/GNUmakefile
tex/lilyponddefs.ps

index 6f2e9d4b4a80088b40c4146739f5c70031e1adb1..5fd71fb08300889ec601a8c265e0cbdd99cd776b 100644 (file)
@@ -2,7 +2,7 @@
 
 depth = ../..
 
-STEPMAKE_TEMPLATES=documentation
+STEPMAKE_TEMPLATES=documentation install-out
 SECTION=1
 MANTXT = $(addprefix $(outdir)/, $(addsuffix .txt,$(basename $(TEXINFO_FILES) .texinfo)))
 MANGROFF = $(addprefix $(outdir)/, $(addsuffix .$(SECTION),$(basename $(YO_FILES) .yo)))
@@ -16,8 +16,6 @@ default: $(MANGROFF)
 INSTALLATION_OUT_FILES=$(MANGROFF)
 INSTALLATION_OUT_DIR=$(mandir)/man$(SECTION)
 
-include $(stepdir)/install-outfiles.make
-
 local-WWW: $(MANGROFF:.1=.html)
        $(PYTHON) $(step-bindir)/ls-latex.py --package=$(topdir) --title 'Manual pages for LilyPond' $(YO_FILES) \
          | sed "s!$(outdir)/!!g" > $(outdir)/index.html
index 87a328b11fd128f665e6f692808161ca0f0b13af..1b20b7c37aa114a5cb1e3a54fb7127939d2df964 100644 (file)
@@ -40,10 +40,16 @@ verb(
 Then, from the top of Lily's source tree, type
 
 verb(
+    make dist
     make diff
 )
 
-which leaves your patch as file(./lilypond-0.1.73.jcn1.diff).
+which rolls the tarball file(../releases/lilypond-0.1.73.tar.gz)
+and leaves your patch as file(./lilypond-0.1.73.jcn1.diff).
+footnote('Make diff' generates a patch between two tarballs.  For 
+more info type 'make diff help=='.  We assume that there is a tarball 
+file(lilypond-0.1.73.tar.gz) in the directory file(../releases).
+
 
 If you didn't configure Lily using --srcdir, you can do:
 
diff --git a/NEWS b/NEWS
index 5cff9ea3776d13e9f2668439f25334c90ad43cc6..4cf107903c189aca1ee2d2aa4ffddc095e574f7c 100644 (file)
--- a/NEWS
+++ b/NEWS
-pl 17
-       - fixed RPM building.
+1.1.0
 
-pl 16.hwn1
-       - ridiculous slur dims fixed.
-       - ly2dvi32.py -> ly2dvi.py, ly2dvi.sh -> ly2dvi-old
-       - use re iso. regex for python stuff.
-       - bf: mudela-book.py
-       - updated install directions.  Made lilypond-login for csh
-       - bf: installdirs of MF stuff
-       - Dictionary implementation using hash tables (LilyPond is 3% faster)
-       - Cache [non]group_l_arr () calls in translator-group.cc (LilyPond is 4% faster)
+pl 18.exp
+       - use C++ RTTI iso access_Xxx ()
+       - junk Graphical_lisp_element
+       - catalan.ly
 
-pl 16.uu1
-       - debian URLs, make/stepmake.make  patch
-       - further debian fixes.
-       
-pl 14.tca1
-       - partitas
-       - prall{mordent,prall} patch.
-
-******
-pl 16
-       - read property ydirection and tieYDirection for tie direction.
-       - bf: slur over rest.
-       - bf: include path
-       - part of jcn2
-       - configure --enable-guile
-
-pl 15.jcn1
-       - autoconf on mf,mfont mp,mpost
+pl 17.tca1
+       - rewrite of mudela-book
  
-pl 15.am
-       - Lots of patches from *Adrian* *Mariano*!
-
-**********
-
-pl 15
-pl 14.hwn1
-       - \lyrics iso \lyric (mudela 1.0.7)
-       - cleaned up real_expression syntax.
-       - removed optional_semicolon nonterminal after toplevel assignment
-       - MInterval Music::time_int () -> Moment Music::duration ()
-       - junked Music_iterator::daddy_iter_l_
-       - junked Sequential_music::offset_mom_
-       - tempo compression:
-               * syntax: \times 2/3 Music
-               * Compressed_music, Compressed_music_iterator
-       - flower: init rational to 0
-       - flower: removed P?Cursor<>::P?Cursor (), using pointer iso ref now.
-       - don't install into TeX, but into ${datadir}/{mf,tex,ly} (todo: ps)
-
-
-*********
-pl 14
-
-pl 13.uu1
-       - syntax for \translator: (\name  "Name")
-       - bfs for footer
-       - bf: init/{book,center}-fragment.ly, YODL nofooter stuff. 
-       - bf: redeclaration
-       - bf: doc fixes
-       - bfs: egcs 1.1
-
-pl 13.mb1
-       - bf: Lookup::afm_find, the width was undefined for the feta fonts.
-       - bf: refman.yo
-
-pl 13.jcn5
-       - bf: init/paper* missing `;'
-       - lilyponddefs.ps fixes
-       - crude output name fix, see scores.cc
-
-pl 13.jcn4
-       - some ps output fixes
-       - lilyponddefs.ps: some sane implemenations
-       - removed (some) ghostscript internals
-
-pl 13.jcn3
-       - PostScript output version 0.0; do
-             export GS_LIB=$HOME/usr/src/lilypond/tex
-             export GS_FONTPATH=$HOME/usr/src/lilypond/mf/out
-             make -C mf pfa
-             lilypond -t example-1  # or try: lilypond -t twinkle :-)
-             gv lelie.ps
-       - ps:
-         * lots of output fixes, chars, strings
-         * tex/lilyponddefs.ps: added rather braindead defs
-
-pl 13.jcn2
-       - tex/lily-ps-defs.ps (./tex?)
-       - grand output rehack
-         * dropped {dimen,tex}.{cc,hh}
-         * {ps,tex} stuf to {Ps,Tex}_lookup
-         * init/table*.ly: added #parameters
-       - ps fonts:
-         * ps-to-pfa.py generates valid type-3 fonts
-         * do: make -C mf pfa
-         * set: GS_FONT=GS_FONTPATH=$HOME/usr/src/lilypond/mf/out
-
-pl 13.jcn1
-       - crude postscript type 3 font: 
-          make sure to have mfplain.mem metapost precompiled macros
-          make -C mf ps
-          gv out/feta20.sp
-
-********
-
-pl 12.mb1
-       - bf: feta-timesig.mf Added horizontal space, minor corrections.
-       - Changed meaning of Staff.timeSignatureStyle:
-               C       Use C and stroked C for 4/4,2/2
-               old     Use old style mensuration marks
-               1       Use single number
-               Cn/m    Set symbol explicitly, n/m=2/2 or 4/4   
-               oldn/m  Set symbol explicitly, n/m=2/2,3/2,3/4,4/4,6/4 or 9/4.
-         All other time signatures are typeset with the default two-digit
-         layout.
-               
-
-pl 12.jcn2
-       - Lookup abstract base class
-       - Lookup/Symtable(s): separation of input/output
-
-pl 12.jcn1
-       - preparations for braindead PostScript output
-
-pl 12.hwn3
-       - praeludium-fuga-E to relative mode
-       - bf: mudela-mode.el
-       - bf: BIBINPUTS
-       - more dutch glossary + explanations
-       - table-to-html fixes
-pl 12.hwn2
-       - bf: mymycode in .yo
-       - VERSION to out/
-       - add VPATH to mutopia
-       - access_Identifier (bool): (non)copy arg now explicit.
-       - bf: lilypond-latex.tex
-  
-
-
-pl 12.hwn1
-       - \remove "Engraver_type";
-       - \output "bla" -> output = "bla" (mudela 0.1.6)
-       - \property defaultclef -> \property defaultClef
-       - naming of access_{Engraver,Performer,Translator_group} ()
-       - changed syntax for \translator in \paper{} (mudela 0.1.6)
-       - declared contexts:
-
-               StaffContext = \translator { .. }
-               \translator { \StaffContext }
-
-       - elt_b -> elem_b
-       - bf: add Separating_line_group_engraver to RhythmicStaff.
-
-
-pl 12.am1
-       - large doc patch, ChoireStaff -> ChoirStaff
-
-*******
-pl 12
-
-pl 11.uu2
-       - added Transposed_music for mixing transposition and relative 
-
-pl 11.jcn1
-       - bf: config.make striproff
-       - texinfo
-pl 11.mb2
-       - feta-timesig.mf: Added some flesh on C and C2,
-         added old-style mensuration marks.
-pl 11.mb1
-       - Added feta-timesig.mf, font for C and alla breve.
-
-
-pl 11.uu1
-       - new \property: meterSignatureStyle for C and C2 time sigs
-       - bf: BIBINPUTS
-       - stepmake 53
-       - bf: gif vs. png stuff
-
-*******
-pl 11
-
-pl 10.uu2
-       - plet-spanner fix. 
-       - large doc patch (thanks Adrian)
-
-pl 10.jbr1
-        - aclocal.m4, stepmake/aclocal.m4: Choose specific python
-        - stepmake/bin/release.py: Use the same python calling process
-        - make/lilypond-vars.make: PATH should not use PATHSEP.  It is fine 
-          to hard code it to `:' on both Windows NT and UNIX.
-        - stepmake/bin/package-zip32.sh: Perform configure with a specific
-          python, ie cygwin32 python on Windows NT
-
-pl 10.uu1
-       - junked \octave
-       - marginBreakPriority, direction==LEFT
-       - mf-to-table NT fix (JBR)
-       - createKeyOnClefChange property
-
-
-pl 10.jcn1
-       - mf-to-xpms for Harmonia
-  
-pl 9.jbr1
-        - scripts/convert-mudela.py: We must close infile and outfile before
-          a rename occurs.  NT Windows locks open files.
-          stepmake/bin/package-zip32.sh: renamed all python bins to:
-          <filename>.py in NT Windows distribution.
-
-
-*********
-pl 10
-
-pl 9.jcn1
-       - started gnuisation of website
-         * filetype and size
-         * 'no gifs due to patent problems'
-       - bumped stepmake version nr (again):
-         please update stepmake/VERSION after making changes to stepmake...
-  
-pl 9.hwn1
-       - do default midi,paper by toplevel \paper / \midi (mudela 1.0.4)
-       - bf: error if no Score context
-       - notename table now can be declared as well.
-       - junked \clear
-
-*********
-pl 9
-       
-pl 8.uu1
-       - junked \staff, \multi
-       - bf Music_list::Music_list (Music_list const&)
-       - AC_SUBST(PATHSEP,DIRSEP)
-       - generate Documentation/tex/out/*.bib (AM)
-       - a4 fixes (AM)
-       - bf: metafont-*.make
-       - parser.yy: intlist mods. (mudela 1.0.2)
-       - \melodic -> \notes (mudela 1.0.3)
-       - typo: calcalute_dependencies ()
-
-pl 8.jcn3
-       - gif -> png
-           * ps-to-pngs.sh
-           * stepmake
-           * website
-           * yodl-1.31.4 (to be released)
-       - target 'texinfo' -> 'info'
-
-pl 8.jcn2
-       - more doco in texinfo (with yodl pl3)
-       - bf's: package-diff
-
-pl 8.jcn1
-       - removed tutorial from texinfo, yodl2texinfo is still rather broken
-       - bf: setlocale NUMERIC to 'C'
-       - removed ugly space from print-dimen
-
-*******
-pl 8
-       - make website fixes.
-
-pl 7.jcn1
-       - minor stepmake/yodl fixes
-pl 7.uu1
-
-       - changed separator in vocabulary
-       - added barAlways and defaultBarType properties.
-
-pl 7.hwn1
-       - changed header format.  Use a + for concatenation.
-
-               \header { key = "concat" + "string" }
-       
-       (mudela 1.0.2)  
-       - allow computed properties in translator definition
-
-               GrandStaff = \translator {
-                       minVerticalAlign = 1.5\staffheight;
-                       ..
-               }
-
-       - Music inheritance. Datastructure and parser now follow this grammar
-
-               Music_list:
-                       | Music_list Music
-                       ;
-               Simultaneous_music: '<' Music_list '>'
-                       ;
-               Sequential_music: '{' Music_list '}'
-                       ;
-
-       - bf: Item::do_unlink () don't iterate on attached_span_l_arr_,
-because it is changed by Spanner::set_bounds () (thanks Thomas)
-       - bf: URL Documentation/index (thanks EP)
-       - bf: twinkle.ly (thanks EP)
-       - bf: mi2mu (thanks Murray)
-       - bf: mudela-book --dependencies
-       - split LaTeX and TeX stuff
-
-pl 7.tca1
-       - more Partita's 
-
-pl 7.jbr1
-        - aclocal.m4,make/lilypond-vars.make: added PATHSEP as AC_SUBST to  
-          help support Windows NT doco build.  
-          Documentation/ntweb/index.yo: minor spelling changes
-
-
-*************
-pl 7
-       - refman updates by Adriano Moriano.
-
-
-pl 6.jbr2
-        - scripts/ly2dvi32.py: Fixed bug with lily input including multiple
-          files.  Also, we now stream out lilypond log one line at a time
-          for better feedback.
-
-pl 6.jbr1
-        - scripts/ly2dvi32.py: Added some doco, add postscript option, set
-          MFINPUTS along with TEXINPUTS, modified initialization sequence. 
-          Made some Python style changes per Han-Wen suggestions.
-        - Documentation/man/ly2dvi32.yo: Added a manpage for ly2dvi32.
-        - stepmake/bin/package-zip32.sh: Added doco distribution.  Removed
-          the installation directory after zip operation.  
-        - Documentation/ntweb/index.yo: LILYPOND -> LILYPONDPREFIX and 
-          comments about MiKTeX-1.11.
-
-pl 6.tca1
-       - First movement of Partita II (BWV 826) in 
-         mutopia/J.S.Bach/Cembalo-Partitas. Lilypond output was so
-         beautiful that I'll have to write the rest of the partita.
-
-pl 6.uu2
-       - mudela-book.py --dependencies
-       - more doc fixes (AM)
-       - warn if declaring a keyword.
-       - \grouping 4 2*3; now accepted.
-       - patches to standchen.ly
-
-pl 6.uu1
-
-       - mudela-book handles \input now
-       - vocabulary fixes by Adrian Moriano
-
-********
-pl 6
-       - largish rehack:
-         * Super_element is now an `abstract' class,
-         * Paper_score directly contains one Line_of_score.  The
-       breaking/postprocessing/deletion is mixed with the output phase.
-         * Hopefully this will save memory for large scores. (benchmarks, anyone?)
-         * bf: Horizontal_vertical_group_item::do_unlink () should call
-
-       Axis_group_item::do_unlink ()
-
-       - changed LILYPOND to LILYPONDPREFIX
-       - added tfm and dvi target for mf/
-       - reincluded english.ly
-       - doc fixes (thanks, Adrian Moriano)
-       - doc fixes.
-       - mf: ex height added.
-
-pl 5.mb1
-      - Mudela 1.0.1: Changed \accidentals -> \keysignature
-      - Identifiers can be used in textual scripts:
-
-
-       tempoString="Allegro molto assai";
-
-               [...]
-
-       c^\tempoString 
-
-
-
-pl 5.jbr2
-        - aclocal.m4,config.h.in,flower/file-path.cc: Added PATHSEP and 
-          DIRSEP to configuration to support windows style path and pathlists.
-        - stepmake/bin/package-zip32.sh,stepmake/stepmake/package.make:
-          zip target now calls package-zip32.sh which creates winnt 
-          binary distribution zip file. xzip target continues to use 
-          package-zip.sh for Jan's cross-compiled version.
-        - lily/main.cc: Added a search for LILYPOND environment variable to
-          better facilitate binary distributions. 
-        - Documentation/README-W32.yo: Updated information on running lilypond
-          on winnt.
-          
-
-
-pl 5.jcn1
-       - (step)make fixes from yodl
-       - minor doco fixes
-       - bf: patch in website after 'make release'
-
-pl 5.jbr1
-       - Documentation/ntweb/Makefile: Used absolute url for LilyPond Homepage
-       - Documentation/ntweb/index.yo: Minor mods per Jan's suggestions
-
-
-
-
-*************
-pl 5
-
-pl 4.jcn1
-       - texinfo docs, lots of yodl TODO
-       - junked some makefiles
-       - ntweb: use BLURB
-       - bf: pletvisibility 
-       - adaptions for yodl-1.31.2's automatic texinfo conversion 
-       - reinclude of 1.jcn2:
-                 - renamed -alto -> viola
-                 - bf: avant-gardish six preludes
-                 - bf: ly2dvi warnings
-
-pl 4.jbr1
-       - stepmake/stepmake/install-outfiles.sub.make: fixed typo
-       - scripts/GNUmakefile: add ly2dvi32 to installation list and fixed
-         included executable-targets.make to facilate installation of scripts
-       - Documentation/ntweb: Fixes to nt web page and added topdoc like
-         automation.
-
-*********
-pl 4
-pl 3.mb2
-       - Changed text script alignment: center -> left
-       - TeX commands counts as one character when calculating
-         the length of a Text_def
-
-pl 3.jbr2
-         - Documentation/topdocs/index.yo: Added link to NT dist page
-         - Documentation/ntweb/: Added Makefile and index.yo to build the
-           NT dist page
-
-pl 3.hwn1
-       - stepmake hacking
-
-pl 3.uu1
-       - stepmake MAKEFILES -> STEPMAKE_TEMPLATES
-       - count \texcommands in tex string
-
-
-pl 3.jcn1
-       - bf: website: empty toplevel readme's
-       - bf: xs4all (again?)
-       - can't administer ftp site now: put patch into website
-
-
-pl 3.jbr1
-       - stepmake/stepmake/Executable_targets: UNIX cross-compile doesn't
-         work with $(DOTEXE) on source of install command.
-       - stepmake/Generic_targets: creating multiple dirs with mkdir 
-         requires -p option
-       - scripts/ly2dvi32.py: General and Winnt specific fixes
-
-
-*********
-pl 3
-
-pl 2.uu1
-        - solaris 2.6 compile/make website fixes.
-        - rm'd WWW.make
-        - stepmake .43
-        - pcnov095.win.tue.nl -> ftp.cs.uu.nl
-  
-pl 2.hwn1
-       - mi2mu naming of track output
-       - bf: do key restore sign only once
-       - ly2dvi32 preliminary version (JBR)
-       - bf index.html link
-       - bf mudela-book.py
-
-
-**********
-pl 2
-       - scalar compile stuff
-       - bf install directory
-       - YODL note
-       - GUI faq update
-       - bf ly2dvi
-       - stepmake split:  Po.make
-       - make check target
-       - dist AFMs and manpages
-       - split up mudela.yo in glossary.yo, tutorial.yo and refman.yo
-
-pl 1.jcn1
-       - www.digicash.com www.xs4all.nl
-       - fake msgfmt
-       - make uninstall fixes
-
-pl 1.jbr2 - aclocal.m4,stepmake/aclocal.m4,stepmake/stepmake/Variables.make:
-            Support install target for unix, unix cross compile, and 
-            Windows NT
-
-pl 1.jbr1 - stepmake/stepmake/Executable.make: DOTEXE was missplaced
-          - scripts/convert-mudela.py: program_id should write to stderr
-
-**************
-pl 1
-       - mi2mu fix: \key "D"
-       - \hoffset
-       - started new NEWS file 
-       - lots of stepmake hacking
-       - aclocal.m4 copied from stepmake
-       - ly2dvi 0.12
-       - build the doco from the source tree.
-       - include website in RPM
+pl 17.ms1
+       - added \thumb (used very often in cello music) in
+         mf/feta-schrift.mf. 
+       - added /input/test/thumb.ly (example)
+
+pl 16.jcn1
+       - dashed-slur through scheme
+
+pl 15.jcn4
+       - more scheme hacks
+
+pl 15.jcn3
+       - try at scheme in Atom
+
+pl 15.jcn2 # rest of
+       - graphical-lisp-element + silly half hook-up with autuplet
+
+pl 17.jcn5
+       - stepmake pl59: templatised install (see mf/)
+       - reasonably ps/tex success (with guile-1.2):
+         * input/kortjakje.ly
+       - lots more scm stuff
+       - bf: mf/mfplain.ini
+       - stepmake pl58: guile 1.3 configure fix
+       - working font-switch:
+         guile-1.2 and -lreadline -ldl from 1.3 configure...
+
+pl 17.jcn4
+       - installable stepmake pl57
+       - urg, FIXME guile-1.3: 
+         * don't install shared libs! configure can't handle
+         * manually add: EXTRA_LIBS = -lguile -lreadline -ldl
+         * lily's truely broken, downgrade do 1.2
+
+pl 17.jcn3
+       - lots of stuff still broken, notably font selection, just try 
+          a()b
+          or so
+       - tex output support
+       - all output through scheme
+       - option: f, output-format=X
+       - geile placebox 
+       - mf/mfplain.ini
+
+pl 17.jcn2
+       - all paper output through scheme, about half way
+
+pl 17.jcn1
+       - 16.jcn1
 
diff --git a/NEWS-1.0 b/NEWS-1.0
new file mode 100644 (file)
index 0000000..c50fbdf
--- /dev/null
+++ b/NEWS-1.0
@@ -0,0 +1,516 @@
+
+pl 17
+       - fixed RPM building.
+
+pl 16.hwn1
+       - ridiculous slur dims fixed.
+       - ly2dvi32.py -> ly2dvi.py, ly2dvi.sh -> ly2dvi-old
+       - use re iso. regex for python stuff.
+       - bf: mudela-book.py
+       - updated install directions.  Made lilypond-login for csh
+       - bf: installdirs of MF stuff
+       - Dictionary implementation using hash tables (LilyPond is 3% faster)
+       - Cache [non]group_l_arr () calls in translator-group.cc (LilyPond is 4% faster)
+
+pl 16.uu1
+       - debian URLs, make/stepmake.make  patch
+       - further debian fixes.
+       
+pl 14.tca1
+       - partitas
+       - prall{mordent,prall} patch.
+
+******
+pl 16
+       - read property ydirection and tieYDirection for tie direction.
+       - bf: slur over rest.
+       - bf: include path
+       - part of jcn2
+       - configure --enable-guile
+
+pl 15.jcn1
+       - autoconf on mf,mfont mp,mpost
+pl 15.am
+       - Lots of patches from *Adrian* *Mariano*!
+
+**********
+
+pl 15
+pl 14.hwn1
+       - \lyrics iso \lyric (mudela 1.0.7)
+       - cleaned up real_expression syntax.
+       - removed optional_semicolon nonterminal after toplevel assignment
+       - MInterval Music::time_int () -> Moment Music::duration ()
+       - junked Music_iterator::daddy_iter_l_
+       - junked Sequential_music::offset_mom_
+       - tempo compression:
+               * syntax: \times 2/3 Music
+               * Compressed_music, Compressed_music_iterator
+       - flower: init rational to 0
+       - flower: removed P?Cursor<>::P?Cursor (), using pointer iso ref now.
+       - don't install into TeX, but into ${datadir}/{mf,tex,ly} (todo: ps)
+
+
+*********
+pl 14
+
+pl 13.uu1
+       - syntax for \translator: (\name  "Name")
+       - bfs for footer
+       - bf: init/{book,center}-fragment.ly, YODL nofooter stuff. 
+       - bf: redeclaration
+       - bf: doc fixes
+       - bfs: egcs 1.1
+
+pl 13.mb1
+       - bf: Lookup::afm_find, the width was undefined for the feta fonts.
+       - bf: refman.yo
+
+pl 13.jcn5
+       - bf: init/paper* missing `;'
+       - lilyponddefs.ps fixes
+       - crude output name fix, see scores.cc
+
+pl 13.jcn4
+       - some ps output fixes
+       - lilyponddefs.ps: some sane implemenations
+       - removed (some) ghostscript internals
+
+pl 13.jcn3
+       - PostScript output version 0.0; do
+             export GS_LIB=$HOME/usr/src/lilypond/tex
+             export GS_FONTPATH=$HOME/usr/src/lilypond/mf/out
+             make -C mf pfa
+             lilypond -t example-1  # or try: lilypond -t twinkle :-)
+             gv lelie.ps
+       - ps:
+         * lots of output fixes, chars, strings
+         * tex/lilyponddefs.ps: added rather braindead defs
+
+pl 13.jcn2
+       - tex/lily-ps-defs.ps (./tex?)
+       - grand output rehack
+         * dropped {dimen,tex}.{cc,hh}
+         * {ps,tex} stuf to {Ps,Tex}_lookup
+         * init/table*.ly: added #parameters
+       - ps fonts:
+         * ps-to-pfa.py generates valid type-3 fonts
+         * do: make -C mf pfa
+         * set: GS_FONT=GS_FONTPATH=$HOME/usr/src/lilypond/mf/out
+
+pl 13.jcn1
+       - crude postscript type 3 font: 
+          make sure to have mfplain.mem metapost precompiled macros
+          make -C mf ps
+          gv out/feta20.sp
+
+********
+
+pl 12.mb1
+       - bf: feta-timesig.mf Added horizontal space, minor corrections.
+       - Changed meaning of Staff.timeSignatureStyle:
+               C       Use C and stroked C for 4/4,2/2
+               old     Use old style mensuration marks
+               1       Use single number
+               Cn/m    Set symbol explicitly, n/m=2/2 or 4/4   
+               oldn/m  Set symbol explicitly, n/m=2/2,3/2,3/4,4/4,6/4 or 9/4.
+         All other time signatures are typeset with the default two-digit
+         layout.
+               
+
+pl 12.jcn2
+       - Lookup abstract base class
+       - Lookup/Symtable(s): separation of input/output
+
+pl 12.jcn1
+       - preparations for braindead PostScript output
+
+pl 12.hwn3
+       - praeludium-fuga-E to relative mode
+       - bf: mudela-mode.el
+       - bf: BIBINPUTS
+       - more dutch glossary + explanations
+       - table-to-html fixes
+pl 12.hwn2
+       - bf: mymycode in .yo
+       - VERSION to out/
+       - add VPATH to mutopia
+       - access_Identifier (bool): (non)copy arg now explicit.
+       - bf: lilypond-latex.tex
+  
+
+
+pl 12.hwn1
+       - \remove "Engraver_type";
+       - \output "bla" -> output = "bla" (mudela 0.1.6)
+       - \property defaultclef -> \property defaultClef
+       - naming of access_{Engraver,Performer,Translator_group} ()
+       - changed syntax for \translator in \paper{} (mudela 0.1.6)
+       - declared contexts:
+
+               StaffContext = \translator { .. }
+               \translator { \StaffContext }
+
+       - elt_b -> elem_b
+       - bf: add Separating_line_group_engraver to RhythmicStaff.
+
+
+pl 12.am1
+       - large doc patch, ChoireStaff -> ChoirStaff
+
+*******
+pl 12
+
+pl 11.uu2
+       - added Transposed_music for mixing transposition and relative 
+
+pl 11.jcn1
+       - bf: config.make striproff
+       - texinfo
+pl 11.mb2
+       - feta-timesig.mf: Added some flesh on C and C2,
+         added old-style mensuration marks.
+pl 11.mb1
+       - Added feta-timesig.mf, font for C and alla breve.
+
+
+pl 11.uu1
+       - new \property: meterSignatureStyle for C and C2 time sigs
+       - bf: BIBINPUTS
+       - stepmake 53
+       - bf: gif vs. png stuff
+
+*******
+pl 11
+
+pl 10.uu2
+       - plet-spanner fix. 
+       - large doc patch (thanks Adrian)
+
+pl 10.jbr1
+        - aclocal.m4, stepmake/aclocal.m4: Choose specific python
+        - stepmake/bin/release.py: Use the same python calling process
+        - make/lilypond-vars.make: PATH should not use PATHSEP.  It is fine 
+          to hard code it to `:' on both Windows NT and UNIX.
+        - stepmake/bin/package-zip32.sh: Perform configure with a specific
+          python, ie cygwin32 python on Windows NT
+
+pl 10.uu1
+       - junked \octave
+       - marginBreakPriority, direction==LEFT
+       - mf-to-table NT fix (JBR)
+       - createKeyOnClefChange property
+
+
+pl 10.jcn1
+       - mf-to-xpms for Harmonia
+  
+pl 9.jbr1
+        - scripts/convert-mudela.py: We must close infile and outfile before
+          a rename occurs.  NT Windows locks open files.
+          stepmake/bin/package-zip32.sh: renamed all python bins to:
+          <filename>.py in NT Windows distribution.
+
+
+*********
+pl 10
+
+pl 9.jcn1
+       - started gnuisation of website
+         * filetype and size
+         * 'no gifs due to patent problems'
+       - bumped stepmake version nr (again):
+         please update stepmake/VERSION after making changes to stepmake...
+  
+pl 9.hwn1
+       - do default midi,paper by toplevel \paper / \midi (mudela 1.0.4)
+       - bf: error if no Score context
+       - notename table now can be declared as well.
+       - junked \clear
+
+*********
+pl 9
+       
+pl 8.uu1
+       - junked \staff, \multi
+       - bf Music_list::Music_list (Music_list const&)
+       - AC_SUBST(PATHSEP,DIRSEP)
+       - generate Documentation/tex/out/*.bib (AM)
+       - a4 fixes (AM)
+       - bf: metafont-*.make
+       - parser.yy: intlist mods. (mudela 1.0.2)
+       - \melodic -> \notes (mudela 1.0.3)
+       - typo: calcalute_dependencies ()
+
+pl 8.jcn3
+       - gif -> png
+           * ps-to-pngs.sh
+           * stepmake
+           * website
+           * yodl-1.31.4 (to be released)
+       - target 'texinfo' -> 'info'
+
+pl 8.jcn2
+       - more doco in texinfo (with yodl pl3)
+       - bf's: package-diff
+
+pl 8.jcn1
+       - removed tutorial from texinfo, yodl2texinfo is still rather broken
+       - bf: setlocale NUMERIC to 'C'
+       - removed ugly space from print-dimen
+
+*******
+pl 8
+       - make website fixes.
+
+pl 7.jcn1
+       - minor stepmake/yodl fixes
+pl 7.uu1
+
+       - changed separator in vocabulary
+       - added barAlways and defaultBarType properties.
+
+pl 7.hwn1
+       - changed header format.  Use a + for concatenation.
+
+               \header { key = "concat" + "string" }
+       
+       (mudela 1.0.2)  
+       - allow computed properties in translator definition
+
+               GrandStaff = \translator {
+                       minVerticalAlign = 1.5\staffheight;
+                       ..
+               }
+
+       - Music inheritance. Datastructure and parser now follow this grammar
+
+               Music_list:
+                       | Music_list Music
+                       ;
+               Simultaneous_music: '<' Music_list '>'
+                       ;
+               Sequential_music: '{' Music_list '}'
+                       ;
+
+       - bf: Item::do_unlink () don't iterate on attached_span_l_arr_,
+because it is changed by Spanner::set_bounds () (thanks Thomas)
+       - bf: URL Documentation/index (thanks EP)
+       - bf: twinkle.ly (thanks EP)
+       - bf: mi2mu (thanks Murray)
+       - bf: mudela-book --dependencies
+       - split LaTeX and TeX stuff
+
+pl 7.tca1
+       - more Partita's 
+
+pl 7.jbr1
+        - aclocal.m4,make/lilypond-vars.make: added PATHSEP as AC_SUBST to  
+          help support Windows NT doco build.  
+          Documentation/ntweb/index.yo: minor spelling changes
+
+
+*************
+pl 7
+       - refman updates by Adriano Moriano.
+
+
+pl 6.jbr2
+        - scripts/ly2dvi32.py: Fixed bug with lily input including multiple
+          files.  Also, we now stream out lilypond log one line at a time
+          for better feedback.
+
+pl 6.jbr1
+        - scripts/ly2dvi32.py: Added some doco, add postscript option, set
+          MFINPUTS along with TEXINPUTS, modified initialization sequence. 
+          Made some Python style changes per Han-Wen suggestions.
+        - Documentation/man/ly2dvi32.yo: Added a manpage for ly2dvi32.
+        - stepmake/bin/package-zip32.sh: Added doco distribution.  Removed
+          the installation directory after zip operation.  
+        - Documentation/ntweb/index.yo: LILYPOND -> LILYPONDPREFIX and 
+          comments about MiKTeX-1.11.
+
+pl 6.tca1
+       - First movement of Partita II (BWV 826) in 
+         mutopia/J.S.Bach/Cembalo-Partitas. Lilypond output was so
+         beautiful that I'll have to write the rest of the partita.
+
+pl 6.uu2
+       - mudela-book.py --dependencies
+       - more doc fixes (AM)
+       - warn if declaring a keyword.
+       - \grouping 4 2*3; now accepted.
+       - patches to standchen.ly
+
+pl 6.uu1
+
+       - mudela-book handles \input now
+       - vocabulary fixes by Adrian Moriano
+
+********
+pl 6
+       - largish rehack:
+         * Super_element is now an `abstract' class,
+         * Paper_score directly contains one Line_of_score.  The
+       breaking/postprocessing/deletion is mixed with the output phase.
+         * Hopefully this will save memory for large scores. (benchmarks, anyone?)
+         * bf: Horizontal_vertical_group_item::do_unlink () should call
+
+       Axis_group_item::do_unlink ()
+
+       - changed LILYPOND to LILYPONDPREFIX
+       - added tfm and dvi target for mf/
+       - reincluded english.ly
+       - doc fixes (thanks, Adrian Moriano)
+       - doc fixes.
+       - mf: ex height added.
+
+pl 5.mb1
+      - Mudela 1.0.1: Changed \accidentals -> \keysignature
+      - Identifiers can be used in textual scripts:
+
+
+       tempoString="Allegro molto assai";
+
+               [...]
+
+       c^\tempoString 
+
+
+
+pl 5.jbr2
+        - aclocal.m4,config.h.in,flower/file-path.cc: Added PATHSEP and 
+          DIRSEP to configuration to support windows style path and pathlists.
+        - stepmake/bin/package-zip32.sh,stepmake/stepmake/package.make:
+          zip target now calls package-zip32.sh which creates winnt 
+          binary distribution zip file. xzip target continues to use 
+          package-zip.sh for Jan's cross-compiled version.
+        - lily/main.cc: Added a search for LILYPOND environment variable to
+          better facilitate binary distributions. 
+        - Documentation/README-W32.yo: Updated information on running lilypond
+          on winnt.
+          
+
+
+pl 5.jcn1
+       - (step)make fixes from yodl
+       - minor doco fixes
+       - bf: patch in website after 'make release'
+
+pl 5.jbr1
+       - Documentation/ntweb/Makefile: Used absolute url for LilyPond Homepage
+       - Documentation/ntweb/index.yo: Minor mods per Jan's suggestions
+
+
+
+
+*************
+pl 5
+
+pl 4.jcn1
+       - texinfo docs, lots of yodl TODO
+       - junked some makefiles
+       - ntweb: use BLURB
+       - bf: pletvisibility 
+       - adaptions for yodl-1.31.2's automatic texinfo conversion 
+       - reinclude of 1.jcn2:
+                 - renamed -alto -> viola
+                 - bf: avant-gardish six preludes
+                 - bf: ly2dvi warnings
+
+pl 4.jbr1
+       - stepmake/stepmake/install-outfiles.sub.make: fixed typo
+       - scripts/GNUmakefile: add ly2dvi32 to installation list and fixed
+         included executable-targets.make to facilate installation of scripts
+       - Documentation/ntweb: Fixes to nt web page and added topdoc like
+         automation.
+
+*********
+pl 4
+pl 3.mb2
+       - Changed text script alignment: center -> left
+       - TeX commands counts as one character when calculating
+         the length of a Text_def
+
+pl 3.jbr2
+         - Documentation/topdocs/index.yo: Added link to NT dist page
+         - Documentation/ntweb/: Added Makefile and index.yo to build the
+           NT dist page
+
+pl 3.hwn1
+       - stepmake hacking
+
+pl 3.uu1
+       - stepmake MAKEFILES -> STEPMAKE_TEMPLATES
+       - count \texcommands in tex string
+
+
+pl 3.jcn1
+       - bf: website: empty toplevel readme's
+       - bf: xs4all (again?)
+       - can't administer ftp site now: put patch into website
+
+
+pl 3.jbr1
+       - stepmake/stepmake/Executable_targets: UNIX cross-compile doesn't
+         work with $(DOTEXE) on source of install command.
+       - stepmake/Generic_targets: creating multiple dirs with mkdir 
+         requires -p option
+       - scripts/ly2dvi32.py: General and Winnt specific fixes
+
+
+*********
+pl 3
+
+pl 2.uu1
+        - solaris 2.6 compile/make website fixes.
+        - rm'd WWW.make
+        - stepmake .43
+        - pcnov095.win.tue.nl -> ftp.cs.uu.nl
+  
+pl 2.hwn1
+       - mi2mu naming of track output
+       - bf: do key restore sign only once
+       - ly2dvi32 preliminary version (JBR)
+       - bf index.html link
+       - bf mudela-book.py
+
+
+**********
+pl 2
+       - scalar compile stuff
+       - bf install directory
+       - YODL note
+       - GUI faq update
+       - bf ly2dvi
+       - stepmake split:  Po.make
+       - make check target
+       - dist AFMs and manpages
+       - split up mudela.yo in glossary.yo, tutorial.yo and refman.yo
+
+pl 1.jcn1
+       - www.digicash.com www.xs4all.nl
+       - fake msgfmt
+       - make uninstall fixes
+
+pl 1.jbr2 - aclocal.m4,stepmake/aclocal.m4,stepmake/stepmake/Variables.make:
+            Support install target for unix, unix cross compile, and 
+            Windows NT
+
+pl 1.jbr1 - stepmake/stepmake/Executable.make: DOTEXE was missplaced
+          - scripts/convert-mudela.py: program_id should write to stderr
+
+**************
+pl 1
+       - mi2mu fix: \key "D"
+       - \hoffset
+       - started new NEWS file 
+       - lots of stepmake hacking
+       - aclocal.m4 copied from stepmake
+       - ly2dvi 0.12
+       - build the doco from the source tree.
+       - include website in RPM
+
diff --git a/TODO b/TODO
index 6c18aa1a12005c94c03c95b129be1fc09aa21e76..e22c3f60e80d26e2dcf43a80a9b9b7a086bf6663 100644 (file)
--- a/TODO
+++ b/TODO
@@ -10,14 +10,11 @@ grep for TODO and ugh/ugr/urg
 
 BUGS:
 
-       * document new TeX/mf layout
-
-       * egcs-1.1 -O2 -finline-functions  causes crash
+       
+       * add new glyphs to font.ly
 
        * formatting of input stuff. 
 
-       * use real RTTI iso access_Stuff.
-
        * \notes{ a \< b \cr } vs \notes{ a \< b \! }
 
        * if possible, it might be nice for a warning to appear if someone does
diff --git a/VERSION b/VERSION
index 951bd357fd21a7e926bb32707012f8afd976e2a7..ef23e353b8b9a7e4c2aa93a00e89d5589b2471a6 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,7 +1,7 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
-MINOR_VERSION=0
-PATCH_LEVEL=17
+MINOR_VERSION=1
+PATCH_LEVEL=0
 MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
index 5844b69dcf07e88a09b61d3b99db8c88b387cdf4..1671ff15efd04bcbf5d7328857ebfff143bfcfdb 100644 (file)
@@ -1,5 +1,5 @@
 dnl WARNING WARNING WARNING WARNING
-dnl do not edit! this is aclocal.m4, generated from stepmake/stepmake/../aclocal.m4
+dnl do not edit! this is aclocal.m4, generated from stepmake/aclocal.m4
 dnl aclocal.m4   -*-shell-script-*-
 dnl StepMake subroutines for configure.in
 
@@ -155,6 +155,16 @@ AC_DEFUN(AC_STEPMAKE_GXX, [
     fi
 ])
 
+AC_DEFUN(AC_STEPMAKE_GUILE, [
+    # urg, must check for different functions in libguile
+    # to force new check iso reading from cache
+    AC_CHECK_LIB(guile, scm_shell, \
+      LIBS="-lguile $LIBS" AC_DEFINE(HAVE_LIBGUILE), \
+      AC_CHECK_LIB(readline, readline) \
+      AC_CHECK_LIB(dl, dlopen) \
+      AC_CHECK_LIB(guile, scm_boot_guile))
+])
+
 AC_DEFUN(AC_STEPMAKE_INIT, [
 
     . $srcdir/VERSION
@@ -169,16 +179,44 @@ AC_DEFUN(AC_STEPMAKE_INIT, [
     package=`echo $PACKAGE_NAME | tr '[A-Z]' '[a-z]'`
     changequote([, ])dnl
 
+    # No versioning on directory names of sub-packages 
+    # urg, urg
+    stepmake=${datadir}/stepmake
+    presome=${prefix}
+    if test "$prefix" = "NONE"; then
+           presome=${ac_default_prefix}
+    fi
+    stepmake=`echo ${stepmake} | sed "s!\\\${prefix}!$presome!"`
+
     if test "x$PACKAGE" = "xSTEPMAKE"; then
         echo Stepmake package!
        (cd stepmake; rm -f stepmake; ln -s ../stepmake .)
        (cd stepmake; rm -f bin; ln -s ../bin .)
        AC_CONFIG_AUX_DIR(bin)
+       stepmake=stepmake
     else
         echo Package: $PACKAGE
-       AC_CONFIG_AUX_DIR(stepmake/bin)
+       # Check for installed stepmake
+       if test -d $stepmake; then
+           echo Using installed stepmake: $stepmake
+       else
+           stepmake='$(depth)'/stepmake
+           echo Using local stepmake: $datadir/stepmake not found
+       fi
+       AC_CONFIG_AUX_DIR(\
+         $HOME/usr/local/share/stepmake/bin\
+         $HOME/usr/local/lib/stepmake/bin\
+         $HOME/usr/share/stepmake/bin\
+         $HOME/usr/lib/stepmake/bin\
+         /usr/local/share/stepmake/bin\
+         /usr/local/lib/stepmake/bin\
+         /usr/share/stepmake/bin\
+         /usr/lib/stepmake/bin\
+         stepmake/bin\
+       )
     fi
 
+    AC_SUBST(stepmake)
     AC_SUBST(package)
     AC_SUBST(PACKAGE)
     AC_SUBST(PACKAGE_NAME)
@@ -193,10 +231,6 @@ AC_DEFUN(AC_STEPMAKE_INIT, [
     absolute_builddir="`pwd`"
     AC_SUBST(absolute_builddir)
 
-    # No versioning on directory names of sub-packages 
-    stepmake=stepmake
-    AC_SUBST(stepmake)
-
     STATE_VECTOR=`ls make/STATE-VECTOR 2>/dev/null`
     if test "x$STATE_VECTOR" != "x"; then
        STATE_VECTOR="\$(depth)/$STATE_VECTOR"
@@ -251,14 +285,14 @@ dnl    fi
        DOTEXE=.exe
        DIRSEP='\\'
        PATHSEP=';'
-       INSTALL="\$(stepdir)/../bin/install-dot-exe.sh -c"
+       INSTALL="\$(SHELL) \$(stepdir)/../bin/install-dot-exe.sh -c"
     else
        DIRSEP='/'
        PATHSEP=':'
        LN=ln
        LN_S='ln -s'
        ZIP="zip -r -9"
-        INSTALL="\$(stepdir)/../bin/install-sh -c"
+        INSTALL="\$(SHELL) \$(stepdir)/../bin/install-sh -c"
     fi
     AC_SUBST(DOTEXE)
     AC_SUBST(ZIP)
@@ -463,11 +497,13 @@ AC_DEFUN(AC_STEPMAKE_YODL, [
        AC_CHECK_PROGS(YODL2MSLESS, yodl2msless, -echo no yodl)
        AC_CHECK_PROGS(YODL2TEXINFO, yodl2texinfo, -echo no yodl)
        AC_CHECK_PROGS(YODL2TXT, yodl2txt, -echo no yodl)
+       YODL2LESS_DIR='$(bindir)/'
     else
        AC_SUBST(STRIPROFF)
        AC_SUBST(YODL)
        AC_SUBST(YODL2HTML)
        AC_SUBST(YODL2LATEX)
+       AC_SUBST(YODL2LESS_DIR)
        AC_SUBST(YODL2MAN)
        AC_SUBST(YODL2MSLESS)
        AC_SUBST(YODL2TEXINFO)
index 292783aab06bcbbc699d975d1a8b21ed6e6de12c..a2a43b481f36c5799fa97b00e60eb7d169f8069c 100644 (file)
@@ -59,6 +59,7 @@ TROFF = @TROFF@
 YODL= @YODL@
 YODL2HTML= @YODL2HTML@
 YODL2LATEX= @YODL2LATEX@
+YODL2LESS_DIR= @YODL2LESS_DIR@
 YODL2MAN= @YODL2MAN@
 YODL2MSLESS= @YODL2MSLESS@
 YODL2TEXINFO= @YODL2TEXINFO@
index 9588ac798a75f2e69b42c2dda9e2cb3a8a0ac390..942a6f482c0b7082cd34a2b446a7236415d08362 100755 (executable)
--- a/configure
+++ b/configure
@@ -79,8 +79,6 @@ ac_help="$ac_help
   enable-mingw-prefix=DIR set the mingw32 directory (standalone windows32 exes)"
 ac_help="$ac_help
   enable-printing         turn on debug printing. Default: off"
-ac_help="$ac_help
-  enable-guile            link in GUILE. Default: off"
 ac_help="$ac_help
   with-localedir=LOCALE   use LOCALE as locale dir. Default: PREFIX/share/locale "
 ac_help="$ac_help
@@ -607,6 +605,15 @@ fi
         PACKAGE=`echo $PACKAGE_NAME | tr '[a-z]' '[A-Z]'`
     package=`echo $PACKAGE_NAME | tr '[A-Z]' '[a-z]'`
     
+    # No versioning on directory names of sub-packages 
+    # urg, urg
+    stepmake=${datadir}/stepmake
+    presome=${prefix}
+    if test "$prefix" = "NONE"; then
+           presome=${ac_default_prefix}
+    fi
+    stepmake=`echo ${stepmake} | sed "s!\\\${prefix}!$presome!"`
+
     if test "x$PACKAGE" = "xSTEPMAKE"; then
         echo Stepmake package!
        (cd stepmake; rm -f stepmake; ln -s ../stepmake .)
@@ -630,10 +637,38 @@ ac_config_guess=$ac_aux_dir/config.guess
 ac_config_sub=$ac_aux_dir/config.sub
 ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
 
+       stepmake=stepmake
     else
         echo Package: $PACKAGE
+       # Check for installed stepmake
+       if test -d $stepmake; then
+           echo Using installed stepmake: $stepmake
+       else
+           stepmake='$(depth)'/stepmake
+           echo Using local stepmake: $datadir/stepmake not found
+       fi
        ac_aux_dir=
-for ac_dir in stepmake/bin $srcdir/stepmake/bin; do
+for ac_dir in \
+         $HOME/usr/local/share/stepmake/bin\
+         $HOME/usr/local/lib/stepmake/bin\
+         $HOME/usr/share/stepmake/bin\
+         $HOME/usr/lib/stepmake/bin\
+         /usr/local/share/stepmake/bin\
+         /usr/local/lib/stepmake/bin\
+         /usr/share/stepmake/bin\
+         /usr/lib/stepmake/bin\
+         stepmake/bin\
+        $srcdir/\
+         $HOME/usr/local/share/stepmake/bin\
+         $HOME/usr/local/lib/stepmake/bin\
+         $HOME/usr/share/stepmake/bin\
+         $HOME/usr/lib/stepmake/bin\
+         /usr/local/share/stepmake/bin\
+         /usr/local/lib/stepmake/bin\
+         /usr/share/stepmake/bin\
+         /usr/lib/stepmake/bin\
+         stepmake/bin\
+       ; do
   if test -f $ac_dir/install-sh; then
     ac_aux_dir=$ac_dir
     ac_install_sh="$ac_aux_dir/install-sh -c"
@@ -645,7 +680,27 @@ for ac_dir in stepmake/bin $srcdir/stepmake/bin; do
   fi
 done
 if test -z "$ac_aux_dir"; then
-  { echo "configure: error: can not find install-sh or install.sh in stepmake/bin $srcdir/stepmake/bin" 1>&2; exit 1; }
+  { echo "configure: error: can not find install-sh or install.sh in \
+         $HOME/usr/local/share/stepmake/bin\
+         $HOME/usr/local/lib/stepmake/bin\
+         $HOME/usr/share/stepmake/bin\
+         $HOME/usr/lib/stepmake/bin\
+         /usr/local/share/stepmake/bin\
+         /usr/local/lib/stepmake/bin\
+         /usr/share/stepmake/bin\
+         /usr/lib/stepmake/bin\
+         stepmake/bin\
+        $srcdir/\
+         $HOME/usr/local/share/stepmake/bin\
+         $HOME/usr/local/lib/stepmake/bin\
+         $HOME/usr/share/stepmake/bin\
+         $HOME/usr/lib/stepmake/bin\
+         /usr/local/share/stepmake/bin\
+         /usr/local/lib/stepmake/bin\
+         /usr/share/stepmake/bin\
+         /usr/lib/stepmake/bin\
+         stepmake/bin\
+       " 1>&2; exit 1; }
 fi
 ac_config_guess=$ac_aux_dir/config.guess
 ac_config_sub=$ac_aux_dir/config.sub
@@ -656,6 +711,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
     
     
     
+    
     cat >> confdefs.h <<EOF
 #define PACKAGE "${PACKAGE_NAME}"
 EOF
@@ -673,10 +729,6 @@ EOF
     absolute_builddir="`pwd`"
     
 
-    # No versioning on directory names of sub-packages 
-    stepmake=stepmake
-    
-
     STATE_VECTOR=`ls make/STATE-VECTOR 2>/dev/null`
     if test "x$STATE_VECTOR" != "x"; then
        STATE_VECTOR="\$(depth)/$STATE_VECTOR"
@@ -705,7 +757,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:709: checking host system type" >&5
+echo "configure:761: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -730,7 +782,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:734: checking for $ac_word" >&5
+echo "configure:786: 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
@@ -764,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:768: 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
@@ -801,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:805: 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
@@ -835,7 +887,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:839: checking for $ac_word" >&5
+echo "configure:891: 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
@@ -868,7 +920,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:872: checking for $ac_word" >&5
+echo "configure:924: 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
@@ -937,14 +989,14 @@ fi
        DOTEXE=.exe
        DIRSEP='\\'
        PATHSEP=';'
-       INSTALL="\$(stepdir)/../bin/install-dot-exe.sh -c"
+       INSTALL="\$(SHELL) \$(stepdir)/../bin/install-dot-exe.sh -c"
     else
        DIRSEP='/'
        PATHSEP=':'
        LN=ln
        LN_S='ln -s'
        ZIP="zip -r -9"
-        INSTALL="\$(stepdir)/../bin/install-sh -c"
+        INSTALL="\$(SHELL) \$(stepdir)/../bin/install-sh -c"
     fi
     
     
@@ -1084,7 +1136,7 @@ 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:1088: checking for $ac_word" >&5
+echo "configure:1140: 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
@@ -1113,7 +1165,7 @@ 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:1117: checking for $ac_word" >&5
+echo "configure:1169: 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
@@ -1161,7 +1213,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1165: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1217: 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.
@@ -1171,11 +1223,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS
 cross_compiling=$ac_cv_prog_cc_cross
 
 cat > conftest.$ac_ext <<EOF
-#line 1175 "configure"
+#line 1227 "configure"
 #include "confdefs.h"
 main(){return(0);}
 EOF
-if { (eval echo configure:1179: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1231: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
@@ -1195,12 +1247,12 @@ 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:1199: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1251: 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:1204: checking whether we are using GNU C" >&5
+echo "configure:1256: 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
@@ -1209,7 +1261,7 @@ else
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1213: \"$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:1265: \"$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
@@ -1224,7 +1276,7 @@ if test $ac_cv_prog_gcc = yes; then
   ac_save_CFLAGS="$CFLAGS"
   CFLAGS=
   echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1228: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1280: 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
@@ -1265,20 +1317,12 @@ fi
 # AC_HAVE_HEADERS(limits.h malloc.h string.h unistd.h values.h)
 
 printing_b=no
-guile_b=no
 # Check whether --enable-printing or --disable-printing was given.
 if test "${enable_printing+set}" = set; then
   enableval="$enable_printing"
   printing_b=$enableval
 fi
 
-# Check whether --enable-guile or --disable-guile was given.
-if test "${enable_guile+set}" = set; then
-  enableval="$enable_guile"
-  guile_b=$enableval
-fi
-
-
     
 if test "$optimise_b" = yes; then
     DEFINES="$DEFINES -DSTRING_UTILS_INLINED"
@@ -1289,7 +1333,7 @@ EOF
 fi
 
 echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6
-echo "configure:1293: checking how to run the C++ preprocessor" >&5
+echo "configure:1337: 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
@@ -1302,12 +1346,12 @@ ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $L
 cross_compiling=$ac_cv_prog_cxx_cross
   CXXCPP="${CXX-g++} -E"
   cat > conftest.$ac_ext <<EOF
-#line 1306 "configure"
+#line 1350 "configure"
 #include "confdefs.h"
 #include <stdlib.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1311: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1355: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   :
@@ -1338,7 +1382,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:1342: checking for $ac_word" >&5
+echo "configure:1386: 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
@@ -1369,7 +1413,7 @@ test -n "$CXX" || CXX="gcc"
 
 
 echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1373: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5
+echo "configure:1417: 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.
@@ -1379,11 +1423,11 @@ ac_link='${CXX-g++} -o conftest $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $L
 cross_compiling=$ac_cv_prog_cxx_cross
 
 cat > conftest.$ac_ext <<EOF
-#line 1383 "configure"
+#line 1427 "configure"
 #include "confdefs.h"
 main(){return(0);}
 EOF
-if { (eval echo configure:1387: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1431: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; 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
@@ -1403,12 +1447,12 @@ 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:1407: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1451: 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:1412: checking whether we are using GNU C++" >&5
+echo "configure:1456: 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
@@ -1417,7 +1461,7 @@ else
   yes;
 #endif
 EOF
-if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1421: \"$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:1465: \"$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
@@ -1432,7 +1476,7 @@ if test $ac_cv_prog_gxx = yes; then
   ac_save_CXXFLAGS="$CXXFLAGS"
   CXXFLAGS=
   echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6
-echo "configure:1436: checking whether ${CXX-g++} accepts -g" >&5
+echo "configure:1480: 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
@@ -1462,17 +1506,17 @@ fi
 
     ac_safe=`echo "FlexLexer.h" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for FlexLexer.h""... $ac_c" 1>&6
-echo "configure:1466: checking for FlexLexer.h" >&5
+echo "configure:1510: 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 1471 "configure"
+#line 1515 "configure"
 #include "confdefs.h"
 #include <FlexLexer.h>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1476: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:1520: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -1522,12 +1566,12 @@ fi
 
 
     echo $ac_n "checking whether explicit instantiation is needed""... $ac_c" 1>&6
-echo "configure:1526: checking whether explicit instantiation is needed" >&5
+echo "configure:1570: 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 1531 "configure"
+#line 1575 "configure"
 #include "confdefs.h"
 
     template <class T> struct foo { static int baz; };
@@ -1537,7 +1581,7 @@ int main() {
  return foo<int>::baz; 
 ; return 0; }
 EOF
-if { (eval echo configure:1541: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1585: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   lily_cv_need_explicit_instantiation=no
 else
@@ -1564,7 +1608,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:1568: checking for $ac_word" >&5
+echo "configure:1612: 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
@@ -1606,7 +1650,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:1610: checking for $ac_word" >&5
+echo "configure:1654: 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
@@ -1640,7 +1684,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:1644: checking for $ac_word" >&5
+echo "configure:1688: 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
@@ -1707,7 +1751,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:1711: checking for $ac_word" >&5
+echo "configure:1755: 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
@@ -1739,7 +1783,7 @@ test -n "$AR" || AR="error"
     # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1743: checking for $ac_word" >&5
+echo "configure:1787: 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
@@ -1794,7 +1838,7 @@ fi
 
 
     echo $ac_n "checking language""... $ac_c" 1>&6
-echo "configure:1798: checking language" >&5    
+echo "configure:1842: checking language" >&5    
     case "$language" in
       En* | en* | Am* | am* | US* | us*)
            lang=English;;
@@ -1830,7 +1874,7 @@ EOF
 
 
     echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6
-echo "configure:1834: checking for gettext in -lintl" >&5
+echo "configure:1878: 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
@@ -1838,7 +1882,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lintl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1842 "configure"
+#line 1886 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
@@ -1852,7 +1896,7 @@ int main() {
 gettext()
 ; return 0; }
 EOF
-if { (eval echo configure:1856: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1900: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -1882,12 +1926,12 @@ fi
     for ac_func in gettext
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:1886: checking for $ac_func" >&5
+echo "configure:1930: 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 1891 "configure"
+#line 1935 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -1913,7 +1957,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:1917: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1961: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -1945,7 +1989,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:1949: checking for $ac_word" >&5
+echo "configure:1993: 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
@@ -1975,7 +2019,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:1979: checking whether msgfmt accepts -o" >&5
+echo "configure:2023: 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
@@ -2002,7 +2046,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:2006: checking for $ac_word" >&5
+echo "configure:2050: 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
@@ -2037,7 +2081,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:2041: checking for $ac_word" >&5
+echo "configure:2085: 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
@@ -2074,7 +2118,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2078: checking for $ac_word" >&5
+echo "configure:2122: 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
@@ -2109,7 +2153,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:2113: checking for $ac_word" >&5
+echo "configure:2157: 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
@@ -2152,7 +2196,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:2156: checking for $ac_word" >&5
+echo "configure:2200: 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
@@ -2186,7 +2230,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:2190: checking for $ac_word" >&5
+echo "configure:2234: 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
@@ -2220,7 +2264,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:2224: checking for $ac_word" >&5
+echo "configure:2268: 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
@@ -2254,7 +2298,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:2258: checking for $ac_word" >&5
+echo "configure:2302: 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
@@ -2287,7 +2331,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:2291: checking for $ac_word" >&5
+echo "configure:2335: 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
@@ -2321,7 +2365,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:2325: checking for $ac_word" >&5
+echo "configure:2369: 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
@@ -2355,7 +2399,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:2359: checking for $ac_word" >&5
+echo "configure:2403: 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
@@ -2389,7 +2433,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:2393: checking for $ac_word" >&5
+echo "configure:2437: 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
@@ -2418,6 +2462,7 @@ test -n "$YODL2TXT" && break
 done
 test -n "$YODL2TXT" || YODL2TXT="-echo no yodl"
 
+       YODL2LESS_DIR='$(bindir)/'
     else
        
        
@@ -2427,6 +2472,7 @@ test -n "$YODL2TXT" || YODL2TXT="-echo no yodl"
        
        
        
+       
        export STRIPROFF YODL YODL2HTML YODL2LATEX YODL2MAN YODL2MSLESS YODL2TEXINFO YODL2TXT
     fi
     if test "x$YODL" = "-echo no yodl"; then
@@ -2437,12 +2483,10 @@ test -n "$YODL2TXT" || YODL2TXT="-echo no yodl"
     fi    
 
 
-
-
-case $guile_b in 
-    yes)
+    # urg, must check for different functions in libguile
+    # to force new check iso reading from cache
     echo $ac_n "checking for scm_shell in -lguile""... $ac_c" 1>&6
-echo "configure:2446: checking for scm_shell in -lguile" >&5
+echo "configure:2490: checking for scm_shell in -lguile" >&5
 ac_lib_var=`echo guile'_'scm_shell | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2450,7 +2494,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lguile  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2454 "configure"
+#line 2498 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
@@ -2464,7 +2508,103 @@ int main() {
 scm_shell()
 ; return 0; }
 EOF
-if { (eval echo configure:2468: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2512: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  \
+      LIBS="-lguile $LIBS" cat >> confdefs.h <<\EOF
+#define HAVE_LIBGUILE 1
+EOF
+
+else
+  echo "$ac_t""no" 1>&6
+\
+      echo $ac_n "checking for readline in -lreadline""... $ac_c" 1>&6
+echo "configure:2536: checking for readline in -lreadline" >&5
+ac_lib_var=`echo readline'_'readline | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lreadline  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2544 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char readline();
+
+int main() {
+readline()
+; return 0; }
+EOF
+if { (eval echo configure:2558: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo readline | sed -e 's/^a-zA-Z0-9_/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+  LIBS="-lreadline $LIBS"
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+ \
+      echo $ac_n "checking for dlopen in -ldl""... $ac_c" 1>&6
+echo "configure:2586: checking for dlopen in -ldl" >&5
+ac_lib_var=`echo dl'_'dlopen | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-ldl  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2594 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char dlopen();
+
+int main() {
+dlopen()
+; return 0; }
+EOF
+if { (eval echo configure:2608: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_lib_$ac_lib_var=yes"
 else
@@ -2479,7 +2619,57 @@ LIBS="$ac_save_LIBS"
 fi
 if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
   echo "$ac_t""yes" 1>&6
-    ac_tr_lib=HAVE_LIB`echo guile | sed -e 's/[^a-zA-Z0-9_]/_/g' \
+    ac_tr_lib=HAVE_LIB`echo dl | sed -e 's/^a-zA-Z0-9_/_/g' \
+    -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_lib 1
+EOF
+
+  LIBS="-ldl $LIBS"
+
+else
+  echo "$ac_t""no" 1>&6
+fi
+ \
+      echo $ac_n "checking for scm_boot_guile in -lguile""... $ac_c" 1>&6
+echo "configure:2636: checking for scm_boot_guile in -lguile" >&5
+ac_lib_var=`echo guile'_'scm_boot_guile | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lguile  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 2644 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char scm_boot_guile();
+
+int main() {
+scm_boot_guile()
+; return 0; }
+EOF
+if { (eval echo configure:2658: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_lib=HAVE_LIB`echo guile | sed -e 's/^a-zA-Z0-9_/_/g' \
     -e 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/'`
   cat >> confdefs.h <<EOF
 #define $ac_tr_lib 1
@@ -2491,12 +2681,13 @@ else
   echo "$ac_t""no" 1>&6
 fi
 
+fi
+
+
+
 
-    ;;
-esac
-    
 echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-echo "configure:2500: checking for 8-bit clean memcmp" >&5
+echo "configure:2691: 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
@@ -2504,7 +2695,7 @@ else
   ac_cv_func_memcmp_clean=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 2508 "configure"
+#line 2699 "configure"
 #include "confdefs.h"
 #ifdef __cplusplus
 extern "C" void exit(int);
@@ -2517,7 +2708,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:2521: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:2712: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
 then
   ac_cv_func_memcmp_clean=yes
 else
@@ -2535,12 +2726,12 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6
 test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.o"
 
 echo $ac_n "checking for vprintf""... $ac_c" 1>&6
-echo "configure:2539: checking for vprintf" >&5
+echo "configure:2730: 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 2544 "configure"
+#line 2735 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char vprintf(); below.  */
@@ -2566,7 +2757,7 @@ vprintf();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2570: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2761: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_vprintf=yes"
 else
@@ -2590,12 +2781,12 @@ fi
 
 if test "$ac_cv_func_vprintf" != yes; then
 echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:2594: checking for _doprnt" >&5
+echo "configure:2785: 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 2599 "configure"
+#line 2790 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char _doprnt(); below.  */
@@ -2621,7 +2812,7 @@ _doprnt();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2625: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2816: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func__doprnt=yes"
 else
@@ -2648,12 +2839,12 @@ fi
 for ac_func in memmem snprintf vsnprintf gettext
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2652: checking for $ac_func" >&5
+echo "configure:2843: 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 2657 "configure"
+#line 2848 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2679,7 +2870,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2683: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:2874: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2718,7 +2909,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:2722: checking for $ac_word" >&5
+echo "configure:2913: 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
@@ -2888,13 +3079,13 @@ s%@includedir@%$includedir%g
 s%@oldincludedir@%$oldincludedir%g
 s%@infodir@%$infodir%g
 s%@mandir@%$mandir%g
+s%@stepmake@%$stepmake%g
 s%@package@%$package%g
 s%@PACKAGE@%$PACKAGE%g
 s%@PACKAGE_NAME@%$PACKAGE_NAME%g
 s%@package_depth@%$package_depth%g
 s%@AUTOGENERATE@%$AUTOGENERATE%g
 s%@absolute_builddir@%$absolute_builddir%g
-s%@stepmake@%$stepmake%g
 s%@STATE_VECTOR@%$STATE_VECTOR%g
 s%@CONFIGSUFFIX@%$CONFIGSUFFIX%g
 s%@host@%$host%g
@@ -2944,6 +3135,7 @@ s%@YODL2MAN@%$YODL2MAN%g
 s%@YODL2MSLESS@%$YODL2MSLESS%g
 s%@YODL2TEXINFO@%$YODL2TEXINFO%g
 s%@YODL2TXT@%$YODL2TXT%g
+s%@YODL2LESS_DIR@%$YODL2LESS_DIR%g
 s%@LIBOBJS@%$LIBOBJS%g
 s%@MAKEINFO@%$MAKEINFO%g
 
index 69f89668978f00cbe8f7d7413cd3738b8f3dc412..b0277039b6494e01626693846af7b2d2425635f7 100644 (file)
@@ -16,14 +16,9 @@ AC_STEPMAKE_COMPILE
 # AC_HAVE_HEADERS(limits.h malloc.h string.h unistd.h values.h)
 
 printing_b=no
-guile_b=no
 AC_ARG_ENABLE(printing,
     [  enable-printing         turn on debug printing. Default: off],
     [printing_b=$enableval])
-AC_ARG_ENABLE(guile,
-    [  enable-guile            link in GUILE. Default: off],
-    [guile_b=$enableval])
-
     
 if test "$optimise_b" = yes; then
     DEFINES="$DEFINES -DSTRING_UTILS_INLINED"
@@ -42,19 +37,12 @@ AC_STEPMAKE_MSGFMT
 AC_STEPMAKE_TEXMF
 # AC_STEPMAKE_TEXMF_DIRS
 AC_STEPMAKE_YODL
-
+AC_STEPMAKE_GUILE
 
 dnl should check out -print
 dnl huh?
 dnl AC_CHECK_SEARCH_RESULT($FIND, find, Please use --enable-tex-dir)
 
-case $guile_b in 
-    yes)
-    AC_CHECK_LIB(guile, scm_shell)
-
-    ;;
-esac
-    
 AC_FUNC_MEMCMP
 AC_FUNC_VPRINTF
 AC_CHECK_FUNCS(memmem snprintf vsnprintf gettext)
index d8e7b6a65b9aa3cb70f36ec7d5a796d9391b8e69..2d4ef5938b01b201462caa6f74584755fdc9be6a 100644 (file)
--- a/dstreamrc
+++ b/dstreamrc
@@ -34,6 +34,7 @@ Beam                  0
 Bow                    1
 Bezier_bow             1
 Change_iterator                1
+Change_translator      1
 Chord                  1
 Chord_iterator         1
 Clef_item              1
@@ -50,8 +51,10 @@ Engraver_group_engraver 0
 General_script_def     1
 Graphical_element      1
 Group_change_req       1
+Guile                  1
 Head_column            0
 Horizontal_align_item  1
+Horizontal_group_item  1 
 Idealspacing           1
 Identifier             1
 Ineq_constrained_qp    1
@@ -113,6 +116,7 @@ Symtable            1
 Symtables              1
 
 Text_def               1
+Text_item              1
 Text_req               1
 Time_description       1
 Translation_property   0
index 784bf36fbee75749269aceb18595528c3f685aa6..10542ee06a52a6575a258104be20003241a8d5a9 100644 (file)
@@ -16,7 +16,7 @@
 #include "rational.hh"
 
 /// indent of each level
-const INDTAB = 2;
+const int INDTAB = 2;
 
 /*
   should use Regexp library.
index 55f0e4fedd932edba9f1c4f320319860311b362f..d3c9a7afb331137c8a666a8b999f60141eb07a1a 100644 (file)
@@ -100,7 +100,6 @@ public:
          nexti = (nexti + j*j)%sz;
        }
       
-    finish:
       return retval;
     }
 };
@@ -181,7 +180,10 @@ public:
 
   V operator [] (String k) const
     {
-      return elem (k);
+      V retval;
+      if (!elem_b (k))
+       return retval ;
+      retval ((Dictionary<V> *) this)->elem (k);
     }
 
   V remove (String s)
index a9a23da2da423b7353a3339f445340820ce3a5d1..7b213816c7ecb249bcc69d7fa5252ae069d624a2 100644 (file)
@@ -8,10 +8,8 @@ INI_FILES = $(FLY_FILES) $(LY_FILES)
 INSTALLATION_DIR=$(datadir)/ly/
 INSTALLATION_FILES=$(INI_FILES)
 
+STEPMAKE_TEMPLATES=install
 LOCALSTEPMAKE_TEMPLATES=mutopia
 
 include $(depth)/make/stepmake.make 
 
-
-include $(stepdir)/installfiles.make
-
diff --git a/init/catalan.ly b/init/catalan.ly
new file mode 100644 (file)
index 0000000..99ae0dc
--- /dev/null
@@ -0,0 +1,73 @@
+%{
+
+ Common catalan names for notes. "b" means flat (bemoll), "d" means sharp (diesi).
+ Also "s" is included for sharp (sostingut).  Both "diesi" and "sostingut" are approved
+ by "Diccionari de la Llengua Catalana" from "Institut d'Estudis Catalans".
+
+ Adapted from italiano.ly.
+
+ English: a   b   c   d   e   f   g
+ Catalan: la  si  do  re  mi  fa  sol
+
+ For spanish naming just use the sharp sign "s" (sostenido) instead of "s"
+(sostenido) .
+%}
+
+% contributed by Jaume Obrador <jobrador@ipc4.uib.es>
+
+\notenames {
+       dobb    = \musicalpitch { -1 0 -2 }
+       dob     = \musicalpitch { -1 0 -1 }
+       do              = \musicalpitch { -1 0 0 }
+       dod     = \musicalpitch { -1 0 1 }
+       dodd    = \musicalpitch { -1 0 2 }
+       rebb    = \musicalpitch { -1 1 -2 }
+       reb     = \musicalpitch { -1 1 -1 }
+       re              = \musicalpitch { -1 1 0 }
+       red     = \musicalpitch { -1 1 1 }
+       redd    = \musicalpitch { -1 1 2 }
+       mibb    = \musicalpitch { -1 2 -2 }
+       mib             = \musicalpitch { -1 2 -1 }
+       mi              = \musicalpitch { -1 2 0 }
+       mid     = \musicalpitch { -1 2 1 }
+       midd    = \musicalpitch { -1 2 2 }
+       fabb    = \musicalpitch { -1 3 -2 }
+       fab     = \musicalpitch { -1 3 -1 }
+       fa              = \musicalpitch { -1 3 0 }
+       fad     = \musicalpitch { -1 3 1 }
+       fadd    = \musicalpitch { -1 3 2 }
+       solbb   = \musicalpitch { -1 4 -2 }
+       solb    = \musicalpitch { -1 4 -1 }
+       sol     = \musicalpitch { -1 4 0 }
+       sold    = \musicalpitch { -1 4 1 }
+       soldd   = \musicalpitch { -1 4 2 }
+       labb    = \musicalpitch { -1 5 -2 }
+       lab     = \musicalpitch { -1 5 -1 }
+       la              = \musicalpitch { -1 5 0 }
+       lad     = \musicalpitch { -1 5 1 }
+       ladd    = \musicalpitch { -1 5 2 }
+       sibb    = \musicalpitch { -1 6 -2 }
+       sib     = \musicalpitch { -1 6 -1 }
+       si              = \musicalpitch { -1 6 0 }
+       sid     = \musicalpitch { -1 6 1 }
+       sidd    = \musicalpitch { -1 6 2 }
+
+% For using "sostingut" notation, which is also correct
+
+       dos     = \musicalpitch { -1 0 1 }
+       doss    = \musicalpitch { -1 0 2 }
+       res     = \musicalpitch { -1 1 1 }
+       ress    = \musicalpitch { -1 1 2 }
+       mis     = \musicalpitch { -1 2 1 }
+       miss    = \musicalpitch { -1 2 2 }
+       fas     = \musicalpitch { -1 3 1 }
+       fass    = \musicalpitch { -1 3 2 }
+       sols    = \musicalpitch { -1 4 1 }
+       solss   = \musicalpitch { -1 4 2 }
+       las     = \musicalpitch { -1 5 1 }
+       lass    = \musicalpitch { -1 5 2 }
+       sis     = \musicalpitch { -1 6 1 }
+       siss    = \musicalpitch { -1 6 2 }
+}
+
+
index d28a53c62f9492fbed5052b790879b471cfd9577..c1bc0fd333b3e8ac2e9f5ee5944390a40fd266f1 100644 (file)
@@ -35,5 +35,7 @@ nobreak = { \penalty = -10000; }
 
 \include "property.ly"
 
+\include "scm.ly"
+
 % music = "\melodic\relative c"
 
index a67683b6552e5b56bd1ea7ef743d746c6b9c179d..cf6e0dbe95a727b9c6f2117c1a9883ac89c43336 100644 (file)
@@ -23,7 +23,7 @@ paper_twenty = \paper {
        -2 = \symboltables { \table_thirteen }  
        -1 = \symboltables { \table_sixteen }
        0 = \symboltables { \table_twenty }
-       
+
        \include "params.ly";
 }
 
index 2a7cd50bccf961de04b19a881177179440e4ca62..7c96a451223db020308c203e4c5cb36b0ba441db 100644 (file)
@@ -3,6 +3,7 @@
 % indexstring follow_into_staff same_dir_as_stem above_below_staff symbol_can_beinverted priority }
 %
 
+thumb = \script { "thumb" 0 0 1 0 0 }
 accent = \script { "sforzato"  0 -1 0 0 0 }
 marcato = \script { "marcato" 0 -1 0 1  0 }
 staccatissimo = \script { "staccatissimo" 0  -1 0 1 0 }
index ad59365a5b094a75ebba0e06b4300aeafa3af789..16b785ec2d22782df6c496ed2517bbe34e866368 100644 (file)
@@ -5,7 +5,7 @@ depth = ..
 SUBDIRS=test bugs
 
 examples=example-3 twinkle-pop praeludium-fuga-E twinkle
-flexamples=example-1 example-2
+flexamples=example-1 example-2 
 
 LOCALSTEPMAKE_TEMPLATES=mutopia
 
diff --git a/input/test/thumb.ly b/input/test/thumb.ly
new file mode 100644 (file)
index 0000000..7b4a3a3
--- /dev/null
@@ -0,0 +1,22 @@
+\header{
+       title="CELLO-THUMBS";
+       enteredby="Maarten Storm";
+}
+
+
+% the thumb-script is used in cello music to indicate a note that should
+% be played with your thumb. 
+
+\version "1.0.7";
+
+\score { \notes \relative c'' {
+               <[ a8_\thumb a'8-3(> <)b_\thumb b'-3>
+               <c_\thumb c'-3(> <)d_\thumb d'-3]>
+       }
+       \paper{ 
+               linewidth = 80.\mm; 
+               castingalgorithm = \Wordwrap;
+       }
+}
+
+       
index cf4db4c84a3a529f325b1a939547f2ca5233fc9d..e8691e9ac2e151ee5923767bca8a6d0b51140b61 100644 (file)
@@ -8,6 +8,9 @@ SUBDIRS = include
 
 MODULE_LIBS=$(depth)/lib $(depth)/flower
 
+EXTRA_LIBES=-lguile            #ugh
+BLA_LIBES=-lguile              #ugh
+
 STEPMAKE_TEMPLATES= c++ executable 
 
 include $(depth)/make/stepmake.make 
index 4af78938bc5c78c2ef3fee0a1ec5bc04feddaa49..eb87945cd775fbac66812fdb3a74982a89f005f3 100644 (file)
@@ -129,7 +129,7 @@ void
 Abbreviation::do_substitute_dependent (Score_element*o, Score_element*n)
 {
   if (stem_l_ == o)
-    stem_l_ = n ? (Stem*)n->access_Item () : 0;
+    stem_l_ = n ? dynamic_cast<Stem*> (n) : 0;
 }
 
 
index 67c09cb7fcbd097e50eed7929202c4d2e3402074..be29437462043ae1f04b27e9318d7dcea687e28c 100644 (file)
@@ -27,11 +27,11 @@ Abbreviation_beam_engraver::Abbreviation_beam_engraver ()
 bool
 Abbreviation_beam_engraver::do_try_request (Request*r)
 {
-  Musical_req* mus_l = r->access_Musical_req ();
+  Musical_req* mus_l = dynamic_cast <Musical_req *> (r);
   if (!mus_l)
     return false;
 
-  Abbreviation_beam_req * b = mus_l->access_Abbreviation_beam_req ();
+  Abbreviation_beam_req * b = dynamic_cast <Abbreviation_beam_req *> (mus_l);
 
   if (!b)
     return false;
@@ -85,7 +85,7 @@ Abbreviation_beam_engraver::acknowledge_element (Score_element_info i)
   if (!abeam_p_ || !i.elem_l_->is_type_b (Stem::static_name ()))
     return;
 
-  Stem* s = (Stem*)i.elem_l_->access_Item ();
+  Stem* s = (Stem*)dynamic_cast <Item *> (i.elem_l_);
 
   int type_i = span_reqs_drul_[LEFT]->type_i_;
   s->flag_i_ = intlog2 (type_i) - 2;
index 76b59197d39219634b934a0f5761588a76705558..2d8f11e78e724b9f78d9ef3b053965d9b3a538db 100644 (file)
@@ -29,7 +29,7 @@ Atom::check_infinity_b ()const
       if (abs (off_[ax]) >= 100 CM)
        {
          warning (_f ("ridiculous dimension: %s, %s", axis_name_str (ax),
-                  global_lookup_l->print_dimen (off_[ax])));
+                  print_dimen (off_[ax])));
          
          if (experimental_features_global_b)
            assert (false);
@@ -76,12 +76,14 @@ Atom::Atom ()
     But Atom is used as a simple type *everywhere*,
     and we don't have virtual contructors.
    */
-  str_ = global_lookup_l->unknown_str ();
+  lambda_ = 0;
+  str_ = "unknown\n";
 }
 
 Atom::Atom (String s, Box b)
   :  dim_ (b)
 {
+  lambda_ = 0;
   str_ = s;
 }
 
index 8812f6245c4e728e5563f31faffcbc0612a9d0ca..254f029f59a6b5e9e554f2e840bb3880fc5c3026 100644 (file)
@@ -9,30 +9,29 @@
 
 #include "auto-plet-engraver.hh"
 #include "command-request.hh"
-#include "slur.hh"
+#include "plet-spanner.hh"
 #include "note-column.hh"
 
 bool
 Tuplet_engraver::do_try_request (Request *r)
 {
-  Command_req * c = r->access_Command_req ();
+  Command_req * c = dynamic_cast <Command_req *> (r);
   if (!(c &&
-      c->access_Bracket_req ()))
+      dynamic_cast <Bracket_req *> (c)))
     {
       return false;
     }
 
-  Bracket_req * b = c->access_Bracket_req ();
+  Bracket_req * b = dynamic_cast <Bracket_req *> (c);
   bracket_req_arr_.push (b);
   return true;
 }
 
-
 void
 Tuplet_engraver::do_process_requests ()
 {
   int stopcount =0;
-  Link_array<Slur> start_arr;
+  Link_array<Plet_spanner> start_arr;
   
   for (int i=0; i < bracket_req_arr_.size (); i++)
     {
@@ -40,16 +39,17 @@ Tuplet_engraver::do_process_requests ()
        stopcount++;
       if (bracket_req_arr_[i]->spantype == Span_req::START)
        {
-         Slur *sp =new Slur;
-         start_arr.push  (sp);
-         announce_element (Score_element_info (sp, bracket_req_arr_[i]));
+         Plet_spanner* glep = new Plet_spanner ();
+         start_arr.push  (glep);
+// lots of stuff does info->elem_l_->is_type ()
+//       announce_element (Score_element_info (glep, bracket_req_arr_[i]));
        }
     }
 
   for (; stopcount--; )
     {
-      Slur *sp = started_span_p_arr_.pop ();
-      stop_now_span_p_arr_.push (sp);
+      Plet_spanner* glep = started_span_p_arr_.pop ();
+      stop_now_span_p_arr_.push (glep);
     }
 
   for (int i=0; i < start_arr.size (); i++)
@@ -61,9 +61,10 @@ Tuplet_engraver::acknowledge_element (Score_element_info i)
 {
   if (i.elem_l_->is_type_b (Note_column::static_name ()))
     {
-      Note_column *nc = (Note_column*)i.elem_l_->access_Item ();
+      Note_column *nc = (Note_column*)dynamic_cast <Item *> (i.elem_l_);
       for (int j =0; j  <started_span_p_arr_.size (); j++)
-       started_span_p_arr_[j]->add_column (nc);
+       // started_span_p_arr_[j]->add_column (nc);
+       ;
     }
 }
 
index 8aa8263668e3f13dfc3cb3b6442d782e13ac9db0..928f64de0c6799c4b1ea34e0c72709ee5c0e0874 100644 (file)
@@ -36,7 +36,8 @@ Axis_group_element::elem_l_arr () const
   */
   Link_array<Score_element> r;
   for (int i=0; i < elem_l_arr_.size (); i++)
-    r.push (elem_l_arr_[i]->access_Score_element());
+    r.push (dynamic_cast<Score_element*>(elem_l_arr_[i]));
+      
   return r;
 }
 
@@ -49,7 +50,7 @@ Axis_group_element::get_children ()
     {
       Score_element* e = elems[i];
       childs.push (e) ;
-      Axis_group_element * axis_group= e->access_Axis_group_element ();
+      Axis_group_element * axis_group= dynamic_cast <Axis_group_element *> (e);
       if (axis_group)
        childs.concat (axis_group->get_children ());      
     }
index 33dfdceba995273b38f630275febd21a58654d6f..273116d1ea1ef8d8de756902dfb8bca7d66ea537 100644 (file)
@@ -16,7 +16,7 @@ Axis_group_item::OK() const
   Link_array<Score_element> elems = elem_l_arr ();
   for (int i=0; i < elems.size(); i++) 
     {
-      Item * it_l = elems[i]->access_Item ();
+      Item * it_l = dynamic_cast<Item*> (elems[i]);
       assert (it_l);
     }
 }
@@ -34,7 +34,7 @@ Axis_group_item::do_breakable_col_processing()
   Link_array<Score_element> elems = elem_l_arr ();
   for (int i=0; i < elems.size(); i++) 
     {
-      Item* it_l = elems[i]->access_Item ();
+      Item* it_l = dynamic_cast<Item*> (elems[i]);
       Direction  j=LEFT;
       do 
        {
index 64a28da895b44eeb6d0a3a6bf22b1695edc96924..70c70c297f063bee6db0af7b60a6fd1e89900441 100644 (file)
@@ -24,7 +24,7 @@ Axis_group_spanner::do_break_processing_if_unbroken()
     {
       if (!elems[i]->line_l()) 
        {
-         Item * item_l = elems[i]->access_Item ();
+         Item * item_l = dynamic_cast<Item*> (elems[i]);
          if  (item_l
               && item_l->breakable_b_ 
               && item_l->break_status_dir() == 0) 
@@ -65,9 +65,9 @@ Axis_group_spanner::do_break_processing()
          /* this piece doesn't know where it belongs.
             Find out if it was broken, and use the broken remains
             */
-         if (elt->access_Spanner ()) 
+         if (dynamic_cast <Spanner *> (elt)) 
            {
-             Spanner * sp = elt->access_Spanner ();
+             Spanner * sp = dynamic_cast <Spanner *> (elt);
                
              for (int j =0; j < broken_into_l_arr_.size(); j++) 
                {
@@ -83,15 +83,15 @@ Axis_group_spanner::do_break_processing()
                    
                }
            }
-         else if (elt->access_Item (
-                  && elt->access_Item ()->breakable_b_ 
-                  && elt->access_Item ()->break_status_dir () == 0) 
+         else if (dynamic_cast <Item *> (elt
+                  && dynamic_cast <Item *> (elt)->breakable_b_ 
+                  && dynamic_cast <Item *> (elt)->break_status_dir () == 0) 
            {
              // broken items
              Direction  j=LEFT;
              do 
                {
-                 Item * my_item = elt->access_Item ()->broken_to_drul_[j];
+                 Item * my_item = dynamic_cast <Item *> (elt)->broken_to_drul_[j];
                  Line_of_score * item_line_l = my_item->line_l() ;
                  if (! item_line_l) 
                    continue;
index 2f1d760fa512bcf5fd263bf6194319a4128678af..0832448a2a0bc8feb9d12ed615de78b8ac5d98eb 100644 (file)
@@ -52,7 +52,7 @@ Bar_column_engraver::create_column ()
 void
 Bar_column_engraver::acknowledge_element (Score_element_info info)
 {
-  Item * it = info.elem_l_->access_Item ();
+  Item * it = dynamic_cast <Item *> (info.elem_l_);
   if (!it)
     return;
 
index e61c398900b5d1cb9bb36fa580b3133354e6e63c..74ce5386af7a62bb13f114732051f8edc67bab9a 100644 (file)
@@ -28,7 +28,7 @@ Bar_column::do_substitute_dependency (Score_element*o,Score_element*n)
   Script_column::do_substitute_dependency (o,n);
   if (o == bar_l_) 
     {
-      bar_l_ = n ? (Bar*)n->access_Item () : 0;
+      bar_l_ = n ? (Bar*)dynamic_cast <Item *> (n) : 0;
     }
 }
 
index 78721871b1b5da420a5bdcf91178b450a149add6..7a2a515cdc7456684173e3bc28c71eb673bba4a5 100644 (file)
@@ -23,10 +23,10 @@ Bar_engraver::Bar_engraver()
 bool
 Bar_engraver::do_try_request (Request*r_l)
 {
-  Command_req* c_l = r_l->access_Command_req ();
-  if (!c_l|| !c_l->access_Bar_req ()) 
+  Command_req* c_l = dynamic_cast <Command_req *> (r_l);
+  if (!c_l|| !dynamic_cast <Bar_req *> (c_l)) 
     return false;
-  Bar_req  * b= c_l->access_Bar_req ();
+  Bar_req  * b= dynamic_cast <Bar_req *> (c_l);
   if (bar_req_l_ && bar_req_l_->equal_b (b))
     return false;
   
index 76163d5b3fd8f2da5535a35d35d03373742dba6a..380cb651458965476d7045920b3e39d4006cb88f 100644 (file)
@@ -26,7 +26,7 @@ void
 Bar_number_engraver::acknowledge_element (Score_element_info i)
 {
 
-  Item *it=i.elem_l_->access_Item ();
+  Item *it=dynamic_cast <Item *> (i.elem_l_);
   if (script_p_
       || !it || !it->is_type_b (Bar::static_name()))
       return;
index 6ef0ba09fc68ec873e7f2b090f353ba24cfc3b7c..4ef398b499110aef61d9ee5a319586374c11ed3c 100644 (file)
@@ -25,11 +25,11 @@ Beam_engraver::Beam_engraver()
 bool
 Beam_engraver::do_try_request(Request*r)
 {
-  Musical_req* mus_l = r->access_Musical_req ();
+  Musical_req* mus_l = dynamic_cast <Musical_req *> (r);
   if (!mus_l)
     return false;
 
-  Beam_req* b = mus_l->access_Beam_req ();
+  Beam_req* b = dynamic_cast <Beam_req *> (mus_l);
   if (!b)
     return false;
 
@@ -100,14 +100,14 @@ Beam_engraver::acknowledge_element (Score_element_info i)
   if (!beam_p_ || !i.elem_l_->is_type_b (Stem::static_name ()))
     return;
 
-  Stem* s = (Stem*)i.elem_l_->access_Item ();
-  if (!i.req_l_ || !i.req_l_->access_Musical_req () || !i.req_l_->access_Musical_req ()->access_Rhythmic_req ())
+  Stem* s = (Stem*)dynamic_cast <Item *> (i.elem_l_);
+  if (!dynamic_cast <Rhythmic_req *> (i.req_l_))
     {
       ::warning ( _("Stem must have Rhythmic structure."));
       return;
     }
 
-  Rhythmic_req *rhythmic_req = i.req_l_->access_Musical_req ()->access_Rhythmic_req ();
+  Rhythmic_req *rhythmic_req = dynamic_cast <Rhythmic_req *> (i.req_l_);
   if (rhythmic_req->duration_.durlog_i_<= 2)
     {
       rhythmic_req->warning (_ ("stem doesn't fit in beam"));
index 075f08df2d7d4fe7d2d86daa338b3546ee49ee31..a9dd24bda379306a3309e03769e52b883e604fab 100644 (file)
@@ -126,7 +126,7 @@ void
 Beam::do_substitute_dependent (Score_element*o,Score_element*n)
 {
   if (o->is_type_b (Stem::static_name ()))
-      stems_.substitute ((Stem*)o->access_Item (),  n? (Stem*) n->access_Item ():0);
+      stems_.substitute ((Stem*)dynamic_cast <Item *> (o),  n? (Stem*) dynamic_cast <Item *> (n):0);
 }
 
 Interval
index 8195fbd9bf6c382b4e76f2f489e7fdcf15ac3ebf..462a9c140272e3dc89f91e570545a05707127bc0 100644 (file)
@@ -157,7 +157,7 @@ Clef_engraver::acknowledge_element (Score_element_info info)
     }
 
   /* ugh; should make Clef_referenced baseclass */
-  Item * it_l =info.elem_l_->access_Item ();
+  Item * it_l =dynamic_cast <Item *> (info.elem_l_);
 if (it_l)
   {
   if (it_l->is_type_b (Note_head::static_name ()))
@@ -195,11 +195,11 @@ Clef_engraver::do_creation_processing()
 bool
 Clef_engraver::do_try_request (Request * r_l)
 {
-  Command_req* creq_l= r_l->access_Command_req ();
-  if (!creq_l || !creq_l->access_Clef_change_req ())
+  Command_req* creq_l= dynamic_cast <Command_req *> (r_l);
+  if (!creq_l || !dynamic_cast <Clef_change_req *> (creq_l))
     return false;
 
-  clef_req_l_ = creq_l->access_Clef_change_req ();
+  clef_req_l_ = dynamic_cast <Clef_change_req *> (creq_l);
   read_req (clef_req_l_);
   return true;
 }
index be5ab22866eb77323ef5cce2b501d17f4f3b5d96..d7c6a102abbe2a4f79a9965c9f7747b57f1a051b 100644 (file)
@@ -30,7 +30,7 @@ Collision_engraver::acknowledge_element (Score_element_info i)
 {
   if (i.elem_l_->is_type_b (Note_column::static_name ()))
     {
-      Note_column * c = (Note_column*) i.elem_l_->access_Item ();
+      Note_column * c = (Note_column*) dynamic_cast <Item *> (i.elem_l_);
       if (c->rest_b ())
        return ;
 
index c63c71747c1f300c1971ff94b6ea3acd0ce846dc..3a07ce18e1374f84e9842ca49764973f53fda7bc 100644 (file)
@@ -165,6 +165,6 @@ IMPLEMENT_IS_TYPE_B1(Collision, Item);
 void
 Collision::do_substitute_dependency (Score_element*o_l,Score_element*n_l)
 {
-  clash_l_arr_.substitute ((Note_column*)o_l->access_Item (),
-                          (Note_column*)(n_l?n_l->access_Item ():0));
+  clash_l_arr_.substitute ((Note_column*)dynamic_cast <Item *> (o_l),
+                          (Note_column*)(n_l?dynamic_cast <Item *> (n_l):0));
 }
index b32dc96ff4da33a1bf75004ad68ad85e7db293fa..e407f30661c759d029d3e3b8a56fb9e3dd9fc49e 100644 (file)
@@ -32,7 +32,7 @@ Cadenza_req::do_print() const
 bool
 Cadenza_req::do_equal_b (Request*r) const
 {
-  Cadenza_req*cad =  r->access_Command_req ()->access_Timing_req ()->access_Cadenza_req ();
+  Cadenza_req*cad =  dynamic_cast <Cadenza_req *> (r);
 
   return cad->on_b_ == on_b_;
 }
@@ -47,7 +47,7 @@ Cadenza_req::Cadenza_req (bool b)
 bool
 Bar_req::do_equal_b (Request*r) const
 {
-  Bar_req * b = r->access_Command_req ()->access_Bar_req ();
+  Bar_req * b = dynamic_cast <Bar_req *> (r);
   return type_str_ == b->type_str_;
 }
 
@@ -81,7 +81,7 @@ Partial_measure_req::Partial_measure_req (Moment m)
 bool
 Partial_measure_req::do_equal_b (Request* r) const
 {
-  Partial_measure_req *p = r->access_Command_req ()->access_Timing_req ()->access_Partial_measure_req ();
+  Partial_measure_req *p = dynamic_cast <Partial_measure_req *> (r);
 
   return p->duration_ == duration_;
 }
@@ -150,7 +150,7 @@ Time_signature_change_req::do_print() const
 bool
 Time_signature_change_req::do_equal_b (Request * r) const
 {
-  Time_signature_change_req * m = r->access_Command_req ()->access_Timing_req ()->access_Time_signature_change_req ();
+  Time_signature_change_req * m = dynamic_cast <Time_signature_change_req *> (r);
 
   return m->beats_i_ == beats_i_
     && one_beat_i_ == m->one_beat_i_;
@@ -179,7 +179,7 @@ IMPLEMENT_IS_TYPE_B1(Tempo_req, Timing_req);
 bool
 Tempo_req::do_equal_b (Request *r) const
 {
-  Tempo_req *t = r->access_Command_req ()->access_Timing_req ()->access_Tempo_req ();
+  Tempo_req *t = dynamic_cast <Tempo_req *> (r);
 
   return t->dur_.length()== dur_.length () && metronome_i_ == t->metronome_i_;
 }
diff --git a/lily/dimensions.cc b/lily/dimensions.cc
new file mode 100644 (file)
index 0000000..1023450
--- /dev/null
@@ -0,0 +1,19 @@
+// dimensions.cc
+
+#include "dimensions.hh"
+#include "debug.hh"
+#include "string.hh"
+
+String
+print_dimen (Real r)
+{
+  String s = to_str (r, "%.3f");
+  if (s.index_i ("NaN") != -1)
+    {
+      warning (_ ("NaN"));
+      s = "0.0";
+    }
+  s += "pt";
+  return s;
+}
+
index 04ae0bfba46d236bd4210ce3a6eaa1321549916a..ae6259ac4c20517f11b7f00965bac3795aacf6c1 100644 (file)
@@ -30,7 +30,7 @@ Dot_column_engraver::do_pre_move_processing ()
 void
 Dot_column_engraver::acknowledge_element (Score_element_info info)
 {
-  Item * i=info.elem_l_->access_Item ();
+  Item * i=dynamic_cast <Item *> (info.elem_l_);
   
   if (! (i && i->is_type_b (Rhythmic_head::static_name ())))
       return;
index bb1885ca88e5660373978cb81aa139bf4dcc5f5d..cee8a3edec21470a64a8d467b31b5d3faae9976b 100644 (file)
@@ -32,8 +32,8 @@ Dot_column::add_head (Rhythmic_head *r)
 void
 Dot_column::do_substitute_dependency (Score_element*o,Score_element*n)
 {
-  Item *oi =o->access_Item ();
-  Item *ni = n?n->access_Item ():0;
+  Item *oi =dynamic_cast <Item *> (o);
+  Item *ni = n?dynamic_cast <Item *> (n):0;
   
   if (oi&&oi->is_type_b (Rhythmic_head::static_name ()))
     head_l_arr_.substitute ((Rhythmic_head*)oi, (Rhythmic_head*)ni);
index 1b7107f80d3ddbbf6bbfdb3392939302c7cbac2d..2b38c4c08eec52421e1b5bd141a116d7773d0ff4 100644 (file)
@@ -34,23 +34,23 @@ Dynamic_engraver::do_post_move_processing()
 bool
 Dynamic_engraver::do_try_request (Request * r)
 {
-  Musical_req * m = r->access_Musical_req ();
+  Musical_req * m = dynamic_cast <Musical_req *> (r);
   if (!m)
     return false;
-  Dynamic_req * d = m->access_Dynamic_req ();
+  Dynamic_req * d = dynamic_cast <Dynamic_req *> (m);
   if (!d)
     return false;
 
 #if 0
-  if (cresc_p_ && d->access_Span_dynamic_req ()
-      && d->access_Span_dynamic_req ()->spantype == Span_req::START)
+  if (cresc_p_ && dynamic_cast <Span_dynamic_req *> (d)
+      && dynamic_cast <Span_dynamic_req *> (d)->spantype == Span_req::START)
     return false;
 #endif
   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 (m->access_Dynamic_req ());
+  dynamic_req_l_arr_.push (dynamic_cast <Dynamic_req *> (m));
   return true;
 }
 void
@@ -60,7 +60,7 @@ Dynamic_engraver::do_process_requests()
   for (int i=0; i < dynamic_req_l_arr_.size(); i++)
     {
       Dynamic_req *dreq_l = dynamic_req_l_arr_[i];
-      if (dreq_l->access_Absolute_dynamic_req ())
+      if (dynamic_cast <Absolute_dynamic_req *> (dreq_l))
        {
 
          if (dynamic_p_)
@@ -71,7 +71,7 @@ Dynamic_engraver::do_process_requests()
          
          Text_def * td_p = new Text_def;
          td_p->align_dir_ = CENTER;
-         String loud = dreq_l->access_Absolute_dynamic_req ()->loudness_str ();
+         String loud = dynamic_cast <Absolute_dynamic_req *> (dreq_l)->loudness_str ();
          td_p->text_str_ = paper ()->lookup_l (0)->dynamic (loud).str_;
          td_p->style_str_ = "dynamic";
 
@@ -80,9 +80,9 @@ Dynamic_engraver::do_process_requests()
          dynamic_p_ = new Text_item (td_p);
          announce_element (Score_element_info (dynamic_p_, dreq_l));
        }
-      else if (dreq_l->access_Span_dynamic_req ())
+      else if (dynamic_cast <Span_dynamic_req *> (dreq_l))
        {
-         Span_dynamic_req* span_l = dreq_l->access_Span_dynamic_req ();
+         Span_dynamic_req* span_l = dynamic_cast <Span_dynamic_req *> (dreq_l);
          if (span_l->spantype == Span_req::STOP)
            {
              if (!cresc_p_)
index 2dc0b4131b24b756dbea75a0007be88550f43d2d..2c1b3d2d863502a5f705a997a5ad94f44659f5f1 100644 (file)
@@ -30,7 +30,7 @@ Engraver_group_engraver::do_announces()
   Link_array<Translator_group> groups = group_l_arr ();
   for (int i=0; i < groups.size(); i++) 
     {
-      Engraver * eng = groups[i]->access_Engraver  ();
+      Engraver * eng = dynamic_cast<Engraver*> (groups[i]);
       if (eng)
        {
          Engraver_group_engraver * group =
@@ -52,7 +52,7 @@ Engraver_group_engraver::do_announces()
            info.req_l_ = &dummy_req;
          for (int i=0; i < nongroups.size(); i++) 
            {   // Is this good enough?
-             Engraver * eng = nongroups[i]->access_Engraver  ();
+             Engraver * eng = dynamic_cast<Engraver*> (nongroups[i]);
              if (eng && eng!= info.origin_grav_l_arr_[0])
                eng->acknowledge_element (info);
            }
@@ -60,7 +60,7 @@ Engraver_group_engraver::do_announces()
       announce_info_arr_.clear ();
       for (int i=0; i < nongroups.size(); i++)
        {
-         Engraver * eng = nongroups[i]->access_Engraver  ();
+         Engraver * eng = dynamic_cast<Engraver*> (nongroups[i]);
          if (eng)
            eng->process_acknowledged ();
        }
@@ -77,7 +77,7 @@ Engraver_group_engraver::get_staff_info() const
   Link_array<Translator> simple_translators = nongroup_l_arr (); 
   for (int i=0; i < simple_translators.size(); i++)
     {
-    Engraver * eng = simple_translators[i]->access_Engraver  ();
+    Engraver * eng = dynamic_cast<Engraver*> (simple_translators[i]);
     if (eng)
       eng->fill_staff_info (inf);
     }
index ecad05587023cc8ee2a188e9357a5bb31168b3d7..8a79b6034624437b24ed07b99626e2409683c4e7 100644 (file)
@@ -26,13 +26,13 @@ Engraver::announce_element (Score_element_info i)
   daddy_grav_l()->announce_element (i);
 }
 
-
 void
 Engraver::typeset_element (Score_element*p)
 {
   daddy_grav_l()->typeset_element (p);
 }
 
+
 Paper_def*
 Engraver::paper() const
 {
@@ -57,6 +57,6 @@ Engraver_group_engraver*
 Engraver::daddy_grav_l () const
 {
   return (daddy_trans_l_ )
-       ? (Engraver_group_engraver*) daddy_trans_l_->access_Engraver  ()
+       ? (Engraver_group_engraver*) dynamic_cast <Engraver *> (daddy_trans_l_)
        : 0;
 }
index d8fda8415c363d96d14973201049b74e1e4d4178..8fd59f00d32d66dca2ce5f779e99a4e103248ee9 100644 (file)
@@ -14,7 +14,7 @@
 #include "p-score.hh"
 #include "paper-def.hh"
 
-const HAPPY_DOTS_I = 3;
+const int HAPPY_DOTS_I = 3;
 
 /**
   Helper to trace back an optimal path 
diff --git a/lily/graphical-lisp-element.cc b/lily/graphical-lisp-element.cc
new file mode 100644 (file)
index 0000000..e69de29
index ab12bf878026534798043651112d0f578277e04c..d85437a921f80d3bb7e6147714ca581c18f90b19 100644 (file)
@@ -26,7 +26,7 @@ Hara_kiri_line_group_engraver::typeset_element(Score_element * e)
 {
   if (e->is_type_b (Note_head::static_name ()))
     ((Hara_kiri_vertical_group_spanner*)staffline_p_)->add_note 
-      ((Note_head*)e->access_Item ());
+      ((Note_head*)dynamic_cast <Item *> (e));
 
   Line_group_engraver_group::typeset_element (e);
 }
index 849a2552fa181a6ce70db8a52fea20d5f90bedb5..38468cf91cf8677ad8e3d033e79ebb6500f17d7e 100644 (file)
@@ -44,8 +44,8 @@ void
 Hara_kiri_vertical_group_spanner::do_substitute_dependency (Score_element*o, Score_element*n)
 {
   if (o->is_type_b (Note_head::static_name ()))
-    head_l_arr_.substitute ((Note_head*)o->access_Item (), 
-      (n)? (Note_head*)n->access_Item () : 0);
+    head_l_arr_.substitute ((Note_head*)dynamic_cast <Item *> (o), 
+      (n)? (Note_head*)dynamic_cast <Item *> (n) : 0);
 }
 
 
index c8c5e79248ad7183917d1ecd4e8254bded496126..ce4e5dcdf37bbd3439f20c76fc70f5bf3652d3dd 100644 (file)
@@ -23,11 +23,10 @@ Note_head_engraver::do_try_request (Request *req_l)
   if (note_req_l_)
     return false;
   
-  if (!(req_l->access_Musical_req () && req_l->access_Musical_req ()->access_Note_req ()))
-
+  if (!(dynamic_cast <Note_req *> (req_l)))
     return false;
   
-  note_req_l_=req_l->access_Musical_req ()->access_Rhythmic_req ();
+  note_req_l_=dynamic_cast <Rhythmic_req *> (req_l);
   return true;
 }
 
@@ -47,7 +46,7 @@ Note_head_engraver::do_process_requests()
       announce_element (Score_element_info (dot_p_,0));
     }
   
-  note_p_->position_i_ = note_req_l_->access_Note_req ()->pitch_.steps ();
+  note_p_->position_i_ = dynamic_cast <Note_req *> (note_req_l_)->pitch_.steps ();
 
   
   Score_element_info itinf (note_p_,note_req_l_);
index 63e192ea06635c597d4196dd226201b13e6c935f..a8e0aaa46b8e43f9edead8176020730159c64d0a 100644 (file)
@@ -18,10 +18,10 @@ Note_heads_engraver::Note_heads_engraver()
 bool
 Note_heads_engraver::do_try_request (Request *req_l) 
 {
-  if (!req_l->access_Musical_req ()) 
+  if (!dynamic_cast <Musical_req *> (req_l)) 
     return false;
 
-  Note_req * n =req_l->access_Musical_req ()->access_Note_req ();
+  Note_req * n =dynamic_cast <Note_req *> (req_l);
   if (!n)
     return false;
   
@@ -49,7 +49,7 @@ Note_heads_engraver::do_process_requests()
          dot_p_arr_.push (d);
        }
 
-      note_p->position_i_ = note_req_l->access_Note_req ()->pitch_.steps ();
+      note_p->position_i_ = dynamic_cast <Note_req *> (note_req_l)->pitch_.steps ();
 
   
       Score_element_info itinf (note_p,note_req_l);
index 0d88e7ce315cbba217a753c552fdc4c15f32e6f1..f9621382bc3145370371b23ebe53808b1e53244e 100644 (file)
@@ -9,17 +9,19 @@
 #ifndef ATOM_HH
 #define ATOM_HH
 
+#include "lily-guile.hh"
 #include "string.hh"
 #include "box.hh"
 #include "lily-proto.hh"
 
-
 /// a symbol which can be translated, and freely copied
 class Atom {
   Offset off_;
 public:
+  // urg, only used as a temp buffer
   String str_;
   String font_;
+  SCM lambda_;
   Box dim_;
 
   Offset offset () const;
index a8cafb9c7c414d1c558836a6fb28daf4a688608f..b17e1664156df8bcaacd421c9392ba2b7d1b1767 100644 (file)
@@ -23,8 +23,8 @@ public:
 protected:
   Link_array<Bracket_req> bracket_req_arr_;
 
-  Link_array<Slur> started_span_p_arr_;
-  Link_array<Slur> stop_now_span_p_arr_;
+  Link_array<Plet_spanner> started_span_p_arr_;
+  Link_array<Plet_spanner> stop_now_span_p_arr_;
 
   virtual void do_removal_processing ();
   virtual void acknowledge_element (Score_element_info);
index 777d80e89c001fd3e81b7fa2dab29818bafee567..65629f03d574b7b7f17ab622967d467f5397f7ab 100644 (file)
@@ -14,5 +14,7 @@ const Real PT_TO_PT =1.0;
 #define CM  *CM_TO_PT
 #define INCH *INCH_TO_PT
 
+String print_dimen (Real);
+
 #endif // DIMENSIONS_HH
 
index a8086af1f556cc3d09b79d9b6bff25830c0e4dd4..9dc6594c8eaaca34f5d98830806a7f7e850c57cc 100644 (file)
@@ -36,6 +36,7 @@ protected:
     Invoke walker method to typeset element. Default: pass on to daddy.
     */
   virtual void typeset_element (Score_element*elem_p);
+
     
   /**
     take note of item/spanner
index 1ea707038e2bb00c1e42cabce794287d8e1992c2..56ce820c7ee44bb87aebb0ce46ca20b13cafff44 100644 (file)
 
 #include "config.hh"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #ifdef HAVE_LIBGUILE
 extern "C" { 
 #include <guile/gh.h> 
@@ -18,4 +22,22 @@ extern "C" {
 #else
 typedef long SCM;
 #endif
+
+SCM ly_append (SCM a, SCM b);
+SCM ly_eval (SCM a);
+SCM ly_func_o (char const* name);
+SCM ly_lambda_o ();
+SCM ly_list1 (SCM a);
+SCM ly_list2(SCM a, SCM b);
+SCM ly_quote ();
+
+#ifdef __cplusplus
+}
+#endif
+
+#include "array.hh"
+#include "scalar.hh"
+SCM lambda_scm (String str, Array<Real> args_arr);
+SCM lambda_scm (String str, Array<Scalar> args_arr);
+
 #endif // LILY_GUILE_HH
index b7af83ec1620ba502e2518e234f8b0dfa390ec75..0ac8ebf0cca5081a675d3f2893e15374e570f7ad 100644 (file)
@@ -77,6 +77,7 @@ struct Element_group_item;
 struct Engraver_group_engraver;
 struct General_script_def;
 struct Graphical_element;
+
 struct Graphical_axis_group;
 struct Mark_req;
 struct Music_output;
@@ -174,9 +175,6 @@ struct Piano_brace;
 struct Performer;
 struct Performer_group_performer;
 struct Property_iterator;
-struct Ps_lookup;
-struct Ps_outputter;
-struct Ps_stream;
 struct Request;
 struct Request_column;
 struct Engraver;
@@ -228,9 +226,6 @@ struct Symtables;
 struct Super_element;
 struct Translation_property;
 struct Tempo_req;
-struct Tex_lookup;
-struct Tex_outputter;
-struct Tex_stream;
 struct Text_def;
 struct Text_gob;
 struct Text_item ;
index 7efe60bb7e5c03fa4d4d06e7a2c32455c0a887ba..6b7047651de193661c48a8068d463071618d84fb 100644 (file)
@@ -27,53 +27,33 @@ public:
   Lookup ();
   Lookup (Lookup const&);
   Lookup (Symtables const&);
-  virtual ~Lookup ();
+  ~Lookup ();
   
   Atom accidental (int) const;
   void add (String, Symtable*);
-  virtual Atom afm_find (String s) const = 0;
-  Atom afm_find (String, String) const;
-  virtual Atom* atom_p (String, int, Box) const = 0;
+  Atom afm_find (String) const;
   Atom ball (int) const;
   Atom bar (String, Real height) const;
-  String base_output_str () const;
   Atom beam (Real,Real, Real) const;
-  virtual String character_str (int i) const;
   Atom clef (String) const;
-  virtual Atom dashed_slur (Array<Offset> controls, Real thick, Real dash) const = 0;
+  Atom dashed_slur (Array<Offset> controls, Real thick, Real dash) const;
   Atom dots () const;
   Atom dynamic (String) const;
   Atom fill (Box b) const;
   Atom flag (int, Direction) const;
-  virtual Atom hairpin (Real width, bool decresc, bool continued) const = 0;
-  virtual Lookup* lookup_p (Lookup const&) const = 0;
-  virtual Lookup* lookup_p (Symtables const&) const = 0;
-  virtual Paper_outputter* paper_outputter_p (Paper_stream*, Paper_def*, Scope*, String) const = 0;
-  virtual Paper_stream* paper_stream_p () const = 0;
-  virtual Atom plet (Real dy, Real dx, Direction dir) const = 0;
+  Atom hairpin (Real width, bool decresc, bool continued) const;
+  Atom plet (Real dy, Real dx, Direction dir) const;
   void print () const;
-  virtual Atom ps_beam (Real slope, Real width, Real thick) const = 0;
-  virtual String print_dimen (Real) const;
+  Atom ps_beam (Real slope, Real width, Real thick) const;
   Atom rest (int, bool outside) const;
   Atom rule_symbol (Real height, Real width) const;
   Atom script (String idx) const;
-  /** paratime_signature substitution in lookup strings.
-      this function provides a simple macro mechanism:
-
-      if source == "tex%bla%", then
-      substitute_args (source, {"X","Y"})  == "texXblaY"
-  */
-  String substitute_args (String source, Array<String> args) const;
-  /// paratime_signature substitution in lookup strings
-  String substitute_args (String source, Array<Scalar> args) const;
-  virtual Atom stem (Real y1_pos, Real y2_pos) const = 0;
-  Atom stem (Real y1_pos, Real y2_pos, String) const;
-  virtual Atom slur (Array<Offset> controls) const = 0;
+  Atom stem (Real y1_pos, Real y2_pos) const;
+  Atom slur (Array<Offset> controls) const;
   Atom streepje (int type) const;
-  virtual Atom text (String style, String text) const;
-  virtual String unknown_str () const = 0;
+  Atom text (String style, String text) const;
   Atom vbrace (Real &dy) const;
-  virtual Atom vbracket (Real &dy) const = 0;
+  Atom vbracket (Real &dy) const;
   Atom special_time_signature (String, Array<Scalar>) const;
   Atom time_signature (Array<Scalar>) const;
 
index 072813b2f1226b9ebf8e4d99b6aba102b1d33790..68b1b21363b54aac5e01190a2165ab1dfc8eb4bf 100644 (file)
@@ -24,7 +24,7 @@ extern bool no_timestamps_global_b;
 extern bool find_quarts_global_b;
 extern int exit_status_i_;
 extern bool experimental_features_global_b;
-extern Lookup* global_lookup_l;
+extern char const* output_global_ch;
 extern bool dependency_global_b;
 extern bool version_ignore_global_b;
 
index 87bfe545731de4472bebe79619131a29990badc7..0ae3a6981e6ca00c3403cb2936897163a46bd7f2 100644 (file)
@@ -38,7 +38,6 @@ class Paper_def : public Music_output_def
 {
   Assoc<int, Lookup *> *lookup_p_assoc_p_;
   static int default_count_i_;
-  bool ps_b_;
 
 protected:
   VIRTUAL_COPY_CONS(Paper_def,Music_output_def);
@@ -92,9 +91,12 @@ public:
   Real arithmetic_constant (Moment minimal_mom) const;
   Real arithmetic_spacing (Moment mom,Real constant) const;
   virtual int get_next_default_count () const;
-  //urg
-  String tex_output_settings_str () const;
-  String ps_output_settings_str () const;
+
+  void output_settings (Paper_outputter*) const;
+  Paper_outputter* paper_outputter_p (Paper_stream*, Scope*, String) const;
+  Paper_stream* paper_stream_p () const;
+  String base_output_str () const;
+
   // urg
   friend int yyparse (void*);
 };
index 5fa1204b2f5c18088a1d896bb4f0c267f597c36c..e88e6fa5c6556c89f36a6b42efa3196b4c2e9830 100644 (file)
@@ -13,6 +13,7 @@
 #include "lily-proto.hh"
 #include "array.hh"
 #include "string.hh"
+#include "lily-guile.hh"
 
 /**
   Abstract interface for a Score_element to output itself.
@@ -21,13 +22,18 @@ class Paper_outputter
 {
 public:
   Paper_outputter (Paper_stream *);
-  virtual ~Paper_outputter ();
-
-  virtual void output_molecule (Molecule const *, Offset, char const *)=0;
-  void output_molecule (Molecule const *, Offset, char const *, String);
-  virtual void start_line ()=0;
-  virtual void stop_line ()=0;
-  virtual void switch_to_font (String fontname)=0;
+  ~Paper_outputter ();
+
+  void output_font_def (int i, String str);
+  void output_font_switch (int i);
+  void output_header ();
+  void output_molecule (Molecule const *, Offset, char const *);
+  void output_comment (String s);
+  void output_scheme (SCM scm);
+  void output_string (String s);
+  void start_line ();
+  void stop_line ();
+  void switch_to_font (String fontname);
 
   Array<String> font_arr_;
   String current_font_;
index dc5b08541efa2b8d384fbedb7d40defe128c2f9e..e5429511f6e550df5412000a0fa3bc1520c5ef34 100644 (file)
@@ -21,13 +21,12 @@ public:
     
     /// open a file for writing
     Paper_stream (String filename);
-    virtual void header () = 0;
 
     /// delegate conversion to scalar class
-    virtual Paper_stream &operator <<(Scalar);
+    Paper_stream &operator <<(Scalar);
 
     /// close the file
-    virtual ~Paper_stream();
+    ~Paper_stream();
 
 private:
     Paper_stream (Paper_stream const&);
diff --git a/lily/include/ps-lookup.hh b/lily/include/ps-lookup.hh
deleted file mode 100644 (file)
index 2eb9ed0..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
-  tex-lookup.hh -- declare Tex_lookup
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1998 Jan Nieuwenhuizen <janneke@gnu.org>
-*/
-
-#ifndef PS_LOOKUP_HH
-#define PS_LOOKUP_HH
-
-#include "lookup.hh"
-
-class Ps_lookup : public Lookup
-{
-public:
-  Ps_lookup ();
-  Ps_lookup (Lookup const& s);
-  Ps_lookup (Symtables const& s);
-  virtual ~Ps_lookup ();
-
-  virtual Atom afm_find (String s) const;
-  virtual Atom* atom_p (String, int, Box) const;
-  virtual String character_str (int i) const;
-  virtual Atom dashed_slur (Array<Offset> controls, Real thick, Real dash) const;
-  virtual Atom hairpin (Real width, bool decresc, bool continued) const;
-  virtual Lookup* lookup_p (Lookup const&) const;
-  virtual Lookup* lookup_p (Symtables const&) const;
-  virtual Paper_outputter* paper_outputter_p (Paper_stream*, Paper_def*, Scope*, String) const;
-  virtual Paper_stream* paper_stream_p () const;
-  virtual Atom plet (Real dy , Real dx, Direction dir) const;
-  virtual Atom ps_beam (Real slope, Real width, Real thick) const;
-  virtual Atom slur (Array<Offset> controls) const;
-  virtual Atom stem (Real y1, Real y2) const;
-  virtual Atom text (String style, String text) const;
-  virtual String unknown_str () const;
-  virtual Atom vbracket (Real &y) const;
-};
-
-#endif // PS_LOOKUP_HH
diff --git a/lily/include/ps-outputter.hh b/lily/include/ps-outputter.hh
deleted file mode 100644 (file)
index 8cbcf18..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
-  ps-outputter.hh -- declare Ps_outputter
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef PS_OUTPUTTER_HH
-#define PS_OUTPUTTER_HH
-
-#include "paper-outputter.hh"
-
-class Ps_outputter : public Paper_outputter
-{
-public:
-  Ps_outputter (Paper_stream *);
-  virtual ~Ps_outputter ();
-
-  void switch_to_font (String);
-  virtual void output_molecule (Molecule const*, Offset, char const*);
-  virtual void start_line ();
-  virtual void stop_line ();
-};
-
-#endif // PS_OUTPUTTER_HH
diff --git a/lily/include/ps-stream.hh b/lily/include/ps-stream.hh
deleted file mode 100644 (file)
index a61be0a..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef PS_STREAM_HH
-#define PS_STREAM_HH
-
-#include "paper-stream.hh"
-
-/** PS output.
-  Use this class for writing to a PS file.
-  It counts braces to prevent nesting errors, and
-  it will add a comment sign before each newline.
-  */
-class Ps_stream : public Paper_stream
-{
-public:
-    Ps_stream (String filename);
-    virtual ~Ps_stream();
-
-    virtual void header();
-    virtual Paper_stream &operator <<(Scalar);
-};
-
-#endif // PS_STREAM_HH
index 95d69a0d484a2929bdbb6433e15a95a83ad44b92..9870cecb15324ecffd6f2b5d067c01d4bfdc0239 100644 (file)
   */
 struct Score_element_info {
     Score_element * elem_l_;
+
     Request*req_l_;
     Array<Engraver*> origin_grav_l_arr_;
 
     Score_element_info (Score_element*, Request*);
+
     Score_element_info();
 };
 
index 5d59fc06f7d1c399984f88b8c7a105d7a7469f6e..fae750a39a08a9ea22b6d47791c5a7821414e328 100644 (file)
@@ -53,6 +53,7 @@ protected:
   virtual void announce_element (Score_element_info);
   virtual void do_announces();
   virtual void typeset_element (Score_element*elem_p);
+
   virtual void do_pre_move_processing();
   virtual void do_add_processing ();
 };
diff --git a/lily/include/tex-lookup.hh b/lily/include/tex-lookup.hh
deleted file mode 100644 (file)
index cdb9839..0000000
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
-  tex-lookup.hh -- declare Tex_lookup
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-  Jan Nieuwenhuizen <janneke@gnu.org>
-*/
-
-#ifndef TEX_LOOKUP_HH
-#define TEX_LOOKUP_HH
-
-#include "ps-lookup.hh"
-
-class Tex_lookup : public Ps_lookup
-{
-public:
-  Tex_lookup ();
-  Tex_lookup (Lookup const& s);
-  Tex_lookup (Symtables const& s);
-  virtual ~Tex_lookup();
-
-  virtual Atom afm_find (String s) const;
-  virtual String character_str (int i) const;
-  virtual Atom dashed_slur (Array<Offset> controls, Real thick, Real dash) const;
-  virtual Atom* atom_p (String, int, Box) const;
-  Atom embed (Atom a) const;
-  virtual Atom hairpin (Real width, bool decresc, bool continued) const;
-  virtual Lookup* lookup_p (Lookup const&) const;
-  virtual Lookup* lookup_p (Symtables const&) const;
-  virtual Paper_outputter* paper_outputter_p (Paper_stream*, Paper_def*, Scope*, String) const;
-  virtual Paper_stream* paper_stream_p () const;
-  virtual Atom plet (Real dy , Real dx, Direction dir) const;
-  virtual String print_dimen (Real) const;
-  virtual Atom ps_beam (Real slope, Real width, Real thick) const;
-  virtual Atom slur (Array<Offset> controls) const;
-  virtual Atom stem (Real y1, Real y2) const;
-  virtual Atom text (String style, String text) const;
-  virtual String unknown_str () const;
-  virtual Atom vbracket (Real &y) const;
-};
-
-#endif // TEX_LOOKUP_HH
diff --git a/lily/include/tex-outputter.hh b/lily/include/tex-outputter.hh
deleted file mode 100644 (file)
index d4461c2..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
-  tex-outputter.hh -- declare Tex_outputter
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-*/
-
-
-#ifndef TEX_OUTPUTTER_HH
-#define TEX_OUTPUTTER_HH
-
-#include "paper-outputter.hh"
-
-class Tex_outputter : public Paper_outputter
-{
-public:
-  Tex_outputter (Paper_stream *);
-  virtual ~Tex_outputter ();
-
-  void switch_to_font (String);
-  virtual void output_molecule (Molecule const*, Offset, char const*);
-  virtual void start_line ();
-  virtual void stop_line ();
-};
-
-#endif // TEX_OUTPUTTER_HH
diff --git a/lily/include/tex-stream.hh b/lily/include/tex-stream.hh
deleted file mode 100644 (file)
index 7f94aec..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef TEX_STREAM_HH
-#define TEX_STREAM_HH
-
-#include "paper-stream.hh"
-
-/** TeX output.
-  Use this class for writing to a TeX file.
-  It counts braces to prevent nesting errors, and
-  it will add a comment sign before each newline.
-  */
-class Tex_stream : public Paper_stream
-{
-public:
-    Tex_stream (String filename);
-    virtual ~Tex_stream();
-
-    virtual void header();
-    virtual Paper_stream &operator <<(Scalar);
-};
-
-#endif // TEX_STREAM_HH
index 78db9884e97fadeb4f5fb11877a222066c5cda81..e48d576cfd524635a5416901d5c60db695e00527 100644 (file)
@@ -48,8 +48,8 @@ Item::line_l() const
   if (!ga)
     return 0;
   
-  assert (ga->access_Score_element());
-  return ga->access_Score_element ()-> line_l ();
+  assert (dynamic_cast <Score_element *> (ga));
+  return dynamic_cast <Score_element *> (ga)-> line_l ();
 }
 
 Direction
@@ -67,7 +67,7 @@ Item::copy_breakable_items()
   Direction  i=LEFT;
   do 
     {
-      Item * item_p = clone()->access_Item ();
+      Item * item_p = dynamic_cast<Item*>(clone());
 
       item_p->break_status_dir_ =  i;
       pscore_l_->typeset_element (item_p);
@@ -130,9 +130,9 @@ int
 Item::left_right_compare(Item const *l, Item const *r)
 {
   while (!l->is_type_b (Paper_column::static_name ()))
-    l = l->axis_group_l_a_[X_AXIS]->access_Score_element ()->access_Item ();
+    l = dynamic_cast<Item*> (l->axis_group_l_a_[X_AXIS]);
   while (!r->is_type_b (Paper_column::static_name ()))
-    r = r->axis_group_l_a_[X_AXIS]->access_Score_element ()->access_Item ();
+    r = dynamic_cast<Item*> (r->axis_group_l_a_[X_AXIS]);
 
   Paper_column *p1 = (Paper_column*)l;
   Paper_column* p2 = (Paper_column*)r;
@@ -176,7 +176,7 @@ Item::do_unlink()
 Paper_column *
 Item::column_l () const
 {
-  return axis_group_l_a_[X_AXIS]->access_Score_element ()->access_Item ()->column_l ();
+  return dynamic_cast<Item*> (axis_group_l_a_[X_AXIS]) ->column_l ();
 }
 
 Item::Item (Item const &s)
index 83fd6ec6db5be709db24f5d19f11ae33790ec7c6..bb66802d8604f6045f07449fe4ea758a8ef9e52f 100644 (file)
@@ -36,13 +36,13 @@ Key_engraver::create_key ()
 bool
 Key_engraver::do_try_request (Request * req_l)
 {
-  Command_req* creq_l= req_l->access_Command_req ();
-  if (!creq_l|| !creq_l->access_Key_change_req ())
+  Command_req* creq_l= dynamic_cast <Command_req *> (req_l);
+  if (!creq_l|| !dynamic_cast <Key_change_req *> (creq_l))
     return false;
    
   if (keyreq_l_)
     return false;              // TODO
-  keyreq_l_ = creq_l->access_Key_change_req ();
+  keyreq_l_ = dynamic_cast <Key_change_req *> (creq_l);
   read_req (keyreq_l_);
   return true;
 }
@@ -50,9 +50,9 @@ Key_engraver::do_try_request (Request * req_l)
 void
 Key_engraver::acknowledge_element (Score_element_info info)
 {
-  Command_req * r_l = info.req_l_->access_Command_req () ;
+  Command_req * r_l = dynamic_cast <Command_req *> (info.req_l_) ;
 
-  if (r_l && r_l->access_Clef_change_req ()) 
+  if (r_l && dynamic_cast <Clef_change_req *> (r_l)) 
     {
       int i= get_property ("createKeyOnClefChange").length_i ();
       if (i)
index 02e80fca2891fe469aec3c8005cb28d41f8a6b75..3ccac03e21537a71d0b589984c1624838e53638c 100644 (file)
@@ -47,11 +47,11 @@ Key_performer::do_try_request (Request* req_l)
   if (key_req_l_)
        return false;
 
-  if (req_l->access_Command_req ())
-       key_req_l_ = req_l->access_Command_req ()->access_Key_change_req ();
-
-  if (key_req_l_)
-       return true;
+  if (dynamic_cast <Key_change_req *> (req_l))
+    {
+      key_req_l_ = dynamic_cast <Key_change_req*> (req_l);
+      return true;
+    }
 
   return false;
 }
index 79332395180425084d9972b36b38ea833e73e1be..9e2e7edb0324927b4b50b3673610a581757cae7f 100644 (file)
@@ -50,7 +50,7 @@ Line_of_score::set_breaking (Array<Column_x_positions> const &breaking, int j) c
        
   if (breaking.size() >1) 
     {
-      line_l = (Line_of_score*)clone()->access_Spanner ();
+      line_l = dynamic_cast <Line_of_score*> (clone());
     }
   else 
     line_l = (Line_of_score*) this;
index c6a3a0718946faf0113bf6daa1869bd7fa7f19ee..54df397c45339fde06195a0472f54f8ce255b008 100644 (file)
@@ -40,7 +40,7 @@ Local_key_engraver::do_creation_processing ()
     }
   else
     {
-      key_C_ = &((Key_engraver*)result->access_Engraver  ())->key_;
+      key_C_ = &((Key_engraver*)dynamic_cast <Engraver *> (result))->key_;
       local_key_ = *key_C_;
     }
 }
@@ -97,24 +97,22 @@ void
 Local_key_engraver::acknowledge_element (Score_element_info info)
 {    
   Score_element * elem_l = info.elem_l_;
-  Item * item_l = elem_l->access_Item();
+  Item * item_l = dynamic_cast <Item *> (elem_l);
 
-  Note_req * note_l = (info.req_l_->access_Musical_req ())
-    ? info.req_l_->access_Musical_req ()->access_Note_req () : 0;
+  Note_req * note_l =  dynamic_cast <Note_req *> (info.req_l_);
 
   if (note_l &&  item_l && item_l->is_type_b (Note_head::static_name ()))
     {
       mel_l_arr_.push (note_l);
       support_l_arr_.push (item_l);
     }
-  else if (info.req_l_->access_Command_req ()
-          && info.req_l_->access_Command_req ()->access_Key_change_req () && key_C_) 
+  else if (dynamic_cast <Key_change_req*> (info.req_l_))
     {
       local_key_ = *key_C_;
     }
   else if (elem_l->is_type_b (Tie::static_name ())) 
     {
-      Tie * tie_l = (Tie*)elem_l->access_Spanner ();
+      Tie * tie_l = (Tie*)dynamic_cast <Spanner *> (elem_l);
       if (tie_l->same_pitch_b_)
        tied_l_arr_.push (tie_l-> head_l_drul_[RIGHT]);
     }
index 2b2d0dd5db1660f3790c532679ad7451275355eb..a0dc2907a6b4f72326b8d1c2fe4bc1b9b5cef7b1 100644 (file)
@@ -116,8 +116,8 @@ IMPLEMENT_IS_TYPE_B1(Local_key_item,Item);
 void
 Local_key_item::do_substitute_dependency (Score_element*o,Score_element*n)
 {
-  Item* o_l = o->access_Item ();
-  Item* n_l = n?n->access_Item ():0;
+  Item* o_l = dynamic_cast <Item *> (o);
+  Item* n_l = n?dynamic_cast <Item *> (n):0;
 
   support_items_.substitute (o_l, n_l);
 }
index 8ba88483f5f080c3bf4fdf17d0a2274863318bf8..9d85d63ba9ec3282c8703e3e2174dfc515f4e861 100644 (file)
@@ -20,6 +20,7 @@
 #include "paper-def.hh"
 #include "string-convert.hh"
 #include "main.hh"
+#include "lily-guile.hh"
 
 Lookup::Lookup ()
 {
@@ -65,7 +66,7 @@ Lookup::add (String s, Symtable*p)
 }
 
 Atom
-Lookup::afm_find (String s, String str) const
+Lookup::afm_find (String s) const
 {
   if (!afm_p_)
     {
@@ -83,7 +84,9 @@ Lookup::afm_find (String s, String str) const
   a.dim_ = m.B_;
   a.dim_[X_AXIS] *= 1 / 1000.0;
   a.dim_[Y_AXIS] *= 1 / 1000.0;
-  a.str_ = String_convert::form_str (str.ch_C (), m.code ());
+  Array<Real> arr;
+  arr.push (m.code ());
+  a.lambda_ = lambda_scm ("char", arr);
   a.font_ = font_;
   return a;
 }
@@ -100,29 +103,13 @@ Lookup::ball (int j) const
 Atom
 Lookup::bar (String str, Real h) const
 {
-  Array<String> a;
-  a.push (print_dimen (h));
-  Atom s = (*symtables_p_) ("bars")->lookup (str);
-  s.str_ = substitute_args (s.str_, a);
-  s.dim_.y () = Interval (-h/2, h/2);
-  s.font_ = font_;
-  return s;
-}
-
-String
-Lookup::base_output_str () const
-{
-  assert (paper_l_);
-  String str = paper_l_->get_default_output ();
-
-  if (str.empty_b ())
-    {
-      str = default_outname_base_global;
-      int def = paper_l_->get_next_default_count ();
-      if (def)
-       str += "-" + to_str (def);
-    }
-  return str;
+  Array<Real> arr;
+  arr.push (h);
+  Atom a = (*symtables_p_) ("bars")->lookup (str);
+  a.lambda_ = lambda_scm (a.str_, arr);
+  a.dim_.y () = Interval (-h/2, h/2);
+  a.font_ = font_;
+  return a;
 }
 
 Atom 
@@ -138,16 +125,38 @@ Lookup::beam (Real slope, Real width, Real thick) const
   return a;
 }
 
-String
-Lookup::character_str (int i) const
+Atom
+Lookup::clef (String st) const
 {
-  return to_str (i);
+  return afm_find (String ("clefs") + String ("-") + st);
 }
 
 Atom
-Lookup::clef (String st) const
+Lookup::dashed_slur (Array<Offset> controls, Real thick, Real dash) const
 {
-  return afm_find (String ("clefs") + String ("-") + st);
+  assert (controls.size () == 8);
+
+  Real dx = controls[3].x () - controls[0].x ();
+  Real dy = controls[3].y () - controls[0].y ();
+
+  Atom a;
+  a.font_ = font_;
+  a.dim_[X_AXIS] = Interval (0, dx);
+  a.dim_[Y_AXIS] = Interval (0 <? dy,  0 >? dy);
+
+  // (lambda (o) (dashed-slur o '((0.1 0.2) (1.1 1.2) (2.1 2.2) (3.1 3.2))))
+  a.lambda_ = 
+    ly_append (ly_lambda_o (), 
+    ly_list1 (ly_append (ly_func_o ("dashed-slur"),
+    gh_cons (gh_double2scm (thick), gh_cons (gh_double2scm (dash),
+    ly_list1 (ly_list2 (ly_quote (),
+    gh_cons (ly_list2 (gh_double2scm (controls[1].x ()), gh_double2scm (controls[1].y ())),
+    gh_cons (ly_list2 (gh_double2scm (controls[2].x ()), gh_double2scm (controls[2].y ())),
+    gh_cons (ly_list2 (gh_double2scm (controls[3].x ()), gh_double2scm (controls[3].y ())),
+    gh_cons (ly_list2 (gh_double2scm (controls[0].x ()), gh_double2scm (controls[0].y ())),
+    SCM_EOL)))))))))));
+
+  return a;
 }
 
 Atom
@@ -187,18 +196,6 @@ Lookup::print () const
 #endif
 }
 
-String
-Lookup::print_dimen (Real r) const
-{
-  String s = to_str (r, "%.3f");
-  if (s.index_i ("NaN") != -1)
-    {
-      warning (_ ("NaN"));
-      s = "0.0";
-    }
-  return s;
-}
-
 Atom
 Lookup::rest (int j, bool o) const
 {
@@ -210,10 +207,10 @@ Atom
 Lookup::rule_symbol (Real height, Real width) const
 {
   Atom bs= (*symtables_p_) ("param")->lookup ("rule");
-  Array<String> args;
-  args.push (print_dimen (height));
-  args.push (print_dimen (width));
-  bs.str_ = substitute_args (bs.str_, args);
+  Array<Real> args;
+  args.push (height);
+  args.push (width);
+  bs.lambda_ = lambda_scm (bs.str_, args);
   bs.dim_.x () = Interval (0, width);
   bs.dim_.y () = Interval (0, height);
   return bs;
@@ -228,8 +225,9 @@ Lookup::script (String str) const
 Atom
 Lookup::special_time_signature (String s, Array<Scalar> arr) const
 {
+#if 0
   String symbolname = "timesig-"+s+"%/%";
-  Atom a (afm_find (substitute_args (symbolname, arr)));
+  Atom a (afm_find (lambda_scm (symbolname, arr)));
   if (!a.empty ()) 
     return a;
   // Try if the full name was given
@@ -237,39 +235,12 @@ Lookup::special_time_signature (String s, Array<Scalar> arr) const
   if (!a.empty ()) 
     return a;
   // Resort to default layout with numbers
+#endif
   return time_signature (arr);
 }
 
-static void
-substitute_arg (String& r, String arg)
-{
-  int p = r.index_i ('%');
-  if (p < 0)
-       return ;
-
-  r = r.left_str (p) + arg + r.right_str (r.length_i () - p - 1);
-}
-
-String
-Lookup::substitute_args (String source, Array<String> args) const
-{
-  String str (source);
-  for (int i = 0 ; i < args.size (); i++)
-    substitute_arg (str, args[i]);
-  return str;
-}
-
-String
-Lookup::substitute_args (String source, Array<Scalar> args) const
-{
-  Array<String> sv;
-  for (int i = 0 ; i < args.size (); i++)
-    sv.push (args[i]);
-  return substitute_args (source, sv);
-}
-
 Atom
-Lookup::stem (Real y1, Real y2, String str) const
+Lookup::stem (Real y1, Real y2) const
 {
   if (y1 > y2)
     {
@@ -282,15 +253,15 @@ Lookup::stem (Real y1, Real y2, String str) const
   s.dim_.x () = Interval (0,0);
   s.dim_.y () = Interval (y1,y2);
 
-  Array<String> a;
+  Array<Real> a;
 
   Real stem_width = paper_l_->get_var ("stemthickness");
-  a.push (print_dimen (-stem_width /2));
-  a.push (print_dimen (stem_width));
-  a.push (print_dimen (y2));
-  a.push (print_dimen (-y1));
+  a.push (-stem_width /2);
+  a.push (stem_width);
+  a.push (y2);
+  a.push (-y1);
 
-  s.str_ = substitute_args (str, a);
+  s.lambda_ = lambda_scm ("stem", a);
   s.font_ = font_;
   return s;
 }
@@ -307,11 +278,11 @@ Lookup::streepje (int type) const
 Atom
 Lookup::text (String style, String text) const
 {
-  Array<String> a;
+  Array<Scalar> a;
 
   a.push (text);
   Atom s =  (*symtables_p_) ("style")->lookup (style);
-  s.str_ = substitute_args (s.str_,a);
+  s.lambda_ = lambda_scm (s.str_, a);
   s.font_ = font_;
 
   return s;
@@ -321,7 +292,7 @@ Atom
 Lookup::time_signature (Array<Scalar> a) const
 {
   Atom s ((*symtables_p_) ("param")->lookup ("time_signature"));
-  s.str_ = substitute_args (s.str_, a);
+  s.lambda_ = lambda_scm (s.str_, a);
 
   return s;
 }
@@ -354,16 +325,112 @@ Lookup::vbrace (Real &y) const
   
   int idx = int (rint ( (y- min_y)/step)) + 1;
   
-  {
-    Array<String> a;
-    a.push (character_str (idx));
-    brace.str_ = substitute_args (brace.str_,a);
-    brace.dim_[Y_AXIS] = Interval (-y/2,y/2);
-  }
+  Array<Real> a;
+  a.push (idx);
+  brace.lambda_ = lambda_scm (brace.str_, a);
+  brace.dim_[Y_AXIS] = Interval (-y/2,y/2);
 
   brace.font_ = font_;
 
   return brace;
 }
 
+Atom
+Lookup::hairpin (Real width, bool decresc, bool continued) const
+{
+  Atom a;  
+  Real height = paper_l_->staffheight_f () / 6;
+  String ps;
+  ps += to_str (width) + " " 
+       + to_str (height) + " " 
+    + to_str (continued ? height/2 : 0) + 
+    + " draw_"  + String (decresc ? "de" : "") + "cresc\n";
+  a.str_ = ps;
+
+
+  a.dim_.x () = Interval (0, width);
+  a.dim_.y () = Interval (-2*height, 2*height);
+  a.font_ = font_;
+  return a;
+}
+
+Atom
+Lookup::plet (Real dy , Real dx, Direction dir) const
+{
+  String ps;
+  
+  
+  ps += String_convert::double_str (dx) + " " 
+    + String_convert::double_str (dy) + " "
+    + String_convert::int_str ( (int)dir) +
+    " draw_plet ";
+
+  Atom s;
+  s.str_ = ps;
+  return s;
+}
+
+Atom
+Lookup::ps_beam (Real slope, Real width, Real thick) const
+{
+  String ps;
+  ps += to_str (width) + " "+ to_str (slope) + " " + to_str (thick)
+    + " draw_beam ";
+
+  Atom s;
+  s.str_ = ps;
+  return s;
+}
+
+Atom
+Lookup::slur (Array<Offset> controls) const
+{
+  assert (controls.size () == 8);
+
+  String ps;
+  
+  Real dx = controls[3].x () - controls[0].x ();
+  Real dy = controls[3].y () - controls[0].y ();
+  Atom a;
+  // (lambda (o) (slur o '((0.1 0.2) (1.1 1.2) (2.1 2.2) (3.1 3.2) .. )))
+  a.lambda_ = 
+    ly_append (ly_lambda_o (), 
+    ly_list1 (ly_append (ly_func_o ("slur"),
+    ly_list1 (ly_list2 (ly_quote (),
+    gh_cons (ly_list2 (gh_double2scm (controls[5].x ()), gh_double2scm (controls[5].y ())),
+    gh_cons (ly_list2 (gh_double2scm (controls[6].x ()), gh_double2scm (controls[6].y ())),
+    gh_cons (ly_list2 (gh_double2scm (controls[7].x ()), gh_double2scm (controls[7].y ())),
+    gh_cons (ly_list2 (gh_double2scm (controls[4].x ()), gh_double2scm (controls[4].y ())),
+    gh_cons (ly_list2 (gh_double2scm (controls[1].x ()), gh_double2scm (controls[1].y ())),
+    gh_cons (ly_list2 (gh_double2scm (controls[2].x ()), gh_double2scm (controls[2].y ())),
+    gh_cons (ly_list2 (gh_double2scm (controls[3].x ()), gh_double2scm (controls[3].y ())),
+    gh_cons (ly_list2 (gh_double2scm (controls[0].x ()), gh_double2scm (controls[0].y ())),
+    SCM_EOL)))))))))))));
+
+  a.dim_[X_AXIS] = Interval (0, dx);
+  a.dim_[Y_AXIS] = Interval (0 <? dy,  0 >? dy);
+  a.font_ = font_;
+  return a;
+}
+
+Atom
+Lookup::vbracket (Real &y) const
+{
+  Atom a;
+  Real min_y = paper_l_->staffheight_f ();
+  if (y < min_y)
+    {
+      warning (_ ("bracket")
+       + " " + _ ("too small") +  " (" + print_dimen (y) + ")");
+//      y = min_y;
+    }
+  Array<Real> arr;
+  arr.push (y);
+  a.lambda_ = lambda_scm ("bracket", arr);
+  a.dim_[Y_AXIS] = Interval (-y/2,y/2);
+  a.dim_[X_AXIS] = Interval (0,4 PT);
+  return a;
+}
+
 
index ceba7c467e16cbc683b119e006a322e5072c83ab..da7102b1f7212bfef8c534b2158823c42db4ee96 100644 (file)
@@ -23,10 +23,10 @@ Lyric_engraver::Lyric_engraver()
 bool
 Lyric_engraver::do_try_request (Request*r)
 {
-  Musical_req * m =r->access_Musical_req ();
-  if (!m || ! m->access_Lyric_req ()) 
+  Musical_req * m =dynamic_cast <Musical_req *> (r);
+  if (!m || ! dynamic_cast <Lyric_req *> (m)) 
     return false;
-  lreq_l_ = m->access_Lyric_req ();
+  lreq_l_ = dynamic_cast <Lyric_req *> (m);
 
   return true;
 }
index bcbbc9d501961648ec39e1b74aab550aa52da127..43fe0f26342269eff31fd571ec7f23eae27ddd07 100644 (file)
@@ -44,10 +44,10 @@ Lyric_performer::do_process_requests()
 bool
 Lyric_performer::do_try_request (Request* req_l)
 {
-  Musical_req* m_l = req_l->access_Musical_req ();
-  if (!m_l || ! m_l->access_Lyric_req ()) 
+  Musical_req* m_l = dynamic_cast <Musical_req *> (req_l);
+  if (!m_l || ! dynamic_cast <Lyric_req *> (m_l)) 
     return false;
-  lreq_arr_.push (m_l->access_Lyric_req ());
+  lreq_arr_.push (dynamic_cast <Lyric_req *> (m_l));
 
   return true;
 }
index 5b541eb29fb8bed2e5015d7dc45ebb622fdf9a69..d9a7a0afc007447eb02a59f6cf431612be01dcf0 100644 (file)
@@ -10,6 +10,8 @@
 #include <iostream.h>
 #include <assert.h>
 #include <locale.h>
+#include "lily-guile.hh"
+
 #include "proto.hh"
 #include "dimensions.hh"
 #include "plist.hh"
@@ -21,8 +23,6 @@
 #include "config.hh"
 #include "file-results.hh"
 #include "debug.hh"
-#include "ps-lookup.hh"
-#include "tex-lookup.hh"
 #include "lily-guile.hh"
 
 #if HAVE_GETTEXT
@@ -34,14 +34,15 @@ bool version_ignore_global_b = false;
 bool no_paper_global_b = false;
 bool no_timestamps_global_b = false;
 bool find_quarts_global_b = false;
+
+char const* output_global_ch = "tex";
+// temporarily default to ps, because tex is even more broken
+//char const* output_global_ch = "ps";
+
 String default_outname_base_global =  "lelie";
 int default_count_global;
 File_path global_path;
 
-Ps_lookup ps_lookup;
-Tex_lookup tex_lookup;
-Lookup* global_lookup_l = &tex_lookup;
-
 bool experimental_features_global_b = false;
 bool dependency_global_b = false;
 
@@ -63,6 +64,7 @@ Long_option_init theopts[] = {
   {0, "no-timestamps", 'T'},
   {0, "find-fourths", 'Q'},
   {0, "ignore-version", 'V'},
+  {1, "output-format", 'f'},
   {0,0,0}
 };
 
@@ -85,13 +87,16 @@ usage ()
     "  -d, --dependencies     write Makefile dependencies for every input file\n"
     );
   cout  << _ (
-    "  -I, --include=DIR      add DIR to search path\n"
+    "  -h, --help             this help\n"
     );
   cout  << _ (
-    "  -i, --init=FILE        use FILE as init file\n"
+    "  -f, --output-format=X  use output format X\n"
     );
   cout  << _ (
-    "  -h, --help             this help\n"
+    "  -I, --include=DIR      add DIR to search path\n"
+    );
+  cout  << _ (
+    "  -i, --init=FILE        use FILE as init file\n"
     );
   cout  << _ (
     "  -M, --no-paper         produce midi output only\n"
@@ -186,15 +191,6 @@ identify ()
   *mlog << get_version_str () << endl;
 }
 
-void 
-guile_init ()
-{
-#ifdef   HAVE_LIBGUILE
-   gh_eval_str ("(define (add-column p) (display \"adding column (in guile): \") (display p) (newline))");
-#endif
-}
-
-
 void
 setup_paths ()
 {
@@ -237,11 +233,9 @@ setup_paths ()
 }
 
 
-
-int
+void
 main_prog (int argc, char **argv)
 {
-  guile_init ();
   identify ();
   call_constructors ();
   debug_init ();               // should be first
@@ -258,7 +252,7 @@ main_prog (int argc, char **argv)
        {
        case 't':
          experimental_features_global_b = true;
-         global_lookup_l = &ps_lookup;
+         *mlog << "*** enabling experimental features, you're on your own now ***\n";
          break;
        case 'o':
          outname_str = oparser.optional_argument_ch_C_;
@@ -267,6 +261,9 @@ main_prog (int argc, char **argv)
          notice ();
          exit (0);
          break;
+       case 'f':
+         output_global_ch = oparser.optional_argument_ch_C_;
+         break;
        case 'Q':
          find_quarts_global_b = true;
          break;
@@ -344,8 +341,18 @@ main_prog (int argc, char **argv)
        default_outname_base_global = outname_str;
       do_one_file (i, default_outname_base_global);
     }
+}
 
+int
+main (int argc, char **argv)
+{
+#ifdef HAVE_LIBGUILE
+  gh_enter (argc, argv, (void(*)())main_prog);
   return exit_status_i_;
+#else
+  main_prog (argc, argv);
+  return exit_status_i_;
+#endif
 }
 
 /*
@@ -385,19 +392,3 @@ distill_inname_str (String name_str, String& ext_r)
   return str;
 }
 
-
-#ifdef HAVE_LIBGUILE
-int
-main (int argc, char **argv)
-{
-  gh_enter (argc, argv, (void(*)())main_prog);
-  return exit_status_i_;
-}
-
-#else
-int main (int argc, char **argv)
-{
-  return main_prog (argc, argv);
-}
-
-#endif
index 35c803e688b6f1b9c64ac11ea3faab0db509b505..71119e4eb63a05e0f967f5a6070d366c7eacc7c4 100644 (file)
@@ -26,11 +26,11 @@ Mark_engraver::Mark_engraver ()
 bool
 Mark_engraver::do_try_request (Request* r_l)
 {
-  Command_req* c_l = r_l->access_Command_req ();
-  if (!c_l || !c_l->access_Mark_req () || mark_req_l_) 
+  Command_req* c_l = dynamic_cast <Command_req *> (r_l);
+  if (!c_l || !dynamic_cast <Mark_req *> (c_l) || mark_req_l_) 
     return false;
 
-  mark_req_l_ = c_l->access_Mark_req ();
+  mark_req_l_ = dynamic_cast <Mark_req *> (c_l);
 
   return true;
 }
index 53f36d6a1ef9aa0aff0d1889ba03ee5e6af36f9a..362508ee647c51c1b034c3583d7cbe47692cdd26 100644 (file)
@@ -354,7 +354,7 @@ Midi_key::Midi_key (Audio_item* audio_item_l)
 String
 Midi_key::str () const
 {
-  Key_change_req* k = audio_item_l_->req_l_->access_Command_req ()->access_Key_change_req ();
+  Key_change_req* k = dynamic_cast <Key_change_req *> (audio_item_l_->req_l_);
   int sharps_i = k->sharps_i ();
   int flats_i = k->flats_i ();
 
@@ -383,7 +383,7 @@ Midi_time_signature::Midi_time_signature (Audio_item* audio_item_l)
 String
 Midi_time_signature::str () const
 {
-  Time_signature_change_req* m = audio_item_l_->req_l_->access_Command_req ()->access_Time_signature_change_req ();
+  Time_signature_change_req* m = dynamic_cast <Time_signature_change_req *> (audio_item_l_->req_l_);
   int num_i = m->beats_i_;
   int den_i = m->one_beat_i_;
 
@@ -404,7 +404,7 @@ Midi_note::Midi_note (Audio_item* audio_item_l)
 Moment
 Midi_note::duration () const
 {
-  Moment m = audio_item_l_->req_l_->access_Musical_req ()->access_Rhythmic_req ()->duration ();
+  Moment m = dynamic_cast <Rhythmic_req *> (audio_item_l_->req_l_)->duration ();
   if (m < Moment (1, 1000))
     {
       warning (_ ("silly duration"));
@@ -416,8 +416,7 @@ Midi_note::duration () const
 int
 Midi_note::pitch_i () const
 {
-  int p = audio_item_l_->req_l_->access_Musical_req ()->access_Melodic_req 
-    ()->pitch_.semitone_pitch () 
+  int p = dynamic_cast <Melodic_req*> (audio_item_l_->req_l_)->pitch_.semitone_pitch () 
     + ((Audio_note*)audio_item_l_)->transposing_i_;
   if (p == INT_MAX)
     {
@@ -452,8 +451,7 @@ Midi_note_off::Midi_note_off (Midi_note* midi_note_l)
 int
 Midi_note_off::pitch_i () const
 {
-  return audio_item_l_->req_l_->access_Musical_req ()->access_Melodic_req 
-    ()->pitch_.semitone_pitch ()
+  return dynamic_cast <Melodic_req *> (audio_item_l_->req_l_)->pitch_.semitone_pitch ()
     + ((Audio_note*)audio_item_l_)->transposing_i_;
 }
 
index e8b23b67b39a2ba516ef6f0ecbbc863334af7c25..03578a58153053d8da994bf152d9acc0acea0bc3 100644 (file)
@@ -26,7 +26,7 @@ Multi_measure_rest_engraver::Multi_measure_rest_engraver ()
 bool
 Multi_measure_rest_engraver::do_try_request (Request* req_l)
 {
 if (!req_l->access_Musical_req () || !req_l->access_Musical_req ()->access_Multi_measure_rest_req ())
if (!dynamic_cast<Multi_measure_rest_req *> (req_l))
     return false;
 
   if (multi_measure_req_l_)
@@ -34,7 +34,7 @@ Multi_measure_rest_engraver::do_try_request (Request* req_l)
        || req_start_mom_ != now_moment ())
       return false;
   
-  multi_measure_req_l_ = req_l->access_Musical_req ()->access_Multi_measure_rest_req ();
+  multi_measure_req_l_ = dynamic_cast<Multi_measure_rest_req *> (req_l);
   req_start_mom_ = now_moment ();
   
   rest_req_stop_mom_ = req_start_mom_ + multi_measure_req_l_->duration_.length ();
index 8f2944669908e1bcebf65353c14c6c9e4c9b1b71..7c47ded02722de0c675d8a534f2b8b57704609ac 100644 (file)
@@ -118,10 +118,10 @@ Request_chord::to_relative_octave (Musical_pitch last)
 {
   for (iter (music_p_list_p_->top(),i); i.ok (); i++)
     {
-      Musical_req *m =((Request*)i.ptr ())->access_Musical_req ();
-      if (m && m->access_Melodic_req ())
-       {         
-         Musical_pitch &pit = m->access_Melodic_req ()->pitch_;
+      Musical_req *m = dynamic_cast<Musical_req*> (i.ptr ());
+      if (m && dynamic_cast <Melodic_req *> (m))
+       {
+         Musical_pitch &pit = dynamic_cast <Melodic_req *> (m)->pitch_;
          pit.to_relative_octave (last);
          return pit;
        }
index 86a20a731e862e20bc8a2bdd42501d555b8d56f0..8e28cdf4bb49caf176fa3d02b86f80428f14c836 100644 (file)
@@ -60,7 +60,7 @@ Translator*
 Music_output_def::find_translator_l (String name) const
 {
   if (translator_p_dict_p_->elem_b (name))
-    return (*translator_p_dict_p_)[name]->access_Translator ();
+    return  (*translator_p_dict_p_)[name]->access_Translator ();
 
   if (global_translator_dict_p->elem_b (name))
     return (*global_translator_dict_p)[name];
@@ -76,7 +76,7 @@ Music_output_def::get_global_translator_p ()
   if (!t)
     error (_("Can't find Score context"));
   t = t->clone ();
-  Global_translator *g = t->access_Translator_group ()->global_l ();
+  Global_translator *g = dynamic_cast <Translator_group *> (t)->global_l ();
   t->add_processing ();
   
   return g;
@@ -98,6 +98,6 @@ Music_output_def::get_default_output () const
     return "";  
   Identifier * id = (*scope_p_) ["output"];
 
-  String *p = id->access_String ();
+  String *p = dynamic_cast <String *> (id);
   return p ? *p : String ("");
 }
index 3ee6004add9f0e2d330c6cf08213de3d38037da7..6c72cb538ada9bff71a691b52f1d3454d72d7105 100644 (file)
@@ -104,7 +104,7 @@ IMPLEMENT_IS_TYPE_B1 (Melodic_req,Musical_req);
 bool
 Melodic_req::do_equal_b (Request*r) const
 {
-  Melodic_req* m= r->access_Musical_req ()->access_Melodic_req ();
+  Melodic_req* m= dynamic_cast <Melodic_req *> (r);
   return !compare (*m, *this);
 }
 
@@ -129,7 +129,7 @@ Rhythmic_req::compare (Rhythmic_req const &r1, Rhythmic_req const &r2)
 bool
 Rhythmic_req::do_equal_b (Request*r) const
 {
-  Rhythmic_req* rh = r->access_Musical_req ()->access_Rhythmic_req ();
+  Rhythmic_req* rh = dynamic_cast <Rhythmic_req *> (r);
 
   return !compare (*this, *rh);
 }
@@ -269,7 +269,7 @@ Plet_req::do_print () const
 bool
 Span_req:: do_equal_b (Request*r) const
 {
-  Span_req * s = r->access_Span_req ();
+  Span_req * s = dynamic_cast <Span_req *> (r);
   return spantype == s->spantype;
 }
 
@@ -292,7 +292,7 @@ Script_req::Script_req (Script_req const&s)
 bool
 Script_req::do_equal_b (Request*r) const
 {
-  Script_req * s = r->access_Script_req ();
+  Script_req * s = dynamic_cast <Script_req *> (r);
 
   return  scriptdef_p_->equal_b (*s->scriptdef_p_);
 }
@@ -400,7 +400,7 @@ Absolute_dynamic_req::do_print () const
 bool
 Absolute_dynamic_req::do_equal_b (Request *r) const
 {
-  Absolute_dynamic_req *a = r->access_Musical_req ()->access_Dynamic_req ()->access_Absolute_dynamic_req ();
+  Absolute_dynamic_req *a = dynamic_cast <Absolute_dynamic_req *> (r);
   return loudness_ == a->loudness_;
 }
 
@@ -449,7 +449,7 @@ Absolute_dynamic_req::Absolute_dynamic_req ()
 bool
 Span_dynamic_req::do_equal_b (Request *req) const
 {
-  Span_dynamic_req * s = req->access_Musical_req ()->access_Span_dynamic_req ();
+  Span_dynamic_req * s = dynamic_cast <Span_dynamic_req *> (req);
 
   return Span_req::do_equal_b (req) && s->dynamic_dir_ == dynamic_dir_;
 }
index 82948a3067447e6fe31c043f95d8257895575015..4c7d05a9a22ca8b6b561a2eb8965319592e72f29 100644 (file)
@@ -55,6 +55,7 @@ static Keyword_ent the_key_tab[]={
   {"pt", PT_T},
   {"relative", RELATIVE},
   {"remove", REMOVE},
+  {"scm", SCHEME},
   {"score", SCORE},
   {"script", SCRIPT},
   {"shape", SHAPE},
index 9f7e8c7fb3ac77a384229cf8062acfac19c35f00..f3cdf87abaaa5ab9183586980a0e509094a2fc3b 100644 (file)
@@ -240,22 +240,22 @@ My_lily_parser::get_parens_request (int t)
   switch (t)
     {
     case BEAMPLET:
-      reqs.top ()->access_Span_req ()->spantype = Span_req::START;
+      dynamic_cast<Span_req*> (reqs.top ())->spantype = Span_req::START;
       /* fall through */
     case '<':
     case '>':
     case '(':
     case '[':
     case PLET:
-      reqs[0]->access_Span_req ()->spantype = Span_req::START;
+      dynamic_cast<Span_req*> (reqs.top ())->spantype = Span_req::START;
       break;
     case MAEBTELP:
-      reqs.top ()->access_Span_req ()->spantype = Span_req::STOP;
+      dynamic_cast<Span_req*> (reqs.top ())->spantype = Span_req::STOP;
       /* fall through */
     case '!':
     case ')':
     case ']':
-      reqs[0]->access_Span_req ()->spantype = Span_req::STOP;
+      dynamic_cast<Span_req*> (reqs[0])->spantype = Span_req::STOP;
       break;
 
     default:
@@ -263,9 +263,9 @@ My_lily_parser::get_parens_request (int t)
     }
 
   for (int i = 0; i < reqs.size (); i++)
-    if (reqs[i]->access_Musical_req ()->access_Span_dynamic_req ())
+    if (dynamic_cast<Span_dynamic_req*> (reqs[i]))
       {
-       Span_dynamic_req* s_l= reqs[i]->access_Musical_req ()->access_Span_dynamic_req ();
+       Span_dynamic_req* s_l= dynamic_cast<Span_dynamic_req*> (reqs[i]);
        s_l->dynamic_dir_ = (t == '<') ? UP:DOWN;
       }
 
index 8f700129e5b30f5e36f2c04d016227ad74fbc59b..b00cb5ea0aa7c5fbead811724d1bd26e8d6283ec 100644 (file)
@@ -102,18 +102,18 @@ Note_column::do_substitute_dependency (Score_element*o, Score_element*n)
 {
   if (stem_l_ == o) 
     {
-      stem_l_ = n ? (Stem*)n->access_Item ():0;
+      stem_l_ = n ? (Stem*)dynamic_cast <Item *> (n):0;
     }
   if (o->is_type_b (Note_head::static_name ()))
     {
-      head_l_arr_.substitute ((Note_head*)o->access_Item (), 
-                             (n)? (Note_head*)n->access_Item () : 0);
+      head_l_arr_.substitute ((Note_head*)dynamic_cast <Item *> (o), 
+                             (n)? (Note_head*)dynamic_cast <Item *> (n) : 0);
     }
   Script_column::do_substitute_dependency (o,n);
   if (o->is_type_b (Rest::static_name ())) 
     {
-      rest_l_arr_.substitute ((Rest*)o->access_Item (), 
-                             (n)? (Rest*)n->access_Item () : 0);
+      rest_l_arr_.substitute ((Rest*)dynamic_cast <Item *> (o), 
+                             (n)? (Rest*)dynamic_cast <Item *> (n) : 0);
     }
 }
 
index 12c8601da3a3e23c85363e67d3a3fb17f0ad0780..5f8923c284e48a70f38547b1aa1d1f0942c6b0c3 100644 (file)
@@ -32,7 +32,7 @@ void
 Note_performer::do_process_requests () 
 {
   // this is _really_ braindead, but it generates some output
-  if (!note_req_l_ || !note_req_l_->access_Melodic_req ()  || !note_req_l_->access_Rhythmic_req ())
+  if (!note_req_l_ || !dynamic_cast <Melodic_req *> (note_req_l_)  || !dynamic_cast <Rhythmic_req *> (note_req_l_))
     return;
 
   int transposing_i = 0;
@@ -53,10 +53,10 @@ Note_performer::do_try_request (Request* req_l)
   if (note_req_l_)
     return false;
   
-  if (!req_l->access_Musical_req () || !req_l->access_Musical_req ()->access_Note_req ())
-    return false;
-
-  note_req_l_ = req_l->access_Musical_req ()->access_Melodic_req ();
-
-  return true;
+  if (Note_req *nr = dynamic_cast <Note_req *> (req_l))
+    {
+      note_req_l_ = nr;
+      return true;
+    }
+  return false;
 }
index 2dbc75925bfbb21147fd1f53691ce34208159276..be107cd929467a8b64e2c3cb35222caa53fde825 100644 (file)
 #include "word-wrap.hh"
 #include "gourlay-breaking.hh"
 #include "paper-stream.hh"
-#include "ps-stream.hh"
-#include "tex-stream.hh"
 #include "paper-outputter.hh"
-#include "ps-outputter.hh"
-#include "tex-outputter.hh"
 #include "file-results.hh"
 #include "misc.hh"
 
@@ -151,7 +147,7 @@ Paper_score::set_breaking (Array<Column_x_positions> const &breaking)
     }
   for (iter (elem_p_list_.top (),i); i.ok  () ;)
     {
-      Item *i_l =i->access_Item ();
+      Item *i_l =dynamic_cast <Item *> (i);
       if (i_l && !i_l->line_l ())
        {
          i_l->unlink ();
@@ -210,8 +206,8 @@ Paper_score::process ()
 
   Array<Column_x_positions> breaking = calc_breaking ();
 
-  Paper_stream* paper_stream_p = global_lookup_l->paper_stream_p ();
-  outputter_l_ = global_lookup_l->paper_outputter_p (paper_stream_p, paper_l_, header_l_, origin_str_);
+  Paper_stream* paper_stream_p = paper_l_->paper_stream_p ();
+  outputter_l_ = paper_l_->paper_outputter_p (paper_stream_p, header_l_, origin_str_);
 
   Link_array<Line_of_score> lines;
   for (int i=0; i < breaking.size (); i++)
@@ -324,10 +320,10 @@ Paper_score::broken_col_range (Item const*l_item_l, Item const*r_item_l) const
   Item const*r=r_item_l;
 
   while (! l->is_type_b(Paper_column::static_name ()))
-    l = l->axis_group_l_a_[X_AXIS]->access_Score_element ()->access_Item ();
+    l = dynamic_cast<Item*> (l->axis_group_l_a_[X_AXIS]);
 
   while (! r->is_type_b(Paper_column::static_name ()))
-    r = r->axis_group_l_a_[X_AXIS]->access_Score_element ()->access_Item ();
+    r = dynamic_cast<Item*>(r->axis_group_l_a_[X_AXIS]);
 
   PCursor<Paper_column*> start (l ? find_col ((Paper_column*)l)+1 : col_p_list_.top ());
   PCursor<Paper_column*> stop (r ? find_col ((Paper_column*)r) : col_p_list_.bottom ());
index 8593add91051b63d930fb3428bbcfa50f54b0495..5ce8b04cd9da58278e23d4ddeca6d13df577af04 100644 (file)
@@ -13,8 +13,6 @@
 #include "paper-def.hh"
 #include "debug.hh"
 #include "lookup.hh"
-#include "ps-lookup.hh"
-#include "tex-lookup.hh"
 #include "assoc-iter.hh"
 #include "score-engraver.hh"
 #include "p-score.hh"
@@ -22,6 +20,9 @@
 #include "main.hh"
 #include "scope.hh"
 #include "dictionary-iter.hh"
+#include "file-results.hh" // urg? header_global_p
+#include "paper-outputter.hh"
+#include "paper-stream.hh"
 
 Paper_def::Paper_def ()
 {
@@ -45,7 +46,7 @@ Paper_def::Paper_def (Paper_def const&s)
   lookup_p_assoc_p_ = new Assoc<int, Lookup*>;
   for (Assoc_iter<int, Lookup*> ai(*s.lookup_p_assoc_p_); ai.ok (); ai++)
     {
-      Lookup * l = global_lookup_l->lookup_p (*ai.val ());
+      Lookup * l = new Lookup (*ai.val ());
       l->paper_l_ = this;
       set_lookup (ai.key(), l);
     }
@@ -209,35 +210,113 @@ Paper_def::lookup_l (int i) const
 
 IMPLEMENT_IS_TYPE_B1 (Paper_def, Music_output_def);
 
-String
-Paper_def::ps_output_settings_str () const
+int Paper_def::default_count_i_ = 0;
+
+int
+Paper_def::get_next_default_count () const
 {
-  String s ("\n ");
-  for (Dictionary_iter<Identifier*> i (*scope_p_); i.ok (); i++)
-    s += String ("/mudelapaper") + i.key () 
-      + "{" + i.val ()->str () + "} bind def\n";
-  s +=  *scope_p_->elem ("pssetting")->access_String ();
-  return s;
+  return default_count_i_ ++;
 }
 
-String
-Paper_def::tex_output_settings_str () const
+//urg
+extern char const* lily_version_number_sz ();
+
+void
+output_def (Paper_outputter* p, String key, String val)
+{
+  SCM args_scm =
+    gh_cons (gh_str02scm (key.ch_l ()), gh_cons (gh_str02scm (val.ch_l ()), SCM_EOL));
+  SCM scm =
+    ly_append (ly_lambda_o (),
+    ly_list1 (ly_append (ly_func_o ("lily-def"), args_scm)));
+  p->output_scheme (scm);
+}
+
+void
+output_header (Paper_outputter* p, Scope *head)
+{
+  if (!head)
+    return;
+
+  String id_str = "Lily was here";
+  if (no_timestamps_global_b)
+    id_str += ".";
+  else
+    id_str += String (", ") + lily_version_number_sz ();
+  output_def (p, "lily_id_string", id_str);
+  
+  for (Dictionary_iter<Identifier*> i (*head); i.ok (); i++)
+    {
+      if (!i.val ()->access_String_identifier ())
+       continue;
+      
+      String val = *i.val()->access_String_identifier ()->data_p_;
+      output_def (p, i.key (), val);
+    }
+}
+
+void
+Paper_def::output_settings (Paper_outputter* p) const
 {
-  String s ("\n ");
   for (Dictionary_iter<Identifier*> i (*scope_p_); i.ok (); i++)
-    s += String ("\\def\\mudelapaper") + i.key () 
-      + "{" + i.val ()->str () + "}\n";
-  s +=  *scope_p_->elem ("texsetting")->access_String ();
-  return s;
+    output_def (p, String ("mudelapaper") + i.key (), i.val ()->str ());
+  p->output_string (*scope_p_->elem (String (output_global_ch) + "setting")->access_String ());
 }
 
-int Paper_def::default_count_i_ = 0;
+Paper_outputter*
+Paper_def::paper_outputter_p (Paper_stream* os_p, Header* header_l, String origin_str) const
+{
+  Paper_outputter* p = new Paper_outputter (os_p);
 
-int
-Paper_def::get_next_default_count () const
+  output_header (p, header_global_p);
+  p->output_comment (_ ("outputting Score, defined at: "));
+  p->output_comment (origin_str);
+
+  output_header (p, header_l);
+
+  output_settings (p);
+
+  SCM scm =
+    ly_append (ly_lambda_o (),
+    ly_list1 (ly_append (ly_func_o ("experimental-on"), SCM_EOL)));
+
+  p->output_scheme (scm);
+
+  scm =
+    ly_append (ly_lambda_o (),
+    ly_list1 (ly_append (ly_func_o ("header-end"), SCM_EOL)));
+
+  p->output_scheme (scm);
+
+  return p;
+}
+
+Paper_stream*
+Paper_def::paper_stream_p () const
 {
-  return default_count_i_ ++;
+  String outname = base_output_str ();
+
+  if (outname != "-")
+    outname += String (".") + output_global_ch;
+  *mlog << _f ("Paper output to %s...", 
+              outname == "-" ? String ("<stdout>") : outname ) << endl;
+  target_str_global_array.push (outname);
+  return new Paper_stream (outname);
 }
 
 
+String
+Paper_def::base_output_str () const
+{
+  String str = get_default_output ();
+
+  if (str.empty_b ())
+    {
+      str = default_outname_base_global;
+      int def = get_next_default_count ();
+      if (def)
+       str += "-" + to_str (def);
+    }
+  return str;
+}
 
index 1e8d450c7b31b2969df751f4e66dbf555371b6c5..9e2b0978a6af3742b2754520dc6283401f30e793 100644 (file)
@@ -7,6 +7,7 @@
   Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
+#include <time.h>
 #include "paper-outputter.hh"
 #include "paper-stream.hh"
 #include "molecule.hh"
 Paper_outputter::Paper_outputter (Paper_stream *s)
 {
   outstream_l_ = s;
+  output_header ();
 }
 
 Paper_outputter::~Paper_outputter ()
 {
+  SCM scm =
+    ly_append (ly_lambda_o (),
+    ly_list1 (ly_append (ly_func_o ("end-output"), SCM_EOL)));
+
+  output_scheme (scm);
 }
 
 void
-Paper_outputter::output_molecule (Molecule const*m, Offset o, char const *nm, String s)
+Paper_outputter::output_header ()
+{
+  String creator;
+  if (no_timestamps_global_b)
+    creator = "GNU LilyPond\n";
+  else
+    creator = get_version_str ();
+  String generate;
+  if (no_timestamps_global_b)
+    generate = ".";
+  else
+    {
+      generate = _ (", at ");
+      time_t t (time (0));
+      generate += ctime (&t);
+      //urg
+    }
+
+  SCM args_scm = 
+    gh_cons (gh_str02scm (creator.ch_l ()),
+    gh_cons (gh_str02scm (generate.ch_l ()), SCM_EOL));
+
+#ifndef NPRINT
+  DOUT << "output_header\n";
+  if (check_debug && !monitor->silent_b ("Guile"))
+    {
+      gh_display (args_scm); gh_newline ();
+    }
+#endif
+
+  SCM scm =
+    ly_append (ly_lambda_o (),
+    ly_list1 (ly_append (ly_func_o ("header"), args_scm)));
+
+  output_scheme (scm);
+}
+
+void
+Paper_outputter::output_molecule (Molecule const*m, Offset o, char const *nm)
 {
   if (check_debug)
     *outstream_l_ << String ("\n%start: ") << nm << "\n";
@@ -37,15 +82,153 @@ Paper_outputter::output_molecule (Molecule const*m, Offset o, char const *nm, St
       Offset a_off = i->offset ();
       a_off += o;
 
+      if (!i->lambda_)
+        {
+         // urg
+         i->lambda_ = 
+           ly_append (ly_lambda_o (), 
+           ly_list1 (ly_func_o ("empty")));
+       }
+
       switch_to_font (i->font_);
 
-      Array<String> a;
-      String r;
-  
-      a.push (global_lookup_l->print_dimen (a_off.y()));
-      a.push (global_lookup_l->print_dimen (a_off.x()));
-      a.push (i->str_);
-      r += global_lookup_l->substitute_args (s, a);
-      *outstream_l_ << r;
+#ifndef NPRINT
+      if (check_debug && !monitor->silent_b ("Guile"))
+       {
+         gh_display (i->lambda_); gh_newline ();
+       }
+#endif
+
+      SCM args_scm = 
+       gh_cons (gh_double2scm (a_off.x ()), 
+       gh_cons (gh_double2scm (a_off.y ()), 
+       gh_cons (i->lambda_, SCM_EOL)));
+
+#ifndef NPRINT
+      if (check_debug && !monitor->silent_b ("Guile"))
+       {
+         gh_display (args_scm); gh_newline ();
+       }
+#endif
+
+      SCM box_scm =
+       ly_append (ly_lambda_o (),
+       ly_list1 (ly_append (ly_func_o ("placebox"), args_scm)));
+
+      output_scheme (box_scm);
+    }
+}
+
+void
+Paper_outputter::output_comment (String str)
+{
+  // urg
+  *outstream_l_ << "% " << str << "\n";
+}
+
+
+void
+Paper_outputter::output_scheme (SCM scm)
+{
+  String o = String ("\'") + output_global_ch;
+#ifndef NPRINT
+  if (check_debug && !monitor->silent_b ("Guile"))
+    {
+      gh_display (scm); gh_newline ();
     }
+#endif
+  SCM str_scm = gh_call1 (ly_eval (scm), gh_eval_str (o.ch_l ()));
+  char* c = gh_scm2newstr (str_scm, NULL);
+#ifndef NPRINT
+  if (check_debug && !monitor->silent_b ("Guile"))
+    {
+      gh_display (str_scm); gh_newline ();
+    }
+#endif
+  *outstream_l_ << c;
+  free (c);
+}
+
+void
+Paper_outputter::output_string (String str)
+{
+  // urg
+  *outstream_l_ << str;
+}
+
+void
+Paper_outputter::switch_to_font (String fontname)
+{
+  if (fontname.length_i () && (fontname != current_font_))
+    {
+      current_font_ = fontname;
+      int i=0;
+      bool new_b = false;
+      for (; i< font_arr_.size (); i++)
+       if (font_arr_[i] == fontname)
+         {
+           new_b = true;
+           break;
+         }
+
+      if (new_b)
+       {
+         font_arr_.push (fontname);
+         output_font_def (i, fontname);
+       }
+      output_font_switch (i);
+    }
+  return;
+}
+
+void
+Paper_outputter::start_line ()
+{
+  SCM scm =
+    ly_append (ly_lambda_o (),
+    ly_list1 (ly_append (ly_func_o ("start-line"), SCM_EOL)));
+
+  output_scheme (scm);
+}
+
+/*
+   26 fonts ought to be enough for anyone.
+*/
+void
+Paper_outputter::output_font_def (int i, String str)
+{
+  //urg, broken with guile-1.3
+  //return;
+  SCM scm =
+    ly_append (ly_lambda_o (),
+    ly_list1 (ly_append (ly_func_o ("font-def"), 
+    gh_cons (gh_int2scm (i), gh_cons (gh_str02scm (str.ch_l ()), SCM_EOL)))));
+
+  output_scheme (scm);
+}
+
+void
+Paper_outputter::output_font_switch (int i)
+{
+  //urg, broken with guile-1.2, 1.3
+  //return;
+  SCM scm =
+    ly_append (ly_lambda_o (),
+    ly_list1 (ly_append (ly_func_o ("font-switch"), 
+    gh_cons (gh_int2scm (i), SCM_EOL))));
+
+  output_scheme (scm);
+}
+
+void
+Paper_outputter::stop_line ()
+{
+  SCM scm =
+    ly_append (ly_lambda_o (),
+    ly_list1 (ly_append (ly_func_o ("stop-line"), SCM_EOL)));
+
+  output_scheme (scm);
+
+  current_font_ = "";
+  font_arr_.clear ();
 }
index 72d14a69b520e8781f192a2b08454207674f948d..91ff01041ce11a03e9d5042efad0a4fac576f937 100644 (file)
@@ -7,7 +7,6 @@
 */
 
 #include <fstream.h>
-#include <time.h>
 
 #include "main.hh"
 #include "paper-stream.hh"
@@ -27,7 +26,6 @@ Paper_stream::Paper_stream (String filename)
   nest_level = 0;
   line_len_i_ = 0;
   outputting_comment=false;
-  //  header ();
 }
 
 Paper_stream::~Paper_stream ()
@@ -99,6 +97,8 @@ Paper_stream::operator << (Scalar s)
                break;
              }
     }
+  //urg, for debugging only!!
+  *os << flush;
   return *this;
 }
 
index bf82af8ec43a9a488f7f09be4dcb6fa5064444d3..ccca7e4942bdf4b8df5be9d991ac4b47eb1939a6 100644 (file)
 */
 
 #include <iostream.h>
+#include "lily-guile.hh"
 #include "notename-table.hh"
 #include "scalar.hh"
 #include "translation-property.hh"
 #include "script-def.hh"
 #include "symtable.hh"
 #include "lookup.hh"
-#include "ps-lookup.hh"
-#include "tex-lookup.hh"
 #include "misc.hh"
 #include "my-lily-lexer.hh"
 #include "paper-def.hh"
@@ -96,7 +95,6 @@ Paper_def* current_paper = 0;
 #define yyerror THIS->parser_error
 #define ARRAY_SIZE(a,s)   if (a.size () != s) THIS->parser_error (_f("expecting %d arguments", s))
 
-
 %}
 
 
@@ -195,6 +193,7 @@ yylex (YYSTYPE *s,  void * v_l)
 %token PT_T
 %token RELATIVE
 %token REMOVE
+%token SCHEME /* token vs typedef;  can't be named SCM */
 %token SCORE
 %token SCRIPT
 %token SHAPE
@@ -321,8 +320,18 @@ toplevel_expression:
                        Midi_def_identifier ($1, MIDI_IDENTIFIER);
                THIS->lexer_p_->set_identifier ("$defaultmidi", id)
        }
+       | embedded_scm { 
+       }
        ;
 
+embedded_scm:
+       SCHEME STRING ';' {
+       #ifdef HAVE_LIBGUILE
+               gh_eval_str ($2->ch_l ());
+       #endif
+               delete $2;
+       };
+
 check_version:
        VERSION STRING ';'              {
                Mudela_version ver (*$2);
@@ -589,7 +598,7 @@ paper_def_body:
                $$ = p;
        }
        | paper_def_body int '=' symtables              { // ugh, what a syntax
-               Lookup * l = global_lookup_l->lookup_p (*$4);
+               Lookup * l = new Lookup (*$4);
                $$->set_lookup ($2, l);
        }
        | paper_def_body assignment ';' {
@@ -1450,13 +1459,15 @@ symtable_body:
 
 symboldef:
        STRING unsigned box             {
-               $$ = global_lookup_l->atom_p (*$1, $2, *$3);
+               // ignore #args
+               $$ = new Atom (*$1, *$3);
                delete $1;
                delete $3;
        }
        | STRING unsigned {
                Box b (Interval (0,0), Interval (0,0));
-               $$ = global_lookup_l->atom_p (*$1, $2, b);
+               // ignore #args
+               $$ = new Atom (*$1, b);
                delete $1;
        }
        ;
index 7fdbdc001aced144dbe1fcd1b81b0ddad213875a..7c5e541f82ecc3d2e42c4de10bbb28d601851601 100644 (file)
@@ -30,6 +30,6 @@ Performer_group_performer*
 Performer::daddy_perf_l () const
 {
   return (daddy_trans_l_) 
-    ?(Performer_group_performer*) daddy_trans_l_->access_Performer ()
+    ?(Performer_group_performer*) dynamic_cast <Performer *> (daddy_trans_l_)
     : 0;
 }
index 026027ed04d309d1ad3de7376548767c6203b90a..4851cee02cfdbd1faa72b28f081e62e4174b90e8 100644 (file)
@@ -15,7 +15,7 @@ Pitch_squash_engraver::acknowledge_element (Score_element_info i)
 {
   if (i.elem_l_->is_type_b (Note_head::static_name ()))
     {
-      Note_head * nl = (Note_head*)i.elem_l_->access_Item ();
+      Note_head * nl = (Note_head*)dynamic_cast <Item *> (i.elem_l_);
       nl->position_i_  =0;
     }
 }
index 8da468ec92d2d13b0373c113d8b5b3a105a2aaaf..ed85c58bfddeeafab1061a3e96a31167c34ed7b3 100644 (file)
@@ -35,16 +35,16 @@ Plet_engraver::acknowledge_element (Score_element_info i)
     return;
 
   if (!plet_spanner_p_->stem_l_drul_[LEFT])
-    plet_spanner_p_->set_stem (LEFT, (Stem*)i.elem_l_->access_Item ());
+    plet_spanner_p_->set_stem (LEFT, (Stem*)dynamic_cast <Item *> (i.elem_l_));
   else
     if (span_reqs_drul_[RIGHT] && !plet_spanner_p_->stem_l_drul_[RIGHT]) 
-      plet_spanner_p_->set_stem (RIGHT, (Stem*)i.elem_l_->access_Item ());
+      plet_spanner_p_->set_stem (RIGHT, (Stem*)dynamic_cast <Item *> (i.elem_l_));
 }
 
 bool
 Plet_engraver::do_try_request (Request* req_l)
 {
-  Musical_req* mus_l = req_l->access_Musical_req ();
+  Musical_req* mus_l = dynamic_cast <Musical_req *> (req_l);
   if (!mus_l)
     return false;
 
@@ -52,7 +52,7 @@ Plet_engraver::do_try_request (Request* req_l)
     UGH! This is incorrect!
     Beam_req might not reach the Plet_engraver if ordering is wrong!
    */
-  Beam_req* b = mus_l->access_Beam_req ();
+  Beam_req* b = dynamic_cast <Beam_req *> (mus_l);
   if (b)
     {
       if (b->spantype)
@@ -63,7 +63,7 @@ Plet_engraver::do_try_request (Request* req_l)
       return false;
     }
     
-  Plet_req* p = mus_l->access_Plet_req ();
+  Plet_req* p = dynamic_cast <Plet_req *> (mus_l);
   if (!p)
     return false;
 
index 5b7637f12e103b07a417c55bbb54dcbb5cc3b3d2..4a032ffc72354c5b418b4541b830d7467e456dad 100644 (file)
@@ -130,10 +130,10 @@ Plet_spanner::do_post_processing ()
 void
 Plet_spanner::do_substitute_dependency (Score_element* o, Score_element* n)
 {
-  Stem* new_l = n ? (Stem*)n->access_Item () : 0;
-  if (o->access_Item () == stem_l_drul_[LEFT])
+  Stem* new_l = n ? (Stem*)dynamic_cast <Item *> (n) : 0;
+  if (dynamic_cast <Item *> (o) == stem_l_drul_[LEFT])
     stem_l_drul_[LEFT] = new_l;
-  else if (o->access_Item () == stem_l_drul_[RIGHT])
+  else if (dynamic_cast <Item *> (o) == stem_l_drul_[RIGHT])
     stem_l_drul_[RIGHT] = new_l;
 }
   
index 0e98605b6c1dcd8802dc14b71f7356f2d95e063c..47da034354f9f714569e89005797e8842e0f2cdf 100644 (file)
@@ -15,7 +15,5 @@ ADD_THIS_TRANSLATOR(Plet_swallow_engraver);
 bool
 Plet_swallow_engraver::do_try_request (Request* req_l)
 {
-  if (req_l && req_l->access_Musical_req () && req_l->access_Musical_req ()->access_Plet_req ())
-    return true;
-  return false;
+  return  dynamic_cast <Plet_req *> (req_l);
 }
index 60300b18a11a262ea394d084667a5758ab33df38..2aa56cb7cf17a6705d2ede2d59c922d328b1cd11 100644 (file)
@@ -38,7 +38,7 @@ Priority_horizontal_align_engraver::acknowledge_element (Score_element_info i)
          halign_p_->breakable_b_ = true;
          announce_element (Score_element_info (halign_p_,0));
        }
-      Item * it = i.elem_l_->access_Item ();
+      Item * it = dynamic_cast <Item *> (i.elem_l_);
       if (it->break_priority_i_ == 0)
        halign_p_->center_l_ = it;
 
diff --git a/lily/ps-lookup.cc b/lily/ps-lookup.cc
deleted file mode 100644 (file)
index 8d160b1..0000000
+++ /dev/null
@@ -1,285 +0,0 @@
-/*
-  ps-lookup.cc -- implement Ps_lookup
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1998 Jan Nieuwenhuizen <janneke@gnu.org>
-*/
-
-#include "ps-lookup.hh"
-#include "debug.hh"
-#include "dimensions.hh"
-#include "symtable.hh"
-#include "scalar.hh"
-#include "paper-def.hh"
-#include "string-convert.hh"
-#include "main.hh"
-#include "file-results.hh"
-#include "scope.hh"
-#include "paper-stream.hh"
-#include "ps-stream.hh"
-#include "ps-outputter.hh"
-#include "scope.hh"
-#include "dictionary-iter.hh"
-#include "identifier.hh"
-
-Ps_lookup::Ps_lookup ()
-  : Lookup ()
-{
-}
-
-Ps_lookup::Ps_lookup (Lookup const& s)
-  : Lookup (s)
-{
-}
-
-Ps_lookup::Ps_lookup (Symtables const& s)
-  : Lookup (s)
-{
-}
-
-Ps_lookup::~Ps_lookup ()
-{
-}
-
-Atom
-Ps_lookup::afm_find (String s) const
-{
-  return Lookup::afm_find (s, String ("(\\%03o) show "));
-}
-
-Atom*
-Ps_lookup::atom_p (String s, int n, Box b) const
-{
-  for (int i = 0; i < n; i++)
-    s.prepend ("% ");
-  return new Atom (s, b);
-}
-
-String
-Ps_lookup::character_str (int i) const
-{
-  return to_str (i, "(\\%03o)");
-}
-
-Atom
-Ps_lookup::dashed_slur (Array<Offset> controls, Real thick, Real dash) const
-{
-  assert (controls.size () == 8);
-
-  String ps;
-  
-  Real dx = controls[3].x () - controls[0].x ();
-  Real dy = controls[3].y () - controls[0].y ();
-
-  for (int i = 1; i < 4; i++)
-    ps += String_convert::double_str (controls[i].x ()) + " "
-      + String_convert::double_str (controls[i].y ()) + " ";
-
-  ps += String_convert::double_str (controls[0].x ()) + " "
-    + String_convert::double_str (controls[0].y ()) + " ";
-
-  ps += String_convert::double_str (thick) + " ";
-  Real on = dash > 1? thick * dash - thick : 0;
-  Real off = 2 * thick;
-  ps += "[" + String_convert::double_str (on) + " ";
-  ps += String_convert::double_str (off) + "] ";
-  ps += String_convert::int_str (0) + " ";
-  ps += "draw_dashed_slur ";
-
-  Atom a;
-  a.str_ = ps;
-  
-  a.dim_[X_AXIS] = Interval (0, dx);
-  a.dim_[Y_AXIS] = Interval (0 <? dy,  0 >? dy);
-  a.font_ = font_;
-  return a;
-}
-
-Atom
-Ps_lookup::hairpin (Real width, bool decresc, bool continued) const
-{
-  Atom a;  
-  Real height = paper_l_->staffheight_f () / 6;
-  String ps;
-  ps += to_str (width) + " " 
-       + to_str (height) + " " 
-    + to_str (continued ? height/2 : 0) + 
-    + " draw_"  + String (decresc ? "de" : "") + "cresc\n";
-  a.str_ = ps;
-
-
-  a.dim_.x () = Interval (0, width);
-  a.dim_.y () = Interval (-2*height, 2*height);
-  a.font_ = font_;
-  return a;
-}
-
-Lookup*
-Ps_lookup::lookup_p (Lookup const& l) const
-{
-  return new Ps_lookup (l);
-}
-
-Lookup*
-Ps_lookup::lookup_p (Symtables const& s) const
-{
-  return new Ps_lookup (s);
-}
-extern char const *lily_version_number_sz ();
-
-String
-header_to_ps_string (Scope *head)
-{
-  String s;
-  String lily_id_str = "Lily was here, " +
-    String (lily_version_number_sz ());
-  
-  s+= "/lily_id_string\n{" + lily_id_str + "} bind def\n";
-  
-  for (Dictionary_iter<Identifier*> i (*head); i.ok (); i++)
-    {
-      if (!i.val ()->access_String_identifier ())
-       continue;
-      
-      String val = *i.val()->access_String_identifier ()->data_p_;
-      
-      s += "/mudela" + i.key () + "{" + val + "} bind def\n";
-    }
-      
-  return s;
-}
-
-Paper_outputter*
-Ps_lookup::paper_outputter_p (Paper_stream* os_p, Paper_def* paper_l, Header* header_l, String origin_str) const
-{
-  if (header_global_p)
-    *os_p << header_to_ps_string (header_global_p);
-
-  *os_p << _ ("\n% outputting Score, defined at: ") << origin_str << '\n';
-
-  if (header_l)
-    {
-      *os_p << header_to_ps_string (header_l);
-    }
-
-  *os_p << paper_l->ps_output_settings_str ();
-
-  if (experimental_features_global_b)
-    *os_p << "turnOnExperimentalFeatures\n";
-
-  return new Ps_outputter (os_p);
-}
-
-Paper_stream*
-Ps_lookup::paper_stream_p () const
-{
-  String outname = base_output_str ();
-
-  if (outname != "-")
-    outname += ".ps";
-  *mlog << _f ("PostScript output to %s...", 
-              outname == "-" ? String ("<stdout>") : outname ) << endl;
-  target_str_global_array.push (outname);
-  return new Ps_stream (outname);
-}
-
-Atom
-Ps_lookup::plet (Real dy , Real dx, Direction dir) const
-{
-  String ps;
-  
-  ps += String_convert::double_str (dx) + " " 
-    + String_convert::double_str (dy) + " "
-    + String_convert::int_str ( (int)dir) +
-    " draw_plet ";
-
-  Atom s;
-  s.str_ = ps;
-  return s;
-}
-
-Atom
-Ps_lookup::ps_beam (Real slope, Real width, Real thick) const
-{
-  String ps;
-  ps += to_str (width) + " "+ to_str (slope) + " " + to_str (thick)
-    + " draw_beam ";
-
-  Atom s;
-  s.str_ = ps;
-  return s;
-}
-
-Atom
-Ps_lookup::slur (Array<Offset> controls) const
-{
-  assert (controls.size () == 8);
-
-  String ps;
-  
-  Real dx = controls[3].x () - controls[0].x ();
-  Real dy = controls[3].y () - controls[0].y ();
-
-  for (int i = 5; i < 8; i++)
-    ps += String_convert::double_str (controls[i].x ()) + " "
-      + String_convert::double_str (controls[i].y ()) + " ";
-
-  ps += String_convert::double_str (controls[4].x ()) + " "
-    + String_convert::double_str (controls[4].y ()) + " ";
-  
-  for (int i = 1; i < 4; i++)
-    ps += String_convert::double_str (controls[i].x ()) + " "
-      + String_convert::double_str (controls[i].y ()) + " ";
-
-  ps += String_convert::double_str (controls[0].x ()) + " "
-    + String_convert::double_str (controls[0].y ()) + " ";
-
-  ps += " draw_slur ";
-
-  Atom s;
-  s.str_ = ps;
-  
-  s.dim_[X_AXIS] = Interval (0, dx);
-  s.dim_[Y_AXIS] = Interval (0 <? dy,  0 >? dy);
-  s.font_ = font_;
-  return s;
-}
-
-Atom
-Ps_lookup::stem (Real y1, Real y2) const
-{
-  return Lookup::stem (y1, y2, "\n% % % % draw_stem ");
-}
-
-Atom
-Ps_lookup::text (String style, String text) const
-{
-  return Lookup::text (style, "(" + text + ")");
-}
-
-String
-Ps_lookup::unknown_str () const
-{
-  return "unknown ";
-}
-
-Atom
-Ps_lookup::vbracket (Real &y) const
-{
-  Atom psbracket;
-  Real min_y = paper_l_->staffheight_f ();
-  if (y < min_y)
-    {
-      warning (_ ("bracket")
-       + " " + _ ("too small") +  " (" + print_dimen (y) + ")");
-//      y = min_y;
-    }
-  psbracket.str_ = to_str (y) + " draw_bracket ";
-  psbracket.dim_[Y_AXIS] = Interval (-y/2,y/2);
-  psbracket.dim_[X_AXIS] = Interval (0,4 PT);
-  return psbracket;
-}
-
-
-
diff --git a/lily/ps-outputter.cc b/lily/ps-outputter.cc
deleted file mode 100644 (file)
index d0ad70e..0000000
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
-  ps-outputter.cc -- implement Ps_outputter
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-  Jan Nieuwenhuizen <janneke@gnu.org>
-*/
-
-#include "ps-outputter.hh"
-#include "ps-stream.hh"
-#include "molecule.hh"
-#include "atom.hh"
-#include "array.hh"
-#include "string-convert.hh"
-#include "debug.hh"
-
-Ps_outputter::Ps_outputter (Paper_stream *s)
-  :Paper_outputter (s)
-{
-}
-
-Ps_outputter::~Ps_outputter ()
-{
-}
-
-/*
-   26 fonts ought to be enough for anyone.
-*/
-static String
-ps_font_command(int i)
-{
-// urg
-//  return "%\\font" + String_convert::form_str ("%c",  'A' + i) + "\n";
-  return "\n/feta20 findfont 12 scalefont setfont ";
-}
-
-void
-Ps_outputter::switch_to_font (String fontname)
-{
-  if (!fontname.length_i () || fontname == current_font_)
-    return;
-
-  current_font_ = fontname;
-  int i=0;
-  for (; i< font_arr_.size (); i++)
-    if (font_arr_[i] == fontname)
-      {
-       *outstream_l_ <<ps_font_command (i) << "\n";
-       return ;
-      }
-
-  
-  font_arr_.push (fontname);
-  *outstream_l_ << "%\\font"  + ps_font_command (i) << "% =" + fontname << "\n";
-  *outstream_l_<< ps_font_command (i) << "\n";
-}
-
-void
-Ps_outputter::output_molecule (Molecule const*m, Offset o, char const *nm)
-{
-  if (check_debug)
-    *outstream_l_ << String ("\n%start: ") << nm << "\n";
-
-  Paper_outputter::output_molecule (m, o, nm, "% % {%}placebox \n");
-}
-
-void
-Ps_outputter::start_line ()
-{
-  *outstream_l_ << "\nstart_line {\n";
-}
-
-void
-Ps_outputter::stop_line ()
-{
-  *outstream_l_ << "}\nstop_line\n";
-  current_font_ = "";
-  font_arr_.clear ();
-}
diff --git a/lily/ps-stream.cc b/lily/ps-stream.cc
deleted file mode 100644 (file)
index 4bdbc9e..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
-  tex-stream.cc -- implement Ps_stream
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-  Jan Nieuwenhuizen <janneke@gnu.org>
-*/
-
-#include <fstream.h>
-#include <time.h>
-
-#include "main.hh"
-#include "ps-stream.hh"
-#include "debug.hh"
-
-Ps_stream::Ps_stream (String filename)
-  : Paper_stream (filename)
-{
-  header ();
-}
-
-Ps_stream::~Ps_stream ()
-{
-  *os << "\nshowpage\n";
-}
-
-void
-Ps_stream::header ()
-{
-  *os << _ ("%!PS-Adobe-3.0\n");
-  // urg, merge with Tex
-  *os << _ ("%%Creator: ");
-  if (no_timestamps_global_b)
-    *os << "GNU LilyPond\n";
-  else
-    *os << get_version_str () << '\n';
-  *os << _ ("%%Automatically generated");
-  if (no_timestamps_global_b)
-    *os << ".\n";
-  else
-    {
-      *os << _ (", at ");
-      time_t t (time (0));
-      *os << ctime (&t) << "%\n";
-    }
-}
-
-// print string. don't forget indent.
-Paper_stream&
-Ps_stream::operator << (Scalar s)
-{
-  return Paper_stream::operator << (s);
-}
-
index d139313be214320c85660e061bdaf33d207259cb..2c52168807a3f3a02764970b5194573dc4b745f4 100644 (file)
@@ -37,7 +37,7 @@ void
 Rest_collision_engraver::acknowledge_element (Score_element_info i)
 {
   if (i.elem_l_->is_type_b (Note_column::static_name()))
-    note_column_l_arr_.push ((Note_column*)i.elem_l_->access_Item ());
+    note_column_l_arr_.push ((Note_column*)dynamic_cast <Item *> (i.elem_l_));
 }
 
 void
index 38d393f16091b54ecc5dc577df2b9eb3966771f6..54cfe814c1458152123cef4c40f81416c84092e8 100644 (file)
@@ -133,12 +133,12 @@ Rest_collision::do_print() const
 void
 Rest_collision::do_substitute_dependency (Score_element*o,Score_element*n)
 {
-  Item*o_l = o->access_Item ();
+  Item*o_l = dynamic_cast <Item *> (o);
   
 
   if (o_l&&o_l->is_type_b (Note_column::static_name ()))
     {
-      Note_column *n_l = n?(Note_column*)n->access_Item ():0;
+      Note_column *n_l = n?(Note_column*)dynamic_cast <Item *> (n):0;
       rest_l_arr_.substitute ((Note_column*)o_l, n_l);
       ncol_l_arr_.substitute ((Note_column*)o_l, n_l);
     }
index 96c40d75c2a79cef0426e924c20b2571f5da386b..f4f2e6efbe8b2085aa17284593aa0c1d6e9c28f5 100644 (file)
@@ -62,11 +62,11 @@ Rest_engraver::do_process_requests ()
 bool
 Rest_engraver::do_try_request (Request *r)
 {
-  Musical_req *m = r->access_Musical_req ();
-  if (!m || !m->access_Rest_req ())
+  Musical_req *m = dynamic_cast <Musical_req *> (r);
+  if (!m || !dynamic_cast <Rest_req *> (m))
     return false;
 
-  rest_req_l_ = m->access_Rest_req (); // ugh
+  rest_req_l_ = dynamic_cast <Rest_req *> (m); // ugh
   return true;
 }
 
index 6d7fc6927b3135ba0b926006dc361300ef78d923..8c1cacfdf5689884f7929b558682494fe9884137 100644 (file)
@@ -12,6 +12,7 @@
 #include "note-column.hh"
 #include "script.hh"
 #include "dot-column.hh"
+#include "musical-request.hh"
 
 Rhythmic_column_engraver::Rhythmic_column_engraver()
 {
@@ -66,12 +67,12 @@ Rhythmic_column_engraver::process_acknowledged ()
 void
 Rhythmic_column_engraver::acknowledge_element (Score_element_info i)
 {
-  Item * item =  i.elem_l_->access_Item ();
+  Item * item =  dynamic_cast <Item *> (i.elem_l_);
   if (!item)
     return;
   if (item->is_type_b (Script::static_name ())
       && i.req_l_
-      && i.req_l_->access_Musical_req ()) 
+      && dynamic_cast <Musical_req *> (i.req_l_)) 
     {
       script_l_arr_.push ((Script*)item);
     }
index ab9e7396dc53b2f37cdc66c6c6ff6972f3b393a4..d4625e7c2b979d3a1461693d9a8aadea6061985c 100644 (file)
@@ -52,7 +52,7 @@ void
 Rhythmic_head::do_substitute_dependent (Score_element*o,Score_element*n)
 {
   if (o == dots_l_)
-    dots_l_ = n ? (Dots*)n->access_Item () :0;
+    dots_l_ = n ? (Dots*)dynamic_cast <Item *> (n) :0;
 }
 
 IMPLEMENT_IS_TYPE_B1(Rhythmic_head, Item);
index a0c6f68e8552a8047866cc42351ec8da649d5f2b..81aa07fdbf4a6d3d4bcc98890686dfbf5f13f4aa 100644 (file)
@@ -15,6 +15,7 @@ Score_element_info::Score_element_info (Score_element*s_l, Request*r_l)
   req_l_ = r_l;
 }
 
+
 Score_element_info::Score_element_info()
 {
   elem_l_ = 0;
index b92945e2850dd65f9299103400e2f4c2c026d18c..cbaadfc4f4b880c7c3e43090003c3f42c7b6479d 100644 (file)
@@ -9,7 +9,6 @@
 
 #include <string.h>
 
-#include "tex-outputter.hh"
 #include "p-score.hh"
 #include "paper-def.hh"
 #include "lookup.hh"
@@ -22,6 +21,7 @@
 #include "p-col.hh"
 #include "molecule.hh"
 #include "misc.hh"
+#include "paper-outputter.hh"
 
 #define PARANOID
 
@@ -291,17 +291,17 @@ Score_element::handle_broken_dependencies()
       Score_element * elt = dependency (i);
       if (elt->line_l() != line)
        {
-         if (elt->access_Spanner ()) 
+         if (dynamic_cast <Spanner *> (elt)) 
            {
-             Spanner * sp = elt->access_Spanner ();
+             Spanner * sp = dynamic_cast <Spanner *> (elt);
              Spanner * broken = sp->find_broken_piece (line);
              substitute_dependency (sp, broken);
 
              add_dependency (broken);
            }
-         else if (elt->access_Item ())
+         else if (dynamic_cast <Item *> (elt))
            {
-             Item * my_item = elt->access_Item ()->find_prebroken_piece (line);
+             Item * my_item = dynamic_cast <Item *> (elt)->find_prebroken_piece (line);
                
              substitute_dependency (elt, my_item);
              if (my_item)
@@ -338,11 +338,11 @@ Score_element::handle_prebroken_dependencies()
   for (int i=0; i < dependency_size(); i++) 
     {
       Score_element * elt = dependency (i);
-      Item *it_l = elt->access_Item ();
+      Item *it_l = dynamic_cast <Item *> (elt);
       if (it_l && it_l->breakable_b_)
-       if (access_Item ()) 
+       if (Item *me = dynamic_cast<Item*> (this) )
          {
-           Score_element *new_l = it_l->find_prebroken_piece (access_Item ()->break_status_dir_);
+           Score_element *new_l = it_l->find_prebroken_piece (me->break_status_dir_);
            if (new_l != elt) 
              {
                new_arr.push (new_l);
index 1b30731fd710d69d6e5f80516fb1e6adf5433d2d..30a38f5360cf12c182909ddee006cb08ec623a68 100644 (file)
@@ -18,6 +18,7 @@
 #include "paper-def.hh"
 
 
+
 Score_engraver::Score_engraver()
 {
   break_penalty_i_ = 0;
@@ -103,8 +104,8 @@ Score_engraver::do_announces()
          */
        if (announce_info_arr_[i].req_l_) 
          {
-           Musical_req *m = announce_info_arr_[i].req_l_->access_Musical_req ();
-           if (m && m->access_Rhythmic_req ()) 
+           Musical_req *m =dynamic_cast <Musical_req *> ( announce_info_arr_[i].req_l_);
+           if (m && dynamic_cast <Rhythmic_req *> (m)) 
              {
                musical_column_l_->add_duration (m->duration());
              }
@@ -117,23 +118,22 @@ Score_engraver::do_announces()
 void
 Score_engraver::typeset_element (Score_element *elem_p)
 {
-  elem_p_arr_.push(elem_p);
+  elem_p_arr_.push (elem_p);
 }
 
+
 void
 Score_engraver::typeset_all()
 {
   for  (int i =0; i < elem_p_arr_.size(); i++) 
     {
       Score_element * elem_p = elem_p_arr_[i];
-      if (elem_p->access_Spanner ()) 
+      if (dynamic_cast <Spanner *> (elem_p)) 
        {
-         Spanner *s = elem_p->access_Spanner ();
+         Spanner *s = dynamic_cast <Spanner *> (elem_p);
          pscore_p_->typeset_unbroken_spanner (s);
 
-
-
-                 /*
+           /*
            do something sensible if spanner not 
            spanned on 2 items.
           */
@@ -148,7 +148,7 @@ Score_engraver::typeset_all()
        }
       else 
        {
-         Item *item_p = elem_p->access_Item ();
+         Item *item_p = dynamic_cast <Item *> (elem_p);
          pscore_p_->typeset_element (item_p);
          if (!item_p->axis_group_l_a_[X_AXIS]) {
            if (item_p->breakable_b_) 
@@ -228,7 +228,6 @@ Score_engraver::get_staff_info() const
 }
 
 
-
 Music_output*
 Score_engraver::get_output_p ()
 {
@@ -242,13 +241,13 @@ Score_engraver::do_try_request (Request*r)
 {
   bool gotcha = Engraver_group_engraver::do_try_request (r);  
 
-  if (gotcha || !r->access_Command_req ())
+  if (gotcha || !dynamic_cast <Command_req *> (r))
     return gotcha;
 
-  Command_req * c = r->access_Command_req ();
-  if (c->access_Break_req ())
+  Command_req * c = dynamic_cast <Command_req *> (r);
+  if (dynamic_cast <Break_req *> (c))
     {
-      Break_req* b = (Break_req*)c->access_Break_req ();
+      Break_req* b = (Break_req*)dynamic_cast <Break_req *> (c);
       if (b->penalty_i_ <= Break_req::DISALLOW)
        break_penalty_i_ = b->penalty_i_;
       else if (b->penalty_i_ >= Break_req::FORCE)
index 310e44e101e9cde3959fd2aa35692d2473b089c4..3de5ea9f00128d9dce9f91b62bc6d810ee48229a 100644 (file)
@@ -35,7 +35,7 @@ Score_priority_engraver::do_pre_move_processing()
 void
 Score_priority_engraver::acknowledge_element (Score_element_info inf)
 {
-  Item * item_l = inf.elem_l_->access_Item ();
+  Item * item_l = dynamic_cast <Item *> (inf.elem_l_);
   if (item_l && item_l->breakable_b_ && !item_l->empty_b ())
     {
       /*
@@ -68,7 +68,7 @@ Score_priority_engraver::acknowledge_element (Score_element_info inf)
          */
          if (unbound_elem->axis_group_l_a_[X_AXIS] == hg)
            return;
-         unbound_elem = unbound_elem->axis_group_l_a_[X_AXIS]->access_Score_element ();
+         unbound_elem = dynamic_cast<Score_element*> (unbound_elem->axis_group_l_a_[X_AXIS]);
        }
 
       hg->add_element (unbound_elem);
index f41666b0ad7f8d8d202ac43e193c0890485f1c95..5ac2645737c1bc777e6151c33827ab4be53e3922 100644 (file)
@@ -17,7 +17,6 @@
 #include "file-results.hh"
 #include "my-lily-parser.hh"
 #include "source.hh"
-#include "lookup.hh"
 
 Sources* source_global_l = 0;
 Array<String> inclusion_global_array;
@@ -125,16 +124,6 @@ do_one_file (String init_str, String file_str)
     parser.set_version_check (version_ignore_global_b);
     parser.parse_file (init_str, file_str);
 
-    /*
-       urg
-       when calling {Ps,Tex}_lookup::paper_stream_p (),
-       it *appears* (aaargh, latest gdb on ppc is gdb 4.16.97)
-       that (global_lookup_l's) 
-       paper_l_ is invalid but not NULL
-       (deleted without being reset maybe?)
-     */
-    global_lookup_l->paper_l_ = parser.default_paper_p ();
-
     if (parser.error_level_i_)
       {
        exit_status_i_  = 1;
index f67907c8695258398039a4205a9014e73f843907..d85e1a6e0bdde1e21d2067a6c46fba7200a4b7d3 100644 (file)
@@ -105,9 +105,9 @@ Script_column::add_support (Item*i_l)
 void
 Script_column::do_substitute_dependency (Score_element*o,Score_element*n)
 {
-  if (o->access_Item ()) 
+  if (dynamic_cast <Item *> (o)) 
     {
-      script_l_arr_.substitute ((Script*)o->access_Item (),(Script*) (n?n->access_Item ():0));
-      support_l_arr_.substitute (o->access_Item (), (n?n->access_Item ():0));
+      script_l_arr_.substitute ((Script*)dynamic_cast <Item *> (o),(Script*) (n?dynamic_cast <Item *> (n):0));
+      support_l_arr_.substitute (dynamic_cast <Item *> (o), (n?dynamic_cast <Item *> (n):0));
     }
 }
index 671ca17e38f425cfb13c26ecb41aea0f3bca7efa..f27577e44b17e5228dfb110f148fb5a48021240c 100644 (file)
@@ -21,7 +21,7 @@ Script_engraver::Script_engraver()
 bool
 Script_engraver::do_try_request (Request *r_l)
 {
-  if (!r_l->access_Musical_req () || ! r_l->access_Musical_req ()->access_Musical_script_req ())
+  if (!dynamic_cast <Musical_script_req *> (r_l))
     return false ;
   
   for (int i=0; i < script_req_l_arr_.size(); i++) 
@@ -29,7 +29,7 @@ Script_engraver::do_try_request (Request *r_l)
       if (r_l->equal_b (script_req_l_arr_[i]))
        return true;
     }
-  script_req_l_arr_.push (r_l->access_Script_req ());
+  script_req_l_arr_.push (dynamic_cast <Script_req *> (r_l));
   
   return true;
 }
index 76c9cbc02a522ca85b3b0957b2234a144ff1207c..ee525907ae929e1fb27a75f18d3c95244219be0f 100644 (file)
@@ -27,7 +27,7 @@ Script::do_substitute_dependency (Score_element*o,Score_element*n)
   Staff_side::do_substitute_dependency (o,n);
   if (o == stem_l_)
     {
-      stem_l_ = n ? (Stem*)n->access_Item () : 0;
+      stem_l_ = n ? (Stem*)dynamic_cast <Item *> (n) : 0;
     }
 }
 
index cffc4ee2763b32aecedefc58c5ace8bc62abc8bc..059afad994521fe15d33079eaf802d79ec5c9be0 100644 (file)
@@ -65,8 +65,8 @@ Separating_group_spanner::do_substitute_dependency (Score_element*o, Score_eleme
   if (o->is_type_b (Single_malt_grouping_item::static_name ()))
     {
       Single_malt_grouping_item*ns = n ?
-       (Single_malt_grouping_item*)n->access_Item () : 0;
-      spacing_unit_l_arr_.substitute ((Single_malt_grouping_item*)o->access_Item (), ns);
+       (Single_malt_grouping_item*)dynamic_cast <Item *> (n) : 0;
+      spacing_unit_l_arr_.substitute ((Single_malt_grouping_item*)dynamic_cast <Item *> (o), ns);
     }
 }
 
index 878bb1f1dc12b635d9b1a79e3fa8d6041c8fdfa7..f43b99a3c30a498e10557aac67424f505ce6b3f4 100644 (file)
@@ -38,7 +38,7 @@ Separating_line_group_engraver::do_removal_processing ()
 void
 Separating_line_group_engraver::acknowledge_element (Score_element_info i)
 {
-  Item * it = i.elem_l_->access_Item ();
+  Item * it = dynamic_cast <Item *> (i.elem_l_);
   if (it && !it->axis_group_l_a_[X_AXIS])
     {
       Single_malt_grouping_item *&p_ref_ (it->breakable_b_ ?
index 284a494d7e85954087d3efa1f38d488538654339..56541540f127874be31888dd2898af73092de6a7 100644 (file)
@@ -46,9 +46,9 @@ IMPLEMENT_IS_TYPE_B1(Single_malt_grouping_item, Item);
 void
 Single_malt_grouping_item::do_substitute_dependency (Score_element*o, Score_element*n)
 {
-  if (o->access_Item ())
+  if (dynamic_cast <Item *> (o))
     {
-      item_l_arr_.unordered_substitute (o->access_Item (),  n ? n->access_Item () : 0);
+      item_l_arr_.unordered_substitute (dynamic_cast <Item *> (o),  n ? dynamic_cast <Item *> (n) : 0);
     }
 }
 
index 8c43bfddfbc9613ec828a2ca89312799ee2d2362..e7447b74320e71ba59d6c1c93d3ea2d0316eb746 100644 (file)
 bool
 Slur_engraver::do_try_request (Request *req_l)
 {
-  Musical_req *mus_l = req_l->access_Musical_req ();
-  if (!mus_l || !mus_l->access_Slur_req ())
+  Musical_req *mus_l = dynamic_cast <Musical_req *> (req_l);
+  if (!mus_l || !dynamic_cast <Slur_req *> (mus_l))
     return false;
 
-  new_slur_req_l_arr_.push (mus_l->access_Slur_req ());
+  new_slur_req_l_arr_.push (dynamic_cast <Slur_req *> (mus_l));
   return true;
 }
 
@@ -28,7 +28,7 @@ Slur_engraver::acknowledge_element (Score_element_info info)
 {
   if (info.elem_l_->is_type_b (Note_column::static_name ()))
     {
-      Note_column *col_l =(Note_column*) info.elem_l_->access_Item() ;// ugh
+      Note_column *col_l =(Note_column*) dynamic_cast <Item *> (info.elem_l_) ;// ugh
       for (int i = 0; i < slur_l_stack_.size(); i++)
        slur_l_stack_[i]->add_column (col_l);
       for (int i = 0; i < end_slur_l_arr_.size(); i++)
index 28bd21fa6e3ce40faf11e5907e36d674a1b12061..41769d8e0c6d7b2f3188d4722b542eb2c7dd356e 100644 (file)
@@ -76,10 +76,10 @@ void
 Slur::do_substitute_dependency (Score_element*o, Score_element*n)
 {
   int i;
-  while ((i = encompass_arr_.find_i ((Note_column*)o->access_Item ())) >=0) 
+  while ((i = encompass_arr_.find_i ((Note_column*)dynamic_cast <Item *> (o))) >=0) 
     {
       if (n)
-       encompass_arr_[i] = (Note_column*)n->access_Item ();
+       encompass_arr_[i] = (Note_column*)dynamic_cast <Item *> (n);
       else
        encompass_arr_.del (i);
     }
index 61898273c0494e355684a3a804bae4511494bca2..4d3dc1f6f46c18f60767f5a93f37d7d359c8a842 100644 (file)
@@ -40,7 +40,7 @@ Span_bar_engraver::acknowledge_element (Score_element_info i)
   if (depth > 1
       && i.elem_l_->is_type_b (Bar::static_name())) 
     {
-      bar_l_arr_.push ((Bar*)i.elem_l_->access_Item ());
+      bar_l_arr_.push ((Bar*)dynamic_cast <Item *> (i.elem_l_));
        
       if (bar_l_arr_.size() >= 2 && !spanbar_p_) 
        /*
@@ -65,7 +65,7 @@ Span_bar_engraver::acknowledge_element (Score_element_info i)
   else if  (i.elem_l_->is_type_b (Vertical_align_spanner::static_name()) 
            && i.origin_grav_l_arr_.size() <= 2) 
     {
-      valign_l_ = (Vertical_align_spanner*)i.elem_l_->access_Spanner ();
+      valign_l_ = (Vertical_align_spanner*)dynamic_cast <Spanner *> (i.elem_l_);
     }
 }
 
index 524d5b20adfe715abe9461d5873dbd9658930329..d3cff445e5fe397baabad9a2632d7e0096989066 100644 (file)
@@ -50,7 +50,7 @@ Staff_group_bar_engraver::acknowledge_element (Score_element_info i)
   Span_bar_engraver::acknowledge_element (i);
   if (i.elem_l_->is_type_b (Piano_brace::static_name ()))
     {
-      Span_bar* b =  i.elem_l_->access_Span_bar ();
+      Span_bar* b =  dynamic_cast <Span_bar *> (i.elem_l_);
       Piano_brace * piano_l = (Piano_brace*) b;
       piano_l->extra_move_left_f_  = paper ()->interline_f (); // ugh
     }
index 0a1a74e5bd09c62a67acc44958a1c111fd8da743..83ad5f2091d9548584496f5488e239225fe553ce 100644 (file)
@@ -10,8 +10,8 @@
 #include "spanner.hh"
 #include "p-col.hh"
 #include "p-score.hh"
-#include "tex-outputter.hh"
 #include "molecule.hh"
+#include "paper-outputter.hh"
 
 IMPLEMENT_IS_TYPE_B1(Spanner,Score_element);
 
@@ -53,7 +53,7 @@ Spanner::break_into_pieces ()
 
   for (int i=1; i < break_cols.size(); i++) 
     {
-      Spanner* span_p = clone()->access_Spanner ();
+      Spanner* span_p = dynamic_cast<Spanner*> (clone());
       Item *left = break_cols[i-1];
       Item *right = break_cols[i];
       if (!right->line_l())
index 26150a6ba06aa5396162116aa4cb896dbd80138e..a80d36bd0a8bdbb844e8ae1b5194073491ea62cd 100644 (file)
@@ -40,7 +40,7 @@ Staff_margin_engraver::Staff_margin_engraver ()
 void
 Staff_margin_engraver::acknowledge_element (Score_element_info i)
 {
-  Item * it =  i.elem_l_->access_Item ();
+  Item * it =  dynamic_cast <Item *> (i.elem_l_);
 
   if (!it
       || script_p_ 
index 8fa6d56761046bcda99ad5dd613f2a5c32a8d015..e21c8c901234ad7525f1562925f10900852ba323 100644 (file)
@@ -38,10 +38,10 @@ Stem_engraver::acknowledge_element(Score_element_info i)
 {
   if (i.elem_l_->is_type_b (Rhythmic_head::static_name()))
     {
-      Rhythmic_head *h  = (Rhythmic_head*) i.elem_l_->access_Item ();
+      Rhythmic_head *h  = (Rhythmic_head*) dynamic_cast <Item *> (i.elem_l_);
       if (!stem_p_) 
        {
-         Rhythmic_req * r = i.req_l_->access_Musical_req ()->access_Rhythmic_req ();
+         Rhythmic_req * r = dynamic_cast <Rhythmic_req *> (i.req_l_);
          stem_p_ = new Stem;
          int durlog_i = r->duration_.durlog_i_;
          stem_p_->flag_i_ = durlog_i;
@@ -103,11 +103,11 @@ Stem_engraver::do_pre_move_processing()
 bool
 Stem_engraver::do_try_request (Request* r)
 {
-  Musical_req* mus_l = r->access_Musical_req ();
+  Musical_req* mus_l = dynamic_cast <Musical_req *> (r);
   if (!mus_l)
     return false;
   
-  Abbreviation_req* a = mus_l->access_Abbreviation_req ();
+  Abbreviation_req* a = dynamic_cast <Abbreviation_req *> (mus_l);
   if (!a)
     return false;
 
index b9e7e59b8a7319c01dc38e17801da9b52b830dcf..423b40b397e8fa220bfedf0c2c97c5b89d25e2e5 100644 (file)
@@ -347,8 +347,8 @@ Stem::hpos_f () const
 void
  Stem::do_substitute_dependency (Score_element*o,Score_element*n)
 {
-  Item * o_l = o->access_Item ();
-  Item * n_l = n? n->access_Item () : 0;
+  Item * o_l = dynamic_cast <Item *> (o);
+  Item * n_l = n? dynamic_cast <Item *> (n) : 0;
   head_l_arr_.substitute ((Note_head*)o_l, (Note_head*)n_l);
   rest_l_arr_.substitute ((Rest*)o_l, (Rest*)n_l);
 }
index 419618ed4cb126fbbf8e6e9e547b9d392b8070e7..89168838b741d7f43521d2921d3053499ec69c43 100644 (file)
@@ -10,7 +10,7 @@
 #include "line-of-score.hh"
 #include "p-score.hh"
 #include "string.hh"
-#include "tex-outputter.hh"
+#include "paper-outputter.hh"
 
 
 Super_element::Super_element()
diff --git a/lily/tex-lookup.cc b/lily/tex-lookup.cc
deleted file mode 100644 (file)
index 4f10886..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-/*
-  tex-lookup.cc -- implement Tex_lookup
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1998 Jan Nieuwenhuizen <janneke@gnu.org>
-  Jan Nieuwenhuizen <janneke@gnu.org>
-*/
-
-#include "tex-lookup.hh"
-#include "debug.hh"
-#include "symtable.hh"
-#include "scalar.hh"
-#include "paper-def.hh"
-#include "string-convert.hh"
-#include "main.hh"
-#include "file-results.hh"
-#include "scope.hh"
-#include "paper-stream.hh"
-#include "tex-stream.hh"
-#include "tex-outputter.hh"
-#include "dictionary-iter.hh"
-#include "identifier.hh"
-
-Tex_lookup::Tex_lookup ()
-  : Ps_lookup ()
-{
-}
-
-Tex_lookup::Tex_lookup (Lookup const& s)
-  : Ps_lookup (s)
-{
-}
-
-Tex_lookup::Tex_lookup (Symtables const& s)
-  : Ps_lookup (s)
-{
-}
-
-Tex_lookup::~Tex_lookup()
-{
-}
-
-Atom
-Tex_lookup::afm_find (String s) const
-{
-  return Lookup::afm_find (s, String ("\\char%d"));
-}
-
-Atom*
-Tex_lookup::atom_p (String s, int n, Box b) const
-{
-  if (s.length_i ())
-    s.prepend ("\\");
-  for (int i = 0; i < n; i++)
-    s += "{%}";
-  return new Atom (s, b);
-}
-
-String
-Tex_lookup::character_str (int i) const
-{
-  return Lookup::character_str (i);
-}
-
-Atom
-Tex_lookup::dashed_slur (Array<Offset> controls, Real thick, Real dash) const
-{
-  return embed (Ps_lookup::dashed_slur (controls, thick, dash));
-}
-
-Atom
-Tex_lookup::embed (Atom a) const
-{
-  a.str_ = "\\embeddedps{\n" + a.str_ + "}";
-  return a;
-}
-
-Atom
-Tex_lookup::hairpin (Real width, bool decresc, bool continued) const
-{
-  return embed (Ps_lookup::hairpin (width, decresc, continued));
-}
-
-Atom
-Tex_lookup::plet (Real dy , Real dx, Direction dir) const
-{
-  return embed (Ps_lookup::plet (dy, dx, dir));
-}
-
-Lookup*
-Tex_lookup::lookup_p (Lookup const& l) const
-{
-  return new Tex_lookup (l);
-}
-
-Lookup*
-Tex_lookup::lookup_p (Symtables const& s) const
-{
-  return new Tex_lookup (s);
-}
-
-extern char const *lily_version_number_sz ();
-
-String
-header_to_tex_string (Scope *head)
-{
-  String s;
-  String lily_id_str = "Lily was here, " +
-    String (lily_version_number_sz ());
-  s+= "\\def\\LilyIdString{"  + lily_id_str + "}\n";
-  
-  for (Dictionary_iter<Identifier*> i(*head); i.ok (); i++)
-    {
-      if (!i.val ()->access_String_identifier ())
-       continue;
-      
-      String val = *i.val()->access_String_identifier ()->data_p_;
-      s += "\\def\\mudela" + i.key () + "{" + val  + "}\n";
-    }
-  return s;
-}
-
-
-Paper_outputter*
-Tex_lookup::paper_outputter_p (Paper_stream* os_p, Paper_def* paper_l, Scope* header_l, String origin_str) const
-{
-  if (header_global_p)
-    *os_p << header_to_tex_string(header_global_p);
-  
-  *os_p << _ ("\n% outputting Score, defined at: ") << origin_str << '\n';
-
-  if (header_l)
-    *os_p << header_to_tex_string (header_global_p);
-  
-
-  *os_p << paper_l->tex_output_settings_str ();
-  
-  if (experimental_features_global_b)
-    *os_p << "\\turnOnExperimentalFeatures%\n";
-
-  *os_p << "\\turnOnPostScript%\n";
-
-  return new Tex_outputter (os_p);
-}
-
-Paper_stream *
-Tex_lookup::paper_stream_p () const
-{
-  String outname = base_output_str ();
-
-  Paper_stream* p;
-  if (outname != "-")
-    outname += ".tex";
-  *mlog << _f ("TeX output to %s...", 
-              outname == "-" ? String ("<stdout>") : outname ) << endl;
-  p = new Tex_stream (outname);
-  target_str_global_array.push (outname);
-  return p;
-}
-
-String
-Tex_lookup::print_dimen (Real r) const
-{
-  String s = to_str (r, "%.3f");
-  if (s.index_i ("NaN") != -1)
-    {
-      warning (_ ("NaN"));
-      s = "0.0";
-    }
-  return Lookup::print_dimen (r) + "pt";
-}
-
-Atom
-Tex_lookup::ps_beam (Real slope, Real width, Real thick) const
-{
-  return embed (Ps_lookup::ps_beam (slope, width, thick));
-}
-
-Atom
-Tex_lookup::slur (Array<Offset> controls) const
-{
-  return embed (Ps_lookup::slur (controls));
-}
-
-Atom
-Tex_lookup::stem (Real y1, Real y2) const
-{
-  return Lookup::stem (y1, y2, "\\kern %\\vrule width % height % depth %");
-}
-
-Atom
-Tex_lookup::text (String style, String text) const
-{
-  return Lookup::text (style, text);
-}
-
-String
-Tex_lookup::unknown_str () const
-{
-  return "\\unknown";
-}
-
-Atom
-Tex_lookup::vbracket (Real &y) const
-{
-  return embed (Ps_lookup::vbracket (y));
-}
-
diff --git a/lily/tex-outputter.cc b/lily/tex-outputter.cc
deleted file mode 100644 (file)
index 89ebf31..0000000
+++ /dev/null
@@ -1,79 +0,0 @@
-/*
-  tex-outputter.cc -- implement Tex_outputter
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-  Jan Nieuwenhuizen <janneke@gnu.org>
-*/
-
-#include "tex-outputter.hh"
-#include "tex-stream.hh"
-#include "molecule.hh"
-#include "atom.hh"
-#include "array.hh"
-#include "string-convert.hh"
-#include "debug.hh"
-
-Tex_outputter::Tex_outputter (Paper_stream *s)
-  :Paper_outputter (s)
-{
-}
-
-Tex_outputter::~Tex_outputter ()
-{
-}
-
-/*
-   26 fonts ought to be enough for anyone.
-*/
-static String
-tex_font_command(int i)
-{
-  return "\\font"  +String_convert::form_str ("%c",  'A' + i) ;
-}
-
-void
-Tex_outputter::switch_to_font (String fontname)
-{
-  if (!fontname.length_i () || fontname == current_font_)
-    return;
-
-  current_font_ = fontname;
-  int i=0;
-  for (; i< font_arr_.size (); i++)
-    if (font_arr_[i] == fontname)
-      {
-       *outstream_l_ <<tex_font_command (i) << "\n";
-       return ;
-      }
-
-  
-  font_arr_.push (fontname);
-  *outstream_l_ << "\\font"  + tex_font_command (i) << "=" + fontname << "\n";
-  *outstream_l_<< tex_font_command (i);
-}
-
-void
-Tex_outputter::output_molecule (Molecule const*m, Offset o, char const *nm)
-{
-  if (check_debug)
-    *outstream_l_ << String ("\n%start: ") << nm << "\n";
-
-  Paper_outputter::output_molecule (m, o, nm, "\\placebox{%}{%}{%}");
-}
-
-void
-Tex_outputter::start_line ()
-{
-  *outstream_l_ << "\\hbox{%\n";
-}
-
-void
-Tex_outputter::stop_line ()
-{
-  *outstream_l_ << "}";
-  *outstream_l_ << "\\interscoreline";
-  current_font_ = "";
-  font_arr_.clear ();
-}
diff --git a/lily/tex-stream.cc b/lily/tex-stream.cc
deleted file mode 100644 (file)
index d803058..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-/*
-  tex-stream.cc -- implement Tex_stream
-
-  source file of the GNU LilyPond music typesetter
-
-  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-
-*/
-
-#include <fstream.h>
-#include <time.h>
-
-#include "main.hh"
-#include "tex-stream.hh"
-#include "debug.hh"
-
-Tex_stream::Tex_stream (String filename)
-  : Paper_stream (filename)
-{
-  header ();
-}
-
-Tex_stream::~Tex_stream ()
-{
-  *os << "\n\\EndLilyPondOutput";
-}
-
-void
-Tex_stream::header ()
-{
-  // urg, merge with Ps
-  *os << _ ("% Creator: ");
-  if (no_timestamps_global_b)
-    *os << "GNU LilyPond\n";
-  else
-    *os << get_version_str () << '\n';
-  *os << _ ("% Automatically generated");
-  if (no_timestamps_global_b)
-    *os << ".\n";
-  else
-    {
-      *os << _ (", at ");
-      time_t t (time (0));
-      *os << ctime (&t) << "%\n";
-    }
-}
-
-// print string. don't forget indent.
-Paper_stream&
-Tex_stream::operator << (Scalar s)
-{
-  return Paper_stream::operator << (s);
-}
-
index 2bafc76723ffb2e70aacf1f7c9ddb723cc668fae..522081cedfa146e31b50277c983da4eda25c717f 100644 (file)
@@ -81,7 +81,7 @@ void
 Text_spanner::do_substitute_dependency (Score_element* o, Score_element*n)
 {
   if (support_span_l_ == o) 
-       support_span_l_ = (Directional_spanner*) (n?n->access_Spanner ():0);
+       support_span_l_ = (Directional_spanner*) (n?dynamic_cast <Spanner *> (n):0);
 }
 
 
index cc36ab22c0fec51cd04a2ec65029b34bb818a928..002c5e969478b3a621020b89d283840d4b2e1709 100644 (file)
@@ -151,10 +151,10 @@ Tie::do_post_processing()
 void
 Tie::do_substitute_dependency (Score_element*o, Score_element*n)
 {
-  Note_head *new_l =n?(Note_head*)n->access_Item ():0;
-  if (o->access_Item () == head_l_drul_[LEFT])
+  Note_head *new_l =n?(Note_head*)dynamic_cast <Item *> (n):0;
+  if (dynamic_cast <Item *> (o) == head_l_drul_[LEFT])
     head_l_drul_[LEFT] = new_l;
-  else if (o->access_Item () == head_l_drul_[RIGHT])
+  else if (dynamic_cast <Item *> (o) == head_l_drul_[RIGHT])
     head_l_drul_[RIGHT] = new_l;
 }
 
index 9ed1ef3b04d5255ede50fd6da0222ced5c2dd7fb..f79dab5ac9384c89fc7394ca3d2635b314b7ff89 100644 (file)
@@ -28,15 +28,15 @@ Ties_engraver::do_post_move_processing()
 bool
 Ties_engraver::do_try_request (Request*req)
 {
-  if (! req->access_Musical_req ())
+  if (! dynamic_cast <Musical_req *> (req))
       return false;
 
-  Tie_req * r=  req->access_Musical_req ()->access_Tie_req ();
-  if (!r)
-    return false;
-  
-  req_l_ = r;
-  return true;
+  if(Tie_req * r=  dynamic_cast <Tie_req *> (req))
+    {  
+      req_l_ = r;
+      return true;
+    }
+  return false;
 }
 
 
@@ -47,8 +47,8 @@ Ties_engraver::acknowledge_element (Score_element_info i)
     return;
   if (i.elem_l_->is_type_b (Note_head::static_name ()))
     {
-      Note_head * h = (Note_head*)i.elem_l_->access_Item ();
-      Melodic_req *m = i.req_l_->access_Musical_req ()->access_Melodic_req ();
+      Note_head * h = dynamic_cast <Note_head *> (i.elem_l_);
+      Melodic_req *m = dynamic_cast <Melodic_req *> (i.req_l_);
       
       head_mel_tuple_arr_.push (Head_melodic_tuple (h, m));
     }
index 1e52ea151e3450a509eefd90fbfcc2ef28e9a6e1..89e29e61ed882bebbf8eac0e32c8c2a94e03ea1e 100644 (file)
@@ -30,7 +30,7 @@ Time_signature_engraver::do_process_requests()
       return ;
     }
   
-  Timing_engraver * timing_grav_l= (Timing_engraver*) result->access_Engraver  ();
+  Timing_engraver * timing_grav_l= (Timing_engraver*) dynamic_cast <Engraver *> (result);
   
   Time_signature_change_req *req = timing_grav_l->time_signature_req_l();
   if (req)
index df41bf56b00729da02178b7b5cc82387cb5c677a..644055017060c0a99ede69d429a2ad37633f55ef 100644 (file)
@@ -45,8 +45,8 @@ Time_signature_performer::do_try_request (Request* req_l)
   if (time_signature_req_l_)
     return false;
 
-  if (req_l->access_Command_req ())
-    time_signature_req_l_ = req_l->access_Command_req ()->access_Time_signature_change_req ();
+  if (dynamic_cast <Command_req *> (req_l))
+    time_signature_req_l_ = dynamic_cast <Time_signature_change_req *> (req_l);
 
   if (time_signature_req_l_)
     return true;
index 79dd64035ca88c8198f7f4bfe9fbbf3cf2dcd0d7..316f31d52363d3a00fac0cd6df8a1e0511a00aa7 100644 (file)
@@ -20,8 +20,8 @@ Timing_translator::Timing_translator ()
 bool
 Timing_translator::do_try_request(Request*r)
 {
-  Command_req * c = r->access_Command_req ();
-  if (!(c && c->access_Timing_req ()))
+  Command_req * c = dynamic_cast <Command_req *> (r);
+  if (!(c && dynamic_cast <Timing_req *> (c)))
     return false;
   for (int i=0; i < timing_req_l_arr_.size (); i++)
     {
@@ -34,7 +34,7 @@ Timing_translator::do_try_request(Request*r)
        }
     }
 
-  timing_req_l_arr_.push(c->access_Timing_req ());
+  timing_req_l_arr_.push(dynamic_cast <Timing_req *> (c));
   return true;
 }
 
@@ -44,7 +44,7 @@ Timing_translator::time_signature_req_l() const
   Time_signature_change_req *m_l=0;
   for (int i=0; !m_l && i < timing_req_l_arr_.size (); i++)
     {
-      m_l=timing_req_l_arr_[i]->access_Time_signature_change_req ();
+      m_l=dynamic_cast<Time_signature_change_req*> (timing_req_l_arr_[i]);
     }
   return m_l;
 }
@@ -55,7 +55,7 @@ Timing_translator::do_process_requests()
   for (int i=0; i < timing_req_l_arr_.size (); i++)
     {
       Timing_req * tr_l = timing_req_l_arr_[i];
-      Time_signature_change_req *m_l = tr_l->access_Time_signature_change_req ();
+      Time_signature_change_req *m_l = dynamic_cast <Time_signature_change_req *> (tr_l);
       if (m_l)
        {
          int b_i= m_l->beats_i_;
@@ -69,9 +69,9 @@ Timing_translator::do_process_requests()
                Rhythmic_grouping (MInterval (0,Moment (b_i, o_i)), b_i);
            }
        }
-      else if (tr_l->access_Partial_measure_req ())
+      else if (dynamic_cast <Partial_measure_req *> (tr_l))
        {
-         Moment m = tr_l->access_Partial_measure_req ()->duration_;
+         Moment m = dynamic_cast <Partial_measure_req *> (tr_l)->duration_;
          String error = time_.try_set_partial_str (m);
          if (error.length_i ())
            {
@@ -80,7 +80,7 @@ Timing_translator::do_process_requests()
          else
            time_.setpartial (m);
        }
-      else if (tr_l->access_Barcheck_req())
+      else if (dynamic_cast <Barcheck_req *> (tr_l))
        {
          if (time_.whole_in_measure_)
            {
@@ -92,15 +92,15 @@ Timing_translator::do_process_requests()
            }
 
        }
-      else if (tr_l->access_Cadenza_req ())
+      else if (dynamic_cast <Cadenza_req *> (tr_l))
        {
-         time_.set_cadenza (tr_l->access_Cadenza_req ()->on_b_);
+         time_.set_cadenza (dynamic_cast <Cadenza_req *> (tr_l)->on_b_);
        }
-      else if (tr_l->access_Measure_grouping_req ())
+      else if (dynamic_cast <Measure_grouping_req *> (tr_l))
        {
          default_grouping_ =
-           parse_grouping (tr_l->access_Measure_grouping_req ()->beat_i_arr_,
-                           tr_l->access_Measure_grouping_req ()->elt_length_arr_);
+           parse_grouping (dynamic_cast <Measure_grouping_req *> (tr_l)->beat_i_arr_,
+                           dynamic_cast <Measure_grouping_req *> (tr_l)->elt_length_arr_);
 
        }
     }
index 77d0f18b6ebe26e20fe1b90367f96a4a4f587bb0..5d9a3e31fbbae6d1cc3b4c668b0179c0f5b16450 100644 (file)
@@ -88,7 +88,7 @@ Translator_group::removable_b() const
 {
   for (PCursor<Translator*> i (trans_p_list_.top ()); i.ok (); i++)
     {
-      if (i->access_Translator_group ())
+      if (dynamic_cast <Translator_group *> (i.ptr ()))
        return false;
     }
 
@@ -118,9 +118,9 @@ Translator_group::path_to_acceptable_translator (String type) const
   for (int i=0; i < accepts_str_arr_.size (); i++)
     {
       Translator *t = output_def_l ()->find_translator_l (accepts_str_arr_[i]);
-      if (!t || !t->access_Translator_group ())
+      if (!t || !dynamic_cast <Translator_group *> (t))
        continue;
-      accepted_arr.push (t->access_Translator_group ());
+      accepted_arr.push (dynamic_cast <Translator_group *> (t));
     }
 
 
@@ -166,7 +166,7 @@ Translator_group::find_create_translator_l (String n, String id)
       // start at 1.  The first one (index 0) will be us.
       for (int i=0; i < path.size (); i++)
        {
-         Translator_group * new_group = path[i]->clone ()->access_Translator_group ();
+         Translator_group * new_group = dynamic_cast<Translator_group*>(path[i]->clone ());
          current->add_translator (new_group);
          current = new_group;
        }
@@ -221,8 +221,8 @@ Translator_group::group_l_arr () const
   Link_array<Translator_group> groups;
   for (PCursor<Translator*> i (trans_p_list_.top ()); i.ok (); i++)
     {
-      if (i->access_Translator_group ())
-       groups.push (i->access_Translator_group ());
+      if (dynamic_cast <Translator_group *> (i.ptr ()))
+       groups.push (dynamic_cast <Translator_group *> (i.ptr ()));
     }
   return groups;
 }
@@ -233,7 +233,7 @@ Translator_group::nongroup_l_arr () const
   Link_array<Translator> groups;
   for (PCursor<Translator*> i (trans_p_list_.top ()); i.ok (); i++)
     {
-      if (!i->access_Translator_group ())
+      if (!dynamic_cast <Translator_group *> (i.ptr ()))
        groups.push (i.ptr ());
     }
   return groups;
@@ -300,7 +300,7 @@ Translator_group::get_default_interpreter()
          warning (_f ("can't find or create `%s\'", accepts_str_arr_[0]));
          t = this;
        }
-      Translator_group * g= t->clone ()->access_Translator_group ();
+      Translator_group * g= dynamic_cast <Translator_group*>(t->clone ());
       add_translator (g);
 
       if (!g->is_bottom_translator_b ())
index a34c05299ca2ca4f8b6d73efe5a7395ac8f326b4..0979341e1aa1fbfb2ea6a3b46cbe0fc249ef4208 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Titel: LilyPond
-Versie: 1.0.17
-Inschrijf datum: 19OCT98
+Versie: 1.1.0
+Inschrijf datum: 23OCT98
 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.0.17.tar.gz 
+       770k lilypond-1.1.0.tar.gz 
 Oorspronkelijke plek: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       770k lilypond-1.0.17.tar.gz 
+       770k lilypond-1.1.0.tar.gz 
 Copi-eer voorwaarden: GPL
 End
index 6f9269827af66d6358f4460493b72f2339162a3b..2d97b83a712ed534f4b7f230d6adf9031703d75d 100644 (file)
@@ -1,7 +1,7 @@
 Begin3
 Title: LilyPond
-Version: 1.0.17
-Entered-date: 19OCT98
+Version: 1.1.0
+Entered-date: 23OCT98
 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.0.17.tar.gz 
+       770k lilypond-1.1.0.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       770k lilypond-1.0.17.tar.gz 
+       770k lilypond-1.1.0.tar.gz 
 Copying-policy: GPL
 End
index 0464aff56a0554dd5efedf94dde848f8918b20fb..34f96602435d65729ff15484cb1062ff9e8b0ed2 100644 (file)
@@ -1,9 +1,9 @@
 Name: lilypond
-Version: 1.0.17
+Version: 1.1.0
 Release: 1
 Copyright: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.0.17.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.1.0.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 44f7d3e405a28891596547a2591aff5ec3d1c048..07d293704e107cd0ba2a417d1153fb289c76a316 100644 (file)
@@ -23,7 +23,7 @@ else
 outdir=out
 endif
 
-stepdir = $(depth)/$(stepmake)/stepmake
+stepdir = $(stepmake)/stepmake
 
 STEPMAKE_TEMPLATES := generic $(STEPMAKE_TEMPLATES) 
 LOCALSTEPMAKE_TEMPLATES:= generic $(LOCALSTEPMAKE_TEMPLATES)
index d41d58a40539ea7f17bf6cd14fcb6bfb4afd5a30..628a2a9f78165a10a6482871fc61a68f91dff099 100644 (file)
@@ -15,7 +15,7 @@ SUBDIRS = scripts buildscripts  flower lib lily mf mi2mu po debian \
 
 SCRIPTS = configure aclocal.m4
 README_FILES = BUGS DEDICATION ANNOUNCE-0.1 ANNOUNCEMENT \
- COPYING NEWS-0.1 NEWS-0.0 NEWS  TODO
+ COPYING NEWS-0.1 NEWS-1.0 NEWS-0.0 NEWS  TODO
 README_TXT_FILES = README.txt AUTHORS.txt INSTALL.txt PATCHES.txt
 IN_FILES := $(wildcard *.in)
 EXTRA_DIST_FILES = dstreamrc mudela-mode.el vimrc VERSION $(README_FILES)  $(SCRIPTS) $(IN_FILES)
index dfc37de8c9a28afbd88fa8395c2e3fdae78a066b..88c89cdeffa5232f3101df17f61bb1bbfbd0e6be 100644 (file)
@@ -2,9 +2,9 @@
 
 depth = ..
 
-STEPMAKE_TEMPLATES=metafont metapost
+STEPMAKE_TEMPLATES=metafont metapost install install-out
 
-EXTRA_DIST_FILES += TODO README feta.mp mfmp.ini
+EXTRA_DIST_FILES += TODO README feta.mp mfplain.ini
 
 
 FET_FILES = $(wildcard feta[0-9]*.mf)
@@ -19,34 +19,23 @@ ALL_GEN_FILES=$(LYTABLES) $(TEXTABLES) $(LOG_FILES) $(AFM_FILES)
 
 OUT_DIST_FILES += $(AFM_FILES)
 
-include $(depth)/make/stepmake.make 
-
-default: $(ALL_GEN_FILES)
-
-
-$(outdir)/%.afm $(outdir)/%.ly $(outdir)/%.tex $(outdir)/%.dep: $(outdir)/%.log
-       $(PYTHON) $(buildscripts)/mf-to-table.py --package=$(topdir) --outdir=$(outdir) --dep $(outdir)/$(<F:.log=.dep) --ly $(outdir)/$(<F:.log=.ly) --afm $(outdir)/$(<F:.log=.afm) --tex $(outdir)/$(<F:.log=.tex) $<
-
-
-
-TEXINSTALL=$(MAKE) INSTALLATION_OUT_DIR=$(datadir)/tex/ depth=.. INSTALLATION_OUT_FILES="$(TEXTABLES)" -f $(stepdir)/install-outfiles.sub.make $@
+#PRE_INSTALL=$(MAKE) "$(ALL_GEN_FILES)"
+INSTALLATION_DIR=$(datadir)/mf/
+INSTALLATION_FILES=$(MF_FILES)
 
-AFMINSTALL=$(MAKE) depth=.. INSTALLATION_OUT_DIR=$(datadir)/afm/ INSTALLATION_OUT_FILES="$(AFM_FILES)" -f $(stepdir)/install-outfiles.sub.make $@
+INSTALLATION_OUT_DIR=$(datadir)/tex
+INSTALLATION_OUT_FILES=$(TEXTABLES)
 
-LYINSTALL=$(MAKE) depth=.. INSTALLATION_OUT_DIR=$(datadir)/ly/ INSTALLATION_OUT_FILES="$(LYTABLES)" -f $(stepdir)/install-outfiles.sub.make $@
+INSTALLATION_OUT_DIR1=$(datadir)/afm
+INSTALLATION_OUT_FILES1=$(AFM_FILES)
 
-localinstall: $(ALL_GEN_FILES)
-       $(TEXINSTALL)
-       $(LYINSTALL)
-       $(AFMINSTALL)
+INSTALLATION_OUT_DIR2=$(datadir)/ly
+INSTALLATION_OUT_FILES2=$(LYTABLES)
 
-localuninstall:
-       $(TEXINSTALL)
-       $(LYINSTALL)
-       $(AFMINSTALL)
+include $(depth)/make/stepmake.make 
 
-INSTALLATION_DIR=$(datadir)/mf/
-INSTALLATION_FILES=$(MF_FILES)
+default: $(ALL_GEN_FILES)
 
-include $(stepdir)/installfiles.make
+$(outdir)/%.afm $(outdir)/%.ly $(outdir)/%.tex $(outdir)/%.dep: $(outdir)/%.log
+       $(PYTHON) $(buildscripts)/mf-to-table.py --package=$(topdir) --outdir=$(outdir) --dep $(outdir)/$(<F:.log=.dep) --ly $(outdir)/$(<F:.log=.ly) --afm $(outdir)/$(<F:.log=.afm) --tex $(outdir)/$(<F:.log=.tex) $<
 
index c638935f85e6125426f07a5326263bcba749aca0..27703e2686242f96df83187298b49af76a504a1d 100644 (file)
@@ -3,7 +3,7 @@
 % 
 % source file of the Feta (Font-En-Tja) pretty-but-neat music font
 % 
-% (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+% (c) 1997, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
 %          Jan Nieuwenhuizen <janneke@gnu.org>
 % 
 % these macros help create ascii logging output
index 7097d68d3cb87cb34cf092e198ffe3608e8a9753..1288d6f20d4c5f50e214d66bfc7632a85e1e8e92 100644 (file)
@@ -3,7 +3,7 @@
 % 
 % source file of LilyPond's pretty-but-neat music font
 % 
-% (c) 1997 Jan Nieuwenhuizen <janneke@gnu.org>
+% (c) 1997, 1998 Jan Nieuwenhuizen <janneke@gnu.org>
 % 
 mode_setup;
 
index 8a48d4bfc78091516d7ed27a80f6e10fa1c18efb..6b3e9890bad7a9fd6b2aa73f13863cc63acc0069 100644 (file)
@@ -3,7 +3,7 @@
 % 
 % source file of LilyPond's pretty-but-neat music font
 % 
-% (c) 1997 Jan Nieuwenhuizen <janneke@gnu.org>
+% (c) 1997, 1998 Jan Nieuwenhuizen <janneke@gnu.org>
 % & Han-Wen Nienhuys <hanwen@stack.nl>
 % 
 
index c5748c1aba4fdac3a494ab7736d1c42e95b8a3c0..60dc07118638a2199a675c7615ef65b1ab62c551 100644 (file)
@@ -4,7 +4,7 @@
 % 
 % source file of the Feta (Font-En-Tja) music font
 % 
-% (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+% (c) 1997, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
 % 
 
 font_identifier:="feta-braces16";
index 5ee256430f473a7db1dbd72810fb173ebfcaf0d1..9aae3d5379d95cddffab3de63a59f1836d8171d7 100644 (file)
@@ -3,7 +3,7 @@
 % 
 % source file of the Feta (Font-En-Tja) music font
 % 
-% (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+% (c) 1997, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
 % 
 
 font_identifier:="feta-braces20";
index 0670ea351bf72b2f89866aa45a08e56f1443666e..f3c26b669bac6454bf2f4678185ba9ae10bb3195 100644 (file)
@@ -1,6 +1,10 @@
-% eindelijk.mf
-% LilyPond's own rest(s)
-
+% feta-eindelijk.mf -- implement rest symbols
+%
+% part of LilyPond's pretty-but-neat music font
+%
+% source file of the Feta (not the Font-En-Tja) music font
+% 
+% (c) 1997, 1998 Jan Nieuwenhuizen <janneke@gnu.org>
 
 fet_begingroup("rests");
 
index 6b3bdda090b90536a7a5fd46300342bd24fbaa79..41729fe3241c18c162c2a7918318a029c26c504f 100644 (file)
@@ -4,7 +4,7 @@
 % source file of the Feta (defintively not an abbreviation for Font-En-Tja)
 % music font
 % 
-% (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+% (c) 1997, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
 % 
 
 
index cccaef43fd3536b3d81991e4b6f73bdb00bc6617..2e846acb431d9c87428f131056a3f0ba1f47bd5d 100644 (file)
@@ -1,14 +1,13 @@
-% 
 % feta-klef.mf --  implement Clefs
 % 
-% source file of the Feta (Font-En-Tja) music font
+% part of LilyPond's pretty-but-neat music font
+%
+% source file of the Feta (not the Font-En-Tja) music font
 % 
-% (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>,
+% (c) 1997, 1998 Han-Wen Nienhuys <hanwen@stack.nl>,
 % Jan Nieuwenhuizen <janneke@gnu.org>
 
 
-
-
 fet_begingroup("clefs");
 
 %
index c35ee4c2f2954f8fa109d72d43378105acf03201..66a4649ac17c7d86f3f43dcbb26422834c7758ea 100644 (file)
@@ -1,5 +1,10 @@
-% feta-nummer.mf
+% feta-nummer.mf -- implement bold Orator numerals
+%
 % part of LilyPond's pretty-but-neat music font
+%
+% source file of the Feta (not the Font-En-Tja) music font
+% 
+% (c) 1997, 1998 Jan Nieuwenhuizen <janneke@gnu.org>
 
 fet_begingroup("nummer")
 code := 47;
index 7257a45277f6bcfd8e471ed31a92c4b0714d4836..2c314efb6ea6cdf468ba7d95a0303ec9caba714c 100644 (file)
@@ -4,7 +4,7 @@
 % source file of the Feta (defintively not an abbreviation for Font-En-Tja)
 % music font
 % 
-% (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+% (c) 1997, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
 %      Jan Nieuwenhuizen <janneke@gnu.org>
 % 
 
@@ -58,6 +58,37 @@ fet_beginchar("fermata down", "dfermata", "dfermata")
        y_mirror_char;
 fet_endchar;
 
+%
+% Thumbs are used in cello music.
+% TODO : thumbs should look like the finger-font and should be placed in
+% the same way in the score.
+%
+
+fet_beginchar("Thumb", "thumb", "thumb")
+        save thin, height, width, thick;
+        height# = 5/4 width#;
+        height# = interline#;
+        thin = 1.2 stafflinethickness;
+        thick =  1.4 thin;
+        set_char_box(width#/2, width#/2, height#/2, height#/2);
+
+        penpos1(thick, 0);
+        penpos2(thin, 90);
+        z1r = (w, 0);
+        z2r = (0, h);
+        penlabels(1,2);
+        penstroke z1e{up} .. {left}z2e;
+        addto currentpicture also currentpicture xscaled -1;
+        addto currentpicture also currentpicture yscaled -1;
+
+       pickup pencircle scaled thin;
+       save x,y;
+       z3r = (0, -h);
+       z4 = (0, -2h);
+       penlabels(3,4);
+       draw z3r -- z4;
+fet_endchar;
+
 
 %
 % FIXME: rounded endings
@@ -179,6 +210,7 @@ fet_beginchar("marcato down", "dmarcato", "dmarcato")
        xy_mirror_char;
 fet_endchar;
  
+
 %
 % used in french horn music todo
 %
index e6129377281f6db605c4ed952caf87218b304e39..6d98d4dfc78be5b6170e8937346b608b53c16681 100644 (file)
@@ -3,7 +3,7 @@
 % 
 % source file of LilyPond's pretty-but-neat music font
 % 
-% (c) 1997 Jan Nieuwenhuizen <janneke@gnu.org>
+% (c) 1997, 1998 Jan Nieuwenhuizen <janneke@gnu.org>
 % & Han-Wen Nienhuys <hanwen@stack.nl>
 % 
 % see Documentation/fonts.tex
index 7da404d0c7a1d5e863c552246f3770540229da1c..b9c9a0ebbee69c6eb3111bbddcb62a98d9165502 100644 (file)
@@ -3,7 +3,7 @@
 % 
 % source file of the Feta (Font-En-Tja) music font
 % 
-% (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+% (c) 1997, 1998 Han-Wen Nienhuys <hanwen@stack.nl>
 % 
 
 
diff --git a/mf/mfmp.ini b/mf/mfmp.ini
deleted file mode 100644 (file)
index 1b0e00c..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-\input mfplain
-\input modes
-\dump
-
diff --git a/mf/mfplain.ini b/mf/mfplain.ini
new file mode 100644 (file)
index 0000000..7ad4dfd
--- /dev/null
@@ -0,0 +1,3 @@
+\input plain.mf
+\input modes.mf
+\dump mfplain
index 7e8f6f28d67d42c178a2ab3a4261636f6353e365..c95d407d334ef1cf34a5e68ca91ad58c820470ac 100644 (file)
@@ -32,52 +32,53 @@ C 27; N balls-2; B 0.00 -1512.51 3632.84 1512.51 ;
 C 28; N balls-2l; B -908.22 -275.02 4541.06 275.02 ;
 C 29; N scripts-ufermata; B -3643.77 -206.27 3643.77 3987.55 ;
 C 30; N scripts-dfermata; B -3643.77 -3987.55 3643.77 206.27 ;
-C 31; N scripts-sforzato; B -2474.99 -1375.00 2474.99 1375.00 ;
-C 32; N scripts-staccato; B -412.54 -412.54 412.54 412.54 ;
-C 33; N scripts-ustaccatissimo; B -550.05 -200.00 550.05 2750.06 ;
-C 34; N scripts-dstaccatissimo; B -550.05 -2750.06 550.05 200.00 ;
-C 35; N scripts-tenuto; B -1650.02 -192.52 1650.02 192.52 ;
-C 36; N scripts-umarcato; B -1375.00 0.00 1375.00 3025.02 ;
-C 37; N scripts-dmarcato; B -1375.00 -3025.02 1375.00 0.00 ;
-C 38; N scripts-open; B -1100.00 -1375.00 1100.00 1375.00 ;
-C 39; N scripts-stopped; B -1512.51 -1512.51 1512.51 1512.51 ;
-C 40; N scripts-upbow; B -1787.50 0.00 1787.50 5720.05 ;
-C 41; N scripts-downbow; B -2062.50 0.00 2062.50 3666.66 ;
-C 42; N scripts-reverseturn; B -3007.81 -1455.89 3007.81 1455.89 ;
-C 43; N scripts-turn; B -3007.81 -1455.89 3007.81 1455.89 ;
-C 44; N scripts-trill; B -2750.00 0.00 2750.00 6187.50 ;
-C 45; N scripts-upedalheel; B -1375.00 -1375.00 1375.00 1833.33 ;
-C 46; N scripts-dpedalheel; B -1375.00 -1833.33 1375.00 1375.00 ;
-C 47; N scripts-upedaltoe; B -1375.00 0.00 1375.00 4125.00 ;
-C 48; N scripts-dpedaltoe; B -1375.00 -4125.00 1375.00 0.00 ;
-C 49; N scripts-flageolet; B -1466.67 -1466.67 1466.67 1466.67 ;
-C 50; N scripts-trilelement; B -1833.33 -1375.00 718.64 1375.00 ;
-C 51; N scripts-prall; B -3109.31 -1375.00 3109.31 1375.00 ;
-C 52; N scripts-mordent; B -3109.31 -1375.00 3109.31 1375.00 ;
-C 53; N scripts-prallprall; B -4385.30 -1375.00 4385.30 1375.00 ;
-C 54; N scripts-prallmordent; B -4385.30 -1375.00 4385.30 1375.00 ;
-C 55; N scripts-upprall; B -4385.30 -1375.00 4385.30 1375.00 ;
-C 56; N scripts-downprall; B -4385.30 -1375.00 4385.30 1375.00 ;
-C 57; N flags-u3; B -137.51 -8428.77 3393.31 137.51 ;
-C 58; N flags-u4; B -137.51 -9803.77 3393.31 137.51 ;
-C 59; N flags-u5; B -137.51 -11866.27 3393.31 137.51 ;
-C 60; N flags-u6; B -137.51 -14616.27 3393.31 137.51 ;
-C 61; N flags-d3; B -137.51 -137.51 3755.11 8016.30 ;
-C 62; N flags-d4; B -137.51 -137.51 3755.11 8428.77 ;
-C 63; N flags-d5; B -137.51 -137.51 3755.11 10766.30 ;
-C 64; N flags-d6; B -137.51 -137.51 3755.11 12141.30 ;
-C 65; N clefs-alto; B -2750.00 -5500.00 10236.10 5500.00 ;
-C 66; N clefs-alto_change; B -2200.01 -4400.02 8188.93 4400.02 ;
-C 67; N clefs-bass; B -1375.00 -6875.00 9900.02 2750.00 ;
-C 68; N clefs-bass_change; B -1100.02 -5500.03 7920.04 2200.01 ;
-C 69; N clefs-violin; B -2396.44 -8250.00 10277.13 13750.00 ;
-C 70; N clefs-violin_change; B -2082.15 -6600.04 8056.75 11000.06 ;
-C 71; N timesig-C4/4; B -4950.01 -2750.00 4674.99 2750.00 ;
-C 72; N timesig-C2/2; B -4950.01 -3849.99 4674.99 3849.99 ;
-C 73; N timesig-old4/4; B -4812.50 -2062.50 4812.50 2062.50 ;
-C 74; N timesig-old2/2; B -4812.50 -2750.00 4812.50 2750.00 ;
-C 75; N timesig-old3/2; B -4812.50 -2062.50 4812.50 2062.50 ;
-C 76; N timesig-old6/4; B -4812.50 -3437.50 4812.50 3437.50 ;
-C 77; N timesig-old9/4; B -4812.50 -3437.50 4812.50 3437.50 ;
+C 31; N scripts-thumb; B -1100.00 -1375.00 1100.00 1375.00 ;
+C 32; N scripts-sforzato; B -2474.99 -1375.00 2474.99 1375.00 ;
+C 33; N scripts-staccato; B -412.54 -412.54 412.54 412.54 ;
+C 34; N scripts-ustaccatissimo; B -550.05 -200.00 550.05 2750.06 ;
+C 35; N scripts-dstaccatissimo; B -550.05 -2750.06 550.05 200.00 ;
+C 36; N scripts-tenuto; B -1650.02 -192.52 1650.02 192.52 ;
+C 37; N scripts-umarcato; B -1375.00 0.00 1375.00 3025.02 ;
+C 38; N scripts-dmarcato; B -1375.00 -3025.02 1375.00 0.00 ;
+C 39; N scripts-open; B -1100.00 -1375.00 1100.00 1375.00 ;
+C 40; N scripts-stopped; B -1512.51 -1512.51 1512.51 1512.51 ;
+C 41; N scripts-upbow; B -1787.50 0.00 1787.50 5720.05 ;
+C 42; N scripts-downbow; B -2062.50 0.00 2062.50 3666.66 ;
+C 43; N scripts-reverseturn; B -3007.81 -1455.89 3007.81 1455.89 ;
+C 44; N scripts-turn; B -3007.81 -1455.89 3007.81 1455.89 ;
+C 45; N scripts-trill; B -2750.00 0.00 2750.00 6187.50 ;
+C 46; N scripts-upedalheel; B -1375.00 -1375.00 1375.00 1833.33 ;
+C 47; N scripts-dpedalheel; B -1375.00 -1833.33 1375.00 1375.00 ;
+C 48; N scripts-upedaltoe; B -1375.00 0.00 1375.00 4125.00 ;
+C 49; N scripts-dpedaltoe; B -1375.00 -4125.00 1375.00 0.00 ;
+C 50; N scripts-flageolet; B -1466.67 -1466.67 1466.67 1466.67 ;
+C 51; N scripts-trilelement; B -1833.33 -1375.00 718.64 1375.00 ;
+C 52; N scripts-prall; B -3109.31 -1375.00 3109.31 1375.00 ;
+C 53; N scripts-mordent; B -3109.31 -1375.00 3109.31 1375.00 ;
+C 54; N scripts-prallprall; B -4385.30 -1375.00 4385.30 1375.00 ;
+C 55; N scripts-prallmordent; B -4385.30 -1375.00 4385.30 1375.00 ;
+C 56; N scripts-upprall; B -4385.30 -1375.00 4385.30 1375.00 ;
+C 57; N scripts-downprall; B -4385.30 -1375.00 4385.30 1375.00 ;
+C 58; N flags-u3; B -137.51 -8428.77 3393.31 137.51 ;
+C 59; N flags-u4; B -137.51 -9803.77 3393.31 137.51 ;
+C 60; N flags-u5; B -137.51 -11866.27 3393.31 137.51 ;
+C 61; N flags-u6; B -137.51 -14616.27 3393.31 137.51 ;
+C 62; N flags-d3; B -137.51 -137.51 3755.11 8016.30 ;
+C 63; N flags-d4; B -137.51 -137.51 3755.11 8428.77 ;
+C 64; N flags-d5; B -137.51 -137.51 3755.11 10766.30 ;
+C 65; N flags-d6; B -137.51 -137.51 3755.11 12141.30 ;
+C 66; N clefs-alto; B -2750.00 -5500.00 10236.10 5500.00 ;
+C 67; N clefs-alto_change; B -2200.01 -4400.02 8188.93 4400.02 ;
+C 68; N clefs-bass; B -1375.00 -6875.00 9900.02 2750.00 ;
+C 69; N clefs-bass_change; B -1100.02 -5500.03 7920.04 2200.01 ;
+C 70; N clefs-violin; B -2396.44 -8250.00 10277.13 13750.00 ;
+C 71; N clefs-violin_change; B -2082.15 -6600.04 8056.75 11000.06 ;
+C 72; N timesig-C4/4; B -4950.01 -2750.00 4674.99 2750.00 ;
+C 73; N timesig-C2/2; B -4950.01 -3849.99 4674.99 3849.99 ;
+C 74; N timesig-old4/4; B -4812.50 -2062.50 4812.50 2062.50 ;
+C 75; N timesig-old2/2; B -4812.50 -2750.00 4812.50 2750.00 ;
+C 76; N timesig-old3/2; B -4812.50 -2062.50 4812.50 2062.50 ;
+C 77; N timesig-old6/4; B -4812.50 -3437.50 4812.50 3437.50 ;
+C 78; N timesig-old9/4; B -4812.50 -3437.50 4812.50 3437.50 ;
 EndCharMetrics
 EndFontMetrics
index 7679a06b19f91a1882eba3652067d2915ed8b6d7..328de318be8e187d7e631a963f7f6133049b1902 100644 (file)
@@ -32,52 +32,53 @@ C 27; N balls-2; B 0.00 -1787.52 4293.33 1787.52 ;
 C 28; N balls-2l; B -1073.33 -325.03 5366.67 325.03 ;
 C 29; N scripts-ufermata; B -4306.27 -243.77 4306.27 4712.55 ;
 C 30; N scripts-dfermata; B -4306.27 -4712.55 4306.27 243.77 ;
-C 31; N scripts-sforzato; B -2924.99 -1625.00 2924.99 1625.00 ;
-C 32; N scripts-staccato; B -487.55 -487.55 487.55 487.55 ;
-C 33; N scripts-ustaccatissimo; B -650.05 -200.00 650.05 3250.06 ;
-C 34; N scripts-dstaccatissimo; B -650.05 -3250.06 650.05 200.00 ;
-C 35; N scripts-tenuto; B -1950.03 -227.52 1950.03 227.52 ;
-C 36; N scripts-umarcato; B -1625.00 0.00 1625.00 3575.03 ;
-C 37; N scripts-dmarcato; B -1625.00 -3575.03 1625.00 0.00 ;
-C 38; N scripts-open; B -1300.00 -1625.00 1300.00 1625.00 ;
-C 39; N scripts-stopped; B -1787.52 -1787.52 1787.52 1787.52 ;
-C 40; N scripts-upbow; B -2112.50 0.00 2112.50 6760.04 ;
-C 41; N scripts-downbow; B -2437.50 0.00 2437.50 4333.31 ;
-C 42; N scripts-reverseturn; B -3554.69 -1720.60 3554.69 1720.60 ;
-C 43; N scripts-turn; B -3554.69 -1720.60 3554.69 1720.60 ;
-C 44; N scripts-trill; B -3250.00 0.00 3250.00 7312.50 ;
-C 45; N scripts-upedalheel; B -1625.00 -1625.00 1625.00 2166.67 ;
-C 46; N scripts-dpedalheel; B -1625.00 -2166.67 1625.00 1625.00 ;
-C 47; N scripts-upedaltoe; B -1625.00 0.00 1625.00 4875.00 ;
-C 48; N scripts-dpedaltoe; B -1625.00 -4875.00 1625.00 0.00 ;
-C 49; N scripts-flageolet; B -1733.34 -1733.34 1733.34 1733.34 ;
-C 50; N scripts-trilelement; B -2166.67 -1625.00 849.30 1625.00 ;
-C 51; N scripts-prall; B -3674.65 -1625.00 3674.65 1625.00 ;
-C 52; N scripts-mordent; B -3674.65 -1625.00 3674.65 1625.00 ;
-C 53; N scripts-prallprall; B -5182.63 -1625.00 5182.63 1625.00 ;
-C 54; N scripts-prallmordent; B -5182.63 -1625.00 5182.63 1625.00 ;
-C 55; N scripts-upprall; B -5182.63 -1625.00 5182.63 1625.00 ;
-C 56; N scripts-downprall; B -5182.63 -1625.00 5182.63 1625.00 ;
-C 57; N flags-u3; B -162.52 -9961.27 4010.27 162.52 ;
-C 58; N flags-u4; B -162.52 -11586.27 4010.27 162.52 ;
-C 59; N flags-u5; B -162.52 -14023.77 4010.27 162.52 ;
-C 60; N flags-u6; B -162.52 -17273.77 4010.27 162.52 ;
-C 61; N flags-d3; B -162.52 -162.52 4437.84 9473.80 ;
-C 62; N flags-d4; B -162.52 -162.52 4437.84 9961.27 ;
-C 63; N flags-d5; B -162.52 -162.52 4437.84 12723.80 ;
-C 64; N flags-d6; B -162.52 -162.52 4437.84 14348.80 ;
-C 65; N clefs-alto; B -3250.00 -6500.00 12097.24 6500.00 ;
-C 66; N clefs-alto_change; B -2600.00 -5200.01 9677.81 5200.01 ;
-C 67; N clefs-bass; B -1625.00 -8125.00 11700.03 3250.00 ;
-C 68; N clefs-bass_change; B -1300.02 -6500.02 9360.02 2600.00 ;
-C 69; N clefs-violin; B -2832.14 -9750.00 12145.70 16250.00 ;
-C 70; N clefs-violin_change; B -2460.72 -7800.02 9521.58 13000.03 ;
-C 71; N timesig-C4/4; B -5850.00 -3250.00 5525.00 3250.00 ;
-C 72; N timesig-C2/2; B -5850.00 -4549.99 5525.00 4549.99 ;
-C 73; N timesig-old4/4; B -5687.50 -2437.50 5687.50 2437.50 ;
-C 74; N timesig-old2/2; B -5687.50 -3250.00 5687.50 3250.00 ;
-C 75; N timesig-old3/2; B -5687.50 -2437.50 5687.50 2437.50 ;
-C 76; N timesig-old6/4; B -5687.50 -4062.50 5687.50 4062.50 ;
-C 77; N timesig-old9/4; B -5687.50 -4062.50 5687.50 4062.50 ;
+C 31; N scripts-thumb; B -1300.00 -1625.00 1300.00 1625.00 ;
+C 32; N scripts-sforzato; B -2924.99 -1625.00 2924.99 1625.00 ;
+C 33; N scripts-staccato; B -487.55 -487.55 487.55 487.55 ;
+C 34; N scripts-ustaccatissimo; B -650.05 -200.00 650.05 3250.06 ;
+C 35; N scripts-dstaccatissimo; B -650.05 -3250.06 650.05 200.00 ;
+C 36; N scripts-tenuto; B -1950.03 -227.52 1950.03 227.52 ;
+C 37; N scripts-umarcato; B -1625.00 0.00 1625.00 3575.03 ;
+C 38; N scripts-dmarcato; B -1625.00 -3575.03 1625.00 0.00 ;
+C 39; N scripts-open; B -1300.00 -1625.00 1300.00 1625.00 ;
+C 40; N scripts-stopped; B -1787.52 -1787.52 1787.52 1787.52 ;
+C 41; N scripts-upbow; B -2112.50 0.00 2112.50 6760.04 ;
+C 42; N scripts-downbow; B -2437.50 0.00 2437.50 4333.31 ;
+C 43; N scripts-reverseturn; B -3554.69 -1720.60 3554.69 1720.60 ;
+C 44; N scripts-turn; B -3554.69 -1720.60 3554.69 1720.60 ;
+C 45; N scripts-trill; B -3250.00 0.00 3250.00 7312.50 ;
+C 46; N scripts-upedalheel; B -1625.00 -1625.00 1625.00 2166.67 ;
+C 47; N scripts-dpedalheel; B -1625.00 -2166.67 1625.00 1625.00 ;
+C 48; N scripts-upedaltoe; B -1625.00 0.00 1625.00 4875.00 ;
+C 49; N scripts-dpedaltoe; B -1625.00 -4875.00 1625.00 0.00 ;
+C 50; N scripts-flageolet; B -1733.34 -1733.34 1733.34 1733.34 ;
+C 51; N scripts-trilelement; B -2166.67 -1625.00 849.30 1625.00 ;
+C 52; N scripts-prall; B -3674.65 -1625.00 3674.65 1625.00 ;
+C 53; N scripts-mordent; B -3674.65 -1625.00 3674.65 1625.00 ;
+C 54; N scripts-prallprall; B -5182.63 -1625.00 5182.63 1625.00 ;
+C 55; N scripts-prallmordent; B -5182.63 -1625.00 5182.63 1625.00 ;
+C 56; N scripts-upprall; B -5182.63 -1625.00 5182.63 1625.00 ;
+C 57; N scripts-downprall; B -5182.63 -1625.00 5182.63 1625.00 ;
+C 58; N flags-u3; B -162.52 -9961.27 4010.27 162.52 ;
+C 59; N flags-u4; B -162.52 -11586.27 4010.27 162.52 ;
+C 60; N flags-u5; B -162.52 -14023.77 4010.27 162.52 ;
+C 61; N flags-u6; B -162.52 -17273.77 4010.27 162.52 ;
+C 62; N flags-d3; B -162.52 -162.52 4437.84 9473.80 ;
+C 63; N flags-d4; B -162.52 -162.52 4437.84 9961.27 ;
+C 64; N flags-d5; B -162.52 -162.52 4437.84 12723.80 ;
+C 65; N flags-d6; B -162.52 -162.52 4437.84 14348.80 ;
+C 66; N clefs-alto; B -3250.00 -6500.00 12097.24 6500.00 ;
+C 67; N clefs-alto_change; B -2600.00 -5200.01 9677.81 5200.01 ;
+C 68; N clefs-bass; B -1625.00 -8125.00 11700.03 3250.00 ;
+C 69; N clefs-bass_change; B -1300.02 -6500.02 9360.02 2600.00 ;
+C 70; N clefs-violin; B -2832.14 -9750.00 12145.70 16250.00 ;
+C 71; N clefs-violin_change; B -2460.72 -7800.02 9521.58 13000.03 ;
+C 72; N timesig-C4/4; B -5850.00 -3250.00 5525.00 3250.00 ;
+C 73; N timesig-C2/2; B -5850.00 -4549.99 5525.00 4549.99 ;
+C 74; N timesig-old4/4; B -5687.50 -2437.50 5687.50 2437.50 ;
+C 75; N timesig-old2/2; B -5687.50 -3250.00 5687.50 3250.00 ;
+C 76; N timesig-old3/2; B -5687.50 -2437.50 5687.50 2437.50 ;
+C 77; N timesig-old6/4; B -5687.50 -4062.50 5687.50 4062.50 ;
+C 78; N timesig-old9/4; B -5687.50 -4062.50 5687.50 4062.50 ;
 EndCharMetrics
 EndFontMetrics
index f1562888fd34784293f30d831739ef068724c064..3bf340009e6b0e67bfcb34fb87982eccb95c10d2 100644 (file)
@@ -32,52 +32,53 @@ C 27; N balls-2; B 0.00 -2200.01 5284.09 2200.01 ;
 C 28; N balls-2l; B -1321.03 -400.02 6605.12 400.02 ;
 C 29; N scripts-ufermata; B -5300.02 -300.02 5300.02 5800.05 ;
 C 30; N scripts-dfermata; B -5300.02 -5800.05 5300.02 300.02 ;
-C 31; N scripts-sforzato; B -3599.98 -2000.00 3599.98 2000.00 ;
-C 32; N scripts-staccato; B -600.04 -600.04 600.04 600.04 ;
-C 33; N scripts-ustaccatissimo; B -800.05 -200.00 800.05 4000.06 ;
-C 34; N scripts-dstaccatissimo; B -800.05 -4000.06 800.05 200.00 ;
-C 35; N scripts-tenuto; B -2400.02 -280.01 2400.02 280.01 ;
-C 36; N scripts-umarcato; B -2000.00 0.00 2000.00 4400.02 ;
-C 37; N scripts-dmarcato; B -2000.00 -4400.02 2000.00 0.00 ;
-C 38; N scripts-open; B -1600.00 -2000.00 1600.00 2000.00 ;
-C 39; N scripts-stopped; B -2200.01 -2200.01 2200.01 2200.01 ;
-C 40; N scripts-upbow; B -2600.00 0.00 2600.00 8320.05 ;
-C 41; N scripts-downbow; B -3000.00 0.00 3000.00 5333.31 ;
-C 42; N scripts-reverseturn; B -4375.00 -2117.65 4375.00 2117.65 ;
-C 43; N scripts-turn; B -4375.00 -2117.65 4375.00 2117.65 ;
-C 44; N scripts-trill; B -4000.00 0.00 4000.00 9000.00 ;
-C 45; N scripts-upedalheel; B -2000.00 -2000.00 2000.00 2666.67 ;
-C 46; N scripts-dpedalheel; B -2000.00 -2666.67 2000.00 2000.00 ;
-C 47; N scripts-upedaltoe; B -2000.00 0.00 2000.00 6000.00 ;
-C 48; N scripts-dpedaltoe; B -2000.00 -6000.00 2000.00 0.00 ;
-C 49; N scripts-flageolet; B -2133.33 -2133.33 2133.33 2133.33 ;
-C 50; N scripts-trilelement; B -2666.67 -2000.00 1045.30 2000.00 ;
-C 51; N scripts-prall; B -4522.66 -2000.00 4522.66 2000.00 ;
-C 52; N scripts-mordent; B -4522.66 -2000.00 4522.66 2000.00 ;
-C 53; N scripts-prallprall; B -6378.65 -2000.00 6378.65 2000.00 ;
-C 54; N scripts-prallmordent; B -6378.65 -2000.00 6378.65 2000.00 ;
-C 55; N scripts-upprall; B -6378.65 -2000.00 6378.65 2000.00 ;
-C 56; N scripts-downprall; B -6378.65 -2000.00 6378.65 2000.00 ;
-C 57; N flags-u3; B -200.01 -12260.03 4935.68 200.01 ;
-C 58; N flags-u4; B -200.01 -14260.03 4935.68 200.01 ;
-C 59; N flags-u5; B -200.01 -17260.03 4935.68 200.01 ;
-C 60; N flags-u6; B -200.01 -21260.03 4935.68 200.01 ;
-C 61; N flags-d3; B -200.01 -200.01 5461.91 11660.05 ;
-C 62; N flags-d4; B -200.01 -200.01 5461.91 12260.03 ;
-C 63; N flags-d5; B -200.01 -200.01 5461.91 15660.05 ;
-C 64; N flags-d6; B -200.01 -200.01 5461.91 17660.05 ;
-C 65; N clefs-alto; B -4000.00 -8000.00 14888.90 8000.00 ;
-C 66; N clefs-alto_change; B -3200.01 -6400.02 11911.18 6400.02 ;
-C 67; N clefs-bass; B -2000.00 -10000.00 14400.02 4000.00 ;
-C 68; N clefs-bass_change; B -1600.04 -8000.03 11520.03 3200.01 ;
-C 69; N clefs-violin; B -3485.72 -12000.00 14948.55 20000.00 ;
-C 70; N clefs-violin_change; B -3028.58 -9600.04 11718.89 16000.06 ;
-C 71; N timesig-C4/4; B -7200.01 -4000.00 6799.99 4000.00 ;
-C 72; N timesig-C2/2; B -7200.01 -5599.98 6799.99 5599.98 ;
-C 73; N timesig-old4/4; B -7000.00 -3000.00 7000.00 3000.00 ;
-C 74; N timesig-old2/2; B -7000.00 -4000.00 7000.00 4000.00 ;
-C 75; N timesig-old3/2; B -7000.00 -3000.00 7000.00 3000.00 ;
-C 76; N timesig-old6/4; B -7000.00 -5000.00 7000.00 5000.00 ;
-C 77; N timesig-old9/4; B -7000.00 -5000.00 7000.00 5000.00 ;
+C 31; N scripts-thumb; B -1600.00 -2000.00 1600.00 2000.00 ;
+C 32; N scripts-sforzato; B -3599.98 -2000.00 3599.98 2000.00 ;
+C 33; N scripts-staccato; B -600.04 -600.04 600.04 600.04 ;
+C 34; N scripts-ustaccatissimo; B -800.05 -200.00 800.05 4000.06 ;
+C 35; N scripts-dstaccatissimo; B -800.05 -4000.06 800.05 200.00 ;
+C 36; N scripts-tenuto; B -2400.02 -280.01 2400.02 280.01 ;
+C 37; N scripts-umarcato; B -2000.00 0.00 2000.00 4400.02 ;
+C 38; N scripts-dmarcato; B -2000.00 -4400.02 2000.00 0.00 ;
+C 39; N scripts-open; B -1600.00 -2000.00 1600.00 2000.00 ;
+C 40; N scripts-stopped; B -2200.01 -2200.01 2200.01 2200.01 ;
+C 41; N scripts-upbow; B -2600.00 0.00 2600.00 8320.05 ;
+C 42; N scripts-downbow; B -3000.00 0.00 3000.00 5333.31 ;
+C 43; N scripts-reverseturn; B -4375.00 -2117.65 4375.00 2117.65 ;
+C 44; N scripts-turn; B -4375.00 -2117.65 4375.00 2117.65 ;
+C 45; N scripts-trill; B -4000.00 0.00 4000.00 9000.00 ;
+C 46; N scripts-upedalheel; B -2000.00 -2000.00 2000.00 2666.67 ;
+C 47; N scripts-dpedalheel; B -2000.00 -2666.67 2000.00 2000.00 ;
+C 48; N scripts-upedaltoe; B -2000.00 0.00 2000.00 6000.00 ;
+C 49; N scripts-dpedaltoe; B -2000.00 -6000.00 2000.00 0.00 ;
+C 50; N scripts-flageolet; B -2133.33 -2133.33 2133.33 2133.33 ;
+C 51; N scripts-trilelement; B -2666.67 -2000.00 1045.30 2000.00 ;
+C 52; N scripts-prall; B -4522.66 -2000.00 4522.66 2000.00 ;
+C 53; N scripts-mordent; B -4522.66 -2000.00 4522.66 2000.00 ;
+C 54; N scripts-prallprall; B -6378.65 -2000.00 6378.65 2000.00 ;
+C 55; N scripts-prallmordent; B -6378.65 -2000.00 6378.65 2000.00 ;
+C 56; N scripts-upprall; B -6378.65 -2000.00 6378.65 2000.00 ;
+C 57; N scripts-downprall; B -6378.65 -2000.00 6378.65 2000.00 ;
+C 58; N flags-u3; B -200.01 -12260.03 4935.68 200.01 ;
+C 59; N flags-u4; B -200.01 -14260.03 4935.68 200.01 ;
+C 60; N flags-u5; B -200.01 -17260.03 4935.68 200.01 ;
+C 61; N flags-u6; B -200.01 -21260.03 4935.68 200.01 ;
+C 62; N flags-d3; B -200.01 -200.01 5461.91 11660.05 ;
+C 63; N flags-d4; B -200.01 -200.01 5461.91 12260.03 ;
+C 64; N flags-d5; B -200.01 -200.01 5461.91 15660.05 ;
+C 65; N flags-d6; B -200.01 -200.01 5461.91 17660.05 ;
+C 66; N clefs-alto; B -4000.00 -8000.00 14888.90 8000.00 ;
+C 67; N clefs-alto_change; B -3200.01 -6400.02 11911.18 6400.02 ;
+C 68; N clefs-bass; B -2000.00 -10000.00 14400.02 4000.00 ;
+C 69; N clefs-bass_change; B -1600.04 -8000.03 11520.03 3200.01 ;
+C 70; N clefs-violin; B -3485.72 -12000.00 14948.55 20000.00 ;
+C 71; N clefs-violin_change; B -3028.58 -9600.04 11718.89 16000.06 ;
+C 72; N timesig-C4/4; B -7200.01 -4000.00 6799.99 4000.00 ;
+C 73; N timesig-C2/2; B -7200.01 -5599.98 6799.99 5599.98 ;
+C 74; N timesig-old4/4; B -7000.00 -3000.00 7000.00 3000.00 ;
+C 75; N timesig-old2/2; B -7000.00 -4000.00 7000.00 4000.00 ;
+C 76; N timesig-old3/2; B -7000.00 -3000.00 7000.00 3000.00 ;
+C 77; N timesig-old6/4; B -7000.00 -5000.00 7000.00 5000.00 ;
+C 78; N timesig-old9/4; B -7000.00 -5000.00 7000.00 5000.00 ;
 EndCharMetrics
 EndFontMetrics
index e1f742fdbd9877dd7aefaa43acd9c5ff7e119473..c3eb6c4ba8ece00112add50a9624b6c20c5a224a 100644 (file)
@@ -32,52 +32,53 @@ C 27; N balls-2; B 0.00 -2612.52 6274.89 2612.52 ;
 C 28; N balls-2l; B -1568.73 -475.04 7843.61 475.04 ;
 C 29; N scripts-ufermata; B -6293.78 -356.28 6293.78 6887.57 ;
 C 30; N scripts-dfermata; B -6293.78 -6887.57 6293.78 356.28 ;
-C 31; N scripts-sforzato; B -4274.98 -2375.00 4274.98 2375.00 ;
-C 32; N scripts-staccato; B -712.55 -712.55 712.55 712.55 ;
-C 33; N scripts-ustaccatissimo; B -950.07 -200.00 950.07 4750.09 ;
-C 34; N scripts-dstaccatissimo; B -950.07 -4750.09 950.07 200.00 ;
-C 35; N scripts-tenuto; B -2850.04 -332.53 2850.04 332.53 ;
-C 36; N scripts-umarcato; B -2375.00 0.00 2375.00 5225.04 ;
-C 37; N scripts-dmarcato; B -2375.00 -5225.04 2375.00 0.00 ;
-C 38; N scripts-open; B -1900.01 -2375.00 1900.01 2375.00 ;
-C 39; N scripts-stopped; B -2612.52 -2612.52 2612.52 2612.52 ;
-C 40; N scripts-upbow; B -3087.51 0.00 3087.51 9880.07 ;
-C 41; N scripts-downbow; B -3562.50 0.00 3562.50 6333.31 ;
-C 42; N scripts-reverseturn; B -5195.31 -2514.71 5195.31 2514.71 ;
-C 43; N scripts-turn; B -5195.31 -2514.71 5195.31 2514.71 ;
-C 44; N scripts-trill; B -4750.00 0.00 4750.00 10687.50 ;
-C 45; N scripts-upedalheel; B -2375.00 -2375.00 2375.00 3166.67 ;
-C 46; N scripts-dpedalheel; B -2375.00 -3166.67 2375.00 2375.00 ;
-C 47; N scripts-upedaltoe; B -2375.00 0.00 2375.00 7125.00 ;
-C 48; N scripts-dpedaltoe; B -2375.00 -7125.00 2375.00 0.00 ;
-C 49; N scripts-flageolet; B -2533.34 -2533.34 2533.34 2533.34 ;
-C 50; N scripts-trilelement; B -3166.67 -2375.00 1241.30 2375.00 ;
-C 51; N scripts-prall; B -5370.65 -2375.00 5370.65 2375.00 ;
-C 52; N scripts-mordent; B -5370.65 -2375.00 5370.65 2375.00 ;
-C 53; N scripts-prallprall; B -7574.63 -2375.00 7574.63 2375.00 ;
-C 54; N scripts-prallmordent; B -7574.63 -2375.00 7574.63 2375.00 ;
-C 55; N scripts-upprall; B -7574.63 -2375.00 7574.63 2375.00 ;
-C 56; N scripts-downprall; B -7574.63 -2375.00 7574.63 2375.00 ;
-C 57; N flags-u3; B -237.52 -14558.78 5861.15 237.52 ;
-C 58; N flags-u4; B -237.52 -16933.78 5861.15 237.52 ;
-C 59; N flags-u5; B -237.52 -20496.28 5861.15 237.52 ;
-C 60; N flags-u6; B -237.52 -25246.28 5861.15 237.52 ;
-C 61; N flags-d3; B -237.52 -237.52 6486.07 13846.31 ;
-C 62; N flags-d4; B -237.52 -237.52 6486.07 14558.78 ;
-C 63; N flags-d5; B -237.52 -237.52 6486.07 18596.31 ;
-C 64; N flags-d6; B -237.52 -237.52 6486.07 20971.31 ;
-C 65; N clefs-alto; B -4750.00 -9500.00 17680.59 9500.00 ;
-C 66; N clefs-alto_change; B -3800.02 -7600.04 14144.50 7600.04 ;
-C 67; N clefs-bass; B -2375.00 -11875.00 17100.04 4750.00 ;
-C 68; N clefs-bass_change; B -1900.04 -9500.05 13680.05 3800.02 ;
-C 69; N clefs-violin; B -4139.30 -14250.00 17751.40 23750.00 ;
-C 70; N clefs-violin_change; B -3596.45 -11400.05 13916.18 19000.09 ;
-C 71; N timesig-C4/4; B -8550.02 -4750.00 8074.98 4750.00 ;
-C 72; N timesig-C2/2; B -8550.02 -6649.98 8074.98 6649.98 ;
-C 73; N timesig-old4/4; B -8312.50 -3562.50 8312.50 3562.50 ;
-C 74; N timesig-old2/2; B -8312.50 -4750.00 8312.50 4750.00 ;
-C 75; N timesig-old3/2; B -8312.50 -3562.50 8312.50 3562.50 ;
-C 76; N timesig-old6/4; B -8312.50 -5937.50 8312.50 5937.50 ;
-C 77; N timesig-old9/4; B -8312.50 -5937.50 8312.50 5937.50 ;
+C 31; N scripts-thumb; B -1900.01 -2375.00 1900.01 2375.00 ;
+C 32; N scripts-sforzato; B -4274.98 -2375.00 4274.98 2375.00 ;
+C 33; N scripts-staccato; B -712.55 -712.55 712.55 712.55 ;
+C 34; N scripts-ustaccatissimo; B -950.07 -200.00 950.07 4750.09 ;
+C 35; N scripts-dstaccatissimo; B -950.07 -4750.09 950.07 200.00 ;
+C 36; N scripts-tenuto; B -2850.04 -332.53 2850.04 332.53 ;
+C 37; N scripts-umarcato; B -2375.00 0.00 2375.00 5225.04 ;
+C 38; N scripts-dmarcato; B -2375.00 -5225.04 2375.00 0.00 ;
+C 39; N scripts-open; B -1900.01 -2375.00 1900.01 2375.00 ;
+C 40; N scripts-stopped; B -2612.52 -2612.52 2612.52 2612.52 ;
+C 41; N scripts-upbow; B -3087.51 0.00 3087.51 9880.07 ;
+C 42; N scripts-downbow; B -3562.50 0.00 3562.50 6333.31 ;
+C 43; N scripts-reverseturn; B -5195.31 -2514.71 5195.31 2514.71 ;
+C 44; N scripts-turn; B -5195.31 -2514.71 5195.31 2514.71 ;
+C 45; N scripts-trill; B -4750.00 0.00 4750.00 10687.50 ;
+C 46; N scripts-upedalheel; B -2375.00 -2375.00 2375.00 3166.67 ;
+C 47; N scripts-dpedalheel; B -2375.00 -3166.67 2375.00 2375.00 ;
+C 48; N scripts-upedaltoe; B -2375.00 0.00 2375.00 7125.00 ;
+C 49; N scripts-dpedaltoe; B -2375.00 -7125.00 2375.00 0.00 ;
+C 50; N scripts-flageolet; B -2533.34 -2533.34 2533.34 2533.34 ;
+C 51; N scripts-trilelement; B -3166.67 -2375.00 1241.30 2375.00 ;
+C 52; N scripts-prall; B -5370.65 -2375.00 5370.65 2375.00 ;
+C 53; N scripts-mordent; B -5370.65 -2375.00 5370.65 2375.00 ;
+C 54; N scripts-prallprall; B -7574.63 -2375.00 7574.63 2375.00 ;
+C 55; N scripts-prallmordent; B -7574.63 -2375.00 7574.63 2375.00 ;
+C 56; N scripts-upprall; B -7574.63 -2375.00 7574.63 2375.00 ;
+C 57; N scripts-downprall; B -7574.63 -2375.00 7574.63 2375.00 ;
+C 58; N flags-u3; B -237.52 -14558.78 5861.15 237.52 ;
+C 59; N flags-u4; B -237.52 -16933.78 5861.15 237.52 ;
+C 60; N flags-u5; B -237.52 -20496.28 5861.15 237.52 ;
+C 61; N flags-u6; B -237.52 -25246.28 5861.15 237.52 ;
+C 62; N flags-d3; B -237.52 -237.52 6486.07 13846.31 ;
+C 63; N flags-d4; B -237.52 -237.52 6486.07 14558.78 ;
+C 64; N flags-d5; B -237.52 -237.52 6486.07 18596.31 ;
+C 65; N flags-d6; B -237.52 -237.52 6486.07 20971.31 ;
+C 66; N clefs-alto; B -4750.00 -9500.00 17680.59 9500.00 ;
+C 67; N clefs-alto_change; B -3800.02 -7600.04 14144.50 7600.04 ;
+C 68; N clefs-bass; B -2375.00 -11875.00 17100.04 4750.00 ;
+C 69; N clefs-bass_change; B -1900.04 -9500.05 13680.05 3800.02 ;
+C 70; N clefs-violin; B -4139.30 -14250.00 17751.40 23750.00 ;
+C 71; N clefs-violin_change; B -3596.45 -11400.05 13916.18 19000.09 ;
+C 72; N timesig-C4/4; B -8550.02 -4750.00 8074.98 4750.00 ;
+C 73; N timesig-C2/2; B -8550.02 -6649.98 8074.98 6649.98 ;
+C 74; N timesig-old4/4; B -8312.50 -3562.50 8312.50 3562.50 ;
+C 75; N timesig-old2/2; B -8312.50 -4750.00 8312.50 4750.00 ;
+C 76; N timesig-old3/2; B -8312.50 -3562.50 8312.50 3562.50 ;
+C 77; N timesig-old6/4; B -8312.50 -5937.50 8312.50 5937.50 ;
+C 78; N timesig-old9/4; B -8312.50 -5937.50 8312.50 5937.50 ;
 EndCharMetrics
 EndFontMetrics
index 7b7bb8be82e0587b2f2ffd57141832f8935c68d6..ce54077bb99fcf0f1aadd51e711c6e9c960200b6 100644 (file)
@@ -32,52 +32,53 @@ C 27; N balls-2; B 0.00 -2750.02 6605.15 2750.02 ;
 C 28; N balls-2l; B -1651.29 -500.03 8256.44 500.03 ;
 C 29; N scripts-ufermata; B -6625.03 -375.03 6625.03 7250.06 ;
 C 30; N scripts-dfermata; B -6625.03 -7250.06 6625.03 375.03 ;
-C 31; N scripts-sforzato; B -4499.97 -2500.00 4499.97 2500.00 ;
-C 32; N scripts-staccato; B -750.05 -750.05 750.05 750.05 ;
-C 33; N scripts-ustaccatissimo; B -1000.06 -200.00 1000.06 5000.08 ;
-C 34; N scripts-dstaccatissimo; B -1000.06 -5000.08 1000.06 200.00 ;
-C 35; N scripts-tenuto; B -3000.03 -350.02 3000.03 350.02 ;
-C 36; N scripts-umarcato; B -2500.00 0.00 2500.00 5500.03 ;
-C 37; N scripts-dmarcato; B -2500.00 -5500.03 2500.00 0.00 ;
-C 38; N scripts-open; B -2000.00 -2500.00 2000.00 2500.00 ;
-C 39; N scripts-stopped; B -2750.02 -2750.02 2750.02 2750.02 ;
-C 40; N scripts-upbow; B -3250.02 0.00 3250.02 10400.07 ;
-C 41; N scripts-downbow; B -3750.00 0.00 3750.00 6666.64 ;
-C 42; N scripts-reverseturn; B -5468.75 -2647.06 5468.75 2647.06 ;
-C 43; N scripts-turn; B -5468.75 -2647.06 5468.75 2647.06 ;
-C 44; N scripts-trill; B -5000.00 0.00 5000.00 11250.00 ;
-C 45; N scripts-upedalheel; B -2500.00 -2500.00 2500.00 3333.33 ;
-C 46; N scripts-dpedalheel; B -2500.00 -3333.33 2500.00 2500.00 ;
-C 47; N scripts-upedaltoe; B -2500.00 0.00 2500.00 7500.00 ;
-C 48; N scripts-dpedaltoe; B -2500.00 -7500.00 2500.00 0.00 ;
-C 49; N scripts-flageolet; B -2666.67 -2666.67 2666.67 2666.67 ;
-C 50; N scripts-trilelement; B -3333.33 -2500.00 1306.64 2500.00 ;
-C 51; N scripts-prall; B -5653.30 -2500.00 5653.30 2500.00 ;
-C 52; N scripts-mordent; B -5653.30 -2500.00 5653.30 2500.00 ;
-C 53; N scripts-prallprall; B -7973.28 -2500.00 7973.28 2500.00 ;
-C 54; N scripts-prallmordent; B -7973.28 -2500.00 7973.28 2500.00 ;
-C 55; N scripts-upprall; B -7973.28 -2500.00 7973.28 2500.00 ;
-C 56; N scripts-downprall; B -7973.28 -2500.00 7973.28 2500.00 ;
-C 57; N flags-u3; B -250.02 -15325.03 6169.62 250.02 ;
-C 58; N flags-u4; B -250.02 -17825.03 6169.62 250.02 ;
-C 59; N flags-u5; B -250.02 -21575.03 6169.62 250.02 ;
-C 60; N flags-u6; B -250.02 -26575.03 6169.62 250.02 ;
-C 61; N flags-d3; B -250.02 -250.02 6827.44 14575.06 ;
-C 62; N flags-d4; B -250.02 -250.02 6827.44 15325.03 ;
-C 63; N flags-d5; B -250.02 -250.02 6827.44 19575.06 ;
-C 64; N flags-d6; B -250.02 -250.02 6827.44 22075.06 ;
-C 65; N clefs-alto; B -5000.00 -10000.00 18611.10 10000.00 ;
-C 66; N clefs-alto_change; B -4000.02 -8000.03 14888.92 8000.03 ;
-C 67; N clefs-bass; B -2500.00 -12500.00 18000.03 5000.00 ;
-C 68; N clefs-bass_change; B -2000.05 -10000.05 14400.04 4000.02 ;
-C 69; N clefs-violin; B -4357.15 -15000.00 18685.68 25000.00 ;
-C 70; N clefs-violin_change; B -3785.74 -12000.05 14648.60 20000.08 ;
-C 71; N timesig-C4/4; B -9000.02 -5000.00 8499.98 5000.00 ;
-C 72; N timesig-C2/2; B -9000.02 -6999.97 8499.98 6999.97 ;
-C 73; N timesig-old4/4; B -8750.00 -3750.00 8750.00 3750.00 ;
-C 74; N timesig-old2/2; B -8750.00 -5000.00 8750.00 5000.00 ;
-C 75; N timesig-old3/2; B -8750.00 -3750.00 8750.00 3750.00 ;
-C 76; N timesig-old6/4; B -8750.00 -6250.00 8750.00 6250.00 ;
-C 77; N timesig-old9/4; B -8750.00 -6250.00 8750.00 6250.00 ;
+C 31; N scripts-thumb; B -2000.00 -2500.00 2000.00 2500.00 ;
+C 32; N scripts-sforzato; B -4499.97 -2500.00 4499.97 2500.00 ;
+C 33; N scripts-staccato; B -750.05 -750.05 750.05 750.05 ;
+C 34; N scripts-ustaccatissimo; B -1000.06 -200.00 1000.06 5000.08 ;
+C 35; N scripts-dstaccatissimo; B -1000.06 -5000.08 1000.06 200.00 ;
+C 36; N scripts-tenuto; B -3000.03 -350.02 3000.03 350.02 ;
+C 37; N scripts-umarcato; B -2500.00 0.00 2500.00 5500.03 ;
+C 38; N scripts-dmarcato; B -2500.00 -5500.03 2500.00 0.00 ;
+C 39; N scripts-open; B -2000.00 -2500.00 2000.00 2500.00 ;
+C 40; N scripts-stopped; B -2750.02 -2750.02 2750.02 2750.02 ;
+C 41; N scripts-upbow; B -3250.02 0.00 3250.02 10400.07 ;
+C 42; N scripts-downbow; B -3750.00 0.00 3750.00 6666.64 ;
+C 43; N scripts-reverseturn; B -5468.75 -2647.06 5468.75 2647.06 ;
+C 44; N scripts-turn; B -5468.75 -2647.06 5468.75 2647.06 ;
+C 45; N scripts-trill; B -5000.00 0.00 5000.00 11250.00 ;
+C 46; N scripts-upedalheel; B -2500.00 -2500.00 2500.00 3333.33 ;
+C 47; N scripts-dpedalheel; B -2500.00 -3333.33 2500.00 2500.00 ;
+C 48; N scripts-upedaltoe; B -2500.00 0.00 2500.00 7500.00 ;
+C 49; N scripts-dpedaltoe; B -2500.00 -7500.00 2500.00 0.00 ;
+C 50; N scripts-flageolet; B -2666.67 -2666.67 2666.67 2666.67 ;
+C 51; N scripts-trilelement; B -3333.33 -2500.00 1306.64 2500.00 ;
+C 52; N scripts-prall; B -5653.30 -2500.00 5653.30 2500.00 ;
+C 53; N scripts-mordent; B -5653.30 -2500.00 5653.30 2500.00 ;
+C 54; N scripts-prallprall; B -7973.28 -2500.00 7973.28 2500.00 ;
+C 55; N scripts-prallmordent; B -7973.28 -2500.00 7973.28 2500.00 ;
+C 56; N scripts-upprall; B -7973.28 -2500.00 7973.28 2500.00 ;
+C 57; N scripts-downprall; B -7973.28 -2500.00 7973.28 2500.00 ;
+C 58; N flags-u3; B -250.02 -15325.03 6169.62 250.02 ;
+C 59; N flags-u4; B -250.02 -17825.03 6169.62 250.02 ;
+C 60; N flags-u5; B -250.02 -21575.03 6169.62 250.02 ;
+C 61; N flags-u6; B -250.02 -26575.03 6169.62 250.02 ;
+C 62; N flags-d3; B -250.02 -250.02 6827.44 14575.06 ;
+C 63; N flags-d4; B -250.02 -250.02 6827.44 15325.03 ;
+C 64; N flags-d5; B -250.02 -250.02 6827.44 19575.06 ;
+C 65; N flags-d6; B -250.02 -250.02 6827.44 22075.06 ;
+C 66; N clefs-alto; B -5000.00 -10000.00 18611.10 10000.00 ;
+C 67; N clefs-alto_change; B -4000.02 -8000.03 14888.92 8000.03 ;
+C 68; N clefs-bass; B -2500.00 -12500.00 18000.03 5000.00 ;
+C 69; N clefs-bass_change; B -2000.05 -10000.05 14400.04 4000.02 ;
+C 70; N clefs-violin; B -4357.15 -15000.00 18685.68 25000.00 ;
+C 71; N clefs-violin_change; B -3785.74 -12000.05 14648.60 20000.08 ;
+C 72; N timesig-C4/4; B -9000.02 -5000.00 8499.98 5000.00 ;
+C 73; N timesig-C2/2; B -9000.02 -6999.97 8499.98 6999.97 ;
+C 74; N timesig-old4/4; B -8750.00 -3750.00 8750.00 3750.00 ;
+C 75; N timesig-old2/2; B -8750.00 -5000.00 8750.00 5000.00 ;
+C 76; N timesig-old3/2; B -8750.00 -3750.00 8750.00 3750.00 ;
+C 77; N timesig-old6/4; B -8750.00 -6250.00 8750.00 6250.00 ;
+C 78; N timesig-old9/4; B -8750.00 -6250.00 8750.00 6250.00 ;
 EndCharMetrics
 EndFontMetrics
index f5b55de4edd180ad0a87197b2f89cc7dfb2caf36..ea84da9de96bfbb993e1518fbea76d02b04b0f23 100644 (file)
@@ -32,52 +32,53 @@ C 27; N balls-2; B 0.00 -3093.77 7430.80 3093.77 ;
 C 28; N balls-2l; B -1857.70 -562.53 9288.50 562.53 ;
 C 29; N scripts-ufermata; B -7453.16 -421.90 7453.16 8156.31 ;
 C 30; N scripts-dfermata; B -7453.16 -8156.31 7453.16 421.90 ;
-C 31; N scripts-sforzato; B -5062.47 -2812.50 5062.47 2812.50 ;
-C 32; N scripts-staccato; B -843.80 -843.80 843.80 843.80 ;
-C 33; N scripts-ustaccatissimo; B -1125.06 -200.00 1125.06 5625.08 ;
-C 34; N scripts-dstaccatissimo; B -1125.06 -5625.08 1125.06 200.00 ;
-C 35; N scripts-tenuto; B -3375.03 -393.77 3375.03 393.77 ;
-C 36; N scripts-umarcato; B -2812.50 0.00 2812.50 6187.53 ;
-C 37; N scripts-dmarcato; B -2812.50 -6187.53 2812.50 0.00 ;
-C 38; N scripts-open; B -2250.00 -2812.50 2250.00 2812.50 ;
-C 39; N scripts-stopped; B -3093.77 -3093.77 3093.77 3093.77 ;
-C 40; N scripts-upbow; B -3656.27 0.00 3656.27 11700.07 ;
-C 41; N scripts-downbow; B -4218.75 0.00 4218.75 7499.97 ;
-C 42; N scripts-reverseturn; B -6152.34 -2977.94 6152.34 2977.94 ;
-C 43; N scripts-turn; B -6152.34 -2977.94 6152.34 2977.94 ;
-C 44; N scripts-trill; B -5625.00 0.00 5625.00 12656.25 ;
-C 45; N scripts-upedalheel; B -2812.50 -2812.50 2812.50 3750.00 ;
-C 46; N scripts-dpedalheel; B -2812.50 -3750.00 2812.50 2812.50 ;
-C 47; N scripts-upedaltoe; B -2812.50 0.00 2812.50 8437.50 ;
-C 48; N scripts-dpedaltoe; B -2812.50 -8437.50 2812.50 0.00 ;
-C 49; N scripts-flageolet; B -3000.00 -3000.00 3000.00 3000.00 ;
-C 50; N scripts-trilelement; B -3750.00 -2812.50 1469.97 2812.50 ;
-C 51; N scripts-prall; B -6359.99 -2812.50 6359.99 2812.50 ;
-C 52; N scripts-mordent; B -6359.99 -2812.50 6359.99 2812.50 ;
-C 53; N scripts-prallprall; B -8969.97 -2812.50 8969.97 2812.50 ;
-C 54; N scripts-prallmordent; B -8969.97 -2812.50 8969.97 2812.50 ;
-C 55; N scripts-upprall; B -8969.97 -2812.50 8969.97 2812.50 ;
-C 56; N scripts-downprall; B -8969.97 -2812.50 8969.97 2812.50 ;
-C 57; N flags-u3; B -281.27 -17240.65 6940.84 281.27 ;
-C 58; N flags-u4; B -281.27 -20053.15 6940.84 281.27 ;
-C 59; N flags-u5; B -281.27 -24271.90 6940.84 281.27 ;
-C 60; N flags-u6; B -281.27 -29896.90 6940.84 281.27 ;
-C 61; N flags-d3; B -281.27 -281.27 7680.88 16396.93 ;
-C 62; N flags-d4; B -281.27 -281.27 7680.88 17240.65 ;
-C 63; N flags-d5; B -281.27 -281.27 7680.88 22021.93 ;
-C 64; N flags-d6; B -281.27 -281.27 7680.88 24834.43 ;
-C 65; N clefs-alto; B -5625.00 -11250.00 20937.50 11250.00 ;
-C 66; N clefs-alto_change; B -4500.02 -9000.03 16750.08 9000.03 ;
-C 67; N clefs-bass; B -2812.50 -14062.50 20250.03 5625.00 ;
-C 68; N clefs-bass_change; B -2250.05 -11250.05 16200.04 4500.02 ;
-C 69; N clefs-violin; B -4901.80 -16875.00 21021.40 28125.00 ;
-C 70; N clefs-violin_change; B -4258.94 -13500.05 16479.68 22500.08 ;
-C 71; N timesig-C4/4; B -10125.02 -5625.00 9562.48 5625.00 ;
-C 72; N timesig-C2/2; B -10125.02 -7874.97 9562.48 7874.97 ;
-C 73; N timesig-old4/4; B -9843.75 -4218.75 9843.75 4218.75 ;
-C 74; N timesig-old2/2; B -9843.75 -5625.00 9843.75 5625.00 ;
-C 75; N timesig-old3/2; B -9843.75 -4218.75 9843.75 4218.75 ;
-C 76; N timesig-old6/4; B -9843.75 -7031.25 9843.75 7031.25 ;
-C 77; N timesig-old9/4; B -9843.75 -7031.25 9843.75 7031.25 ;
+C 31; N scripts-thumb; B -2250.00 -2812.50 2250.00 2812.50 ;
+C 32; N scripts-sforzato; B -5062.47 -2812.50 5062.47 2812.50 ;
+C 33; N scripts-staccato; B -843.80 -843.80 843.80 843.80 ;
+C 34; N scripts-ustaccatissimo; B -1125.06 -200.00 1125.06 5625.08 ;
+C 35; N scripts-dstaccatissimo; B -1125.06 -5625.08 1125.06 200.00 ;
+C 36; N scripts-tenuto; B -3375.03 -393.77 3375.03 393.77 ;
+C 37; N scripts-umarcato; B -2812.50 0.00 2812.50 6187.53 ;
+C 38; N scripts-dmarcato; B -2812.50 -6187.53 2812.50 0.00 ;
+C 39; N scripts-open; B -2250.00 -2812.50 2250.00 2812.50 ;
+C 40; N scripts-stopped; B -3093.77 -3093.77 3093.77 3093.77 ;
+C 41; N scripts-upbow; B -3656.27 0.00 3656.27 11700.07 ;
+C 42; N scripts-downbow; B -4218.75 0.00 4218.75 7499.97 ;
+C 43; N scripts-reverseturn; B -6152.34 -2977.94 6152.34 2977.94 ;
+C 44; N scripts-turn; B -6152.34 -2977.94 6152.34 2977.94 ;
+C 45; N scripts-trill; B -5625.00 0.00 5625.00 12656.25 ;
+C 46; N scripts-upedalheel; B -2812.50 -2812.50 2812.50 3750.00 ;
+C 47; N scripts-dpedalheel; B -2812.50 -3750.00 2812.50 2812.50 ;
+C 48; N scripts-upedaltoe; B -2812.50 0.00 2812.50 8437.50 ;
+C 49; N scripts-dpedaltoe; B -2812.50 -8437.50 2812.50 0.00 ;
+C 50; N scripts-flageolet; B -3000.00 -3000.00 3000.00 3000.00 ;
+C 51; N scripts-trilelement; B -3750.00 -2812.50 1469.97 2812.50 ;
+C 52; N scripts-prall; B -6359.99 -2812.50 6359.99 2812.50 ;
+C 53; N scripts-mordent; B -6359.99 -2812.50 6359.99 2812.50 ;
+C 54; N scripts-prallprall; B -8969.97 -2812.50 8969.97 2812.50 ;
+C 55; N scripts-prallmordent; B -8969.97 -2812.50 8969.97 2812.50 ;
+C 56; N scripts-upprall; B -8969.97 -2812.50 8969.97 2812.50 ;
+C 57; N scripts-downprall; B -8969.97 -2812.50 8969.97 2812.50 ;
+C 58; N flags-u3; B -281.27 -17240.65 6940.84 281.27 ;
+C 59; N flags-u4; B -281.27 -20053.15 6940.84 281.27 ;
+C 60; N flags-u5; B -281.27 -24271.90 6940.84 281.27 ;
+C 61; N flags-u6; B -281.27 -29896.90 6940.84 281.27 ;
+C 62; N flags-d3; B -281.27 -281.27 7680.88 16396.93 ;
+C 63; N flags-d4; B -281.27 -281.27 7680.88 17240.65 ;
+C 64; N flags-d5; B -281.27 -281.27 7680.88 22021.93 ;
+C 65; N flags-d6; B -281.27 -281.27 7680.88 24834.43 ;
+C 66; N clefs-alto; B -5625.00 -11250.00 20937.50 11250.00 ;
+C 67; N clefs-alto_change; B -4500.02 -9000.03 16750.08 9000.03 ;
+C 68; N clefs-bass; B -2812.50 -14062.50 20250.03 5625.00 ;
+C 69; N clefs-bass_change; B -2250.05 -11250.05 16200.04 4500.02 ;
+C 70; N clefs-violin; B -4901.80 -16875.00 21021.40 28125.00 ;
+C 71; N clefs-violin_change; B -4258.94 -13500.05 16479.68 22500.08 ;
+C 72; N timesig-C4/4; B -10125.02 -5625.00 9562.48 5625.00 ;
+C 73; N timesig-C2/2; B -10125.02 -7874.97 9562.48 7874.97 ;
+C 74; N timesig-old4/4; B -9843.75 -4218.75 9843.75 4218.75 ;
+C 75; N timesig-old2/2; B -9843.75 -5625.00 9843.75 5625.00 ;
+C 76; N timesig-old3/2; B -9843.75 -4218.75 9843.75 4218.75 ;
+C 77; N timesig-old6/4; B -9843.75 -7031.25 9843.75 7031.25 ;
+C 78; N timesig-old9/4; B -9843.75 -7031.25 9843.75 7031.25 ;
 EndCharMetrics
 EndFontMetrics
index bd5369910d3ae0006e9aa90e75f76f980079efbb..9e80ffba1fe46829707a5f0a216f2b42d7658b61 100644 (file)
@@ -32,52 +32,53 @@ C 27; N balls-2; B 0.00 -3575.03 8586.67 3575.03 ;
 C 28; N balls-2l; B -2146.67 -650.04 10733.34 650.04 ;
 C 29; N scripts-ufermata; B -8612.53 -487.53 8612.53 9425.08 ;
 C 30; N scripts-dfermata; B -8612.53 -9425.08 8612.53 487.53 ;
-C 31; N scripts-sforzato; B -5849.96 -3250.00 5849.96 3250.00 ;
-C 32; N scripts-staccato; B -975.07 -975.07 975.07 975.07 ;
-C 33; N scripts-ustaccatissimo; B -1300.08 -200.00 1300.08 6500.10 ;
-C 34; N scripts-dstaccatissimo; B -1300.08 -6500.10 1300.08 200.00 ;
-C 35; N scripts-tenuto; B -3900.04 -455.03 3900.04 455.03 ;
-C 36; N scripts-umarcato; B -3250.00 0.00 3250.00 7150.04 ;
-C 37; N scripts-dmarcato; B -3250.00 -7150.04 3250.00 0.00 ;
-C 38; N scripts-open; B -2600.00 -3250.00 2600.00 3250.00 ;
-C 39; N scripts-stopped; B -3575.03 -3575.03 3575.03 3575.03 ;
-C 40; N scripts-upbow; B -4225.02 0.00 4225.02 13520.10 ;
-C 41; N scripts-downbow; B -4875.00 0.00 4875.00 8666.64 ;
-C 42; N scripts-reverseturn; B -7109.38 -3441.18 7109.38 3441.18 ;
-C 43; N scripts-turn; B -7109.38 -3441.18 7109.38 3441.18 ;
-C 44; N scripts-trill; B -6500.00 0.00 6500.00 14625.00 ;
-C 45; N scripts-upedalheel; B -3250.00 -3250.00 3250.00 4333.33 ;
-C 46; N scripts-dpedalheel; B -3250.00 -4333.33 3250.00 3250.00 ;
-C 47; N scripts-upedaltoe; B -3250.00 0.00 3250.00 9750.00 ;
-C 48; N scripts-dpedaltoe; B -3250.00 -9750.00 3250.00 0.00 ;
-C 49; N scripts-flageolet; B -3466.67 -3466.67 3466.67 3466.67 ;
-C 50; N scripts-trilelement; B -4333.33 -3250.00 1698.62 3250.00 ;
-C 51; N scripts-prall; B -7349.30 -3250.00 7349.30 3250.00 ;
-C 52; N scripts-mordent; B -7349.30 -3250.00 7349.30 3250.00 ;
-C 53; N scripts-prallprall; B -10365.28 -3250.00 10365.28 3250.00 ;
-C 54; N scripts-prallmordent; B -10365.28 -3250.00 10365.28 3250.00 ;
-C 55; N scripts-upprall; B -10365.28 -3250.00 10365.28 3250.00 ;
-C 56; N scripts-downprall; B -10365.28 -3250.00 10365.28 3250.00 ;
-C 57; N flags-u3; B -325.03 -19922.53 8020.51 325.03 ;
-C 58; N flags-u4; B -325.03 -23172.53 8020.51 325.03 ;
-C 59; N flags-u5; B -325.03 -28047.53 8020.51 325.03 ;
-C 60; N flags-u6; B -325.03 -34547.53 8020.51 325.03 ;
-C 61; N flags-d3; B -325.03 -325.03 8875.67 18947.57 ;
-C 62; N flags-d4; B -325.03 -325.03 8875.67 19922.53 ;
-C 63; N flags-d5; B -325.03 -325.03 8875.67 25447.57 ;
-C 64; N flags-d6; B -325.03 -325.03 8875.67 28697.57 ;
-C 65; N clefs-alto; B -6500.00 -13000.00 24194.44 13000.00 ;
-C 66; N clefs-alto_change; B -5200.03 -10400.05 19355.70 10400.05 ;
-C 67; N clefs-bass; B -3250.00 -16250.00 23400.04 6500.00 ;
-C 68; N clefs-bass_change; B -2600.07 -13000.08 18720.08 5200.03 ;
-C 69; N clefs-violin; B -5664.29 -19500.00 24291.40 32500.00 ;
-C 70; N clefs-violin_change; B -4921.46 -15600.08 19043.21 26000.14 ;
-C 71; N timesig-C4/4; B -11700.03 -6500.00 11049.99 6500.00 ;
-C 72; N timesig-C2/2; B -11700.03 -9099.96 11049.99 9099.96 ;
-C 73; N timesig-old4/4; B -11375.00 -4875.00 11375.00 4875.00 ;
-C 74; N timesig-old2/2; B -11375.00 -6500.00 11375.00 6500.00 ;
-C 75; N timesig-old3/2; B -11375.00 -4875.00 11375.00 4875.00 ;
-C 76; N timesig-old6/4; B -11375.00 -8125.00 11375.00 8125.00 ;
-C 77; N timesig-old9/4; B -11375.00 -8125.00 11375.00 8125.00 ;
+C 31; N scripts-thumb; B -2600.00 -3250.00 2600.00 3250.00 ;
+C 32; N scripts-sforzato; B -5849.96 -3250.00 5849.96 3250.00 ;
+C 33; N scripts-staccato; B -975.07 -975.07 975.07 975.07 ;
+C 34; N scripts-ustaccatissimo; B -1300.08 -200.00 1300.08 6500.10 ;
+C 35; N scripts-dstaccatissimo; B -1300.08 -6500.10 1300.08 200.00 ;
+C 36; N scripts-tenuto; B -3900.04 -455.03 3900.04 455.03 ;
+C 37; N scripts-umarcato; B -3250.00 0.00 3250.00 7150.04 ;
+C 38; N scripts-dmarcato; B -3250.00 -7150.04 3250.00 0.00 ;
+C 39; N scripts-open; B -2600.00 -3250.00 2600.00 3250.00 ;
+C 40; N scripts-stopped; B -3575.03 -3575.03 3575.03 3575.03 ;
+C 41; N scripts-upbow; B -4225.02 0.00 4225.02 13520.10 ;
+C 42; N scripts-downbow; B -4875.00 0.00 4875.00 8666.64 ;
+C 43; N scripts-reverseturn; B -7109.38 -3441.18 7109.38 3441.18 ;
+C 44; N scripts-turn; B -7109.38 -3441.18 7109.38 3441.18 ;
+C 45; N scripts-trill; B -6500.00 0.00 6500.00 14625.00 ;
+C 46; N scripts-upedalheel; B -3250.00 -3250.00 3250.00 4333.33 ;
+C 47; N scripts-dpedalheel; B -3250.00 -4333.33 3250.00 3250.00 ;
+C 48; N scripts-upedaltoe; B -3250.00 0.00 3250.00 9750.00 ;
+C 49; N scripts-dpedaltoe; B -3250.00 -9750.00 3250.00 0.00 ;
+C 50; N scripts-flageolet; B -3466.67 -3466.67 3466.67 3466.67 ;
+C 51; N scripts-trilelement; B -4333.33 -3250.00 1698.62 3250.00 ;
+C 52; N scripts-prall; B -7349.30 -3250.00 7349.30 3250.00 ;
+C 53; N scripts-mordent; B -7349.30 -3250.00 7349.30 3250.00 ;
+C 54; N scripts-prallprall; B -10365.28 -3250.00 10365.28 3250.00 ;
+C 55; N scripts-prallmordent; B -10365.28 -3250.00 10365.28 3250.00 ;
+C 56; N scripts-upprall; B -10365.28 -3250.00 10365.28 3250.00 ;
+C 57; N scripts-downprall; B -10365.28 -3250.00 10365.28 3250.00 ;
+C 58; N flags-u3; B -325.03 -19922.53 8020.51 325.03 ;
+C 59; N flags-u4; B -325.03 -23172.53 8020.51 325.03 ;
+C 60; N flags-u5; B -325.03 -28047.53 8020.51 325.03 ;
+C 61; N flags-u6; B -325.03 -34547.53 8020.51 325.03 ;
+C 62; N flags-d3; B -325.03 -325.03 8875.67 18947.57 ;
+C 63; N flags-d4; B -325.03 -325.03 8875.67 19922.53 ;
+C 64; N flags-d5; B -325.03 -325.03 8875.67 25447.57 ;
+C 65; N flags-d6; B -325.03 -325.03 8875.67 28697.57 ;
+C 66; N clefs-alto; B -6500.00 -13000.00 24194.44 13000.00 ;
+C 67; N clefs-alto_change; B -5200.03 -10400.05 19355.70 10400.05 ;
+C 68; N clefs-bass; B -3250.00 -16250.00 23400.04 6500.00 ;
+C 69; N clefs-bass_change; B -2600.07 -13000.08 18720.08 5200.03 ;
+C 70; N clefs-violin; B -5664.29 -19500.00 24291.40 32500.00 ;
+C 71; N clefs-violin_change; B -4921.46 -15600.08 19043.21 26000.14 ;
+C 72; N timesig-C4/4; B -11700.03 -6500.00 11049.99 6500.00 ;
+C 73; N timesig-C2/2; B -11700.03 -9099.96 11049.99 9099.96 ;
+C 74; N timesig-old4/4; B -11375.00 -4875.00 11375.00 4875.00 ;
+C 75; N timesig-old2/2; B -11375.00 -6500.00 11375.00 6500.00 ;
+C 76; N timesig-old3/2; B -11375.00 -4875.00 11375.00 4875.00 ;
+C 77; N timesig-old6/4; B -11375.00 -8125.00 11375.00 8125.00 ;
+C 78; N timesig-old9/4; B -11375.00 -8125.00 11375.00 8125.00 ;
 EndCharMetrics
 EndFontMetrics
index d4353253c468e187516c57ac20a87e5d70c99ee2..a94b37ef8a2e5b7d2a4cfb699bea97ca69e24ae2 100644 (file)
@@ -2,14 +2,12 @@
 
 depth = ..
 
-
 PS_FILES = $(wildcard *.ps)
 
+STEPMAKE_TEMPLATES=install
 EXTRA_DIST_FILES =  $(PS_FILES) 
 
 INSTALLATION_DIR=$(datadir)/ps/
 INSTALLATION_FILES=$(PS_FILES)
 
 include $(depth)/make/stepmake.make
-include $(stepdir)/installfiles.make
-
index 596119c3dd975ea18cf24f91568fb30dd558ca68..3faa60d23812286944146d7b0519f7aeda087d2d 100644 (file)
@@ -1,23 +1,46 @@
 #!@PYTHON@
-
-#  TODO: center option
-
+# All non-english comments are NOT in swedish, they are norwegian!
+
+#  TODO:  center option (??)
+# * clean up handling of filename of inputfile
+# * steal Props class from ly2dvi?
+# * \onecolumn, \twocolumn
+# * fontsize change with commandline parameters
+# * the   verbatim  option should not be visible in the created latex file
+# * what the h.. does castingalgorithm do/mean???
+# * compile all regular expressions
+# * the following fails because mudelabook doesn't care that the
+#   last } after \end{mudela} finishes the marginpar:
+#     \marginpar{
+#     \begin{mudela}[fragment]
+#        c d e f g
+#     \end{mudela}}
+# * Command line parameter that force all inline mudela to be verbatim, and
+#   one that forces all to be printed
 # log:
 
 # 0.3:
 #   rewrite in Python.
+# 0.4:
+#   much rewritten by new author. I think the work has been split more
+#   logical between different classes.
+#   
 
 import os
 import string
 import re
 import getopt
 import sys
+import regsub
 
-outdir = 'out/'
-program_version = '0.3'
-
-
+outdir = 'out'
+program_version = '0.4'
+default_paper_size_global = 'a4'
+default_mudela_fontsize = '16pt'
+force_mudela_fontsize_b = 0
 
+fontsize_i2a = {11:'eleven', 13:'thirteen', 16:'sixteen', 20:'twenty', 26:'twentysix'}
+fontsize_pt2i = {'11pt':11, '13pt':13, '16pt':16, '20pt':20, '26pt':26}
 
 def file_exist_b(name):
     try: 
@@ -27,208 +50,317 @@ def file_exist_b(name):
     f.close ()
     return 1
 
+def ps_dimention(fname):
+    fd = open(fname)
+    lines = fd.readlines()
+    reg = re.compile('%%BoundingBox: ([0-9]*) ([0-9]*) ([0-9]*) ([0-9]*)')
+    for line in lines:
+        s = reg.search(line)
+        if s:
+            break
+    return (int(s.groups()[2])-int(s.groups()[0]), 
+            int(s.groups()[3])-int(s.groups()[1]))
+
+
 class CompileStatus:
-       pass
+    pass
 
 def file_mtime (name):
     return os.stat (name)[8] #mod time
-
-def compile (command, infile, outfile):
-       indate = file_mtime (infile)
-       try:
-               outdate = file_mtime (outfile)
-               recompile = indate > outdate
-
-       except os.error:
-               recompile = 1
-
-       if recompile:
-               sys.stderr.write ('invoking `%s\'\n' % command)
-               
-               status = os.system (command)
-               if status:
-                       raise CompileStatus
+#
+# executes os.system(command) if infile is newer than
+# outfile or outfile don't exist
+#
+def compile (command, workingdir, infile, outfile):
+    indate = file_mtime (workingdir+infile)
+    try:
+        outdate = file_mtime (outfile)
+        recompile = indate > outdate
+
+    except os.error:
+        recompile = 1
+
+    if recompile:
+        sys.stderr.write ('invoking `%s\'\n' % command)
+        if workingdir == '':
+            status = os.system (command)
+        else:
+            status = os.system ('cd %s; %s' %(workingdir, command))
+        if status:
+            raise CompileStatus
+
+
+class PaperDef:
+    __onecolumn_linewidth = {
+        'a4':{'10pt': 345, '11pt': 360, '12pt':390},
+        'a5':{'10pt': 276, '11pt': 276, '12pt':276},
+        'b5':{'10pt': 345, '11pt': 356, '12pt':356},
+        'letter':{'10pt': 345, '11pt': 360, '12pt':390},
+        'legal':{'10pt': 345, '11pt': 360, '12pt':390},
+        'executive':{'10pt': 345, '11pt': 360, '12pt':379}
+        }
+    __twocolumn_linewidth = {
+         'a4':{'10pt': 167, '11pt': 175, '12pt':190},
+        'a5':{'10pt': 133, '11pt': 133, '12pt':133},
+        'b5':{'10pt': 167, '11pt': 173, '12pt':173},
+        'letter':{'10pt': 167, '11pt': 175, '12pt':190},
+        'legal':{'10pt': 167, '11pt': 175, '12pt':190},
+        'executive':{'10pt': 167, '11pt': 175, '12pt':184}
+        }
+    __numcolumn = 1
+    __fontsize = '11pt'
+    #
+    # init
+    #
+    def __init__(self):
+        self.__papersize = default_paper_size_global
+    def set_papersize (self, p):
+        if not self.__onecolumn_linewidth.has_key(p):
+            print "warning:unsupported papersize", p, \
+                  "will use", default_paper_size_global
+            self.__papersize = default_paper_size_global
+        else:
+            self.__papersize = p
+    def set_fontsize(self, pt):
+        self.__fontsize = pt
+    def get_linewidth (self):
+        if self.__numcolumn == 1:
+            return self.__onecolumn_linewidth[self.__papersize][self.__fontsize]
+        else:
+            return self.__twocolumn_linewidth[self.__papersize][self.__fontsize]
+    def onecolumn (slef):
+        self.__numcolumn = 1
+    def twocolumn (self):
+        self.__numcolumn = 2
 
 
 class Mudela_output:
-       def __init__ (self):
-               self.basename = ''
-               self.fragment = 0
-               self.size = 16
-               
-       def open (self, basename):
-               self.basename = basename
-               self.temp_file = "%s/%s" %(outdir, 'mudela-temp.ly')
-               self.file = open (self.temp_file, 'w')
-               self.file.write ('\\include \"paper%d.ly\"\n' % self.size)
-               if self.size == 16:
-                       s = 'sixteen'
-               else:
-                       s = 'twenty'
-
-               self.file.write ('default_paper = \\paper { \\paper_%s\n linewidth = -15.\\cm; }\n' % s)
-               
-               if self.fragment:
-                       self.file.write ('\\score { \\notes { ')
-
-       def write (self,s):
-               self.file.write (s)
-
-       def close (self):
-               if self.fragment:
-                       self.file.write (
-                               '}\n \\paper { linewidth = -1.0\\cm;\n' +
-                               'castingalgorithm = \\Wordwrap; } }\n')
-
-
-               self.file.close ()
-
-               inf=self.basename + '.ly'
-               outf = self.basename + '.tex'           
-               if not file_exist_b (inf):
-                       status = 1
-               else:
-#                      print 'invoking %s' %('diff %s %s' % (self.temp_file, inf))
-                       status = os.system ('diff -q %s %s' % (self.temp_file, inf))
-#                      print 'status %d' % status
-
-               if status:
-                       os.rename (self.temp_file, inf)
-
-               compile ('lilypond  -o %s %s'%  (self.basename, inf), inf, outf)
-#                      os.rename (self.basename + '.tex', outdir  +)
-               
-       
+    def __init__ (self, basename):
+        self.basename = basename
+        # it's an integer!
+        self.feta_pt_size = fontsize_pt2i[default_mudela_fontsize]
+        self.temp_filename = "%s/%s" %(outdir, 'mudela-temp.ly')
+        self.file = open (self.temp_filename, 'w')
+        # 'tex' or 'eps'
+        self.graphic_type = 'tex'
+        self.fragment = 0
+    def write (self, line):
+        # match only if there is nothing but whitespace before \begin
+        if re.search('^\s*\\\\begin{mudela}', line):
+            self.scan_begin_statement(line)
+            self.write_red_tape()
+        else:
+            self.file.write (line)
+    def scan_begin_statement(self, line):
+        r  = begin_mudela_opts_re.search(line)
+        if r:
+            o = r.group()[1:][:-1]
+            optlist =  re.compile('[ ,]*').split(o)
+        else:
+            optlist = []
+        if 'floating' in optlist:
+            self.graphic_type = 'eps'
+        else:
+            self.graphic_type = 'tex'
+        if 'fragment' in optlist:
+            self.fragment = 1
+        else:
+            self.fragment = 0
+        for pt in fontsize_pt2i.keys():
+            if pt in optlist:
+                self.feta_pt_size = fontsize_pt2i[pt]
+    def write_red_tape(self):
+        self.file.write ('\\include \"paper%d.ly\"\n' % self.feta_pt_size)
+        s = fontsize_i2a[self.feta_pt_size]
+        if self.fragment:
+            self.file.write("default_paper = \\paper {"
+                            + "\\paper_%s\n linewidth = -1.\\pt;" % s
+                            + "castingalgorithm = \Wordwrap; indent = 2.\cm; \n}")
+            self.file.write("\\score{\n\\notes") #HACK
+        else:
+            self.file.write ("default_paper = \\paper {"
+                             + "\\paper_%s\n linewidth = %i.\\pt;" % \
+                             (s, Paper.get_linewidth()) \
+                             + "castingalgorithm = \Wordwrap; indent = 2.\cm;\n}")
+    def close (self):
+        if self.fragment:
+            self.file.write ('\\paper { \\default_paper; } }\n')
+        self.file.close ()
+
+        inf = self.basename + '.ly'
+        outf = self.basename + '.tex'          
+        if not file_exist_b (inf):
+            status = 1
+        else:
+            status = os.system ('diff -q %s %s' % (self.temp_filename, inf))
+
+        if status:
+            os.rename (self.temp_filename, inf)
+        compile ('lilypond  -o %s %s;'%  (self.basename, inf), '', inf, outf)
+        if self.graphic_type == 'eps':
+            bname = self.basename[string.rfind(self.basename, '/')+1:]
+            tex_name = bname+'.tex'
+            dvi_name = bname+'.dvi'
+            eps_name = bname+'.eps'
+            compile ('tex %s' % tex_name, outdir, tex_name, dvi_name)
+            compile ('dvips -E -o %s %s' % (eps_name, dvi_name), outdir, dvi_name, eps_name)
+    def insert_me_string(self):
+        "Returns a string that can be used directly in latex."
+        if self.graphic_type == 'tex':
+            return '\\preMudelaExample\\input %s\n\postMudelaExample\n' % self.basename
+        elif self.graphic_type == 'eps':
+            ps_dim = ps_dimention('%s.eps' % self.basename)
+            return '\\parbox{%ipt}{\includegraphics{%s.eps}}' % (ps_dim[0], self.basename)
+        else:
+            print "Unsupported graphic type '%s'" % self.graphic_type
+            sys.exit(1)
 
 class Tex_output:
-       def __init__ (self, name):
-               self.output_fn = '%s/%s' % (outdir, name)
-               self.mudela = 0
-               self.file = open (self.output_fn , 'w')
-               self.verbatim = 0               
-       def open_mudela (self, basename):
-               self.mudela_basename =basename
-               if self.verbatim:
-                       self.file.write ('\\begin{verbatim}\n')
-               self.mudela = 1
-
-       def write (self, s):
-               self.file.write (s)
-                       
-       def write_mudela (self, s):
-               if self.verbatim:
-                       self.file.write (s)
-                       
-       def close_mudela (self):
-               if self.verbatim:
-                       self.file.write ('\\end{verbatim}\n')
-                       self.verbatim = 0
-               
-               self.file.write (
-                   '\\preMudelaExample\\input %s\n\postMudelaExample' %(self.mudela_basename))
-               self.mudela = 0
-
-
-
-
+    def __init__ (self, name):
+        self.output_fn = '%s/%s' % (outdir, name)
+        self.file = open (self.output_fn , 'w')
+    def open_mudela (self, basename):
+        self.mudela_basename = basename
+    def open_verbatim (self):
+        self.file.write ('\\begin{verbatim}\n')
+    def close_verbatim (self):
+        self.file.write ('\\end{verbatim}\n')
+    def write (self, s):
+        self.file.write (s)
 
 begin_mudela_re = re.compile ('^ *\\\\begin{mudela}')
-begin_mudela_opts_re = re.compile ('^ *\\\\begin{mudela}\[(.*)\]')
+begin_mudela_opts_re = re.compile('\[[^\]]*\]')
 end_mudela_re = re.compile ('^ *\\\\end{mudela}')
 section_re = re.compile ('\\\\section')
 chapter_re = re.compile ('\\\\chapter')
-input_re = re.compile ('^\\\\input[ \t\n]+(.*)$')
+input_re = re.compile ('^\\\\input{([^}]*)')
+include_re = re.compile ('^\\\\include{([^}]*)')
+begin_document_re = re.compile ('^ *\\\\begin{document}')
+documentclass_re = re.compile('\\\\documentclass')
+twocolumn_re = re.compile('\\\\twocolumn')
+onecolumn_re = re.compile('\\\\onecolumn')
 
 class Tex_input:
-       def __init__ (self,name):
-               if not re.search ('\\.[^/\\\\]+',name):
-                       name = name + '.tex'
-               print 'opening %s' % name
-               self.filename = name
-               self.infile = open (name)
+    def __init__ (self,name):
+        # HACK
+        if (name[-4:] != '.tex') and (name[-4:] != '.doc'):
+            name = name + '.tex'
+        self.filename = name
+        self.infile = open (name)
                
-       def get_lines (self):
-               lines = self.infile.readlines ()
-               (retlines, retdeps) = ([],[self.filename])
-               for line in lines:
-                       m = input_re.search (line)
-                       if m:
-                               t = Tex_input (m.group (1))
-                               ls =t.get_lines ()
-                               retlines = retlines + ls[0]
-                               retdeps = retdeps + ls[1]
-                       else:
-                               retlines.append (line)
-
-               return (retlines, retdeps)
+    def get_lines (self):
+        lines = self.infile.readlines ()
+        (retlines, retdeps) = ([],[self.filename])
+        for line in lines:
+            r = input_re.search (line)
+            ri = include_re.search (line)
+            if r:
+                t = Tex_input (r.groups()[0])
+                ls =t.get_lines ()
+                retlines = retlines + ls[0]
+                retdeps = retdeps + ls[1]
+            elif ri:
+                t = Tex_input (ri.groups()[0])
+                ls =t.get_lines ()
+                ls[0].insert(0, '\\newpage')
+                ls[0].append('\\newpage')
+                retlines = retlines + ls[0]
+                retdeps = retdeps + ls[1]                
+            else:
+                retlines.append (line)
+        return (retlines, retdeps)
+
 
 class Main_tex_input(Tex_input):
-       def __init__ (self, name, outname):
+    def __init__ (self, name, outname):
                
-               Tex_input.__init__ (self, name) # ugh
-
-               self.outname = outname
-               self.chapter = 0
-               self.section = 0
-               self.fine_count =0
-               self.mudtex = Tex_output (self.outname)
-               self.mudela = None
-               self.deps = []
-       def set_sections (self, l):
-               if section_re.search (l):
-                       self.section = self.section + 1
-               if chapter_re.search (l):
-                       self.section = 0
-                       self.chapter = self.chapter + 1
-
-                       
-       def gulp_mudela (self):
-               pass
-
-       def gen_basename (self):
-               return '%s/%s-%d.%d.%d' % (outdir, self.outname,self.chapter,self.section,self.fine_count)
-
-       def do_it(self):
-               (lines, self.deps) = self.get_lines ()
-               for line in lines:
-                       if begin_mudela_re.search (line):
-                               m =begin_mudela_opts_re.search (line) 
-                               if m:
-                                       opts = m.group (1)
-                               else:
-                                       opts = ''
-                               optlist = string.split (opts, ',')
-                               self.mudela = Mudela_output ()
-                               if 'fragment' in optlist:
-                                       self.mudela.fragment = 1
-                               if '16pt' in optlist:
-                                       self.mudela.size = 16
-                               if '20pt' in optlist:
-                                       self.mudela.size = 20
-                               
-                               if 'verbatim' in optlist:
-                                       self.mudtex.verbatim = 1
-
-                               b = self.gen_basename ()
-                               self.mudtex.open_mudela (b)
-                               self.mudela.open (b)
-
-
-                               continue
-                       elif end_mudela_re.search (line):
-                               self.mudela.close ()
-                               self.mudtex.close_mudela ()
-                               self.mudela = None
-                               self.fine_count = self.fine_count + 1
-                               continue
-                           
-                       if self.mudela:
-                               self.mudela.write (line)
-                               self.mudtex.write_mudela (line)
-                       else:
-                               self.mudtex.write (line)
-                       self.set_sections(line)
-               del self.mudtex
+        Tex_input.__init__ (self, name) # ugh
+
+        self.outname = outname
+        self.chapter = 0
+        self.section = 0
+        self.fine_count =0
+        self.mudtex = Tex_output (self.outname)
+        self.mudela = None
+        self.deps = []
+        self.verbatim = 0
+        # set to 'mudela' when we are processing mudela code,
+        # both verbatim and graphic-to-be
+        self.mode = 'latex'
+    def set_sections (self, l):
+        if section_re.search (l):
+            self.section = self.section + 1
+        if chapter_re.search (l):
+            self.section = 0
+            self.chapter = self.chapter + 1
+
+    def gen_basename (self):
+        return '%s/%s-%d.%d.%d' % (outdir, self.outname,self.chapter,self.section,self.fine_count)
+
+    def extract_papersize_from_documentclass(self, line):
+        pre = re.search('\\\\documentclass[\[, ]*(\w*)paper[\w ,]*\]\{\w*\}', line)
+        if not pre:
+            return default_paper_size_global
+        return pre.groups()[0]
+    def extract_fontsize_from_documentclass(self, line):
+        if re.search('\\\\documentclass\[[^\]]*\]\{[^\}]*\}', line):
+            r = re.search('[ ,\[]*([0-9]*pt)', line)
+            if r:
+                return r.groups()[0]
+        return '10pt'
+    def do_it(self):
+        (lines, self.deps) = self.get_lines ()
+        for line in lines:
+            if documentclass_re.search (line):
+                Paper.set_papersize (self.extract_papersize_from_documentclass (line) )
+                Paper.set_fontsize (self.extract_fontsize_from_documentclass (line) )
+            elif twocolumn_re.search (line):
+                Paper.twocolumn ()
+            elif onecolumn_re.search (line):
+                Paper.onecolumn ()
+            elif begin_document_re.search (line):
+                self.mudtex.write ('\\def\\preMudelaExample{}\n')
+                self.mudtex.write ('\\def\\postMudelaExample{}\n')
+            elif begin_mudela_re.search (line):
+                if __debug__:
+                    if self.mode == 'mudela':
+                        raise AssertionError
+                self.mode = 'mudela'
+                r  = begin_mudela_opts_re.search (line)
+                if r:
+                    o = r.group()[1:][:-1]
+                    optlist =  re.compile('[ ,]*').split(o)
+                else:
+                    optlist = []
+                if 'verbatim' in optlist:
+                    self.verbatim = 1
+                    self.mudtex.open_verbatim ()
+                else:
+                    self.verbatim = 0
+                    self.mudela = Mudela_output (self.gen_basename ())
+
+            elif end_mudela_re.search (line):
+                if __debug__:
+                    if self.mode != 'mudela':
+                        raise AssertionError
+                if self.mudela:
+                    self.mudela.close ()
+                    self.mudtex.write (self.mudela.insert_me_string())
+                    del self.mudela
+                    self.mudela = None
+                    self.fine_count = self.fine_count + 1
+                else:                    
+                    self.mudtex.write (line)
+                    self.mudtex.close_verbatim ()
+                self.mode = 'latex'
+                continue
+
+            if self.mode == 'mudela' and not self.verbatim:
+                self.mudela.write (line)
+            else:
+                self.mudtex.write (line)
+                self.set_sections(line)
+        del self.mudtex
                
 
 def help():
@@ -236,32 +368,14 @@ def help():
                 + "Generate hybrid LaTeX input from Latex + mudela"
                 + "Options:\n"
                 + "  -h, --help             print this help\n"
-                + "  -d, --outdir=DIR       prefix directory\n" 
+                + "  -d, --outdir=DIR       directory to put generated files\n" 
                 + "  -o, --outname=FILE     prefix for filenames\n"
+                 + "  --mudela-fontsize=??pt default fontsize when no parameter for \\begin{mudela}\n"
+                 + "  --force-mudela-fontsize=??pt force fontsize for all inline mudela\n"
                     )
     sys.exit (0)
 
 
-
-sys.stderr.write ('This is %s version %s\n' % ('mudela-book', program_version))
-
-outname = ''
-(options, files) = getopt.getopt(
-       sys.argv[1:], 'hd:o:', [ 'outdir=', 'outname=', 'help', 'dependencies'])
-
-do_deps = 0
-for opt in options:
-       o = opt[0]
-       a = opt[1]
-       if o == '--outname' or o == '-o':
-               outname = a
-       if o == '--outdir' or o == '-d':
-               outdir = a
-       if o == '--help' or o == '-h':
-               help ()
-       if o == '--dependencies':
-               do_deps = 1
-
 def write_deps (fn, out,  deps):
        out_fn = outdir + '/' + fn
        print '\`writing \`%s\'\n\'' % out_fn
@@ -271,18 +385,64 @@ def write_deps (fn, out,  deps):
                              reduce (lambda x,y: x + ' '+ y, deps)))
        f.close ()
 
-
-for f in files:
-       my_outname = outname
-       if not my_outname:
-               my_outname = regsub.sub ('\\(.*\\)\\.doc', '\\1', f)
-
-       my_depname = my_outname + '.dep'
-
-       inp = Main_tex_input (f, my_outname)
-       inp.do_it ()
-
-       if do_deps:
+def identify():
+    sys.stderr.write('*** Lokal versjon av mudela-book ***\n')
+    sys.stderr.write ('This is %s version %s\n' % ('mudela-book', program_version))
+
+def main():
+    global default_mudela_fontsize, outdir
+    outname = ''
+    try:
+        (options, files) = getopt.getopt(
+            sys.argv[1:], 'hd:o:', ['outdir=', 'outname=', 'mudela-fontsize=',
+                                    'force-mudela-fontsize=', 'help', 'dependencies'])
+    except getopt.error, msg:
+        print "error:", msg
+        sys.exit(1)
+        
+    do_deps = 0
+    for opt in options:
+       o = opt[0]
+       a = opt[1]
+       if o == '--outname' or o == '-o':
+            outname = a
+        if o == '--outdir' or o == '-d':
+            outdir = a
+        if o == '--help' or o == '-h':
+            help ()
+       if o == '--dependencies':
+            do_deps = 1
+        if o == '--mudela-fontsize':
+            default_mudela_fontsize = a
+       if o == '--force-mudela-fontsize':
+            default_mudela_fontsize = a
+            force_mudela_fontsize_b = 1
+
+    if outdir[-1:] != '/':
+        outdir = outdir + '/'
+
+    if not file_exist_b(outdir):
+        os.system('mkdir %s' % outdir)
+
+    if not fontsize_pt2i.has_key(default_mudela_fontsize):
+        print "warning: fontsize %s is not supported using 16pt" % default_mudela_fontsize
+        default_mudela_fontsize = '16pt'
+    
+    for f in files:
+        my_outname = outname
+        if not my_outname:
+            my_outname = regsub.sub ('\\(.*\\)\\.doc', '\\1', f)
+
+        my_depname = my_outname + '.dep'
+        
+        inp = Main_tex_input (f, my_outname)
+        inp.do_it ()
+
+    if do_deps:
                write_deps (my_depname, my_outname, inp.deps)
 
 
+
+identify()
+Paper = PaperDef()
+main()
index c49eec6022db135853238c24ad6de880b8520980..4f6e24b7ffb2b2cb8c995a4ef57fbe957f455f5e 100644 (file)
@@ -5,10 +5,11 @@ depth = ..
 
 OUTTXT_FILES = $(OUTYO_FILES:.yo=.txt) $(OUTIN_FILES:.yo=.txt)
 EXTRA_DIST_FILES = 
-SUBDIRS=topdocs
+OUT_DIST_FILES=$(OUTTXT_FILES)
 
+SUBDIRS=topdocs
 
-STEPMAKE_TEMPLATES=documentation
+STEPMAKE_TEMPLATES=documentation install install-out
 
 include $(depth)/make/stepmake.make 
 
@@ -22,3 +23,9 @@ check-doc-deps: do-doc
 
 doc: do-doc
 
+INSTALLATION_DIR=$(datadir)/Documentation
+INSTALLATION_FILES=$(DIST_FILES)
+
+INSTALLATION_OUT_DIR=$(datadir)/Documentation/out
+INSTALLATION_OUT_FILES=$(OUTTXT_FILES)
+
diff --git a/stepmake/Documentation/out/automake.txt b/stepmake/Documentation/out/automake.txt
new file mode 100644 (file)
index 0000000..6f1f5d2
--- /dev/null
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+
+                     Automake -- Urgh!
+
+                        HWN and JCN
+
+
+Contents
+
+     1: Introduction
+2: What's wrong with Automake?
+3: Irritations
+4: Fundamental problems
+5: Conclusions
+
+
+1: Introduction
+
+
+Every once in a while, we get comments on our `non-standard'
+(non GNU compliant)  configuration/compilation  system.   In
+this  document,  we try to explain why we built our own sys-
+tem.  We focus on Automake, but of  course  writing  complex
+Makefile.ins  without  generating  them  automatically is an
+even more deadly sin in our opinion.
+
+
+2: What's wrong with Automake?
+
+
+We have tried to use Automake and found it to be  inadequate
+for  our  needs  for  several  reasons.   On the surface the
+shortcomings to Automake  may  seem  bugs  or  "not-yet-com-
+pleted"  features.   However, make itself is broken, and any
+tool built on top of make is broken as well.
+
+
+3: Irritations
+
+
+We'll start with the superficial irritations first:
+
+o    there is no intrinsic support for  wildcarding;  Adding
+     support  for  wildcarding  adds  yet another layer to a
+     top-heavy system.
+
+     This may sound silly, but for a  fast  moving  project,
+     with  1250 sourcefiles, one does not want to administer
+     a list of filenames by hand: files are created, deleted
+     and  moved  very  often,  and wildcarding prevents that
+     distributions miss files.
+
+
+o    Automake tries to cater for every taste of  make.   But
+     anyone  who  does more than the trivial configure; make
+     install has to install Automake  and  GNU  make  anyway
+     (for  example, you need GCC and GNU Make for dependency
+     tracking).
+
+     Automake's universal make support  is  good  for  tools
+     that  have  to  be highly portable, but you have pay in
+     ease of use and speed  while  developing.   This  means
+     that  it  is counterproductive to use Automake for non-
+     essential programs that are under (heavy)  development.
+
+
+o    Support for filetypes in built in to Automake, and can-
+     not be added on the fly: Automake is very much targeted
+     at standard GNU packages that are written in C (or C++)
+     and  come  with  info-pages.   If  you  want   to   add
+
+
+     dependencies  from   or  METAFONT  files you are out of
+     luck.  Ditto if you have weird file types (.pod), weird
+     programming languages, etc.
+
+     There are as many file types as there are languages and
+     compilers.  Extending Automake  to  support  all  these
+     languages  is  error-prone,  and  creates nasty version
+     dependencies  between  an  Automake-using  package  and
+     Automake  itself.   A  package should be able to supply
+     its own specific rules and targets.
+
+
+o    Dependency handling is unreliable in our experience. On
+     several  occasions  we  had  unexplainable errors, that
+     went away after doing a make distclean, and  recompile.
+
+
+o    It  is  slower,  much  slower than a tailored solution.
+     This diffence in speed can be as  large  as  800%.  (On
+     JCNs  machine  a make dist takes 17 minutes in stead of
+     2) for every distribution  made;  this  constitutes  45
+     minutes of irritation on an average hacking-night.
+
+
+o    For  a  large  project,  a  specialised Makefile system
+     costs relatively little extra effort.  The extra effort
+     pays itself back in speed and control.
+
+
+o    The  Makefiles, Makefile.ins, and extensions constitute
+     a huge amount of state.  We found it hard to  reproduce
+     bugs  in Automake (Strictly spoken they aren't bugs, as
+     we haven't  diagnosed  because  we  couldn't  reproduce
+     them.)
+
+
+4: Fundamental problems
+
+
+Many of the fundamental problems can be traced back to flaws
+in make:
+
+
+o    make is not standardised.  The only decent  implementa-
+     tion is GNU make, and GNU make is not widespread enough
+     to require GNU make for compiling GNU tools.
+
+
+o    make does not have enough meta-ness: one cannot manipu-
+     late dependencies and rules in make: they cannot be put
+     in variables, mapped at lists, etc.
+
+     (In our  tailor  made  compilation  system,  we  worked
+     around  this non-feature by using generic include files
+
+
+     as a stopgap function call.)
+
+
+o    VPATH is a broken concept: programs should not  try  to
+     be intelligent on their own; being intelligent is some-
+     thing the programmer should do.  make should do exactly
+     as  it is told, and make should enable easy formulation
+     of these commands.
+
+Automake tries to solve these problems by building on top of
+this  broken  tool:  an  extra layer of complexity is added,
+with self-modifying Makefiles, and different  Makefile  ver-
+sions for maintainer and user.
+
+
+5: Conclusions
+
+
+We  could  be called `cheap' for complaining about the above
+points, while not even filing decent bugreports.  The  real-
+ity  is that we ourselves are busy and that we don't find it
+amusing to hunt for and fix bugs in a fix (Automake)  for  a
+broken tool (make).
+
+It  should  also  be  emphasised  that  we  still think that
+Automake is a good tool: it is excellent for small projects,
+and  reasonable  for big projects that are fully "standard."
+However, for LilyPond, with its many  sourcefiles  and  many
+different filetypes we found it unwieldy.
+
+We  hope  that  some day a better replacement for make comes
+along, so that the gruesomeness of make and friends may  die
+in oblivion.  (*)
+
+(*)  I  personally  would  like to enter a Makefile as func-
+tional program, whose execution caches function  results  on
+the  disk as files.  But I shan't bother you further with my
+vaporware thoughts..
diff --git a/stepmake/Documentation/out/layout.txt b/stepmake/Documentation/out/layout.txt
new file mode 100644 (file)
index 0000000..01bcb4a
--- /dev/null
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+         doos/                        # gnu/windows32 build and binary releases
+         harmonia -> harmonia-x.y.z
+         harmonia-x.y.z/
+         lilypond -> lilypond-x.y.z   # symlink to development directory
+         lilypond-x.y.z/              # current development
+         patches/                 # patches between different releases
+         RedHat/BUILD                 # RedHat build and binary releases
+         RedHat/RPMS
+         RedHat/SPECS
+         releases/                    # .tar.gz releases
+         test/                        # tarballs and diffs from current version
+         yodl -> yodl-1.30.17
+         yodl-1.30.17
+
+
+
+
+with  prefix  $HOME/usr/src  and (for building rpms only) in
+$HOME/.rpmrc:
+
+
+
+
+
+         topdir: /home/fred/usr/src/RedHat
index d12c14370ea9d5c11788a4cd0baa60f2a4447d34..f01c12573d89352e11680f14f5c830032a803486 100644 (file)
@@ -8,8 +8,16 @@ AT_FILES = $(BLURBS) #
 at-dir = $(doc-dir)/
 at-ext = .in
 BLURBS=BLURB COPERTINA FLAPTEKST
+OUT_DIST_FILES=$(OUTTXT_FILES)
 
-STEPMAKE_TEMPLATES=documentation yolily-topdoc
+STEPMAKE_TEMPLATES=documentation yolily-topdoc install install-out
 
 include $(depth)/make/stepmake.make 
 
+INSTALLATION_DIR=$(datadir)/Documentation/topdocs
+INSTALLATION_FILES=$(DIST_FILES)
+POST_INSTALL=-mkdir $(INSTALLATION_DIR)/out
+
+INSTALLATION_OUT_DIR=$(datadir)/Documentation/topdocs/out
+INSTALLATION_OUT_FILES=$(OUTTXT_FILES)
+
diff --git a/stepmake/Documentation/topdocs/out/AUTHORS.txt b/stepmake/Documentation/topdocs/out/AUTHORS.txt
new file mode 100644 (file)
index 0000000..30fdcd2
--- /dev/null
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+NAME
+
+     AUTHORS - who did what on StepMake?
+
+DESCRIPTION
+
+     This file lists authors of StepMake, and what they did.
+
+AUTHORS
+
+
+o    Han-Wen           Nienhuys           <hanwen@cs.uu.nl>,
+     http://www.cs.uu.nl/people/hanwen
+     Main author.
+
+o    Jan           Nieuwenhuizen          <janneke@gnu.org>,
+     http://www.xs4all.nl/~jantien
+     Main author.
+
+o    Jeffrey B. Reed <daboys@bga.com>, Windows-nt fixes.
diff --git a/stepmake/Documentation/topdocs/out/BLURB b/stepmake/Documentation/topdocs/out/BLURB
new file mode 100644 (file)
index 0000000..7af77f0
--- /dev/null
@@ -0,0 +1,6 @@
+StepMake is a drop-in package that takes care of generic Makefile and
+packaging/distribution issues.  It enables you to write only the simplest of
+Makefile snippets, while providing a series powerful make targets.  Features
+include speed, wildcarding, out/ dir build, stateless Makefiles and package
+clustering.  It includes some handy scripts for making (package-)diffs and
+patches, making binary distributions etc.
diff --git a/stepmake/Documentation/topdocs/out/INSTALL.txt b/stepmake/Documentation/topdocs/out/INSTALL.txt
new file mode 100644 (file)
index 0000000..a3c8f1c
--- /dev/null
@@ -0,0 +1,292 @@
+
+
+
+
+
+
+NAME
+
+     INSTALL - installing StepMake
+
+DESCRIPTION
+
+     This page documents installation and usage of StepMake
+
+ABSTRACT
+
+
+
+
+
+     StepMake is a drop-in package that takes care of generic Makefile and
+     packaging/distribution issues.  It enables you to write only the simplest of
+     Makefile snippets, while providing a series powerful make targets.  Features
+     include speed, wildcarding, out/ dir build, stateless Makefiles and package
+     clustering.  It includes some handy scripts for making (package-)diffs and
+     patches, making binary distributions etc.
+
+
+
+
+
+To use StepMake with your package, you do something remotely
+like:
+
+
+
+
+
+         tar xzf releases/stepmake-0.1.23
+         cd package-x.x.x/                # package to be StepMake-ised
+         ./../stepmake-0.1.23/bin/stepmakeise.sh
+
+
+
+
+You'll have to customize at least the files:
+
+
+
+
+
+         ./VERSION .
+         ./configure.in
+
+
+
+
+to your package's needs.  You might want to take a look at:
+
+
+         ./make/Toplevel.make.in
+         ./config.hh.in
+         ./config.make.in
+
+
+
+
+
+Also, you should put a Makefile  in  every  subdirectory  of
+your  package.   These makefiles generally are quite simple,
+e.g. this is a the makefile  for  an  include  directory  of
+LilyPond:
+
+
+
+
+
+         # lily/include/Makefile
+
+         depth = ../..
+         include $(depth)/make/Stepmake.make
+
+
+
+
+
+it  will  identify  all  .h, .hh, ... files and take care of
+distributing them.
+
+There's a make/Template.make that you can use as an example.
+See also the Makefiles in the LilyPond or Yodl package.
+
+Once  included  in  your  package, StepMake (or in fact, any
+StepMake-ised package) behaves  as  a  normal  subdirectory;
+make  commands such as 'make dist' recurse into the stepmake
+tree (For a list of available targets, type make help  after
+configuring).   Stepmake (and any changes made) will be dis-
+tributed with the main pacakage.  However, StepMake  doesn't
+lose its independency, change to the stepmake directory, and
+it'll behave as  a  main  package.   You  shouldn't  version
+directory  names  of  subpackages, otherwise you'll see that
+package twice in each patch when you upgrade.
+
+
+PREREQUISITES
+
+
+To use StepMake with a package you need:
+
+
+o    A GNU system: StepMake is known to work  on  these  GNU
+     systems:  Linux  (PPC,  intel), FreeBSD, AIX, NeXTStep,
+     IRIX, Digital Unix and Solaris.  If you have the Cygnus
+     WINDOWS32  port  of the GNU utils, it will even work in
+
+
+     Windows NT/95, but we don't promise to support it.
+
+o    GNU make
+
+o    GNU autoconf
+
+
+RECOMMENDED
+
+
+Although not strictly necessary, these  are  recommended  to
+have.
+
+
+o    Python
+
+o    Yodl.  All documentation will be in Yodl. (1.22.jcn3)
+
+o    GNU find
+
+
+INTERNALS
+
+
+Over  time,  we  put a lot of effort in the configure, make,
+distribute system (CMDS) for LilyPond.  Some months ago,  we
+realised it was not standard GNU --- we require GNU make for
+building, and Python for extra scripting.  In an  effort  to
+be  more  GNU,  we  tried  automake,  but after two weeks we
+realised the costs were too high for us and we  reverted  to
+our  own  system (see automake.urgh).  Not long after that i
+was confronted with two other packages that lacked a  decent
+CMDS.  I realised that Lily's would be perfect, it's modular
+and easy.  The only problem was to make a clean cut  between
+generic and Lily specific stuff.  The result was StepMake: a
+bunch of generic makefiles, found in:
+
+
+
+
+
+         stepmake/stepmake/*.make
+
+
+
+
+eneric helper scripts:
+
+
+         stepmake/bin/*.sh
+         stepmake/bin/*.py
+
+
+
+
+and modular configure functions:
+
+
+
+
+
+         stepmake/configure.in
+         stepmake/aclocal.m4
+         stepmake/config.hh.in
+         stepmake/config.make.in
+
+
+
+
+
+Of course, every package has its  own  configure-  and  make
+peculiarities.  The best way to create the configure scripts
+is to copy them from stepmake[1] into you package's toplevel
+directory.  For most packages, you'll only have  to  comment
+in/out some functions in configure.in.
+
+Package specific makefiles go in:
+
+
+
+
+
+         make/Targets.make
+         make/Rulese.make
+         make/Substitute.make
+
+
+
+
+and are included by the generic StepMake makefiles.
+
+
+MAINTAINING
+
+
+If  you want to make and manage (binary) distributions, cre-
+ate and apply patches, you'll  need  some  framework  that's
+outside of the package's sourcetree.  For a number of simple
+maintenance tasks, StepMake will therefore assume  the  fol-
+lowing directory structure:
+-----------
+[1] Actually, stepmake/bin/stepmakeise.sh will  do
+that for you.
+
+
+         doos/                        # gnu/windows32 build and binary releases
+         harmonia -> harmonia-x.y.z
+         harmonia-x.y.z/
+         lilypond -> lilypond-x.y.z   # symlink to development directory
+         lilypond-x.y.z/              # current development
+         patches/                 # patches between different releases
+         RedHat/BUILD                 # RedHat build and binary releases
+         RedHat/RPMS
+         RedHat/SPECS
+         releases/                    # .tar.gz releases
+         test/                        # tarballs and diffs from current version
+         yodl -> yodl-1.30.17
+         yodl-1.30.17
+
+
+
+
+with  prefix  $HOME/usr/src  and (for building rpms only) in
+$HOME/.rpmrc:
+
+
+
+
+
+         topdir: /home/fred/usr/src/RedHat
+
+
+
+
+
+Check and update the layout with the command:
+
+
+
+
+
+         ./stepmake/bin/stepdirs.sh
+
+
+
+
+
+
+SEE ALSO
+
+
+../PATCHES.txt
+
+
+CONFIGURING
+
+
+Stepmake comes with a number of  precooked  configure  func-
+tions  for  general  needs,  such as AC_STEPMAKE_COMPILE for
+
+
+simple C development and AC_STEPMAKE_CXX for C++.
+
+See configure.in and comment in/out the functions that  your
+package  needs.   For specific needs, you can write your own
+autoconf code, see info autoconf.
+
+
+AUTHORS
+
+
+Jan Nieuwenhuizen <janneke@gnu.org>
+
+Han-Wen Nienhuys <hanwen@cs.uu.nl>
+
+Have fun!
index 3b27f3db08b0bd34effb64c49576f1c99ad4ba88..7e0a1e72bfc94d251a307dd1076a96bee58257ee 100644 (file)
@@ -1,3 +1,20 @@
+pl 59
+       - bf: package-diff (remove missing automatic)
+       - install templates, (urg) INSTALL*1,2 INSTALL_OUT*1,2
+
+pl 58
+       - distribute formatted txt files: no yodl needed for operation!
+       - guile 1.2 and 1.3 support
+
+pl 57
+       - yodl first build script fixes
+       - uninstall fixes, but, urg, still have to uninstall twice
+         to get rid of all subdirs
+       - installed stepmake
+         * install not required
+         * only installs on explicit make install from toplevel stepdir
+         * rather urg, 'make dist' needs absolute distdir!
+
 pl 56
        - crude metapost stuff
 
index 57fd582a8e1cf27abfb8674a167474f096c41d9d..e24ec2af87daa2a19b86a84d43275528555a8d68 100644 (file)
@@ -1,7 +1,7 @@
 PACKAGE_NAME=StepMake
 MAJOR_VERSION=0
 MINOR_VERSION=1
-PATCH_LEVEL=56
+PATCH_LEVEL=59
 MY_PATCH_LEVEL=
 
 # use the above to send patches, always empty for released version:
index ebbe27e3c7d96df774d59d2bdeef2e65c1da3f67..804112114198f8aa41cc94275fc3ece20d2b034e 100644 (file)
@@ -153,6 +153,16 @@ AC_DEFUN(AC_STEPMAKE_GXX, [
     fi
 ])
 
+AC_DEFUN(AC_STEPMAKE_GUILE, [
+    # urg, must check for different functions in libguile
+    # to force new check iso reading from cache
+    AC_CHECK_LIB(guile, scm_shell, \
+      LIBS="-lguile $LIBS" AC_DEFINE(HAVE_LIBGUILE), \
+      AC_CHECK_LIB(readline, readline) \
+      AC_CHECK_LIB(dl, dlopen) \
+      AC_CHECK_LIB(guile, scm_boot_guile))
+])
+
 AC_DEFUN(AC_STEPMAKE_INIT, [
 
     . $srcdir/VERSION
@@ -167,16 +177,44 @@ AC_DEFUN(AC_STEPMAKE_INIT, [
     package=`echo $PACKAGE_NAME | tr '[A-Z]' '[a-z]'`
     changequote([, ])dnl
 
+    # No versioning on directory names of sub-packages 
+    # urg, urg
+    stepmake=${datadir}/stepmake
+    presome=${prefix}
+    if test "$prefix" = "NONE"; then
+           presome=${ac_default_prefix}
+    fi
+    stepmake=`echo ${stepmake} | sed "s!\\\${prefix}!$presome!"`
+
     if test "x$PACKAGE" = "xSTEPMAKE"; then
         echo Stepmake package!
        (cd stepmake; rm -f stepmake; ln -s ../stepmake .)
        (cd stepmake; rm -f bin; ln -s ../bin .)
        AC_CONFIG_AUX_DIR(bin)
+       stepmake=stepmake
     else
         echo Package: $PACKAGE
-       AC_CONFIG_AUX_DIR(stepmake/bin)
+       # Check for installed stepmake
+       if test -d $stepmake; then
+           echo Using installed stepmake: $stepmake
+       else
+           stepmake='$(depth)'/stepmake
+           echo Using local stepmake: $datadir/stepmake not found
+       fi
+       AC_CONFIG_AUX_DIR(\
+         $HOME/usr/local/share/stepmake/bin\
+         $HOME/usr/local/lib/stepmake/bin\
+         $HOME/usr/share/stepmake/bin\
+         $HOME/usr/lib/stepmake/bin\
+         /usr/local/share/stepmake/bin\
+         /usr/local/lib/stepmake/bin\
+         /usr/share/stepmake/bin\
+         /usr/lib/stepmake/bin\
+         stepmake/bin\
+       )
     fi
 
+    AC_SUBST(stepmake)
     AC_SUBST(package)
     AC_SUBST(PACKAGE)
     AC_SUBST(PACKAGE_NAME)
@@ -191,10 +229,6 @@ AC_DEFUN(AC_STEPMAKE_INIT, [
     absolute_builddir="`pwd`"
     AC_SUBST(absolute_builddir)
 
-    # No versioning on directory names of sub-packages 
-    stepmake=stepmake
-    AC_SUBST(stepmake)
-
     STATE_VECTOR=`ls make/STATE-VECTOR 2>/dev/null`
     if test "x$STATE_VECTOR" != "x"; then
        STATE_VECTOR="\$(depth)/$STATE_VECTOR"
@@ -249,14 +283,14 @@ dnl    fi
        DOTEXE=.exe
        DIRSEP='\\'
        PATHSEP=';'
-       INSTALL="\$(stepdir)/../bin/install-dot-exe.sh -c"
+       INSTALL="\$(SHELL) \$(stepdir)/../bin/install-dot-exe.sh -c"
     else
        DIRSEP='/'
        PATHSEP=':'
        LN=ln
        LN_S='ln -s'
        ZIP="zip -r -9"
-        INSTALL="\$(stepdir)/../bin/install-sh -c"
+        INSTALL="\$(SHELL) \$(stepdir)/../bin/install-sh -c"
     fi
     AC_SUBST(DOTEXE)
     AC_SUBST(ZIP)
@@ -461,11 +495,13 @@ AC_DEFUN(AC_STEPMAKE_YODL, [
        AC_CHECK_PROGS(YODL2MSLESS, yodl2msless, -echo no yodl)
        AC_CHECK_PROGS(YODL2TEXINFO, yodl2texinfo, -echo no yodl)
        AC_CHECK_PROGS(YODL2TXT, yodl2txt, -echo no yodl)
+       YODL2LESS_DIR='$(bindir)/'
     else
        AC_SUBST(STRIPROFF)
        AC_SUBST(YODL)
        AC_SUBST(YODL2HTML)
        AC_SUBST(YODL2LATEX)
+       AC_SUBST(YODL2LESS_DIR)
        AC_SUBST(YODL2MAN)
        AC_SUBST(YODL2MSLESS)
        AC_SUBST(YODL2TEXINFO)
index 36d16462cabde9149129870c23569f50fb3bee1a..4ca8cd1a8f4e2feff8c5033fc86cd4e53f8927b0 100644 (file)
@@ -1,10 +1,11 @@
 # bin/Makefile
 
 depth = ..
-
 EXTRA_DIST_FILES = install-sh config.sub config.guess
-STEPMAKE_TEMPLATES=script
+STEPMAKE_TEMPLATES=script install
 
 include $(depth)/make/stepmake.make 
 
-
+POST_INSTALL=chmod 755 $(datadir)/bin/*
+INSTALLATION_DIR=$(datadir)/bin
+INSTALLATION_FILES=$(DIST_FILES)
index 0d1aba2820f2db5ee5ef36f2a9b4e26a64927a8b..e8e28f1bab676efebc02e66d0659792913fa7fd7 100644 (file)
@@ -35,7 +35,7 @@ def help ():
        sys.stdout.write (
                'Generate a patch to go to current version\n'
                '  -f, --from=FROM      old is FROM\n'
-               '  -h, --help           print this help\n'
+               '  -h, --help           print this help\n'
                '  -p, --package=DIR    specify package\n'
                '  -r, --release        diff against latest release\n'  
                '  -t, --to=TO          to version TO\n'  
@@ -58,7 +58,10 @@ def remove_automatic (dirnames):
        for d in dirs:
                files = files + multiple_find (['*'], [d])
        for f in files:
-               os.remove (f)
+               try:
+                       os.remove (f)
+               except:
+                       sys.stderr.write ("can't remove: `" + f + "'\n'")
 
 def dirname (v):
        # urg, again?
index 292783aab06bcbbc699d975d1a8b21ed6e6de12c..a2a43b481f36c5799fa97b00e60eb7d169f8069c 100644 (file)
@@ -59,6 +59,7 @@ TROFF = @TROFF@
 YODL= @YODL@
 YODL2HTML= @YODL2HTML@
 YODL2LATEX= @YODL2LATEX@
+YODL2LESS_DIR= @YODL2LESS_DIR@
 YODL2MAN= @YODL2MAN@
 YODL2MSLESS= @YODL2MSLESS@
 YODL2TEXINFO= @YODL2TEXINFO@
index 13f46dff9081ee499d8b8a313abf555c109ba68a..34691c9722fbd59a5db8e8eeb320fbf43e54f24a 100755 (executable)
@@ -593,6 +593,15 @@ fi
         PACKAGE=`echo $PACKAGE_NAME | tr '[a-z]' '[A-Z]'`
     package=`echo $PACKAGE_NAME | tr '[A-Z]' '[a-z]'`
     
+    # No versioning on directory names of sub-packages 
+    # urg, urg
+    stepmake=${datadir}/stepmake
+    presome=${prefix}
+    if test "$prefix" = "NONE"; then
+           presome=${ac_default_prefix}
+    fi
+    stepmake=`echo ${stepmake} | sed "s!\\\${prefix}!$presome!"`
+
     if test "x$PACKAGE" = "xSTEPMAKE"; then
         echo Stepmake package!
        (cd stepmake; rm -f stepmake; ln -s ../stepmake .)
@@ -616,10 +625,38 @@ ac_config_guess=$ac_aux_dir/config.guess
 ac_config_sub=$ac_aux_dir/config.sub
 ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
 
+       stepmake=stepmake
     else
         echo Package: $PACKAGE
+       # Check for installed stepmake
+       if test -d $stepmake; then
+           echo Using installed stepmake: $stepmake
+       else
+           stepmake='$(depth)'/stepmake
+           echo Using local stepmake: $datadir/stepmake not found
+       fi
        ac_aux_dir=
-for ac_dir in stepmake/bin $srcdir/stepmake/bin; do
+for ac_dir in \
+         $HOME/usr/local/share/stepmake/bin\
+         $HOME/usr/local/lib/stepmake/bin\
+         $HOME/usr/share/stepmake/bin\
+         $HOME/usr/lib/stepmake/bin\
+         /usr/local/share/stepmake/bin\
+         /usr/local/lib/stepmake/bin\
+         /usr/share/stepmake/bin\
+         /usr/lib/stepmake/bin\
+         stepmake/bin\
+        $srcdir/\
+         $HOME/usr/local/share/stepmake/bin\
+         $HOME/usr/local/lib/stepmake/bin\
+         $HOME/usr/share/stepmake/bin\
+         $HOME/usr/lib/stepmake/bin\
+         /usr/local/share/stepmake/bin\
+         /usr/local/lib/stepmake/bin\
+         /usr/share/stepmake/bin\
+         /usr/lib/stepmake/bin\
+         stepmake/bin\
+       ; do
   if test -f $ac_dir/install-sh; then
     ac_aux_dir=$ac_dir
     ac_install_sh="$ac_aux_dir/install-sh -c"
@@ -631,7 +668,27 @@ for ac_dir in stepmake/bin $srcdir/stepmake/bin; do
   fi
 done
 if test -z "$ac_aux_dir"; then
-  { echo "configure: error: can not find install-sh or install.sh in stepmake/bin $srcdir/stepmake/bin" 1>&2; exit 1; }
+  { echo "configure: error: can not find install-sh or install.sh in \
+         $HOME/usr/local/share/stepmake/bin\
+         $HOME/usr/local/lib/stepmake/bin\
+         $HOME/usr/share/stepmake/bin\
+         $HOME/usr/lib/stepmake/bin\
+         /usr/local/share/stepmake/bin\
+         /usr/local/lib/stepmake/bin\
+         /usr/share/stepmake/bin\
+         /usr/lib/stepmake/bin\
+         stepmake/bin\
+        $srcdir/\
+         $HOME/usr/local/share/stepmake/bin\
+         $HOME/usr/local/lib/stepmake/bin\
+         $HOME/usr/share/stepmake/bin\
+         $HOME/usr/lib/stepmake/bin\
+         /usr/local/share/stepmake/bin\
+         /usr/local/lib/stepmake/bin\
+         /usr/share/stepmake/bin\
+         /usr/lib/stepmake/bin\
+         stepmake/bin\
+       " 1>&2; exit 1; }
 fi
 ac_config_guess=$ac_aux_dir/config.guess
 ac_config_sub=$ac_aux_dir/config.sub
@@ -642,6 +699,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure.
     
     
     
+    
     cat >> confdefs.h <<EOF
 #define PACKAGE "${PACKAGE_NAME}"
 EOF
@@ -659,10 +717,6 @@ EOF
     absolute_builddir="`pwd`"
     
 
-    # No versioning on directory names of sub-packages 
-    stepmake=stepmake
-    
-
     STATE_VECTOR=`ls make/STATE-VECTOR 2>/dev/null`
     if test "x$STATE_VECTOR" != "x"; then
        STATE_VECTOR="\$(depth)/$STATE_VECTOR"
@@ -691,7 +745,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:695: checking host system type" >&5
+echo "configure:749: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
@@ -716,7 +770,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:720: checking for $ac_word" >&5
+echo "configure:774: 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
@@ -750,7 +804,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:754: checking for $ac_word" >&5
+echo "configure:808: 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
@@ -787,7 +841,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:791: checking for $ac_word" >&5
+echo "configure:845: 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
@@ -821,7 +875,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:825: checking for $ac_word" >&5
+echo "configure:879: 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
@@ -854,7 +908,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:858: checking for $ac_word" >&5
+echo "configure:912: 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
@@ -923,14 +977,14 @@ fi
        DOTEXE=.exe
        DIRSEP='\\'
        PATHSEP=';'
-       INSTALL="\$(stepdir)/../bin/install-dot-exe.sh -c"
+       INSTALL="\$(SHELL) \$(stepdir)/../bin/install-dot-exe.sh -c"
     else
        DIRSEP='/'
        PATHSEP=':'
        LN=ln
        LN_S='ln -s'
        ZIP="zip -r -9"
-        INSTALL="\$(stepdir)/../bin/install-sh -c"
+        INSTALL="\$(SHELL) \$(stepdir)/../bin/install-sh -c"
     fi
     
     
@@ -1004,7 +1058,7 @@ fi
 
 
     echo $ac_n "checking language""... $ac_c" 1>&6
-echo "configure:1008: checking language" >&5    
+echo "configure:1062: checking language" >&5    
     case "$language" in
       En* | en* | Am* | am* | US* | us*)
            lang=English;;
@@ -1037,7 +1091,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:1041: checking for $ac_word" >&5
+echo "configure:1095: 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
@@ -1071,7 +1125,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:1075: checking for $ac_word" >&5
+echo "configure:1129: 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
@@ -1105,7 +1159,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:1109: checking for $ac_word" >&5
+echo "configure:1163: 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
@@ -1139,7 +1193,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:1143: checking for $ac_word" >&5
+echo "configure:1197: 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
@@ -1172,7 +1226,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:1176: checking for $ac_word" >&5
+echo "configure:1230: 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
@@ -1206,7 +1260,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:1210: checking for $ac_word" >&5
+echo "configure:1264: 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
@@ -1240,7 +1294,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:1244: checking for $ac_word" >&5
+echo "configure:1298: 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
@@ -1274,7 +1328,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:1278: checking for $ac_word" >&5
+echo "configure:1332: 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
@@ -1303,6 +1357,7 @@ test -n "$YODL2TXT" && break
 done
 test -n "$YODL2TXT" || YODL2TXT="-echo no yodl"
 
+       YODL2LESS_DIR='$(bindir)/'
     else
        
        
@@ -1312,6 +1367,7 @@ test -n "$YODL2TXT" || YODL2TXT="-echo no yodl"
        
        
        
+       
        export STRIPROFF YODL YODL2HTML YODL2LATEX YODL2MAN YODL2MSLESS YODL2TEXINFO YODL2TXT
     fi
     if test "x$YODL" = "-echo no yodl"; then
@@ -1330,7 +1386,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:1334: checking for $ac_word" >&5
+echo "configure:1390: 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
@@ -1493,13 +1549,13 @@ s%@includedir@%$includedir%g
 s%@oldincludedir@%$oldincludedir%g
 s%@infodir@%$infodir%g
 s%@mandir@%$mandir%g
+s%@stepmake@%$stepmake%g
 s%@package@%$package%g
 s%@PACKAGE@%$PACKAGE%g
 s%@PACKAGE_NAME@%$PACKAGE_NAME%g
 s%@package_depth@%$package_depth%g
 s%@AUTOGENERATE@%$AUTOGENERATE%g
 s%@absolute_builddir@%$absolute_builddir%g
-s%@stepmake@%$stepmake%g
 s%@STATE_VECTOR@%$STATE_VECTOR%g
 s%@CONFIGSUFFIX@%$CONFIGSUFFIX%g
 s%@host@%$host%g
@@ -1528,6 +1584,7 @@ s%@YODL2MAN@%$YODL2MAN%g
 s%@YODL2MSLESS@%$YODL2MSLESS%g
 s%@YODL2TEXINFO@%$YODL2TEXINFO%g
 s%@YODL2TXT@%$YODL2TXT%g
+s%@YODL2LESS_DIR@%$YODL2LESS_DIR%g
 s%@MAKEINFO@%$MAKEINFO%g
 
 CEOF
index c204b04dc2a17764765537192685de9697946b02..fab275e87214e831d3220b82486f27a8edb72023 100644 (file)
@@ -1,7 +1,7 @@
 # file    make/Makefile 
 
 depth = ..
-STEPMAKE_TEMPLATES=makedir
+STEPMAKE_TEMPLATES=makedir install
 BLURBS=BLURB # COPERTINA FLAPTEKST
 
 ifneq ($(strip $(state-vector)),)
@@ -10,4 +10,5 @@ endif
 
 include $(depth)/make/stepmake.make 
 
-
+INSTALLATION_DIR=$(datadir)/make
+INSTALLATION_FILES=$(DIST_FILES)
index c5f611a824e4555d4e3ae456434b0eb259068ad2..004a96b08c7752ef2a7d62697d1640bf8524628c 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Title: StepMake
-Version: 0.1.56
-Entered-date: 14OCT98
+Version: 0.1.59
+Entered-date: 23OCT98
 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.56.tar.gz 
+       40k stepmake-0.1.59.tar.gz 
 Original-site: pcnov095.win.tue.nl /pub/lilypond/development/
-       40k stepmake-0.1.56.tar.gz 
+       40k stepmake-0.1.59.tar.gz 
 Copying-policy: GPL
 End
index bc6591be3050c3419d6e66d2d605d0ecd8f4bc9a..5131d881e98002c310bf33656d46c8633883f095 100644 (file)
@@ -1,9 +1,9 @@
 Name: stepmake
-Version: 0.1.56
+Version: 0.1.59
 Release: 1
 Copyright: GPL
 Group: Development
-Source0: pcnov095.win.tue.nl:/pub/lilypond/development/stepmake-0.1.56.tar.gz
+Source0: pcnov095.win.tue.nl:/pub/lilypond/development/stepmake-0.1.59.tar.gz
 Summary: generic make package
 Packager: janneke@gnu.org (Jan Nieuwenhuizen)
 Buildroot: /tmp/stepmake-install
index 45410640555233caac63926b2bcd03cda8f5fc93..f471aaee77f9722dfae435a66fd97cecdc0160be 100644 (file)
@@ -8,11 +8,11 @@ depth = .
 
 # descent order into subdirectories:
 #
+ifeq ($(PACKAGE),STEPMAKE)
 SUBDIRS = bin make stepmake Documentation
-#
-
-# bootstrap stepmake:
-#
+else
+SUBDIRS =
+endif
 #
 
 # list of distribution files:
@@ -22,7 +22,6 @@ README_FILES = NEWS README TODO
 README_TXT_FILES = AUTHORS.txt INSTALL.txt
 EXTRA_DIST_FILES = $(IN_FILES) VERSION $(README_FILES)  $(SCRIPTS) 
 NON_ESSENTIAL_DIST_FILES = $(README_TXT_FILES)
-
 #
 
 # bootstrap stepmake:
@@ -31,3 +30,21 @@ STEPMAKE_TEMPLATES=toplevel
 include $(depth)/make/stepmake.make 
 #
 
+# descent order into subdirectories:
+#
+ifeq ($(PACKAGE),STEPMAKE)
+SUBDIRS = bin make stepmake Documentation
+else
+SUBDIRS =
+endif
+#
+
+#urg urg
+stepmake/aclocal.m4:
+       -$(LN) aclocal.m4 $@
+
+ifeq ($(PACKAGE),STEPMAKE)
+INSTALLATION_DIR=$(datadir)
+INSTALLATION_FILES=$(DIST_FILES) $(NON_ESSENTIAL_DIST_FILES) GNUmakefile config.make config.status
+include $(stepdir)/install-targets.make
+endif
index 72d8b8047a991acbb1532acf09b0d50e0b3847d8..7bdbd3c278e1aea02a5521a4d4bd7f7f590b8892 100644 (file)
@@ -10,9 +10,12 @@ depth = ..
 SUBDIRS =
 #
 
-STEPMAKE_TEMPLATES=makedir
-
+STEPMAKE_TEMPLATES=makedir install
 
 # bootstrap stepmake:
 #
 -include $(depth)/make/stepmake.make 
+
+INSTALLATION_DIR=$(datadir)/stepmake
+INSTALLATION_FILES=GNUmakefile $(MAKE_FILES)
+
index 862eebf7f7880cad3217b43d509e60b3820cd7f9..59c1b1ecc0ac409c06d255085e1785c45b270a41 100644 (file)
@@ -30,7 +30,7 @@ $(outdir)/$(package).info: $(outdir)/topinfo.texinfo $(OUTTEXINFO_FILES)
 # what to do here?
 ifneq ($(strip $(INFO_FILES)),)
 
-INFOINSTALL=$(MAKE) INSTALLATION_OUT_DIR=$(infodir) depth=$(depth) INSTALLATION_OUT_FILES="$(INFO_FILES)" -f $(stepdir)/install-outfiles.sub.make $@
+INFOINSTALL=$(MAKE) INSTALLATION_OUT_DIR=$(infodir) depth=$(depth) INSTALLATION_OUT_FILES="$(INFO_FILES)" -f $(stepdir)/install-out.sub.make $@
 
 localinstall: # $(INFO_FILES)
        -$(INSTALL) -d $(infodir)
index 1bb8bf6d7fd4c8d09aea89b47de20fb8bbb61626..fb32b06344fb8d676c2af8af94a494c7c78f5690 100644 (file)
@@ -1 +1,5 @@
 # empty
+LDFLAGS = $(ILDFLAGS) $(USER_LDFLAGS) $(EXTRA_LDFLAGS) $(MODULE_LDFLAGS) $($(PACKAGE)_LDFLAGS)
+
+MODULE_LIBES=$(addsuffix /$(outdir)/library.a, $(MODULE_LIBS))
+LOADLIBES = $(MODULE_LIBES) $($(PACKAGE)_LIBES) $(EXTRA_LIBES) $(BLA_LIBES)#u8gh
index 3ca5d629f1e9b1ae6854d5c9fe9316bbebd69a45..1d368b0a4b5386d04c03a7b152760d2c523abbaf 100644 (file)
@@ -86,6 +86,9 @@ doc++:
 
 
 local-dist: $(DIST_FILES) $(OUT_DIST_FILES) $(NON_ESSENTIAL_DIST_FILES)
+#      echo topdir=$(topdir)
+#      echo distdir=$(distdir)
+#      echo locladir=$(localdir)
        mkdir -p $(distdir)/$(localdir)
        $(LN) $(DIST_FILES) $(distdir)/$(localdir)
 
@@ -99,7 +102,9 @@ local-dist: $(DIST_FILES) $(OUT_DIST_FILES) $(NON_ESSENTIAL_DIST_FILES)
                mkdir $(distdir)/$(localdir)/out; \
                $(LN) $(OUT_DIST_FILES) $(distdir)/$(localdir)/out;; \
        esac
-       $(foreach i, $(SUBDIRS), $(MAKE) distdir=../$(distdir) localdir=$(localdir)/$(i) -C $(i) local-dist &&) true
+#      $(foreach i, $(SUBDIRS), $(MAKE) distdir=../$(distdir) localdir=$(localdir)/$(i) -C $(i) local-dist &&) true
+# absolute for installed stepmake
+       $(foreach i, $(SUBDIRS), $(MAKE) topdir=$(topdir) distdir=$(distdir) localdir=$(localdir)/$(notdir $(i)) -C $(i) local-dist &&) true
 
 
 
@@ -118,7 +123,7 @@ $(outdir)/VERSION: $(depth)/VERSION
        cp $< $@
 
 $(outdir)/version.hh: $(outdir)/VERSION
-       sh ./$(step-bindir)/make-version.sh $< > $@
+       sh $(step-bindir)/make-version.sh $< > $@
 
 # should this be in Rules?
 configure: configure.in aclocal.m4
index 223c59d0935f460e35ed7991c367485b8f8a9d48..811dd0d3a29fa916fc2b0a104ec86e50126e1d74 100644 (file)
 # not eh, normally used
 DEPTH = $(depth)/$(package-depth)
 
+# topdir := $(shell cd $(depth); pwd)
+ifeq ($(topdir),)
 topdir := $(shell cd $(depth); pwd)
+endif
 pwd := $(shell pwd)
 
-
 # derived names
 ifeq ($(distdir),)
-  distdir = $(depth)/$(outdir)/$(DIST_NAME)
+#  distdir = $(depth)/$(outdir)/$(DIST_NAME)
+# must be absolute for 'make dist' with installed stepmake
+  distdir = $(topdir)/$(outdir)/$(DIST_NAME)
   DIST_NAME = $(package)-$(TOPLEVEL_VERSION)
 endif
 distname = $(package)-$(TOPLEVEL_VERSION)
 
-
-
-
 # obsolete?
 makeout = $(depth)/make/$(outdir)
 docout = $(depth)/Documentation/$(outdir)
@@ -38,8 +39,9 @@ po-dir = $(depth)/po
 # sort-out which of these are still needed
 #
 $(package)_bindir = $(depth)/bin
-step-bindir = $(depth)/$(stepmake)/bin
-abs-step-bindir = $(topdir)/$(stepmake)/bin
+step-bindir = $(stepmake)/bin
+# deprecated
+# abs-step-bindir = $(topdir)/$(stepmake)/bin
 #
 group-dir = $(shell cd $(DEPTH)/..; pwd)
 release-dir = $(group-dir)/releases
@@ -83,10 +85,7 @@ date := $(shell date +%x)    #duplicated?
 ARFLAGS = ru
 
 INCLUDES =  include $(outdir) $($(PACKAGE)_INCLUDES)
-LDFLAGS = $(ILDFLAGS) $(USER_LDFLAGS) $(EXTRA_LDFLAGS) $(MODULE_LDFLAGS) $($(PACKAGE)_LDFLAGS)
 
-MODULE_LIBES=$(addsuffix /$(outdir)/library.a, $(MODULE_LIBS))
-LOADLIBES = $(MODULE_LIBES) $($(PACKAGE)_LIBES) $(EXTRA_LIBES)
 # urg: for windows ?
 # LOADLIBES = $(MODULE_LIBES) $($(PACKAGE)_LIBES) $(EXTRA_LIBES) -lstdc++
 #
@@ -134,7 +133,7 @@ endif
 
 # substitute $(STRIP) in Site.make if you want stripping
 DO_STRIP=true
-LOOP=$(foreach i,  $(SUBDIRS),  $(MAKE) -C $(i) $@ &&) true
+LOOP=$(foreach i,  $(SUBDIRS), $(MAKE) PACKAGE=$(PACKAGE) -C $(i) $@ &&) true
 
 
 include $(stepdir)/files.make
diff --git a/stepmake/stepmake/install-out-rules.make b/stepmake/stepmake/install-out-rules.make
new file mode 100644 (file)
index 0000000..841db19
--- /dev/null
@@ -0,0 +1,2 @@
+
+#empty
diff --git a/stepmake/stepmake/install-out-targets.make b/stepmake/stepmake/install-out-targets.make
new file mode 100644 (file)
index 0000000..eb44592
--- /dev/null
@@ -0,0 +1,41 @@
+# install-out-targets.make
+
+localinstall: localinstall-files localinstall-outfiles
+
+localinstall-files:
+
+# urg, parameterise
+localinstall-outfiles: $(INSTALLATION_OUT_FILES) $(INSTALLATION_OUT_FILES1) $(INSTALLATION_OUT_FILES2)
+       -$(INSTALL) -d $(INSTALLATION_OUT_DIR)
+       $(foreach i, $(INSTALLATION_OUT_FILES), \
+               $(INSTALL) -m 644 $(i) $(INSTALLATION_OUT_DIR) && )true
+ifneq ($(strip $(INSTALLATION_OUT_FILES1)),)
+       -$(INSTALL) -d $(INSTALLATION_OUT_DIR1)
+       $(foreach i, $(INSTALLATION_OUT_FILES1), \
+               $(INSTALL) -m 644 $(i) $(INSTALLATION_OUT_DIR1) && )true
+endif
+ifneq ($(strip $(INSTALLATION_OUT_FILES2)),)
+       -$(INSTALL) -d $(INSTALLATION_OUT_DIR2)
+       $(foreach i, $(INSTALLATION_OUT_FILES2), \
+               $(INSTALL) -m 644 $(i) $(INSTALLATION_OUT_DIR2) && )true
+endif
+
+localuninstall: localuninstall-outfiles localuninstall-files 
+
+localuninstall-files:
+
+localuninstall-outfiles:
+       $(foreach  i, $(notdir $(INSTALLATION_OUT_FILES)), \
+               rm -f $(INSTALLATION_OUT_DIR)/$(i) && ) true
+       -rmdir $(INSTALLATION_OUT_DIR)
+ifneq ($(strip $(INSTALLATION_OUT_FILES1)),)
+       $(foreach  i, $(notdir $(INSTALLATION_OUT_FILES1)), \
+               rm -f $(INSTALLATION_OUT_DIR1)/$(i) && ) true
+       -rmdir $(INSTALLATION_OUT_DIR1)
+endif
+ifneq ($(strip $(INSTALLATION_OUT_FILES2)),)
+       $(foreach  i, $(notdir $(INSTALLATION_OUT_FILES2)), \
+               rm -f $(INSTALLATION_OUT_DIR2)/$(i) && ) true
+       -rmdir $(INSTALLATION_OUT_DIR2)
+endif
+#      -(cd $(INSTALLATION_OUT_DIR)/..; dir=`dirname \`pwd\`` cd ..; rmdir $$dir)
diff --git a/stepmake/stepmake/install-out-vars.make b/stepmake/stepmake/install-out-vars.make
new file mode 100644 (file)
index 0000000..841db19
--- /dev/null
@@ -0,0 +1,2 @@
+
+#empty
diff --git a/stepmake/stepmake/install-out.sub.make b/stepmake/stepmake/install-out.sub.make
new file mode 100644 (file)
index 0000000..cd95c35
--- /dev/null
@@ -0,0 +1,5 @@
+# install-out.sub.make
+
+include $(depth)/make/stepmake.make
+include $(stepdir)/install-out-targets.make
+
diff --git a/stepmake/stepmake/install-outfiles.make b/stepmake/stepmake/install-outfiles.make
deleted file mode 100644 (file)
index b4f2539..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-# Initial_outfiles.make
-
-localinstall: localinstall-files
-
-localinstall-files: $(INSTALLATION_OUT_FILES)
-       -$(INSTALL) -d $(INSTALLATION_OUT_DIR)
-       $(foreach i, $(INSTALLATION_OUT_FILES), \
-               $(INSTALL) -m 644 $(i) $(INSTALLATION_OUT_DIR) && )true
-
-localuninstall: localuninstall-files
-
-localuninstall-files:
-       $(foreach  i, $(notdir $(INSTALLATION_OUT_FILES)), \
-               rm -f $(INSTALLATION_OUT_DIR)/$(i) && ) true
-       -rmdir $(INSTALLATION_OUT_DIR)
diff --git a/stepmake/stepmake/install-outfiles.sub.make b/stepmake/stepmake/install-outfiles.sub.make
deleted file mode 100644 (file)
index a9a306b..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-# Initial_outfiles.sub.make
-
-include $(depth)/make/stepmake.make
-include $(stepdir)/install-outfiles.make
-
diff --git a/stepmake/stepmake/install-rules.make b/stepmake/stepmake/install-rules.make
new file mode 100644 (file)
index 0000000..841db19
--- /dev/null
@@ -0,0 +1,2 @@
+
+#empty
diff --git a/stepmake/stepmake/install-targets.make b/stepmake/stepmake/install-targets.make
new file mode 100644 (file)
index 0000000..aa648c3
--- /dev/null
@@ -0,0 +1,49 @@
+# install-targets.make
+
+localinstall: localinstall-files localinstall-outfiles
+
+localinstall-outfiles:
+
+# urg, parameterise
+localinstall-files:
+       $(PRE_INSTALL)
+       -$(INSTALL) -d $(INSTALLATION_DIR)
+       $(foreach i,  $(INSTALLATION_FILES),\
+               $(INSTALL) -m 644 $(i) $(INSTALLATION_DIR) &&)true
+       $(POST_INSTALL)
+ifneq ($(strip $(INSTALLATION_FILES1)),)
+       $(PRE_INSTALL1)
+       -$(INSTALL) -d $(INSTALLATION_DIR1)
+       $(foreach i,  $(INSTALLATION_FILES1),\
+               $(INSTALL) -m 644 $(i) $(INSTALLATION_DIR1) &&)true
+       $(POST_INSTALL1)
+endif
+ifneq ($(strip $(INSTALLATION_FILES2)),)
+       $(PRE_INSTALL2)
+       -$(INSTALL) -d $(INSTALLATION_DIR2)
+       $(foreach i,  $(INSTALLATION_FILES2),\
+               $(INSTALL) -m 644 $(i) $(INSTALLATION_DIR2) &&)true
+       $(POST_INSTALL2)
+endif
+
+localuninstall: localuninstall-outfiles localuninstall-files 
+
+localuninstall-outfiles:
+
+localuninstall-files:
+       $(foreach i,  $(INSTALLATION_FILES),\
+               rm -f $(INSTALLATION_DIR)/$(i) && ) true
+       -$(foreach i, $(SUBDIRS), rmdir $(INSTALLATION_DIR)/$(i); )
+       -rmdir $(INSTALLATION_DIR)
+ifneq ($(strip $(INSTALLATION_FILES1)),)
+       $(foreach i,  $(INSTALLATION_FILES1),\
+               rm -f $(INSTALLATION_DIR1)/$(i) && ) true
+       -$(foreach i, $(SUBDIRS), rmdir $(INSTALLATION_DIR1)/$(i); )
+       -rmdir $(INSTALLATION_DIR1)
+endif
+ifneq ($(strip $(INSTALLATION_FILES2)),)
+       $(foreach i,  $(INSTALLATION_FILES2),\
+               rm -f $(INSTALLATION_DIR2)/$(i) && ) true
+       -$(foreach i, $(SUBDIRS), rmdir $(INSTALLATION_DIR2)/$(i); )
+       -rmdir $(INSTALLATION_DIR2)
+endif
diff --git a/stepmake/stepmake/install-vars.make b/stepmake/stepmake/install-vars.make
new file mode 100644 (file)
index 0000000..841db19
--- /dev/null
@@ -0,0 +1,2 @@
+
+#empty
diff --git a/stepmake/stepmake/install.sub.make b/stepmake/stepmake/install.sub.make
new file mode 100644 (file)
index 0000000..7a4dc59
--- /dev/null
@@ -0,0 +1,5 @@
+# install.sub.make
+
+include $(depth)/make/stepmake.make
+include $(stepdir)/install-targets.make
+
diff --git a/stepmake/stepmake/installfiles.make b/stepmake/stepmake/installfiles.make
deleted file mode 100644 (file)
index 58d10e3..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-# Installfiles.make
-
-localinstall: localinstall-files
-
-localinstall-files:
-       -$(INSTALL) -d $(INSTALLATION_DIR)
-       $(foreach i,  $(INSTALLATION_FILES),\
-               $(INSTALL) -m 644 $(i) $(INSTALLATION_DIR) &&)true
-
-localuninstall: localuninstall-files
-
-localuninstall-files:
-       $(foreach i,  $(INSTALLATION_FILES),\
-               rm -f $(INSTALLATION_DIR)/$(i) && ) true
-       -rmdir $(INSTALLATION_DIR)
index 866786d15b2bd17509aaf84431aad8e6e6cacef3..a33b8cdd5203d89580973ba7baa3cede7139be95 100644 (file)
@@ -4,7 +4,7 @@ $(outdir)/%.pfa: %.mf
 # i've got no idea what this scaling could be for, on both sides...
 # it seems that 'low_res', which should be all we ever need according
 # to the metapost mfplain guru, really does 200dpi, iso 600dpi (minimun)
-       $(METAPOST) "&mfplain \mode=lowres; \mag=100.0; batchmode; input $<"
+       -$(METAPOST) "&mfplain \mode=lowres; \mag=100.0; batchmode; input $<"
 #      -$(METAPOST) "&mfmp \mode=ljfour; \mag=100.0; batchmode; input $<"
        $(PYTHON) $(depth)/buildscripts/ps-to-pfa.py $<
        rm -f $(basename $(@F)).[0-9]*
index b5423aa25de9e1e897c86e6b96df74853ace8384..32e734cba290701044120cbc7a3d1a6be0cca72c 100644 (file)
@@ -13,9 +13,10 @@ local-maintainerclean:
 GNUmakefile: make/toplevel.make.in
        $(MAKE) INFILE=$< OUTFILE=$@ -f $(stepdir)/automatically-generated.sub.make
 
-aclocal.m4: $(stepdir)/../aclocal.m4
+ifneq ($(PACKAGE),STEPMAKE)
+aclocal.m4: $(stepmake)/aclocal.m4
        $(MAKE) INFILE=$< OUTFILE=$@ LINECOMMENT=dnl -f $(stepdir)/automatically-generated.sub.make
-
+endif
 
 local-WWW: #index.html 
 
@@ -35,7 +36,7 @@ dist:
 # ugh.
 # Can't compare "stage1" dist with "stage2" dist in this way?
        -ln -f $(depth)/$(outdir)/$(distname).tar.gz $(release-dir)
-       rm -rf ./$(distdir)/
+       rm -rf $(distdir)/
 
 local-help:
        @echo -e "\
index 86bf7797b04cba31a546ce44723ef51b4829920f..1befb1f496bae616a5a732da707afc5206c76a5c 100644 (file)
@@ -6,10 +6,10 @@ depth = ..
 TEX_FILES = $(wildcard *.tex)
 
 EXTRA_DIST_FILES =  $(TEX_FILES) lilyponddefs.ps
+STEPMAKE_TEMPLATES=install
 
 INSTALLATION_DIR=$(datadir)/tex/
 INSTALLATION_FILES=$(TEX_FILES)
 
 include $(depth)/make/stepmake.make
-include $(stepdir)/installfiles.make
 
index b3ba94564ea3da7cef80366db7da487ce87de0f2..467dc4589afbaff7c55921fcc79294f5c44fb200 100644 (file)
@@ -15,7 +15,8 @@
 {
        /object exch def
        gsave
-       exch translate
+       %exch translate
+       translate
        0 0 moveto
        object
        grestore
@@ -67,7 +68,7 @@
        stafflinethickness 1.6 mul widthbar
 } bind def
 
-/maatstreep
+/maatstreep % height
 {
        thinbar
 } bind def
@@ -77,8 +78,9 @@
        thickbar
 } bind def
 
-/generalmeter
+/generalmeter % num den
 {
+       pop pop
 } bind def
 
 /pianobrace
        yoffset staffheight 8 mul sub /yoffset exch def
 } bind def
 
-/unknown {} bind def
+/unknown { (U) show} bind def
+/empty {(E) show} bind def
 
 /turnOnExperimentalFeatures { } bind def