#
# source file of the GNU LilyPond music typesetter
#
-# (c) 1997--2006 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+# (c) 1997--2008 Han-Wen Nienhuys <hanwen@cs.uu.nl>
import os
import sys
import getopt
-import string
import re
import time
font_family = 'feta'
def parse_logfile (fn):
- (autolines, deps) = read_log_file (fn)
+ autolines, deps = read_log_file (fn)
charmetrics = []
global_info = {
group = ''
for l in autolines:
- tags = string.split (l, '@:')
+ tags = l.split ('@:')
if tags[0] == 'group':
group = tags[1]
elif tags[0] == 'puorg':
m = {
'description': tags[1],
'name': name,
- 'code': string.atoi (tags[2]),
- 'breapth': string.atof (tags[3]),
- 'width': string.atof (tags[4]),
- 'depth': string.atof (tags[5]),
- 'height': string.atof (tags[6]),
- 'wx': string.atof (tags[7]),
- 'wy': string.atof (tags[8]),
+ 'code': int (tags[2]),
+ 'breapth': float (tags[3]),
+ 'width': float (tags[4]),
+ 'depth': float (tags[5]),
+ 'height': float (tags[6]),
+ 'wx': float (tags[7]),
+ 'wy': float (tags[8]),
}
charmetrics.append (m)
elif tags[0] == 'font':
encoding = re.sub (' ','-', tags[5])
tags = tags[:-1]
name = tags[1:]
- global_info['design_size'] = string.atof (tags[4])
- global_info['FontName'] = string.join (name, '-')
- global_info['FullName'] = string.join (name,' ')
- global_info['FamilyName'] = string.join (name[1:-1],
- '-')
+ global_info['design_size'] = float (tags[4])
+ global_info['FontName'] = '-'.join (name)
+ global_info['FullName'] = ' '.join (name)
+ global_info['FamilyName'] = '-'.join (name[1:-1])
if 1:
global_info['Weight'] = tags[4]
else: # testing
-
-
-def write_character_lisp_table (file, global_info, charmetrics):
+def character_lisp_table (global_info, charmetrics):
def conv_char_metric (charmetric):
f = 1.0
return s
+ s = ''
for c in charmetrics:
- file.write (conv_char_metric (c))
+ s += conv_char_metric (c)
+
+ return s
-def write_global_lisp_table (file, global_info):
+def global_lisp_table (global_info):
str = ''
keys = ['staffsize', 'stafflinethickness', 'staff_space',
if global_info.has_key (k):
str = str + "(%s . %s)\n" % (k,global_info[k])
- file.write (str)
+ return str
-def write_ps_encoding (name, file, global_info, charmetrics):
+def ps_encoding (name, global_info, charmetrics):
encs = ['.notdef'] * 256
for m in charmetrics:
encs[m['code']] = m['name']
- file.write ('/%s [\n' % name)
- for m in range (0, 256):
- file.write (' /%s %% %d\n' % (encs[m], m))
- file.write ('] def\n')
+ s = ('/%s [\n' % name)
+ for m in range (0, 256):
+ s += (' /%s %% %d\n' % (encs[m], m))
+ s += ('] def\n')
+ return s
-def write_deps (file, deps, targets):
+def get_deps (deps, targets):
+ s = ''
for t in targets:
t = re.sub ( '^\\./', '', t)
- file.write ('%s '% t)
- file.write (": ")
+ s += ('%s '% t)
+ s += (": ")
for d in deps:
- file.write ('%s ' % d)
- file.write ('\n')
-
+ s += ('%s ' % d)
+ s += ('\n')
+ return s
def help ():
sys.stdout.write(r"""Usage: mf-to-table [OPTIONS] LOGFILEs
elif re.search ('feta-alphabet', filenm):
enc_name = 'FetaAlphabetEncoding';
- write_ps_encoding (enc_name, open (enc_nm, 'w'), g, m)
- write_character_lisp_table (open (char_lisp_nm, 'w'), g, m)
- write_global_lisp_table (open (global_lisp_nm, 'w'), g)
+ open (enc_nm, 'w').write (ps_encoding (enc_name, g, m))
+ open (char_lisp_nm, 'w').write (character_lisp_table (g, m))
+ open (global_lisp_nm, 'w').write (global_lisp_table (g))
if depfile_nm:
- write_deps (open (depfile_nm, 'wb'), deps,
- [base + '.log', base + '.dvi', base + '.pfa',
- depfile_nm,
- base + '.pfb'])
+ open (depfile_nm, 'wb').write (get_deps (deps,
+ [base + '.log', base + '.dvi', base + '.pfa',
+ depfile_nm,
+ base + '.pfb']))