sys.path.insert (0, os.path.join (datadir, 'python'))
-
+# Python 2.5 only accepts strings with proper Python internal encoding
+# (i.e. ASCII or Unicode) when writing to stdout/stderr, so we must
+# use ugettext iso gettext, and encode the string when writing to
+# stdout/stderr
localedir = '@localedir@'
try:
import gettext
- gettext.bindtextdomain ('lilypond', localedir)
- gettext.textdomain ('lilypond')
- _ = gettext.gettext
+ t = gettext.translation ('lilypond', localedir)
+ _ = t.ugettext
except:
def _ (s):
return s
underscore = _
-progress = sys.stderr.write
+
+def encoded_write(f, s):
+ f.write (s.encode (f.encoding))
+
+def stderr_write (s):
+ encoded_write (sys.stderr, s)
+
+progress = stderr_write
# Modified version of the commands.mkarg(x), which always uses
# double quotes (since Windows can't handle the single quotes:
program_version = '@TOPLEVEL_VERSION@'
def warning (s):
- sys.stderr.write (program_name + ": " + _ ("warning: %s") % s + '\n')
+ ly.stderr_write (program_name + ": " + _ ("warning: %s") % s + '\n')
def error (s):
- sys.stderr.write (program_name + ": " + _ ("error: %s") % s + '\n')
+ ly.stderr_write (program_name + ": " + _ ("error: %s") % s + '\n')
def identify (port=sys.stderr):
- port.write ('%s (GNU LilyPond) %s\n' % (program_name, program_version))
+ ly.encoded_write (port, '%s (GNU LilyPond) %s\n' % (program_name, program_version))
def warranty ():
identify ()
- sys.stdout.write ('''
+ ly.encoded_write (sys.stdout, '''
Copyright (c) %s by
Han-Wen Nienhuys
pass
def do_one_file (infile_name):
- sys.stderr.write (_ ("Processing `%s\'... ") % infile_name)
+ ly.stderr_write (_ ("Processing `%s\'... ") % infile_name)
sys.stderr.write ('\n')
from_version = None
sys.exit (i)
def identify ():
- sys.stdout.write ('%s (GNU LilyPond) %s\n' % (program_name, program_version))
+ ly.encoded_write (sys.stdout, '%s (GNU LilyPond) %s\n' % (program_name, program_version))
-def progress (s):
- sys.stderr.write (s)
+progress = ly.progress
def warning (s):
- sys.stderr.write (program_name + ": " + _ ("warning: %s") % s + '\n')
+ ly.stderr_write (program_name + ": " + _ ("warning: %s") % s + '\n')
def error (s):
- sys.stderr.write (program_name + ": " + _ ("error: %s") % s + '\n')
+ ly.stderr_write (program_name + ": " + _ ("error: %s") % s + '\n')
def ps_page_count (ps_name):
header = open (ps_name).read (1024)
def warranty ():
identify ()
- sys.stdout.write ('''
+ ly.encoded_write (sys.stdout, '''
%s
%s
exit_status = status >> 8
error (_ ("`%s' failed (%d)") % (cmd, exit_status))
error (_ ("The error log is as follows:"))
- sys.stderr.write (error)
- sys.stderr.write (stderr.read ())
+ ly.stderr_write (error)
+ ly.stderr_write (stderr.read ())
exit (status)
if global_options.verbose:
import midi
import lilylib as ly
+global _;_=ly._
################################################################
## CONSTANTS
################################################################
-localedir = '@localedir@'
-try:
- import gettext
- gettext.bindtextdomain ('lilypond', localedir)
- gettext.textdomain ('lilypond')
- _ = gettext.gettext
-except:
- def _ (s):
- return s
program_name = sys.argv[0]
program_version = '@TOPLEVEL_VERSION@'
def warranty ():
identify ()
- sys.stdout.write ('''
+ ly.encoded_write (sys.stdout, '''
Copyright (c) %s by
Han-Wen Nienhuys
def progress (s):
- errorport.write (s + '\n')
+ ly.encoded_write (errorport, s + '\n')
def warning (s):
progress (_ ("warning: ") + s)
def error (s):
progress (_ ("error: ") + s)
- raise _ ("Exiting ... ")
+ raise _ ("Exiting... ")
def system (cmd, ignore_error = 0):
return ly.system (cmd, ignore_error=ignore_error)
e = ''
return p + e
-\f
class Duration:
p.add_option ('-x', '--text-lyrics', help=_ ("treat every text as a lyric"),
action='store_true')
- p.add_option_group (_ ("Examples"),
+# urg, Python 2.5 optparse is broken, it doesn't accept Unicode strings
+ p.add_option_group (_ ("Examples").encode (sys.stdout.encoding),
description = r'''
midi2ly --key=-2:1 --duration-quant=32 \
--allow-tuplet=4*2/3 --allow-tuplet=2*4/3 foo.midi
''')
- p.add_option_group ('bugs',
+ p.add_option_group (_ ('Bugs').encode (sys.stdout.encoding),
description=(_ ('Report bugs via')
+ ''' http://post.gmane.org/post.php'''
'''?group=gmane.comp.gnu.lilypond.bugs\n'''))
if not args or args[0] == '-':
opt_parser.print_help ()
- sys.stderr.write ('\n%s: %s %s\n' % (program_name, _ ("error: "),
- _ ("no files specified on command line.")))
+ ly.stderr_write ('\n%s: %s %s\n' % (program_name, _ ("error: "),
+ _ ("no files specified on command line.")))
sys.exit (2)
if options.duration_quant:
options = None
def progress (str):
- sys.stderr.write (str + '\n')
+ stderr_write (str + '\n')
sys.stderr.flush ()
def error_message (str):
- sys.stderr.write (str + '\n')
+ stderr_write (str + '\n')
sys.stderr.flush ()
needed_additional_definitions = []