From 63ad849138272e8152617701bc306638003472d6 Mon Sep 17 00:00:00 2001 From: fred Date: Wed, 27 Mar 2002 01:07:49 +0000 Subject: [PATCH] lilypond-1.3.137 --- Documentation/user/lilypond-book.tely | 616 ----------------------- buildscripts/gettext.py | 329 ------------ lily/include/unfolded-repeat-iterator.hh | 3 - lily/property-inspect.cc | 9 - 4 files changed, 957 deletions(-) delete mode 100644 Documentation/user/lilypond-book.tely delete mode 100644 buildscripts/gettext.py delete mode 100644 lily/include/unfolded-repeat-iterator.hh delete mode 100644 lily/property-inspect.cc diff --git a/Documentation/user/lilypond-book.tely b/Documentation/user/lilypond-book.tely deleted file mode 100644 index 901d60f624..0000000000 --- a/Documentation/user/lilypond-book.tely +++ /dev/null @@ -1,616 +0,0 @@ -\input texinfo @c -*-texinfo-*- -@setfilename lilypond-book.info -@settitle lilypond-book Manual -@afourpaper -@titlepage -@title lilypond-book Manual -@subtitle Integrating lilypond with La@TeX{} and TeXinfo -@author Tom Cato Amundsen and Han-Wen Nienhuys - - Copyright @copyright{} 1999 by the authors - -@vskip 0pt plus 1filll - -Permission is granted to make and distribute verbatim -copies of this manual provided the copyright notice and -this permission notice are preserved on all copies. - -Permission is granted to copy and distribute modified -versions of this manual under the conditions for -verbatim copying, provided also that the sections -entitled ``Copying'' and ``GNU General Public License'' -are included exactly as in the original, and provided -that the entire resulting derived work is distributed -under the terms of a permission notice identical to this -one. - -Permission is granted to copy and distribute -translations of this manual into another language, -under the above conditions for modified versions, -except that this permission notice may be stated in a -translation approved by the Free Software Foundation. - -@end titlepage - -@ifinfo -This file documents GNU LilyPond. - -Copyright 1999 Tom Cato Amundsen and Han-Wen Nienhuys - - -Permission is granted to make and distribute verbatim -copies of this manual provided the copyright notice and -this permission notice are preserved on all copies. - -@ignore -Permission is granted to process this file through TeX -and print the results, provided the printed document -carries a copying permission notice identical to this -one except for the removal of this paragraph (this -paragraph not being relevant to the printed manual). - -@end ignore - -Permission is granted to copy and distribute modified -versions of this manual under the conditions for -verbatim copying, provided also that the sections -entitled ``Copying'' and ``GNU General Public License'' -are included exactly as in the original, and provided -that the entire resulting derived work is distributed -under the terms of a permission notice identical to this -one. - -Permission is granted to copy and distribute -translations of this manual into another language, -under the above conditions for modified versions, -except that this permission notice may be stated in a -translation approved by the Free Software Foundation. - -@end ifinfo -@tex -\def\preLilypondExample{\vspace{0.5cm}} -@end tex - -@contents -@node Top -@top - - - -@section Introduction - -[ The tutorial part is at the moment commented out and moved to -the end of this document ] - - -[TODO: THIS MANUAL IS NOT FINISHED YET. FIXME.] - -@command{lilypond-book} is a script that helps integrating lilypond with -La@TeX{} or TeXinfo. @command{lilypond-book} runs Lilypond on fragments -of lilypond in your source file, and includes the results into a -document that can be processed with La@TeX{}, @command{makeinfo} -or @command{texi2dvi}. -The result is a text document with formatted music integrated. - -@command{lilypond-book} will do its best to try to align the music to -the left and right margins. Currently all papersizes, one- and -twocolumn mode and the @code{geometry} package is supported. -The TeXinfo command @code{pagesize} is on the TODO list for Lilypond 1.4. -But changing the linewidth in other ways will not give you a straight -right margin. - -This document assumes you have basic knowledge of GNU LilyPond and -La@TeX{} or texinfo. - -@section TeXinfo reference - -Your markup the lilypond code like this: -@example -@@lilypond[options, go, here] - YOUR LILYPOND CODE -@@end lilypond -@end example - -or - -@example -@@lilypond[option, go, here]@{ YOUR LILYPOND CODE @} -@end example - -@command{lilypond-book} knows the default margins, and a few papersizes. -These commands should be in the beginning of the document: -@itemize @bullet -@item @code{@@afourpaper} -@item @code{@@afourlatex} -@item @code{@@afourwide} -@item @code{@@smallbook} -@end itemize -@code{@@pagesizes} are not yet supported. - -@subsection Examples - -Two simple examples. First a complete block: - -@example -@@lilypond[26pt] -c' d' e' f' g'2 g' -@@end lilypond -@end example - -produces this music: -@lilypond -c' d' e' f' g'2 g' -@end lilypond - -Then the short version: -@example -@@lilypond[11pt]@{@} -@end example - -and its music: - -@lilypond[11pt]{} - - -@subsection @@example and @@code - -I'm not sure if this will go into the final documentation, this is -here mostly to remember me on why things are the way they are. - -@command{lilypond-book} will do nothing with special with @code{@@code} and -@code{@@example} environments. The 'code' and 'example' commands -should work just as normal. People looking at document that should be -processed by @command{lilypond-book}, should notice nothing special, except from -some block like this: -@example -@@lilypond -BLABLA -@@end lilypond -@end example - -or this: - -@code{@@lilypond@{ BLABLA @}} - -Anything other is a bug in @command{lilypond-book}. - -So to get this in the printed manual: - -@example -@@lilypond[26pt] -\relative c'@{c d e f g2 g@} -@@end lilypond -@end example - -you have to write this: - -@example -@@example -@@@@lilypond[26pt] -\relative c'@@@{c d e f g2 g@@@} -@@@@end lilypond -@@end example -@end example - -Simply explained, every '@{', '@}' and '@@' has to be written as '@@@{', -'@@@}' and '@@@@'. This is how it works in plain texinfo too. - -@section La@TeX{} reference - -Your markup the lilypond code like this: -@example -\begin[option, go, here]@{lilypond@} - YOUR LILYPOND CODE -\end@{lilypond@} -@end example - -or - -@example -\lilypond@{ YOUR LILYPOND CODE @} -@end example - -Lilypond-book know about the @code{\onecolumn} and -@code{\twocolumn} commands, the @code{geometry} package and -all the standard paper sizes. - -The music will be surrounded by @code{\preLilypondExample} and -@code{\postLilypondExample}. The variables are -defined to nothing by default, and the user can redefine them -to whatever he wants. -@strong{[UGH: THIS DOES NOT HAPPEN WHEN -YOU USE THE SHORT FORM, \LILYPOND@{ ... @}, CHECK OUT WHY]} - -@subsection Examples - -@example -\begin[26pt]@{lilypond@} -c' d' e' f' g'2 g'2 -\end@{lilypond@} -@end example - -produces this music: - -@lilypond[26pt] -c' d' e' f' g'2 g'2 -@end lilypond - -Then the short version: -@example -\lilypond[11pt]@{@} -@end example - -and its music: - -@lilypond[11pt]{} - - -@subsection \begin@{verbatim@} and \verb|\verb| - -There work just as expected. Look at @file{mb-latex.tex} for details. - -@section Options - -@table @code -@item eps - the music is created as eps graphics that can be inserted in - the middle of a text line, not only as a separate paragraph. - (La@TeX{} only) -@item verbatim - CONTENTS is copied into the source enclosed in a verbatim block, - followed by any text given with the @code{intertext} option, then - the actual music is displayed. This option does not work with - the short version of the lilypond blocks: - - @code{ @@lilypond@{ CONTENTS @} } and @code{ \lilypond@{ CONTENTS @} } - -@item intertext="text inside apostrophs" - Used in conjunction with @code{verbatim} option. -@item filename=FILENAME - Save the lilypond code to FILENAME instead of using a hash value - of CONTENTS. -@item 11pt, 13pt, 16pt, 20pt, 26pt - set the fontsize to use for the music -@item singleline - linewidth = -1. -@item multiline - linewidth = textwidth -@item fragment -@item nonfragment - Override @command{lilypond-book} autodetection of what type of code is in the - lilypond block, voice contents or complete code. -@end table - -@section Invocation - -When you run @command{lilypond-book} it will generate lots of small -files that Lilypond will process. So to avoid all the garbage in -your source directory, you should either change to a temporary -directory, or use the @code{--outdir} commandline options: - -@code{cd out && lilypond-book ../yourfile.tex} - -@code{lilypond-book --outdir=out yourfile.tex} - - -For latex input, the file to give to latex has ext @file{.latex}. -TeXinfo input will be written to a file with ext @file{.texi}. So be -careful, don't give the source file that ext, or the file will be -overwritten. - -If you use @code{--outdir}, you should also @code{cd} to that directory -before running LaTeX or makeinfo. - -@strong{[UGH: IS THIS THE BEST WAY TO DO IT? MAYBE ADD A COMMENT LINE TO THE -GENERATED FILE, SO LILYPOND-BOOK CAN TEST IF THE FILE IT IS TO OVERWRITE -IS GENERATED.]} - -@strong{About the input} - -If the file contains the ``block'' - -@example - - \begin@{lilypond@} - CONTENTS - \end@{lilypond@} - -@end example - -then LilyPond is run on CONTENTS. @command{lilypond-book} puts the result back, -surrounded by @code{\preLilypondExample} and @code{\postLilypondExample} -commands. @code{\preLilypondExample} and @code{posLilypondExample} is -defined to nothing by default, and the user can redefine them -to whatever he wants. - - -@subsection Command line options - -@table @code - -@item @option{-f}, @option{--format=} - Specify the document type to process, @code{latex} or @code{texi}. - @command{lilypond-book} usually figure out this automatically. -@item --default-music-fontsize=??pt - Set the fontsize to use for lilypond if no fontsize is given - as option. -@item --force-music-fontsize=??pt - Force all lilypond to use this fontsize, overriding options - given to \begin@{lilypond@} -@item -I DIR, --include=DIR - include path -@item -M, --dependencies - Write dependencies to out-www/filename.dep -@item --dep-prefix=PREF - prepend PREF before each -M dependency -@item -n, --no-lily - don't run lilypond -@item --no-pictures - don't generate pictures -@item --read-lys - don't write ly files. This way you can do - @example - lilypond-book file.tely - convert-ly - lilypond-book --read-lys - @end example -@item --outname=FILE - The name of La@TeX{} file to output. If this option is not given, - the output name derived from the input name. -@item --outdir= - where to place generated files -@item --version - print version information -@item --help - Print a short help message -@end table - - - -@command{lilypond-book} is written in python 1.5, so you have to install -@uref{http://www.python.org,python}. - - - -@section Bugs - -The La@TeX{} \includeonly@{...@} command is ignored. - -Ignores almost all La@TeX{} commands that changes margins and linewidths. - -@section Authors - -@email{hanwen@@cs.uu.nl, Han-Wen Nienhuys}, @uref{http://www.cs.uu.nl/people/hanwen} - -@email{tca@@gnu.org, Tom Cato Amundsen} - -@bye -@ignore - -So what does this look like? Well, here is an example: -@lilypond[veryverbatim, intertext="produces this music:"] -\score{ - \notes\relative c'{ - \time 5/8; - [e16( g b c a g][e a b d] | )e2 d,8 | - [e16( g b c a g][e a b d] | )b2 [a16( f] | - [e a b d] )e4 c8 | [es16( bes a as g es][d c b! )g] | - [f( a b d b a][f a b d] | )e2 - } -} -@end lilypond -If you are lucky, the above example show a nice feature of LilyPond -and La@TeX{}. Since LilyPond can output the music as @TeX{} graphics, -La@TeX{} can insert pagebreaks between the lines of music. - -Notice that there is no @code{\paper} statement in the example -above. Lilypond-book will insert some code for you that defines the -linewidth and the font to use. If you don't want to change the default, -there is no need to put an empty @code{\paper@{@}} inside the @code{\score}. -In the example above, something like -this might be inserted before your code: -@example -\include "paper16.ly" -\paper@{ \paper_sixteen - linewidth = 390.\pt; - castingalgorithm = \Gourlay; -@} -@end example -The actual values for linewidth will differ depending on papersize and -number of columns. Also, if you use a different fontsize for the -music, another file than @code{paper16.ly} will be included. - -If you want to make the music not so wide, you can insert a -@code{\paper} statement that set the linewidth: - -@lilypond[veryverbatim, intertext="produces this music:"] -\score{ - \notes\relative c'{ - \time 5/8; - [e16( g b c a g][e a b d] | )e2 d,8 | - [e16( g b c a g][e a b d] | )b2 [a16( f] | - [e a b d] )e4 c8 | [es16( bes a as g es][d c b! )g] | - [f( a b d b a][f a b d] | )e2 - } - \paper{linewidth = 10.\cm;} -} -@end lilypond - -Very often, if you mix music and text, the music is often only a -few notes or at most a few bars. This music should be as short as -possible and not stretched to be aligned to the right margin. - -If you only write voice-contents in the lilypond block, @command{lilypond-book} -will set the @code{linewidth} variable to -1, so Lilypond -will make the music as short as possible but without breaking the -line. Here is a well know harmonic progression: -@lilypond[veryverbatim, intertext="produce a well known harmonic progression:"] - \context Voice { } -@end lilypond - -If you want to place music examples in the text, -@lilypond[eps] -\context Voice { } -@end lilypond -, you can use the @code{eps} option. This will create the music as -eps graphics and include it into the document with the -@code{\includegraphics} command. - -The code used look like this: -@example -@@lilypond[eps] - \context Voice { } -@@end lilypond -@end example - -You can also use the @code{eps} option if the block is a complete -lilypond source. This 5 cm long empty line, -@lilypond[eps] -\score{ - \notes{s} - \paper{ linewidth = 5.\cm;} -} -@end lilypond -was created with this code: -@example -@@lilypond[eps] -\score@{ - \notes@{s@} - \paper@{ linewidth = 5.\cm;@} -@} -@@end lilypond -@end example - -To avoid that La@TeX{} places the music on a line of its one, there should -be no empty lines between the normal text and the lilypond -environment. - -You can also use @code{lilypondfile} (on a separate line, FIXME), to -include another file. - -@section Fontsize options You can use all lilypond fontsizes in -@command{lilypond-book}. The default 16pt fontsize is probably to big to be -included in the middle of the text, 11pt or 13pt is probably better. - -The code can look like this: -@example -@@lilypond[13pt, eps] - -@@end lilypond -@end example - -The following options set the fontsize: -@itemize -@item @code{11pt} -@lilypond[11pt, eps] - \relative c'{ - r16 [c d e][f d e c] [g'8 c][b-\prall c] | - [d16 g, a b][c a b g][d'8 g f-\prall g] - } -@end lilypond -@item @code{13pt} -@lilypond[13pt, eps] - \relative c'{ - r16 [c d e][f d e c] [g'8 c][b-\prall c] | - [d16 g, a b][c a b g][d'8 g f-\prall g] - } -@end lilypond -@item @code{16pt} -@lilypond[16pt, eps] - \relative c'{ - r16 [c d e][f d e c] [g'8 c][b-\prall c] | - [d16 g, a b][c a b g][d'8 g f-\prall g] - } -@end lilypond -@item @code{20pt} -@lilypond[20pt, eps] - \relative c'{ - r16 [c d e][f d e c] [g'8 c][b-\prall c] | - [d16 g, a b][c a b g][d'8 g f-\prall g] - } -@end lilypond -@item @code{26pt} -@lilypond[26pt, eps] - \relative c'{ - r16 [c d e][f d e c] [g'8 c][b-\prall c] | - [d16 g, a b][c a b g][d'8 g f-\prall g] - } -@end lilypond -@end itemize - - -@section More options -@itemize -@item The @code{singleline} option set @code{linewidth} to -1.0. -@item The @code{multiline} option set @code{linewidth} to a value letting -the music be aligned to the right margin. The music can span several -lines. -@end itemize - -@section Just in case... -The options @code{fragment} and @code{nonfragment} will override -@command{lilypond-book} when it scans the lilypond code to see if it is voice -contents or complete code. This might be useful if @command{lilypond-book} choose -wrong. - -Since there is no finder's fee which doubles every year, there is no -need to wait for the price money to grow. So send a bug report today -if you need this one of these options. - -@section Examples - -This was all options to @code{\begin}. The rest of the lilypond -document will show some ways you can use lilypond in -La@TeX{} documents. It will also act as a simple test-suite for -lilypond-book. You can place @code{eps} lilypond in and marginspars just -as any other included eps graphics. - -@lilypond -\score{ - \notes\relative c'{ - \time 12/8; - r4-\fermata [b16-.( )b-.] [f'8-- dis16-.( )dis-. gis8--] - [f16-.( )f-. dis8-- gis16-.( )gis-.] cis4.-\fermata | - - r4.-\fermata [cis,16 cis g'8 f16 f b8][g16 g f8 b16 b] dis4.-\fermata - } - \paper{linewidth = 7.\cm;} -} -@end lilypond - - -To the right you can see some bars from the trumpet fanfara from the -beginning of the fantastic street opera ``Houdini the Great'', by the -Danish composer Andy Pape. The music is put inside a -@code{floatingfigure} environment, and the music will be aligned by -the right marging if you set floatingfigure width and lilypond linewidth -to the same value. The code looks like this: - -@lilypond[verbatim] -\score{ - \notes\relative c'{ - \time 12/8; - r4.-\fermata [b16-.( )b-.] [f'8-- dis16-.( )dis-. gis8--] - [f16-.( )f-. dis8-- gis16-.( )gis-.] cis8.-\fermata | - - r4.-\fermata [cis,16 cis g'8 f16 f b8] - [g16 g f8 b16 b] dis4.-\fermata - } - \paper{linewidth = 7.\cm;} -} -@end lilypond - -If you have a lot of small music examples like this in the middle of -your text, you might get a nicer look by using ``double'' line -spacing. Put the @code{\linespread@{1.6@}} command into the preamble of -your document. Then the line spacing will not be increased between the -lines where you have music printed with the smallest font size. - -Lilypond-book does know about @code{\onecolumn} and @code{\twocolumn}. -So the music will be adjusted to the new linewith: - -Verbatim environments will also ignore the page margins. That is -a feature of La@TeX{}. (But you usually put things inside a verbatim -environment when you don't want La@TeX{} to do any linebreaking) - -@end ignore diff --git a/buildscripts/gettext.py b/buildscripts/gettext.py deleted file mode 100644 index e34cc77a2e..0000000000 --- a/buildscripts/gettext.py +++ /dev/null @@ -1,329 +0,0 @@ -"""This module allows python programs to use GNU gettext message catalogs. - -Author: James Henstridge -(This is loosely based on gettext.pl in the GNU gettext distribution) - -The best way to use it is like so: - import gettext - gettext.bindtextdomain(PACKAGE, LOCALEDIR) - gettext.textdomain(PACKAGE) - _ = gettext.gettext - print _('Hello World') - -where PACKAGE is the domain for this package, and LOCALEDIR is usually -'$prefix/share/locale' where $prefix is the install prefix. - -If you have more than one catalog to use, you can directly create catalog -objects. These objects are created as so: - import gettext - cat = gettext.Catalog(PACKAGE, localedir=LOCALEDIR) - _ = cat.gettext - print _('Hello World') - -The catalog object can also be accessed as a dictionary (ie cat['hello']). - -There are also some experimental features. You can add to the catalog, just -as you would with a normal dictionary. When you are finished, you can call -its save method, which will create a new .mo file containing all the -translations: - import gettext - cat = Catalog() - cat['Hello'] = 'konichiwa' - cat.save('./tmp.mo') - -Once you have written an internationalized program, you can create a .po file -for it with "xgettext --keyword=_ fillename ...". Then do the translation and -compile it into a .mo file, ready for use with this module. Note that you -will have to use C style strings (ie. use double quotes) for proper string -extraction. -""" -import os, string - -prefix = '/usr/local' -localedir = prefix + '/share/locale' - -def _expandLang(str): - langs = [str] - # remove charset ... - if '.' in str: - langs.append(string.split(str, '.')[0]) - # also add 2 character language code ... - if len(str) > 2: - langs.append(str[:2]) - return langs - -lang = [] -for env in 'LANGUAGE', 'LC_ALL', 'LC_MESSAGES', 'LANG': - if os.environ.has_key(env): - lang = string.split(os.environ[env], ':') - lang = map(_expandLang, lang) - lang = reduce(lambda a, b: a + b, lang) - break -if 'C' not in lang: - lang.append('C') - -# remove duplicates -i = 0 -while i < len(lang): - j = i + 1 - while j < len(lang): - if lang[i] == lang[j]: - del lang[j] - else: - j = j + 1 - i = i + 1 -del i, j - -if os.environ.has_key('PY_XGETTEXT'): - xgettext = os.environ['PY_XGETTEXT'] -else: - xgettext = None - -del os, string - -error = 'gettext.error' - -def _lsbStrToInt(str): - return ord(str[0]) + \ - (ord(str[1]) << 8) + \ - (ord(str[2]) << 16) + \ - (ord(str[3]) << 24) -def _msbStrToInt(str): - return (ord(str[0]) << 24) + \ - (ord(str[1]) << 16) + \ - (ord(str[2]) << 8) + \ - ord(str[3]) -def _intToLsbStr(int): - return chr(int & 0xff) + \ - chr((int >> 8) & 0xff) + \ - chr((int >> 16) & 0xff) + \ - chr((int >> 24) & 0xff) - -def _getpos(levels = 0): - """Returns the position in the code where the function was called. - The function uses some knowledge about python stack frames.""" - import sys - # get access to the stack frame by generating an exception. - try: - raise RuntimeError - except RuntimeError: - frame = sys.exc_traceback.tb_frame - frame = frame.f_back # caller's frame - while levels > 0: - frame = frame.f_back - levels = levels - 1 - return (frame.f_globals['__name__'], - frame.f_code.co_name, - frame.f_lineno) - -class Catalog: - def __init__(self, domain=None, localedir=localedir): - self.domain = domain - self.localedir = localedir - self.cat = {} - if not domain: return - for self.lang in lang: - if self.lang == 'C': - return - catalog = "%s//%s/LC_MESSAGES/%s.mo" % ( - localedir, self.lang, domain) - try: - f = open(catalog, "rb") - buffer = f.read() - del f - break - except IOError: - pass - else: - return # assume C locale - - strToInt = _lsbStrToInt - if strToInt(buffer[:4]) != 0x950412de: - # catalog is encoded with MSB offsets. - strToInt = _msbStrToInt - if strToInt(buffer[:4]) != 0x950412de: - # magic number doesn't match - raise error, 'Bad magic number in %s' % (catalog,) - - self.revision = strToInt(buffer[4:8]) - nstrings = strToInt(buffer[8:12]) - origTabOffset = strToInt(buffer[12:16]) - transTabOffset = strToInt(buffer[16:20]) - for i in range(nstrings): - origLength = strToInt(buffer[origTabOffset: - origTabOffset+4]) - origOffset = strToInt(buffer[origTabOffset+4: - origTabOffset+8]) - origTabOffset = origTabOffset + 8 - origStr = buffer[origOffset:origOffset+origLength] - - transLength = strToInt(buffer[transTabOffset: - transTabOffset+4]) - transOffset = strToInt(buffer[transTabOffset+4: - transTabOffset+8]) - transTabOffset = transTabOffset + 8 - transStr = buffer[transOffset:transOffset+transLength] - - self.cat[origStr] = transStr - - def gettext(self, string): - """Get the translation of a given string""" - if self.cat.has_key(string): - return self.cat[string] - else: - return string - # allow catalog access as cat(str) and cat[str] and cat.gettext(str) - __getitem__ = gettext - __call__ = gettext - - # this is experimental code for producing mo files from Catalog objects - def __setitem__(self, string, trans): - """Set the translation of a given string""" - self.cat[string] = trans - def save(self, file): - """Create a .mo file from a Catalog object""" - try: - f = open(file, "wb") - except IOError: - raise error, "can't open " + file + " for writing" - f.write(_intToLsbStr(0x950412de)) # magic number - f.write(_intToLsbStr(0)) # revision - f.write(_intToLsbStr(len(self.cat))) # nstrings - - oIndex = []; oData = '' - tIndex = []; tData = '' - for orig, trans in self.cat.items(): - oIndex.append((len(orig), len(oData))) - oData = oData + orig + '\0' - tIndex.append((len(trans), len(tData))) - tData = tData + trans + '\0' - oIndexOfs = 20 - tIndexOfs = oIndexOfs + 8 * len(oIndex) - oDataOfs = tIndexOfs + 8 * len(tIndex) - tDataOfs = oDataOfs + len(oData) - f.write(_intToLsbStr(oIndexOfs)) - f.write(_intToLsbStr(tIndexOfs)) - for length, offset in oIndex: - f.write(_intToLsbStr(length)) - f.write(_intToLsbStr(offset + oDataOfs)) - for length, offset in tIndex: - f.write(_intToLsbStr(length)) - f.write(_intToLsbStr(offset + tDataOfs)) - f.write(oData) - f.write(tData) - -_cat = None -_cats = {} - -if xgettext: - class Catalog: - def __init__(self, domain, localedir): - self.domain = domain - self.localedir = localedir - self._strings = {} - def gettext(self, string): - # there is always one level of redirection for calls - # to this function - pos = _getpos(2) # get this function's caller - if self._strings.has_key(string): - if pos not in self._strings[string]: - self._strings[string].append(pos) - else: - self._strings[string] = [pos] - return string - __getitem__ = gettext - __call__ = gettext - def __setitem__(self, item, data): - pass - def save(self, file): - pass - def output(self, fp): - import string - fp.write('# POT file for domain %s\n' % (self.domain,)) - for str in self._strings.keys(): - pos = map(lambda x: "%s(%s):%d" % x, - self._strings[str]) - pos.sort() - length = 80 - for p in pos: - if length + len(p) > 74: - fp.write('\n#:') - length = 2 - fp.write(' ') - fp.write(p) - length = length + 1 + len(p) - fp.write('\n') - if '\n' in str: - fp.write('msgid ""\n') - lines = string.split(str, '\n') - lines = map(lambda x: - '"%s\\n"\n' % (x,), - lines[:-1]) + \ - ['"%s"\n' % (lines[-1],)] - fp.writelines(lines) - else: - fp.write('msgid "%s"\n' % (str,)) - fp.write('msgstr ""\n') - - import sys - if hasattr(sys, 'exitfunc'): - _exitchain = sys.exitfunc - else: - _exitchain = None - def exitfunc(dir=xgettext, _exitchain=_exitchain): - # actually output all the .pot files. - import os - for file in _cats.keys(): - fp = open(os.path.join(dir, file + '.pot'), 'w') - cat = _cats[file] - cat.output(fp) - fp.close() - if _exitchain: _exitchain() - sys.exitfunc = exitfunc - del sys, exitfunc, _exitchain, xgettext - -def bindtextdomain(domain, localedir=localedir): - global _cat - if not _cats.has_key(domain): - _cats[domain] = Catalog(domain, localedir) - if not _cat: _cat = _cats[domain] - -def textdomain(domain): - global _cat - if not _cats.has_key(domain): - _cats[domain] = Catalog(domain) - _cat = _cats[domain] - -def gettext(string): - if _cat == None: raise error, "No catalog loaded" - return _cat.gettext(string) - -_ = gettext - -def dgettext(domain, string): - if domain is None: - return gettext(string) - if not _cats.has_key(domain): - raise error, "Domain '" + domain + "' not loaded" - return _cats[domain].gettext(string) - -def test(): - import sys - global localedir - if len(sys.argv) not in (2, 3): - print "Usage: %s DOMAIN [LOCALEDIR]" % (sys.argv[0],) - sys.exit(1) - domain = sys.argv[1] - if len(sys.argv) == 3: - bindtextdomain(domain, sys.argv[2]) - textdomain(domain) - info = gettext('') # this is where special info is often stored - if info: - print "Info for domain %s, lang %s." % (domain, _cat.lang) - print info - else: - print "No info given in mo file." - -if __name__ == '__main__': - test() - diff --git a/lily/include/unfolded-repeat-iterator.hh b/lily/include/unfolded-repeat-iterator.hh deleted file mode 100644 index 272365ecd4..0000000000 --- a/lily/include/unfolded-repeat-iterator.hh +++ /dev/null @@ -1,3 +0,0 @@ - -#error - diff --git a/lily/property-inspect.cc b/lily/property-inspect.cc deleted file mode 100644 index 30a6dc3372..0000000000 --- a/lily/property-inspect.cc +++ /dev/null @@ -1,9 +0,0 @@ -/* - property-inspect.cc -- implement Property inspect funcs. - - source file of the GNU LilyPond music typesetter - - (c) 1999--2001 Han-Wen Nienhuys - - */ - -- 2.39.5