]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-1.5.31
authorfred <fred>
Wed, 27 Mar 2002 02:05:22 +0000 (02:05 +0000)
committerfred <fred>
Wed, 27 Mar 2002 02:05:22 +0000 (02:05 +0000)
17 files changed:
ChangeLog
Documentation/user/refman.itely
VERSION
aclocal.m4
configure
input/regression/font-magnification.ly [new file with mode: 0644]
lily/font-interface.cc
lily/grob.cc
lily/include/molecule.hh
lily/line-of-score.cc
lily/note-head.cc
lily/text-item.cc
lily/third-try.cc
lily/tuplet-bracket.cc
scm/grob-description.scm
scm/grob-property-description.scm
scm/interface-description.scm

index 90166e4d2f01ae8bf8fc9c3b395ba59559069bff..611b422778cd98a080c513d934db29846f32d04e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,58 @@
+
+2002-02-18  Han-Wen  <hanwen@cs.uu.nl>
+       
+       * VERSION: 1.5.31 released
+
+       * lily/new-spacing-spanner.cc: remove file.
+
+       * lily/third-try.cc (do_measure): only take spacings into account
+       if they pertain to the column pair under consideration. This fixes
+       spacing bug when mixing eighths triplets and normal eighths.
+
+       * lily/note-head.cc (brew_molecule): revert ledger change: ledger
+       lines don't take up space anymore. Document why in note-head.cc
+       comment.
+
+2002-02-17  Han-Wen  <hanwen@cs.uu.nl>
+
+       * lily/font-interface.cc (get_font): reinstate
+       #'font-magnification. See input/regression/font-magnification.ly
+       (get_font): Change the definition of  #'font-name grob property.
+
+       * lily/grob.cc (get_uncached_molecule): output origin for grobs
+       that have a #'cause field.
+
+2002-02-12  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
+
+       * Documentation/topdocs/INSTALL.texi: remove type3 stuff. 
+
+       * mf/GNUmakefile:  remove metapost stuff
+
+       * stepmake/aclocal.m4: remove metapost detection stuff.
+
+2002-02-11  Jan Nieuwenhuizen  <janneke@gnu.org>
+
+       * mf/GNUmakefile (FET_FILES): 
+       (FONT_FILES): Include parmesan.
+
+       * stepmake/bin/packagepython.py (make_assign_re): Bugfix.  Use re
+       iso regex, regsub
+
+       * buildscripts/clean-fonts.sh (FILES): Clean parmesan too.
+
+       * Documentation/user/refman.itely (Paper size): Quote braces.
+
+2002-02-07  Han-Wen Nienhuys  <hanwen@cs.uu.nl>
+
+       * stepmake/aclocal.m4: fixed bison version check to be more
+       robust.
+
+       * lily/stem.cc (position_noteheads): fix for cluster chords.
+
+       * mf/*.mf: many blotting/pixel rounding fixes  by Rune Zedeler
+
+       * python 2.2 support.
+
 2002-02-04  Han-Wen  <hanwen@cs.uu.nl>
 
        * VERSION: 1.5.30 released
index f34b6ba4ebdc319a5eed9352cc33128d174bc675..90c34f36a3b9d7b84b14a08475bca4c0a65c3b00 100644 (file)
@@ -3139,8 +3139,10 @@ Type1 usually come as ``one design fits all sizes''.
 @code{cmti}, etc. Setting this overrides font-family, font-shape and
 font-series.
 
+
 @end table
 
+
 The font is selected by taking the first font that satisfies all
 qualifiers specified. You can override any of these fields through
 @code{\override} and @code{\revert}. The special value @code{*} matches
@@ -3163,14 +3165,20 @@ and @code{dynamic}.
 The style sheets and tables for selecting fonts are located in
 @file{scm/font.scm}. Refer to this file for more information.
 
+
+Setting @code{font-name} overrides all other qualifiers. The value for
+this property should be a string, the file name of the font. You may use
+this to use special fonts, which are not a part of the style sheet, or
+which have special encodings.
+
+The size of the font may be set with the grob property
+@code{font-magnification}.  It is the size of font, relative to its
+standard size. For example, @code{1.0} is normal size.
+
 @refbugs
 
 Relative size is not linked to any real size.
 
-There is no mechanism to select magnification of particular fonts,
-meaning that you don't have access to continuously scaled fonts.  You
-can scale the entire output, of course, see @ref{Output scaling}.
-
 There is no style sheet provided for other fonts besides the @TeX{}
 family.
 
@@ -3541,19 +3549,19 @@ details, see the file @file{scm/font.scm}.
 @cindex @code{papersize}
 
 To change the paper size, you must first set the
-@code{papersize} variable at top level.  Set it to
+@code{papersize} paper variable variable.  Set it to
 the strings @code{a4}, @code{letter}, or @code{legal}.  After this
 specification, you must set the font as described above.  If you want
 the default font, then use the 20 point font.
 
 @example
-        papersize = "a4"
+        \paper@{ papersize = "a4" @}
         \include "paper16.ly"
 @end example
 
 The file @code{paper16.ly}  will now include a file named @file{a4.ly}, which
 will set the paper variables @code{hsize} and @code{vsize} (used by
-@code{ly2dvi})
+Lilypond and @code{ly2dvi})
 
 @c .  {Line break}
 @node Line break
diff --git a/VERSION b/VERSION
index 4b265d335f0864b28f92617e7f3ef7287254590a..72be86c85d6c3dc49a668609eec5f845fbc7928b 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,7 +1,7 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=5
-PATCH_LEVEL=30
+PATCH_LEVEL=31
 MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
index 082312d7413a30eea1b2f3ff52f1c1552f7260fd..d00052343c3bd4ce8dbd57a233e8a1fef3feda63 100644 (file)
@@ -482,10 +482,12 @@ AC_DEFUN(AC_STEPMAKE_LEXYACC, [
     AC_CHECK_SEARCH_RESULT($BISON, bison,  Please install Bison, 1.25 or newer)
     AC_CHECK_SEARCH_RESULT($FLEX,  flex, Please install Flex, 2.5 or newer)
 
+
+## Urg. We should fix this configure test. -- so clumsy
     if test $BISON != "error"; then
-       bison_version=`$BISON --version | sed 's/^.*version 1.//g'`
-       if test `echo $bison_version | sed 's/\..*$//g'` -lt 25; then
-           AC_STEPMAKE_WARN(Your bison is a bit old (1.$bison_version). You might have to install 1.25)
+       bison_version=`$BISON --version | head -1 | sed 's/^.* 1\.//g'`
+       if test $bison_version -lt 25; then
+           AC_STEPMAKE_WARN(The bison installed might be too old (1.$bison_version). You might have to install 1.25)
        fi      
     fi
 
@@ -693,25 +695,12 @@ AC_DEFUN(AC_STEPMAKE_TEXMF, [
        METAFONT=$MFONT
     fi
 
-    AC_CHECK_PROGS(METAPOST, mp, no)
-    if test "x$METAPOST" = "xno"; then
-       AC_CHECK_PROGS(MPOST, mpost, -echo no mp or mpost)
-
-       METAPOST=$MPOST
-    fi
-
     AC_CHECK_PROGS(INIMETAFONT, inimf, no)
     if test "x$INIMETAFONT" = "xno"; then
        AC_CHECK_PROGS(INIMFONT, inimfont, -echo no inimf or inimfont)
        INIMETAFONT=$INIMFONT
     fi
 
-    AC_CHECK_PROGS(INIMETAPOST, inimp, no)
-    if test "x$INIMETAPOST" = "xno"; then
-       AC_CHECK_PROGS(INIMPOST, inimpost, -echo no inimp or inimpost)
-       INIMETAPOST=$INIMPOST
-    fi
-
     AC_MSG_CHECKING(for working metafont mode)
     modelist='ljfour lj4 lj3 lj2 ljet laserjet'
     for MFMODE in $modelist; do
@@ -722,30 +711,11 @@ AC_DEFUN(AC_STEPMAKE_TEXMF, [
     done
     AC_MSG_RESULT($MFMODE)
 
-    AC_MSG_CHECKING(for mfplain.mp)
-    #
-    # For now let people define these in their environments
-    #
-    : ${MFPLAIN_MP=`kpsewhich --format mp mfplain.mp`}
-    AC_MSG_RESULT($MFPLAIN_MP)
-
-    AC_MSG_CHECKING(for inimetapost flags)
-    if test  ${INIMETAPOST} = "inimp" ; then
-       : ${INIMETAPOST_FLAGS=''}
-    else
-       : ${INIMETAPOST_FLAGS='-interaction=nonstopmode'}
-    fi
-    AC_MSG_RESULT($INIMETAPOST_FLAGS)
-
     rm -f mfput.*
 
     AC_SUBST(METAFONT)
-    AC_SUBST(METAPOST)
     AC_SUBST(MFMODE)
     AC_SUBST(INIMETAFONT)
-    AC_SUBST(INIMETAPOST)
-    AC_SUBST(MFPLAIN_MP)
-    AC_SUBST(INIMETAPOST_FLAGS)
 ])
 
 AC_DEFUN(AC_STEPMAKE_WARN, [
index 421625432fe3402a3113edf061edfbb8923aef48..3936dbd1d319348664f86da68a9de5c0c84a567e 100755 (executable)
--- a/configure
+++ b/configure
@@ -2177,11 +2177,13 @@ test -n "$FLEX" || FLEX="error"
        fi
 
 
+
+## Urg. We should fix this configure test. -- so clumsy
     if test $BISON != "error"; then
-       bison_version=`$BISON --version | sed 's/^.*version 1.//g'`
-       if test `echo $bison_version | sed 's/\..*$//g'` -lt 25; then
+       bison_version=`$BISON --version | head -1 | sed 's/^.* 1\.//g'`
+       if test $bison_version -lt 25; then
            
-    echo "configure: warning: Your bison is a bit old (1.$bison_version). You might have to install 1.25" 1>&2
+    echo "configure: warning: The bison installed might be too old (1.$bison_version). You might have to install 1.25" 1>&2
     warn_b=yes
 
        fi      
@@ -2196,7 +2198,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:2200: checking for $ac_word" >&5
+echo "configure:2202: 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
@@ -2229,7 +2231,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:2233: checking for $ac_word" >&5
+echo "configure:2235: 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
@@ -2284,7 +2286,7 @@ fi
 
 
     echo $ac_n "checking language""... $ac_c" 1>&6
-echo "configure:2288: checking language" >&5    
+echo "configure:2290: checking language" >&5    
     case "$language" in
       En* | en* | Am* | am* | US* | us*)
            lang=English;;
@@ -2320,7 +2322,7 @@ EOF
 
 
     echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6
-echo "configure:2324: checking for gettext in -lintl" >&5
+echo "configure:2326: 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
@@ -2328,7 +2330,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lintl  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 2332 "configure"
+#line 2334 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
@@ -2342,7 +2344,7 @@ int main() {
 gettext()
 ; return 0; }
 EOF
-if { (eval echo configure:2346: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2348: \"$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
@@ -2372,12 +2374,12 @@ fi
     for ac_func in gettext
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2376: checking for $ac_func" >&5
+echo "configure:2378: 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 2381 "configure"
+#line 2383 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2403,7 +2405,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:2407: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2409: \"$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
@@ -2435,7 +2437,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:2439: checking for $ac_word" >&5
+echo "configure:2441: 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
@@ -2466,7 +2468,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:2470: checking whether msgfmt accepts -o" >&5
+echo "configure:2472: 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
@@ -2494,7 +2496,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:2498: checking for $ac_word" >&5
+echo "configure:2500: 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
@@ -2530,7 +2532,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:2534: checking for $ac_word" >&5
+echo "configure:2536: 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
@@ -2563,87 +2565,12 @@ test -n "$MFONT" || MFONT="-echo no mf or mfont"
        METAFONT=$MFONT
     fi
 
-    for ac_prog in mp
-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:2572: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_METAPOST'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$METAPOST"; then
-  ac_cv_prog_METAPOST="$METAPOST" # Let the user override the test.
-else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_METAPOST="$ac_prog"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-fi
-fi
-METAPOST="$ac_cv_prog_METAPOST"
-if test -n "$METAPOST"; then
-  echo "$ac_t""$METAPOST" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-test -n "$METAPOST" && break
-done
-test -n "$METAPOST" || METAPOST="no"
-
-    if test "x$METAPOST" = "xno"; then
-       for ac_prog in mpost
-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:2608: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_MPOST'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$MPOST"; then
-  ac_cv_prog_MPOST="$MPOST" # Let the user override the test.
-else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_MPOST="$ac_prog"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-fi
-fi
-MPOST="$ac_cv_prog_MPOST"
-if test -n "$MPOST"; then
-  echo "$ac_t""$MPOST" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-test -n "$MPOST" && break
-done
-test -n "$MPOST" || MPOST="-echo no mp or mpost"
-
-
-       METAPOST=$MPOST
-    fi
-
     for ac_prog in inimf
 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:2647: checking for $ac_word" >&5
+echo "configure:2574: 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
@@ -2679,7 +2606,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:2683: checking for $ac_word" >&5
+echo "configure:2610: 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
@@ -2712,82 +2639,8 @@ test -n "$INIMFONT" || INIMFONT="-echo no inimf or inimfont"
        INIMETAFONT=$INIMFONT
     fi
 
-    for ac_prog in inimp
-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:2721: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_INIMETAPOST'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$INIMETAPOST"; then
-  ac_cv_prog_INIMETAPOST="$INIMETAPOST" # Let the user override the test.
-else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_INIMETAPOST="$ac_prog"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-fi
-fi
-INIMETAPOST="$ac_cv_prog_INIMETAPOST"
-if test -n "$INIMETAPOST"; then
-  echo "$ac_t""$INIMETAPOST" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-test -n "$INIMETAPOST" && break
-done
-test -n "$INIMETAPOST" || INIMETAPOST="no"
-
-    if test "x$INIMETAPOST" = "xno"; then
-       for ac_prog in inimpost
-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:2757: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_INIMPOST'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  if test -n "$INIMPOST"; then
-  ac_cv_prog_INIMPOST="$INIMPOST" # Let the user override the test.
-else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS=":"
-  ac_dummy="$PATH"
-  for ac_dir in $ac_dummy; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
-      ac_cv_prog_INIMPOST="$ac_prog"
-      break
-    fi
-  done
-  IFS="$ac_save_ifs"
-fi
-fi
-INIMPOST="$ac_cv_prog_INIMPOST"
-if test -n "$INIMPOST"; then
-  echo "$ac_t""$INIMPOST" 1>&6
-else
-  echo "$ac_t""no" 1>&6
-fi
-
-test -n "$INIMPOST" && break
-done
-test -n "$INIMPOST" || INIMPOST="-echo no inimp or inimpost"
-
-       INIMETAPOST=$INIMPOST
-    fi
-
     echo $ac_n "checking for working metafont mode""... $ac_c" 1>&6
-echo "configure:2791: checking for working metafont mode" >&5
+echo "configure:2644: 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
@@ -2797,32 +2650,11 @@ echo "configure:2791: checking for working metafont mode" >&5
     done
     echo "$ac_t""$MFMODE" 1>&6
 
-    echo $ac_n "checking for mfplain.mp""... $ac_c" 1>&6
-echo "configure:2802: checking for mfplain.mp" >&5
-    #
-    # For now let people define these in their environments
-    #
-    : ${MFPLAIN_MP=`kpsewhich --format mp mfplain.mp`}
-    echo "$ac_t""$MFPLAIN_MP" 1>&6
-
-    echo $ac_n "checking for inimetapost flags""... $ac_c" 1>&6
-echo "configure:2810: checking for inimetapost flags" >&5
-    if test  ${INIMETAPOST} = "inimp" ; then
-       : ${INIMETAPOST_FLAGS=''}
-    else
-       : ${INIMETAPOST_FLAGS='-interaction=nonstopmode'}
-    fi
-    echo "$ac_t""$INIMETAPOST_FLAGS" 1>&6
-
     rm -f mfput.*
 
     
     
     
-    
-    
-    
-    
 
 
     # Check whether --enable-tfm-path or --disable-tfm-path was given.
@@ -2839,7 +2671,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:2843: checking for $ac_word" >&5
+echo "configure:2675: 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
@@ -2870,7 +2702,7 @@ done
 test -n "$KPSEWHICH" || KPSEWHICH="no"
 
     echo $ac_n "checking for tfm path""... $ac_c" 1>&6
-echo "configure:2874: checking for tfm path" >&5
+echo "configure:2706: checking for tfm path" >&5
 
     TFM_FONTS="cmr msam"
 
@@ -2898,13 +2730,13 @@ echo "configure:2874: checking for tfm path" >&5
 
     ## First, let's just see if we can find Guile at all.
     echo $ac_n "checking "for guile-config"""... $ac_c" 1>&6
-echo "configure:2902: checking "for guile-config"" >&5
+echo "configure:2734: checking "for guile-config"" >&5
     for guile_config in guile-config $target-guile-config $build-guile-config; do
        echo "$ac_t"""$guile_config"" 1>&6
        if ! $guile_config --version > /dev/null 2>&1 ; then
            echo "configure: warning: "cannot execute $guile_config"" 1>&2
            echo $ac_n "checking "if we are cross compiling"""... $ac_c" 1>&6
-echo "configure:2908: checking "if we are cross compiling"" >&5
+echo "configure:2740: checking "if we are cross compiling"" >&5
            guile_config=error
        else
            break
@@ -2915,7 +2747,7 @@ echo "configure:2908: checking "if we are cross compiling"" >&5
        exit 1
     fi
     echo $ac_n "checking "Guile version"""... $ac_c" 1>&6
-echo "configure:2919: checking "Guile version"" >&5
+echo "configure:2751: checking "Guile version"" >&5
     need_guile_version="1.3.4"
     need_guile_version_numeric=100304
     guile_version=`$guile_config --version 2>&1 | awk '{print $NF}'`
@@ -2936,7 +2768,7 @@ else {last =0}}
         
 ## The GUILE_FLAGS macro.
   echo $ac_n "checking for Guile""... $ac_c" 1>&6
-echo "configure:2940: checking for Guile" >&5
+echo "configure:2772: checking for Guile" >&5
   if ! $guile_config link > /dev/null ; then
       echo "$ac_t"""cannot execute $guile_config"" 1>&6
       { echo "configure: error: "cannot find guile-config; is Guile installed?"" 1>&2; exit 1; }
@@ -2951,7 +2783,7 @@ echo "configure:2940: 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:2955: checking for $ac_word" >&5
+echo "configure:2787: 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
@@ -3012,17 +2844,17 @@ fi
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3016: checking for $ac_hdr" >&5
+echo "configure:2848: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3021 "configure"
+#line 2853 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3026: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2858: \"$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*
@@ -3049,7 +2881,7 @@ fi
 done
 
        echo $ac_n "checking for kpse_find_file in -lkpathsea""... $ac_c" 1>&6
-echo "configure:3053: checking for kpse_find_file in -lkpathsea" >&5
+echo "configure:2885: checking for kpse_find_file in -lkpathsea" >&5
 ac_lib_var=`echo kpathsea'_'kpse_find_file | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -3057,7 +2889,7 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-lkpathsea  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 3061 "configure"
+#line 2893 "configure"
 #include "confdefs.h"
 /* Override any gcc2 internal prototype to avoid an error.  */
 #ifdef __cplusplus
@@ -3071,7 +2903,7 @@ int main() {
 kpse_find_file()
 ; return 0; }
 EOF
-if { (eval echo configure:3075: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2907: \"$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
@@ -3101,12 +2933,12 @@ fi
        for ac_func in kpse_find_file
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3105: checking for $ac_func" >&5
+echo "configure:2937: 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 3110 "configure"
+#line 2942 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3132,7 +2964,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3136: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:2968: \"$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
@@ -3159,7 +2991,7 @@ done
 
     fi
     echo $ac_n "checking whether to use kpathsea""... $ac_c" 1>&6
-echo "configure:3163: checking whether to use kpathsea" >&5
+echo "configure:2995: checking whether to use kpathsea" >&5
     if test "$kpathsea_b" != no; then
         echo "$ac_t""yes" 1>&6
        KPATHSEA=1
@@ -3187,7 +3019,7 @@ fi
 
 
 echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6
-echo "configure:3191: checking for 8-bit clean memcmp" >&5
+echo "configure:3023: 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
@@ -3195,7 +3027,7 @@ else
   ac_cv_func_memcmp_clean=no
 else
   cat > conftest.$ac_ext <<EOF
-#line 3199 "configure"
+#line 3031 "configure"
 #include "confdefs.h"
 
 main()
@@ -3205,7 +3037,7 @@ main()
 }
 
 EOF
-if { (eval echo configure:3209: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:3041: \"$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
@@ -3223,12 +3055,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:3227: checking for vprintf" >&5
+echo "configure:3059: 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 3232 "configure"
+#line 3064 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char vprintf(); below.  */
@@ -3254,7 +3086,7 @@ vprintf();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3258: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3090: \"$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
@@ -3278,12 +3110,12 @@ fi
 
 if test "$ac_cv_func_vprintf" != yes; then
 echo $ac_n "checking for _doprnt""... $ac_c" 1>&6
-echo "configure:3282: checking for _doprnt" >&5
+echo "configure:3114: 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 3287 "configure"
+#line 3119 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char _doprnt(); below.  */
@@ -3309,7 +3141,7 @@ _doprnt();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3313: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3145: \"$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
@@ -3336,12 +3168,12 @@ fi
 for ac_func in memmem snprintf vsnprintf gettext isinf
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:3340: checking for $ac_func" >&5
+echo "configure:3172: 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 3345 "configure"
+#line 3177 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -3367,7 +3199,7 @@ $ac_func();
 
 ; return 0; }
 EOF
-if { (eval echo configure:3371: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then
+if { (eval echo configure:3203: \"$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
@@ -3407,7 +3239,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:3411: checking for $ac_word" >&5
+echo "configure:3243: 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
@@ -3439,7 +3271,7 @@ test -n "$MAKEINFO" || MAKEINFO="error"
 
     if test "$MAKEINFO" != "error"; then
        echo $ac_n "checking whether makeinfo can split html by @node""... $ac_c" 1>&6
-echo "configure:3443: checking whether makeinfo can split html by @node" >&5
+echo "configure:3275: checking whether makeinfo can split html by @node" >&5
        mkdir -p out
        makeinfo --html --output=out/split <<EOF
 \input texinfo
@@ -3467,7 +3299,7 @@ EOF
 # Extract the first word of "perl", so it can be a program name with args.
 set dummy perl; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:3471: checking for $ac_word" >&5
+echo "configure:3303: 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
@@ -3501,21 +3333,21 @@ else
 fi
 
 
-for ac_hdr in python2.1/Python.h python2.0/Python.h python2/Python.h python/Python.h python1.5/Python.h Python.h
+for ac_hdr in python2.2/Python.h python2.1/Python.h python2.0/Python.h python2/Python.h python/Python.h python1.5/Python.h Python.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:3509: checking for $ac_hdr" >&5
+echo "configure:3341: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 3514 "configure"
+#line 3346 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:3519: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3351: \"$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*
@@ -3724,15 +3556,9 @@ s%@DIR_LOCALEDIR@%$DIR_LOCALEDIR%g
 s%@MSGFMT@%$MSGFMT%g
 s%@METAFONT@%$METAFONT%g
 s%@MFONT@%$MFONT%g
-s%@METAPOST@%$METAPOST%g
-s%@MPOST@%$MPOST%g
 s%@INIMETAFONT@%$INIMETAFONT%g
 s%@INIMFONT@%$INIMFONT%g
-s%@INIMETAPOST@%$INIMETAPOST%g
-s%@INIMPOST@%$INIMPOST%g
 s%@MFMODE@%$MFMODE%g
-s%@MFPLAIN_MP@%$MFPLAIN_MP%g
-s%@INIMETAPOST_FLAGS@%$INIMETAPOST_FLAGS%g
 s%@KPSEWHICH@%$KPSEWHICH%g
 s%@TFM_PATH@%$TFM_PATH%g
 s%@GUILE_CFLAGS@%$GUILE_CFLAGS%g
diff --git a/input/regression/font-magnification.ly b/input/regression/font-magnification.ly
new file mode 100644 (file)
index 0000000..d379b9e
--- /dev/null
@@ -0,0 +1,22 @@
+\header { texidoc = "The magnification can be set for any font. Note
+that this doesn't change variable symbols such as beams or slurs. " }
+
+\score {
+\notes \relative c'' \context Voice {
+\property Voice .NoteHead \set #'font-magnification = #0.9
+c4
+\property Voice .NoteHead \set #'font-magnification = #0.8
+
+
+  % why doesn't this  work?
+  c4-#'((font-series . bold) ((font-magnification . 2.0) ("foobar")))
+
+  \property Voice .NoteHead \set #'font-magnification = #1.2
+  \property Voice.TextScript \set #'font-magnification = #2.0
+  c4-"big"
+  \property Voice .NoteHead \set #'font-magnification = #1.6
+  c4
+}
+
+}
+
index 79e9f9e38d4af38968a33af3399dc2135d3dd024..d0e23e9bc06ae242203fe4e4f620af21ccde52fe 100644 (file)
@@ -76,21 +76,29 @@ ly_font_interface_get_default_font (SCM grob)
   return Font_interface::get_default_font (gr)->self_scm ();
 }
 
+
 Font_metric *
 Font_interface::get_font (Grob *me, SCM chain)
 {
+  SCM name = me->get_grob_property ("font-name");
   
-  SCM ss = me->paper_l ()->style_sheet_;
-
-  SCM proc = ly_cdr (scm_assoc (ly_symbol2scm ("properties-to-font"),
-                               ss));
+  if (!gh_string_p (name))
+    {
+      SCM ss = me->paper_l ()->style_sheet_;
 
-  SCM fonts = ly_cdr (scm_assoc (ly_symbol2scm ("fonts"), ss));
+      SCM proc = ly_cdr (scm_assoc (ly_symbol2scm ("properties-to-font"),
+                                   ss));
 
-  assert (gh_procedure_p (proc));
-  SCM font_name = gh_call2 (proc, fonts, chain);
+      SCM fonts = ly_cdr (scm_assoc (ly_symbol2scm ("fonts"), ss));
 
-  Font_metric *fm = me->paper_l ()->find_font (font_name, 1.0);
+      assert (gh_procedure_p (proc));
+      name = gh_call2 (proc, fonts, chain);
+    }
+  
+  SCM mag = me->get_grob_property ("font-magnification");
+  Real rmag = gh_number_p (mag) ? gh_scm2double (mag) : 1.0;
+  
+  Font_metric *fm = me->paper_l ()->find_font (name, rmag);
   return fm;
 }
 
@@ -130,13 +138,12 @@ so a 14% speedup.
 
 */
 
-static SCM name_sym, shape_sym, family_sym, series_sym, rel_sz_sym, design_sz_sym, wild_sym;
+static SCM shape_sym, family_sym, series_sym, rel_sz_sym, design_sz_sym, wild_sym;
 
 
 static void
 init_syms ()
 {
-  name_sym = scm_permanent_object (ly_symbol2scm ("font-name"));
   shape_sym  = scm_permanent_object (ly_symbol2scm ("font-shape"));
   family_sym = scm_permanent_object (ly_symbol2scm ("font-family"));
   series_sym = scm_permanent_object (ly_symbol2scm ("font-series"));
@@ -162,8 +169,6 @@ MAKE_SCHEME_CALLBACK (Font_interface,properties_to_font_name,2);
 SCM
 Font_interface::properties_to_font_name (SCM fonts, SCM alist_chain)
 {
-  SCM name = ly_assoc_chain (name_sym, alist_chain);
-
   SCM shape = SCM_BOOL_F;
   SCM family = SCM_BOOL_F;
   SCM series = SCM_BOOL_F;
@@ -172,21 +177,16 @@ Font_interface::properties_to_font_name (SCM fonts, SCM alist_chain)
   SCM point_sz = ly_assoc_chain (design_sz_sym, alist_chain);
   SCM rel_sz = SCM_BOOL_F;
 
-  if (!gh_pair_p (name))
-    {
-       shape = ly_assoc_chain (shape_sym, alist_chain);
-       family = ly_assoc_chain (family_sym, alist_chain);
-       series = ly_assoc_chain (series_sym, alist_chain);
-
-       if (gh_pair_p (shape))
-        shape = ly_cdr (shape);
-       if (gh_pair_p (family))
-        family = ly_cdr (family);
-       if (gh_pair_p (series))
-        series = ly_cdr (series);
-    }
-  else
-    name = ly_cdr (name);
+  shape = ly_assoc_chain (shape_sym, alist_chain);
+  family = ly_assoc_chain (family_sym, alist_chain);
+  series = ly_assoc_chain (series_sym, alist_chain);
+
+  if (gh_pair_p (shape))
+    shape = ly_cdr (shape);
+  if (gh_pair_p (family))
+    family = ly_cdr (family);
+  if (gh_pair_p (series))
+    series = ly_cdr (series);
 
 
   if (gh_pair_p (point_sz))
@@ -202,41 +202,22 @@ Font_interface::properties_to_font_name (SCM fonts, SCM alist_chain)
     {
       SCM qlist = ly_caar (s);
 
-      if (name != SCM_BOOL_F)
-       {
-         if (!wild_compare (scm_list_ref (qlist, gh_int2scm (4)), name))
-           continue;
-       }
-      else
-       {
-         if (!wild_compare (scm_list_ref (qlist, gh_int2scm (1)), series))
-           continue;
-         if (!wild_compare (scm_list_ref (qlist, gh_int2scm (2)), shape))
-           continue;
-         if (!wild_compare (scm_list_ref (qlist, gh_int2scm (3)), family))
-           continue;
-       }
+      if (!wild_compare (scm_list_ref (qlist, gh_int2scm (1)), series))
+       continue;
+      if (!wild_compare (scm_list_ref (qlist, gh_int2scm (2)), shape))
+       continue;
+      if (!wild_compare (scm_list_ref (qlist, gh_int2scm (3)), family))
+       continue;
   
-      if (point_sz != SCM_BOOL_F)
-       {
-         // This if statement will always be true since name must 
-         // be SCM_BOOL_F here, right?  /MB
-         if (!wild_compare (scm_list_ref (qlist, gh_int2scm (4)), name))
-           continue;
-       }
-      else
-       {
-         if (!wild_compare (ly_car (qlist), rel_sz))
-           continue;
-       }
-
-      
+      if (point_sz == SCM_BOOL_F && !wild_compare (ly_car (qlist), rel_sz))
+       continue;
+          
       SCM qname = ly_cdar (s);
       return qname;
     }
 
   warning (_ ("couldn't find any font satisfying "));
-  scm_write (scm_list_n (name, point_sz, shape, series , family, rel_sz, SCM_UNDEFINED), scm_current_error_port ());
+  scm_write (scm_list_n (point_sz, shape, series , family, rel_sz, SCM_UNDEFINED), scm_current_error_port ());
   scm_flush (scm_current_error_port ());
  
   return ly_str02scm ("cmr10");
index a9c47666586a192bf3643c98d4fc430c86123376..e9025beb46d04b5de7bee8d1d653c110b50ce9e8 100644 (file)
@@ -1,5 +1,5 @@
 /*
-  score-elem.cc -- implement Grob
+  grob.cc -- implement Grob
 
   source file of the GNU LilyPond music typesetter
 
@@ -10,8 +10,9 @@
 #include <string.h>
 #include <math.h>
 
+#include "main.hh"
 #include "input-smob.hh"
-#include "libc-extension.hh"
+
 #include "group-interface.hh"
 #include "misc.hh"
 #include "paper-score.hh"
@@ -26,8 +27,7 @@
 #include "molecule.hh"
 #include "misc.hh"
 #include "paper-outputter.hh"
-#include "dimension-cache.hh"
-#include "side-position-interface.hh"
+#include "music.hh"
 #include "item.hh"
 
 #include "ly-smobs.icc"
@@ -278,14 +278,18 @@ Grob::get_uncached_molecule ()const
   
   if (unsmob_molecule (mol))
     {
-      /*
-       TODO: add option for not copying origin info. 
-      */
-      SCM origin =get_grob_property ("origin");
-      if (!unsmob_input (origin))
-       origin =ly_symbol2scm ("no-origin");
-      
+      SCM origin =     ly_symbol2scm ("no-origin");
       
+      if (store_locations_global_b){
+       SCM cause = get_grob_property ("cause");
+       if (Music*m = unsmob_music (cause))
+         {
+           SCM music_origin = m->get_mus_property ("origin");
+           if (unsmob_input (music_origin))
+             origin = music_origin;
+         }
+      }
+
       // ugr.
       
       mol = Molecule (m->extent_box (),
index 76081729ca0c82361c5ec2e3c02ed61aac67c580..9d9ac24b942f46eb3b4aa47a59d43cfc26078dd0 100644 (file)
@@ -42,7 +42,6 @@
 class Molecule {
   Box dim_;
   SCM expr_;
-
   
   DECLARE_SIMPLE_SMOBS (Molecule,);  
 public:
index a9e21a06ebc3e0b7786cbedda8c0615450aebd3d..989d932580ff3527ff8c3de26b181b9c522a94d6 100644 (file)
@@ -191,7 +191,6 @@ set_loose_columns (Line_of_score* which, Column_x_positions const *posns)
          j ++; 
          loose = dynamic_cast<Item*> (unsmob_grob (ly_cdr (between)));
        }
-      
     }
 }
 
index f685b4917ad430ae1f4725f0ff1b24b2eb43b97d..89929e873d81bccf7775fe6ca85d4d62e9c697f0 100644 (file)
 #include "rhythmic-head.hh"
 
 /*
-  Note_head contains the code for printing note heads and the ledger lines.
+  Note_head contains the code for printing note heads.
+
+
+
+  Ledger lines:
+
+  It also contains the ledger lines, for historical reasons.  Ledger
+  lines are somewhat of a PITA. In some cases, they take up no space, in
+  some cases they don't:
+
+  DO take space:
+
+  - when ledgered notes are juxtaposed: there should be some white
+   space between the ledger lines.
+
+  - when accidentals are near: the accidentals should not be on the ledger lines
+
+  [both tips by Heinz Stolba from Universal Edition].
+
+  DO NOT take space into account:
+
+  - for basically everything else, e.g. swapping ledgered notes on
+   clustered chords, spacing between ledgered and unledgered notes.
+
+  
+  TODO: fix this. It is not feasible to have a special grob for
+  ledgers, since you basically don't know if there will be ledgers,
+  unless you know at interpretation phase already 1. the Y-position,
+  2. the number of staff lines. It's not yet specced when both pieces
+  of information are there, so for now, it is probably better to build
+  special support for ledgers into the accidental and separation-item
+  code.
+
+  (Besides a separate ledger seems overkill. For what else would
+  it be useful?)
   
-  TODO: maybe it's worthwhile to split away the Ledger lines into a
-  separate grob.  */
+
+
+*/
 
 #include "staff-symbol-referencer.hh"
 
@@ -133,13 +168,17 @@ internal_brew_molecule (Grob *me,  bool ledger_take_space)
   return out;
 }
 
-MAKE_SCHEME_CALLBACK (Note_head,brew_molecule,1);
 
+MAKE_SCHEME_CALLBACK (Note_head,brew_molecule,1);
 SCM
 Note_head::brew_molecule (SCM smob)  
 {
   Grob *me = unsmob_grob (smob);
-  return internal_brew_molecule (me, true).smobbed_copy ();
+
+  /*
+    ledgers don't take space. See top of file.
+   */
+  return internal_brew_molecule (me, false).smobbed_copy ();
 }
 
 /*
index 21b8729c1c8a85940dcd95a357918858acb625f2..802eeefc9bb1b6e54275d982741d9d5c970ee421 100644 (file)
@@ -90,32 +90,6 @@ Text_item::lookup_character (Grob *, Font_metric*fm, SCM char_name)
 Molecule
 Text_item::lookup_text (Grob *me, Font_metric*fm, SCM text)
 {
-#if 0
-  /*
-    Fixme; should be done differently, move to font-interface?
-
-    differently -- how/why?
-   */
-
-  SCM magnification = me->get_grob_property ("font-magnification");
-
-  Font_metric* metric = 0;
-  if (gh_number_p (magnification))
-    {
-
-      Real realmag = pow (1.2, gh_scm2int (magnification));
-      metric = all_fonts_global_p->find_scaled (ly_scm2string (font_name), realmag);
-
-      assert (false);
-    }
-#else
-  SCM magnification = me->get_grob_property ("font-magnification");
-
-  if (gh_number_p (magnification) && gh_scm2double (magnification) > 1)
-    programming_error ("font-magnification disabled");
-#endif
-  
-
   SCM list = scm_list_n (ly_symbol2scm ("text"), text, SCM_UNDEFINED);
   list = fontify_atom (fm, list);
   
@@ -240,20 +214,13 @@ Text_item::markup_text2molecule (Grob *me, SCM markup_text,
   
   if (extent_b)
     {
-#if 0
-      /* Hmm, we're not allowed to change a Molecule's extent? */
-      mol.dim_[axis] = extent;
-      Molecule::ly_set_molecule_extent_x (mol.self_scm (), gh_int2scm (axis),
-                                         ly_cdr (e));
-#else
-      // burp: unpredictable names, these...
+      /* we're not setting extents for unknown reasons. */
       Box b = mol.extent_box ();
       SCM expr = mol.get_expr ();
 
       b[axis] = extent;
       mol = Molecule (b, expr);
-#endif
-       }  
+    }  
   return mol;
 }
 
index 5816ce6d86fec85bf8ae628c1ef913297864cc04..79deb7cb8a5bc03ffd5a0c287b06d33e0cb623a8 100644 (file)
     left-neighbors = idem
 
     (TODO: property-doc these!)
+
+  Don't be confused by right-items: each spacing wish can also contain
+  a number of items, with which a spacing constraint may be kept. It's
+  a little baroque, but it might come in handy later on?
+    
  */
 
 class Third_spacing_spanner
@@ -74,7 +79,7 @@ loose_column (Grob *l, Grob *c, Grob *r)
 
     the column containing the clef is really loose, and should be
     attached right to the first column, but that is a lot of work for
-    such a border line case.
+    such a borderline case.
 
     )
     
@@ -384,12 +389,13 @@ Third_spacing_spanner::do_measure (Grob*me, Link_array<Grob> *cols)
        {
          Grob * wish = unsmob_grob (gh_car (s));
 
-         /*
-           TODO: configgable.
+         if (Note_spacing::left_column (wish) != lc
+             || Note_spacing::right_column (wish) != rc)
+           continue;
 
-           TODO: don't do stem-dir correction in polyphonic
-           stuff. It wastes CPU time.
-         */
+         /*
+           This is probably a waste of time in the case of polyphonic
+           music.  */
          if (Note_spacing::has_interface (wish))
            {
              hinterfleisch = hinterfleisch >?
@@ -402,18 +408,13 @@ Third_spacing_spanner::do_measure (Grob*me, Link_array<Grob> *cols)
            }
        }
 
-      // ? why.
-      if (gh_pair_p (seq))
-       stretch_distance -= headwid;
-
-         /*
-           something failed, or we get ridiculous close.
-          */
       if (hinterfleisch < 0)
        {
          // maybe should issue a programming error.
          hinterfleisch = note_space;
        }
+      else
+       stretch_distance -= headwid; // why?
 
       if (max_factor == 0.0)
        max_factor = 1.0; 
index d53a5170eaf90fba7dbf15cad8a982797e5379ca..b93ff670d67a6f9816a44b3b8bf2e34ab7387a14 100644 (file)
 /*
   TODO:
   staff-line collisions for horizontal tuplet brackets.
+
+  TODO:
+
+  in the case that there is no bracket, but there is a (single) beam,
+  follow beam precisely for determining tuplet number location.
+  
  */
 
 
@@ -38,9 +44,6 @@ Tuplet_bracket::set_interface (Grob*me)
   me->set_interface (ly_symbol2scm ("tuplet-bracket"));
 }
 
-/*
-  TODO: use stem->beam fields to find Beams. Autobeams aren't found
-  through the engraver mechanism.  */
 MAKE_SCHEME_CALLBACK (Tuplet_bracket,brew_molecule,1);
 SCM
 Tuplet_bracket::brew_molecule (SCM smob) 
index ea731b477ce5c6c008dc8b8f0512b614fefe8aef..bc592243342c454d14f0aa0d98b5d2be830fa9a8 100644 (file)
        (BreathingSign . (
                (break-align-symbol . Breathing_sign)
                (breakable . #t )
-               (molecule-callback . ,Breathing_sign::brew_molecule)
+               (molecule-callback . ,Text_item::brew_molecule)
+               (lookup . name)
+               (font-family . music)
+               (text . "scripts-rcomma")
                (Y-offset-callbacks . (,Breathing_sign::offset_callback))
                (visibility-lambda . ,begin-of-line-invisible)
-               (meta . ,(grob-description  break-aligned-interface))
+               (meta . ,(grob-description  break-aligned-interface text-interface font-interface))
        ))
 
        (Clef . (
        
        (PaperColumn . (
                (axes 0)
+;              (molecule-callback . ,Paper_column::brew_molecule) (font-name . "cmr8")
                (meta . ,(grob-description paper-column-interface axis-group-interface spaceable-element-interface))
        ))
        (PhrasingSlur . (
        
        (NonMusicalPaperColumn . (
                 (axes 0)
+;      (molecule-callback . ,Paper_column::brew_molecule) (font-name . "cmr8")
                (meta . ,(grob-description paper-column-interface axis-group-interface spaceable-element-interface))
         ))
 
index 9afa0705303f5d43c584cd5ca04821b97525fd09..22249189e3ca0be2664d94ed965beab3532d4a4c 100644 (file)
@@ -158,9 +158,11 @@ procedure is tried.")
 (grob-property-description 'flag-width-function procedure? "Procedure that computes the width of a half-beam (a non-connecting beam.).")
 (grob-property-description 'font-family symbol? "partial font
 definition: music roman braces dynamic math ...")
-(grob-property-description 'font-name symbol? "partial font definition:
-base name of font file FIXME: should override other partials.")
+(grob-property-description 'font-name string? "file name for the font to load.
+Overrides all other font-X qualifiers.")
 (grob-property-description 'font-design-size number? "partial font definition: exact font size in points FIXME: should override font-relative-size.")
+(grob-property-description 'font-magnification number? "Magnification
+  of the font. If undefined, the default is @code{1.0}.")
 (grob-property-description 'font-relative-size number? "partial font definition: the relative size compared the `normal' size.
  0 is style-sheet's normal size, -1 is smaller, +1 is bigger, -1 is smaller.")
 (grob-property-description 'font-series symbol? "partial font definition: medium, bold.")
index 62ac4dfbcaefca330fa45c72d375dc1be80c7926..930a7dcc8ced6546d5f851a3e1fc6fd701013835 100644 (file)
@@ -15,6 +15,9 @@
 ;;; and `objects'.
 
 
+;;; TODO: this should be done through C++ macros, in order to have
+;;; tighter coupling between the C++ and its doco.
+
 (define all-interfaces '())
 
 (define (lily-interface symbol description props)