From 63c6a6049d9d36abd65ea9d5fc5bbb6138009dd4 Mon Sep 17 00:00:00 2001 From: fred Date: Wed, 27 Mar 2002 02:03:46 +0000 Subject: [PATCH] lilypond-1.5.18 --- CHANGES | 43 +++++++++ buildscripts/lilylib.py.in | 187 +++++++++++++++++++++++++++++++++++++ 2 files changed, 230 insertions(+) create mode 100644 buildscripts/lilylib.py.in diff --git a/CHANGES b/CHANGES index f2983b1216..032bb58916 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,46 @@ +1.5.17.jcn6 - aka: `pgwit! Ah, dacht dat-i zo wel aardig was.' +=========== + +* Some more hacking at midi2ly.py: + - options and stuff: moved to library for ly2dvi, midi2ly, mup2ly, + update-lily + - handle keys and note names + - simple quantising + - handle tuplets and silly durations + - guess clef + - don't include empty staffs in score + - print relative pitches by default + - don't repeat duration by default + - bugfix: allow 8th notes too + - include new version of input/test/midi-scales.ly + - added barchecks + fix + - bugfix for relative mode + +* Shorter MIDI creation texts. + +* Bugfix: Key_change_req::transpose: don't deliver reversed list. + +* Bugfix: Key_performer::create_audio_elements: transpose list to +`do', before determining tonality. + +1.4.8.moh1 +========== + +* new property "end-alignment" to control non-centered lyric alignment + +1.5.17.hwn1 +=========== + +* Be quicker in Grob::handle_broken_dependencies(). + +* --strict option for abc2ly, exit if an error is found. + +* GUILE 1.3.4 fix. + + +1.5.17 +====== + 1.5.16.hjj2 =========== diff --git a/buildscripts/lilylib.py.in b/buildscripts/lilylib.py.in new file mode 100644 index 0000000000..10ee45aa9c --- /dev/null +++ b/buildscripts/lilylib.py.in @@ -0,0 +1,187 @@ +# lilylib.py -- options and stuff +# +# source file of the GNU LilyPond music typesetter + +import os +from __main__ import * + +try: + import gettext + gettext.bindtextdomain ('lilypond', '@localedir@') + gettext.textdomain ('lilypond') + _ = gettext.gettext +except: + def _ (s): + return s + +program_version = '@TOPLEVEL_VERSION@' +if program_version == '@' + 'TOPLEVEL_VERSION' + '@': + program_version = '1.5.17' + + +original_dir = os.getcwd () +temp_dir = os.path.join (original_dir, '%s.dir' % program_name) + +errorport = sys.stderr +keep_temp_dir_p = 0 +verbose_p = 0 + + +def identify (): + sys.stdout.write ('%s (GNU LilyPond) %s\n' % (program_name, program_version)) + +def warranty (): + identify () + sys.stdout.write ('\n') + sys.stdout.write (_ ('Copyright (c) %s by' % ' 2001')) + sys.stdout.write ('\n') + sys.stdout.write (' Han-Wen Nienhuys') + sys.stdout.write (' Jan Nieuwenhuizen') + sys.stdout.write ('\n') + sys.stdout.write (_ (r''' +Distributed under terms of the GNU General Public License. It comes with +NO WARRANTY.''')) + sys.stdout.write ('\n') + +def progress (s): + errorport.write (s + '\n') + +def warning (s): + progress (_ ("warning: ") + s) + +def error (s): + + + '''Report the error S. Exit by raising an exception. Please + do not abuse by trying to catch this error. If you do not want + a stack trace, write to the output directly. + + RETURN VALUE + + None + + ''' + + progress (_ ("error: ") + s) + raise _ ("Exiting ... ") + +def getopt_args (opts): + '''Construct arguments (LONG, SHORT) for getopt from list of options.''' + short = '' + long = [] + for o in opts: + if o[1]: + short = short + o[1] + if o[0]: + short = short + ':' + if o[2]: + l = o[2] + if o[0]: + l = l + '=' + long.append (l) + return (short, long) + +def option_help_str (o): + '''Transform one option description (4-tuple ) into neatly formatted string''' + sh = ' ' + if o[1]: + sh = '-%s' % o[1] + + sep = ' ' + if o[1] and o[2]: + sep = ',' + + long = '' + if o[2]: + long= '--%s' % o[2] + + arg = '' + if o[0]: + if o[2]: + arg = '=' + arg = arg + o[0] + return ' ' + sh + sep + long + arg + + +def options_help_str (opts): + '''Convert a list of options into a neatly formatted string''' + w = 0 + strs =[] + helps = [] + + for o in opts: + s = option_help_str (o) + strs.append ((s, o[3])) + if len (s) > w: + w = len (s) + + str = '' + for s in strs: + str = str + '%s%s%s\n' % (s[0], ' ' * (w - len(s[0]) + 3), s[1]) + return str + +def help (): + ls = [(_ ("Usage: %s [OPTION]... FILE") % program_name), + ('\n\n'), + (help_summary), + ('\n\n'), + (_ ("Options:")), + ('\n'), + (options_help_str (option_definitions)), + ('\n\n'), + (_ ("Report bugs to %s") % 'bug-lilypond@gnu.org'), + ('\n')] + 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) + try: + os.mkdir (temp_dir, 0777) + except OSError: + pass + + return temp_dir + + +def system (cmd, ignore_error = 0): + """Run CMD. If IGNORE_ERROR is set, don't complain when CMD returns non zero. + + RETURN VALUE + + Exit status of CMD + """ + + if verbose_p: + progress (_ ("Invoking `%s\'") % cmd) + st = os.system (cmd) + if st: + name = re.match ('[ \t]*([^ \t]*)', cmd).group (1) + msg = name + ': ' + _ ("command exited with value %d") % st + if ignore_error: + warning (msg + ' ' + _ ("(ignored)") + ' ') + else: + error (msg) + + return st + + +def cleanup_temp (): + if not keep_temp_dir_p: + if verbose_p: + progress (_ ("Cleaning %s...") % temp_dir) + shutil.rmtree (temp_dir) + + +def strip_extension (f, ext): + (p, e) = os.path.splitext (f) + if e == ext: + e = '' + return p + e + +# END Library + -- 2.39.5