]> git.donarmstrong.com Git - lilypond.git/commitdiff
release: 1.3.154 release/1.3.154
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 9 May 2001 18:23:22 +0000 (20:23 +0200)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Wed, 9 May 2001 18:23:22 +0000 (20:23 +0200)
============

* More brace bugfixes.

* Revert: simplified TFM and PK logic in ly_init_kpath (). Find feta
fonts in datadir (eg /usr/share/) again, rely on environment in the
other tools.

* Add .pk font caching for ly2dvi. pk files resulting from running
dvips are stored in outdir.

1.3.153.j

20 files changed:
CHANGES
NEWS
VERSION
buildscripts/lilypond-login.sh
buildscripts/lilypond-profile.sh
input/GNUmakefile
input/trip.ly
input/twinkle.ly
lily/all-font-metrics.cc
lily/grob.cc
lily/include/kpath.hh
lily/kpath.cc
lily/lexer.ll
make/out/lilypond.lsm
make/out/redhat.spec
make/out/suse.spec
mf/feta-beugel.mf
mutopia/E.Satie/petite-ouverture-a-danser.ly
scm/font.scm
scripts/ly2dvi.py

diff --git a/CHANGES b/CHANGES
index 109e223fd1e41abb96fdc6990b476c1e0a1b0b30..712cfb3ae9591d11eac477f244c76f96833d4f63 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,13 +1,24 @@
-1.3.153.jcn2
+1.3.153.hwn1
 ============
 
-* PO updates.
+* More brace bugfixes. 
+
+* Revert: simplified TFM and PK logic in ly_init_kpath (). Find feta
+fonts in datadir (eg /usr/share/) again, rely on environment in the
+other tools.
+
+* Add .pk font caching for ly2dvi. pk files resulting from running
+dvips are stored in outdir.
 
-1.3.153.jcn1
+1.3.153.jcn2
 ============
 
 * Cleaned-up braces font selection code.
 
+* PO updates.
+
+* petite-ouverture-a-danser.ly bugfix, twinkle.ly bugfix
+
 1.3.153
 =======
 
diff --git a/NEWS b/NEWS
index 481c8bf7c08849445c33961e86b9e6d7b2c9bcd3..8c743166b058b89bcbb5552307bbeb57cd88f6d3 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,8 @@ New features in 1.4
 DESIGN
 
 
+cocentric
+
 * More pervasive GUILE integration resulting in improved design and
 implementation.  LilyPond is smaller, cleaner, more flexible, etc.
 
@@ -56,21 +58,21 @@ shapes, Medieval clefs, custodes.
 
 * Easy-play note heads
 
+* ASCIIScript: ASCII-art output 
 
-MIDI
+* Improved standalone postscript layout.
 
-* dynamics, tempo changes in the MIDI output
 
+IMPORT/EXPORT
 
-MISC
+* dynamics, tempo changes in the MIDI output
 
 * Finale (.etf), PMX, Musedata and Mup import tools.
 
-* Mutopia ports collection: easy accessible music archive.
 
-* ASCIIScript: ASCII-art output 
+MISCELLANEOUS
 
-* Improved standalone postscript layout.
+* Mutopia ports collection: easily accessible music archive.
 
 * Translations into Japanese, French and Russian
 
diff --git a/VERSION b/VERSION
index a0c4ddd6faf8d781c5f524850b2bf1e49f2b2f4e..cdf1553b9dee9870d6851ee38fce1a4617f0b527 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,8 +1,8 @@
 PACKAGE_NAME=LilyPond
 MAJOR_VERSION=1
 MINOR_VERSION=3
-PATCH_LEVEL=153
-MY_PATCH_LEVEL=jcn2
+PATCH_LEVEL=154
+MY_PATCH_LEVEL=
 
 # use the above to send patches: MY_PATCH_LEVEL is always empty for a
 # released version.
index e7913d0621c7ca2e24c0279c26b31a2f8bb62b86..b22b28146dd2d47a86c34dd685d8a7efc6c963f0 100755 (executable)
@@ -10,6 +10,8 @@ set datadir="@datadir@"
 setenv GS_FONTPATH "$datadir/afm:@datadir@/pfa:$GS_FONTPATH"
 setenv GS_LIB "$datadir/ps:$GS_LIB"
 
+setenv LILYPONDPREFIX "$datadir"
+
 # bit silly. for ly2dvi, overrules compiled-in datadir...
 # setenv LILYPONDPREFIX "@datadir@"
 
index 576a30b9fe4b26c3e8d318aa753fa1876b943012..bde5816bdd9cc66d0756397793868932657f4aae 100755 (executable)
@@ -27,8 +27,9 @@ GS_LIB="$datadir/ps"
 MFINPUTS="$datadir/mf:"${MFINPUTS:=":"}
 TEXINPUTS="$datadir/tex:$datadir/ps:"${TEXINPUTS:=":"}
 TFMFONTS="$datadir/tfm:"${TFMFONTS:=":"}
+LILYPONDPREFIX="$datadir"
 
-export MFINPUTS TEXINPUTS TFMFONTS GS_LIB GS_FONTPATH
+export MFINPUTS TEXINPUTS TFMFONTS GS_LIB GS_FONTPATH LILYPONDPREFIX
 
        
 
index c5e72463fab73a502ed7a68185b975a11f4cae89..ee4be08dc75892ac2ff86dd2f99dbe903a3c09ed 100644 (file)
@@ -4,7 +4,7 @@ depth = ..
 
 SUBDIRS=bugs test regression tutorial no-notation ascii-art
 
-examples=trip  star-spangled-banner paddy scarlatti-test
+examples=trip  star-spangled-banner paddy twinkle
 flexamples=
 
 LOCALSTEPMAKE_TEMPLATES=ly mutopia
index ec69cb2771548395bc53cae3e7bb03971b3bfbd9..11a30811d3261fa357980f067fda478d29f045a3 100644 (file)
@@ -1,6 +1,9 @@
 \header {
-  title =       "Trip"
+  title =       "Trip test"
+  subtitle = "Make life very difficult for lilypond"
   copyright =   "public domain"
+  
+  footer ="This file tests as much features of lily as possible."
 }
 
 
index 24f8e47a5f3762e3cf0eecc125899c31725b2969..d801410f4005a3b306e462b536ce2a45d8876600 100644 (file)
@@ -25,7 +25,7 @@ Tested Features: lyrics, interleaving lyrics and staffs, repeats,
 
 melody =  \notes \relative c'' {
        \clef violin
-       \property Staff.instrument = "alto sax"
+       \property Staff.midiInstrument = "alto sax"
        
        c4 c | g' g | a a | g g |
        f f | e e | d d8.( e16 | )c2 |
index 72003d663eae05785881c332e30d09f480abe54c..6d728efd0a2dcc90084c6551bdecc75cbf8366b9 100644 (file)
@@ -123,8 +123,8 @@ All_font_metrics::find_tfm (String name)
       
       if (path.empty_b ())
        {
-         char * p = ly_find_tfm (name.ch_C ());
-         if (p)
+         String p = ly_find_tfm (name.ch_C ());
+         if (p.length_i ())
            path = p;
        }
 
index 98f0601722fb5589381a9d97f49786b65e524633..db504faa814e9d4a371417d63ad2eae0e79bde4c 100644 (file)
@@ -295,8 +295,6 @@ Grob::get_uncached_molecule ()const
 
       m = unsmob_molecule (mol);
     }
-
-
   
   /*
     transparent retains dimensions of element.
index e6b0f54398a66aad747ca0351061a900af5bb71c..accc1f610a3f444c6aae8d1f878e1fa40cac42f2 100644 (file)
@@ -13,7 +13,7 @@ source file of the GNU LilyPond music typesetter
 
 
 char * ly_find_afm (char const * name);
-char * ly_find_tfm (char const * name);
+String ly_find_tfm (char const * name);
 void ly_init_kpath (char *av0);
 
 
index 56801ff29218a6182f6b391464579c50ae5cb746..f42c5fd1f6fcbadb101c1d692932af28cd19020c 100644 (file)
@@ -10,7 +10,6 @@
 #include <string.h>
 
 #include "config.h"
-#include "string.hh"
 
 #define popen REALLYUGLYKLUDGE
 #define pclose ANOTHERREALLYUGLYKLUDGE
@@ -22,6 +21,9 @@ extern "C" {
 }
 #endif
 
+#include "file-path.hh"
+#include "string.hh"
+#include "main.hh"
 #include "kpath.hh"
 #include "lily-version.hh"
 
@@ -35,13 +37,18 @@ ly_find_afm (char const * name)
   return 0;
 }
 
-char *
+String
 ly_find_tfm (char const * name)
 {
+  String p = global_path.find (String (name) + ".tfm");
+
+  if (p.length_i ())
+    return p;
+  
 #if (KPATHSEA && HAVE_KPSE_FIND_FILE)
   return kpse_find_file (name, kpse_tfm_format, true);
 #endif
-  return 0;
+  return "";
 }
 
 
@@ -49,8 +56,52 @@ void
 ly_init_kpath (char *av0)
 {
 #if KPATHSEA && HAVE_KPATHSEA_KPATHSEA_H
+  /*
+    We take two pronged approach to tfms:
+
+    * the lilypond tfms (feta*.tfm) are found through our own routines.
+
+    * the TeX tfms are found through vanilla kpathsea.
+
+    (* other TFMs are not found, i.e. don't use them. )
+
+    PRO:
+    - TFM and AFM checksums always match in Lily.
+
+    - less hassle, no kpathsea spaghetti
+
+    CON:
+
+    - feta PK files are often recreated, locally
+    Solution: cache PK files locally?
+
+    - need env. vars to make sure that TeX finds the TFMs
+
+    - Outdated PK (TFM?) font files are not automatically removed,
+    since VERSION is not part of the standard location.
+
+
+    ALTERNATIVE
+
+    we have tried to come up with schemes that leave this kind of work
+    to kpathsea with objective of fixing the CONs, but miserably
+    failed. TeX installations and kpathsea itself form a buggy,
+    inconsistent, and unorderly mess.
+    
+  */
+
+  /*
+   initialize kpathsea
+   */
+  kpse_set_program_name (av0, NULL);
+  kpse_maketex_option ("tfm", TRUE);
+
+#if  0
+
 
   /*
+    
     Remove the setting for TFMFONTS if we have kpathsea, because
     kpathsea can find TFM fonts anyway.
 
@@ -66,20 +117,13 @@ ly_init_kpath (char *av0)
 
     The advantage is that the PK font will also be generated under
     /var/texmf/fonts, reducing clutter and compilation time.
-    
-  */
+
+   */
+
 #ifndef __CYGWIN__  /* mktextfm/mktexpk does not work on windows */
-#ifndef DEBIAN
   unsetenv ("TFMFONTS");
-#endif
 #endif
 
-  /*
-   initialize kpathsea
-   */
-  kpse_set_program_name (av0, NULL);
-  kpse_maketex_option ("tfm", TRUE);
-
 #ifdef DEBIAN
   String my_tfm = "$VARTEXFONTS/tfm/public/lilypond";
 #else
@@ -87,15 +131,20 @@ ly_init_kpath (char *av0)
   my_tfm += version_str () + "/";
 #endif
 
-  char * mypath = kpse_expand ((my_tfm + ":").ch_C ());
-#ifndef DEBIAN
+#ifdef DEBIAN
+  char * mypath = strdup ((my_tfm + ":").ch_C());
+  kpse_format_info[kpse_tfm_format].client_path = mypath;
+#else
+  char * mypath = kpse_expand (my_tfm.ch_C ());
+                          
   String prog = "mktextfm --destdir ";
   prog += mypath;
   
   kpse_format_info[kpse_tfm_format].program = strdup (prog.ch_C ());
 #endif
-  kpse_format_info[kpse_tfm_format].client_path = mypath;
 #endif
+#endif
+  
 }
 
 
index f9a545082f5317934b3ed95f0a43ae644fdbfff7..a875cea59ee59bbd0ccb8c313b0209af72122f09 100644 (file)
@@ -25,6 +25,8 @@
 #include <stdio.h>
 #include <ctype.h>
 #include <iostream.h> /* gcc 3.0 */
+#include <errno.h>
+
 
 #include "score.hh"
 #include "lily-guile.hh"
index 74c8d1c3904503b0e071b21c3194fd12efef4b70..ec35a366e4cc87cc6839371d2b43b243bc2db421 100644 (file)
@@ -1,15 +1,15 @@
 Begin3
 Title: LilyPond
-Version: 1.3.153
-Entered-date: 08MAY01
+Version: 1.3.154
+Entered-date: 09MAY01
 Description: @BLURB@
 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.153.tar.gz 
+       1000k lilypond-1.3.154.tar.gz 
 Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/
-       1000k lilypond-1.3.153.tar.gz 
+       1000k lilypond-1.3.154.tar.gz 
 Copying-policy: GPL
 End
index 6da1c2ef14cf133f76fb1cdb56ecb68b8d50851a..4024db266c5fb0cb0e2c5c75672e658e47b91aa0 100644 (file)
@@ -1,11 +1,11 @@
 %define info yes
 
 Name: lilypond
-Version: 1.3.153
+Version: 1.3.154
 Release: 1
 License: GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.153.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.154.tar.gz
 Summary: Create and print music notation 
 URL: http://www.cs.uu.nl/~hanwen/lilypond
 BuildRoot: /tmp/lilypond-install
index 628690af0759dd3a6fb6ea5bade4b08a0c237542..64f3f6c7fb3cb4e7552346b1b0eb7fe690588487 100644 (file)
 
 Distribution: SuSE Linux 7.0 (i386)
 Name: lilypond
-Version: 1.3.153
+Version: 1.3.154
 Release: 2
 Copyright:    GPL
 Group: Applications/Publishing
-Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.153.tar.gz
+Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.3.154.tar.gz
 # music notation software for.. ?
 Summary: A program for printing sheet music.
 URL: http://www.lilypond.org/
index 24a7168156e20e16f31f9861148b994d03911813..608ecd5b4ff0bb4b033e71f4d315d8d7fc93ef5a 100644 (file)
@@ -50,7 +50,11 @@ enddef;
 
 
 % l is the increment.
-l := 0.2pt#;
+save stafflinethickness;
+save increment;
+
+stafflinethickness := 0.5pt#;
+increment := 0.5pt#;
 y := 10pt#;
 
 
@@ -60,18 +64,21 @@ for i := 0 step 1 until font_count:
   %% We can't store more than 64 (65?) height dimensions in a TFM
   %% file, so we make small files.
 
-  for j := 0 step 1 until 65:
+  for j := 0 step 1 until 63:
     % message "l: "&decimal l;
     % note: define_pixels (x) multiplies x by hppp,
     % must never get bigger than infinity
-    y := min (y + l / 2, infinity/hppp - 1);
+    y := min (y + increment, infinity/hppp - 1);
+
     % x should be about one staff space, taking brace to have
     % default height of 3 staffs, this yields height / 3 / 4
-    x := y / 12;
+    x := y / 15;
     % l should be about one stafflinethickness
-    l := x / 10;
+
+    increment := x / 10;
+    stafflinethickness :=  min (0.5pt#, y/120 );
     if i = font_count:
-      draw_brace (y, x, l);
+      draw_brace (y, x, stafflinethickness);
     fi
   endfor;
 endfor
index 1a43a5a86a419eefec6262752cd7e20a27e67815..9762bb376adb07a580dec1f46fc00bde6127cb07 100644 (file)
@@ -39,7 +39,7 @@ global =  \notes {
   
 i =  \context Staff \notes\relative c''{
   \context Voice=i
-  \stemUp
+  \voiceOne
 
   c8.( es16 bes4 ~ | )bes8 r c8.( bes16 | des4 c8. bes16 | c4 ~ ) c8 r |
   c4( f,8. as16 | bes4 ~ )bes8 r | f8.( es16 f4 | es )f |
@@ -67,7 +67,7 @@ i =  \context Staff \notes\relative c''{
 
 ii =  \context Staff \notes\relative c'{
   \context Voice=ii
-  \stemDown
+  \voiceTwo
 
   r8 <es as> r <des f> | r <es g> r <es as> | r <f as> r <f as> |
   r <es g> r <es g> | r <es as> r <as, des> | r <des f> r <des f> |
@@ -85,9 +85,9 @@ ii =  \context Staff \notes\relative c'{
   r <cis e> r <cis e> | r <b d> r <a d> | r <g b> r <a cis> |
   r <a cis> r <a cis> |
 
-  \translator Staff=bass\stemUp
+  \translator Staff=bass\voiceOne
   r <g b> r <fis a> r <fis a> | r <g bes>
-  \translator Staff=treble\stemDown
+  \translator Staff=treble\voiceTwo
   r <a c> r <a d> |
 
   r <bes d> r <bes d> | r <g c> r <bes d> | r <c es> r <d g> |
@@ -132,7 +132,7 @@ lower =  \context Staff \notes \relative c{
 }
 
 \score {
-    \context GrandStaff < 
+    \context GrandStaff <
       \context Staff = treble < 
         \global 
         \clef violin
@@ -151,6 +151,7 @@ lower =  \context Staff \notes \relative c{
     \translator{ \OrchestralScoreContext }
     \translator{
            \VoiceContext
+           Slur \override #'attachment = #'(stem . stem)
            autoBeamSettings \override #'(end 1 8 * *) = #(make-moment 1 4)
            autoBeamSettings \override #'(end 1 16 * *) = #(make-moment 1 4)
     }
index 68da4ee2515535c1bf6af334ecb91a6400770983..39fcd09fbc4c1b8b6ddbf6c0d17a76723db349fa 100644 (file)
        (else (ly-warning "unknown font field name"))
        )
        ))
-  
-;;;;;;;;; TODO TODO . (should not use filtering?)
+
+
+
+;; most of these routines have been reimplemented in C++ 
+
+;; TODO TODO . (should not use filtering?)
 ;; this is bad, since we generate garbage every font-lookup.
 ;; otoh, if the qualifiers is narrow enough , we don't generate much garbage.
 
index 1b37c3413a70a36012cd20486a600a9fdb719bf6..017088970d16a6c151b45cf933c78c4a2241787a 100644 (file)
@@ -9,6 +9,12 @@
 #
 
 
+# 
+# TODO: should allow to set a central pk cache directory from the command line.
+# TODO: should allow to switch off pk cache.
+#
+
+
 # Note: gettext work best if we use ' for docstrings and "
 # for gettextable strings
 
@@ -76,7 +82,9 @@ layout_fields = ['title', 'subtitle', 'subsubtitle', 'footer', 'head',
          'meter', 'poet']
 
 
-# init to empty; values here take precedence over values in the file 
+# init to empty; values here take precedence over values in the file
+
+## TODO: change name.
 extra_init = {
        'language' : [],
        'latexheaders' : [],
@@ -98,6 +106,9 @@ help_summary = _ ("Generate .dvi with LaTeX for LilyPond")
 include_path = ['.']
 lily_p = 1
 paper_p = 1
+cache_pks_p = 1
+
+PK_PATTERN='feta.*\.[0-9]+pk'
 
 output_name = ''
 targets = {
@@ -261,6 +272,9 @@ def help ():
        map (sys.stdout.write, ls)
        
 def setup_temp ():
+       """
+       Create a temporary directory, and return its name. 
+       """
        global temp_dir
        if not keep_temp_dir_p:
                temp_dir = tempfile.mktemp (program_name)
@@ -268,7 +282,8 @@ def setup_temp ():
                os.mkdir (temp_dir, 0777)
        except OSError:
                pass
-       os.chdir (temp_dir)
+       
+       return temp_dir
 
 
 def system (cmd, ignore_error = 0):
@@ -719,10 +734,18 @@ if files and files[0] != '-':
                dep_prefix = 0
 
        reldir = os.path.dirname (output_name)
-       (outdir, outbase) = os.path.split (abspath (output_name))
        
+       (outdir, outbase) = os.path.split (abspath (output_name))
+       if outdir != '.' and (track_dependencies_p or targets.keys ()):
+               mkdir_p (outdir, 0777)
+
        setup_environment ()
-       setup_temp ()
+       tmpdir = setup_temp ()
+       if cache_pks_p :
+               os.chdir (outdir)
+               cp_to_dir (PK_PATTERN, tmpdir)
+
+       os.chdir (tmpdir)
        
        extra = extra_init
        
@@ -759,9 +782,6 @@ if files and files[0] != '-':
        if targets.has_key ('PS'):
                run_dvips (outbase, extra)
 
-       if outdir != '.' and (track_dependencies_p or targets.keys ()):
-               mkdir_p (outdir, 0777)
-
        # add DEP to targets?
        if track_dependencies_p:
                depfile = os.path.join (outdir, outbase + '.dep')
@@ -780,7 +800,10 @@ if files and files[0] != '-':
                        progress (_ ("%s output to `%s'...") % (i, outname))
                elif verbose_p:
                        warning (_ ("can't find file: `%s'") % outname)
-
+                       
+               if cache_pks_p:
+                       cp_to_dir (PK_PATTERN, outdir)
+               
        os.chdir (original_dir)
        cleanup_temp ()