+pl 7.hwn1
+ - website fixes.
+ - spacer cleanups
+ - Simple_spacer: a simpler constraint solver. Enabled by default.
+pl 7.jcn1
+ - fixes to nl.po
+
+****************
+
pl 6.uu1
- website fixes.
+*******
pl 5.hwn1
- more .texi; yodl completely removed.
- rm'd several doc stuff: engraving.yo, gnu-page.yo, translated blurbs (leave it to translation project)
>
<hr>
+Go <a href=%s>back</a> to index of LilyPond.
<p>
Please send GNU LilyPond questions and comments to
-<!-- back to idx. %s >
+
<a href="mailto:gnu-music-discuss@gnu.org">
<em>gnu-music-discuss@gnu.org</em></a>.
<p>
@node Top, , , (dir)
@top
-
-
-
-@unnumberedsec NAME
-
-
-The Documentation of LilyPond -- the GNU Project music typesetter
-
-@unnumberedsec DESCRIPTION
-
-
-Note: These pages are created from the latest @strong{development snapshots}
-of LilyPond. You can look at the bottom if you want to know which
-version this was.
-
-@unnumberedsubsec Documentation: Introduction
+@unnumberedsubsec Introduction
@itemize @bullet
@item @uref{DEDICATION.html,DEDICATION}
@itemize @bullet
@item @uref{AIMS.txt,Why?}
-@item @uref{../pictures/out-www/lelieblond.png,The logo} large size}
-@item @uref{../pictures/out-www/lelie_logo.png,The logo} medium size}
+@item @uref{../pictures/out-www/lelieblond.png,The logo} large size
+@item @uref{../pictures/out-www/lelie_logo.png,The logo} medium size
@end itemize
@unnumberedsubsec Documentation: manuals
@section Obtaining
You can get the latest version of LilyPond at
-@url{ ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/}. Refer to the links
+@uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/,ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/}. Refer to the links
document for mirror sites.
@emph{If you upgrade by patching do remember to rerun autoconf after
Although we recommend to use Unix, LilyPond is known to run on Windows
NT/95/98 as well. See Section @xref{w32}.
-@item EGCS 1.1 or newer. Check out @url{ ftp://ftp.gnu.org/pub/gcc/}
+@item EGCS 1.1 or newer. Check out @uref{ ftp://ftp.gnu.org/pub/gcc/, ftp://ftp.gnu.org/pub/gcc/}
@item Python 1.5,
Check out
-@url{ftp://ftp.python.org} or @url{ftp://ftp.cwi.nl/pub/python}.
+@uref{ftp://ftp.python.org,ftp://ftp.python.org} or @uref{ftp://ftp.cwi.nl/pub/python,ftp://ftp.cwi.nl/pub/python}.
-@item GUILE 1.3, check out @url{http://www.gnu.org/software/guile/guile.html}.
+@item GUILE 1.3, check out @uref{http://www.gnu.org/software/guile/guile.html,http://www.gnu.org/software/guile/guile.html}.
@item GNU make.
-Check out @url{ftp://ftp.gnu.org/make/}.
+Check out @uref{ftp://ftp.gnu.org/make/,ftp://ftp.gnu.org/make/}.
@item Flex (version 2.5.4 or newer).
-Check out @url{ftp://ftp.gnu.org/flex/}.
+Check out @uref{ftp://ftp.gnu.org/flex/,ftp://ftp.gnu.org/flex/}.
@item Bison (version 1.25 or newer).
-Check out @url{ftp://ftp.gnu.org/bison/}.
+Check out @uref{ftp://ftp.gnu.org/bison/,ftp://ftp.gnu.org/bison/}.
-@item Texinfo. Check out @url{ftp://ftp.gnu.org/pub/texinfo/}.
+@item Texinfo. Check out @uref{ftp://ftp.gnu.org/pub/texinfo/,ftp://ftp.gnu.org/pub/texinfo/}.
Most documentation is in texinfo.
@item The geometry package for LaTeX is needed to use ly2dvi.
Available at
-@url{ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry}
-or at mirror site @url{ftp://ftp.dante.de}
+@uref{ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry,ftp://ftp.ctan.org/tex-archive/macros/latex/contrib/supported/geometry}
+or at mirror site @uref{ftp://ftp.dante.de,ftp://ftp.dante.de}
@item MetaPost, if you want to use direct PostScript output. Please
note that tetex-0.4pl8 (included with Redhat 5.x) does not include
@item A PostScript printer and/or viewer (such as Ghostscript) is strongly
recommended. Xdvi will show all embedded PostScript too if you have
Ghostscript installed.
-@item GUILE 1.3, check out @url{http://www.gnu.org/programs/guile.html}
+@item GUILE 1.3, check out @uref{http://www.gnu.org/programs/guile.html,http://www.gnu.org/programs/guile.html}
@end itemize
For running LilyPond successfully you have to help TeX and MetaFont
@item xpmtoppm (from the Portable Bitmap Utilities) (For RedHat Linux
users: it is included within the package libgr-progs).
the original is at
-@url{ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz}
+@uref{ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz,ftp://ftp.x.org/contrib/utilities/netpbm-1mar1994.p1.tar.gz}
@item pnmtopng, which is also in libgr-progs for RedHat. The original is
at
-@url{ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz}.i
+@uref{ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz,ftp://swrinde.nde.swri.edu/pub/png/applications/pnmtopng-2.37.2.tar.gz}.i
The version of @file{pnmtopng} that is distributed with RedHat 5.1 and
5.2 contains a bug: pnmtopng is dynamically linked to the wrong
You can then install the new pnmtopng into @file{/usr/local/bin/}
-@item Bib2html @url{http://pertsserver.cs.uiuc.edu/~hull/bib2html.}
+@item Bib2html @uref{http://pertsserver.cs.uiuc.edu/~hull/bib2html.,http://pertsserver.cs.uiuc.edu/~hull/bib2html.}
Which, in turn depends on man2html for proper installation.
-man2html can be had from @url{http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05}.
+man2html can be had from @uref{http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05,http://askdonald.ask.uni-karlsruhe.de/hppd/hpux/Networking/WWW/Man2html-1.05}.
The website will build without this utility, but you will not see our
hypertextified bibliography.
@end example
Precompiled i386 RedHat RPMS are available from
-@url{ftp://freshmeat.net/pub/rpms/lilypond/} and
-@url{http://linux.umbc.edu/software/lilypond/rpms/}.
+@uref{ftp://freshmeat.net/pub/rpms/lilypond/,ftp://freshmeat.net/pub/rpms/lilypond/} and
+@uref{http://linux.umbc.edu/software/lilypond/rpms/,http://linux.umbc.edu/software/lilypond/rpms/}.
For compilation on a RedHat system you need these packages,
in addition to the those needed for running:
Separate instructions on building for W32 are available
-@url{../../outdir/README-W32.html}.
+@uref{../../outdir/README-W32.html,README-W32}.
@section Bugs
@section windows 32
If you have received this file as part of a DOS/Window32 distribution
-(LilyPond-*.zip), then it is advisable to also download the source
-package, since it might contain more documentation
+(@file{LilyPond-*.zip}), then it is advisable to also download the
+source package, since it might contain more documentation
@uref{ftp://ftp.cs.uu.nl/pub/GNU/LilyPond/}
If you decide to build LilyPond from source, please read the INSTALL.txt
@node bugs, cdrom distributions, caveats, This is the toplevel README to LilyPond
@section bugs
-Send bug reports to bug-gnu-music@@gnu.org. For help and questions use
-help-gnu-music@@gnu.org and gnu-music-discuss@@gnu.org. Please consult
-the faq before mailing your problems.
+Send bug reports to @email{bug-gnu-music@@gnu.org}. For help and questions use
+ @email{help-gnu-music@@gnu.org} and @email{gnu-music-discuss@@gnu.org}.
+Please consult the faq before mailing your problems.
@node cdrom distributions, Top, bugs, This is the toplevel README to LilyPond
@section cdrom distributions
@itemize @bullet
-@item @uref{http://www.gnu.org/software/...} LilyPond is part of the GNU
+@item @uref{http://www.gnu.org/software/lilypond} LilyPond is part of the GNU
project. The webpages for the stable version reside at GNU.
-@item @uref{http://www.cs.uu.nl/people/hanwen/lilypond/} Han-Wen's site
+@item @uref{http://www.cs.uu.nl/~hanwen/lilypond/} Han-Wen's site
has the development pages.
@item @uref{http://sca.uwaterloo.ca/lilypond/} Eric's mirror
@item @uref{http://home.austin.rr.com/jbr/jeff/lilypond/} Jeff's Windows NT Distribution site
.* TODO
. * use Rhythmic_head::position_i () for all Staff_referenced
-. * bug: dots.
+. * rerun profile
. * mmrests
-. * web: download link.
-. * guile detection.
. * Break_req handling is silly (break_forbid () + \break fucks up.)
. * script engraver
-
. * HaraKiriStaffContext removes bar lines and doesn't remove
staff margin text on removed staff lines.
. * Mondrup:
import os
import sys
import pwd
-import regex
-import regsub
+import re
import string
import getopt
import time
# return pwd.getpwuid(os.getuid())[4]
def c_commentify(str):
- return '/* ' + regsub.gsub('^',' ', str) + '\n */';
+ return '/* ' + re.sub('^',' ', str) + '\n */';
def sh_commentify(str):
- return regsub.gsub('^', '# ', str)
+ return re.sub('^', '# ', str)
def tex_commentify(str):
- return regsub.gsub('^', '% ', str)
+ return re.sub('^', '% ', str)
def project_str():
cwd = os.getcwd()
- if regex.search('flower', cwd) <> -1:
+ if re.search('flower', cwd):
PROJECT = "the Flower Library"
- elif regex.search('mf$', cwd) <> -1:
+ elif re.search('mf$', cwd):
PROJECT = "the Feta (defintively not an abbreviation for Font-En-Tja) music font"
else:
PROJECT = "the GNU LilyPond music typesetter"
def extension(ext,nm):
ext = '\\.' + ext
- return regex.search(ext, nm) <> -1
+ return re.search(ext, nm) <> None
def c_extension(nm):
return extension('hh',nm) or extension('cc',nm) \
name = 'mutopia-index'
-import regex
+import find
+import re
import os
import sys
import stat
-sys.path.append ('@abs-step-bindir@')
-
def gulp_file (fn):
- f = open (fn)
+ try:
+ f = open (fn)
+ except:
+ raise 'not there' , fn
return f.read ()
+def file_exist_b (fn):
+ try:
+ f = open (fn)
+ return 1
+ except:
+ return 0
-header_regex = regex.compile('\\header[ \t\n]*{\([^}]*\)}')
-header_entry_regex = regex.compile('[\n\t ]*\([^\n\t ]+\)[\n\t ]*=[\n \t]*\([^;]+\)[\n \t]*;')
headertext= r"""
These example files are taken from the LilyPond distribution.
LilyPond currently only outputs TeX and MIDI. The pictures and
PostScript files were generated using TeX, Ghostscript and some
-graphics tools. The papersize used for these examples is A4.
+graphics tools. The papersize used for these examples is A4.
The images are in PNG format, and should be viewable with any current browser.
We don't use GIFS due to <a href="http://www.gnu.org/philosophy/gif.html">patent problems</a>.
<p>
"""
headertext_nopics = r"""This is a subdirectory of the LilyPond example
-set. We decided not to show any examples from this directory. If you
+set. We decided not to show any examples from this directory. If you
want to view them, then you have to download LilyPond and compile them
yourself."""
#
def read_mudela_header (fn):
s = gulp_file(fn)
- s = regsub.gsub('%.*$', '', s)
- s = regsub.gsub('\n', ' ', s)
+ s = re.sub('%.*$', '', s)
+ s = re.sub('\n', ' ', s)
dict = {}
- if header_regex.search(s) <> -1:
- h = header_regex.group(1)
- else:
- return dict
-
- while regex.search('=', h) <> -1:
-
- if header_entry_regex.search (h) == -1:
+ m = re.search (r"""\\header\s*{([^}]*)}""", s)
- raise 'format error'
-
- h = regsub.sub(header_entry_regex, '', h)
- left = header_entry_regex.group(1)
- right = header_entry_regex.group(2)
+ if m:
+ s = m.group(1)
+ else:
+ return dict
- right = regsub.gsub('\([^\\]\)\"', '\\1', right)
- right = regsub.gsub('^"', '', right)
- left = regsub.gsub('\([^\\]\)\"', '', left)
- left = regsub.gsub('^"', '', left)
+ while s:
+ m = re.search (r"""\s*(\S+)\s*=\s*([^;]+)\s*;""", s)
+ if m == None:
+ s = ''
+ else:
+ s = s[m.end (0):]
+ left = m.group (1)
+ right = m.group (2)
- dict[left] = right
+ left = re.sub ('"', '', left)
+ right = re.sub ('"', '', right)
+ dict[left] = right
return dict
-
-
-
def help ():
- sys.stdout.write ("Usage: " + name + " [options] INFILE OUTFILE\n"
- + "Generate index for mutopia\n\n"
- + "Options:\n"
- + " -h, --help print this help\n"
- + " -p, --package=DIR specify package\n"
- + " --prefix=PRE specify prefix\n"
- + " -s, --subdirs=DIR add subdir\n"
- + " --suffix=SUF specify suffix\n"
- )
- sys.exit (0)
-
+ sys.stdout.write (r"""Usage: mutopia-index [options] INFILE OUTFILE
+Generate index for mutopia\n
+Options:
+ -h, --help print this help
+ --prefix=PRE specify prefix
+ -s, --subdirs=DIR add subdir
+ --suffix=SUF specify suffix"""
+ )
+ sys.exit (0)
+
+# ugh.
def gen_list(inputs, subdir, filename):
- (pre, subdirs, post)=subdir
- print "generating HTML list %s\n" % filename
- list = open(filename, 'w')
- list.write ('<html><TITLE>Rendered Examples</TITLE>\n')
- list.write ('<body bgcolor=white>')
- if subdirs:
- list.write ('<h2>subdirectories</h2>')
- list.write ('<ul>')
- for ex in subdirs:
- print 'subdir %s ' % ex
- list.write ('<li><a href=%s/index.html>Subdirectory: %s</a></li>\n' % (pre + ex + post , ex))
+ (pre, subdirs, post)=subdir
+ print "generating HTML list %s\n" % filename
+ list = open(filename, 'w')
+ list.write ('<html><TITLE>Rendered Examples</TITLE>\n')
+ list.write ('<body bgcolor=white>')
+ if subdirs:
+ list.write ('<h2>subdirectories</h2>')
+ list.write ('<ul>')
+ for ex in subdirs:
+ print 'subdir %s ' % ex
+ list.write ('<li><a href=%s/index.html>Subdirectory: %s</a></li>\n' % (pre + ex + post , ex))
- list.write ('</ul>')
+ list.write ('</ul>')
- if inputs:
- list.write('<h2>Contents of this directory</h2>\n');
+ if inputs:
+ list.write('<h2>Contents of this directory</h2>\n');
- list.write (headertext)
- else:
- list.write (headertext_nopics)
+ list.write (headertext)
+ else:
+ list.write (headertext_nopics)
- for ex in inputs:
- ex_ext = '.ly'
- print '%s, ' % ex
- try:
- header = read_mudela_header(ex + ex_ext + '.txt')
- except:
- ex_ext = '.fly'
- header = read_mudela_header(ex + ex_ext + '.txt')
-
- def read_dict(s, default, h =header):
+ for ex in inputs:
+ ex_ext = '.ly'
+ print '%s, ' % ex
try:
- ret = h[s]
- except KeyError:
- ret = default
- return ret
- head = read_dict('title', ex)
- composer = read_dict('composer', '')
- desc = read_dict('description', '')
- list.write('<hr>')
- list.write('<h1>example file: %s</h1>' % head);
- if composer <> '':
- list.write('<h2>%s</h2>\n' % composer)
- if desc <> '':
- list.write('%s<p>' % desc)
- list.write ('<ul>')
- def list_item(filename, desc, type, l = list):
- if file_exist_b(filename):
- l.write ('<li><a href=%s>%s</a>' % (filename, desc))
- size=os.stat(filename)[stat.ST_SIZE]
- l.write (' (%s %dk)' % (type, (size + 512) / 1024))
- pictures = ['jpeg', 'png', 'xpm']
- # silly, no?
- if 0 and type in pictures:
- l.write (' <a href="http://www.gnu.org/philosophy/gif.html">no gifs due to patent problems</a>')
- l.write ('\n')
- list_item(ex + ex_ext + '.txt', 'The input', 'ASCII')
- for pageno in range(1,100):
- f = ex + '-page%d.png' % pageno
- if not file_exist_b (f):
- break
- list_item(f, 'The output, page %d' % pageno, 'png')
- list_item(ex + '.ps.gz', 'The output', 'gzipped PostScript')
- list_item(ex + '.midi', 'The output', 'MIDI')
- list.write ("</ul>");
-
- list.write( "</BODY></HTML>");
- list.close()
+ header = read_mudela_header(ex + ex_ext + '.txt')
+ except:
+ ex_ext = '.fly'
+ header = read_mudela_header(ex + ex_ext + '.txt')
+
+ def read_dict(s, default, h =header):
+ try:
+ ret = h[s]
+ except KeyError:
+ ret = default
+ return ret
+ head = read_dict('title', ex)
+ composer = read_dict('composer', '')
+ desc = read_dict('description', '')
+ list.write('<hr>')
+ list.write('<h1>example file: %s</h1>' % head);
+ if composer <> '':
+ list.write('<h2>%s</h2>\n' % composer)
+ if desc <> '':
+ list.write('%s<p>' % desc)
+ list.write ('<ul>')
+ def list_item(filename, desc, type, l = list):
+ if file_exist_b(filename):
+ l.write ('<li><a href=%s>%s</a>' % (filename, desc))
+ size=os.stat(filename)[stat.ST_SIZE]
+ l.write (' (%s %dk)' % (type, (size + 512) / 1024))
+ pictures = ['jpeg', 'png', 'xpm']
+ l.write ('\n')
+ list_item(ex + ex_ext + '.txt', 'The input', 'ASCII')
+ for pageno in range(1,100):
+ f = ex + '-page%d.png' % pageno
+ if not file_exist_b (f):
+ break
+ list_item(f, 'The output, page %d' % pageno, 'png')
+ list_item(ex + '.ps.gz', 'The output', 'gzipped PostScript')
+ list_item(ex + '.midi', 'The output', 'MIDI')
+ list.write ("</ul>");
+
+ list.write( "</BODY></HTML>");
+ list.close()
import getopt
(options, files) = getopt.getopt(sys.argv[1:],
- 'hp:s:', ['help', 'subdirs=', 'suffix=', 'package=', 'prefix='])
+ 'hp:s:', ['help', 'subdirs=', 'suffix=', 'prefix='])
subdir_pre=''
subdir_suf =''
subdirs =[]
for opt in options:
- o = opt[0]
- a = opt[1]
- if o == '--subdirs' or o == '-s':
- subdirs.append (a)
- elif o == '--prefix':
- subdir_pre = a
- elif o == '-p' or o == '--package':
- topdir = a
- elif o == '--suffix':
- subdir_suf = a
-
- sys.path.append (topdir + '/stepmake/bin')
- from packagepython import *
- package = Package (topdir)
- packager = Packager ()
-
- from flower import *
-
-
-# huh?
-allfiles = multiple_find (['*.*ly.txt'], '.')
+ o = opt[0]
+ a = opt[1]
+ if o == '--subdirs' or o == '-s':
+ subdirs.append (a)
+ elif o == '--prefix':
+ subdir_pre = a
+ elif o == '--suffix':
+ subdir_suf = a
+
+
+allfiles = find.find ('*.ly') + find.find ('*.ly.txt')
gen_list (files, (subdir_pre, subdirs, subdir_suf), 'index.html')
case E_UNKNOWNOPTION:
str += _f ("unrecognized option: `%s\'",
String (argument_index_i_
- ? String ("-" + _f("%c",arg_value_ch_a_a_[array_index_i_][argument_index_i_]))
+ ? String ("-" + String_convert::form_str ("%c",
+ arg_value_ch_a_a_[array_index_i_][argument_index_i_]))
: String (arg_value_ch_a_a_[array_index_i_])));
break;
case E_ILLEGALARG:
r = map_fd (fildes_i_, (vm_offset_t) 0, &address, TRUE, size_off_);
if (r != KERN_SUCCESS)
- warning (String (_ ("map_fd: ")) + mach_error_string (r));
+ warning (String ("map_fd: ") + mach_error_string (r));
else
data_caddr_ = (char *) address;
}
r = vm_deallocate (task_self (), (vm_address_t) data_caddr_,
size_off_);
if (r != KERN_SUCCESS)
- warning (String (_ ("vm_deallocate: ")) + mach_error_string (r));
+ warning (String ("vm_deallocate: ") + mach_error_string (r));
#else
munmap (data_caddr_, size_off_);
#endif
if (f)
return f;
String s = _f("Can't find default font `%s\', giving up.", default_font_sz_);
- s += String ("\n") + _f ("search path = %s", search_path_.str ());
+ s += String ("\n") + _f ("(search path: `%s)'", search_path_.str ());
error (s);
}
if (d == STOP && !beam_p_)
{
- m->warning (_ ("No Beam to end"));
+ m->warning (_ ("no beam to end"));
return false;
}
reqs_drul_[d ] = c;
if (reqs_drul_[STOP])
{
if (!beam_p_)
- reqs_drul_[STOP]->warning (_("No beam to end"));
+ reqs_drul_[STOP]->warning (_("no beam to end"));
prev_start_req_ =0;
finished_beam_p_ = beam_p_;
finished_beam_info_p_ = beam_info_p_;
{
// when all too short, normal stems win..
if (dy_f < -epsilon_f)
- warning (_ ("weird beam shift, check your knees"));
- dy_f = dy_f >? sinfo_[i].miny_f_ - y;
+ warning (_ ("weird beam vertical offset"));
+ dy_f = dy_f >? sinfo_[i].miny_f_ - y;
}
}
return dy_f;
if ((d == STOP) && !abeam_p_)
{
- m->warning (_ ("No abbreviation beam to end"));
+ m->warning (_ ("no tremolo beam to end"));
return false;
}
if (reqs_drul_[STOP])
{
if (!abeam_p_)
- reqs_drul_[STOP]->warning (_("No abbreviation beam to end"));
+ reqs_drul_[STOP]->warning (_("no tremolo beam to end"));
prev_start_req_ = 0;
finished_abeam_p_ = abeam_p_;
abeam_p_ = 0;
{
if (abeam_p_)
{
- reqs_drul_[START]->warning (_ ("Already have an abbreviation beam"));
+ reqs_drul_[START]->warning (_ ("already have a tremolo beam"));
return;
}
typeset_beam ();
if (abeam_p_)
{
- prev_start_req_->warning (_ ("Unfinished abbreviation beam"));
+ prev_start_req_->warning (_ ("unfinished tremolo beam"));
finished_abeam_p_ = abeam_p_;
typeset_beam ();
}
{
if (shift[i-1] == shift[i])
{
- warning (_ ("Too many clashing notecolumns. Ignoring them."));
+ warning (_ ("Too many clashing notecolumns. Ignoring them."));
return tups;
}
}
void
Column_x_positions::stupid_solution()
{
- set_stupid_solution (spacer_l_->default_solution());
+ // set_stupid_solution (spacer_l_->default_solution());
}
void
Gourlay_breaking::Gourlay_breaking ()
{
- get_line_spacer = Spring_spacer::constructor;
energy_bound_f_ = infinity_f;
max_measures_i_ = INT_MAX;
}
if (elt)
return;
- warning (_("Unattached grace notes. Attaching to last musical column."));
+ warning (_("Unattached grace notes. Attaching to last musical column."));
Axis_group_element * ae = dynamic_cast<Axis_group_element*> (elt);
if (ae)
ae->remove_element (align_l_);
if (!sl)
{
String msg = _f ("can't find file: `%s\'", s);
- msg += _f ("\nSearch path is `%s'\n", global_sources->path_C_->str ().ch_C());
+ msg += "\n";
+ msg += _f ("(search path: `%s')", global_sources->path_C_->str ().ch_C());
+ msg += "\n";
LexerError (msg.ch_C ());
return;
/// wordwrap type algorithm: move to next line if current is optimal.
struct Word_wrap : Break_algorithm {
virtual Array<Column_x_positions> do_solve() const;
- Word_wrap();
};
#endif // WORD_WRAP_HH
String s = global_path.find (fn);
if (s == "")
{
- String e = _f ("Can not find file `%s\'", fn);
+ String e = _f ("can't find file: `%s\'", fn);
e += " ";
- e += _f ("(Load path is `%s\'", global_path.str ());
+ e += _f ("(load path: `%s\')", global_path.str ());
error (e);
}
else
String s = global_path.find (fn);
if (s == "")
{
- String e = _f ("Can not find file `%s\'", fn);
+ String e = _f ("can't find file: `%s\'", fn);
e += " ";
- e += _f ("(Load path is `%s\'", global_path.str ());
+ e += _f ("(load path: `%s\')", global_path.str ());
error (e);
}
else
#include "line-spacer.hh"
+#include "dimensions.hh"
Line_spacer::Line_spacer()
{
- paper_l_ =0;
-}
-Paper_def*
-Line_spacer::paper_l() const
-{
- return paper_l_ ;
+ indent_f_ =0.0;
+ default_space_f_ = 20 PT;
}
+
Line_spacer::~Line_spacer ()
{
}
+
me->afm_l_ = all_fonts_global_p->find_afm (font_name_);
if (!me->afm_l_)
{
- warning (_f("Can't open `%s'\n", font_name_));
- warning (_f("Search path %s\n", global_path.str ().ch_C()));
+ warning (_f("can't find font: `%s'", font_name_));
+ warning (_f("(search path: `%s')", global_path.str ().ch_C()));
error (_f("Aborting"));
}
}
#ifdef STRING_UTILS_INLINED
"STRING_UTILS_INLINED "
#endif
+ "\n"
"datadir =" DIR_DATADIR
"\n"
"localedir =" DIR_LOCALEDIR
identify ();
cout << '\n';
cout << _f (""
- "This is free software. It is covered by the GNU General Public License,"
- "and you are welcome to change it and/or distribute copies of it under"
+ "This is free software. It is covered by the GNU General Public License,\n"
+ "and you are welcome to change it and/or distribute copies of it under\n"
"certain conditions. Invoke as `%s --warranty' for more information.\n",
"lilypond");
cout << endl;
{
Translator * t = find_translator_l ("Score");
if (!t)
- error (_("Can't find Score context"));
+ error (_ ("can't find Score context"));
t = t->clone ();
Global_translator *g = dynamic_cast <Global_translator *> (t);
t->add_processing ();
req_l->warning (_f ("junking request: `%s\'", classname( req_l)));
}
else
- i->car_->warning (_f ("Huh? Not a Request: `%s\'",
+ i->car_->warning (_f ("Huh? Not a Request: `%s\'",
classname (i->car_)));
}
first_b_ = false;
if (init_str.length_i () && global_path.find (init_str).empty_b ())
{
warning (_f ("can't find file: `%s\'", init_str));
- warning (_f ("Search path: %s", global_path.str ().ch_C()));
+ warning (_f ("(search path: `%s')", global_path.str ().ch_C()));
return;
}
if ((file_str != "-") && global_path.find (file_str).empty_b ())
Moment shortest_playing_len = lc->shortest_playing_mom_;
if (! shortest_playing_len)
{
- warning (_f ("can't find a ruling note at %s",
- lc->when_mom ().str ()));
+ programming_error ("can't find a ruling note at " + lc->when_mom ().str ());
shortest_playing_len = 1;
}
+
if (! shortest)
{
- warning (_f ("no minimum in measure at %s",
- lc->when_mom ().str ()));
+ programming_error ("no minimum in measure at " + lc->when_mom ().str ());
shortest = 1;
}
Moment delta_t = rc->when_mom () - lc->when_mom ();
return breaking;
}
-Word_wrap::Word_wrap ()
-{
- get_line_spacer = Spring_spacer::constructor;
-}
% in interline
articulation_script_padding_default = 1.0;
+% 1.0 -> faster.
+simple_spacing_solver = 1.0;
\include "engraver.ly";
local-WWW: $(ly_examples) $(fly_examples) $(ps_examples) $(png_examples)
- (cd $(outdir); $(PYTHON) ../$(buildscripts)/mutopia-index.py --package=$(topdir) --prefix=../ --suffix=/$(outdir) $(html_subdirs) $(all_examples))
+ (cd $(outdir); $(PYTHON) ../$(buildscripts)/mutopia-index.py --prefix=../ --suffix=/$(outdir) $(html_subdirs) $(all_examples))
echo $^ > $(depth)/wwwlist
convert-mudela: local-convert-mudela
Mudela_voice (Mudela_staff* mudela_staff_l);
void add_item (Mudela_item* mudela_item_l);
void output (Mudela_stream& mudela_stream_r);
-
+ String get_clef () const;
+ Mudela_item * last_item_l_;
private:
Mudela_staff* mudela_staff_l_;
Cons_list<Mudela_item> mudela_item_l_list_;
+
};
#endif // MUDELA_VOICE_HH
identify ();
cout << '\n';
cout << _f (""
- "This is free software. It is covered by the GNU General Public License,"
- "and you are welcome to change it and/or distribute copies of it under"
+ "This is free software. It is covered by the GNU General Public License,\n"
+ "and you are welcome to change it and/or distribute copies of it under\n"
"certain conditions. Invoke as `%s --warranty' for more information.\n",
"midi2ly");
cout << endl;
if (mudela_item_p->mudela_column_l_)
mudela_item_p->mudela_column_l_->add_item (mudela_item_p);
}
+/**
+ Walk ITEMS and find voices. Remove categorised items.
+ TODO: collect all channels into separate voices. Use chords for sim
+ notes on same channel.
+
+ */
void
Mudela_staff::eat_voice (Cons_list<Mudela_item>& items)
{
for (Cons<Mudela_item>** pp = &items.head_; *pp;)
{
Cons<Mudela_item>* i = *pp;
- LOGOUT (DEBUG_ver) << "At: " << i->car_->at_mom ().str () << "; ";
- LOGOUT (DEBUG_ver) << "dur: " << i->car_->duration_mom ().str () << "; ";
- LOGOUT (DEBUG_ver) << "mom: " << mom.str () << " -> ";
if (i->car_->at_mom () > mom)
{
Moment dur = i->car_->at_mom () - mom;
Mudela_column* start = mudela_score_l_g->find_column_l (mom);
voice_p->add_item (new Mudela_skip (start, dur));
mom = i->car_->at_mom ();
+ continue; // unnecessary
}
- if (i->car_->at_mom () == mom)
+
+ Link_array<Mudela_item> now_items;
+ for (Cons<Mudela_item> *cp = i; cp && cp->car_->at_mom () == mom; cp = cp->next_)
+ now_items.push (i->car_);
+
+ Mudela_item * which = 0;
+ Mudela_note * last_note = dynamic_cast<Mudela_note*> (voice_p->last_item_l_);
+
+ for (int i=0; !which && last_note && i < now_items.size (); i++)
{
- mom = i->car_->at_mom () + i->car_->duration_mom ();
- Cons<Mudela_item>* c = items.remove_cons (pp);
- voice_p->add_item (c->car_);
- delete c;
+ Mudela_note * now_note = dynamic_cast<Mudela_note*> (now_items[i]);
+ if (now_note && last_note->channel_i_ != now_note->channel_i_)
+ which = now_note;
}
- else if (*pp)
- pp = &i->next_;
- LOGOUT (DEBUG_ver) << "mom: " << mom.str () << '\n';
+
+#if 0
+ // use pitch difference for determining which item to pick.
+ if (!which)
+ {
+ int mindiff = 100000; // ugh
+ for (int i=0; !which && last_note && i < now_items.size (); i++)
+ {
+ Mudela_note *nt = dynamic_cast<Mudela_note*> (now_items[i]);
+ if (!nt)
+ continue;
+ int diff = abs (last_note->pitch_i_ - nt->pitch_i_ );
+ if(diff < mindiff)
+ {
+ mindiff = diff;
+ which = now_items [i];
+ }
+ }
+
+ if (which && mindiff > 18) // more than 1.5 octaves apart. Don't put in same voice.
+ {
+ which =0;
+ }
+
+ }
+#endif
+
+ if (!which && now_items.size ())
+ which = now_items[0];
+
+
+
+ if (!which)
+ {
+ pp = &(*pp)->next_;
+ continue;
+ }
+
+ while ((*pp)->car_ != which)
+ pp = &(*pp)->next_;
+
+ mom += (*pp)->car_->duration_mom ();
+ Cons<Mudela_item>* c = items.remove_cons (pp);
+ voice_p->add_item (c->car_);
+ delete c;
}
}
void
Mudela_staff::output (Mudela_stream& mudela_stream_r)
{
- mudela_stream_r << id_str () << " = \\notes";
- mudela_stream_r << (mudela_voice_p_list_.size_i () > 1 ? "<" : "{");
- mudela_stream_r << '\n';
+ int c =0;
+
+ String trackbody = "";
+ for (Cons<Mudela_voice>* i = mudela_voice_p_list_.head_; i; i = i->next_)
+ {
+ String voicename = id_str () + "voice" + to_str (char (c + 'A'));
+
+ mudela_stream_r << voicename << " = \\notes ";
+
+ trackbody += "\\" + voicename + "\n";
+
+ mudela_stream_r << "\n";
+ i->car_->output (mudela_stream_r);
+ c++;
+ }
+
mudela_stream_r << _ ("% midi copyright:") << copyright_str_ << '\n';
mudela_stream_r << _ ("% instrument:") << instrument_str_ << '\n';
+ mudela_stream_r << id_str () << " = ";
+ mudela_stream_r << "<\n " << trackbody << " >\n";
- // don't use last duration mode
- // mudela_stream_r << "\\duration 4;\n";
- if (mudela_voice_p_list_.size_i () == 1)
- mudela_voice_p_list_.head_->car_->output (mudela_stream_r);
- else
- for (Cons<Mudela_voice>* i = mudela_voice_p_list_.head_; i; i = i->next_)
- {
- mudela_stream_r << "{ ";
- i->car_->output (mudela_stream_r);
- mudela_stream_r << "} ";
- }
-
- mudela_stream_r << (mudela_voice_p_list_.size_i () > 1 ? "\n>" : "\n}");
mudela_stream_r << " % " << name_str () << '\n';
}
*os_p_ << filename_str_g;
*os_p_ << "\n\n";
// ugh
- *os_p_ << "\\version \"1.1.60\";\n";
+ *os_p_ << "\\version \"1.2.7\";\n";
}
void
Mudela_voice::Mudela_voice (Mudela_staff* mudela_staff_l)
{
mudela_staff_l_ = mudela_staff_l;
+ last_item_l_ =0;
}
void
Mudela_voice::add_item (Mudela_item* mudela_item_l)
{
+ last_item_l_ = mudela_item_l;
mudela_item_l_list_.append (new Cons<Mudela_item> (mudela_item_l, 0));
}
+/**
+ analyse pitches to determine clef.
+ */
+String
+Mudela_voice::get_clef () const
+{
+ Mudela_note * n =0;
+
+ for (Cons<Mudela_item> *cp = mudela_item_l_list_.head_; !n && cp; cp = cp->next_)
+ {
+ n = dynamic_cast<Mudela_note*> (cp->car_);
+ }
+
+ if (!n)
+ return "";
+
+ const int c0_pitch = 60;
+ int p = n->pitch_i_;
+
+ if (p < 56)
+ return "\\clef \"bass\";\n";
+ else if (p > 67)
+ return "\\clef \"treble\";\n";
+ else
+ return "";
+}
static int const FAIRLY_LONG_VOICE_i = 6;
void
Mudela_voice::output (Mudela_stream& mudela_stream_r)
{
- if (!mudela_item_l_list_.size_i ())
- return;
-
+ mudela_stream_r << "{ ";
if (mudela_item_l_list_.size_i () > FAIRLY_LONG_VOICE_i)
mudela_stream_r << '\n';
+
+ mudela_stream_r << get_clef () << '\n';
+
int current_bar_i = 0;
Moment bar_mom = mudela_staff_l_->mudela_time_signature_l_->bar_mom ();
if (mudela_item_l_list_.size_i () > FAIRLY_LONG_VOICE_i)
mudela_stream_r << '\n';
+
+ mudela_stream_r << "} ";
}
+
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 1999-08-20 18:48+0200\n"
+"POT-Creation-Date: 1999-09-15 23:21+0200\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
msgid "unrecognized option: `%s'"
msgstr ""
-#: getopt-long.cc:151
-#, c-format
-msgid "%c"
-msgstr ""
-
-#: getopt-long.cc:155
+#: getopt-long.cc:156
#, c-format
msgid "invalid argument `%s' to option `%s'"
msgstr ""
msgid "position unknown"
msgstr ""
-#: mapped-file-storage.cc:65
-msgid "map_fd: "
-msgstr ""
-
#: mapped-file-storage.cc:74
msgid "can't map file"
msgstr ""
-#: mapped-file-storage.cc:109
-msgid "vm_deallocate: "
-msgstr ""
-
#: simple-file-storage.cc:56
#, c-format
msgid "Huh? got %d, expected %d characters"
#: all-font-metrics.cc:75
#, c-format
-msgid "search path = %s"
+msgid "(search path: `%s)'"
msgstr ""
#: beam-engraver.cc:42
msgid "beam was started here"
msgstr ""
-#: beam.cc:142
+#: beam.cc:147
msgid "beam with less than two stems"
msgstr ""
-#: beam.cc:307
+#: beam.cc:312
msgid "weird beam shift, check your knees"
msgstr ""
msgstr ""
#: collision.cc:95
-msgid "Too many clashing notecolumns. Ignoring them."
+msgid "Too many clashing notecolumns. Ignoring them."
msgstr ""
#: crescendo.cc:42
msgstr ""
#: grace-position-engraver.cc:89
-msgid "Unattached grace notes. Attaching to last musical column."
+msgid "Unattached grace notes. Attaching to last musical column."
msgstr ""
#: hyphen-engraver.cc:60
msgid "%s expected"
msgstr ""
-#: includable-lexer.cc:47 midi-score-parser.cc:24 scores.cc:108 scores.cc:114
+#: includable-lexer.cc:47 lily-guile.cc:82 lily-guile.cc:105
+#: midi-score-parser.cc:24 scores.cc:108 scores.cc:114
#, c-format
msgid "can't find file: `%s'"
msgstr ""
-#: includable-lexer.cc:48
+#: includable-lexer.cc:49 lookup.cc:104 scores.cc:109
#, c-format
-msgid ""
-"\n"
-"Search path is `%s'\n"
+msgid "(search path: `%s')"
msgstr ""
#: ineq-constrained-qp.cc:169
#: lily-guile.cc:84 lily-guile.cc:107
#, c-format
-msgid "Can not find file `%s'"
-msgstr ""
-
-#: lily-guile.cc:86 lily-guile.cc:109
-#, c-format
-msgid "(Load path is `%s'"
+msgid "(load path: `%s')"
msgstr ""
#: local-key-engraver.cc:42
#: lookup.cc:103
#, c-format
-msgid "Can't open `%s'\n"
-msgstr ""
-
-#: lookup.cc:104
-#, c-format
-msgid "Search path %s\n"
+msgid "can't find font: `%s'"
msgstr ""
#: lookup.cc:105
msgid "This binary was compiled with the following options:"
msgstr ""
-#: main.cc:118 main.cc:119
+#: main.cc:119
msgid "Report bugs to"
msgstr ""
-#: main.cc:52 main.cc:134
+#: main.cc:52 main.cc:135
#, c-format
msgid ""
-"This is free software. It is covered by the GNU General Public License,and "
-"you are welcome to change it and/or distribute copies of it undercertain "
-"conditions. Invoke as `%s --warranty' for more information.\n"
+"This is free software. It is covered by the GNU General Public License,\n"
+"and you are welcome to change it and/or distribute copies of it under\n"
+"certain conditions. Invoke as `%s --warranty' for more information.\n"
msgstr ""
-#: main.cc:59 main.cc:141 main.cc:153
+#: main.cc:59 main.cc:142 main.cc:154
#, c-format
msgid "Copyright (c) %s by"
msgstr ""
#. GNU GNU?
-#: main.cc:151
+#: main.cc:152
msgid "GNU LilyPond -- The GNU Project music typesetter"
msgstr ""
-#: main.cc:68 main.cc:159
+#: main.cc:68 main.cc:160
msgid ""
" This program is free software; you can redistribute it and/or\n"
"modify it under the terms of the GNU General Public License version 2\n"
msgstr ""
#: music-output-def.cc:83
-msgid "Can't find Score context"
+msgid "can't find Score context"
msgstr ""
#: musical-request.cc:42
#: request-chord-iterator.cc:76
#, c-format
-msgid "Huh? Not a Request: `%s'"
+msgid "Huh? Not a Request: `%s'"
msgstr ""
#: rest-collision.cc:64
msgid "score contains errors; will not process it"
msgstr ""
-#: scores.cc:109
-#, c-format
-msgid "Search path: %s"
-msgstr ""
-
#: script-engraver.cc:49
#, c-format
msgid "don't know how to interpret articulation `%s'\n"
msgstr ""
#. this shouldn't happen, but let's continue anyway.
-#: single-malt-grouping-item.cc:42
+#: single-malt-grouping-item.cc:43
msgid "Single_malt_grouping_item: I've been drinking too much"
msgstr ""
msgid "slur"
msgstr ""
-#: slur.cc:39
+#: slur.cc:38
msgid "Putting slur over rest. Ignoring"
msgstr ""
-#: spacing-spanner.cc:215
+#: spacing-spanner.cc:218
#, c-format
msgid "can't find a ruling note at %s"
msgstr ""
-#: spacing-spanner.cc:221
+#: spacing-spanner.cc:224
#, c-format
msgid "no minimum in measure at %s"
msgstr ""
-#: spanner.cc:39
+#: spanner.cc:41
msgid "left spanpoint is right spanpoint\n"
msgstr ""
-#: spanner.cc:109
+#: spanner.cc:111
#, c-format
msgid "Spanner `%s' with equal left and right spanpoints"
msgstr ""
msgid "solution doesn't satisfy constraints"
msgstr ""
+#: spring-spacer.cc:378
+#, c-format
+msgid "Improbable distance: %f point, setting to 10 mm"
+msgstr ""
+
+#: spring-spacer.cc:383
+msgid "Negative distance. Setting to 10 mm"
+msgstr ""
+
#: stem-engraver.cc:80
#, c-format
msgid "Adding note head to incompatible stem (type = %d)"
"LilyPond is a music typesetter. It produces beautiful sheet music\n"
"using a high level description file as input. LilyPond is part of \n"
"the GNU Project.\n"
-"\n"
-msgstr ""
-
-#: out/COPERTINA.hh:2
-msgid ""
-"LilyPond è il programma di notazione musicale del progetto\n"
-"GNU. Questo programma può generare delle ottime partiture musicali\n"
-"a partire da un file contenente la descrizione della musica. Può\n"
-"anche generare esecuzioni meccaniche della partitura in formato\n"
-"MIDI. Le caratteristiche del programma includono un versatile\n"
-"linguaggio di descrizione musicale, pentagrammi multipli, segni di\n"
-"divisione, chiavi, tasti, parole, cadenze, legature, acciaccature,\n"
-"terzine, segni di formattazione ed estrazione delle parte. Nella\n"
-"distribuzione è compreso anche un fort di simboli musicali.\n"
-"\n"
-msgstr ""
-
-#: out/FLAPTEKST.hh:2
-msgid ""
-"LilyPond is een muziekzetter. Zij maakt prachtige bladmuziek\n"
-"uitgaande van een hoog niveau beschrijving bestand. LilyPond \n"
-"maakt deel uit van het GNU Project.\n"
msgstr ""
#: main.cc:90
#
msgid ""
msgstr ""
-"POT-Creation-Date: 1999-08-20 18:48+0200\n"
+"POT-Creation-Date: 1999-09-15 23:21+0200\n"
"Content-Type: text/plain; charset=\n"
"Date: 1998-05-26 11:26:28+0200\n"
"From: <janneke@gnu.org>\n"
msgid "unrecognized option: `%s'"
msgstr "onbekende optie: `%s'"
-#: getopt-long.cc:151
-#, c-format
-msgid "%c"
-msgstr ""
-
-#: getopt-long.cc:155
+#: getopt-long.cc:156
#, c-format
msgid "invalid argument `%s' to option `%s'"
msgstr "onjuist argument: `%s' voor optie `%s'"
msgid "position unknown"
msgstr "positie onbekend"
-#: mapped-file-storage.cc:65
-msgid "map_fd: "
-msgstr ""
-
#: mapped-file-storage.cc:74
msgid "can't map file"
msgstr "kan bestand niet inkaarten"
-#: mapped-file-storage.cc:109
-msgid "vm_deallocate: "
-msgstr ""
-
#: simple-file-storage.cc:56
#, c-format
msgid "Huh? got %d, expected %d characters"
#: all-font-metrics.cc:75
#, c-format
-msgid "search path = %s"
-msgstr "zoek pad = %s"
+msgid "(search path: `%s)'"
+msgstr "(zoekpad: `%s')"
#: beam-engraver.cc:42
msgid "No Beam to end"
-msgstr "Geen Balk te beëidigen"
+msgstr "geen Balk te beëidigen"
#: beam-engraver.cc:58
msgid "No beam to end"
-msgstr "Geen balk te beëindigen"
+msgstr "geen balk te beëindigen"
#: beam-engraver.cc:87
msgid "Already have a Beam"
msgid "beam was started here"
msgstr "balk is hier gestart"
-#: beam.cc:142
+#: beam.cc:147
msgid "beam with less than two stems"
msgstr "balk met minder dan twee stokken"
-#: beam.cc:307
+#: beam.cc:312
msgid "weird beam shift, check your knees"
-msgstr "vreemde balk verplaatsing, controleer uw knie-en"
+msgstr "vreemde balk verplaatsing, controleer balken"
#: break-algorithm.cc:25
msgid "0 lines"
#: chord-tremolo-engraver.cc:41 chord-tremolo-engraver.cc:58
msgid "No abbreviation beam to end"
-msgstr ""
+msgstr "Geen tremolo balk te beëindigen"
#: chord-tremolo-engraver.cc:83
msgid "Already have an abbreviation beam"
-msgstr ""
+msgstr "Heb al een tremolo balk"
#: chord-tremolo-engraver.cc:124
msgid "Unfinished abbreviation beam"
-msgstr ""
+msgstr "Onbeëindigde tremolo balk"
#: chord.cc:231
#, c-format
msgid "invalid subtraction: not part of chord: %s"
-msgstr ""
+msgstr "ongeldige aftrek: maakt geen deel uit van accoord: %s"
#: chord.cc:245
#, c-format
msgid "invalid inversion pitch: not part of chord: %s"
-msgstr ""
+msgstr "ongeldige inversie toon: maakt geen deel uit van accoord: %s"
#: clef-engraver.cc:178
msgid "unknown clef type "
-msgstr "onbekende sleutel"
+msgstr "onbekend type sleutel "
#: collision.cc:95
-msgid "Too many clashing notecolumns. Ignoring them."
-msgstr "Te veel botsende nootkolommen. Ik negeer ze."
+msgid "Too many clashing notecolumns. Ignoring them."
+msgstr "Te veel botsende nootkolommen. Negeer ze."
#: crescendo.cc:42
msgid "crescendo"
#: debug.cc:139
msgid "can't set mem-checking"
-msgstr ""
+msgstr "kan geheugen controle niet zetten"
#: dimensions.cc:13
msgid "NaN"
#: dynamic-engraver.cc:109
msgid "Got a dynamic already. Continuing dazed and confused"
-msgstr ""
+msgstr "Heb al een dynamiek. Ga verder, verstrooid en verward"
#: dynamic-engraver.cc:162
msgid "can't find (de)crescendo to end"
-msgstr ""
+msgstr "kan te beëindigen (de)crescendo niet vinden"
#: dynamic-engraver.cc:216
msgid "Too many crescendi here"
-msgstr ""
+msgstr "Te veel cescendi hier"
#: dynamic-engraver.cc:254
msgid "unended crescendo"
#: encompass-info.cc:32
msgid "Slur over rest?"
-msgstr ""
+msgstr "Boogje over rust?"
#: encompass-info.cc:67 stem-info.cc:140
msgid ""
"minVerticalAlign != maxVerticalAlign: interstaff beams/slurs may be broken"
msgstr ""
+"minVerticalAlign != maxVerticalAlign: balken/boogjes tussen notenbalken "
+"kunnen breken"
#: extender-engraver.cc:62
msgid "unterminated extender"
-msgstr ""
+msgstr "onbeëindigde extender"
#: folded-repeat-iterator.cc:64
msgid "No one to print a repeat brace"
-msgstr ""
+msgstr "Niemand om een herhalings haak af te drukken"
#: grace-iterator.cc:43
msgid "No Grace context available!"
-msgstr ""
+msgstr "Geen Grace context voor handen"
#: grace-position-engraver.cc:89
-msgid "Unattached grace notes. Attaching to last musical column."
-msgstr ""
+msgid "Unattached grace notes. Attaching to last musical column."
+msgstr "Losse grace noten. Maak ze vast aan vorige muziekale kolom."
#: hyphen-engraver.cc:60
msgid "unterminated hyphen"
#: identifier.cc:46
msgid "Wrong identifier type: "
-msgstr ""
+msgstr "Verkeerd type identifier: "
#: identifier.cc:47
#, c-format
msgid "%s expected"
msgstr "%s verwacht"
-#: includable-lexer.cc:47 midi-score-parser.cc:24 scores.cc:108 scores.cc:114
+#: includable-lexer.cc:47 lily-guile.cc:82 lily-guile.cc:105
+#: midi-score-parser.cc:24 scores.cc:108 scores.cc:114
#, c-format
msgid "can't find file: `%s'"
msgstr "kan bestand niet vinden: `%s'"
-#: includable-lexer.cc:48
-#, c-format
-msgid ""
-"\n"
-"Search path is `%s'\n"
-msgstr ""
+#: includable-lexer.cc:49 lookup.cc:104 scores.cc:109
+msgid "(search path: `%s')"
+msgstr "(zoekpad: `%s')"
#: ineq-constrained-qp.cc:169
#, c-format
#: ineq-constrained-qp.cc:233
msgid "didn't converge!"
-msgstr "ik convergederde niet!"
+msgstr "convergeerde niet!"
#: ineq-constrained-qp.cc:235
msgid "Too much degeneracy. "
-msgstr ""
+msgstr "Te veel degenaratie. "
#: key-def.cc:31
msgid "No key name: assuming `C'"
-msgstr ""
+msgstr "Geen toonsoort: ga uit van `C'"
#: key-def.cc:92
msgid "don't know how handle empty keys"
-msgstr ""
+msgstr "weet niet hoe lege toonsoorten te behandelen"
#: lily-guile.cc:84 lily-guile.cc:107
#, c-format
-msgid "Can not find file `%s'"
-msgstr ""
-
-#: lily-guile.cc:86 lily-guile.cc:109
-#, c-format
-msgid "(Load path is `%s'"
-msgstr ""
+msgid "(load path: `%s')"
+msgstr "(zoekpad: `%s')"
#: local-key-engraver.cc:42
msgid "out of tune"
msgstr "kan niet vinden"
#: lookup.cc:103
-#, c-format
-msgid "Can't open `%s'\n"
-msgstr ""
-
-#: lookup.cc:104
-#, c-format
-msgid "Search path %s\n"
-msgstr ""
+msgid "can't find font: `%s'"
+msgstr "kan font niet vinden: `%s'"
#: lookup.cc:105
msgid "Aborting"
-msgstr ""
+msgstr "Breek af"
#: lookup.cc:436
#, c-format
msgid "Non-matching braces in text `%s', adding braces."
-msgstr ""
+msgstr "Ongepaarde haakjes in tekst `%s', voeg haakje toe."
#: main.cc:68
msgid "BASENAME"
#: main.cc:71
msgid "switch on experimental features"
-msgstr "doe experimentele kunstjes"
+msgstr "zet experimentele kunstjes aan"
#: main.cc:72 main.cc:91
msgid "enable debugging output"
msgid "This binary was compiled with the following options:"
msgstr "Dit programma is vertaald met de volgende instellingen:"
-#: main.cc:118 main.cc:119
+#: main.cc:119
msgid "Report bugs to"
msgstr "Rapporteer bugs naar"
-#: main.cc:52 main.cc:134
+#: main.cc:52 main.cc:135
#, c-format
msgid ""
-"This is free software. It is covered by the GNU General Public License,and "
-"you are welcome to change it and/or distribute copies of it undercertain "
-"conditions. Invoke as `%s --warranty' for more information.\n"
+"This is free software. It is covered by the GNU General Public License,\n"
+"and you are welcome to change it and/or distribute copies of it under\n"
+"certain conditions. Invoke as `%s --warranty' for more information.\n"
msgstr ""
+"Dit is vrije programmatuur. Het valt onder de GNU Algemene Openbare\n"
+"Licentie, en u wordt uitgenodigd het te veranderen en/of te verspreiden\n"
+"onder bepaalde voorwaarden. Roep aan als `%s --warranty' voor meer\n"
+"informatie.\n"
-#: main.cc:59 main.cc:141 main.cc:153
+#: main.cc:59 main.cc:142 main.cc:154
#, c-format
msgid "Copyright (c) %s by"
msgstr "Copyright (c) %s "
#. GNU GNU?
-#: main.cc:151
+#: main.cc:152
msgid "GNU LilyPond -- The GNU Project music typesetter"
msgstr "GNU LilyPond -- De Muziekzetter van het GNU Project"
-#: main.cc:68 main.cc:159
+#: main.cc:68 main.cc:160
msgid ""
" This program is free software; you can redistribute it and/or\n"
"modify it under the terms of the GNU General Public License version 2\n"
"the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,\n"
"USA.\n"
msgstr ""
-" Dit programma is vrij bedenksel; u mag het verspreiden en/of\n"
+" Dit programma is vrije programmatuur; u kunt het verspreiden en/of\n"
"veranderen onder de voorwaarden van de GNU Algemene Openbare Licentie\n"
"versie 2, zoals gepubliceerd door de Free Software Foundation.\n"
"\n"
"het UITBATEN of als zijnde GESCHIKT VOOR EEN BEPAALD DOEL. Zie de GNU\n"
"Algemene Openbare Licentie voor details.\n"
"\n"
-" Als het goed is, heeft u bij dit programma een copie (zie het bestand\n"
-"COPYING) ontvangen van de GNU Algemene Openbare Licentie; zoniet, schrijf\n"
-"dan naar de Free Software Foundation, Inc., 675 Mass Ave, Cambridge, \n"
-"MA 02139, USA.\n"
+" Als het goed is, heeft u bij dit programma een exemplaar (zie het\n"
+"bestand COPYING) ontvangen van de GNU Algemene Openbare Licentie;\n"
+"zoniet, schrijf dan naar de Free Software Foundation, Inc.,\n"
+"675 Mass Ave, Cambridge, MA 02139, USA.\n"
#: midi-item.cc:303
#, c-format
msgid "No such instrument: `%s'"
-msgstr ""
+msgstr "Geen zulks instrument: `%s'"
#: midi-item.cc:357
#, c-format
#: midi-stream.cc:29 paper-stream.cc:36
msgid "error syncing file (disk full?)"
-msgstr "kan file niet wegschrijven (disk vol?)"
+msgstr "fout by synchroniseren van bestand (disk vol?)"
#: music-output-def.cc:56
msgid "Interpretation context with empty type"
-msgstr ""
+msgstr "Vertaal context met leeg type"
#: music-output-def.cc:83
-msgid "Can't find Score context"
-msgstr ""
+msgid "can't find Score context"
+msgstr "kan Score context niet vinden"
#: musical-request.cc:42
#, c-format
#: my-lily-lexer.cc:143
#, c-format
msgid "Identifier name is a keyword (`%s')"
-msgstr ""
+msgstr "Identifier naam is een sleutelwoord (`%s')"
#: my-lily-lexer.cc:172
#, c-format
msgid "error at EOF: %s"
-msgstr "fout aan het einde van file: %s"
+msgstr "fout bij EOF: %s"
#: my-lily-parser.cc:60
msgid "Parsing..."
#: my-lily-parser.cc:69
msgid "braces don't match"
-msgstr "haakjes passen niet"
+msgstr "haakjes paren niet"
#: paper-def.cc:95
#, c-format
msgid "unknown paper variable: `%s'"
-msgstr "onbekende \\paper variabele"
+msgstr "onbekende papier varanderlijke: `%s'"
#: paper-def.cc:99
msgid "not a real variable"
-msgstr "variabele is geen reeal getal"
+msgstr "niet een reële veranderlijke"
#. for now; breaks -fscm output
#: paper-def.cc:251
msgid "outputting Score, defined at: "
-msgstr ""
+msgstr "uitvoer Score, gedefinieerd op: "
#: paper-def.cc:280
#, c-format
msgid "Paper output to %s..."
-msgstr ""
+msgstr "Papier uitvoer naar %s..."
#: mudela-stream.cc:85 paper-outputter.cc:76 performance.cc:97
msgid ", at "
#: paper-outputter.cc:130
#, c-format
msgid "Improbable offset for object type `%s'"
-msgstr ""
+msgstr "Onwaarschijnlijke verschuiving voor object type `%s'"
#: paper-score.cc:131
msgid "Can't solve this casting problem exactly; revert to Word_wrap"
#: paper-score.cc:179
msgid " elements. "
-msgstr ""
+msgstr " elementen. "
#: paper-score.cc:182
msgid "Line ... "
-msgstr ""
+msgstr "Regel ..."
#: performance.cc:50
msgid "Track ... "
-msgstr ""
+msgstr "Spoor ... "
#. perhaps multiple text events?
#: performance.cc:77
#: request-chord-iterator.cc:76
#, c-format
-msgid "Huh? Not a Request: `%s'"
-msgstr ""
+msgid "Huh? Not a Request: `%s'"
+msgstr "Huh? Geen Request: `%s'"
#: rest-collision.cc:64
msgid "Too many colliding rests."
-msgstr ""
+msgstr "Te veer botsende rusten."
#: rest-collision.cc:68
msgid "Too many notes for rest collision."
-msgstr ""
+msgstr "Te veel noten voor bosting met rusten."
#: score-engraver.cc:149
#, c-format
#: score.cc:56
msgid "no toplevel translator"
-msgstr ""
+msgstr "geen hoogste niveau vertaler"
#: score.cc:59
msgid "Interpreting music..."
#. should we? hampers debugging.
#: score.cc:83
msgid "errors found, /*not processing score*/"
-msgstr ""
+msgstr "fouten gevonden, /*verwerk partituur niet */"
#: score.cc:88
#, c-format
#: scores.cc:35
#, c-format
msgid "writing dependency file: `%s'..."
-msgstr ""
+msgstr "schijven van afhankelijkheden bestand: `%s'..."
#: scores.cc:79
msgid "score contains errors; will not process it"
-msgstr ""
-
-#: scores.cc:109
-#, c-format
-msgid "Search path: %s"
-msgstr ""
+msgstr "partituur bevat fouten; zal hem niet verwerken"
#: script-engraver.cc:49
#, c-format
msgstr ""
#. this shouldn't happen, but let's continue anyway.
-#: single-malt-grouping-item.cc:42
+#: single-malt-grouping-item.cc:43
msgid "Single_malt_grouping_item: I've been drinking too much"
msgstr ""
#: slur-engraver.cc:64
msgid "unterminated slur"
-msgstr "onsterfelijke boog"
+msgstr "onbeëindigde boog"
#: slur-engraver.cc:80
#, c-format
#: slur-engraver.cc:80
msgid "slur"
-msgstr ""
+msgstr "boog"
-#: slur.cc:39
+#: slur.cc:38
msgid "Putting slur over rest. Ignoring"
msgstr ""
-#: spacing-spanner.cc:215
+#: spacing-spanner.cc:218
#, c-format
msgid "can't find a ruling note at %s"
msgstr ""
-#: spacing-spanner.cc:221
+#: spacing-spanner.cc:224
#, c-format
msgid "no minimum in measure at %s"
msgstr ""
-#: spanner.cc:39
+#: spanner.cc:41
msgid "left spanpoint is right spanpoint\n"
msgstr ""
-#: spanner.cc:109
+#: spanner.cc:111
#, c-format
msgid "Spanner `%s' with equal left and right spanpoints"
msgstr ""
msgid "solution doesn't satisfy constraints"
msgstr ""
+#: spring-spacer.cc:378
+#, c-format
+msgid "Improbable distance: %f point, setting to 10 mm"
+msgstr ""
+
+#: spring-spacer.cc:383
+msgid "Negative distance. Setting to 10 mm"
+msgstr ""
+
#: stem-engraver.cc:80
#, c-format
msgid "Adding note head to incompatible stem (type = %d)"
"LilyPond is a music typesetter. It produces beautiful sheet music\n"
"using a high level description file as input. LilyPond is part of \n"
"the GNU Project.\n"
-"\n"
msgstr ""
"LilyPond is een muziekzetter. Zij maakt prachtige bladmuziek\n"
"uitgaande van een hoog niveau beschrijving bestand. LilyPond \n"
"maakt deel uit van het GNU Project.\n"
-"\n"
-
-#: out/COPERTINA.hh:2
-msgid ""
-"LilyPond è il programma di notazione musicale del progetto\n"
-"GNU. Questo programma può generare delle ottime partiture musicali\n"
-"a partire da un file contenente la descrizione della musica. Può\n"
-"anche generare esecuzioni meccaniche della partitura in formato\n"
-"MIDI. Le caratteristiche del programma includono un versatile\n"
-"linguaggio di descrizione musicale, pentagrammi multipli, segni di\n"
-"divisione, chiavi, tasti, parole, cadenze, legature, acciaccature,\n"
-"terzine, segni di formattazione ed estrazione delle parte. Nella\n"
-"distribuzione è compreso anche un fort di simboli musicali.\n"
-"\n"
-msgstr ""
-
-#: out/FLAPTEKST.hh:2
-msgid ""
-"LilyPond is een muziekzetter. Zij maakt prachtige bladmuziek\n"
-"uitgaande van een hoog niveau beschrijving bestand. LilyPond \n"
-"maakt deel uit van het GNU Project.\n"
-msgstr ""
#: main.cc:90
msgid "write exact durations, e.g.: a4*385/384"
#, c-format
msgid "% from input file: "
msgstr ""
-
-#~ msgid "this help "
-#~ msgstr "deze hulp"
-
-#~ msgid "GNU LilyPond is Free Software, see --warranty"
-#~ msgstr "GNU LilyPond is Vrij bedenksel, zie --warranty"
-
-#~ msgid "Midi2ly, translate midi to mudela"
-#~ msgstr "Midi2ly, vertaal midi naar mudela"
-
-#~ msgid "of"
-#~ msgstr "van"
-
-#~ msgid "please fix me"
-#~ msgstr "repareer mij alsjeblieft"
-
-#~ msgid "stem at %s doesn't fit in beam"
-#~ msgstr "stok op %s past niet in balk"
-
-#~ msgid "No stem direction set. Ignoring column in clash."
-#~ msgstr "Geen stokrichting gezet. Negeer kolom in botsing."
-
-#~ msgid "script needs stem direction"
-#~ msgstr "schrift benodigt stokrichting"
-
-#~ msgid ""
-#~ "LilyPond is the GNU Project music typesetter. This program can print\n"
-#~ "beautiful sheet music from a music definition file. It can also play\n"
-#~ "mechanical performances to a MIDI file. Features include multiple\n"
-#~ "staffs, meters, clefs, keys, lyrics, versatile input language, cadenzas,\n"
-#~ "beams, slurs, triplets, named chords, transposing, formatting scores, \n"
-#~ "part extraction. It includes a nice font of musical symbols.\n"
-#~ msgstr ""
-#~ "LilyPond is de muziekzetter van het GNU Project. Dit programma drukt\n"
-#~ "prachtige bladmuziek volgens een muzikaal definitie bestand. Ook kan\n"
-#~ "het een mechanische uitvoering afspelen naar een MIDI bestand.\n"
-#~ "Bijzondere kunstjes zijn verscheidene notenbalken, maatsoorten, sleutels, \n"
-#~ "toonaarden, zangteksten, krachtige invoer taal, cadensa, balken, boogjes, \n"
-#~ "triolen, accoordnamen, transponeren, partituren, en uittreksels voor \n"
-#~ "individuele partijen. Een fraaie set muziektekens is inbegrepen.\n"
pass
-webmaster= ''
+webmaster= mail_address
try:
webmaster= os.environ['WEBMASTER']
except KeyError:
#!@PYTHON@
-name = 'package-diff'
-version = '0.62'
+import find
import sys
import os
import string
import getopt
import pipes
-
+topdir = ''
def gulp_file(f):
try:
i = open(f)
i.close ()
return s
-def program_id ():
- return name + ' ' + version;
-
def mailaddress():
try:
return '(address unknown)'
-def identify ():
- sys.stdout.write (program_id () + '\n')
class Flags:
def __init__ (self):
def remove_automatic (dirnames):
files = []
- # urg, again?
- from flower import *
- files = files + multiple_find (pats, dirnames)
- dirs = multiple_find (['out'], dirnames)
+
+ for d in dirnames:
+ for p in pats:
+ files = files + find.find (p, d)
+
+ dirs = map (lambda d: find.find ('out', d), dirnames)
+ dirs = reduce (lambda x,y: x + y, dirs)
+
+ print dirs
for d in dirs:
- files = files + multiple_find (['*'], [d])
+ files = files + find.find ('*', d)
+
for f in files:
try:
os.remove (f)
def remove_configure (dir):
os.chdir (dir)
+
# ugh
os.system ('rm -f *.ly')
# should do 'make distclean ?'
- os.system ('rm -rf debian/out')
- os.system ('rm -f GNUmakefile config.cache config.h config.hh config.log config.make config.status configure')
- os.system ('rm -f stepmake/GNUmakefile stepmake/config.hh stepmake/config.log stepmake/config.status stepmake/config.make')
+ os.system ('rm -rf debian/out GNUmakefile config.cache config.h config.hh config.log config.make config.status configure stepmake/GNUmakefile stepmake/config.hh stepmake/config.log stepmake/config.status stepmake/config.make')
# ugh: symlinks
- os.system ('rm -f stepmake/stepmake/stepmake')
- os.system ('rm -f stepmake/stepmake/bin')
+ os.system ('rm -f stepmake/stepmake/stepmake stepmake/stepmake/bin')
# ugh, how to get rid of .tex files generated by lily?
pats = ['configure', '*.diff', '*.diff.gz', '*.pyc', '*.txt']
-header = """Generated by %s using %s,
+header = """Generated by %s,
From = %s, To = %s
usage
f = open (patch_name, 'w')
f.write (header %
- (mailaddress (), program_id (), fromname, toname,
+ (mailaddress (), fromname, toname,
flags.package.name, os.path.basename (patch_name)))
f.close ()
os.system ('diff -urN %s . >> %s' % (fromdir, patch_name))
os.system ('gzip --quiet -9f %s' % patch_name)
-def main ():
- os.environ['GZIP'] = '-q'
- identify ()
- print 'argv: ' + string.join (sys.argv[2:])
- (options, files) = getopt.getopt (sys.argv[1:],
- 'hF:f:o:p:rT:t:', ['from=', 'dir-from=', 'dir-to=', 'help', 'output=', 'package=', 'release', 'to='])
-
- patch_name = ''
+
+os.environ['GZIP'] = '-q'
+print 'argv: ' + string.join (sys.argv[2:])
+(options, files) = getopt.getopt (sys.argv[1:],
+ 'hF:f:o:p:rT:t:', ['from=', 'dir-from=', 'dir-to=', 'help', 'output=', 'package=', 'release', 'to='])
+
+patch_name = ''
+from_src = ''
+to_src = ''
+release=0
+from_version=0
+to_version=0
+for opt in options:
+ o = opt[0]
+ a = opt[1]
+ if o == '--from' or o == '-f':
+ from_version = a
+ elif o == '--to' or o == '-t':
+ to_version = a
+ elif o == '--dir-from' or o == '-F':
+ from_src = a;
+ elif o == '--dir-to' or o == '-T':
+ to_src = a;
+ elif o == '--help' or o == '-h':
+ help ()
+ sys.exit (0)
+ elif o == '--output' or o == '-o':
+ patch_name = os.path.join (os.getcwd (), a)
+ elif o == '-p' or o == '--package':
+ topdir = a
+ elif o == '--release' or o == '-r':
+ release=1
+ else:
+ raise getopt.error
+
+sys.path.append (topdir + '/stepmake/bin')
+from packagepython import *
+package = Package (topdir)
+flags.package = package
+packager = Packager ()
+
+if from_src:
+ from_package = Package (from_src)
+ flags.from_version = from_package.version
+if from_version:
+ flags.from_version = version_str_to_tuple (from_version)
from_src = ''
+
+if to_src:
+ to_package = Package (to_src)
+ flags.to_version = to_package.version
+if to_version:
+ flags.to_version = version_str_to_tuple (to_version)
to_src = ''
- release=0
- from_version=0
- to_version=0
- for opt in options:
- o = opt[0]
- a = opt[1]
- if o == '--from' or o == '-f':
- from_version = a
- elif o == '--to' or o == '-t':
- to_version = a
- elif o == '--dir-from' or o == '-F':
- from_src = a;
- elif o == '--dir-to' or o == '-T':
- to_src = a;
- elif o == '--help' or o == '-h':
- help ()
- return 0;
- elif o == '--output' or o == '-o':
- patch_name = os.path.join (os.getcwd (), a)
- elif o == '-p' or o == '--package':
- topdir = a
- elif o == '--release' or o == '-r':
- release=1
- else:
- raise getopt.error
-
- sys.path.append (topdir + '/stepmake/bin')
- from packagepython import *
- package = Package (topdir)
- flags.package = package
- packager = Packager ()
- from flower import *
- if from_src:
- from_package = Package (from_src)
- flags.from_version = from_package.version
- if from_version:
- flags.from_version = version_str_to_tuple (from_version)
- from_src = ''
-
- if to_src:
- to_package = Package (to_src)
- flags.to_version = to_package.version
- if to_version:
- flags.to_version = version_str_to_tuple (to_version)
- to_src = ''
-
- if not flags.to_version:
- flags.to_version = package.version
+if not flags.to_version:
+ flags.to_version = package.version
- if not flags.from_version:
- flags.from_version = prev_version (flags.to_version)
+if not flags.from_version:
+ flags.from_version = prev_version (flags.to_version)
- # urg
- if release:
- flags.from_version = (flags.from_version[0],
- flags.from_version[1], flags.from_version[2], '');
+# urg
+if release:
+ flags.from_version = (flags.from_version[0],
+ flags.from_version[1], flags.from_version[2], '');
- import tempfile
- prev_cwd = os.getcwd ();
+import tempfile
+prev_cwd = os.getcwd ();
- os.system ('rm -rf /tmp/package-diff')
- try:
- os.mkdir ('/tmp/package-diff')
- except:
- pass
-
- from_diff = dirname (flags.from_version)
- to_diff = dirname (flags.to_version)
- if to_diff == from_diff:
- if from_src:
- from_diff = from_diff + '.src'
- elif to_src:
- to_diff = to_diff + '.src'
- else:
- sys.stderr.write (name + ': nothing to do: to == from == ' + from_diff + '\n')
- sys.exit (1)
-
- if not patch_name:
- pn = to_diff + '.diff'
- patch_name = os.path.join (os.getcwd (), pn)
-
- from_diff = '/tmp/package-diff/' + from_diff
- to_diff = '/tmp/package-diff/' + to_diff
-
- if not from_src:
- os.chdir ('/tmp/package-diff')
- untar (released_tarball (flags.from_version))
- os.chdir (prev_cwd)
- else:
- sys.stderr.write ('copying ' + from_src + ' to ' + from_diff + '\n')
- # os.system ('cp -pr %s %s' % (srcdir, from_diff))
- os.system ('mkdir -p %s '% (from_diff))
- os.chdir (from_src)
- os.system ('tar cf - --exclude out --exclude out-www . \
- | tar -xf - -C %s' % from_diff)
-
-
- if not to_src:
- os.chdir ('/tmp/package-diff')
- untar (released_tarball (flags.to_version))
- os.chdir (prev_cwd)
+os.system ('rm -rf /tmp/package-diff')
+try:
+ os.mkdir ('/tmp/package-diff')
+except:
+ pass
+
+from_diff = dirname (flags.from_version)
+to_diff = dirname (flags.to_version)
+if to_diff == from_diff:
+ if from_src:
+ from_diff = from_diff + '.src'
+ elif to_src:
+ to_diff = to_diff + '.src'
else:
- sys.stderr.write ('copying ' + to_src + ' to ' + to_diff + '\n')
- os.system ('mkdir -p %s '% (to_diff))
- # os.system ('cp -pr %s %s' (to_src, to_diff))%
- os.chdir (to_src)
- os.system ('tar -cf - --exclude out --exclude out-www . \
- . | tar -xf - -C %s ' % to_diff)
+ sys.stderr.write (name + ': nothing to do: to == from == ' + from_diff + '\n')
+ sys.exit (1)
+
+if not patch_name:
+ pn = to_diff + '.diff'
+ patch_name = os.path.join (os.getcwd (), pn)
+
+from_diff = '/tmp/package-diff/' + from_diff
+to_diff = '/tmp/package-diff/' + to_diff
+
+if not from_src:
+ os.chdir ('/tmp/package-diff')
+ untar (released_tarball (flags.from_version))
+ os.chdir (prev_cwd)
+else:
+ sys.stderr.write ('copying ' + from_src + ' to ' + from_diff + '\n')
+ # os.system ('cp -pr %s %s' % (srcdir, from_diff))
+ os.system ('mkdir -p %s '% (from_diff))
+ os.chdir (from_src)
+ os.system ('tar cf - --exclude out --exclude out-www . \
+ | tar -xf - -C %s' % from_diff)
- os.chdir (to_diff)
- makediff (from_diff, to_diff, patch_name)
+if not to_src:
os.chdir ('/tmp/package-diff')
- sys.stderr.write ('cleaning ... ')
- os.system ('rm -fr %s %s' % (from_diff, to_diff))
- sys.stderr.write ('\n')
+ untar (released_tarball (flags.to_version))
os.chdir (prev_cwd)
+else:
+ sys.stderr.write ('copying ' + to_src + ' to ' + to_diff + '\n')
+ os.system ('mkdir -p %s '% (to_diff))
+ # os.system ('cp -pr %s %s' (to_src, to_diff))%
+ os.chdir (to_src)
+ os.system ('tar -cf - --exclude out --exclude out-www . \
+ . | tar -xf - -C %s ' % to_diff)
+
+os.chdir (to_diff)
+makediff (from_diff, to_diff, patch_name)
+
+os.chdir ('/tmp/package-diff')
+sys.stderr.write ('cleaning ... ')
+os.system ('rm -fr %s %s' % (from_diff, to_diff))
+sys.stderr.write ('\n')
+os.chdir (prev_cwd)
-main ()
from packagepython import *
package = Package (topdir)
packager = Packager ()
-from flower import *
+
os.chdir(package.topdir)
status =os.system('make dist')