]> git.donarmstrong.com Git - lilypond.git/blobdiff - scripts/build/mf-to-table.py
Run grand replace for 2015.
[lilypond.git] / scripts / build / mf-to-table.py
index 9a1c8012e6f92c2d564de4edc4d5a93fa4735cf3..03284dc8b155da04c6dcd7f717e0c5a9836a8b57 100644 (file)
@@ -1,10 +1,10 @@
 #!@PYTHON@
 
-# mf-to-table.py -- convert spacing info in MF logs . 
+# mf-to-table.py -- convert spacing info in MF logs .
 
 # This file is part of LilyPond, the GNU music typesetter.
 #
-# Copyright (C) 1997--2010 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+# Copyright (C) 1997--2015 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 #
 # LilyPond is free software: you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -27,7 +27,7 @@ import time
 
 def read_log_file (fn):
     str = open (fn).read ()
-    str = re.sub ('\n', '', str)
+    str = re.sub ('[\n\r]', '', str)
     str = re.sub ('[\t ]+', ' ', str)
 
     deps = []
@@ -55,20 +55,26 @@ font_family = 'feta'
 def parse_logfile (fn):
     autolines, deps = read_log_file (fn)
     charmetrics = []
-    
+
     global_info = {
         'filename' : os.path.splitext (os.path.basename (fn))[0]
         }
     group = ''
 
-    for l in autolines:
+    for i, l in enumerate(autolines):
         tags = l.split ('@:')
         if tags[0] == 'group':
             group = tags[1]
         elif tags[0] == 'puorg':
             group = ''
         elif tags[0] == 'char':
-            name = tags[9]
+            try:
+                name = tags[9]
+            except IndexError:
+                print 'Error in mf-to-table while processing file', fn
+                print 'Index 9 >', len(tags)-1, 'on line', i
+                print l
+                raise
 
             if group:
                 name = group + '.' + name
@@ -112,7 +118,7 @@ def parse_logfile (fn):
 
         elif tags[0] == 'parameter':
             global_info[tags[1]] = tags[2];
-            
+
     return (global_info, charmetrics, deps)
 
 
@@ -150,7 +156,7 @@ def global_lisp_table (global_info):
 
     keys = ['staffsize', 'stafflinethickness', 'staff_space',
         'linethickness', 'black_notehead_width', 'ledgerlinethickness',
-        'design_size', 
+        'design_size',
         'blot_diameter'
         ]
     for k in keys:
@@ -159,7 +165,7 @@ def global_lisp_table (global_info):
 
     return str
 
-    
+
 def ps_encoding (name, global_info, charmetrics):
     encs = ['.notdef'] * 256
     for m in charmetrics:
@@ -220,9 +226,9 @@ for opt in options:
         depfile_nm = a
     elif o == '--outdir' or o == '-o':
         outdir_prefix = a
-    elif o == '--lisp': 
+    elif o == '--lisp':
         char_lisp_nm = a
-    elif o == '--global-lisp': 
+    elif o == '--global-lisp':
         global_lisp_nm = a
     elif o == '--enc':
         enc_nm = a
@@ -242,6 +248,12 @@ for filenm in files:
     enc_name = 'FetaEncoding'
     if re.search ('parmesan', filenm):
         enc_name = 'ParmesanEncoding'
+    elif re.search ('parmesan-noteheads', filenm):
+        enc_name = 'ParmesanNoteheadsEncoding'
+    elif re.search ('feta-noteheads', filenm):
+        enc_name = 'FetaNoteheadsEncoding'
+    elif re.search ('feta-flags', filenm):
+        enc_name = 'FetaFlagsEncoding'
     elif re.search ('feta-brace', filenm):
         enc_name = 'FetaBraceEncoding'
     elif re.search ('feta-alphabet', filenm):
@@ -252,6 +264,6 @@ for filenm in files:
     open (global_lisp_nm, 'w').write (global_lisp_table (g))
     if depfile_nm:
         open (depfile_nm, 'wb').write (get_deps (deps,
-                                                 [base + '.log', base + '.dvi', base + '.pfa',
+                                                 [base + '.log', base + '.dvi',
                                                   depfile_nm,
                                                   base + '.pfb']))