#!@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--2009 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+# Copyright (C) 1997--2012 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
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 = []
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
elif tags[0] == 'parameter':
global_info[tags[1]] = tags[2];
-
+
return (global_info, charmetrics, deps)
keys = ['staffsize', 'stafflinethickness', 'staff_space',
'linethickness', 'black_notehead_width', 'ledgerlinethickness',
- 'design_size',
+ 'design_size',
'blot_diameter'
]
for k in keys:
return str
-
+
def ps_encoding (name, global_info, charmetrics):
encs = ['.notdef'] * 256
for m in charmetrics:
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
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):