diff options
47 files changed, 460 insertions, 502 deletions
@@ -1,3 +1,22 @@ +1.3.38 +====== + +1.3.37.hwn1 +=========== + +* (generic-property.scm) added tieDash + +* Removed ly_eval_str(), we should use scm_eval (Scm_object). + +* Removed scm_to_array (), array_to_scm (), associated junk. Reverted +undocumented .29 patch that made Bezier::control_ into an +Array<Offset>. Added some comments documenting the reasons for the +changes. + +* Revert generic-property.scm of .37 fix, fix the real problem in +property-engraver.cc: use the right symbol to check if element +property is already set. + 1.3.37.jcn2 =========== @@ -30,8 +49,6 @@ # uses config.make and config.h; output goes to out-WWW. # -1.3.37.jcn1 -=========== * Fixed performance of (de)crescendi. @@ -48,6 +65,8 @@ * Added warning for spanners that are not fully contained in parent spanner. +1.3.37 +====== 1.3.36.hwn1 =========== diff --git a/Documentation/regression-test.tely b/Documentation/regression-test.tely index 082a1205ad..0a4cd198cf 100644 --- a/Documentation/regression-test.tely +++ b/Documentation/regression-test.tely @@ -183,6 +183,13 @@ centered in the gap in the bracket. @mudelafile{tup.ly} +@section Property details + +More specific settings take precendence over less specific settings. The +second slur has slurDirection set to down, overriding the stemup setting. + +@mudelafile{generic-property-override.ly} + @section Repeats LilyPond has three modes for repeats: folded, unfolded and diff --git a/Documentation/user/properties.itely b/Documentation/user/properties.itely index 3b92694c79..ecfcfd0c50 100644 --- a/Documentation/user/properties.itely +++ b/Documentation/user/properties.itely @@ -294,6 +294,9 @@ g''4 \property Voice.stemLength = #14 g4 \property Voice.stemLength = #3 g4 g, note. Overrides automatic beaming. The value is only used once, and then it is erased. + @item @code{tieDash}@indexcode{tieDash} @propertytype{integer} + Set dashing of ties. See also @code{slurDash} + @item @code{tieVerticalDirection}@indexcode{tieVerticalDirection} @propertytype{direction} Set to @code{\free} for free choice of tie direction, set to @code{\up} to force ties up, set to @code{\down} to force ties @@ -1,8 +1,8 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=3 -PATCH_LEVEL=37 -MY_PATCH_LEVEL=jcn2 +PATCH_LEVEL=38 +MY_PATCH_LEVEL= # use the above to send patches: MY_PATCH_LEVEL is always empty for a # released version. diff --git a/buildscripts/clean-diaper.sh b/buildscripts/clean-diaper.sh index 47c2a069db..374629eb71 100755 --- a/buildscripts/clean-diaper.sh +++ b/buildscripts/clean-diaper.sh @@ -1,10 +1,11 @@ #!/bin/sh # unclobber current dir. -rm -vf *.aux *.log *.orig *~ *dvi *.dep +rm -vf *.aux *.log *.orig *~ *.dvi *.dep # subdirs -rm -vf `grep -li "^% Creator: GNU LilyPond" *.out *.tex` +rm -vf `grep -li "^%created by: GNU LilyPond" *.out *.tex` +rm -vf `grep -li "^% *Creator: GNU LilyPond" *.out *.tex` rm -vf `grep -li "Creator: mi2mu" *.midi.ly` rm -vf `grep -li "%Creator: dvipsk" *.ps` rm -vf `grep -li "Creator: GNU LilyPond" *.midi` @@ -12,7 +13,8 @@ rm -vf `grep -li "Creator: ly2dvi" *.tex` rm -vf `find -name 'core'` rm -vf `find -name '*.orig'` rm -vf `find -name '*.rej'` - +rm -vf `find -name 'feta*pk'` +rm -vf `find -name 'feta*tfm'` @@ -622,8 +622,24 @@ fi echo "configure:623: checking Package" >&5 if test "x$PACKAGE" = "xSTEPMAKE"; then echo "$ac_t""Stepmake package!" 1>&6 - (cd stepmake; rm -f stepmake; ln -s ../stepmake .) - (cd stepmake; rm -f bin; ln -s ../bin .) + + #if test "x$builddir" != "x"; then + # builddir="../$builddir" + #else + # builddir=.. + #fi + if test "$srcdir" != "."; then + absolute_builddir="`pwd`" + package_absolute_builddir="`dirname $absolute_builddir`" + package_srcdir="`dirname $srcdir`" + builddir="`dirname $package_srcdir`/`basename $package_absolute_builddir`/`basename $absolute_builddir`" + else + builddir=. + fi + + (cd stepmake 2>/dev/null || mkdir stepmake) + (cd stepmake; rm -f stepmake; ln -s ../$srcdir/stepmake .) + (cd stepmake; rm -f bin; ln -s ../$srcdir/bin .) ac_aux_dir= for ac_dir in bin $srcdir/bin; do if test -f $ac_dir/install-sh; then @@ -646,14 +662,22 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. stepmake=stepmake else echo "$ac_t""$PACKAGE" 1>&6 + + if test "$srcdir" != "."; then + absolute_builddir="`pwd`" + builddir="`dirname $srcdir`/`basename $absolute_builddir`" + else + builddir=. + fi + echo $ac_n "checking for stepmake""... $ac_c" 1>&6 -echo "configure:651: checking for stepmake" >&5 +echo "configure:675: checking for stepmake" >&5 # Check for installed stepmake if test -d $stepmake; then echo "$ac_t""$stepmake" 1>&6 else - stepmake='$(depth)'/stepmake - echo "$ac_t""./stepmake ($datadir/stepmake not found)" 1>&6 + stepmake='$(depth)'/$srcdir/stepmake + echo "$ac_t""$srcdir/stepmake ($datadir/stepmake not found)" 1>&6 fi ac_aux_dir= for ac_dir in \ @@ -666,6 +690,7 @@ for ac_dir in \ /usr/share/stepmake/bin\ /usr/lib/stepmake/bin\ stepmake/bin\ + $srcdir/stepmake/bin\ $srcdir/\ $HOME/usr/local/share/stepmake/bin\ $HOME/usr/local/lib/stepmake/bin\ @@ -676,6 +701,7 @@ for ac_dir in \ /usr/share/stepmake/bin\ /usr/lib/stepmake/bin\ stepmake/bin\ + $srcdir/stepmake/bin\ ; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir @@ -698,6 +724,7 @@ if test -z "$ac_aux_dir"; then /usr/share/stepmake/bin\ /usr/lib/stepmake/bin\ stepmake/bin\ + $srcdir/stepmake/bin\ $srcdir/\ $HOME/usr/local/share/stepmake/bin\ $HOME/usr/local/lib/stepmake/bin\ @@ -708,6 +735,7 @@ if test -z "$ac_aux_dir"; then /usr/share/stepmake/bin\ /usr/lib/stepmake/bin\ stepmake/bin\ + $srcdir/stepmake/bin\ " 1>&2; exit 1; } fi ac_config_guess=$ac_aux_dir/config.guess @@ -720,6 +748,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + cat >> confdefs.h <<EOF #define PACKAGE "${PACKAGE_NAME}" EOF @@ -739,8 +768,6 @@ EOF AUTOGENERATE="This file was automatically generated by configure" - absolute_builddir="`pwd`" - STATE_VECTOR=`ls make/STATE-VECTOR 2>/dev/null` if test "x$STATE_VECTOR" != "x"; then @@ -752,15 +779,11 @@ EOF # Check whether --enable-config or --disable-config was given. if test "${enable_config+set}" = set; then enableval="$enable_config" - CONFIGSUFFIX=$enableval + CONFIGSUFFIX=-$enableval fi - if test "$CONFIGSUFFIX" != "" ; then - CONFIGFILE=config-$CONFIGSUFFIX - else - CONFIGFILE=config - fi + CONFIGFILE=config$CONFIGSUFFIX @@ -770,7 +793,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:774: checking host system type" >&5 +echo "configure:797: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -795,7 +818,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:799: checking for $ac_word" >&5 +echo "configure:822: 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 @@ -830,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:834: checking for $ac_word" >&5 +echo "configure:857: 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 @@ -867,7 +890,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:871: checking for $ac_word" >&5 +echo "configure:894: 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 @@ -902,7 +925,7 @@ test -n "$TAR" || TAR="error" # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:906: checking for $ac_word" >&5 +echo "configure:929: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -942,7 +965,7 @@ fi # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:946: checking for $ac_word" >&5 +echo "configure:969: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_SHELL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -979,7 +1002,7 @@ fi # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:983: checking for $ac_word" >&5 +echo "configure:1006: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1020,7 +1043,7 @@ fi # 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:1024: checking for $ac_word" >&5 +echo "configure:1047: 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 @@ -1244,7 +1267,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:1248: checking for $ac_word" >&5 +echo "configure:1271: 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 @@ -1274,7 +1297,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:1278: checking for $ac_word" >&5 +echo "configure:1301: 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 @@ -1325,7 +1348,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1329: checking for $ac_word" >&5 +echo "configure:1352: 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 @@ -1357,7 +1380,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1361: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1384: 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. @@ -1368,12 +1391,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 1372 "configure" +#line 1395 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:1377: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1400: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -1399,12 +1422,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:1403: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1426: 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:1408: checking whether we are using GNU C" >&5 +echo "configure:1431: 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 @@ -1413,7 +1436,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1417: \"$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:1440: \"$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 @@ -1432,7 +1455,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1436: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1459: 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 @@ -1504,7 +1527,7 @@ EOF fi echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 -echo "configure:1508: checking how to run the C++ preprocessor" >&5 +echo "configure:1531: 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 @@ -1517,12 +1540,12 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross CXXCPP="${CXX-g++} -E" cat > conftest.$ac_ext <<EOF -#line 1521 "configure" +#line 1544 "configure" #include "confdefs.h" #include <stdlib.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1526: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1549: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1559,7 +1582,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:1563: checking for $ac_word" >&5 +echo "configure:1586: 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 @@ -1591,7 +1614,7 @@ test -n "$CXX" || CXX="gcc" echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1595: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 +echo "configure:1618: 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. @@ -1602,12 +1625,12 @@ cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext << EOF -#line 1606 "configure" +#line 1629 "configure" #include "confdefs.h" int main(){return(0);} EOF -if { (eval echo configure:1611: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1634: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cxx_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -1633,12 +1656,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:1637: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1660: 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:1642: checking whether we are using GNU C++" >&5 +echo "configure:1665: 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 @@ -1647,7 +1670,7 @@ else yes; #endif EOF -if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1651: \"$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:1674: \"$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 @@ -1666,7 +1689,7 @@ ac_test_CXXFLAGS="${CXXFLAGS+set}" ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS= echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 -echo "configure:1670: checking whether ${CXX-g++} accepts -g" >&5 +echo "configure:1693: 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 @@ -1700,17 +1723,17 @@ fi ac_safe=`echo "FlexLexer.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for FlexLexer.h""... $ac_c" 1>&6 -echo "configure:1704: checking for FlexLexer.h" >&5 +echo "configure:1727: 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 1709 "configure" +#line 1732 "configure" #include "confdefs.h" #include <FlexLexer.h> EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1714: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1737: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -1761,12 +1784,12 @@ fi echo $ac_n "checking whether explicit instantiation is needed""... $ac_c" 1>&6 -echo "configure:1765: checking whether explicit instantiation is needed" >&5 +echo "configure:1788: 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 1770 "configure" +#line 1793 "configure" #include "confdefs.h" template <class T> struct foo { static int baz; }; @@ -1776,7 +1799,7 @@ int main() { return foo<int>::baz; ; return 0; } EOF -if { (eval echo configure:1780: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1803: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lily_cv_need_explicit_instantiation=no else @@ -1803,7 +1826,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:1807: checking for $ac_word" >&5 +echo "configure:1830: 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 @@ -1846,7 +1869,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:1850: checking for $ac_word" >&5 +echo "configure:1873: 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 @@ -1881,7 +1904,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:1885: checking for $ac_word" >&5 +echo "configure:1908: 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 @@ -1949,7 +1972,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:1953: checking for $ac_word" >&5 +echo "configure:1976: 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 @@ -1982,7 +2005,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:1986: checking for $ac_word" >&5 +echo "configure:2009: 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 @@ -2038,7 +2061,7 @@ fi echo $ac_n "checking language""... $ac_c" 1>&6 -echo "configure:2042: checking language" >&5 +echo "configure:2065: checking language" >&5 case "$language" in En* | en* | Am* | am* | US* | us*) lang=English;; @@ -2074,7 +2097,7 @@ EOF echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6 -echo "configure:2078: checking for gettext in -lintl" >&5 +echo "configure:2101: 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 @@ -2082,7 +2105,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <<EOF -#line 2086 "configure" +#line 2109 "configure" #include "confdefs.h" /* Override any gcc2 internal prototype to avoid an error. */ #ifdef __cplusplus @@ -2096,7 +2119,7 @@ int main() { gettext() ; return 0; } EOF -if { (eval echo configure:2100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2123: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2126,12 +2149,12 @@ fi for ac_func in gettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2130: checking for $ac_func" >&5 +echo "configure:2153: 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 2135 "configure" +#line 2158 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -2157,7 +2180,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:2161: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2184: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2189,7 +2212,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:2193: checking for $ac_word" >&5 +echo "configure:2216: 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 @@ -2220,7 +2243,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:2224: checking whether msgfmt accepts -o" >&5 +echo "configure:2247: 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 @@ -2248,7 +2271,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:2252: checking for $ac_word" >&5 +echo "configure:2275: 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 @@ -2284,7 +2307,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:2288: checking for $ac_word" >&5 +echo "configure:2311: 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 @@ -2322,7 +2345,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:2326: checking for $ac_word" >&5 +echo "configure:2349: 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 @@ -2358,7 +2381,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:2362: checking for $ac_word" >&5 +echo "configure:2385: 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 @@ -2397,7 +2420,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:2401: checking for $ac_word" >&5 +echo "configure:2424: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INIMETAFONT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2433,7 +2456,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:2437: checking for $ac_word" >&5 +echo "configure:2460: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INIMFONT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2471,7 +2494,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:2475: checking for $ac_word" >&5 +echo "configure:2498: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INIMETAPOST'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2507,7 +2530,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:2511: checking for $ac_word" >&5 +echo "configure:2534: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INIMPOST'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2541,7 +2564,7 @@ test -n "$INIMPOST" || INIMPOST="-echo no inimp or inimpost" fi echo $ac_n "checking for working metafont mode""... $ac_c" 1>&6 -echo "configure:2545: checking for working metafont mode" >&5 +echo "configure:2568: checking for working metafont mode" >&5 modelist='ljfour lj4 lj3 lj2 ljet laserjet' for MFMODE in $modelist; do $METAFONT "\mode:=$MFMODE; mode_setup; end." > /dev/null 2>&1 @@ -2587,7 +2610,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:2591: checking for $ac_word" >&5 +echo "configure:2614: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_KPSEWHICH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2618,7 +2641,7 @@ done test -n "$KPSEWHICH" || KPSEWHICH="no" echo $ac_n "checking for TeX TFM directory""... $ac_c" 1>&6 -echo "configure:2622: checking for TeX TFM directory" >&5 +echo "configure:2645: checking for TeX TFM directory" >&5 if test "x$TFMDIR" = xauto ; then if test "x$TEX_TFMDIR" = "x" ; then if test "x$KPSEWHICH" != "xno" ; then @@ -2641,7 +2664,7 @@ echo "configure:2622: checking for TeX TFM directory" >&5 ## The GUILE_FLAGS macro. ## First, let's just see if we can find Guile at all. echo $ac_n "checking for Guile""... $ac_c" 1>&6 -echo "configure:2645: checking for Guile" >&5 +echo "configure:2668: checking for Guile" >&5 guile-config link > /dev/null || { echo "configure: cannot find guile-config; is Guile installed?" 1>&2 exit 1 @@ -2661,7 +2684,7 @@ echo "configure:2645: checking for Guile" >&5 # Extract the first word of "guile", so it can be a program name with args. set dummy guile; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2665: checking for $ac_word" >&5 +echo "configure:2688: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_GUILE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2699,7 +2722,7 @@ fi echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6 -echo "configure:2703: checking for 8-bit clean memcmp" >&5 +echo "configure:2726: 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 @@ -2707,7 +2730,7 @@ else ac_cv_func_memcmp_clean=no else cat > conftest.$ac_ext <<EOF -#line 2711 "configure" +#line 2734 "configure" #include "confdefs.h" #ifdef __cplusplus extern "C" void exit(int); @@ -2720,7 +2743,7 @@ main() } EOF -if { (eval echo configure:2724: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:2747: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_memcmp_clean=yes else @@ -2738,12 +2761,12 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6 test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}" echo $ac_n "checking for vprintf""... $ac_c" 1>&6 -echo "configure:2742: checking for vprintf" >&5 +echo "configure:2765: 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 2747 "configure" +#line 2770 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char vprintf(); below. */ @@ -2769,7 +2792,7 @@ vprintf(); ; return 0; } EOF -if { (eval echo configure:2773: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2796: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_vprintf=yes" else @@ -2793,12 +2816,12 @@ fi if test "$ac_cv_func_vprintf" != yes; then echo $ac_n "checking for _doprnt""... $ac_c" 1>&6 -echo "configure:2797: checking for _doprnt" >&5 +echo "configure:2820: 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 2802 "configure" +#line 2825 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char _doprnt(); below. */ @@ -2824,7 +2847,7 @@ _doprnt(); ; return 0; } EOF -if { (eval echo configure:2828: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2851: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func__doprnt=yes" else @@ -2851,12 +2874,12 @@ fi for ac_func in memmem snprintf vsnprintf gettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2855: checking for $ac_func" >&5 +echo "configure:2878: 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 2860 "configure" +#line 2883 "configure" #include "confdefs.h" /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $ac_func(); below. */ @@ -2882,7 +2905,7 @@ $ac_func(); ; return 0; } EOF -if { (eval echo configure:2886: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2909: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2921,7 +2944,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:2925: checking for $ac_word" >&5 +echo "configure:2948: 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 @@ -2954,7 +2977,7 @@ test -n "$MAKEINFO" || MAKEINFO="error" # Extract the first word of "perl", so it can be a program name with args. set dummy perl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2958: checking for $ac_word" >&5 +echo "configure:2981: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_PERL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3122,13 +3145,13 @@ s%@includedir@%$includedir%g s%@oldincludedir@%$oldincludedir%g s%@infodir@%$infodir%g s%@mandir@%$mandir%g +s%@builddir@%$builddir%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%@STATE_VECTOR@%$STATE_VECTOR%g s%@CONFIGSUFFIX@%$CONFIGSUFFIX%g s%@host@%$host%g @@ -3493,8 +3516,13 @@ if test "$no_recursion" != yes; then fi - rm -f GNUmakefile - cp make/toplevel.make.in ./GNUmakefile - chmod 444 GNUmakefile + rm -f $srcdir/GNUmakefile + cp $srcdir/make/toplevel.make.in $srcdir/GNUmakefile + chmod 444 $srcdir/GNUmakefile + if test "$builddir" != "."; then + rm -f GNUmakefile + cp $srcdir/make/srcdir.make.in GNUmakefile + chmod 444 GNUmakefile + fi diff --git a/input/Musique-de-Table.ly b/input/Musique-de-Table.ly deleted file mode 100644 index 74f23a89c7..0000000000 --- a/input/Musique-de-Table.ly +++ /dev/null @@ -1,150 +0,0 @@ - -\header { -composer = "Georg Philipp Telemann"; -title = "Musique de Table"; -date = "1733"; -tempo = "Maestoso"; -} - -%{ - -This appeared in Uijlenspieghel, the magazine of the Dutch Horn -Society, spring issue. - -It is part of 3rd production of the Table Music by Telemann. It is a -concerto for two "Tromba Selvatica" (Wood trumpets, ie. horns.) in -E-flat. - -There probably are violin parts as well. (they weren't printed in -Uijlenspieghel) - - -%} - - - - -trombaUno = \notes \relative c'' { -c2. ~ -c4 -g c | -e2. ~ e4 c e | -g2. ~ g4 -f2 ~ -f4 -e2~ e4 -f2 ~ f4 -d4 e ~ | -e8 f d4.-\trill c8 -c e e-\trill d d16 e d c | -c4 r r | -r8 e f f16 g e8 e16 f | -d4 r r -r8 d g g16 e f8 f16 d | -e16 g g e g e d e f32 g f16 d32 e d16 -e16 g g e g e d e f32 g f16 d32 e d16 | -e16 d c d e d e d e8 fis g4 r r | -R2. -R2. -r4 d2~ d4 r r R2. -d2. ~ d 4 g, d' -d2. ~ d4 g, d' d2. e fis g -a4. a8 g4 ~ g8 e fis4.-\trill g8 -g g16 a b c d4 c8 b4 -r r -g c b -\trill c r r | -r8 [c16 b] c8 c16 d b8 b16 c | -a4 r r | r e2~ e4 r r | r e2~ e4 d r | r c2 ~ c4 d r R2. | -r4 e8 e e e e4 r r -r8 [e e-\trill d] d16 e d c| c4 r r| -r8 e8 f f16 g e8 e16 f | -d8 d4 f8 e16 d c e d8 d4 f8 e16 d c e -d4 r r | -r8 d g g16 e f8 f16 d | -e16 g g e g e d e f32 g f16 d32 e d16 | -e16 g g e g e d e f32 g f16 d32 e d16 | -e16 d c d e f e d e8 d-\trill c4 r r r8 e f f16 g e8 e16 f -d8 d4 f8 e16 d c e d8 d4 f8 e16 d c e -d4 r r| -c2. ~ c4 g c e2.~ e4 c e | -g2. ~ g4 f2 ~ f4 e2~e4 f2~f2. -r4 d e~ e8 f d4.-\trill c8 -c2 r4 -e16 g g e c e e c g c c g e4 r r c4-| e4-| g-| c,2. - - -} - - -trombaDue = \notes \relative c' { -e2. ~e4 c e g2.~g4 e g8 c | -e2. ~ e4 d2~d4 d2 c2. d4 g, g | -r4 g8 g g g e c' c g g16 e g8 | -e4 r r -r8 c' d8 d16 e c8 c, | g'4 r r | -r4 r8 g d' d16 g, | -c16 e e c e c g c d d g, g | -c e e c e c g c d d g, g | -c g e g c g c g c8 d | -d4 r r R2. R2. R2. | -r4 d2 ~ d4 r r | -g,2. ~ g4 d' g, | g2. ~ g4 d' g, | g2. ~ g4 c e | r d2 ~ d4 c4 e8. d16 | -d4. d8 d4 | -r8 e d4 d | d g fis-\trill | g r r | -r8 [c,16 d] e f g4 f8 e4 r r | -r8 [e16 d] e8 e16 f d8 d16 e -c4 r r | R2. | r4 e2~e4 r r | r d2 ~ d4 c4 r4 | -r4 d2~ d4 r r | -r [e8 e e e] e4 r r | -r8 [c8 c g] g16 e g8 e4 r r -r8 c'8 d8 d16 e c8 c, g'8 g4 d'8 c16 g e c g'8 g4 d'8 c16 g e c -g'4 r r | -r4 r8 g d' d16 g, | -c16 e e c e c g c d d g, g -c e e c e c g c d d g, g | -[c16 g e g] [c8 c16 c] [c g g32 e32 g16] | -e4 r r | r8 c' d d16 e c8 c, g'8 g4 d'8 c16 g e c | -g'8 g4 d'8 c16 g e c | g'4 r r | -e2.~e4 c e | g2.~g4 e g8 c | e2.~e4 d2 ~ d4 d2 c2. d2. r4 g,4 g r g8 g g g | -e2 r4 -c'16 e e c g c c g e g g e c4 r r c-| e-| g-| c2. -} - -global = \notes { - \time 3/4; - s2.* 80 - \bar "|."; -} -trbname = "Horn (E\\textflat)" -trbnameI = \trbname + " 1 " -trbnameII = \trbname + " 2 " - -\score { - \context GrandStaff < - \context Staff = one < - \trombaUno - \property Staff.instrument = \trbnameI - \property Staff.instr = " " - \global - > - \context Staff = two < - \property Staff.instrument = \trbnameII - \property Staff.instr = " " - \global - \trombaDue - > - > - \paper { - \translator { - \OrchestralScoreContext - minVerticalAlign = 2.5*\staffheight; - } - \translator { - \StaffContext - \consists Staff_margin_engraver; - } - -% castingalgorithm = \Wordwrap; - indent = 2. \cm; - } -} diff --git a/input/example-1.fly b/input/example-1.fly index 29f102ef2b..14388733da 100644 --- a/input/example-1.fly +++ b/input/example-1.fly @@ -1,4 +1,4 @@ -c d e f g a b c +c' d e f g a b c % A simple scale in Mudela. % diff --git a/input/test/GNUmakefile b/input/test/GNUmakefile index 8fea0aed67..f044715b2f 100644 --- a/input/test/GNUmakefile +++ b/input/test/GNUmakefile @@ -1,7 +1,7 @@ # input/test/Makefile depth = ../.. -examples= font20 +examples= font20 LOCALSTEPMAKE_TEMPLATES=mutopia include $(depth)/make/stepmake.make diff --git a/input/test/generic-property-override.ly b/input/test/generic-property-override.ly new file mode 100644 index 0000000000..4f8c7bb807 --- /dev/null +++ b/input/test/generic-property-override.ly @@ -0,0 +1,10 @@ + +\score { + \notes \relative c'' \context Voice { + \stemup + c'4 () c4 + \slurdown + c4 ( )c4 + } + \paper { linewidth = -1.0; } +} diff --git a/lily/all-font-metrics.cc b/lily/all-font-metrics.cc index 5a3975fa9a..20b5483348 100644 --- a/lily/all-font-metrics.cc +++ b/lily/all-font-metrics.cc @@ -105,7 +105,10 @@ All_font_metrics::find_font (String name) warning (_ ("Loading default font")); String def_name = default_font_sz_; - SCM l = ly_eval_str ("(style-to-cmr \"default\")"); + SCM l = scm_eval (gh_list (ly_symbol2scm ("style-to-cmr"), + ly_str02scm ("default"), + SCM_UNDEFINED)); + if (l != SCM_BOOL_F) def_name = ly_scm2string (gh_cdr (l)); diff --git a/lily/bar.cc b/lily/bar.cc index 04ea330fb1..70432970ee 100644 --- a/lily/bar.cc +++ b/lily/bar.cc @@ -157,7 +157,10 @@ Bar::staff_brace (Real y) const int idx = int (((maxht - step) <? y - minht) / step); idx = idx >? 0; - SCM l = ly_eval_str ("(style-to-cmr \"brace\")"); + SCM l = scm_eval (gh_list (ly_symbol2scm ("style-to-cmr"), + ly_str02scm ("brace"), + SCM_UNDEFINED)); + String nm = "feta-braces"; if (l != SCM_BOOL_F) nm = ly_scm2string (gh_cdr (l)); diff --git a/lily/base-span-bar-engraver.cc b/lily/base-span-bar-engraver.cc index 78df27dc2e..3993776b42 100644 --- a/lily/base-span-bar-engraver.cc +++ b/lily/base-span-bar-engraver.cc @@ -53,12 +53,11 @@ Base_span_bar_engraver::acknowledge_element (Score_element_info i) /* UGH. UGH UUHGK GUHG G - (ly_eval_str ??) */ String visnam = String(name()) + "-visibility"; - + spanbar_p_->set_elt_property ("visibility-lambda", - ly_eval_str (visnam.ch_C())); + scm_eval (ly_symbol2scm (visnam.ch_C()))); if (use_priority_b_) { diff --git a/lily/beam.cc b/lily/beam.cc index 23a62f4a5c..dfc960c3a4 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -31,7 +31,7 @@ #include "group-interface.hh" #include "staff-symbol-referencer.hh" #include "cross-staff.hh" -#include "lily-guile.icc" + Beam::Beam () { @@ -232,17 +232,19 @@ Beam::set_stem_shorten () return; int multiplicity = get_multiplicity (); + // grace stems? - SCM shorten = ly_eval_str ("beamed-stem-shorten"); + SCM shorten = scm_eval (ly_symbol2scm ("beamed-stem-shorten")); - Array<Real> a; - scm_to_array (shorten, &a); - if (!a.size ()) + if (shorten == SCM_EOL) return; + int sz = scm_ilength (shorten); + Staff_symbol_referencer_interface st (this); Real staff_space = st.staff_space (); - Real shorten_f = a[multiplicity <? (a.size () - 1)] * staff_space; + SCM shorten_elt = scm_list_ref (shorten, gh_int2scm (multiplicity <? (sz - 1))); + Real shorten_f = gh_scm2double (shorten_elt) * staff_space; /* cute, but who invented this -- how to customise ? */ if (forced_fraction < 1) @@ -511,10 +513,10 @@ Beam::set_stem_length (Real y, Real dy) Real Beam::quantise_dy_f (Real dy) const { - SCM quants = ly_eval_str ("beam-height-quants"); - Array<Real> a; - scm_to_array (quants, &a); + for (SCM s = scm_eval (ly_symbol2scm ("beam-height-quants")); s !=SCM_EOL; s = gh_cdr (s)) + a.push (gh_scm2double (gh_car (s))); + if (a.size () <= 1) return dy; @@ -543,13 +545,16 @@ Beam::quantise_y_f (Real y, Real dy, int quant_dir) int multiplicity = get_multiplicity (); Staff_symbol_referencer_interface st (this); Real staff_space = st.staff_space (); - SCM quants = scm_eval (gh_list ( - ly_symbol2scm ("beam-vertical-position-quants"), + SCM quants = scm_eval (gh_list (ly_symbol2scm ("beam-vertical-position-quants"), gh_int2scm (multiplicity), gh_double2scm (dy/staff_space), SCM_UNDEFINED)); + Array<Real> a; - scm_to_array (quants, &a); + + for (; quants != SCM_EOL; quants = gh_cdr (quants)) + a.push (gh_scm2double (gh_car (quants))); + if (a.size () <= 1) return y; diff --git a/lily/bezier.cc b/lily/bezier.cc index 6b388e1d8f..4cb2b3682e 100644 --- a/lily/bezier.cc +++ b/lily/bezier.cc @@ -56,11 +56,6 @@ translate (Array<Offset>* arr_p, Offset o) sum_{j=0}^3 (3 over j) z_j (1-t)^(3-j) t^j */ -Bezier::Bezier () - : control_ (CONTROL_COUNT) -{ -} - Real Bezier::get_other_coordinate (Axis a, Real x) const { @@ -177,19 +172,23 @@ Bezier::extent (Axis a)const void Bezier::flip (Axis a) { - ::flip (&control_, a); + for (int i = CONTROL_COUNT; i--;) + control_[i][a] = - control_[i][a]; } void Bezier::rotate (Real phi) { - ::rotate (&control_, phi); + Offset rot (complex_exp (Offset (0, phi))); + for (int i = 0; i < CONTROL_COUNT; i++) + control_[i] = complex_multiply (rot, control_[i]); } void Bezier::translate (Offset o) { - ::translate (&control_, o); + for (int i = 0; i < CONTROL_COUNT; i++) + control_[i] += o; } void diff --git a/lily/breathing-sign.cc b/lily/breathing-sign.cc index 0b9758edc3..2c1f515249 100644 --- a/lily/breathing-sign.cc +++ b/lily/breathing-sign.cc @@ -5,7 +5,7 @@ written for the GNU LilyPond music typesetter -TODO: --> see breathing-sign-engraver.cc + TODO: --> see breathing-sign-engraver.cc */ #include "staff-symbol-referencer.hh" diff --git a/lily/chord-name-engraver.cc b/lily/chord-name-engraver.cc index eb28971785..32419e420c 100644 --- a/lily/chord-name-engraver.cc +++ b/lily/chord-name-engraver.cc @@ -15,7 +15,7 @@ #include "main.hh" #include "dimensions.hh" #include "text-item.hh" -#include "lily-guile.icc" + ADD_THIS_TRANSLATOR (Chord_name_engraver); @@ -81,12 +81,16 @@ Chord_name_engraver::do_process_music () Hmm, why not represent complete chord as list? ((tonic third fifth) (inversion bass)) */ - chord_name_p_->set_elt_property ("pitches", array_to_scm (chord.pitch_arr_)); + SCM plist = SCM_EOL; + for (int i= chord.pitch_arr_.size (); i--; ) + plist = gh_cons (chord.pitch_arr_[i].to_scm (), plist); + + chord_name_p_->set_elt_property ("pitches", plist); if (chord.inversion_b_) chord_name_p_->set_elt_property ("inversion", - to_scm (chord.inversion_pitch_)); + chord.inversion_pitch_.to_scm ()); if (chord.bass_b_) - chord_name_p_->set_elt_property ("bass", to_scm (chord.bass_pitch_)); + chord_name_p_->set_elt_property ("bass", chord.bass_pitch_.to_scm ()); announce_element (Score_element_info (chord_name_p_, 0)); } diff --git a/lily/chord-name.cc b/lily/chord-name.cc index 396909c461..7b94bb1771 100644 --- a/lily/chord-name.cc +++ b/lily/chord-name.cc @@ -13,7 +13,7 @@ #include "molecule.hh" #include "paper-def.hh" #include "lookup.hh" -#include "lily-guile.icc" + /* TODO: move text lookup out of Chord_name @@ -63,7 +63,7 @@ Molecule Chord_name::pitch2molecule (Musical_pitch p) const { SCM name = scm_eval (gh_list (ly_symbol2scm ("user-pitch-name"), - ly_quote_scm (to_scm (p)), + ly_quote_scm (p.to_scm ()), SCM_UNDEFINED)); if (name != SCM_UNSPECIFIED) @@ -116,13 +116,10 @@ Chord_name::user_chord_name (Array<Musical_pitch> pitch_arr, Chord_mol* name_p) Array<Musical_pitch> chord_type = pitch_arr; Chord::rebuild_transpose (&chord_type, diff_pitch (pitch_arr[0], Musical_pitch (0)), false); -#if 0 SCM chord = SCM_EOL; for (int i= chord_type.size (); i--; ) - chord = gh_cons (to_scm (chord_type[i]), chord); -#else - SCM chord = array_to_scm (chord_type); -#endif + chord = gh_cons (chord_type[i].to_scm (), chord); + SCM name = scm_eval (gh_list (ly_symbol2scm ("user-chord-name"), ly_quote_scm (chord), @@ -225,7 +222,10 @@ Molecule Chord_name::do_brew_molecule () const { Array<Musical_pitch> pitch_arr; - scm_to_array (get_elt_property ("pitches"), &pitch_arr); + + for (SCM s = get_elt_property ("pitches"); s != SCM_EOL; s = gh_cdr (s)) + pitch_arr.push (Musical_pitch (gh_car (s))); + Musical_pitch tonic = pitch_arr[0]; Chord_mol name; @@ -265,8 +265,8 @@ Chord_name::do_brew_molecule () const if (s != SCM_UNDEFINED) { name.inversion_mol = lookup_l ()->text ("", "/", paper_l ()); - Musical_pitch p; - p = scm_to (s, &p); + Musical_pitch p (s); + Molecule mol = pitch2molecule (p); name.inversion_mol.add_at_edge (X_AXIS, RIGHT, mol, 0); } @@ -275,8 +275,7 @@ Chord_name::do_brew_molecule () const if (s != SCM_UNDEFINED) { name.bass_mol = lookup_l ()->text ("", "/", paper_l ()); - Musical_pitch p; - p = scm_to (s, &p); + Musical_pitch p (s); Molecule mol = pitch2molecule (p); name.bass_mol.add_at_edge (X_AXIS, RIGHT, mol, 0); } diff --git a/lily/clef-engraver.cc b/lily/clef-engraver.cc index cffdd3f340..041e3410f5 100644 --- a/lily/clef-engraver.cc +++ b/lily/clef-engraver.cc @@ -199,7 +199,7 @@ Clef_engraver::do_pre_move_processing() { if(to_boolean (clef_p_->remove_elt_property("non-default"))) clef_p_->set_elt_property("visibility-lambda", - ly_eval_str ("all-visible")); + scm_eval (ly_symbol2scm ("all-visible"))); typeset_element (clef_p_); clef_p_ =0; diff --git a/lily/dynamic-performer.cc b/lily/dynamic-performer.cc index e6daf5e310..f51ae2beb6 100644 --- a/lily/dynamic-performer.cc +++ b/lily/dynamic-performer.cc @@ -71,7 +71,7 @@ Dynamic_performer::do_process_music () (ly_symbol2scm ("dynamic-absolute-volume"), ly_quote_scm (ly_str02scm (text_script_req_l_->text_str_.ch_C ())), SCM_UNDEFINED)); - Real volume = gh_scm2double (ly_eval_str ("dynamic-default-volume")); + Real volume = gh_scm2double (scm_eval (ly_symbol2scm ("dynamic-default-volume"))); if (gh_number_p (s)) volume = gh_scm2double (s); diff --git a/lily/include/bezier.hh b/lily/include/bezier.hh index 3ac97b7170..1f9bd2d252 100644 --- a/lily/include/bezier.hh +++ b/lily/include/bezier.hh @@ -22,8 +22,6 @@ class Bezier { public: - Bezier (); - void assert_sanity () const; void flip (Axis); void reverse (); @@ -38,7 +36,14 @@ public: Offset curve_point (Real t) const; static const int CONTROL_COUNT = 4; - Array<Offset> control_; + + /* + Bezier curves always have 4 control points. Making this into an + Array<> gives unnecessary overhead, and makes debugging a royal + pain. */ + + + Offset control_[4]; }; void flip (Array<Offset>* arr_p, Axis a); diff --git a/lily/include/chord.hh b/lily/include/chord.hh index 3075bab0ac..2d13e75deb 100644 --- a/lily/include/chord.hh +++ b/lily/include/chord.hh @@ -12,6 +12,12 @@ #include "array.hh" #include "musical-pitch.hh" #include "lily-proto.hh" + + + +/* + Slightly on the hairy side? In any case COMMENTME. + */ class Chord { public: diff --git a/lily/include/lily-guile.hh b/lily/include/lily-guile.hh index 8a8f4c2d02..cb0fb40491 100644 --- a/lily/include/lily-guile.hh +++ b/lily/include/lily-guile.hh @@ -15,17 +15,26 @@ #include <libguile.h> #include "direction.hh" +/* + conversion functions follow the GUILE naming convention, i.e. + + A ly_B2A (B b); + */ SCM ly_str02scm (char const*c); -SCM ly_eval_str (String s); SCM ly_symbol2scm (char const *); +String ly_scm2string (SCM s); String ly_symbol2string (SCM); -SCM ly_type (SCM); +SCM ly_offset2scm (Offset); +Offset ly_scm2offset (SCM); -SCM ly_eval (SCM a); SCM ly_parse_scm (char const* s, int* n); SCM ly_quote_scm (SCM s); +SCM ly_type (SCM); + +/* + display and print newline. + */ void ly_display_scm (SCM s); -String ly_scm2string (SCM s); #include "array.hh" @@ -33,8 +42,13 @@ void read_lily_scm_file (String); void init_lily_guile (); bool isdir_b (SCM s); -Direction to_dir (SCM s); +/* + these conversion functions also do a typecheck on the argument, and + return a default value if S has the wrong type. +*/ + +Direction to_dir (SCM s); bool to_boolean (SCM s); void init_ly_protection (); @@ -43,18 +57,6 @@ unsigned int ly_scm_hash (SCM s); SCM index_cell (SCM cellp, Direction d); SCM index_set_cell (SCM cellp, Direction d, SCM val); -template<class T>SCM array_to_scm (Array<T> arr); -template<class T>void scm_to_array (SCM s, Array<T>* arr); - -//URG how templates suck! -SCM to_scm (int i); -int scm_to (SCM s, int* i); - -SCM to_scm (Real r); -Real scm_to (SCM s, Real* r); - -SCM to_scm (Offset o); -Offset scm_to (SCM s, Offset* o); /* snarfing. diff --git a/lily/include/lily-guile.icc b/lily/include/lily-guile.icc deleted file mode 100644 index aeeefc5338..0000000000 --- a/lily/include/lily-guile.icc +++ /dev/null @@ -1,42 +0,0 @@ -/* - lily-guile.icc -- implement guile templates - - source file of the GNU LilyPond music typesetter - - (c) 1999--2000 Jan Nieuwenhuizen <janneke@gnu.org> -*/ - -#ifndef LILY_GUILE_ICC -#define LILY_GUILE_ICC - -#include "lily-guile.hh" - -template<class T>SCM -array_to_scm (Array<T> arr) -{ - SCM list = SCM_EOL; - for (int i = arr.size (); i--;) - list = gh_cons (to_scm (arr[i]), list); - return list; -} - -/* - Silly templates - Array<T> scm_to_array (SCM s) - - check scm? - - UGH. junkme. - */ -template<class T>void -scm_to_array (SCM s, Array<T>* arr) -{ - arr->clear (); - for (; gh_pair_p (s); s= gh_cdr (s)) - { - T t = scm_to (gh_car (s), (T*) 0); - arr->push (t); - } -} - -#endif /* LILY_GUILE_ICC */ diff --git a/lily/include/musical-pitch.hh b/lily/include/musical-pitch.hh index 7bc94b499f..1c691712da 100644 --- a/lily/include/musical-pitch.hh +++ b/lily/include/musical-pitch.hh @@ -23,6 +23,7 @@ struct Musical_pitch : public Input { Musical_pitch (int notename=0, int accidental=0, int octave=0); + Musical_pitch (SCM); /// 0 is c, 6 is b int notename_i_; @@ -42,11 +43,9 @@ struct Musical_pitch : public Input void down_to (int); String str () const; void print () const; + SCM to_scm () const; }; -SCM to_scm (Musical_pitch p); -Musical_pitch scm_to (SCM s, Musical_pitch* p); - #include "compare.hh" INSTANTIATE_COMPARE(Musical_pitch, Musical_pitch::compare); diff --git a/lily/include/notename-table.hh b/lily/include/notename-table.hh index 2d84a7ead0..f6eab20400 100644 --- a/lily/include/notename-table.hh +++ b/lily/include/notename-table.hh @@ -21,7 +21,6 @@ public: Notename_table (Notename_table const&); Musical_pitch get_pitch(String s) const; void add_note_name (String, Musical_pitch const *p); - String get_name (Musical_pitch) const; bool elem_b (String )const; }; diff --git a/lily/include/spanner.hh b/lily/include/spanner.hh index f7c058b701..2a50a826b2 100644 --- a/lily/include/spanner.hh +++ b/lily/include/spanner.hh @@ -30,13 +30,12 @@ */ class Spanner : public Score_element { - // SCMify me Drul_array<Item*> spanned_drul_; public: - // SCMify me Link_array<Spanner> broken_into_l_arr_; + // TODO: make virtual and do this for Items as well. Interval_t<int> spanned_rank_iv (); void set_bound (Direction d, Item*); Item *get_bound (Direction d) const; diff --git a/lily/key-engraver.cc b/lily/key-engraver.cc index 88ca9e102c..e81e72c227 100644 --- a/lily/key-engraver.cc +++ b/lily/key-engraver.cc @@ -99,7 +99,7 @@ Key_engraver::acknowledge_element (Score_element_info info) if (!def) { item_p_->set_elt_property ("visibility-lambda", - ly_eval_str ("all-visible")); + scm_eval (ly_symbol2scm ("all-visible"))); } } diff --git a/lily/lily-guile.cc b/lily/lily-guile.cc index d8866c3a8e..38a409cb87 100644 --- a/lily/lily-guile.cc +++ b/lily/lily-guile.cc @@ -29,12 +29,14 @@ ly_str02scm (char const*c) return gh_str02scm ((char*)c); } + +#if 0 +/* + this all really sucks, LilyPond should not communicate with GUILE using strings. + */ SCM -ly_eval_str (String s) -{ - // this all really sucks, guile should take char const* arguments! - return gh_eval_str ((char*)s.ch_C ()); -} +ly_eval_str (String s); +#endif /* @@ -134,7 +136,7 @@ read_lily_scm_file (String fn) Simple_file_storage f(s); - ly_eval_str ((char *) f.ch_C()); + gh_eval_str ((char *) f.ch_C()); progress_indication ("]"); } @@ -262,32 +264,7 @@ to_dir (SCM s) } -SCM -to_scm (int i) -{ - return gh_int2scm (i); -} - -/* - UGR. junkme. - */ -int -scm_to (SCM s, int* ) -{ - return gh_number_p (s) ? gh_scm2int (s) : 0; -} - -SCM -to_scm (Real r) -{ - return gh_double2scm (r); -} -Real -scm_to (SCM s, Real* ) -{ - return gh_number_p (s) ? gh_scm2double (s) : 0; -} bool to_boolean (SCM s) @@ -319,13 +296,13 @@ appendable_list_append (SCM l, SCM elt) SCM -to_scm (Offset o) +ly_offset2scm (Offset o) { return gh_cons (gh_double2scm (o[X_AXIS]), gh_double2scm(o[Y_AXIS])); } Offset -scm_to (SCM s, Offset*) +ly_scm2offset (SCM s) { return Offset (gh_scm2double (gh_car (s)), gh_scm2double (gh_cdr (s))); diff --git a/lily/lookup.cc b/lily/lookup.cc index 818ce69e3f..8be036fa78 100644 --- a/lily/lookup.cc +++ b/lily/lookup.cc @@ -105,10 +105,10 @@ Molecule Lookup::dashed_slur (Bezier b, Real thick, Real dash) { SCM l = SCM_EOL; - // this is silly, we have array_to_scm + for (int i= 4; i -- ;) { - l = gh_cons (to_scm (b.control_[i]), l); + l = gh_cons (ly_offset2scm (b.control_[i]), l); } SCM at = (gh_list (ly_symbol2scm ("dashed-slur"), @@ -246,7 +246,10 @@ Lookup::text (String style, String text, Paper_def *paper_l) /* UGH. */ - SCM l = ly_eval_str (("(style-to-cmr \"" + style + "\")").ch_C()); + SCM l = scm_eval (gh_list (ly_symbol2scm ("style-to-cmr"), + ly_str02scm (style.ch_C()), + SCM_UNDEFINED)); + if (l != SCM_BOOL_F) { style = ly_scm2string (gh_cdr(l)) +to_str ((int)font_h); @@ -327,11 +330,11 @@ Lookup::slur (Bezier curve, Real curvethick, Real linethick) back.control_[2] += curvethick * complex_exp (Offset (0, alpha + M_PI/2)); SCM scontrols[8]; - // this is silly, we have array_to_scm + for (int i=4; i--;) - scontrols[ i ] = to_scm (back.control_[i]); + scontrols[ i ] = ly_offset2scm(back.control_[i]); for (int i=4 ; i--;) - scontrols[i+4] = to_scm (curve.control_[i]); + scontrols[i+4] = ly_offset2scm (curve.control_[i]); /* Need the weird order b.o. the way PS want its arguments diff --git a/lily/molecule.cc b/lily/molecule.cc index ac70426542..db6472b9e5 100644 --- a/lily/molecule.cc +++ b/lily/molecule.cc @@ -63,7 +63,7 @@ Molecule::translate (Offset o) } expr_ = gh_list (ly_symbol2scm ("translate-molecule"), - to_scm (o), + ly_offset2scm (o), expr_, SCM_UNDEFINED); if (!empty_b ()) dim_.translate (o); diff --git a/lily/musical-pitch.cc b/lily/musical-pitch.cc index dc4a5171da..dfc0614e4a 100644 --- a/lily/musical-pitch.cc +++ b/lily/musical-pitch.cc @@ -11,23 +11,20 @@ #include "main.hh" SCM -to_scm (Musical_pitch p) +Musical_pitch::to_scm ()const { - return gh_list (gh_int2scm (p.notename_i_), - gh_int2scm (p.accidental_i_), - gh_int2scm (p.octave_i_), + return gh_list (gh_int2scm (notename_i_), + gh_int2scm (accidental_i_), + gh_int2scm (octave_i_), SCM_UNDEFINED); } -/* - TODO: check -- is_pitch () ? - */ -Musical_pitch -scm_to (SCM s, Musical_pitch* ) + +Musical_pitch::Musical_pitch (SCM s) { - return Musical_pitch (gh_scm2int (gh_car (s)), - gh_scm2int (gh_cadr (s)), - gh_scm2int (gh_caddr (s))); + notename_i_ = gh_scm2int (gh_car (s)); + accidental_i_ = gh_scm2int (gh_cadr (s)); + octave_i_ = gh_scm2int (gh_caddr (s)); } Musical_pitch::Musical_pitch (int n, int a, int o) diff --git a/lily/notename-table.cc b/lily/notename-table.cc index f3a85c1ad6..091f2b7685 100644 --- a/lily/notename-table.cc +++ b/lily/notename-table.cc @@ -11,18 +11,6 @@ #include "dictionary.hh" #include "musical-pitch.hh" -String -Notename_table::get_name (Musical_pitch m) const -{ - for (Dictionary_iter<Musical_pitch> ai (*pitch_dict_); ai.ok (); ai++) - { - if (ai.val () == m) - return ai.key (); - } - return "r"; // rest. -} - - void Notename_table::add_note_name (String s, Musical_pitch const *p) diff --git a/lily/paper-outputter.cc b/lily/paper-outputter.cc index b624b8ea8f..584347bae9 100644 --- a/lily/paper-outputter.cc +++ b/lily/paper-outputter.cc @@ -40,11 +40,14 @@ Paper_outputter::output_header () { if (safe_global_b) { - gh_define ("security-paranoia", SCM_BOOL_T); } - String s = String ("(eval (") + output_global_ch + "-scm 'all-definitions))"; - ly_eval_str (s.ch_C ()); + + SCM exp = gh_list (ly_symbol2scm ((String (output_global_ch) + "-scm").ch_C()), + ly_quote_scm (ly_symbol2scm ("all-definitions")), + SCM_UNDEFINED); + exp = scm_eval (exp); + scm_eval (exp); String creator; if (no_timestamps_global_b) @@ -92,7 +95,7 @@ enter: SCM head =gh_car (expr); if (head == offset_sym) { - o += scm_to (gh_cadr (expr), &o); + o += ly_scm2offset (gh_cadr (expr)); expr = gh_caddr (expr); goto enter; } diff --git a/lily/property-engraver.cc b/lily/property-engraver.cc index 519ca724b3..c0f2887008 100644 --- a/lily/property-engraver.cc +++ b/lily/property-engraver.cc @@ -50,28 +50,48 @@ Property_engraver::acknowledge_element (Score_element_info i) } } + void Property_engraver::apply_properties (SCM p, Score_element *e) { for (; gh_pair_p (p); p = gh_cdr (p)) { + /* + Try each property in order; earlier descriptions take + precedence over later ones, and we don't touch elt-properties if + they're already set. + */ + SCM entry = gh_car (p); SCM prop_sym = gh_car (entry); SCM type_p = gh_cadr (entry); - SCM elt_prop_name = gh_caddr (entry); + SCM elt_prop_sym = gh_caddr (entry); - SCM preset = scm_assq(prop_sym, e->element_property_alist_); + SCM preset = scm_assq(elt_prop_sym, e->element_property_alist_); if (preset != SCM_BOOL_F) continue; SCM val = get_property (prop_sym); + + if (val == SCM_UNDEFINED) - ; + ; // Not defined in context. else if (gh_apply (type_p, scm_listify (val, SCM_UNDEFINED)) - == SCM_BOOL_T) - e->set_elt_property (ly_symbol2string (elt_prop_name), val); + == SCM_BOOL_T) // defined and right type: do it + e->set_elt_property (ly_symbol2string (elt_prop_sym), val); else - { + /* + we don't print a warning if VAL == #f, because we would + get lots of warnings when we restore stuff to default, eg. + + slurDash = #1 [...] slurDash = ##f + + should not cause "type error: slurDash expects number not + boolean" + + */ + if (val != SCM_BOOL_F) + { // not the right type: error message. SCM errport = scm_current_error_port (); warning (_("Wrong type for property")); scm_display (prop_sym, errport); @@ -82,7 +102,6 @@ Property_engraver::apply_properties (SCM p, Score_element *e) scm_puts (" type: ", errport); scm_display (ly_type (val), errport); scm_puts ("\n", errport); - } } } diff --git a/lily/script-engraver.cc b/lily/script-engraver.cc index 5498b5b7f6..846cc192e6 100644 --- a/lily/script-engraver.cc +++ b/lily/script-engraver.cc @@ -60,7 +60,9 @@ Script_engraver::do_process_music() { Articulation_req* l=script_req_l_arr_[i]; - SCM list = ly_eval_str (("(articulation-to-scriptdef \"" + l->articulation_str_ + "\")").ch_C()); + SCM list = scm_eval (gh_list (ly_symbol2scm ("articulation-to-scriptdef"), + ly_str02scm (l->articulation_str_.ch_C()), + SCM_UNDEFINED)); if (list == SCM_BOOL_F) { diff --git a/lily/slur.cc b/lily/slur.cc index 7a0f91f941..a5e4140275 100644 --- a/lily/slur.cc +++ b/lily/slur.cc @@ -29,7 +29,7 @@ #include "cross-staff.hh" #include "group-interface.hh" #include "staff-symbol-referencer.hh" -#include "lily-guile.icc" + class Slur_bezier_bow : public Bezier_bow @@ -668,7 +668,12 @@ Slur::set_control_points () } Bezier b = bb.get_bezier (); - SCM controls = array_to_scm (b.control_); + + + SCM controls = SCM_EOL; + for (int i= 4; i--;) + controls = gh_cons ( ly_offset2scm (b.control_[i]), controls); + set_elt_property ("control-points", controls); } @@ -677,9 +682,12 @@ Bezier Slur::get_curve () const { Bezier b; - Array<Offset> controls (4); - scm_to_array (get_elt_property ("control-points"), &controls); - b.control_ = controls; + int i = 0; + for (SCM s= get_elt_property ("control-points"); s != SCM_EOL; s = gh_cdr (s)) + { + b.control_[i] = ly_scm2offset (gh_car (s)); + i++; + } Array<Offset> enc (get_encompass_offset_arr ()); Direction dir = directional_element (this).get (); diff --git a/lily/staff-margin-engraver.cc b/lily/staff-margin-engraver.cc index 88adb28af6..3e3a435856 100644 --- a/lily/staff-margin-engraver.cc +++ b/lily/staff-margin-engraver.cc @@ -188,7 +188,7 @@ Staff_margin_engraver::do_pre_move_processing () make a properly ordered Right_edge_item, if that need arises. */ text_p_->set_elt_property("visibility-lambda", - ly_eval_str ("begin-of-line-visible")); + scm_eval (ly_symbol2scm ("begin-of-line-visible"))); typeset_element (text_p_); text_p_ = 0; assert (left_edge_p_); diff --git a/lily/stem.cc b/lily/stem.cc index 470d324552..54f9c0e9cd 100644 --- a/lily/stem.cc +++ b/lily/stem.cc @@ -25,7 +25,7 @@ #include "group-interface.hh" #include "cross-staff.hh" #include "staff-symbol-referencer.hh" -#include "lily-guile.icc" + void @@ -252,6 +252,11 @@ Stem::get_default_dir () const return Direction (int(paper_l ()->get_var ("stem_default_neutral_direction"))); } +/* + ugh. A is used for different purposes. This functionality should be + moved into scheme at some point to get rid of the silly + conversions. (but lets wait till we have namespaces in SCM) + */ Real Stem::get_default_stem_end_position () const { @@ -268,15 +273,20 @@ Stem::get_default_stem_end_position () const } else { - s = ly_eval_str (type_str + "stem-length"); - scm_to_array (s, &a); + s = scm_eval (ly_symbol2scm ((type_str + "stem-length").ch_C())); + for (SCM q = s; q != SCM_EOL; q = gh_cdr (q)) + a.push (gh_scm2double (gh_car (q))); + // stem uses half-spaces length_f = a[((flag_i () - 2) >? 0) <? (a.size () - 1)] * 2; } - s = ly_eval_str (type_str + "stem-shorten"); - scm_to_array (s, &a); + a.clear (); + s = scm_eval (ly_symbol2scm ((type_str + "stem-shorten").ch_C())); + for (SCM q = s; q != SCM_EOL; q = gh_cdr (q)) + a.push (gh_scm2double (gh_car (q))); + // stem uses half-spaces @@ -545,12 +555,19 @@ Stem::calc_stem_info () const SCM s; String type_str = grace_b ? "grace-" : ""; - s = ly_eval_str (type_str + "beamed-stem-minimum-length"); - scm_to_array (s, &a); + s = scm_eval (ly_symbol2scm ((type_str + "beamed-stem-minimum-length").ch_C())); + a.clear (); + for (SCM q = s; q != SCM_EOL; q = gh_cdr (q)) + a.push (gh_scm2double (gh_car (q))); + + Real minimum_length = a[multiplicity <? (a.size () - 1)] * staff_space; + s = scm_eval (ly_symbol2scm ((type_str + "beamed-stem-length").ch_C())); + + a.clear(); + for (SCM q = s; q != SCM_EOL; q = gh_cdr (q)) + a.push (gh_scm2double (gh_car (q))); - s = ly_eval_str (type_str + "beamed-stem-length"); - scm_to_array (s, &a); Real stem_length = a[multiplicity <? (a.size () - 1)] * staff_space; if (!beam_dir || (beam_dir == directional_element (this).get ())) diff --git a/ly/property.ly b/ly/property.ly index a45c4702c2..306fc176c0 100644 --- a/ly/property.ly +++ b/ly/property.ly @@ -77,7 +77,7 @@ beampostraditional = slurnormal = - \property Voice.slurDash = "" + \property Voice.slurDash = ##f slurdotted = diff --git a/make/out/lilypond.lsm b/make/out/lilypond.lsm index 6bc5df8a5f..1696317bd1 100644 --- a/make/out/lilypond.lsm +++ b/make/out/lilypond.lsm @@ -1,15 +1,15 @@ Begin3 Title: LilyPond -Version: 1.3.37 -Entered-date: 20MAR00 +Version: 1.3.38 +Entered-date: 22MAR00 Description: Keywords: music notation typesetting midi fonts engraving Author: hanwen@cs.uu.nl (Han-Wen Nienhuys) janneke@gnu.org (Jan Nieuwenhuizen) Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys) Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert - 1000k lilypond-1.3.37.tar.gz + 1000k lilypond-1.3.38.tar.gz Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/ - 1000k lilypond-1.3.37.tar.gz + 1000k lilypond-1.3.38.tar.gz Copying-policy: GPL End diff --git a/make/out/lilypond.spec b/make/out/lilypond.spec index 8a680e8cb7..fab35f568f 100644 --- a/make/out/lilypond.spec +++ b/make/out/lilypond.spec @@ -1,9 +1,9 @@ Name: lilypond -Version: 1.3.37 +Version: 1.3.38 Release: 1 Copyright: GPL Group: Applications/Publishing -Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.37.tar.gz +Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.38.tar.gz Summary: A program for printing sheet music. URL: http://www.cs.uu.nl/~hanwen/lilypond # get Packager from (undocumented?) ~/.rpmmacros! diff --git a/scm/generic-property.scm b/scm/generic-property.scm index 467f9e8c73..358e1f3a71 100644 --- a/scm/generic-property.scm +++ b/scm/generic-property.scm @@ -1,4 +1,19 @@ +; +; Format: +; (cons "Type name" +; (list PROPERTYDESCRIPTIONS)) +; +; where +; PROPERTYDESCRIPTION +; is +; +; (list 'translatorPropertySymbol type-predicate backend-property-symbol) +; +; Descriptions earlier in the list take precedence over later descriptions. +; + + (define generic-beam-properties (cons "Beam" (list @@ -16,8 +31,8 @@ (define generic-stem-properties (cons "Stem" (list - (list 'verticalDirection dir? 'direction) (list 'stemVerticalDirection dir? 'direction) + (list 'verticalDirection dir? 'direction) (list 'stemLength number? 'length) (list 'flagStyle string? 'flag-style) (list 'stemCentered boolean? 'stem-centered) @@ -28,8 +43,8 @@ (define generic-dot-properties (cons "Dots" (list - (list 'verticalDirection dir? 'direction) (list 'dotDirection dir? 'direction) + (list 'verticalDirection dir? 'direction) ) )) @@ -91,8 +106,8 @@ (define generic-breathing-sign-properties (cons "Breathing_sign" (list - (list 'verticalDirection dir? 'direction) (list 'breathingSignVerticalDirection dir? 'direction) + (list 'verticalDirection dir? 'direction) ))) (define generic-clef-properties @@ -113,16 +128,17 @@ (define generic-tie-properties (cons "Tie" (list - (list 'verticalDirection dir? 'direction) (list 'tieVerticalDirection dir? 'direction) + (list 'verticalDirection dir? 'direction) +(list 'tieDash number? 'dashed) ))) + (define generic-tie-column-properties (cons "Tie_column" (list - (list 'verticalDirection dir? 'direction) (list 'tieVerticalDirection dir? 'direction) + (list 'verticalDirection dir? 'direction) ))) - (define generic-note-column-properties (cons "Note_column" (list @@ -141,8 +157,8 @@ (define generic-slur-properties (cons "Slur" (list - (list 'verticalDirection dir? 'direction) (list 'slurVerticalDirection dir? 'direction) + (list 'verticalDirection dir? 'direction) (list 'slurDash number? 'dashed)))) (define generic-timesig-properties diff --git a/scm/lily.scm b/scm/lily.scm index 9933b82133..17b7c45794 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -9,8 +9,6 @@ ; This file contains various routines in Scheme that are easier to ; do here than in C++. At present it is a unorganised mess. Sorry. ; -; - ;(debug-enable 'backtrace) diff --git a/scm/paper.scm b/scm/paper.scm index 9a6b05a8c0..a615f9564f 100644 --- a/scm/paper.scm +++ b/scm/paper.scm @@ -7,6 +7,9 @@ ;;; All dimensions are measured in staff-spaces +; This is a mess : global namespace pollution. We should wait +; till guile has proper toplevel environment support. + ;; Beams should be prevented to conflict with the stafflines, ;; especially at small slopes diff --git a/stepmake/configure b/stepmake/configure index 635962676a..2d4d9d1eaa 100755 --- a/stepmake/configure +++ b/stepmake/configure @@ -608,8 +608,24 @@ fi echo "configure:609: checking Package" >&5 if test "x$PACKAGE" = "xSTEPMAKE"; then echo "$ac_t""Stepmake package!" 1>&6 - (cd stepmake; rm -f stepmake; ln -s ../stepmake .) - (cd stepmake; rm -f bin; ln -s ../bin .) + + #if test "x$builddir" != "x"; then + # builddir="../$builddir" + #else + # builddir=.. + #fi + if test "$srcdir" != "."; then + absolute_builddir="`pwd`" + package_absolute_builddir="`dirname $absolute_builddir`" + package_srcdir="`dirname $srcdir`" + builddir="`dirname $package_srcdir`/`basename $package_absolute_builddir`/`basename $absolute_builddir`" + else + builddir=. + fi + + (cd stepmake 2>/dev/null || mkdir stepmake) + (cd stepmake; rm -f stepmake; ln -s ../$srcdir/stepmake .) + (cd stepmake; rm -f bin; ln -s ../$srcdir/bin .) ac_aux_dir= for ac_dir in bin $srcdir/bin; do if test -f $ac_dir/install-sh; then @@ -632,14 +648,22 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. stepmake=stepmake else echo "$ac_t""$PACKAGE" 1>&6 + + if test "$srcdir" != "."; then + absolute_builddir="`pwd`" + builddir="`dirname $srcdir`/`basename $absolute_builddir`" + else + builddir=. + fi + echo $ac_n "checking for stepmake""... $ac_c" 1>&6 -echo "configure:637: checking for stepmake" >&5 +echo "configure:661: checking for stepmake" >&5 # Check for installed stepmake if test -d $stepmake; then echo "$ac_t""$stepmake" 1>&6 else - stepmake='$(depth)'/stepmake - echo "$ac_t""./stepmake ($datadir/stepmake not found)" 1>&6 + stepmake='$(depth)'/$srcdir/stepmake + echo "$ac_t""$srcdir/stepmake ($datadir/stepmake not found)" 1>&6 fi ac_aux_dir= for ac_dir in \ @@ -652,6 +676,7 @@ for ac_dir in \ /usr/share/stepmake/bin\ /usr/lib/stepmake/bin\ stepmake/bin\ + $srcdir/stepmake/bin\ $srcdir/\ $HOME/usr/local/share/stepmake/bin\ $HOME/usr/local/lib/stepmake/bin\ @@ -662,6 +687,7 @@ for ac_dir in \ /usr/share/stepmake/bin\ /usr/lib/stepmake/bin\ stepmake/bin\ + $srcdir/stepmake/bin\ ; do if test -f $ac_dir/install-sh; then ac_aux_dir=$ac_dir @@ -684,6 +710,7 @@ if test -z "$ac_aux_dir"; then /usr/share/stepmake/bin\ /usr/lib/stepmake/bin\ stepmake/bin\ + $srcdir/stepmake/bin\ $srcdir/\ $HOME/usr/local/share/stepmake/bin\ $HOME/usr/local/lib/stepmake/bin\ @@ -694,6 +721,7 @@ if test -z "$ac_aux_dir"; then /usr/share/stepmake/bin\ /usr/lib/stepmake/bin\ stepmake/bin\ + $srcdir/stepmake/bin\ " 1>&2; exit 1; } fi ac_config_guess=$ac_aux_dir/config.guess @@ -706,6 +734,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. + cat >> confdefs.h <<EOF #define PACKAGE "${PACKAGE_NAME}" EOF @@ -725,8 +754,6 @@ EOF AUTOGENERATE="This file was automatically generated by configure" - absolute_builddir="`pwd`" - STATE_VECTOR=`ls make/STATE-VECTOR 2>/dev/null` if test "x$STATE_VECTOR" != "x"; then @@ -738,15 +765,11 @@ EOF # Check whether --enable-config or --disable-config was given. if test "${enable_config+set}" = set; then enableval="$enable_config" - CONFIGSUFFIX=$enableval + CONFIGSUFFIX=-$enableval fi - if test "$CONFIGSUFFIX" != "" ; then - CONFIGFILE=config-$CONFIGSUFFIX - else - CONFIGFILE=config - fi + CONFIGFILE=config$CONFIGSUFFIX @@ -756,7 +779,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:760: checking host system type" >&5 +echo "configure:783: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -781,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:785: checking for $ac_word" >&5 +echo "configure:808: 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 @@ -816,7 +839,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:820: checking for $ac_word" >&5 +echo "configure:843: 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 @@ -853,7 +876,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:857: checking for $ac_word" >&5 +echo "configure:880: 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 @@ -888,7 +911,7 @@ test -n "$TAR" || TAR="error" # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:892: checking for $ac_word" >&5 +echo "configure:915: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -928,7 +951,7 @@ fi # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:932: checking for $ac_word" >&5 +echo "configure:955: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_SHELL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -965,7 +988,7 @@ fi # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:969: checking for $ac_word" >&5 +echo "configure:992: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1006,7 +1029,7 @@ fi # 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:1010: checking for $ac_word" >&5 +echo "configure:1033: 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 @@ -1172,7 +1195,7 @@ fi echo $ac_n "checking language""... $ac_c" 1>&6 -echo "configure:1176: checking language" >&5 +echo "configure:1199: checking language" >&5 case "$language" in En* | en* | Am* | am* | US* | us*) lang=English;; @@ -1207,7 +1230,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:1211: checking for $ac_word" >&5 +echo "configure:1234: 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 @@ -1339,7 +1362,7 @@ done ac_given_srcdir=$srcdir -trap 'rm -fr `echo "$CONFIGFILE.make:config.make.in $CONFIGFILE.hh:config.hh.in" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 +trap 'rm -fr `echo "$CONFIGFILE.make:config.make.in $CONFIGFILE.h:config.hh.in" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15 EOF cat >> $CONFIG_STATUS <<EOF @@ -1371,13 +1394,13 @@ s%@includedir@%$includedir%g s%@oldincludedir@%$oldincludedir%g s%@infodir@%$infodir%g s%@mandir@%$mandir%g +s%@builddir@%$builddir%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%@STATE_VECTOR@%$STATE_VECTOR%g s%@CONFIGSUFFIX@%$CONFIGSUFFIX%g s%@host@%$host%g @@ -1516,7 +1539,7 @@ ac_eD='%g' if test "${CONFIG_HEADERS+set}" != set; then EOF cat >> $CONFIG_STATUS <<EOF - CONFIG_HEADERS="$CONFIGFILE.hh:config.hh.in" + CONFIG_HEADERS="$CONFIGFILE.h:config.hh.in" EOF cat >> $CONFIG_STATUS <<\EOF fi @@ -1614,7 +1637,12 @@ rm -fr confdefs* $ac_clean_files test "$no_create" = yes || ${CONFIG_SHELL-/bin/sh} $CONFIG_STATUS || exit 1 - rm -f GNUmakefile - cp make/toplevel.make.in ./GNUmakefile - chmod 444 GNUmakefile + rm -f $srcdir/GNUmakefile + cp $srcdir/make/toplevel.make.in $srcdir/GNUmakefile + chmod 444 $srcdir/GNUmakefile + if test "$builddir" != "."; then + rm -f GNUmakefile + cp $srcdir/make/srcdir.make.in GNUmakefile + chmod 444 GNUmakefile + fi diff --git a/stepmake/make/out/stepmake.lsm b/stepmake/make/out/stepmake.lsm index 5a594bbcdb..0f70c05204 100644 --- a/stepmake/make/out/stepmake.lsm +++ b/stepmake/make/out/stepmake.lsm @@ -1,7 +1,7 @@ Begin3 Title: StepMake Version: 0.1.81 -Entered-date: 18NOV99 +Entered-date: 22MAR00 Description: Keywords: music notation typesetting midi fonts engraving Author: janneke@gnu.org (Jan Nieuwenhuizen) |