From 56d6d541266c300b10a6e1b6c026a7682ad12b61 Mon Sep 17 00:00:00 2001 From: Han-Wen Nienhuys Date: Fri, 6 Feb 1998 00:12:48 +0100 Subject: [PATCH] release: 0.1.44 --- AUTHORS.txt | 4 +- Documentation/Rules.make | 12 - Documentation/index.pod | 5 + Documentation/mutopia.pod | 9 +- INSTALL.txt | 12 +- NEWS | 23 ++ VERSION | 2 +- bin/conflily.sh | 2 +- bin/convert-mudela.pl | 7 + bin/flower.py | 39 +++ bin/foo.sh | 1 + bin/lilypython.py | 1 + bin/ly2dvi.sh | 419 +++++++++++++++++----------- bin/make-patch.py | 38 --- bin/make-website.py | 42 ++- debian/out/dummy.dep | 0 flower/NEWS | 3 + flower/include/path.hh | 2 +- flower/include/string.hh | 5 - flower/path.cc | 19 +- flower/scalar.cc | 8 +- flower/string-convert.cc | 16 +- flower/string.cc | 11 +- flower/test/main.cc | 16 +- flower/test/pqtest.cc | 16 +- flower/test/stringtest.cc | 97 ++++--- init/engraver.ly | 2 +- init/lily-init.ly | 2 +- init/paper16.ly | 2 +- init/paper20.ly | 2 +- init/property.ly | 4 + input/Makefile | 4 + input/beams.ly | 2 +- input/cadenza.ly | 2 +- input/collisions.ly | 2 +- input/denneboom.ly | 163 ++++++++--- input/font-body.ly | 2 +- input/font.ly | 2 +- input/font16.ly | 2 +- input/gourlay.ly | 2 +- input/keys.ly | 2 +- input/kortjakje.ly | 2 +- input/multi.ly | 13 +- input/pedal.ly | 2 +- input/rhythm.ly | 2 +- input/scales.ly | 2 +- input/scripts.ly | 2 +- input/sleur.ly | 2 +- input/slurs.ly | 2 +- input/spacing.ly | 2 +- input/stem.ly | 2 +- input/toccata-fuga-E.ly | 2 +- input/twinkle-pop.ly | 2 +- input/twinkle.ly | 2 +- lily/VERSION | 2 +- lily/beam-grav.cc | 3 +- lily/general-script-def.cc | 1 + lily/include/plet-engraver.hh | 2 + lily/include/plet-spanner.hh | 1 + lily/include/text-def.hh | 1 + lily/lexer.l | 21 +- lily/main.cc | 3 +- lily/parser.y | 109 +++++--- lily/plet-engraver.cc | 31 +- lily/plet-spanner.cc | 11 +- lily/text-def.cc | 8 + make/Rules.make | 3 + make/Variables.make | 5 + make/lelievijver.lsm | 8 +- make/lilypond.lsm | 8 +- make/lilypond.spec | 6 +- mi2mu/mudela-item.cc | 4 +- mi2mu/mudela-staff.cc | 2 + mi2mu/mudela-stream.cc | 2 +- mutopia/J.S.Bach/Makefile | 18 +- mutopia/J.S.Bach/preludes-1.ly | 113 ++++++++ mutopia/J.S.Bach/preludes-2.ly | 118 ++++++++ mutopia/J.S.Bach/preludes-3.ly.m4 | 153 ++++++++++ mutopia/J.S.Bach/preludes-4.ly | 72 +++++ mutopia/J.S.Bach/scsii-menuetto.ly | 8 +- mutopia/J.S.Bach/scsii-menuetto.tex | 19 -- mutopia/J.S.Bach/wtk1-fugue1.ly | 2 +- mutopia/J.S.Bach/wtk1-fugue2.ly | 2 +- mutopia/J.S.Bach/wtk1-prelude1.ly | 2 +- mutopia/Makefile | 4 + mutopia/gallina.ly | 4 +- mutopia/out/dummy.dep | 0 mutopia/standchen-16.ly | 2 +- mutopia/standchen-20.ly | 2 +- mutopia/standchen.ly | 2 +- mutopia/standje.ly | 77 ++++- 91 files changed, 1362 insertions(+), 508 deletions(-) create mode 100755 bin/foo.sh delete mode 100644 debian/out/dummy.dep create mode 100644 mutopia/J.S.Bach/preludes-1.ly create mode 100644 mutopia/J.S.Bach/preludes-2.ly create mode 100644 mutopia/J.S.Bach/preludes-3.ly.m4 create mode 100644 mutopia/J.S.Bach/preludes-4.ly delete mode 100644 mutopia/J.S.Bach/scsii-menuetto.tex delete mode 100644 mutopia/out/dummy.dep diff --git a/AUTHORS.txt b/AUTHORS.txt index 05b01d95ed..d20b99bb41 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -61,7 +61,7 @@ CONTRIBUTORS -2/Feb/98 LilyPond 0.1.43 1 +29/Jan/98 LilyPond 0.1.44 1 @@ -127,6 +127,6 @@ AUTHORS(1) LilyPond documentation AUTHORS(1) -2/Feb/98 LilyPond 0.1.43 2 +29/Jan/98 LilyPond 0.1.44 2 diff --git a/Documentation/Rules.make b/Documentation/Rules.make index 88ab6fb34a..fc9a6198f1 100644 --- a/Documentation/Rules.make +++ b/Documentation/Rules.make @@ -43,18 +43,6 @@ $(outdir)/%.gz: $(outdir)/% gzip -c9 $< > $@ name-stem= $(notdir $(basename $<)) -$(outdir)/%.dvi: $(depth)/input/%.ly $(depth)/VERSION - (cd $(outdir); \ - lilypond -I/ ../$< ) - (cd $(outdir); \ - if [ -f ../$(basename $< ).tex ]; \ - then \ - latex ../$(basename $< ) ;\ - else \ - tex $(name-stem) ;\ - fi) - - $(outdir)/%.gif: $(outdir)/%.ps sh $(depth)/bin/ps-to-gifs.sh $< diff --git a/Documentation/index.pod b/Documentation/index.pod index 865b5e2dcf..1bbba2ad37 100644 --- a/Documentation/index.pod +++ b/Documentation/index.pod @@ -29,12 +29,16 @@ and the ftp site. =head2 Examples +=over 4 + +=item * short examples of what LilyPond can do: MIDI, PS, .gif and input. +=item * examples of what LilyPond can do @@ -42,6 +46,7 @@ with real music: MIDI, PS, .gif and input +=back =head2 NEWS! diff --git a/Documentation/mutopia.pod b/Documentation/mutopia.pod index ed95d6ff0b..8b179a7863 100644 --- a/Documentation/mutopia.pod +++ b/Documentation/mutopia.pod @@ -14,9 +14,9 @@ and mudela. Music publishers make lots of money out of selling sheet music which is in the public domain (the composers died a long time ago). It is usually prohibited to xerox the sheet music. Publishers have two -arguments to justify this policy: the high prices are there to guarantee -diversity (keeping lots of stock is expensive), and to encourage new -work being composed. +arguments to justify this policy: the high prices are there to +guarantee diversity (keeping lots of it in stock is expensive), and to +encourage new work being composed. This is bad. Storing a Mudela file takes almost no space at all, and if sheet music could be had for free, then it would be much easier @@ -34,8 +34,6 @@ We also need an archive of public domain sheet music; this is what we call The Mutopia Project. - - =head1 STATUS This project is still in its vapourware stage, so don't ask questions @@ -49,6 +47,7 @@ Just as an aside, the LilyPond package includes the following music: J.S. Bach, Das Wohltemperierte Clavier I: C major Prelude & Fugue, C minor fugue. Solo cello suites: suite II, menuetto (alto version). +Six small preludes: some preludes. =item * diff --git a/INSTALL.txt b/INSTALL.txt index 4e5b681528..c014f4300e 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -61,7 +61,7 @@ RECOMMENDED -2/Feb/98 LilyPond 0.1.43 1 +28/Jan/98 LilyPond 0.1.44 1 @@ -127,7 +127,7 @@ CONFIGURING and COMPILING -2/Feb/98 LilyPond 0.1.43 2 +28/Jan/98 LilyPond 0.1.44 2 @@ -193,7 +193,7 @@ INSTALL(1) LilyPond documentation INSTALL(1) -2/Feb/98 LilyPond 0.1.43 3 +28/Jan/98 LilyPond 0.1.44 3 @@ -259,7 +259,7 @@ EXAMPLE -2/Feb/98 LilyPond 0.1.43 4 +28/Jan/98 LilyPond 0.1.44 4 @@ -325,7 +325,7 @@ MUSIXTEX -2/Feb/98 LilyPond 0.1.43 5 +28/Jan/98 LilyPond 0.1.44 5 @@ -391,6 +391,6 @@ AUTHORS -2/Feb/98 LilyPond 0.1.43 6 +28/Jan/98 LilyPond 0.1.44 6 diff --git a/NEWS b/NEWS index 107512ee2d..ce79217d60 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,25 @@ + +pl 44 + - ly2dvi 0.6.hwn1 + - ly2dvi 0.6 (JAF) + - use ly2dvi for website + +pl 44.jcn2 + - fingers default to above note + - preludes-2.ly + - parser: fingerings + - preludes-1.ly + - bf: denneboom.ly + - preludes-3.ly.m4, standje.ly, preludes-4.ly + - make rule for macro ly-files + - pletvisibility (init/property.ly): + * default no bracket with beams + * invisible plet bracket feature + - finger dir in text-def + +******* +feb 2 + pl 43 - bf: broken Plet_spanners - more GNITting @@ -5,6 +27,7 @@ pl 43 - some NeXTStep patches from tiggr - don't do overstrike/bold chars in textfiles + pl 42.jcn2 - bit hesitating start of mutopia - bf: don't try to typeset unterminated plet diff --git a/VERSION b/VERSION index 901ee9191c..d0da0ec0d1 100644 --- a/VERSION +++ b/VERSION @@ -1,6 +1,6 @@ TOPLEVEL_MAJOR_VERSION = 0 TOPLEVEL_MINOR_VERSION = 1 -TOPLEVEL_PATCH_LEVEL = 43 +TOPLEVEL_PATCH_LEVEL = 44 TOPLEVEL_MY_PATCH_LEVEL = # use the above to send patches, always empty for released version: diff --git a/bin/conflily.sh b/bin/conflily.sh index 520af8b24c..a89f9e7711 100644 --- a/bin/conflily.sh +++ b/bin/conflily.sh @@ -27,7 +27,7 @@ ln -sf $lelie/current/mi2mu/out/mi2mu bin/out/mi2mu if [ "x$LILYINCLUDE" = "x" ]; then echo you should make add the following to your login script - echo "export LILYINCLUDE=$lelie/current/init:$lelie/current/input:$lelie/current/mutopia:$lelie/current/mutopia/j.s.bach" + echo "export LILYINCLUDE=$lelie/current/init:$lelie/current/input:$lelie/current/mutopia:$lelie/current/mutopia/out:$lelie/current/input:$lelie/current/mutopia/J.S.Bach:$lelie/current/mutopia/J.S.Bach/out" echo "export PATH=$PATH:$lelie/current/bin/out/" echo "export MFINPUTS=$MFINPUTS:$lelie/current/mf" fi diff --git a/bin/convert-mudela.pl b/bin/convert-mudela.pl index e10af3b077..06578f3157 100644 --- a/bin/convert-mudela.pl +++ b/bin/convert-mudela.pl @@ -159,6 +159,12 @@ sub convert_0_1_7_to_0_1_8 s/\\plet *([1-9][0-9]*) *\/ *([2-9][0-9]*) *;/\\[$1\/$2/; } +sub convert_0_1_8_to_0_1_9 +{ +# sticky plet shorthand... +# print "introduced plet and finger shorthands...\n"; +} + ############################################################### sub last_conversion @@ -207,6 +213,7 @@ my %minor_conversions = ("0.0.50" => \&no_conv, "0.1.6" => \&convert_0_1_5_to_0_1_6 ,"0.1.7" => \&convert_0_1_6_to_0_1_7 ,"0.1.8" => \&convert_0_1_7_to_0_1_8 + ,"0.1.9" => \&convert_0_1_8_to_0_1_9 ); diff --git a/bin/flower.py b/bin/flower.py index 5625599e7a..c7af8dd307 100644 --- a/bin/flower.py +++ b/bin/flower.py @@ -33,3 +33,42 @@ class File: def __del__ (self): self.close (); + + +import fnmatch +import os + +_debug = 0 + +_prune = ['(*)'] + + +def my_find(patterns, dir = os.curdir): + list = [] + names = os.listdir(dir) + names.sort() + for name in names: + if name in (os.curdir, os.pardir): + continue + fullname = os.path.join(dir, name) + for pat in patterns: + if fnmatch.fnmatch(name, pat): + list.append(fullname) + if os.path.isdir(fullname) and not os.path.islink(fullname): + for p in _prune: + if fnmatch.fnmatch(name, p): + if _debug: print "skip", `fullname` + break + else: + if _debug: print "descend into", `fullname` + found = my_find(patterns, fullname) + if found: + list = list + found + return list + +def multiple_find(pats, dirnames): + from find import find + l = [] + for d in dirnames: + l = l + my_find(pats, d) + return l diff --git a/bin/foo.sh b/bin/foo.sh new file mode 100755 index 0000000000..36ac3689b1 --- /dev/null +++ b/bin/foo.sh @@ -0,0 +1 @@ +#! /bin/bash diff --git a/bin/lilypython.py b/bin/lilypython.py index 5b68b97739..a9055e5c27 100644 --- a/bin/lilypython.py +++ b/bin/lilypython.py @@ -13,6 +13,7 @@ import pwd import regex import regsub from string import * +from flower import * import sys import os import getopt diff --git a/bin/ly2dvi.sh b/bin/ly2dvi.sh index 9b69a21d80..ab82f00919 100644 --- a/bin/ly2dvi.sh +++ b/bin/ly2dvi.sh @@ -8,14 +8,26 @@ # Original LaTeX file made by Mats Bengtsson, 17/8 1997 # -VERSION="0.5" -IDENTIFICATION="lytodvi.sh $VERSION" +VERSION="0.6.hwn1" +NAME=ly2dvi.sh +IDENTIFICATION="$NAME $VERSION" NOW=`date` echo "$IDENTIFICATION" 1>&2 # NEWS -# 0.5.hwn1 -# - do tee of output. + +# 0.6.hwn1 +# - handle LILYINCLUDE +# - --output +# +# 0.6 +# - Source rc-files, if present. Files are: +# /usr/local/share/lilyrc /etc/lilyrc $HOME/.lilyrc ./.lilyrc +# - tee output from Lilypond +# - Handles margins for A4 paper (equal on both sides) +# - new option -s (--separate) for one LaTeX run per file, +# else all files are run together + # 0.5 # - More useful ("two-level") debug. # - The Q&D hack to find file names and not handling \include @@ -103,14 +115,26 @@ Usage: $0 [options] file[s] Options: -D, --debug set debug mode + -o, --output set output directory -h, --help this help text -k, --keep keep LaTeX file -l, --language= give LaTeX language (babel) -p, --papersize= give LaTeX papersize (eg. a4paper) + -s, --separate run all files separately through LaTeX files may be (a mix of) input to or output from lilypond(1) EOF } + +# +# RC-files ? +# +for D in /usr/local/share/ /etc/ $HOME/. ./. +do + RCfile=$D"lilyrc" + [ -f $RCfile ] && . $RCfile +done + # # Keywords defined in titledefs.tex # @@ -136,13 +160,16 @@ fi # debugging # debug_echo=true - +# +# All files in one LaTeX run +# +SEPFILE=N # # Find command line options and switches # # "x:" x takes argument # -switches="Dhkl:p:\?" +switches="Do:hkl:p:s\?" options="" # # ugh, "\-" is a hack to support long options @@ -170,9 +197,15 @@ do l ) LNG=$OPTARG ;; + o ) + OUTPUTDIR=$OPTARG + ;; p ) PSZ=$OPTARG ;; + s ) + SEPFILE=Y + ;; \? ) help; exit -1 @@ -181,6 +214,13 @@ do -) $debug_echo "long option: \`$OPTARG'" case "$OPTARG" in + D*|-D*) + if [ $debug_echo = echo ] + then + set -x + fi + debug_echo=echo + ;; h*|-h*) help; exit 0 @@ -194,12 +234,11 @@ do p*|-p*) PSZ=`echo $OPTARG | sed -e s/"^.*="//` ;; - D*|-D*) - if [ $debug_echo = echo ] - then - set -x - fi - debug_echo=echo + o*|-o*) + OUTPUTDIR=$OPTARG + ;; + s*|-s*) + SEPFILE=Y ;; *|-*) echo $0": illegal option -- "$OPTARG; @@ -220,20 +259,200 @@ then exit 1 fi # -for GF in $* +startFile(){ +# +# LaTeX file name +# +if [ "$KEEP" != "Y" ] +then + if [ "$TMP" = "" ] + then + TMP=/tmp + fi + if [ ! -d $TMP ] + then + $debug_echo $IDENTIFICATION": temporary directory "$TMP" not found, set to /tmp" + TMP=/tmp + fi +# + BN=`basename $File .tex` + FN=$BN.$$ + LF=$TMP/$FN.tex +else + BN=`basename $File .tex` + FN=$BN.$$ + LF=$FN.tex +fi +# +# Find: +# paper size (PSZ, overridden by command line option -p) +# language (LNG, overridden by command line option -l) +# textwidth +# +eval `sed -n \\ + -e 's/\\\\def\\\\mudelapapersize{\([^}]*\).*$/fPSZ=\1;/p' \\ + -e 's/\\\\def\\\\mudelalanguage{\([^}]*\).*$/fLNG=\1;/p' \\ + -e 's/\\\\def\\\\mudelapaperlinewidth{\([^}]*\).*$/TWN=\1;/p' \\ + $File` +if [ "$PSZ" = "" ] +then + PSZ=$fPSZ +fi +if [ "$PSZ" != "" ] +then + PAPER="["$PSZ"]" +fi +# +if [ "$LNG" = "" ] +then + LNG=$fLNG +fi +if [ "$LNG" != "" ] +then + LLNG="\usepackage["$LNG"]{babel}" +else + LLNG="%" +fi + +# +# Find textwidth +# +if [ "$TWN" != "" ] +then + TW=$TWN + case $TW in + *mm) + ;; + *cm) + ;; + *pt) + ;; + *) + TW=$TW"pt" + ;; + esac + $debug_echo "Text width = "$TW +fi +TWp=`echo $TW | sed -e 's/\..*$//'` +PWp=600; # Width of A4 paper! +MARG=`expr $PWp - $TWp` +MARG=`expr $MARG / 2`"pt" +# +# Geometry: /var/lib/texmf/latex/geometry/geometry.dvi +# +# +# Write LaTeX file +# +cat << EOF > $LF +% Creator: $IDENTIFICATION +% Automatically generated from $IF, $NOW + +\documentclass$PAPER{article} +\nonstopmode +$LLNG +\usepackage{geometry} +\usepackage[T1]{fontenc} +%\addtolength{\oddsidemargin}{-1cm} +%\addtolength{\topmargin}{-1cm} +\setlength{\textwidth}{$TW} +\geometry{width=$TW, left=$MARG, top=1cm} +\input lilyponddefs +\input titledefs +\begin{document} +EOF +# +# Include \def\mudela-definitions +# +for L in $MU_DEF do - # - # Check if input file exists... - # - if [ ! -f $GF ] + LL=`egrep '^\\\\def.'$L'{' $OF` + if [ "$LL" != "" ] then - GF=$GF.ly - if [ ! -f $GF ] + LLL=`echo $LL | sed -e 's/}.*$//' -e 's/.*{//'` + if [ "$LLL" != "" ] then - $debug_echo $IDENTIFICATION": Input file "$GF" not found" - exit 2 + echo '\'$L'{'$LLL'}%' >> $LF fi fi +done +# +cat << EOF >> $LF +\makelilytitle +EOF +} +# +# Conclusion +# +endFile(){ +cat << EOF >> $LF +\vfill\hfill{(\LilyIdString)} +\end{document} +EOF +# +# Run LaTeX +# +latex $LF || exit 5 +# +# Rename dvi file +# +if [ -f $FN.dvi ] +then + RESULT=$BN.dvi + if [ x$OUTPUTDIR != x ]; then + RESULT="$OUTPUTDIR/$RESULT" + fi + cp $FN.dvi $RESULT +fi +# +# Clean up +# +if [ "$KEEP" != "Y" ] +then + rm $LF $FN.* +fi +# +# Output some info +# +cat << EOF + +$IDENTIFICATION: dvi file name is $RESULT + +EOF +} + + # ugh. GF is side-effect. +findInput() { + # should check for LILYINCLUDE + for lypath in `echo $LILYINCLUDE| sed 's/:/ /g'` + do + if [ x$lypath = x ] + then + lypath="." + fi + + if [ -f "$lypath/$1" ] + then + GF="$lypath/$1" + return + fi + + if [ -f "$lypath/$1.ly" ] + then + GF="$lypath/$1.ly" + return + fi + done + $debug_echo $IDENTIFICATION": Input file "$GF" not found" + echo $NAME": Input file "$GF" not found" 1>&2 + exit 2 +} +# +# Loop through all files +# +for GF in $* +do + findInput $GF + # # Check whether the file is input to or output from lilypond # @@ -276,169 +495,47 @@ do $debug_echo "lilypond "$IF lilypond $IF 2>&1 | tee /tmp/lilylog.$$ - OF=`cat /tmp/lilylog.$$| egrep '^TeX output to ' | \\ + OF=`egrep '^TeX output to ' /tmp/lilylog.$$ | \\ sed -e 's/TeX output to//' -e 's/\.\.\.//'` + rm /tmp/lilylog.$$ $debug_echo "==> "$OF fi # - # Check if output file is generated + # "Spin through" all the files # for File in $OF do $debug_echo "--- "$File + # + # Check if output file is generated + # if [ ! -f $File ] then $debug_echo $IDENTIFICATION": hmm, I could not find the output file "$File exit 4 fi + # + # Is this the first file? + # if [ -z "$FFile" ] then FFile=$File - # - # LaTeX file name - # - if [ "$KEEP" != "Y" ] - then - if [ "$TMP" = "" ] - then - TMP=/tmp - fi - if [ ! -d $TMP ] - then - $debug_echo $IDENTIFICATION": temporary directory "$TMP" not found, set to /tmp" - TMP=/tmp - fi - # - BN=`basename $FFile .tex` - FN=$BN.$$ - LF=$TMP/$FN.tex - else - BN=`basename $FFile .tex` - FN=$BN.$$ - LF=$FN.tex - fi - # - # Find: - # paper size (PSZ, overridden by command line option -p) - # language (LNG, overridden by command line option -l) - # textwidth - # - eval `sed -n \\ - -e 's/\\\\def\\\\mudelapapersize{\([^}]*\).*$/fPSZ=\1;/p' \\ - -e 's/\\\\def\\\\mudelalanguage{\([^}]*\).*$/fLNG=\1;/p' \\ - -e 's/\\\\def\\\\mudelapaperlinewidth{\([^}]*\).*$/TWN=\1;/p' \\ - $OF` - if [ "$PSZ" = "" ] - then - PSZ=$fPSZ - fi - if [ "$PSZ" != "" ] - then - PAPER="["$PSZ"]" - fi - # - if [ "$LNG" = "" ] - then - LNG=$fLNG - fi - if [ "$LNG" != "" ] - then - LLNG="\usepackage["$LNG"]{babel}" - else - LLNG="%" - fi - - # - # Find textwidth - # - if [ "$TWN" != "" ] - then - TW=$TWN - case $TW in - *mm) - ;; - *cm) - ;; - *pt) - ;; - *) - TW=$TW"pt" - ;; - esac - $debug_echo "Text width = "$TW - fi - - # - # Write LaTeX file - # - cat << EOF > $LF -% Creator: $IDENTIFICATION -% Automatically generated from $IF, $NOW - -\documentclass$PAPER{article} -\nonstopmode -$LLNG -\usepackage[T1]{fontenc} -\addtolength{\oddsidemargin}{-1cm} -\addtolength{\topmargin}{-1cm} -\setlength{\textwidth}{$TW} -\input lilyponddefs -\input titledefs -\begin{document} -EOF - # - # Include \def\mudela-definitions - # - for L in $MU_DEF - do - LL=`egrep '^\\\\def.'$L'{' $OF` - if [ "$LL" != "" ] - then - LLL=`echo $LL | sed -e 's/}.*$//' -e 's/.*{//'` - if [ "$LLL" != "" ] - then - echo '\'$L'{'$LLL'}%' >> $LF - fi - fi - done - # - cat << EOF >> $LF -\makelilytitle -EOF + startFile fi cat << EOF >> $LF \input{$File} EOF + if [ $SEPFILE = Y ] + then + FFile="" + endFile + fi done done -cat << EOF >> $LF -\vfill\hfill{(\LilyIdString)} -\end{document} -EOF -# -# Run LaTeX -# -latex $LF || exit 5 -# -# Rename dvi file -# -if [ -f $FN.dvi ] +if [ $SEPFILE = N ] then - cp $FN.dvi $BN.dvi + endFile fi # -# Clean up -# -if [ "$KEEP" != "Y" ] -then - rm $LF $FN.* -fi -# -# Output some info -# -cat << EOF - -$IDENTIFICATION: dvi file name is $BN.dvi - -EOF # OK - finished +# diff --git a/bin/make-patch.py b/bin/make-patch.py index 207066d31a..047f8e37b7 100644 --- a/bin/make-patch.py +++ b/bin/make-patch.py @@ -61,44 +61,6 @@ usage \n\ Patches do not contain automatically generated files, \n\ i.e. you should rerun configure\n\n' -import fnmatch -import os - -_debug = 0 - -_prune = ['(*)'] - - -def my_find(patterns, dir = os.curdir): - list = [] - names = os.listdir(dir) - names.sort() - for name in names: - if name in (os.curdir, os.pardir): - continue - fullname = os.path.join(dir, name) - for pat in patterns: - if fnmatch.fnmatch(name, pat): - list.append(fullname) - if os.path.isdir(fullname) and not os.path.islink(fullname): - for p in _prune: - if fnmatch.fnmatch(name, p): - if _debug: print "skip", `fullname` - break - else: - if _debug: print "descend into", `fullname` - found = my_find(patterns, fullname) - if found: - list = list + found - return list - -def multiple_find(pats, dirnames): - from find import find - l = [] - for d in dirnames: - l = l + my_find(pats, d) - return l - pats = ['*.lsm', 'configure', '*.txt', 'lilypond.spec'] def remove_automatic(dirnames): files = [] diff --git a/bin/make-website.py b/bin/make-website.py index 8604c5c892..d7ee588e5a 100644 --- a/bin/make-website.py +++ b/bin/make-website.py @@ -4,7 +4,7 @@ # # source file of the GNU LilyPond music typesetter # -# (c) 1997 Han-Wen Nienhuys +# (c) 1997, 1998 Han-Wen Nienhuys # """ @@ -30,7 +30,7 @@ import glob depth = '' makewebsite_id = ""; -id_str = "make-website 0.7"; +id_str = "make-website 0.8"; tar = "tar"; make = "make"; mailaddress = "unknown" @@ -38,11 +38,14 @@ fullname = "unknown" footstr = "" lilyversion= '' +include_path=[ 'input', 'mutopia' , 'mutopia/J.S.Bach', + 'mutopia/J.S.Bach/out' ] + def set_vars(): __main__.lilyversion = version_tuple_to_str(lilydirs.version_tuple()) os.environ["TEXINPUTS"] = os.environ["TEXINPUTS"] + ":%s/input/:" % depth; - os.environ["LILYINCLUDE"] = "%s/input/:%s/mutopia/:%s/mutopia/J.S.Bach" \ - % ((depth, ) *3); + + os.environ["LILYINCLUDE"] = join (':', __main__.include_path) os.environ["LILYTOP"] = depth; __main__.mailaddress= os.environ['MAILADDRESS'] pw = pwd.getpwuid (os.getuid()); @@ -92,9 +95,9 @@ examples=["twinkle-pop", "multi"] mutopia_examples = [ "wtk1-fugue2", - "standchen-16", - "standchen-20", "standje", + "preludes-1", + "preludes-2", "wtk1-prelude1", "gallina", "scsii-menuetto"] @@ -107,9 +110,19 @@ def gen_html(): def gen_examples(inputs): print 'generating examples:\n' - list = map(lambda x: 'out/%s.ps.gz out/%s.gif out/%s.ly.txt' % (x,x,x), inputs) + outputs = [] + for i in inputs: + located = multiple_find ([i + '.ly'], include_path) [0] + + outputs.append (located) + if not file_exist_b(i + '.dvi'): + my_system (['ly2dvi %s' % located]) + if not file_exist_b(i + '.ly.txt'): + os.link (located, i + ".ly.txt") + list = map(lambda x: 'out/%s.ps.gz out/%s.gif' % (x,x), inputs) my_system (['make -C .. ' + join(' ', list)]) + return outputs def gen_list(inputs, filename): print "generating HTML list %s\n" % filename; @@ -122,7 +135,9 @@ def gen_list(inputs, filename): 'files have been scaled to eliminate aliasing.\n'); for ex in inputs: + print '%s, ' % ex header = read_mudela_header(ex + '.ly.txt') + def read_dict(s, default, h =header): try: ret = h[s] @@ -251,20 +266,23 @@ def edit_html(): 'LilyPond WWW: \\1', s) dump_file (f,s) + +def do_examples (examples, filename): + located_files = gen_examples (examples) + gen_list (examples, filename) def main(): identify(); os.chdir (lilydirs.topdir + 'Documentation/out') __main__.depth = "../../"; + __main__.include_path = map(lambda p: __main__.depth + '/' + + p, __main__.include_path) set_vars(); gen_html(); copy_files(); - gen_examples(examples); - gen_list(examples, 'examples_output.html'); - - gen_examples(mutopia_examples); - gen_list(mutopia_examples, 'mutopiaexamples_output.html'); + do_examples (examples, 'examples_output.html'); + do_examples (mutopia_examples, 'mutopiaexamples_output.html'); gen_manuals(); #set_images(); edit_html(); diff --git a/debian/out/dummy.dep b/debian/out/dummy.dep deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/flower/NEWS b/flower/NEWS index 1e795d59c3..06f5939f59 100644 --- a/flower/NEWS +++ b/flower/NEWS @@ -1,3 +1,6 @@ +pl 37 + - various String/File_path mucking + pl 36 - memmem fix: bugfree and *really* conforming to /usr/include/string.h diff --git a/flower/include/path.hh b/flower/include/path.hh index caa6bbb752..74a2dfa091 100644 --- a/flower/include/path.hh +++ b/flower/include/path.hh @@ -31,7 +31,7 @@ public: /// add to end of path. Array::push; - void add (String str) { push (str); } + void add (String str); void parse_path (String); }; diff --git a/flower/include/string.hh b/flower/include/string.hh index fcec32ae89..613202bb8c 100644 --- a/flower/include/string.hh +++ b/flower/include/string.hh @@ -171,11 +171,6 @@ public: /// the length of the string int length_i () const; - // ***** depreciated - int len () const { - return length_i (); - } - /// convert to an integer int value_i () const; diff --git a/flower/path.cc b/flower/path.cc index a499d0abf4..b9ed1c5320 100644 --- a/flower/path.cc +++ b/flower/path.cc @@ -26,7 +26,7 @@ split_path (String path, if (di >= 0) { drive = path.left_str (di + 1); - path = path.right_str (path.len() - di -1); + path = path.right_str (path.length_i () - di -1); } else drive = ""; @@ -35,7 +35,7 @@ split_path (String path, if (di >=0) { dirs = path.left_str (di + 1); - path = path.right_str (path.len()-di -1); + path = path.right_str (path.length_i ()-di -1); } else dirs = ""; @@ -44,7 +44,7 @@ split_path (String path, if (di >= 0) { filebase = path.left_str (di); - extension =path.right_str (path.len()-di); + extension =path.right_str (path.length_i ()-di); } else { @@ -77,7 +77,6 @@ File_path::parse_path (String p) */ String File_path::find (String nm) const - { fdebug << _("looking for ") << nm << ": "; if (!nm.length_i() || (nm == "-") ) @@ -85,8 +84,10 @@ File_path::find (String nm) const for (int i=0; i < size(); i++) { String path = elem(i); - if (path.length_i() ) - path += "/"; + String sep (DIRSEP); + String right(path.right_str (1)); + if (path.length_i () && right != sep) + path += DIRSEP; path += nm; @@ -102,3 +103,9 @@ File_path::find (String nm) const fdebug << "\n"; return ""; } + +void +File_path::add (String s) +{ + push (s); +} diff --git a/flower/scalar.cc b/flower/scalar.cc index 9d7ef22957..f28e7699ed 100644 --- a/flower/scalar.cc +++ b/flower/scalar.cc @@ -22,7 +22,7 @@ Scalar::operator Rational () if (p == -1) return int (*this); - String s2 = right_str (len()-p-1); + String s2 = right_str (length_i ()-p-1); String s1 = left_str (p); return Rational (s1.value_i (), s2.value_i ()); @@ -32,12 +32,12 @@ bool Scalar::isnum_b () const { int conv = false; - if (len ()) + if (length_i ()) { long l =0; conv = sscanf (strh_.ch_C (), "%ld", &l); } - return len() && conv; + return length_i () && conv; } Scalar::operator Real() @@ -58,7 +58,7 @@ Scalar::operator int() Scalar::operator bool () const { - if (!len ()) + if (!length_i ()) return false; if (*this == "0") return false; diff --git a/flower/string-convert.cc b/flower/string-convert.cc index 23ab488cf3..659bf76921 100644 --- a/flower/string-convert.cc +++ b/flower/string-convert.cc @@ -275,12 +275,12 @@ String_convert::precision_str (double x, int n) String str = double_str (abs (x), format.ch_C ()); int exp = str.right_str (3).value_i (); - str = str.left_str (str.len () - 4); + str = str.left_str (str.length_i () - 4); - while (str[str.len () - 1] == '0') - str = str.left_str (str.len () - 1); - if (str[str.len () - 1] == '.') - str = str.left_str (str.len () - 1); + while (str[str.length_i () - 1] == '0') + str = str.left_str (str.length_i () - 1); + if (str[str.length_i () - 1] == '.') + str = str.left_str (str.length_i () - 1); if (exp == 0) return (sign (x) > 0 ? str : "-" + str); @@ -289,9 +289,9 @@ String_convert::precision_str (double x, int n) int dot = 1 + exp; if (dot <= 0) str = "0." + String ('0', -dot) + str; - else if (dot >= str.len ()) - str += String ('0', dot - str.len ()); - else if (( dot > 0) && (dot < str.len ())) + else if (dot >= str.length_i ()) + str += String ('0', dot - str.length_i ()); + else if (( dot > 0) && (dot < str.length_i ())) str = str.left_str (dot) + '.' + str.cut (dot, INT_MAX); else assert (0); diff --git a/flower/string.cc b/flower/string.cc index 504ba9811b..9f5fca9dad 100644 --- a/flower/string.cc +++ b/flower/string.cc @@ -155,11 +155,12 @@ String::compare_i (String const& s1, String const& s2) if (p1 == p2) return 0; - int i1 = s1.length_i(); - int i2 = s2.length_i(); - - int result= memcmp (p1, p2, i1 *test_arr_p; void reg_test (fptr f) { - if (!test_arr_p) - test_arr_p = new Array; - test_arr_p->push(f); + if (!test_arr_p) + test_arr_p = new Array; + test_arr_p->push (f); } int -main() +main () { - if (test_arr_p) { - for (int i=0; i < test_arr_p->size(); i++) - (*test_arr_p)[i] (); - } + if (test_arr_p) { + for (int i=0; i < test_arr_p->size (); i++) + (*test_arr_p)[i] (); + } } diff --git a/flower/test/pqtest.cc b/flower/test/pqtest.cc index 66838d4180..ea28bcb0fa 100644 --- a/flower/test/pqtest.cc +++ b/flower/test/pqtest.cc @@ -2,25 +2,25 @@ #include "pqueue.hh" #include -int compare(int i, int j) +int compare (int i, int j) { return i-j; } void -pqtest() +pqtest () { PQueue pq; - for (int i=0; i < 10; i++) { - int r = rand()/10000; - pq.insert(r); + for (int i=0; i < 10; i++) { + int r = rand ()/10000; + pq.insert (r); cout << "adding: " << r<< endl; } - while (pq.size()) { + while (pq.size ()) { cout << "getting : "<< flush; - cout << pq.get() << "\n"; + cout << pq.get () << "\n"; } } -ADD_TEST(pqtest); +ADD_TEST (pqtest); diff --git a/flower/test/stringtest.cc b/flower/test/stringtest.cc index 79ec1e443a..4597ff3b85 100644 --- a/flower/test/stringtest.cc +++ b/flower/test/stringtest.cc @@ -8,18 +8,18 @@ #include "flower-test.hh" void -ctors() +ctors () { cout << "constructors"< a; - a.push("abcd"); - a.push("zxy"); - a.push("abc"); - a.push(""); - a.sort(String::compare_i); + a.push ("abcd"); + a.push ("zxy"); + a.push ("abc"); + a.push (""); + a.push ("a"); + a.sort (String::compare_i); cout << "compares: "< + < +% { + \lyric \type Lyrics < + \multi 2 < +% huh? +% \global + { + \oden + \ikheb + \oden + +% _4 +% \oden +% \ugloeit +% \oden + } + \global + > + > +% } + \melodic \type Staff < + \multi 2 < + \global + { + \oboom + \bos + \oboom + +% r4 +% \oboom +% \bos +% \oboom + } + > + > + > \paper{ - \indent = 20. \mm; - \shape = 72.5 \mm 15. \mm +% \paper_thirteen + indent = 20. \mm; + \shape = 70. \mm 20. \mm 65. \mm 30. \mm 57.5 \mm 45. \mm 50. \mm 60. \mm @@ -57,12 +109,43 @@ ugh = \melodic{ 27.5 \mm 105. \mm 20. \mm 120. \mm 10. \mm 140. \mm - 0. \mm 160. \mm - 72.5 \mm 15. \mm -% 72.5 \mm 15. \mm - 60. \mm 40. \mm +% 0. \mm 160. \mm + 65. \mm 30. \mm ; - +%{ + \shape = % 72.5 \mm 15. \mm + % 50. \mm 60. \mm + 70. \mm 30. \mm + 60. \mm 60. \mm + 50. \mm 80. \mm + 70. \mm 40. \mm + 50. \mm 80. \mm + 30. \mm 120. \mm + 60. \mm 60. \mm + 30. \mm 120. \mm + 20. \mm 140. \mm + 0. \mm 180. \mm + 70. \mm 30. \mm + 70. \mm 30. \mm + 70. \mm 30. \mm + ; + \shape = 80. \mm 20. \mm + 70. \mm 40. \mm + 60. \mm 60. \mm + 50. \mm 80. \mm + 40. \mm 100. \mm + 30. \mm 120. \mm + 20. \mm 140. \mm + 10. \mm 160. \mm +% 00. \mm 180. \mm + 75. \mm 30. \mm + ; +%} gourlay_maxmeasures = 30.; +% arithmetic_basicspace = 1.2; +% arithmetic_multiplier = 2.8\pt; + } + \midi{ + \tempo 4 = 90; } } diff --git a/input/font-body.ly b/input/font-body.ly index a7dd41d964..cd6938ef44 100644 --- a/input/font-body.ly +++ b/input/font-body.ly @@ -1,4 +1,4 @@ -\version "0.1.8"; +\version "0.1.9"; FontBody= \melodic{ \octave c'; \bar "|:"; diff --git a/input/font.ly b/input/font.ly index c683dc7362..0e92c3145d 100644 --- a/input/font.ly +++ b/input/font.ly @@ -7,7 +7,7 @@ description = "This file tests the Feta music font"; % "(Feta definitively is not an abbreviation of Font-En-TjA)"; } -\version "0.1.8"; +\version "0.1.9"; \include "font-body.ly" \score{ diff --git a/input/font16.ly b/input/font16.ly index d836e27edb..9ba966fdf2 100644 --- a/input/font16.ly +++ b/input/font16.ly @@ -7,7 +7,7 @@ description = "This file tests the Feta music font"; % "(Feta definitively is not an abbreviation of Font-En-TjA)"; } -\version "0.1.8"; +\version "0.1.9"; \include "font-body.ly" \score{ diff --git a/input/gourlay.ly b/input/gourlay.ly index 26542f3b70..4d66ace0dd 100644 --- a/input/gourlay.ly +++ b/input/gourlay.ly @@ -4,7 +4,7 @@ copyright = "PD"; TestedFeatures = "This file tests some nasty Gourlay spacings"; } -\version "0.1.8"; +\version "0.1.9"; %{ diff --git a/input/keys.ly b/input/keys.ly index 67ee8f5a91..fc17241fbd 100644 --- a/input/keys.ly +++ b/input/keys.ly @@ -1,4 +1,4 @@ -\version "0.1.8"; +\version "0.1.9"; blah = \melodic{ diff --git a/input/kortjakje.ly b/input/kortjakje.ly index 25ed787784..f011d7bf27 100644 --- a/input/kortjakje.ly +++ b/input/kortjakje.ly @@ -11,7 +11,7 @@ copyright = "public domain"; Tested Features: example file with comments %} -\version "0.1.8"; +\version "0.1.9"; % the % is a comment. diff --git a/input/multi.ly b/input/multi.ly index 0d8a890cca..5bfcd1038b 100644 --- a/input/multi.ly +++ b/input/multi.ly @@ -7,10 +7,21 @@ copyright = "public domain"; %{ Tested Features: \multi + +WARNING: the \multi construct is not very intuitive. You better try +the + + \type Grandstaff < + \type Staff = treble {.. } + \type Staff = bass {.. } + > + +construct to get multiple staffs, it's cleaner + %} -\version "0.1.8"; +\version "0.1.9"; \score{ \melodic diff --git a/input/pedal.ly b/input/pedal.ly index d2a9c01c2a..d82a03e710 100644 --- a/input/pedal.ly +++ b/input/pedal.ly @@ -24,7 +24,7 @@ % \lbheel \lbheel \lfheel \lftoe % \rbheel \rbtoe \rfheel \rftoe -\version "0.1.8"; +\version "0.1.9"; \score{ \melodic { diff --git a/input/rhythm.ly b/input/rhythm.ly index 11569bf0f1..5b5289306a 100644 --- a/input/rhythm.ly +++ b/input/rhythm.ly @@ -7,7 +7,7 @@ TestedFeatures = "multiple meters, beaming, unsynced bars, userdefd engravers"; -\version "0.1.8"; +\version "0.1.9"; ritme = \melodic{ %\octave ; \partial 8; diff --git a/input/scales.ly b/input/scales.ly index 3e715106f9..793e220585 100644 --- a/input/scales.ly +++ b/input/scales.ly @@ -12,7 +12,7 @@ copyright = "public domain"; % scales with accents. % -\version "0.1.8"; +\version "0.1.9"; blah = \melodic { \meter 6/8; \octave 'c ; diff --git a/input/scripts.ly b/input/scripts.ly index 7198bc1b83..7e9bc76163 100644 --- a/input/scripts.ly +++ b/input/scripts.ly @@ -1,5 +1,5 @@ -\version "0.1.8"; +\version "0.1.9"; blah = \melodic { diff --git a/input/sleur.ly b/input/sleur.ly index d6e30d3b2f..1226a9b7c0 100644 --- a/input/sleur.ly +++ b/input/sleur.ly @@ -5,7 +5,7 @@ TestedFeatures = "This file tests Feta embedded slurs" "(Feta definitively is not an abbreviation of Font-En-TjA)"; } -\version "0.1.8"; +\version "0.1.9"; shortlong = \melodic{ c4()c( c c | diff --git a/input/slurs.ly b/input/slurs.ly index ef66c1e9e8..3d45dea955 100644 --- a/input/slurs.ly +++ b/input/slurs.ly @@ -1,5 +1,5 @@ -\version "0.1.8"; +\version "0.1.9"; \score{ \melodic{\octave c'; diff --git a/input/spacing.ly b/input/spacing.ly index f92428fbcf..9da213e905 100644 --- a/input/spacing.ly +++ b/input/spacing.ly @@ -6,7 +6,7 @@ copyright = "public domain"; TestedFeatures = "This file tests various spacings"; } -\version "0.1.8"; +\version "0.1.9"; multipart = \melodic{ \multi 3 < diff --git a/input/stem.ly b/input/stem.ly index ee58946ea1..7bf1a4f42f 100644 --- a/input/stem.ly +++ b/input/stem.ly @@ -8,7 +8,7 @@ of beams"; } -\version "0.1.8"; +\version "0.1.9"; beamintervals = \melodic{ \meter 7/4; diff --git a/input/toccata-fuga-E.ly b/input/toccata-fuga-E.ly index 124d0e3855..1c5c9c42c3 100644 --- a/input/toccata-fuga-E.ly +++ b/input/toccata-fuga-E.ly @@ -20,7 +20,7 @@ copyright = "public domain"; %} -\version "0.1.8"; +\version "0.1.9"; toccata_commands = \melodic{ \meter 4/4; diff --git a/input/twinkle-pop.ly b/input/twinkle-pop.ly index 4d11d3a6e2..0984052f53 100644 --- a/input/twinkle-pop.ly +++ b/input/twinkle-pop.ly @@ -12,7 +12,7 @@ copyright = "public domain"; Tested Features lyrics and chords %} -\version "0.1.8"; +\version "0.1.9"; melodie = \melodic { \clef"violin"; diff --git a/input/twinkle.ly b/input/twinkle.ly index 050bfda518..2575f80979 100644 --- a/input/twinkle.ly +++ b/input/twinkle.ly @@ -15,7 +15,7 @@ copyright = "public domain"; Tested Features: lyrics, interleaving lyrics and staffs %} -\version "0.1.8"; +\version "0.1.9"; melody = \melodic{ \clef violin; diff --git a/lily/VERSION b/lily/VERSION index 486f034e1b..5602a9c772 100644 --- a/lily/VERSION +++ b/lily/VERSION @@ -1,4 +1,4 @@ MAJOR_VERSION = 0 MINOR_VERSION = 1 -PATCH_LEVEL = 43 +PATCH_LEVEL = 44 MY_PATCH_LEVEL = diff --git a/lily/beam-grav.cc b/lily/beam-grav.cc index 6592166fa2..ecb00ee083 100644 --- a/lily/beam-grav.cc +++ b/lily/beam-grav.cc @@ -28,8 +28,7 @@ Beam_engraver::do_try_request(Request*r) if (!mus_l) return false; - Beam_req * b = mus_l->beam(); - + Beam_req* b = mus_l->beam (); if (!b) return false; diff --git a/lily/general-script-def.cc b/lily/general-script-def.cc index 2a014cc542..66370135f8 100644 --- a/lily/general-script-def.cc +++ b/lily/general-script-def.cc @@ -10,6 +10,7 @@ #include "general-script-def.hh" #include "debug.hh" #include "atom.hh" + Direction General_script_def::staff_dir() const { diff --git a/lily/include/plet-engraver.hh b/lily/include/plet-engraver.hh index 3a4e4d31c6..16d0beab35 100644 --- a/lily/include/plet-engraver.hh +++ b/lily/include/plet-engraver.hh @@ -33,6 +33,8 @@ protected: private: Drul_array span_reqs_drul_; + Drul_array beam_mom_drul_; + Drul_array span_mom_drul_; Plet_spanner* plet_spanner_p_; }; diff --git a/lily/include/plet-spanner.hh b/lily/include/plet-spanner.hh index 4f2fa66eab..8caa2d0147 100644 --- a/lily/include/plet-spanner.hh +++ b/lily/include/plet-spanner.hh @@ -22,6 +22,7 @@ public: Text_def* tdef_p_; Drul_array stem_l_drul_; + int visibility_i_; protected: virtual Molecule* brew_molecule_p () const; diff --git a/lily/include/text-def.hh b/lily/include/text-def.hh index 48faa16f15..185ea715c7 100644 --- a/lily/include/text-def.hh +++ b/lily/include/text-def.hh @@ -30,6 +30,7 @@ public: String style_str_; virtual void do_print() const; + virtual Direction staff_dir() const; virtual Atom get_atom (Paper_def* p, Direction dir_) const; virtual ~Text_def() {}; virtual bool do_equal_b (const General_script_def*) const; diff --git a/lily/lexer.l b/lily/lexer.l index ab97828bc1..c7df7be95e 100644 --- a/lily/lexer.l +++ b/lily/lexer.l @@ -73,7 +73,9 @@ NATIONAL [\001-\006\021-\027\031\036\200-\377] TEX {AA}|-|{PUNCT}|{ACCENT}|{NATIONAL} WORD {A}{AN}* ALPHAWORD {A}+ -INT -?{N}+ +DIGIT {N} +UNSIGNED {N}+ +INT -?{UNSIGNED} REAL ({INT}\.{N}*)|(-?\.{N}+) KEYWORD \\{WORD} WHITE [ \n\t\f] @@ -188,9 +190,14 @@ TELP \\\] return scan_escaped_word (YYText ()+1); } - {INT} { + {DIGIT} { yylval.i = String_convert::dec2_i (String (YYText ())); - return INT; + return DIGIT; + } + + {UNSIGNED} { + yylval.i = String_convert::dec2_i (String (YYText ())); + return UNSIGNED; } \" { @@ -223,9 +230,9 @@ TELP \\\] \" { start_quote (); } - {INT} { + {UNSIGNED} { yylval.i = String_convert::dec2_i (String (YYText ())); - return INT; + return UNSIGNED; } {NOTECOMMAND} { return scan_escaped_word (YYText ()+1); @@ -272,9 +279,9 @@ TELP \\\] return REAL; } -{INT} { +{UNSIGNED} { yylval.i = String_convert::dec2_i (String (YYText ())); - return INT; + return UNSIGNED; } [{}] { diff --git a/lily/main.cc b/lily/main.cc index 85968ddb14..6f3b7b07e4 100644 --- a/lily/main.cc +++ b/lily/main.cc @@ -166,12 +166,13 @@ main (int argc, char **argv) debug_init (); // should be first + + path.add (""); // must override (come before) "/usr/local/share/lilypond"! char const *env_sz = getenv ("LILYINCLUDE"); if (env_sz) path.parse_path (env_sz); - path.add (""); path.add (String (DIR_DATADIR) + "/init/"); path.push (DIR_DATADIR); diff --git a/lily/parser.y b/lily/parser.y index 2480a041e6..159978d3dc 100644 --- a/lily/parser.y +++ b/lily/parser.y @@ -12,7 +12,7 @@ #include // mmm -#define MUDELA_VERSION "0.1.8" +#define MUDELA_VERSION "0.1.9" #include "scalar.hh" #include "translation-property.hh" @@ -168,7 +168,7 @@ yylex (YYSTYPE *s, void * v_l) %token E_EXCLAMATION E_SMALLER E_BIGGER E_CHAR %type dots -%token INT +%token DIGIT %token NOTENAME_ID %token DURATION_IDENTIFIER %token IDENTIFIER @@ -188,6 +188,7 @@ yylex (YYSTYPE *s, void * v_l) %token REAL %token DURATION RESTNAME %token STRING +%token UNSIGNED %token POST_QUOTES %token PRE_QUOTES @@ -199,7 +200,7 @@ yylex (YYSTYPE *s, void * v_l) %type open_plet_parens close_plet_parens %type simple_element music_elt full_element lyrics_elt command_elt %type abbrev_type -%type int +%type int unsigned %type script_dir %type identifier_init %type explicit_steno_duration notemode_duration @@ -222,12 +223,13 @@ yylex (YYSTYPE *s, void * v_l) %type dim real %type unit %type abbrev_command_req -%type post_request command_req verbose_command_req +%type post_request structured_post_request +%type command_req verbose_command_req %type script_req dynamic_req %type score_block score_body %type shape_array %type