From: Han-Wen Nienhuys Date: Mon, 30 Aug 1999 11:05:24 +0000 (+0200) Subject: release: 1.2.4 X-Git-Tag: release/1.2.4 X-Git-Url: https://git.donarmstrong.com/lilypond.git?a=commitdiff_plain;h=07d4d05df6479d58c3c5152c07d7c86b94ee98b4;p=lilypond.git release: 1.2.4 --- diff --git a/AUTHORS.txt b/AUTHORS.txt index a9440caf71..824ab30814 100644 --- a/AUTHORS.txt +++ b/AUTHORS.txt @@ -67,5 +67,7 @@ o Jeffrey B. Reed , Windows-NT sup- o Shay Rojanski Some mudela source. +o Laura Conrad (lconrad@world.std.com) fixes to abc2ly + Your name could be here! If you want to fix something, do it, and send us a patch! diff --git a/CHANGES b/CHANGES index 85ca28b417..8fa3170237 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,23 @@ +pl 3.hwn1 + - mudela-book tweaks for surviving texinfo + - include feta command seqs. in .tex + - guile 1.3.2 fixes. + - include config.h directly. + - bf: mudela-book. Now linear in size of document. + - scriptHorizontal property; more or less works. + - changes in Graphical_element, Graphical_axis_group +offset removed from public interface, now use relative_coordinate (). +extent () is given relative to this. + - removed Rhythmic_head::dots_i_ + - bf: Rhythmic_head::do_substitute_element_pointer () + - Direct access to dim_cache_ replaced by methods in +Graphical_element. +3.mk1 + - left endings of various spanners adjusted + +********** + + pl 2.mk1 - bf, tie.cc: handle postbreak left align correctly pl 2.lec1 diff --git a/Documentation/metadoc/test.tely b/Documentation/metadoc/test.tely index ae2662fa54..e22d3c3541 100644 --- a/Documentation/metadoc/test.tely +++ b/Documentation/metadoc/test.tely @@ -12,10 +12,13 @@ @node foo @section foo -@mudela[veryverbatim, intertext="produces this music:"] +@mudela[verbatim, intertext="produces this music:"] +\include "paper16.ly" \score{ \notes\relative c'{ a b c } } @end mudela + +@bye diff --git a/Documentation/tex/mudela-book-doc.doc b/Documentation/tex/mudela-book-doc.doc index 97fd452457..46c2423c9b 100644 --- a/Documentation/tex/mudela-book-doc.doc +++ b/Documentation/tex/mudela-book-doc.doc @@ -189,6 +189,7 @@ There is an even shorter way to write small musical fragments. This triad, \mudela{}, was created with this code: \verb|\mudela{}| +\def\obsolete{ Mudela-book defines the \verb|\mudela| command, and let you define your own commands in a file specified by the command line option \verb|--initfile=filename|. The format for the @@ -224,6 +225,7 @@ send fontsize options to the defined commands. \paper{linewidth = -1.\cm;} } \end{mudela} +} \section{More options} \begin{itemize} diff --git a/Documentation/tex/reference-manual.yo b/Documentation/tex/reference-manual.yo index a07e174805..0d17437b98 100644 --- a/Documentation/tex/reference-manual.yo +++ b/Documentation/tex/reference-manual.yo @@ -27,6 +27,8 @@ COMMENT( accordeon symbols Music expression / music expression + property lists should be alphabetic. + ) @@ -2266,20 +2268,23 @@ subsubsect(Voice properties) cindex(properties!Voice) description( - dit(code(stemLength))indexcode(stemLength) nl() - Set length of stems. Unit is `code(interline)/2', so - code(stemLength) defaults bind(to)7. - - dit(code(stemLeftBeamCount))indexcode(stemLeftBeamCount) nl() - Specify the number of beams to draw on the left side of the next - note. Overrides automatic beaming. The value is only used once, - and then it is erased. + dit(code(abbrev))indexcode(abbrev) nl() + Set length for tremolo to be used if no length is explicitly + specified. - dit(code(stemRightBeamCount))indexcode(stemRightBeamCount) nl() - Specify the number of beams to draw on the right side of the next - note. Overrides automatic beaming. The value is only used once, - and then it is erased. + dit(code(articulationScriptPadding))indexcode(articulationScriptPadding) + nl() + Determines the extra space added between articulation marks, such + as staccato, tenuto, trill, up/down bow or fermata, and the + closest staff line or note. + dit(code(articulationScriptVerticalDirection)) + indexcode(articulationScriptVerticalDirection) nl() + Determines the location of articulation marks. Set to code(\up) + to print marks above the staff; set to code(\down) to print marks + below the staff. This property does not override explicit + directions marked with `code(^)' or `code(_)' in the mudela file. + dit(code(noAutoBeaming))indexcode(beamAuto) nl() If set bind(to)1 then beams are not generated automatically. @@ -2291,10 +2296,6 @@ description( Specifies when automatically generated beams can start. See bind(section)ref(autobeam). - dit(code(textEmptyDimension))indexcode(textEmptyDimension) nl() - If set bind(to)1 then text placed above or below the staff is - assumed to have zero width. - dit(code(beamquantisation))indexcode(beamquantisation) nl() Set to code(\none) for no quantization. Set to code(\normal) to quantize position and slope. Set to code(\traditional) to avoid @@ -2312,11 +2313,41 @@ description( code(\beamslopezero)keyindex(beamslopezero) each set the corresponding value. - dit(code(restStyle))indexcode(restStyle) nl() - Change the layout of rests shorter than quarter notes. - Currently, the standard layout code("") and mensural notation - code("mensural") are available. Mensural rests of duration - 32 or shorter are not available. + dit(code(dynamicDirection))indexcode(dynamicDirection) nl() + Determines location of dynamic marks. Set to code(\up) to print + marks above the staff; set to code(\down) to print marks below + the staff. + + dit(code(dynamicStyle))indexcode(dynamicStyle) nl() + Set the text style for dynamics. + + dit(code(fontSize))indexcode(fontSize) nl() + Can be used to select smaller font sizes for music. The normal + font size bind(is)0, and the two smaller sizes are -1 + bind(and)-2. + + + dit(code(forceHorizontalShift))indexcode(forceHorizontalShift) nl() + Force horizontal shift for collision resolution. It overrides + automatic collision resolution. The value is the shift amount + expressed in code(note_width), as set in the paper section. + + + dit(code(horizontalNoteShift))indexcode(horizontalNoteShift) nl() + Enable LilyPond to shift notes horizontally if they collide with + other notes. This is useful when typesetting many voices on one + staff. The identifier code(\shift)keyindex(shift) is defined to + enable this. Traditionally, the outer chords (the upmost and + downmost voices), should have no code(horizontalNoteShift). + + dit(code(markScriptPadding))indexcode(markScriptPadding) nl() + Determines the extra space added between the mark and the closest + staff line or note. + + dit(code(markDirection))indexcode(markDirection) nl() + Determines if marks should be printed above or below the staff. + Set to code(\up) to print marks above the staff; set to + code(\down) to print marks below the staff. dit(code(midiInstrument))indexcode(midiInstrument) nl() Sets the instrument for MIDI output. If this property is not set @@ -2325,24 +2356,22 @@ description( appears in bind(section)ref(midilist). If you use a string which is not listed, LilyPond will silently substitute piano. - dit(code(transposing))indexcode(transposing) nl() - Transpose the MIDI output. Set this property to the number of - half-steps to transpose by. dit(code(oldTieBehavior))indexcode(oldTieBehavior) nl() Set bind(to)1 in order to get old tie behavior where ties would connect unequal pitches. This property is deprecated, and its use is not recommended. - dit(code(verticalDirection))indexcode(verticalDirection) nl() - Determines the direction of stems, subscripts, beams, slurs, and - ties. Set to code(\down) to force them down, code(\up) to force - them up, or code(\free) to let LilyPond decide. This can be used - to distinguish between voices on the same staff. The - code(\stemdown)keyindex(stemdown), code(\stemup)keyindex(stemup), - and code(\stemboth)keyindex(stemboth) identifiers set this - property. - + dit(code(restStyle))indexcode(restStyle) nl() + Change the layout of rests shorter than quarter notes. + Currently, the standard layout code("") and mensural notation + code("mensural") are available. Mensural rests of duration + 32 or shorter are not available. + + dit(code(scriptHorizontal))indexcode(scriptHorizontal) nl() + Put scripts left or right of note heads. Support for this is + limited. Accidentals will collide with scripts. + dit(code(slurVerticalDirection))indexcode(slurVerticalDirection) nl() Set to code(\free) for free choice of slur direction, set to code(\up) to force slurs up, set to code(\down) to force slurs @@ -2350,10 +2379,6 @@ description( code(\slurdown)keyindex(slurdown), and code(\slurboth)keyindex(slurboth) are available. - dit(code(tieVerticalDirection))indexcode(tieVerticalDirection) nl() - Set to code(\free) for free choice of tie direction, set to - code(\up) to force ties up, set to code(\down) to force ties - down. dit(code(slurDash))indexcode(slurDash) nl() Set bind(to)0 for normal slurs, bind(1)for dotted slurs, and a @@ -2362,26 +2387,33 @@ description( code(\slurdotted)keyindex(slurdotted) are predefined to set the first two settings. - dit(code(horizontalNoteShift))indexcode(horizontalNoteShift) nl() - Enable LilyPond to shift notes horizontally if they collide with - other notes. This is useful when typesetting many voices on one - staff. The identifier code(\shift)keyindex(shift) is defined to - enable this. Traditionally, the outer chords (the upmost and - downmost voices), should have no code(horizontalNoteShift). +dit(code(stemLength))indexcode(stemLength) nl() + Set length of stems. Unit is `code(interline)/2', so + code(stemLength) defaults bind(to)7. - dit(code(forceHorizontalShift))indexcode(forceHorizontalShift) nl() - Force horizontal shift for collision resolution. It overrides - automatic collision resolution. The value is the shift amount - expressed in code(note_width), as set in the paper section. + dit(code(stemLeftBeamCount))indexcode(stemLeftBeamCount) nl() + Specify the number of beams to draw on the left side of the next + note. Overrides automatic beaming. The value is only used once, + and then it is erased. - dit(code(dynamicDirection))indexcode(dynamicDirection) nl() - Determines location of dynamic marks. Set to code(\up) to print - marks above the staff; set to code(\down) to print marks below - the staff. + dit(code(stemRightBeamCount))indexcode(stemRightBeamCount) nl() + Specify the number of beams to draw on the right side of the next + note. Overrides automatic beaming. The value is only used once, + and then it is erased. + dit(code(tieVerticalDirection))indexcode(tieVerticalDirection) nl() + Set to code(\free) for free choice of tie direction, set to + code(\up) to force ties up, set to code(\down) to force ties + down. - dit(code(dynamicStyle))indexcode(dynamicStyle) nl() - Set the text style for dynamics. + dit(code(transposing))indexcode(transposing) nl() + Transpose the MIDI output. Set this property to the number of + half-steps to transpose by. + + dit(code(textEmptyDimension))indexcode(textEmptyDimension) nl() + If set bind(to)1 then text placed above or below the staff is + assumed to have zero width. + dit(code(textStyle))indexcode(textStyle) nl() Set the text style for superscripts and subscripts. See above for list of text styles. @@ -2390,14 +2422,15 @@ description( Determines the extra space added between superscripted resp. subscripted text and the closest staff line or note. - dit(code(fontSize))indexcode(fontSize) nl() - Can be used to select smaller font sizes for music. The normal - font size bind(is)0, and the two smaller sizes are -1 - bind(and)-2. - - dit(code(abbrev))indexcode(abbrev) nl() - Set length for tremolo to be used if no length is explicitly - specified. + dit(code(verticalDirection))indexcode(verticalDirection) nl() + Determines the direction of stems, subscripts, beams, slurs, and + ties. Set to code(\down) to force them down, code(\up) to force + them up, or code(\free) to let LilyPond decide. This can be used + to distinguish between voices on the same staff. The + code(\stemdown)keyindex(stemdown), code(\stemup)keyindex(stemup), + and code(\stemboth)keyindex(stemboth) identifiers set this + property. + dit(code(tupletDirection))indexcode(tupletDirection) nl() Determines the direction of triplets and other tuplets. Set to @@ -2412,36 +2445,19 @@ description( it adds a bracket; setting bind(to)4 shows both a number and a bracket unconditionally. - dit(code(markScriptPadding))indexcode(markScriptPadding) nl() - Determines the extra space added between the mark and the closest - staff line or note. - - dit(code(markDirection))indexcode(markDirection) nl() - Determines if marks should be printed above or below the staff. - Set to code(\up) to print marks above the staff; set to - code(\down) to print marks below the staff. - - dit(code(articulationScriptPadding))indexcode(articulationScriptPadding) - nl() - Determines the extra space added between articulation marks, such - as staccato, tenuto, trill, up/down bow or fermata, and the - closest staff line or note. - - dit(code(articulationScriptVerticalDirection)) - indexcode(articulationScriptVerticalDirection) nl() - Determines the location of articulation marks. Set to code(\up) - to print marks above the staff; set to code(\down) to print marks - below the staff. This property does not override explicit - directions marked with `code(^)' or `code(_)' in the mudela file. ) subsubsubsect(Staff properties) cindex(properties!Staff) description( - dit(code(createInitdefaultClef))indexcode(createInitdefaultClef) nl() - Specify whether clefs are created on default? (Doesn't seem to - do anything.) + + dit(code(barNonAuto))indexcode(barNonAuto) nl() + If set bind(to)1 then bar lines will not be printed + automatically; they must be explicitly created with code(\bar) + keywords. Unlike with the code(\cadenza) keyword, measures are + still counted. Bar generation will resume according to that + count if this property is set to zero. dit(code(barNumberDirection))indexcode(barNumberDirection) nl() Set to code(\up) or code(\down) to put bar numbers above or below @@ -2459,6 +2475,29 @@ description( Specify the height of the bar lines if it should be different than the staff height. + dit(code(barAtLineStart))indexcode(barAtLineStart) nl() + Set bind(to)1 to produce a bar line after the clef at the start + of each line (but not at the beginning of the music). + + dit(code(clefStyle))indexcode(clefStyle) nl() + Determines how clefs are typeset. If set to code(transparent), + the clefs are not printed at all, if set to + code(fullSizeChanges), clef changes in the middle of a line are + typeset with a full size clef. By default, clef changes are + typeset in smaller size. + + dit(code(createKeyOnClefChange))indexcode(createKeyOnClefChange) nl() + Set to a nonempty string if you want key signatures to be printed + when the clef changes. Set to the empty string if you do not + want key signatures printed. + + dit(code(createInitdefaultClef))indexcode(createInitdefaultClef) nl() + Specify whether clefs are created on default? (Doesn't seem to + do anything.) + + dit(code(defaultClef))indexcode(defaultClef) nl() + Determines the default clef. See code(\clef) keyword. + dit(code(markHangOnClef))indexcode(markHangOnClef) nl() Set bind(to)1 to cause marks to appear by clefs instead of by bar lines. Deprecated, use is not recommended. @@ -2489,33 +2528,10 @@ description( Extra space in points to be added after the clef, time signature and key signature on the staff. Deprecated, do not use. - dit(code(barAtLineStart))indexcode(barAtLineStart) nl() - Set bind(to)1 to produce a bar line after the clef at the start - of each line (but not at the beginning of the music). - dit(code(noVoltaBraces))indexcode(noVoltaBraces) nl() Set to true to suppress the printing of brackets over alternate endings specified by the command code(\alternative). - dit(code(voltaSpannerDuration))indexcode(voltaSpannerDuration) nl() - Set to an integer to control the size of the brackets printed by - code(\alternative). The integer specifies the number of whole - notes duration to use for the brackets. It is rounded to the - nearest measure. This can be used to shrink the length of - brackets in the situation where one alternative is very large. - It may have odd effects if the specified duration is longer than - the music given in an code(\alternative). - - dit(code(barNonAuto))indexcode(barNonAuto) nl() - If set bind(to)1 then bar lines will not be printed - automatically; they must be explicitly created with code(\bar) - keywords. Unlike with the code(\cadenza) keyword, measures are - still counted. Bar generation will resume according to that - count if this property is set to zero. - - dit(code(defaultClef))indexcode(defaultClef) nl() - Determines the default clef. See code(\clef) keyword. - dit(code(numberOfStaffLines))indexcode(numberOfStaffLines) nl() Sets the number of lines that the staff has. @@ -2526,6 +2542,15 @@ description( Sets the default type of bar line. See bind(Section)ref(barlines) for a list of available bar types. + dit(code(instrument), code(instr)) + indexcode(instrument)indexcode(instr) nl() + If code(Staff_margin_engraver)cindex(Staff_margin_engraver) is + added to the Staff translator, then the code(instrument) property + is used to label the first line of the staff and the code(instr) + property is used to label subsequent lines. If the + code(midiInstrument) property is not set, then code(instrument) + is used to determine the instrument for MIDI output. + dit(code(keyOctaviation))indexcode(keyOctaviation) nl() If set bind(to)1, then keys are the same in all octaves. If set bind(to)0 then the key signature for different octaves can be @@ -2538,20 +2563,6 @@ description( The default value bind(is)1. Can be set to zero with code(\specialkey) or reset bind(to)1 with code(\normalkey). - dit(code(instrument), code(instr)) - indexcode(instrument)indexcode(instr) nl() - If code(Staff_margin_engraver)cindex(Staff_margin_engraver) is - added to the Staff translator, then the code(instrument) property - is used to label the first line of the staff and the code(instr) - property is used to label subsequent lines. If the - code(midiInstrument) property is not set, then code(instrument) - is used to determine the instrument for MIDI output. - - dit(code(createKeyOnClefChange))indexcode(createKeyOnClefChange) nl() - Set to a nonempty string if you want key signatures to be printed - when the clef changes. Set to the empty string if you do not - want key signatures printed. - dit(code(timeSignatureStyle))indexcode(timeSignatureStyle) nl() Changes the default two-digit layout for time signatures. The following values are recognized: @@ -2614,12 +2625,14 @@ description( } ) - dit(code(clefStyle))indexcode(clefStyle) nl() - Determines how clefs are typeset. If set to code(transparent), - the clefs are not printed at all, if set to - code(fullSizeChanges), clef changes in the middle of a line are - typeset with a full size clef. By default, clef changes are - typeset in smaller size. + dit(code(voltaSpannerDuration))indexcode(voltaSpannerDuration) nl() + Set to an integer to control the size of the brackets printed by + code(\alternative). The integer specifies the number of whole + notes duration to use for the brackets. It is rounded to the + nearest measure. This can be used to shrink the length of + brackets in the situation where one alternative is very large. + It may have odd effects if the specified duration is longer than + the music given in an code(\alternative). ) subsubsect(GrandStaff properties) diff --git a/INSTALL.txt b/INSTALL.txt index 59eace9b6f..7968bdb523 100644 --- a/INSTALL.txt +++ b/INSTALL.txt @@ -303,11 +303,23 @@ Precompiled i386 RedHat RPMS are available from ftp://fresh- meat.net/pub/rpms/lilypond/ and http://linux.umbc.edu/soft- ware/lilypond/rpms/. +For compilation on a RedHat system you need these packages, +in addition to the thoes needed for running: + +o glibc-devel + +o libstdc++-devel + +o guile-devel + +o flex + +o bison + 10: DEBIAN GNU/LINUX A Debian package is also available; contact Anthony Fok foka@debian.org. The build scripts are in the subdirectory - debian/. 11: WINDOWS NT/95 diff --git a/NEWS b/NEWS index ec51328dcd..46cf0a67b5 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,3 @@ - - WHAT'S NEW? * Large cleanups, enhanced design and GUILE integration for smaller diff --git a/PATCHES.txt b/PATCHES.txt index f0601c00d7..8c30d96ee8 100644 --- a/PATCHES.txt +++ b/PATCHES.txt @@ -17,7 +17,7 @@ tributing a change normally goes like this: o make your fix/add your code o Add changes to NEWS, and add yourself to Documenta- - tion/AUTHORS.yo + tion/topdocs/AUTHORS.yo o generate a patch, diff --git a/TODO b/TODO index dcef3fa46f..ae058662c9 100644 --- a/TODO +++ b/TODO @@ -9,16 +9,14 @@ Most of the items are marked in the code as well Grep -i for TODO, FIXME and ugh/ugr/urg. .* TODO -. * don't take Dimension_cache::offset in Dimension_cache::extent +. * use Rhythmic_head::position_i () for all Staff_referenced . * Break_req handling is silly (break_forbid () + \break fucks up.) -. * redo all --help messages. +. * script engraver + . * HaraKiriStaffContext removes bar lines and doesn't remove staff margin text on removed staff lines. . * Mondrup: -- I would like to avoid that ties across line breaks run _through_ the -clef on the new line - - I would like the possibility of forcing clef- and key- changes to be printed _after_ the new bar line @@ -43,19 +41,9 @@ the mensural music notation. bar line fully drawn across the staves and after that keep to the ChoirStaff bar line types in the rest of the scores -- I would like to be able to define invisible melismatic slurs in order -to avoid printing slurs conflicting with an original ms of printing. Of -course I can achieve that by just inserting empty syllables in the -lyrics. But this facility implemented in the MusiXTeX preprocessor M-tx -is nice so ... - -- if I explicitly beam notes in a staff with auto beaming disabled I +. * autoBeamMelisma: if I explicitly beam notes in a staff with auto beaming disabled I would like to have these beams also to be melismatic. -- do I need to get warnings on 'No one to print a repeat brace' when I -issue a '\repeat fold 2 \alternative' statement with an empty leading -text item in a \lyrics context in order to achieve multiple lyrics lines -in a _section_ of a score ? . * make all Feta (including dynamics) available to the user in textual scripts. Examples: "D.S. al \coda", "\mf espress.". @@ -84,7 +72,6 @@ abc2ly, midi2ly? . * Key_engraver, Local_key_item . * Think of comprehensive solution for "if (grace_b == self_grace_b_)" . * String[String.length] doesn't trap. -. * y dimension units: staffspace vs. Point . * Beam . * Stem . * Rhythmic_column and interaction stem/rhythmic_column/note_head/dots. @@ -129,9 +116,6 @@ vertically between the two staves): .* STUFF . * We need feta-din*.mf files for more sizes than 10. . * -- It's clumsy to have to set Staff.instr = " " to get instrument name - on only the first line. - - The syntax for chords looks clumsy with two different meanings of '-' and different syntax for separating modifiers from the tonic and from other modifiers. Why not use for example ':' between diff --git a/VERSION b/VERSION index d05f557d1e..9747bff5a3 100644 --- a/VERSION +++ b/VERSION @@ -1,7 +1,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=2 -PATCH_LEVEL=3 +PATCH_LEVEL=4 MY_PATCH_LEVEL= # use the above to send patches: MY_PATCH_LEVEL is always empty for a diff --git a/aclocal.m4 b/aclocal.m4 index 5d6b023d40..7417b337a5 100644 --- a/aclocal.m4 +++ b/aclocal.m4 @@ -152,7 +152,7 @@ AC_DEFUN(AC_STEPMAKE_GXX, [ # ugh autoconf # urg, egcs: how to check for egcs >= 1.1? changequote(<<, >>)dnl - if $CXX --version | grep '2\.8' > /dev/null || + if $CXX --version | egrep '2\.8|2\.9' > /dev/null || $CXX --version | grep 'egcs' > /dev/null changequote([, ])dnl then @@ -175,14 +175,7 @@ AC_DEFUN(AC_STEPMAKE_GUILE, [ AC_DEFINE(HAVE_LIBGUILE)], , $GUILE_LDFLAGS dnl ) if test "$ac_cv_lib_guile_gh_scm2doubles" != yes ; then - GUILE_LDFLAGS="`echo $GUILE_LDFLAGS | sed -e 's/-lreadline//g'`" - AC_CHECK_LIB(guile, gh_doubles2scm, - [LIBS="`echo $GUILE_LDFLAGS | sed -e 's/-L[[/-_a-zA-Z0-9]]\+ //g'` $LIBS" - AC_DEFINE(HAVE_LIBGUILE)], , $GUILE_LDFLAGS dnl - ) - if test "$ac_cv_lib_guile_gh_doubles2scm" != yes ; then - AC_STEPMAKE_WARN(You should install guile 1.3 or newer) - fi + AC_STEPMAKE_WARN(You should install guile 1.3 or newer) fi ]) @@ -1091,37 +1084,3 @@ main () AC_SUBST(GTK___CFLAGS) AC_SUBST(GTK___LIBS) ]) - -dnl GUILE_FLAGS --- set flags for compiling and linking with Guile -dnl -dnl This macro runs the `guile-config' script, installed with Guile, -dnl to find out where Guile's header files and libraries are -dnl installed. It sets two variables, marked for substitution, as -dnl by AC_SUBST. -dnl -dnl GUILE_CFLAGS --- flags to pass to a C or C++ compiler to build -dnl code that uses Guile header files. This is almost -dnl always just a -I flag. -dnl -dnl GUILE_LDFLAGS --- flags to pass to the linker to link a -dnl program against Guile. This includes `-lguile' for -dnl the Guile library itself, any libraries that Guile -dnl itself requires (like -lqthreads), and so on. It may -dnl also include a -L flag to tell the compiler where to -dnl find the libraries. - -AC_DEFUN([GUILE_FLAGS],[ -## The GUILE_FLAGS macro. - ## First, let's just see if we can find Guile at all. - AC_MSG_CHECKING(for Guile) - guile-config link > /dev/null || { - echo "configure: cannot find guile-config; is Guile installed?" 1>&2 - exit 1 - } - GUILE_CFLAGS="`guile-config compile`" - GUILE_LDFLAGS="`guile-config link`" - AC_SUBST(GUILE_CFLAGS) - AC_SUBST(GUILE_LDFLAGS) - AC_MSG_RESULT(yes) -]) - diff --git a/buildscripts/mf-to-table.py b/buildscripts/mf-to-table.py index efbcb7e661..4722fea6cd 100644 --- a/buildscripts/mf-to-table.py +++ b/buildscripts/mf-to-table.py @@ -115,7 +115,7 @@ class Log_reader: label = tags[0] name = tags[1] afm = self.afmfile - print tags + if tags[0] == 'font': self.texfile.write("% name\n") @@ -138,7 +138,7 @@ class Log_reader: xdim = tags[3:5] ydim = tags[5:7] - self.texfile.write("\\fetdef\\%s{%s}\n" % (texstr, code)) + self.texfile.write("\\def\\feta%s{\\char%s}\n" % (texstr, code)) afm.def_symbol (code, id, texstr, xdim, ydim) else: raise 'unknown label: ' + label diff --git a/buildscripts/set-lily.sh b/buildscripts/set-lily.sh index 65b4f7b4f3..1c3e20a79b 100755 --- a/buildscripts/set-lily.sh +++ b/buildscripts/set-lily.sh @@ -41,9 +41,7 @@ echo testvar LILYPONDPREFIX lily $LILYPOND_SOURCEDIR testvar MFINPUTS lily .:$MFINPUTS:$LILYPOND_SOURCEDIR/mf testvar TEXINPUTS lily .:$TEXINPUTS:$LILYPOND_SOURCEDIR/ps:$LILYPOND_SOURCEDIR/tex -testvar GS_LIB lily $HOME/usr/src/lilypond/ps testvar GS_FONTPATH lily $HOME/usr/src/lilypond/mf/out -testvar GUILE_LOAD_PATH lily $HOME/usr/src/lilypond/init testvar MAILADDRESS "@" $USER@`hostname` echo @@ -94,5 +92,5 @@ echo echo Starting configuration echo -(set -x; TEX_TFMDIR=$TEX_TFMDIR ./configure --prefix=$prefix --enable-debugging --enable-printing --enable-checking --disable-optimise --enable-guile) +(set -x; TEX_TFMDIR=$TEX_TFMDIR ./configure --prefix=$prefix --enable-debugging --enable-printing --enable-checking --disable-optimise) diff --git a/configure b/configure index 9681a2a71b..3ebe0d3ded 100755 --- a/configure +++ b/configure @@ -53,10 +53,6 @@ fi # Derek Quinn Wyatt 98-08-21 (adapted from Jan Nieuwenhuizen's code) - - - - # Guess values for system-dependent variables and create Makefiles. # Generated automatically using autoconf version 2.13 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. @@ -623,7 +619,7 @@ fi stepmake=`echo ${stepmake} | sed "s!\\\${prefix}!$presome!"` echo $ac_n "checking Package""... $ac_c" 1>&6 -echo "configure:627: checking Package" >&5 +echo "configure:623: checking Package" >&5 if test "x$PACKAGE" = "xSTEPMAKE"; then echo "$ac_t""Stepmake package!" 1>&6 (cd stepmake; rm -f stepmake; ln -s ../stepmake .) @@ -651,7 +647,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. else echo "$ac_t""$PACKAGE" 1>&6 echo $ac_n "checking for stepmake""... $ac_c" 1>&6 -echo "configure:655: checking for stepmake" >&5 +echo "configure:651: checking for stepmake" >&5 # Check for installed stepmake if test -d $stepmake; then echo "$ac_t""$stepmake" 1>&6 @@ -774,7 +770,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:778: checking host system type" >&5 +echo "configure:774: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -799,7 +795,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:803: checking for $ac_word" >&5 +echo "configure:799: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MAKE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -834,7 +830,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:838: checking for $ac_word" >&5 +echo "configure:834: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_FIND'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -871,7 +867,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:875: checking for $ac_word" >&5 +echo "configure:871: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_TAR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -906,7 +902,7 @@ test -n "$TAR" || TAR="error" # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:910: checking for $ac_word" >&5 +echo "configure:906: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -946,7 +942,7 @@ fi # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:950: checking for $ac_word" >&5 +echo "configure:946: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_SHELL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -983,7 +979,7 @@ fi # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:987: checking for $ac_word" >&5 +echo "configure:983: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1024,7 +1020,7 @@ fi # Extract the first word of "${PYTHON:-python}", so it can be a program name with args. set dummy ${PYTHON:-python}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1028: checking for $ac_word" >&5 +echo "configure:1024: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_PYTHON'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1257,7 +1253,7 @@ EOF # Extract the first word of "gcc", so it can be a program name with args. set dummy gcc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1261: checking for $ac_word" >&5 +echo "configure:1257: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1287,7 +1283,7 @@ if test -z "$CC"; then # Extract the first word of "cc", so it can be a program name with args. set dummy cc; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1291: checking for $ac_word" >&5 +echo "configure:1287: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1338,7 +1334,7 @@ fi # Extract the first word of "cl", so it can be a program name with args. set dummy cl; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1342: checking for $ac_word" >&5 +echo "configure:1338: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1370,7 +1366,7 @@ fi fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1374: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 +echo "configure:1370: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5 ac_ext=c # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -1381,12 +1377,12 @@ cross_compiling=$ac_cv_prog_cc_cross cat > conftest.$ac_ext << EOF -#line 1385 "configure" +#line 1381 "configure" #include "confdefs.h" main(){return(0);} EOF -if { (eval echo configure:1390: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1386: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cc_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -1412,12 +1408,12 @@ if test $ac_cv_prog_cc_works = no; then { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:1416: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1412: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6 cross_compiling=$ac_cv_prog_cc_cross echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6 -echo "configure:1421: checking whether we are using GNU C" >&5 +echo "configure:1417: checking whether we are using GNU C" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1426,7 +1422,7 @@ else yes; #endif EOF -if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1430: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1426: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gcc=yes else ac_cv_prog_gcc=no @@ -1445,7 +1441,7 @@ ac_test_CFLAGS="${CFLAGS+set}" ac_save_CFLAGS="$CFLAGS" CFLAGS= echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6 -echo "configure:1449: checking whether ${CC-cc} accepts -g" >&5 +echo "configure:1445: checking whether ${CC-cc} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1508,7 +1504,7 @@ EOF fi echo $ac_n "checking how to run the C++ preprocessor""... $ac_c" 1>&6 -echo "configure:1512: checking how to run the C++ preprocessor" >&5 +echo "configure:1508: checking how to run the C++ preprocessor" >&5 if test -z "$CXXCPP"; then if eval "test \"`echo '$''{'ac_cv_prog_CXXCPP'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -1521,12 +1517,12 @@ ac_link='${CXX-g++} -o conftest${ac_exeext} $CXXFLAGS $CPPFLAGS $LDFLAGS conftes cross_compiling=$ac_cv_prog_cxx_cross CXXCPP="${CXX-g++} -E" cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1530: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1526: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then : @@ -1563,7 +1559,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1567: checking for $ac_word" >&5 +echo "configure:1563: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_CXX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1595,7 +1591,7 @@ test -n "$CXX" || CXX="gcc" echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works""... $ac_c" 1>&6 -echo "configure:1599: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 +echo "configure:1595: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) works" >&5 ac_ext=C # CXXFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options. @@ -1606,12 +1602,12 @@ cross_compiling=$ac_cv_prog_cxx_cross cat > conftest.$ac_ext << EOF -#line 1610 "configure" +#line 1606 "configure" #include "confdefs.h" int main(){return(0);} EOF -if { (eval echo configure:1615: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1611: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ac_cv_prog_cxx_works=yes # If we can't run a trivial program, we are probably using a cross compiler. if (./conftest; exit) 2>/dev/null; then @@ -1637,12 +1633,12 @@ if test $ac_cv_prog_cxx_works = no; then { echo "configure: error: installation or configuration problem: C++ compiler cannot create executables." 1>&2; exit 1; } fi echo $ac_n "checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6 -echo "configure:1641: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 +echo "configure:1637: checking whether the C++ compiler ($CXX $CXXFLAGS $LDFLAGS) is a cross-compiler" >&5 echo "$ac_t""$ac_cv_prog_cxx_cross" 1>&6 cross_compiling=$ac_cv_prog_cxx_cross echo $ac_n "checking whether we are using GNU C++""... $ac_c" 1>&6 -echo "configure:1646: checking whether we are using GNU C++" >&5 +echo "configure:1642: checking whether we are using GNU C++" >&5 if eval "test \"`echo '$''{'ac_cv_prog_gxx'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1651,7 +1647,7 @@ else yes; #endif EOF -if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1655: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then +if { ac_try='${CXX-g++} -E conftest.C'; { (eval echo configure:1651: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then ac_cv_prog_gxx=yes else ac_cv_prog_gxx=no @@ -1670,7 +1666,7 @@ ac_test_CXXFLAGS="${CXXFLAGS+set}" ac_save_CXXFLAGS="$CXXFLAGS" CXXFLAGS= echo $ac_n "checking whether ${CXX-g++} accepts -g""... $ac_c" 1>&6 -echo "configure:1674: checking whether ${CXX-g++} accepts -g" >&5 +echo "configure:1670: checking whether ${CXX-g++} accepts -g" >&5 if eval "test \"`echo '$''{'ac_cv_prog_cxx_g'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1704,17 +1700,17 @@ fi ac_safe=`echo "FlexLexer.h" | sed 'y%./+-%__p_%'` echo $ac_n "checking for FlexLexer.h""... $ac_c" 1>&6 -echo "configure:1708: checking for FlexLexer.h" >&5 +echo "configure:1704: checking for FlexLexer.h" >&5 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < EOF ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out" -{ (eval echo configure:1718: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } +{ (eval echo configure:1714: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; } ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"` if test -z "$ac_err"; then rm -rf conftest* @@ -1752,7 +1748,7 @@ fi # ugh autoconf # urg, egcs: how to check for egcs >= 1.1? - if $CXX --version | grep '2\.8' > /dev/null || + if $CXX --version | egrep '2\.8|2\.9' > /dev/null || $CXX --version | grep 'egcs' > /dev/null then true @@ -1765,12 +1761,12 @@ fi echo $ac_n "checking whether explicit instantiation is needed""... $ac_c" 1>&6 -echo "configure:1769: checking whether explicit instantiation is needed" >&5 +echo "configure:1765: checking whether explicit instantiation is needed" >&5 if eval "test \"`echo '$''{'lily_cv_need_explicit_instantiation'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext < struct foo { static int baz; }; @@ -1780,7 +1776,7 @@ int main() { return foo::baz; ; return 0; } EOF -if { (eval echo configure:1784: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:1780: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* lily_cv_need_explicit_instantiation=no else @@ -1807,7 +1803,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1811: checking for $ac_word" >&5 +echo "configure:1807: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1850,7 +1846,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1854: checking for $ac_word" >&5 +echo "configure:1850: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_BISON'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1885,7 +1881,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1889: checking for $ac_word" >&5 +echo "configure:1885: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_FLEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1953,7 +1949,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1957: checking for $ac_word" >&5 +echo "configure:1953: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_AR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1986,7 +1982,7 @@ test -n "$AR" || AR="error" # Extract the first word of "ranlib", so it can be a program name with args. set dummy ranlib; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1990: checking for $ac_word" >&5 +echo "configure:1986: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2042,7 +2038,7 @@ fi echo $ac_n "checking language""... $ac_c" 1>&6 -echo "configure:2046: checking language" >&5 +echo "configure:2042: checking language" >&5 case "$language" in En* | en* | Am* | am* | US* | us*) lang=English;; @@ -2078,7 +2074,7 @@ EOF echo $ac_n "checking for gettext in -lintl""... $ac_c" 1>&6 -echo "configure:2082: checking for gettext in -lintl" >&5 +echo "configure:2078: checking for gettext in -lintl" >&5 ac_lib_var=`echo intl'_'gettext | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2086,7 +2082,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lintl $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2100: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2130,12 +2126,12 @@ fi for ac_func in gettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:2134: checking for $ac_func" >&5 +echo "configure:2130: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2161: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -2193,7 +2189,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2197: checking for $ac_word" >&5 +echo "configure:2193: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MSGFMT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2224,7 +2220,7 @@ done test -n "$MSGFMT" || MSGFMT="\$(SHELL) \$(step-bindir)/fake-msgfmt.sh " echo $ac_n "checking whether msgfmt accepts -o""... $ac_c" 1>&6 -echo "configure:2228: checking whether msgfmt accepts -o" >&5 +echo "configure:2224: checking whether msgfmt accepts -o" >&5 msgfmt_output="`msgfmt -o bla 2>&1 | grep usage`" if test "$msgfmt_output" = ""; then echo "$ac_t""yes" 1>&6 @@ -2252,7 +2248,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2256: checking for $ac_word" >&5 +echo "configure:2252: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_METAFONT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2288,7 +2284,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2292: checking for $ac_word" >&5 +echo "configure:2288: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MFONT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2326,7 +2322,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2330: checking for $ac_word" >&5 +echo "configure:2326: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_METAPOST'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2362,7 +2358,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2366: checking for $ac_word" >&5 +echo "configure:2362: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MPOST'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2401,7 +2397,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2405: checking for $ac_word" >&5 +echo "configure:2401: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INIMETAFONT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2437,7 +2433,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2441: checking for $ac_word" >&5 +echo "configure:2437: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INIMFONT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2475,7 +2471,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2479: checking for $ac_word" >&5 +echo "configure:2475: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INIMETAPOST'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2511,7 +2507,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2515: checking for $ac_word" >&5 +echo "configure:2511: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_INIMPOST'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2545,7 +2541,7 @@ test -n "$INIMPOST" || INIMPOST="-echo no inimp or inimpost" fi echo $ac_n "checking for working metafont mode""... $ac_c" 1>&6 -echo "configure:2549: checking for working metafont mode" >&5 +echo "configure:2545: checking for working metafont mode" >&5 modelist='ljfour lj4 lj3 lj2 ljet laserjet' for MFMODE in $modelist; do $METAFONT "\mode:=$MFMODE; mode_setup; end." > /dev/null 2>&1 @@ -2577,7 +2573,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2581: checking for $ac_word" >&5 +echo "configure:2577: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_KPSEWHICH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2608,7 +2604,7 @@ done test -n "$KPSEWHICH" || KPSEWHICH="no" echo $ac_n "checking for TeX TFM directory""... $ac_c" 1>&6 -echo "configure:2612: checking for TeX TFM directory" >&5 +echo "configure:2608: checking for TeX TFM directory" >&5 if test "x$TFMDIR" = xauto ; then if test "x$TEX_TFMDIR" = "x" ; then if test "x$KPSEWHICH" != "xno" ; then @@ -2633,7 +2629,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2637: checking for $ac_word" >&5 +echo "configure:2633: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIPROFF'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2668,7 +2664,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2672: checking for $ac_word" >&5 +echo "configure:2668: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YODL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2703,7 +2699,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2707: checking for $ac_word" >&5 +echo "configure:2703: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YODL2HTML'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2738,7 +2734,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2742: checking for $ac_word" >&5 +echo "configure:2738: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YODL2LATEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2772,7 +2768,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2776: checking for $ac_word" >&5 +echo "configure:2772: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YODL2MAN'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2807,7 +2803,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2811: checking for $ac_word" >&5 +echo "configure:2807: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YODL2MSLESS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2842,7 +2838,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2846: checking for $ac_word" >&5 +echo "configure:2842: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YODL2TEXINFO'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2877,7 +2873,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:2881: checking for $ac_word" >&5 +echo "configure:2877: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YODL2TXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -2938,7 +2934,7 @@ test -n "$YODL2TXT" || YODL2TXT="-echo no yodl" ## The GUILE_FLAGS macro. ## First, let's just see if we can find Guile at all. echo $ac_n "checking for Guile""... $ac_c" 1>&6 -echo "configure:2942: checking for Guile" >&5 +echo "configure:2938: checking for Guile" >&5 guile-config link > /dev/null || { echo "configure: cannot find guile-config; is Guile installed?" 1>&2 exit 1 @@ -2950,7 +2946,7 @@ echo "configure:2942: checking for Guile" >&5 echo "$ac_t""yes" 1>&6 echo $ac_n "checking for gh_scm2doubles in -lguile""... $ac_c" 1>&6 -echo "configure:2954: checking for gh_scm2doubles in -lguile" >&5 +echo "configure:2950: checking for gh_scm2doubles in -lguile" >&5 ac_lib_var=`echo guile'_'gh_scm2doubles | sed 'y%./+-%__p_%'` if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 @@ -2958,7 +2954,7 @@ else ac_save_LIBS="$LIBS" LIBS="-lguile $GUILE_LDFLAGS $LIBS" cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:2972: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_lib_$ac_lib_var=yes" else @@ -2997,66 +2993,16 @@ else fi if test "$ac_cv_lib_guile_gh_scm2doubles" != yes ; then - GUILE_LDFLAGS="`echo $GUILE_LDFLAGS | sed -e 's/-lreadline//g'`" - echo $ac_n "checking for gh_doubles2scm in -lguile""... $ac_c" 1>&6 -echo "configure:3003: checking for gh_doubles2scm in -lguile" >&5 -ac_lib_var=`echo guile'_'gh_doubles2scm | sed 'y%./+-%__p_%'` -if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then - echo $ac_n "(cached) $ac_c" 1>&6 -else - ac_save_LIBS="$LIBS" -LIBS="-lguile $GUILE_LDFLAGS $LIBS" -cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=yes" -else - echo "configure: failed program was:" >&5 - cat conftest.$ac_ext >&5 - rm -rf conftest* - eval "ac_cv_lib_$ac_lib_var=no" -fi -rm -f conftest* -LIBS="$ac_save_LIBS" - -fi -if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then - echo "$ac_t""yes" 1>&6 - LIBS="`echo $GUILE_LDFLAGS | sed -e 's/-L[/-_a-zA-Z0-9]\+ //g'` $LIBS" - cat >> confdefs.h <<\EOF -#define HAVE_LIBGUILE 1 -EOF - -else - echo "$ac_t""no" 1>&6 -fi - - if test "$ac_cv_lib_guile_gh_doubles2scm" != yes ; then - + echo "configure: warning: You should install guile 1.3 or newer" 1>&2 warn_b=yes - fi fi echo $ac_n "checking for 8-bit clean memcmp""... $ac_c" 1>&6 -echo "configure:3060: checking for 8-bit clean memcmp" >&5 +echo "configure:3006: checking for 8-bit clean memcmp" >&5 if eval "test \"`echo '$''{'ac_cv_func_memcmp_clean'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3064,7 +3010,7 @@ else ac_cv_func_memcmp_clean=no else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null +if { (eval echo configure:3027: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null then ac_cv_func_memcmp_clean=yes else @@ -3095,12 +3041,12 @@ echo "$ac_t""$ac_cv_func_memcmp_clean" 1>&6 test $ac_cv_func_memcmp_clean = no && LIBOBJS="$LIBOBJS memcmp.${ac_objext}" echo $ac_n "checking for vprintf""... $ac_c" 1>&6 -echo "configure:3099: checking for vprintf" >&5 +echo "configure:3045: checking for vprintf" >&5 if eval "test \"`echo '$''{'ac_cv_func_vprintf'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3076: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_vprintf=yes" else @@ -3150,12 +3096,12 @@ fi if test "$ac_cv_func_vprintf" != yes; then echo $ac_n "checking for _doprnt""... $ac_c" 1>&6 -echo "configure:3154: checking for _doprnt" >&5 +echo "configure:3100: checking for _doprnt" >&5 if eval "test \"`echo '$''{'ac_cv_func__doprnt'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3131: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func__doprnt=yes" else @@ -3208,12 +3154,12 @@ fi for ac_func in memmem snprintf vsnprintf gettext do echo $ac_n "checking for $ac_func""... $ac_c" 1>&6 -echo "configure:3212: checking for $ac_func" >&5 +echo "configure:3158: checking for $ac_func" >&5 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else cat > conftest.$ac_ext <&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then +if { (eval echo configure:3189: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then rm -rf conftest* eval "ac_cv_func_$ac_func=yes" else @@ -3278,7 +3224,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:3282: checking for $ac_word" >&5 +echo "configure:3228: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -3515,6 +3461,8 @@ s%@YODL2MSLESS@%$YODL2MSLESS%g s%@YODL2TEXINFO@%$YODL2TEXINFO%g s%@YODL2TXT@%$YODL2TXT%g s%@YODL2LESS_DIR@%$YODL2LESS_DIR%g +s%@GUILE_CFLAGS@%$GUILE_CFLAGS%g +s%@GUILE_LDFLAGS@%$GUILE_LDFLAGS%g s%@LIBOBJS@%$LIBOBJS%g s%@MAKEINFO@%$MAKEINFO%g diff --git a/flower/file-path.cc b/flower/file-path.cc index e6408a1d15..c9bb3462d2 100644 --- a/flower/file-path.cc +++ b/flower/file-path.cc @@ -4,7 +4,7 @@ #include -#include "config.hh" +#include "config.h" #include "file-path.hh" #include "flower-debug.hh" diff --git a/flower/getopt-long.cc b/flower/getopt-long.cc index c63f04e353..6945a6a5b9 100644 --- a/flower/getopt-long.cc +++ b/flower/getopt-long.cc @@ -7,7 +7,7 @@ #include #include #include -#include "config.hh" +#include "config.h" #include "getopt-long.hh" #include "international.hh" #include "string-convert.hh" diff --git a/flower/include/libc-extension.hh b/flower/include/libc-extension.hh index ce654a799c..56a7e7c13e 100644 --- a/flower/include/libc-extension.hh +++ b/flower/include/libc-extension.hh @@ -11,7 +11,7 @@ #define LIBC_EXTENSION_HH #include "fproto.hh" -#include "config.hh" +#include "config.h" #include #include diff --git a/flower/international.cc b/flower/international.cc index 9f8003961a..f677ef72b3 100644 --- a/flower/international.cc +++ b/flower/international.cc @@ -8,7 +8,7 @@ */ #include -#include "config.hh" +#include "config.h" #include "string-convert.hh" #include "international.hh" diff --git a/input/test/xaxisscript.ly b/input/test/xaxisscript.ly new file mode 100644 index 0000000000..59fb42e497 --- /dev/null +++ b/input/test/xaxisscript.ly @@ -0,0 +1,18 @@ + +\score { +\notes {\property Thread.scriptHorizontal = "1" + c4-4 + } + \paper { \translator { + \VoiceContext + \remove Script_engraver; + \remove Text_engraver; + + } + \translator { + \ThreadContext + \consists Script_engraver; + \consists Text_engraver; + } + } +} diff --git a/lib/binary-source-file.cc b/lib/binary-source-file.cc index fbece6c65e..c114b81648 100644 --- a/lib/binary-source-file.cc +++ b/lib/binary-source-file.cc @@ -17,7 +17,7 @@ #include "string-convert.hh" Binary_source_file::Binary_source_file (String& filename_str) - : Source_file (filename_str) + : Source_file (filename_str) { } @@ -28,36 +28,36 @@ Binary_source_file::~Binary_source_file () String Binary_source_file::error_str (char const* pos_ch_C) const { - assert (this); - if (!in_b (pos_ch_C)) - return ""; - - char const* begin_ch_C = pos_ch_C - 8 >? ch_C (); - char const* end_ch_C = pos_ch_C + 7 ? ch_C (); + char const* end_ch_C = pos_ch_C + 7 elems; for (int i=0; i < elem_l_arr_.size(); i++) { - Interval y = elem_l_arr_[i]->extent(axis ()); + Interval y = elem_l_arr_[i]->extent(axis ()) + elem_l_arr_[i]->relative_coordinate (this, axis ()); if (!y.empty_b()) { - Score_element *e =dynamic_cast(elem_l_arr_[i]); // todo: fucks up if item both in Halign & Valign. @@ -229,10 +228,11 @@ Align_element::get_elt_by_priority (int p) const } int -Align_element::get_priority (Score_element* e) const +Align_element::get_priority (Score_element const * e) const { - if ( priority_i_hash_.elem_b (e)) - return priority_i_hash_[e]; + Score_element * nonconst = (Score_element*) e; + if ( priority_i_hash_.elem_b (nonconst)) + return priority_i_hash_[nonconst]; else - return elem_l_arr_.find_i (e); + return elem_l_arr_.find_i (nonconst); } diff --git a/lily/axis-align-spanner.cc b/lily/axis-align-spanner.cc index 4aaf48e2ab..4eacf9fe8b 100644 --- a/lily/axis-align-spanner.cc +++ b/lily/axis-align-spanner.cc @@ -1,5 +1,5 @@ /* - axis-align-spanner.cc -- implement + axis-align-spanner.cc -- implement Axis_align_spanner source file of the GNU LilyPond music typesetter diff --git a/lily/axis-group-element.cc b/lily/axis-group-element.cc index 2d303f3538..1fa40edda0 100644 --- a/lily/axis-group-element.cc +++ b/lily/axis-group-element.cc @@ -63,8 +63,8 @@ void Axis_group_element::set_axes (Axis a1, Axis a2) { Graphical_axis_group::set_axes (a1,a2); - dim_cache_[X_AXIS]->set_empty ((a1 != X_AXIS && a2 != X_AXIS)); - dim_cache_[Y_AXIS]->set_empty ((a1 != Y_AXIS && a2 != Y_AXIS)); + set_empty (a1 != X_AXIS && a2 != X_AXIS, X_AXIS); + set_empty (a1 != Y_AXIS && a2 != Y_AXIS, Y_AXIS); } @@ -90,8 +90,8 @@ Axis_group_element::extra_extent (Axis a )const urg->purge_extra (); // Yeah yeah, const correctness. for (int i=0; i < extra_elems_.size (); i++) { - Interval ge = extra_elems_[i]->extent (a); - ge += extra_elems_[i]->relative_coordinate (dim_cache_[a], a); + Interval ge = extra_elems_[i]->relative_coordinate (this, a) + + extra_elems_[i]->extent (a); g.unite (ge); } return g; @@ -158,3 +158,10 @@ Axis_group_element::purge_extra () i++; } } + +Interval +Axis_group_element::extent (Axis a) const +{ + return Graphical_element::extent (a); +} + diff --git a/lily/bar-script-engraver.cc b/lily/bar-script-engraver.cc index b13e27500f..53721f811f 100644 --- a/lily/bar-script-engraver.cc +++ b/lily/bar-script-engraver.cc @@ -16,6 +16,8 @@ #include "paper-column.hh" #include "paper-def.hh" #include "dimension-cache.hh" + + Bar_script_engraver::Bar_script_engraver () { axis_ = Y_AXIS; @@ -46,15 +48,13 @@ void Bar_script_engraver::do_acknowledge_element (Item *i) { Axis other_axis = Axis((axis_ + 1)%2); - if (staff_side_p_ && !staff_side_p_->dim_cache_[other_axis]->parent_l_) + if (staff_side_p_ && !staff_side_p_->parent_l(other_axis)) { - staff_side_p_->dim_cache_[other_axis]->parent_l_ - = i->dim_cache_[other_axis]; - staff_side_p_->dim_cache_[axis_]->parent_l_ - = i->dim_cache_[axis_]; + staff_side_p_->set_parent (i,other_axis); + staff_side_p_->set_parent (i,axis_); - if (!text_p_->dim_cache_[other_axis]->parent_l_) - text_p_->dim_cache_[other_axis]->parent_l_ = i->dim_cache_[other_axis]; + if (!text_p_->parent_l(other_axis)) + text_p_->set_parent (i,other_axis); staff_side_p_->add_support (i); /* diff --git a/lily/bar.cc b/lily/bar.cc index aba1466cd9..314f8e01a2 100644 --- a/lily/bar.cc +++ b/lily/bar.cc @@ -83,6 +83,6 @@ Bar::do_pre_processing () } if (type_str_ =="") - dim_cache_[X_AXIS]->set_empty (true); + set_empty (true, X_AXIS); } diff --git a/lily/base-span-bar-engraver.cc b/lily/base-span-bar-engraver.cc index 80dd64a99e..1ffc9be842 100644 --- a/lily/base-span-bar-engraver.cc +++ b/lily/base-span-bar-engraver.cc @@ -51,7 +51,7 @@ Base_span_bar_engraver::acknowledge_element (Score_element_info i) */ { spanbar_p_ = get_span_bar_p(); - spanbar_p_->dim_cache_[Y_AXIS]->parent_l_ = bar_l_arr_[0]->dim_cache_[Y_AXIS]; + spanbar_p_->set_parent (bar_l_arr_[0], Y_AXIS); String visnam = String(name()) + "_visibility"; spanbar_p_->set_elt_property (visibility_lambda_scm_sym, @@ -64,7 +64,7 @@ Base_span_bar_engraver::acknowledge_element (Score_element_info i) } else { - spanbar_p_->dim_cache_[X_AXIS]->parent_l_ = bar_l_arr_[0]->dim_cache_[X_AXIS]; + spanbar_p_->set_parent (bar_l_arr_[0], X_AXIS); } announce_element (Score_element_info (spanbar_p_,0)); diff --git a/lily/beam.cc b/lily/beam.cc index c063ddbd8e..b6b65d681d 100644 --- a/lily/beam.cc +++ b/lily/beam.cc @@ -49,9 +49,14 @@ void Beam::add_stem (Stem*s) { #if 0 + /* + should figure out why this didn't work. + + --hwn. + */ if (!stems_.size ()) { - dim_cache_[Y_AXIS]->parent_l_ = s->dim_cache_[Y_AXIS]; + set_parent (s, Y_AXIS); } #endif stems_.push (s); @@ -100,7 +105,7 @@ Beam::do_brew_molecule_p () const mol_p->add_molecule (sb); } mol_p->translate_axis (x0 - - spanned_drul_[LEFT]->absolute_coordinate (X_AXIS), X_AXIS); + - spanned_drul_[LEFT]->relative_coordinate (0, X_AXIS), X_AXIS); return mol_p; } diff --git a/lily/bezier.cc b/lily/bezier.cc index d72163f24a..1e78566783 100644 --- a/lily/bezier.cc +++ b/lily/bezier.cc @@ -107,7 +107,6 @@ Bezier::print () const cout << "Controls: "; for (int i=0; i < control_.size (); i++) cout << control_[i].str () << ", "; -// cout << "\n"; } } #endif diff --git a/lily/break-align-item.cc b/lily/break-align-item.cc index c3f9b05ca5..a391411db9 100644 --- a/lily/break-align-item.cc +++ b/lily/break-align-item.cc @@ -106,9 +106,9 @@ Break_align_item::do_pre_processing() Real pre_space = elems[0]->extent (X_AXIS)[LEFT] - + elems[0]->relative_coordinate (column_l ()->dim_cache_[X_AXIS], X_AXIS); + + elems[0]->relative_coordinate (column_l (), X_AXIS); Real spring_len = elems.top ()->extent (X_AXIS)[RIGHT] - + elems.top ()->relative_coordinate (column_l ()->dim_cache_[X_AXIS], X_AXIS); + + elems.top ()->relative_coordinate (column_l (), X_AXIS); Real stretch_distance =0.; @@ -172,7 +172,7 @@ Break_align_item::add_breakable_item (Item *it) this is quite ridiculous, but we do this anyway, to ensure that no warning bells about missing Y refpoints go off later on. */ - hg->dim_cache_[Y_AXIS]->parent_l_ = dim_cache_[Y_AXIS]; + hg->set_parent (this, Y_AXIS); hg->set_elt_property (ly_symbol ("origin"), ly_ch_C_to_scm (it->name ())); pscore_l_->typeset_element (hg); diff --git a/lily/breathing-sign.cc b/lily/breathing-sign.cc index 1fc36f8897..4c36f261aa 100644 --- a/lily/breathing-sign.cc +++ b/lily/breathing-sign.cc @@ -22,7 +22,7 @@ TODO: --> see breathing-sign-engraver.cc Breathing_sign::Breathing_sign () { - vertical_position_i_ = UP; + dir_ = UP; set_elt_property (breakable_scm_sym, SCM_BOOL_T); set_elt_property (break_priority_scm_sym, gh_int2scm (-4)); set_elt_property (visibility_lambda_scm_sym, @@ -35,7 +35,7 @@ Breathing_sign::set_vertical_position (Direction updown) assert(updown >= -1 && updown <= +1); if(updown != 0) - vertical_position_i_ = updown; + dir_ = updown; } Molecule* @@ -55,5 +55,5 @@ Breathing_sign::do_post_processing() { Real dl = staff_line_leading_f(); - translate_axis(2.0 * dl * vertical_position_i_, Y_AXIS); + translate_axis(2.0 * dl * dir_, Y_AXIS); } diff --git a/lily/clef-item.cc b/lily/clef-item.cc index aa9c9feb4b..2919255e71 100644 --- a/lily/clef-item.cc +++ b/lily/clef-item.cc @@ -19,7 +19,7 @@ void Clef_item::do_pre_processing() { - dim_cache_[Y_AXIS]->translate (y_position_i_ * staff_line_leading_f () / 2.0); + translate_axis (y_position_i_ * staff_line_leading_f () / 2.0, Y_AXIS); SCM style_sym =get_elt_property (style_scm_sym); String style; if (style_sym != SCM_BOOL_F) @@ -30,7 +30,7 @@ Clef_item::do_pre_processing() if (style == "transparent") { set_elt_property (transparent_scm_sym, SCM_BOOL_T); - dim_cache_[X_AXIS]->set_empty (true); + set_empty (true, X_AXIS); } } @@ -61,8 +61,9 @@ Clef_item::do_add_processing () g->text_str_ = "8"; g->style_str_ = "italic"; - g->dim_cache_[Y_AXIS]->parent_l_ = dim_cache_[Y_AXIS]; - g->dim_cache_[X_AXIS]->parent_l_ = dim_cache_[X_AXIS]; + g->set_parent (this, Y_AXIS); + g->set_parent (this, X_AXIS); + add_dependency (g); // just to be sure. Real r = do_height ()[d] - g->extent (Y_AXIS)[-d]; diff --git a/lily/collision-engraver.cc b/lily/collision-engraver.cc index 2e7bc610db..20bc947c56 100644 --- a/lily/collision-engraver.cc +++ b/lily/collision-engraver.cc @@ -32,7 +32,7 @@ Collision_engraver::acknowledge_element (Score_element_info i) if (Note_column * c = dynamic_cast (i.elem_l_)) { /*should check Y axis? */ - if (c->rest_b () || c->dim_cache_[X_AXIS]->parent_l_) + if (c->rest_b () || c->parent_l(X_AXIS)) return ; note_column_l_arr_.push (c); diff --git a/lily/collision.cc b/lily/collision.cc index ef3b75af4c..6da2f27f8d 100644 --- a/lily/collision.cc +++ b/lily/collision.cc @@ -144,7 +144,7 @@ Collision::automatic_shift () bool merge = downpos == uppos && nu_l->balltype_i_ == nd_l->balltype_i_ - && nu_l->dots_i_ == nd_l->dots_i_; + && nu_l->dots_i () == nd_l->dots_i (); /* notes are close, but can not be merged. Shift diff --git a/lily/command-request.cc b/lily/command-request.cc index 218d283f1b..34b517297a 100644 --- a/lily/command-request.cc +++ b/lily/command-request.cc @@ -19,9 +19,9 @@ Cadenza_req::do_print () const } bool -Cadenza_req::do_equal_b (Request*r) const +Cadenza_req::do_equal_b (Request const *r) const { - Cadenza_req*cad = dynamic_cast (r); + Cadenza_req*cad = dynamic_cast (r); return cad && cad->on_b_ == on_b_; } @@ -33,9 +33,9 @@ Cadenza_req::Cadenza_req (bool b) bool -Bar_req::do_equal_b (Request*r) const +Bar_req::do_equal_b (Request const *r) const { - Bar_req * b = dynamic_cast (r); + Bar_req * b = dynamic_cast (r); return b && type_str_ == b->type_str_; } @@ -58,17 +58,17 @@ Partial_measure_req::Partial_measure_req (Moment m) } bool -Partial_measure_req::do_equal_b (Request* r) const +Partial_measure_req::do_equal_b (Request const* r) const { - Partial_measure_req *p = dynamic_cast (r); + Partial_measure_req *p = dynamic_cast (r); return p&& p->length_mom_ == length_mom_; } bool -Barcheck_req::do_equal_b (Request*r) const +Barcheck_req::do_equal_b (Request const *r) const { - Barcheck_req *b = dynamic_cast (r); + Barcheck_req *b = dynamic_cast (r); return b; } @@ -100,10 +100,10 @@ Time_signature_change_req::do_print () const } bool -Time_signature_change_req::do_equal_b (Request * r) const +Time_signature_change_req::do_equal_b (Request const *r) const { Time_signature_change_req * m - = dynamic_cast (r); + = dynamic_cast (r); return m && m->beats_i_ == beats_i_ && one_beat_i_ == m->one_beat_i_; @@ -130,9 +130,9 @@ Tempo_req::do_print () const bool -Tempo_req::do_equal_b (Request *r) const +Tempo_req::do_equal_b (Request const *r) const { - Tempo_req *t = dynamic_cast (r); + Tempo_req *t = dynamic_cast (r); return t&& t->dur_.length_mom ()== dur_.length_mom () && metronome_i_ == t->metronome_i_; } diff --git a/lily/dimension-cache.cc b/lily/dimension-cache.cc index 12d292efe6..6fc99bde28 100644 --- a/lily/dimension-cache.cc +++ b/lily/dimension-cache.cc @@ -69,36 +69,25 @@ Dimension_cache::translate (Real x) offset_ += x; } - -Real -Dimension_cache::absolute_coordinate () const -{ - Real r = offset_; - for (Dimension_cache * c = parent_l_; - c; c = c->parent_l_) - r += c->offset_; - return r; -} - -/* - what *should* these functions *do* anyway. - */ Real -Dimension_cache::relative_coordinate (Dimension_cache *d) const +Dimension_cache::relative_coordinate (Dimension_cache *refp) const { - Real r =0.0; - if (d == this) // UGH + if (refp == this) return 0.0; - for (Dimension_cache* c = parent_l_; - c != d; - c = c->parent_l_) - r += c->offset_; - return r; + /* + We catch PARENT_L_ == nil case with this, but we crash if we did + not ask for the absolute coordinate (ie. REFP == nil.) + + */ + if (refp == parent_l_) + return offset_; + else + return offset_ + parent_l_->relative_coordinate (refp); } Dimension_cache * -Dimension_cache::common_group (Dimension_cache const* s) const +Dimension_cache::common_refpoint (Dimension_cache const* s) const { Link_array my_groups; for (Dimension_cache const *c = this; c ; c = c->parent_l_) @@ -109,7 +98,7 @@ Dimension_cache::common_group (Dimension_cache const* s) const for (Dimension_cache const * d = s; !common && d; d = d->parent_l_) common = (Dimension_cache const*)my_groups.find_l (d); - return (Dimension_cache*)common; + return (Dimension_cache*) common; } @@ -125,14 +114,6 @@ Dimension_cache::set_empty (bool b) } } -void -Dimension_cache::set_dim (Interval v) -{ - dim_ = v; - valid_b_ = true; -} - - Interval Dimension_cache::get_dim () const { @@ -151,8 +132,6 @@ Dimension_cache::get_dim () const } r=dim_; - if (!r.empty_b()) // float exception on DEC Alpha - r += offset_; return r; } @@ -163,8 +142,3 @@ Dimension_cache::set_callback (Dim_cache_callback c) callback_l_ =c; } -Real -Dimension_cache::offset () const -{ - return offset_; -} diff --git a/lily/dots.cc b/lily/dots.cc index cb68fc2c0c..c125ffcd42 100644 --- a/lily/dots.cc +++ b/lily/dots.cc @@ -30,7 +30,7 @@ Dots::do_post_processing () if (!dots_i_) { set_elt_property (transparent_scm_sym, SCM_BOOL_T); - set_empty (true); + set_empty (true, X_AXIS, Y_AXIS); } } diff --git a/lily/encompass-info.cc b/lily/encompass-info.cc index aa97ad46b5..aebad06539 100644 --- a/lily/encompass-info.cc +++ b/lily/encompass-info.cc @@ -58,8 +58,8 @@ Encompass_info::Encompass_info (Note_column const* note_column, Direction dir, S */ o_[Y_AXIS] += dir * slur_l->paper_l ()->get_var ("slur_y_free"); - Dimension_cache *common = stem_l->common_group (slur_l, Y_AXIS); - Align_element * align = dynamic_cast (common->element_l ()); + Graphical_element *common = stem_l->common_refpoint (slur_l, Y_AXIS); + Align_element * align = dynamic_cast (common); if (align && align->axis() == Y_AXIS) { if (align->threshold_interval_[MIN] != @@ -68,19 +68,18 @@ Encompass_info::Encompass_info (Note_column const* note_column, Direction dir, S interstaff_f_ = align->threshold_interval_[MIN]; - Dimension_cache * slur_refpoint = slur_l->dim_cache_[Y_AXIS]; - Dimension_cache * note_refpoint = note_column->dim_cache_[Y_AXIS]; - - while (slur_refpoint->parent_l_ != common) - slur_refpoint = slur_refpoint->parent_l_; - while (note_refpoint->parent_l_ != common) - note_refpoint = note_refpoint->parent_l_; + Graphical_element const * slur_refpoint = slur_l; + while (slur_refpoint->parent_l (Y_AXIS) != common) + slur_refpoint = slur_refpoint->parent_l (Y_AXIS); + Graphical_element const * note_refpoint = note_column; + while (note_refpoint->parent_l (Y_AXIS) != common) + note_refpoint = note_refpoint->parent_l (Y_AXIS); int slur_prio = - align->get_priority (dynamic_cast (slur_refpoint->element_l ())); + align->get_priority ((Score_element*) dynamic_cast (slur_refpoint)); int stem_prio = - align->get_priority (dynamic_cast (note_refpoint->element_l ())); + align->get_priority ((Score_element*) dynamic_cast (note_refpoint)); /* our staff is lower -> interstaff_f_ *= -1 diff --git a/lily/global-ctor.cc b/lily/global-ctor.cc index 562bd6131f..e8838acf48 100644 --- a/lily/global-ctor.cc +++ b/lily/global-ctor.cc @@ -1,5 +1,5 @@ /* - global-ctor.cc -- implement + global-ctor.cc -- implement global constructors source file of the GNU LilyPond music typesetter diff --git a/lily/global-translator.cc b/lily/global-translator.cc index d38f7bd8c6..aa7178f079 100644 --- a/lily/global-translator.cc +++ b/lily/global-translator.cc @@ -1,5 +1,5 @@ /* - global-translator.cc -- implement + global-translator.cc -- implement Global_translator source file of the GNU LilyPond music typesetter diff --git a/lily/gourlay-breaking.cc b/lily/gourlay-breaking.cc index 382548592d..9eceda73c7 100644 --- a/lily/gourlay-breaking.cc +++ b/lily/gourlay-breaking.cc @@ -28,9 +28,14 @@ struct Break_node { */ int prev_break_i_; + /** + Which system number so far? + */ int line_i_; + Real energy_f_; Column_x_positions line_config_; + Break_node () { prev_break_i_ = -1; @@ -40,9 +45,7 @@ struct Break_node { /** This algorithms is adapted from the OSU Tech report on breaking lines. - */ - Array Gourlay_breaking::do_solve () const { @@ -60,7 +63,6 @@ Gourlay_breaking::do_solve () const optimal_paths[0] = first_node; int break_idx=1; - for (; break_idx< breaks.size (); break_idx++) { Array candidates; @@ -78,9 +80,10 @@ Gourlay_breaking::do_solve () const if (optimal_paths[start_idx].prev_break_i_ < 0 && optimal_paths[start_idx].line_config_.energy_f_) - continue; - + + + Line_of_cols line = all.slice (breaks[start_idx], breaks[break_idx]+1); line[0] = dynamic_cast(line[0]->find_prebroken_piece (RIGHT)); diff --git a/lily/grace-position-engraver.cc b/lily/grace-position-engraver.cc index 873ff05f30..924d57a396 100644 --- a/lily/grace-position-engraver.cc +++ b/lily/grace-position-engraver.cc @@ -91,7 +91,7 @@ Grace_position_engraver::do_pre_move_processing () if (ae) ae->remove_element (align_l_); else if (elt) - align_l_->dim_cache_[X_AXIS]->parent_l_ = 0; + align_l_->set_parent (0, X_AXIS); last_musical_col_l_->add_element (align_l_); } diff --git a/lily/graphical-axis-group.cc b/lily/graphical-axis-group.cc index 6beccc6961..02f32e1eb0 100644 --- a/lily/graphical-axis-group.cc +++ b/lily/graphical-axis-group.cc @@ -17,16 +17,8 @@ Graphical_axis_group at one time. */ Graphical_axis_group::Graphical_axis_group(Graphical_axis_group const&s) { -#if 0 - /* - gcc-2.95: huh? why can't i assign a const value to a var? - graphical-axis-group.cc:20: incompatible types in assignment of `const Axis[2]' to `Axis[2]' - */ - axes_ = s.axes_; -#else axes_[0] = s.axes_[0]; axes_[1] = s.axes_[1]; -#endif ordered_b_ = s.ordered_b_; } @@ -40,8 +32,12 @@ Interval Graphical_axis_group::extent (Axis axis) const { Interval r; - for (int i=0; i < elem_l_arr_.size(); i++) - r.unite (elem_l_arr_[i]->extent (axis)); + for (int i=0; i < elem_l_arr_.size(); i++) + { + r.unite (elem_l_arr_[i]->extent (axis) + + elem_l_arr_[i]->relative_coordinate (this, axis) + ); + } return r; } @@ -54,10 +50,10 @@ Graphical_axis_group::add_element (Graphical_element*e) { Axis a = axes_[i]; assert (a>=0); - Dimension_cache * &d = e->dim_cache_[a]->parent_l_; - assert (!d || d == dim_cache_[a]); - d = dim_cache_[a]; - d->dependencies_l_arr_.push (dim_cache_[a]); + assert (!e->parent_l (a) || this == e->parent_l (a)); + e->set_parent (this, a); + + e->dim_cache_[a]->dependencies_l_arr_.push (dim_cache_[a]); } elem_l_arr_.push (e); diff --git a/lily/graphical-element.cc b/lily/graphical-element.cc index 3a53b698f6..ca2cec9137 100644 --- a/lily/graphical-element.cc +++ b/lily/graphical-element.cc @@ -34,11 +34,6 @@ Graphical_element::init () dim_cache_[X_AXIS]->elt_l_ = dim_cache_[Y_AXIS]->elt_l_ = this; } -Real -Graphical_element::absolute_coordinate (Axis a) const -{ - return dim_cache_[a]->absolute_coordinate (); -} void Graphical_element::translate_axis (Real y, Axis a) @@ -47,15 +42,15 @@ Graphical_element::translate_axis (Real y, Axis a) } Real -Graphical_element::relative_coordinate (Dimension_cache*e, Axis a) const +Graphical_element::relative_coordinate (Graphical_element const*e, Axis a) const { - return dim_cache_[a]->relative_coordinate (e); + return dim_cache_[a]->relative_coordinate (e ? e->dim_cache_[a] : 0); } -Dimension_cache * -Graphical_element::common_group (Graphical_element const* s, Axis a) const +Graphical_element * +Graphical_element::common_refpoint (Graphical_element const* s, Axis a) const { - return dim_cache_[a]->common_group (s->dim_cache_[a]); + return (dim_cache_[a]->common_refpoint (s->dim_cache_[a])) ->element_l (); } void @@ -67,10 +62,26 @@ Graphical_element::translate (Offset offset) void -Graphical_element::set_empty (bool b) +Graphical_element::set_empty (bool b, Axis a1, Axis a2) { - dim_cache_[X_AXIS]->set_empty (b); - dim_cache_[Y_AXIS]->set_empty (b); + if (a1 != NO_AXES) + dim_cache_[a1]->set_empty (b); + if (a2 != NO_AXES) + dim_cache_[a2]->set_empty (b); +} + +/** + Return true if empty in either direction. + */ +bool +Graphical_element::empty_b (Axis a1, Axis a2) +{ + bool b = false; + if (a1 != NO_AXES) + b = b || dim_cache_[a1]->empty_b (); + if (a2 != NO_AXES) + b = b || dim_cache_[a2]->empty_b (); + return b; } Interval @@ -114,16 +125,16 @@ Graphical_element::~Graphical_element () delete dim_cache_[Y_AXIS]; } -Dimension_cache * -Graphical_element::common_group (Link_array gs, Axis a) const +Graphical_element * +Graphical_element::common_refpoint (Link_array gs, Axis a) const { Dimension_cache * common = dim_cache_[a]; for (int i=0; i < gs.size (); i++) { - common = common->common_group (gs[i]->dim_cache_[a]); + common = common->common_refpoint (gs[i]->dim_cache_[a]); } - return common; + return common->element_l (); } char const * @@ -141,3 +152,9 @@ Graphical_element::print () const DOUT << "}\n"; #endif } + +void +Graphical_element::set_parent (Graphical_element *g, Axis a) +{ + dim_cache_[a]->parent_l_ = g ? g->dim_cache_[a]: 0; +} diff --git a/lily/hara-kiri-vertical-group-spanner.cc b/lily/hara-kiri-vertical-group-spanner.cc index 5b80d2cddb..1c05020ec3 100644 --- a/lily/hara-kiri-vertical-group-spanner.cc +++ b/lily/hara-kiri-vertical-group-spanner.cc @@ -34,7 +34,8 @@ Hara_kiri_group_spanner::do_post_processing () for (int i = 0; i < childs.size (); i++) { childs[i]->set_elt_property (transparent_scm_sym, SCM_BOOL_T); - childs[i]->set_empty (true); + childs[i]->set_empty (true, X_AXIS, Y_AXIS); + } set_empty (true); } diff --git a/lily/include/align-element.hh b/lily/include/align-element.hh index 6c5689b934..4f5434d55d 100644 --- a/lily/include/align-element.hh +++ b/lily/include/align-element.hh @@ -53,7 +53,7 @@ public: bool contains_b (Score_element const*) const; Score_element *get_elt_by_priority (int) const; - int get_priority (Score_element*) const; + int get_priority (Score_element const*) const; protected: void sort_elements (); virtual void do_print() const; diff --git a/lily/include/axis-group-element.hh b/lily/include/axis-group-element.hh index c77b0058c2..ab81872b52 100644 --- a/lily/include/axis-group-element.hh +++ b/lily/include/axis-group-element.hh @@ -34,9 +34,15 @@ protected: virtual Interval do_width () const; -Interval extra_extent (Axis a ) const; - + Interval extra_extent (Axis a) const; + + public: + /** + Override Graphical_axis_group::extent: make sure that + Graphical_element::extent() is used as the public entry point. */ + Interval extent (Axis a) const; + /** add an element that only influences size, but does not have X/Y parent relationship with THIS. diff --git a/lily/include/breathing-sign.hh b/lily/include/breathing-sign.hh index c2f99c8e89..41de60c64d 100644 --- a/lily/include/breathing-sign.hh +++ b/lily/include/breathing-sign.hh @@ -26,7 +26,7 @@ protected: virtual Molecule* do_brew_molecule_p () const; private: - Direction vertical_position_i_; + Direction dir_; }; #endif // BREATHING_SIGN_HH diff --git a/lily/include/change-iterator.hh b/lily/include/change-iterator.hh index bbdb61d428..d76908dbc1 100644 --- a/lily/include/change-iterator.hh +++ b/lily/include/change-iterator.hh @@ -1,5 +1,5 @@ /* - change-iterator.hh -- declare + change-iterator.hh -- declare Change_iterator source file of the GNU LilyPond music typesetter diff --git a/lily/include/command-request.hh b/lily/include/command-request.hh index d7553339ed..b7a29e0f11 100644 --- a/lily/include/command-request.hh +++ b/lily/include/command-request.hh @@ -53,7 +53,7 @@ public: protected: virtual void do_print () const; VIRTUAL_COPY_CONS(Music); - bool do_equal_b (Request *) const; + bool do_equal_b (Request const *) const; }; class Partial_measure_req : public Timing_req { @@ -64,7 +64,7 @@ public: protected: VIRTUAL_COPY_CONS(Music); virtual void do_print () const; - bool do_equal_b (Request*) const; + bool do_equal_b (Request const *) const; }; /** @@ -78,7 +78,7 @@ public: Time_signature_change_req(); protected: virtual void do_print () const; - bool do_equal_b (Request*) const; + bool do_equal_b (Request const *) const; VIRTUAL_COPY_CONS(Music); }; @@ -91,14 +91,14 @@ public: protected: virtual void do_print () const; - bool do_equal_b (Request*) const; + bool do_equal_b (Request const *) const; VIRTUAL_COPY_CONS(Music); }; /// check if we're at start of a measure. class Barcheck_req : public Timing_req { public: - bool do_equal_b (Request *) const; + bool do_equal_b (Request const *) const; VIRTUAL_COPY_CONS(Music); }; @@ -111,7 +111,7 @@ public: Bar_req (String); protected: virtual void do_print () const; - bool do_equal_b (Request*) const; + bool do_equal_b (Request const *) const; VIRTUAL_COPY_CONS(Music); }; diff --git a/lily/include/dimension-cache.hh b/lily/include/dimension-cache.hh index 4edb9431e2..d8b998132f 100644 --- a/lily/include/dimension-cache.hh +++ b/lily/include/dimension-cache.hh @@ -19,7 +19,7 @@ class Dimension_cache; typedef Interval (*Dim_cache_callback)(Dimension_cache *); /** - Adminstration of offset dimension info. + Adminstration of offset dimension info. */ class Dimension_cache { @@ -39,7 +39,6 @@ class Dimension_cache void init (); public: - Real offset () const; void set_callback (Dim_cache_callback); /** The #offset_# is defined with regard to this graphical_element/ dimension_cache. */ @@ -47,22 +46,31 @@ public: Dimension_cache * parent_l_; Link_array dependencies_l_arr_; Graphical_element *element_l () { return elt_l_; } - Real absolute_coordinate () const; + void invalidate (); void invalidate_dependencies (); Dimension_cache(Dimension_cache const&); Dimension_cache (); + + /** + Find the offset relative to D. If D equals THIS, then it is 0. + Otherwise, it recursively defd as + + OFFSET_ + PARENT_L_->relative_coordinate (D) + */ Real relative_coordinate (Dimension_cache *d) const; - Dimension_cache*common_group (Dimension_cache const* s) const; - Dimension_cache*common_group (Link_array caches) const; + Dimension_cache*common_refpoint (Dimension_cache const* s) const; + Dimension_cache*common_refpoint (Link_array caches) const; void set_empty (bool); void translate (Real); + + // junkme. void set_offset (Real); + bool valid_b () const { return valid_b_; } bool empty_b() const { return empty_b_; } - void set_dim (Interval); Interval get_dim () const; }; diff --git a/lily/include/file-results.hh b/lily/include/file-results.hh index 58b484e22e..b6b80057dc 100644 --- a/lily/include/file-results.hh +++ b/lily/include/file-results.hh @@ -1,5 +1,5 @@ /* - file-results.hh -- declare + file-results.hh -- declare functions for processing one input file. source file of the GNU LilyPond music typesetter diff --git a/lily/include/grace-engraver-group.hh b/lily/include/grace-engraver-group.hh index 8d2f823a83..92301686be 100644 --- a/lily/include/grace-engraver-group.hh +++ b/lily/include/grace-engraver-group.hh @@ -1,5 +1,5 @@ /* - grace-engraver-group.hh -- declare + grace-engraver-group.hh -- declare Grace_engraver_group source file of the GNU LilyPond music typesetter diff --git a/lily/include/grace-iterator.hh b/lily/include/grace-iterator.hh index 2aa1e1434d..ce7459b974 100644 --- a/lily/include/grace-iterator.hh +++ b/lily/include/grace-iterator.hh @@ -1,5 +1,5 @@ /* - grace-iterator.hh -- declare + grace-iterator.hh -- declare Grace_iterator source file of the GNU LilyPond music typesetter diff --git a/lily/include/grace-music.hh b/lily/include/grace-music.hh index ad995b0482..c7b62786bb 100644 --- a/lily/include/grace-music.hh +++ b/lily/include/grace-music.hh @@ -1,5 +1,5 @@ /* - grace-music.hh -- declare + grace-music.hh -- declare Grace_music source file of the GNU LilyPond music typesetter diff --git a/lily/include/grace-performer-group.hh b/lily/include/grace-performer-group.hh index 515015e106..c7f6db0914 100644 --- a/lily/include/grace-performer-group.hh +++ b/lily/include/grace-performer-group.hh @@ -1,5 +1,5 @@ /* - grace-performer-group.hh -- declare + grace-performer-group.hh -- declare Grace_performer_group source file of the GNU LilyPond music typesetter diff --git a/lily/include/graphical-element.hh b/lily/include/graphical-element.hh index 2dee6fac91..41c9e0994c 100644 --- a/lily/include/graphical-element.hh +++ b/lily/include/graphical-element.hh @@ -15,8 +15,7 @@ #include "interval.hh" #include "virtual-methods.hh" -/** The 2d geometric aspects of a score-element. It was put in a - separate class, because Score_element got quite big. +/** The 2d geometric aspects of a score-element. */ class Graphical_element { @@ -30,7 +29,11 @@ public: bool used_b_; char const * name () const; - void set_empty (bool); + /** + Set empty in direction a1 and a2. If an argument is NO_AXES, it is ignored. + */ + void set_empty (bool b, Axis a1 = NO_AXES, Axis a2 = NO_AXES); + bool empty_b (Axis a1 = NO_AXES, Axis a2 = NO_AXES); Graphical_element (); Graphical_element (Graphical_element const&); virtual ~Graphical_element (); @@ -48,13 +51,17 @@ public: void translate_axis (Real, Axis); - Real relative_coordinate (Dimension_cache*group, Axis) const; - Real absolute_coordinate (Axis) const; + Real relative_coordinate (Graphical_element const* refp, Axis) const; /** Find the group-element which has both #this# and #s# */ - Dimension_cache*common_group (Graphical_element const* s, Axis a) const; - Dimension_cache*common_group (Link_array elems, Axis a) const; + Graphical_element*common_refpoint (Graphical_element const* s, Axis a) const; + Graphical_element*common_refpoint (Link_array elems, Axis a) const; + + /** + Set the parent refpoint of THIS to E + */ + void set_parent (Graphical_element* e, Axis); Graphical_element *parent_l (Axis a) const; diff --git a/lily/include/key-def.hh b/lily/include/key-def.hh index 0303fb4e84..84eb0a3d0f 100644 --- a/lily/include/key-def.hh +++ b/lily/include/key-def.hh @@ -1,5 +1,5 @@ /* - key-def.hh -- declare + key-def.hh -- declare Key_def source file of the GNU LilyPond music typesetter diff --git a/lily/include/lyric-combine-music-iterator.hh b/lily/include/lyric-combine-music-iterator.hh index b8c36a8d0b..b53efd365d 100644 --- a/lily/include/lyric-combine-music-iterator.hh +++ b/lily/include/lyric-combine-music-iterator.hh @@ -1,6 +1,6 @@ /* - lyric-combine-music-iterator.hh -- declare + lyric-combine-music-iterator.hh -- declare Lyric_combine_music_iterator source file of the GNU LilyPond music typesetter diff --git a/lily/include/rhythmic-head.hh b/lily/include/rhythmic-head.hh index 98ebcc5bfd..e516b2cdc5 100644 --- a/lily/include/rhythmic-head.hh +++ b/lily/include/rhythmic-head.hh @@ -18,16 +18,18 @@ class Rhythmic_head : public Item, public Staff_symbol_referencer public: Stem * stem_l_; int balltype_i_; - int dots_i_; int position_i_; Dots * dots_l_; void add_dots (Dots *); Rhythmic_head (); + + int dots_i ()const; + virtual int position_i () const; protected: virtual void do_post_processing (); - virtual void do_add_processing (); + virtual void do_pre_processing (); virtual void do_print () const; virtual void do_substitute_element_pointer (Score_element*,Score_element*); }; diff --git a/lily/include/single-malt-grouping-item.hh b/lily/include/single-malt-grouping-item.hh index 6c83fc6ab6..2eb025b047 100644 --- a/lily/include/single-malt-grouping-item.hh +++ b/lily/include/single-malt-grouping-item.hh @@ -1,5 +1,5 @@ /* - single-malt-grouping-item.hh -- declare + single-malt-grouping-item.hh -- declare Single_malt_grouping_item source file of the GNU LilyPond music typesetter diff --git a/lily/include/staff-symbol-referencer.hh b/lily/include/staff-symbol-referencer.hh index 8203954c63..c64381c8d5 100644 --- a/lily/include/staff-symbol-referencer.hh +++ b/lily/include/staff-symbol-referencer.hh @@ -29,6 +29,8 @@ public: Staff_symbol * staff_symbol_l () const; int lines_i () const; virtual void do_substitute_element_pointer (Score_element*,Score_element*); + + virtual int position_i () const; }; #endif /* STAFF_SYM_REFERENCER_HH */ diff --git a/lily/include/tie-performer.hh b/lily/include/tie-performer.hh index 08fe1b98f9..8e3d9d50e8 100644 --- a/lily/include/tie-performer.hh +++ b/lily/include/tie-performer.hh @@ -1,5 +1,5 @@ /* - tie-performer.hh -- declare + tie-performer.hh -- declare Tie_performer source file of the GNU LilyPond music typesetter diff --git a/lily/include/transposed-music.hh b/lily/include/transposed-music.hh index f6c1e13021..4643e71a75 100644 --- a/lily/include/transposed-music.hh +++ b/lily/include/transposed-music.hh @@ -1,5 +1,5 @@ /* - transposed-music.hh -- declare + transposed-music.hh -- declare Transposed_music source file of the GNU LilyPond music typesetter diff --git a/lily/item.cc b/lily/item.cc index f6ea7066e7..e6798b5be1 100644 --- a/lily/item.cc +++ b/lily/item.cc @@ -38,7 +38,7 @@ Item::do_print() const Real Item::hpos_f() const { - return absolute_coordinate (X_AXIS); + return relative_coordinate (0, X_AXIS); } Line_of_score * @@ -91,7 +91,7 @@ Item::try_visibility_lambda () int empty = gh_scm2bool (gh_cdr (result)); if (empty) - set_empty (true); + set_empty (true, X_AXIS, Y_AXIS); if (trans) set_elt_property (transparent_scm_sym, SCM_BOOL_T); } @@ -189,8 +189,7 @@ Item::handle_prebroken_dependents () Item * broken_self = find_prebroken_piece (d); Item * broken_parent = parent->find_prebroken_piece (d); - broken_self->dim_cache_[X_AXIS]->parent_l_ = - broken_parent->dim_cache_[X_AXIS]; + broken_self->set_parent (broken_parent, X_AXIS); /* ugh. Should do this is after breaking? @@ -206,8 +205,7 @@ Item::handle_prebroken_dependents () programming_error ("Vertical refpoint lost!"); else if (yparenti) { - broken_self->dim_cache_[Y_AXIS]->parent_l_ = - broken_yparent->dim_cache_[Y_AXIS]; + broken_self->set_parent (broken_yparent, Y_AXIS); } } } diff --git a/lily/lily-guile.cc b/lily/lily-guile.cc index d771b86923..96e140707b 100644 --- a/lily/lily-guile.cc +++ b/lily/lily-guile.cc @@ -35,14 +35,12 @@ ly_ch_C_eval_scm (char const*c) /* scm_m_quote doesn't use any env, but needs one for a good signature in GUILE. - - Why there is no gh_quote () in GUILE beats me. */ SCM ly_quote_scm (SCM s) { - return scm_cons2 (scm_i_quote, s, SCM_EOL); + return scm_m_quote (scm_cons2 (SCM_EOL, s, SCM_EOL) ,SCM_EOL); // apparently env arg is ignored. } /* diff --git a/lily/lily-version.cc b/lily/lily-version.cc index 5dcfcdcac5..909a9b95a5 100644 --- a/lily/lily-version.cc +++ b/lily/lily-version.cc @@ -6,7 +6,7 @@ (c) 1999 Jan Nieuwenhuizen */ -#include "config.hh" +#include "config.h" #include "version.hh" #include "lily-version.hh" diff --git a/lily/main.cc b/lily/main.cc index bb3fb5d973..6cd822b265 100644 --- a/lily/main.cc +++ b/lily/main.cc @@ -21,7 +21,7 @@ #include "string.hh" #include "main.hh" #include "file-path.hh" -#include "config.hh" +#include "config.h" #include "file-results.hh" #include "debug.hh" #include "lily-guile.hh" diff --git a/lily/melisma-engraver.cc b/lily/melisma-engraver.cc index 6cae059cce..62e5d494f9 100644 --- a/lily/melisma-engraver.cc +++ b/lily/melisma-engraver.cc @@ -19,6 +19,7 @@ public: VIRTUAL_COPY_CONS(Translator); bool do_try_music (Music *); }; + ADD_THIS_TRANSLATOR(Melisma_engraver); bool diff --git a/lily/multi-measure-rest.cc b/lily/multi-measure-rest.cc index 7a952f0135..214aab5098 100644 --- a/lily/multi-measure-rest.cc +++ b/lily/multi-measure-rest.cc @@ -58,10 +58,7 @@ Multi_measure_rest::do_brew_molecule_p () const Molecule *mol_p = new Molecule; Real x_off = 0.0; - - // Dimension_cache * col_ref = spanned_drul_[LEFT]->column_l ()->dim_cache_[X_AXIS]; - - Real rx = spanned_drul_[LEFT]->absolute_coordinate (X_AXIS); + Real rx = spanned_drul_[LEFT]->relative_coordinate (0, X_AXIS); /* we gotta stay clear of sp_iv, so move a bit to the right if needed. diff --git a/lily/note-column.cc b/lily/note-column.cc index bf32b3ad07..da70a533f1 100644 --- a/lily/note-column.cc +++ b/lily/note-column.cc @@ -33,7 +33,7 @@ Note_column::shift_compare (Note_column *const &p1, Note_column*const&p2) Note_column::Note_column() { - set_axes (X_AXIS,X_AXIS); + set_axes (X_AXIS, Y_AXIS); stem_l_ = 0; } @@ -51,7 +51,7 @@ Note_column::head_positions_interval() const iv.set_empty (); for (int i=0; i position_i_; + int j = head_l_arr_[i]->position_i (); iv.unite (Slice (j,j)); } return iv; @@ -121,7 +121,8 @@ Note_column::translate_rests (int dy_i) { invalidate_cache (Y_AXIS); for (int i=0; i < rest_l_arr_.size(); i++) - rest_l_arr_[i]->position_i_ += dy_i; + rest_l_arr_[i]->translate_axis (dy_i * rest_l_arr_[i]->staff_line_leading_f ()/2.0, + Y_AXIS); } void diff --git a/lily/note-head-side.cc b/lily/note-head-side.cc index a5ef70294c..ea52f53a6d 100644 --- a/lily/note-head-side.cc +++ b/lily/note-head-side.cc @@ -24,9 +24,8 @@ Note_head_side::do_pre_processing () Interval x_int; for (int i=0; i < support_l_arr_.size(); i++) { - Dimension_cache *common = - common_group (support_l_arr_[i], X_AXIS); - + Graphical_element *common = + common_refpoint (support_l_arr_[i], X_AXIS); Real x = support_l_arr_[i]->relative_coordinate (common, X_AXIS) - relative_coordinate (common, X_AXIS); diff --git a/lily/note-head.cc b/lily/note-head.cc index 64134c9f2c..8ea7cb460d 100644 --- a/lily/note-head.cc +++ b/lily/note-head.cc @@ -28,11 +28,12 @@ Note_head::Note_head () void Note_head::do_pre_processing () { + Rhythmic_head::do_pre_processing (); // 8 ball looks the same as 4 ball: if (balltype_i_ > 2) balltype_i_ = 2; if (dots_l_) // move into Rhythmic_head? - dots_l_->position_i_ = position_i_; + dots_l_->position_i_ = position_i (); } @@ -40,7 +41,7 @@ Note_head::do_pre_processing () int Note_head::compare (Note_head *const &a, Note_head * const &b) { - return a->position_i_ - b->position_i_; + return a->position_i () - b->position_i (); } /** @@ -60,9 +61,9 @@ Note_head::do_brew_molecule_p() const Real inter_f = staff_line_leading_f ()/2; int sz = lines_i ()-1; - int streepjes_i = abs (position_i_) < sz + int streepjes_i = abs (position_i ()) < sz ? 0 - : (abs(position_i_) - sz) /2; + : (abs(position_i ()) - sz) /2; String type; @@ -78,7 +79,7 @@ Note_head::do_brew_molecule_p() const if (streepjes_i) { - Direction dir = (Direction)sign (position_i_); + Direction dir = (Direction)sign (position_i ()); Interval hd = out->dim_[X_AXIS]; Real hw = hd.length ()/4; @@ -86,7 +87,7 @@ Note_head::do_brew_molecule_p() const = lookup_l ()->ledger_line (Interval (hd[LEFT] - hw, hd[RIGHT] + hw)); - int parity = abs(position_i_) % 2; + int parity = abs(position_i ()) % 2; for (int i=0; i < streepjes_i; i++) { @@ -98,6 +99,5 @@ Note_head::do_brew_molecule_p() const } out->dim_ = b; - out->translate_axis (inter_f*position_i_, Y_AXIS); return out; } diff --git a/lily/note-heads-engraver.cc b/lily/note-heads-engraver.cc index f3c290916b..c725690a4a 100644 --- a/lily/note-heads-engraver.cc +++ b/lily/note-heads-engraver.cc @@ -49,8 +49,8 @@ Note_heads_engraver::do_process_requests() Note_head *note_p = new Note_head; Note_req * note_req_l = note_req_l_arr_[i]; note_p->balltype_i_ = note_req_l->duration_.durlog_i_; - note_p->dots_i_ = note_req_l->duration_.dots_i_; - if (note_p->dots_i_) + + if (note_req_l->duration_.dots_i_) { Dots * d = new Dots; note_p->dots_l_ = d; @@ -64,7 +64,7 @@ Note_heads_engraver::do_process_requests() announce_element (Score_element_info (d,0)); dot_p_arr_.push (d); } - note_p->position_i_ = note_req_l->pitch_.steps (); + note_p->position_i_ = note_req_l->pitch_.steps (); if (noteheadstyle == "transparent") note_p->set_elt_property (transparent_scm_sym, SCM_BOOL_T); diff --git a/lily/p-col.cc b/lily/p-col.cc index 4138548797..0d44694751 100644 --- a/lily/p-col.cc +++ b/lily/p-col.cc @@ -17,7 +17,7 @@ Paper_column::add_rod (Paper_column * p, Real d) if (!dir) { - warning ("Must set minimum distance between differing columns."); + programming_error ("Must set minimum distance between differing columns."); return; } diff --git a/lily/rest-collision.cc b/lily/rest-collision.cc index 0103302408..8dbbc9414f 100644 --- a/lily/rest-collision.cc +++ b/lily/rest-collision.cc @@ -138,5 +138,5 @@ Rest_collision::do_substitute_element_pointer (Score_element*o,Score_element*n) Rest_collision::Rest_collision() { set_elt_property (transparent_scm_sym, SCM_BOOL_T); - set_empty (true); + set_empty (true, X_AXIS, Y_AXIS); } diff --git a/lily/rest-engraver.cc b/lily/rest-engraver.cc index b3f5e4494d..aef1e884bb 100644 --- a/lily/rest-engraver.cc +++ b/lily/rest-engraver.cc @@ -48,8 +48,8 @@ Rest_engraver::do_process_requests () { rest_p_ = new Rest; rest_p_->balltype_i_ = rest_req_l_->duration_.durlog_i_; - rest_p_->dots_i_ = rest_req_l_->duration_.dots_i_; - if (rest_p_->dots_i_) + + if (rest_req_l_->duration_.dots_i_) { dot_p_ = new Dots; rest_p_->dots_l_ =dot_p_; diff --git a/lily/rest.cc b/lily/rest.cc index b0a0cce179..af38a2b0d3 100644 --- a/lily/rest.cc +++ b/lily/rest.cc @@ -46,7 +46,7 @@ Rest::do_brew_molecule_p () const bool ledger_b =false; if (balltype_i_ == 0 || balltype_i_ == 1) - ledger_b = abs(position_i_ - (2* balltype_i_ - 1)) > lines_i (); + ledger_b = abs(position_i () - (2* balltype_i_ - 1)) > lines_i (); @@ -59,7 +59,7 @@ Rest::do_brew_molecule_p () const Molecule s(lookup_l ()->rest (balltype_i_, ledger_b, style)); Molecule * m = new Molecule ( Molecule (s)); - m->translate_axis (position_i_ * staff_line_leading_f ()/2.0, Y_AXIS); + return m; } diff --git a/lily/rhythmic-column-engraver.cc b/lily/rhythmic-column-engraver.cc index 7cff96e6e9..81e0cb65bf 100644 --- a/lily/rhythmic-column-engraver.cc +++ b/lily/rhythmic-column-engraver.cc @@ -36,7 +36,7 @@ Rhythmic_column_engraver::process_acknowledged () for (int i=0; i < rhead_l_arr_.size (); i++) { - if (!rhead_l_arr_[i]->dim_cache_[X_AXIS]->parent_l_) + if (!rhead_l_arr_[i]->parent_l(X_AXIS)) ncol_p_->add_head (rhead_l_arr_[i]); } rhead_l_arr_.set_size (0); @@ -46,13 +46,13 @@ Rhythmic_column_engraver::process_acknowledged () if (ncol_p_) { if (dotcol_l_ - && !dotcol_l_->dim_cache_[X_AXIS]->parent_l_) + && !dotcol_l_->parent_l(X_AXIS)) { ncol_p_->set_dotcol (dotcol_l_); } if (stem_l_ - && !stem_l_->dim_cache_[X_AXIS]->parent_l_) + && !stem_l_->parent_l(X_AXIS)) { ncol_p_->set_stem (stem_l_); stem_l_ = 0; diff --git a/lily/rhythmic-head.cc b/lily/rhythmic-head.cc index 3f4d67d74b..00f6cb1df4 100644 --- a/lily/rhythmic-head.cc +++ b/lily/rhythmic-head.cc @@ -1,5 +1,5 @@ /* - rhythmic-head.cc -- implement + rhythmic-head.cc -- implement Rhythmic_head source file of the GNU LilyPond music typesetter @@ -17,26 +17,34 @@ #include "paper-score.hh" #include "stem.hh" + + +int +Rhythmic_head::dots_i () const +{ + return dots_l_ ? dots_l_->dots_i_ : 0; +} + void -Rhythmic_head::do_add_processing () +Rhythmic_head::do_post_processing () { - if (dots_i_ && !dots_l_) - { - assert (false); - } if (dots_l_) { - dots_l_->dots_i_ = dots_i_; + dots_l_->position_i_ = position_i (); } } void -Rhythmic_head::do_post_processing () +Rhythmic_head::do_pre_processing () { - if (dots_l_) - { - dots_l_->position_i_ = position_i_; - } + translate_axis (position_i_ * staff_line_leading_f () /2.0, Y_AXIS); + position_i_ = 0; +} + +int +Rhythmic_head::position_i () const +{ + return position_i_ + Staff_symbol_referencer::position_i (); } @@ -51,7 +59,6 @@ Rhythmic_head::Rhythmic_head () { dots_l_ =0; balltype_i_ =0; - dots_i_ = 0; stem_l_ =0; position_i_ =0; } @@ -59,6 +66,7 @@ Rhythmic_head::Rhythmic_head () void Rhythmic_head::do_substitute_element_pointer (Score_element*o,Score_element*n) { + Staff_symbol_referencer::do_substitute_element_pointer (o,n); if (o == dots_l_) dots_l_ = dynamic_cast (n) ; else if (o == stem_l_) @@ -70,7 +78,7 @@ void Rhythmic_head::do_print () const { #ifndef NPRINT - DOUT << "balltype = "<< balltype_i_ << "dots = " << dots_i_; + DOUT << "balltype = "<< balltype_i_ << "dots = " << dots_i (); #endif } diff --git a/lily/score-element.cc b/lily/score-element.cc index 128b380d04..2dab6212bc 100644 --- a/lily/score-element.cc +++ b/lily/score-element.cc @@ -218,7 +218,7 @@ Score_element::output_processing () delete output_p_; output_p_ = do_brew_molecule_p (); - Offset o (absolute_coordinate (X_AXIS), absolute_coordinate (Y_AXIS)); + Offset o (relative_coordinate (0, X_AXIS), relative_coordinate (0, Y_AXIS)); pscore_l_->outputter_l_->output_molecule (output_p_, o, diff --git a/lily/score-engraver.cc b/lily/score-engraver.cc index 0ab5c2e960..7c7adf3c6c 100644 --- a/lily/score-engraver.cc +++ b/lily/score-engraver.cc @@ -163,7 +163,7 @@ Score_engraver::typeset_all() musical_column_l_->add_element(item_p); } } - if (!elem_p->dim_cache_[Y_AXIS]->parent_l_) + if (!elem_p->parent_l(Y_AXIS)) scoreline_l_->add_element (elem_p); } elem_p_arr_.clear(); diff --git a/lily/score-priority-engraver.cc b/lily/score-priority-engraver.cc index 40ee448250..3530c26a25 100644 --- a/lily/score-priority-engraver.cc +++ b/lily/score-priority-engraver.cc @@ -41,8 +41,7 @@ Score_priority_engraver::acknowledge_element (Score_element_info inf) { if (Item * item_l = dynamic_cast (inf.elem_l_)) { - Dimension_cache * c = item_l->dim_cache_[X_AXIS]; - if (c->empty_b () || c->parent_l_) + if (item_l->empty_b (X_AXIS) || item_l->parent_l (X_AXIS)) return; bool breakable diff --git a/lily/script-column-engraver.cc b/lily/script-column-engraver.cc index d38aed9b0f..b3a8db33fe 100644 --- a/lily/script-column-engraver.cc +++ b/lily/script-column-engraver.cc @@ -60,15 +60,12 @@ Script_column_engraver::acknowledge_element( Score_element_info inf) if (!thing) return; - Dimension_cache * parcache = thing->dim_cache_[Y_AXIS]->parent_l_; - if (!parcache || !thing) - return ; - - Graphical_element *parent = parcache->element_l (); + Graphical_element *parent = thing->parent_l(Y_AXIS); + if (Staff_side_item * ss = dynamic_cast(parent)) { - if (!ss->breakable_b ()) + if (!ss->breakable_b () && ss->axis_ == Y_AXIS) { script_l_arr_.push (thing); } diff --git a/lily/script-column.cc b/lily/script-column.cc index 8b37895814..cc38a6eae8 100644 --- a/lily/script-column.cc +++ b/lily/script-column.cc @@ -13,7 +13,7 @@ static Staff_side_item * get_Staff_side (Item *i) { - Graphical_element *e1 = i->dim_cache_[Y_AXIS]->parent_l_->element_l (); + Graphical_element *e1 = i->parent_l(Y_AXIS); return dynamic_cast(e1); } diff --git a/lily/script-engraver.cc b/lily/script-engraver.cc index 4cc2917b60..e8e2e8dd85 100644 --- a/lily/script-engraver.cc +++ b/lily/script-engraver.cc @@ -85,8 +85,14 @@ Script_engraver::do_process_requests() padding = (Real)paddingprop; } - if (follow_staff) + + Scalar axisprop = get_property ("scriptHorizontal",0); + if (axisprop.to_bool ()) + ss->axis_ = X_AXIS; + + if (follow_staff && !axisprop.to_bool ()) ss->set_elt_property (no_staff_support_scm_sym, SCM_BOOL_T); + p->set_staff_side (ss); ss->set_elt_property (script_priority_scm_sym, priority); if (padding) @@ -117,9 +123,9 @@ Script_engraver::acknowledge_element (Score_element_info inf) { Staff_side_item * ss = dynamic_cast(staff_side_p_arr_[i]); - if (!ss->dim_cache_[X_AXIS]->parent_l_) + if (!ss->parent_l (X_AXIS)) { - ss->dim_cache_[X_AXIS]->parent_l_ = inf.elem_l_->dim_cache_[X_AXIS]; + ss->set_parent (inf.elem_l_, X_AXIS); } ss->add_support (rh); } diff --git a/lily/script.cc b/lily/script.cc index 71adfd6339..3bc415d077 100644 --- a/lily/script.cc +++ b/lily/script.cc @@ -63,8 +63,7 @@ Script::do_pre_processing () /* center my self on the note head. */ - Graphical_element * e - = staff_side_l_->dim_cache_[X_AXIS]->parent_l_->element_l(); + Graphical_element * e = staff_side_l_->parent_l(X_AXIS); translate_axis (e->extent (X_AXIS).center (), X_AXIS); } @@ -86,7 +85,7 @@ Script::set_staff_side (Staff_side_item*g) { staff_side_l_ = g; add_dependency (g); - dim_cache_[Y_AXIS]->parent_l_ = g->dim_cache_[Y_AXIS]; + set_parent (g, Y_AXIS); } Molecule* diff --git a/lily/single-malt-grouping-item.cc b/lily/single-malt-grouping-item.cc index 8ce4cdbd17..cc77816983 100644 --- a/lily/single-malt-grouping-item.cc +++ b/lily/single-malt-grouping-item.cc @@ -17,7 +17,8 @@ Single_malt_grouping_item ::Single_malt_grouping_item() set_elt_property (transparent_scm_sym, SCM_BOOL_T); // this is weird! , but needed! - set_empty (true); + set_empty (true, X_AXIS, Y_AXIS); + } void @@ -46,7 +47,7 @@ Single_malt_grouping_item::my_width () const Interval iv (il->extent (X_AXIS)); if (!iv.empty_b ()) { - Real off = il->relative_coordinate (pc->dim_cache_[X_AXIS], X_AXIS); + Real off = il->relative_coordinate (pc, X_AXIS); w.unite (iv + off); } } diff --git a/lily/slur-engraver.cc b/lily/slur-engraver.cc index 6f025e1a2b..4553e4dcba 100644 --- a/lily/slur-engraver.cc +++ b/lily/slur-engraver.cc @@ -93,6 +93,7 @@ Slur_engraver::do_process_requests() if (prop.isnum_b ()) s_p->set_elt_property (dashed_scm_sym, gh_int2scm(prop)); + requests_arr_.push (slur_req_l); start_slur_l_arr_.push (s_p); announce_element (Score_element_info (s_p, slur_req_l)); diff --git a/lily/slur.cc b/lily/slur.cc index bc8fa4b5a7..2838bcce96 100644 --- a/lily/slur.cc +++ b/lily/slur.cc @@ -159,7 +159,7 @@ Slur::do_post_processing () else { dx_f_drul_[d] = stem_l->hpos_f () - - spanned_drul_[d]->absolute_coordinate (X_AXIS); + - spanned_drul_[d]->relative_coordinate (0, X_AXIS); /* side attached to beamed stem */ @@ -355,7 +355,7 @@ Slur::do_post_processing () */ Stem* stem_l = note_column_drul[d]->stem_l_; snapx_f_drul[d] = stem_l->hpos_f () - - spanned_drul_[d]->absolute_coordinate (X_AXIS); + - spanned_drul_[d]->relative_coordinate (0, X_AXIS); snapy_f_drul[d] = stem_l->extent (Y_AXIS)[dir_]; snapy_f_drul[d] += info_drul[d].interstaff_f_; snapy_f_drul[d] += dir_ * 2 * y_gap_f; @@ -428,7 +428,7 @@ Slur::get_encompass_offset_arr () const } bool interstaff_b = interstaff_i && (interstaff_i < encompass_arr_.size ()); - Offset origin (absolute_coordinate (X_AXIS), 0); + Offset origin (relative_coordinate (0, X_AXIS), 0); int first = 1; int last = encompass_arr_.size () - 2; diff --git a/lily/span-bar.cc b/lily/span-bar.cc index 9e02523461..02c7c29e3b 100644 --- a/lily/span-bar.cc +++ b/lily/span-bar.cc @@ -43,13 +43,16 @@ Span_bar::do_pre_processing () evaluate_empty (); - dim_cache_[Y_AXIS]->set_empty (false); // a hack to make mark scripts work. + set_empty (false, Y_AXIS); // a hack to make mark scripts work. } void Span_bar::do_post_processing () { Bar::do_post_processing (); + Interval i(get_spanned_interval ()); + + translate_axis (i.center (), Y_AXIS); } void @@ -58,7 +61,8 @@ Span_bar::evaluate_empty () if (spanning_l_arr_.size () < 1) { set_elt_property (transparent_scm_sym, SCM_BOOL_T); - set_empty (true); + set_empty (true, X_AXIS, Y_AXIS); + } if (type_str_.empty_b ()) { @@ -83,13 +87,12 @@ Interval Span_bar::get_spanned_interval () const { Interval y_int; + for (int i=0; i < spanning_l_arr_.size (); i++) { - Dimension_cache*common = - common_group (spanning_l_arr_[i], Y_AXIS); - - Real y = spanning_l_arr_[i]->dim_cache_[Y_AXIS]->relative_coordinate (common) - -dim_cache_[Y_AXIS]->relative_coordinate (common); + Graphical_element*common = common_refpoint (spanning_l_arr_[i], Y_AXIS); + Real y = spanning_l_arr_[i]->relative_coordinate (common, Y_AXIS) + - relative_coordinate (common, Y_AXIS); y_int.unite (y + spanning_l_arr_[i]->extent(Y_AXIS)); } @@ -110,7 +113,6 @@ Span_bar::do_brew_molecule_p () const if (!iv.empty_b()) { output->add_molecule (lookup_l ()->bar (type_str_, iv.length (), paper_l ())); - output->translate_axis (iv.center (), Y_AXIS); } else { diff --git a/lily/span-score-bar-engraver.cc b/lily/span-score-bar-engraver.cc index 087df227da..3b18cfa127 100644 --- a/lily/span-score-bar-engraver.cc +++ b/lily/span-score-bar-engraver.cc @@ -34,7 +34,7 @@ Span_bar* Piano_bar_engraver::get_span_bar_p () const { Span_bar *s= new Span_bar; - s->dim_cache_[X_AXIS]->set_empty (true); + s->set_empty (true, X_AXIS); s->type_str_ = "brace"; return s; } @@ -43,7 +43,7 @@ Span_bar* Staff_group_bar_engraver::get_span_bar_p () const { Span_bar *s= new Span_bar; - s->dim_cache_[X_AXIS]->set_empty (true); + s->set_empty (true, X_AXIS); s->type_str_ = "bracket"; return s; } diff --git a/lily/spanner.cc b/lily/spanner.cc index 23360b5e88..843a020b36 100644 --- a/lily/spanner.cc +++ b/lily/spanner.cc @@ -101,7 +101,7 @@ Spanner::set_bounds(Direction d, Item*i) if (d== LEFT) { - dim_cache_[X_AXIS]->parent_l_ = i->dim_cache_[X_AXIS]; + set_parent ( i, X_AXIS); } if (spanned_drul_[Direction(-d)] == spanned_drul_[d] @@ -134,8 +134,8 @@ Spanner::Spanner (Spanner const &s) Interval Spanner::do_width() const { - Real l = spanned_drul_[LEFT]->absolute_coordinate (X_AXIS); - Real r = spanned_drul_[RIGHT]->absolute_coordinate (X_AXIS); + Real l = spanned_drul_[LEFT]->relative_coordinate (0, X_AXIS); + Real r = spanned_drul_[RIGHT]->relative_coordinate (0, X_AXIS); if (r< l) warning ("Spanner with negative length"); @@ -209,7 +209,7 @@ void Spanner::handle_broken_dependents () { Spanner *unbrok = dynamic_cast (original_l_); - if (!unbrok || dim_cache_[Y_AXIS]->parent_l_) + if (!unbrok || parent_l(Y_AXIS)) return; Spanner *refpoint = dynamic_cast (unbrok->parent_l (Y_AXIS)); @@ -218,7 +218,7 @@ Spanner::handle_broken_dependents () { Spanner * broken_refpoint = refpoint->find_broken_piece (line_l ()); if (broken_refpoint) - dim_cache_[Y_AXIS]->parent_l_ = broken_refpoint->dim_cache_[Y_AXIS]; + set_parent ( broken_refpoint,Y_AXIS); else programming_error ("Spanner y -refpoint lost."); } diff --git a/lily/spring-spacer.cc b/lily/spring-spacer.cc index f458a7a97a..0e552f015c 100644 --- a/lily/spring-spacer.cc +++ b/lily/spring-spacer.cc @@ -373,7 +373,17 @@ Spring_spacer::print() const void Spring_spacer::connect (int i, int j, Real d, Real h) { - assert(d >= 0 && d <= 100 CM); + if (d > 100 CM) + { + programming_error( _f("Improbable distance: %f point, setting to 10 mm", d)); + d = 1 CM; + } + if(d < 0) + { + programming_error (_("Negative distance. Setting to 10 mm")); + d = 10 MM; + } + assert(h >=0); Idealspacing * s = new Idealspacing; diff --git a/lily/staff-margin-engraver.cc b/lily/staff-margin-engraver.cc index c637ff4623..706d89e990 100644 --- a/lily/staff-margin-engraver.cc +++ b/lily/staff-margin-engraver.cc @@ -42,9 +42,9 @@ Staff_margin_engraver::acknowledge_element (Score_element_info inf) String long_str = get_property ("instrument", 0); - String str = get_property ("instr", 0); - if (now_mom () > Moment (0) && str.length_i ()) - long_str = str; + String short_str = get_property ("instr", 0); + if (now_mom () > Moment (0)) + long_str = short_str; if (long_str.empty_b ()) return; diff --git a/lily/staff-side.cc b/lily/staff-side.cc index 7ffcce8c7a..a74e1c8bf3 100644 --- a/lily/staff-side.cc +++ b/lily/staff-side.cc @@ -22,8 +22,6 @@ Staff_side_element::Staff_side_element () axis_ = Y_AXIS; } - - void Staff_side_element::do_pre_processing () { @@ -46,7 +44,7 @@ Staff_side_element::set_victim (Score_element *e) { add_dependency (e); to_position_l_ = e; - to_position_l_->dim_cache_[axis_]->parent_l_ = dim_cache_[axis_]; + to_position_l_->set_parent (this, axis_); } void @@ -75,11 +73,11 @@ Staff_side_element::position_self () return; Interval dim; - Dimension_cache *common = 0; + Graphical_element *common = 0; if (support_l_arr_.size ()) { - common = common_group (typecast_array (support_l_arr_, (Graphical_element*)0), - axis_); + common = common_refpoint (typecast_array (support_l_arr_, (Graphical_element*)0), + axis_); for (int i=0; i < support_l_arr_.size (); i++) { @@ -90,7 +88,7 @@ Staff_side_element::position_self () } } else - common = dim_cache_[axis_]->parent_l_; + common = parent_l (axis_); if (dim.empty_b ()) { @@ -103,7 +101,7 @@ Staff_side_element::position_self () ? to_position_l_->extent (axis_) : Interval(0,0); - Real off = dim_cache_[axis_]->relative_coordinate (common); + Real off = relative_coordinate (common, axis_); diff --git a/lily/staff-symbol-referencer.cc b/lily/staff-symbol-referencer.cc index 2b07b49a5e..aad498bce3 100644 --- a/lily/staff-symbol-referencer.cc +++ b/lily/staff-symbol-referencer.cc @@ -6,9 +6,12 @@ (c) 1999 Han-Wen Nienhuys */ +#include + #include "staff-symbol-referencer.hh" #include "staff-symbol.hh" #include "paper-def.hh" +#include "dimension-cache.hh" Staff_symbol_referencer::Staff_symbol_referencer () { @@ -48,3 +51,16 @@ Staff_symbol_referencer::staff_line_leading_f () const { return (staff_sym_l_) ? staff_sym_l_->staff_line_leading_f_ : paper_l ()->get_realvar (interline_scm_sym); } + + +int +Staff_symbol_referencer::position_i () const +{ + if (!staff_sym_l_ ) + return 0; + + Graphical_element * c = common_refpoint (staff_sym_l_, Y_AXIS); + Real y = relative_coordinate (c, Y_AXIS) - staff_sym_l_->relative_coordinate (c, Y_AXIS); + + return int (2.0 * y / staff_line_leading_f ()); +} diff --git a/lily/stem-info.cc b/lily/stem-info.cc index f3c6550b86..930130da2b 100644 --- a/lily/stem-info.cc +++ b/lily/stem-info.cc @@ -131,8 +131,8 @@ Stem_info::Stem_info (Stem*s, int mult) // interstaff beam Beam* beam_l = stem_l_->beam_l_; - Dimension_cache *common = stem_l_->common_group (beam_l, Y_AXIS); - Align_element * align = dynamic_cast (common->element_l ()); + Graphical_element *common = stem_l_->common_refpoint (beam_l, Y_AXIS); + Align_element * align = dynamic_cast (common); if (align && align->axis() == Y_AXIS) { if (align->threshold_interval_[MIN] != @@ -141,19 +141,19 @@ Stem_info::Stem_info (Stem*s, int mult) interstaff_f_ = align->threshold_interval_[MIN] / internote_f; - Dimension_cache * beam_refpoint = beam_l->dim_cache_[Y_AXIS]; - Dimension_cache * stem_refpoint = stem_l_->dim_cache_[Y_AXIS]; + Graphical_element * beam_refpoint = beam_l; + Graphical_element * stem_refpoint = stem_l_; - while (beam_refpoint->parent_l_ != common) - beam_refpoint = beam_refpoint->parent_l_; - while (stem_refpoint->parent_l_ != common) - stem_refpoint = stem_refpoint->parent_l_; + while (beam_refpoint->parent_l (Y_AXIS) != common) + beam_refpoint = beam_refpoint->parent_l (Y_AXIS); + while (stem_refpoint->parent_l (Y_AXIS) != common) + stem_refpoint = stem_refpoint->parent_l (Y_AXIS); int beam_prio = - align->get_priority (dynamic_cast (beam_refpoint->element_l ())); + align->get_priority (dynamic_cast (beam_refpoint)); int stem_prio = - align->get_priority (dynamic_cast (stem_refpoint->element_l ())); + align->get_priority (dynamic_cast (stem_refpoint)); /* our staff is lower -> interstaff_f_ *= -1 diff --git a/lily/stem-staff-side.cc b/lily/stem-staff-side.cc index d582047f57..1b6f7bc750 100644 --- a/lily/stem-staff-side.cc +++ b/lily/stem-staff-side.cc @@ -81,11 +81,9 @@ Stem_staff_side_item::do_post_processing () */ if (get_elt_property (no_staff_support_scm_sym) != SCM_BOOL_F) { - Dimension_cache * c =common_group (staff_symbol_l (), Y_AXIS); - Real staff_coord = staff_symbol_l ()->relative_coordinate (c, Y_AXIS) + - staff_symbol_l ()->dim_cache_[Y_AXIS]->offset (); - Real self_coord = relative_coordinate (c, Y_AXIS) - + dim_cache_[Y_AXIS]->offset (); + Graphical_element * c =common_refpoint (staff_symbol_l (), Y_AXIS); + Real staff_coord = staff_symbol_l ()->relative_coordinate (c, Y_AXIS); + Real self_coord = relative_coordinate (c, Y_AXIS); Real now_coord = self_coord - staff_coord; Real desired_coord = ceil (dir_ * 2.0 * now_coord / staff_line_leading_f ()); diff --git a/lily/stem.cc b/lily/stem.cc index 2dd984cac7..2086139050 100644 --- a/lily/stem.cc +++ b/lily/stem.cc @@ -57,7 +57,7 @@ Stem::head_positions () const Interval_t r; for (int i =0; i < head_l_arr_.size (); i++) { - int p = head_l_arr_[i]->position_i_; + int p = head_l_arr_[i]->position_i (); r[BIGGER] = r[BIGGER] >? p; r[SMALLER] = r[SMALLER] set_elt_property (extremal_scm_sym, SCM_BOOL_T); int parity=1; - int lastpos = beginhead->position_i_; + int lastpos = beginhead->position_i (); for (int i=1; i < head_l_arr_.size (); i ++) { - int dy =abs (lastpos- head_l_arr_[i]->position_i_); + int dy =abs (lastpos- head_l_arr_[i]->position_i ()); if (dy <= 1) { @@ -242,7 +242,7 @@ Stem::set_noteheads () } else parity = 1; - lastpos = head_l_arr_[i]->position_i_; + lastpos = head_l_arr_[i]->position_i (); } } @@ -257,7 +257,7 @@ Stem::do_pre_processing () { set_elt_property (transparent_scm_sym, SCM_BOOL_T); } - set_empty (invisible_b ()); + set_empty (invisible_b (), X_AXIS, Y_AXIS); set_spacing_hints (); } diff --git a/lily/text-engraver.cc b/lily/text-engraver.cc index e1748316b3..1d652e935e 100644 --- a/lily/text-engraver.cc +++ b/lily/text-engraver.cc @@ -57,6 +57,9 @@ Text_engraver::acknowledge_element (Score_element_info i) for (int i=0; i < positionings_.size (); i++) { positionings_[i]->add_support (n); + if (positionings_[i]->axis_ == X_AXIS + && !positionings_[i]->parent_l (Y_AXIS)) + positionings_[i]->set_parent (n, Y_AXIS); } } if (Stem *n = dynamic_cast (i.elem_l_)) @@ -78,6 +81,15 @@ Text_engraver::do_process_requests () Text_item *text = new Text_item; Staff_side_item *ss = new Staff_side_item; + + + Scalar axisprop = get_property ("scriptHorizontal",0); + if (axisprop.to_bool ()) + { + ss->axis_ = X_AXIS; + text->set_parent (ss, Y_AXIS); + + } ss->set_victim (text); ss->set_elt_property (script_priority_scm_sym, gh_int2scm (200)); @@ -104,9 +116,9 @@ Text_engraver::do_process_requests () Scalar empty = get_property ("textEmptyDimension", 0); if (empty.to_bool ()) { - text->dim_cache_[X_AXIS]->set_empty (true); + text->set_empty (true, X_AXIS); } - + announce_element (Score_element_info (text, r)); announce_element (Score_element_info (ss, r)); diff --git a/lily/tie-performer.cc b/lily/tie-performer.cc index f33e9efaac..a05b54cce6 100644 --- a/lily/tie-performer.cc +++ b/lily/tie-performer.cc @@ -1,5 +1,5 @@ /* - tie-performer.cc -- implement + tie-performer.cc -- implement Tie_performer source file of the GNU LilyPond music typesetter diff --git a/lily/tie.cc b/lily/tie.cc index b5364963e8..7b682914c3 100644 --- a/lily/tie.cc +++ b/lily/tie.cc @@ -37,8 +37,8 @@ Tie::Tie() Direction Tie::get_default_dir () const { - int m = (head_l_drul_[LEFT]->position_i_ - + head_l_drul_[RIGHT]->position_i_) /2; + int m = (head_l_drul_[LEFT]->position_i () + + head_l_drul_[RIGHT]->position_i ()) /2; /* If dir is not determined: inverse of stem: down @@ -151,8 +151,8 @@ Tie::do_post_processing() for smal slurs */ - int ypos_i = head_l_drul_[LEFT] ? head_l_drul_[LEFT]->position_i_ - : head_l_drul_[RIGHT]->position_i_; + int ypos_i = head_l_drul_[LEFT] ? head_l_drul_[LEFT]->position_i () + : head_l_drul_[RIGHT]->position_i (); Real y_f = internote_f * ypos_i; diff --git a/make/mudela-rules.make b/make/mudela-rules.make index e74e96f70c..c2e1b202e5 100644 --- a/make/mudela-rules.make +++ b/make/mudela-rules.make @@ -19,4 +19,6 @@ $(outdir)/%.html: $(outdir)/%.texi $(PYTHON) $(step-bindir)/add-html-footer.py --package=$(topdir) --index=$(depth)/../index.html $@ $(wildcard $(basename $@)[0-9][0-9].html) $(outdir)/%.dvi: $(outdir)/%.texi - cd $(outdir); texi2dvi --clean ../$< + # --clean only in >= 3.12s + # cd $(outdir); texi2dvi --clean ../$< + cd $(outdir); texi2dvi ../$< diff --git a/make/out/lilypond.lsm b/make/out/lilypond.lsm index f50828e4b9..41b3a82f16 100644 --- a/make/out/lilypond.lsm +++ b/make/out/lilypond.lsm @@ -1,7 +1,7 @@ Begin3 Title: LilyPond -Version: 1.2.3 -Entered-date: 27AUG99 +Version: 1.2.4 +Entered-date: 30AUG99 Description: LilyPond is a music typesetter. It produces beautiful sheet music using a high level description file as input. LilyPond is part of @@ -12,8 +12,8 @@ Author: hanwen@cs.uu.nl (Han-Wen Nienhuys) janneke@gnu.org (Jan Nieuwenhuizen) Maintained-by: hanwen@stack.nl (Han-Wen Nienhuys) Primary-site: sunsite.unc.edu /pub/Linux/apps/sound/convert - 1000k lilypond-1.2.3.tar.gz + 1000k lilypond-1.2.4.tar.gz Original-site: ftp.cs.uu.nl /pub/GNU/LilyPond/development/ - 1000k lilypond-1.2.3.tar.gz + 1000k lilypond-1.2.4.tar.gz Copying-policy: GPL End diff --git a/make/out/lilypond.spec b/make/out/lilypond.spec index e7ea2921b1..cd3d275e54 100644 --- a/make/out/lilypond.spec +++ b/make/out/lilypond.spec @@ -1,9 +1,9 @@ Name: lilypond -Version: 1.2.3 +Version: 1.2.4 Release: 1 Copyright: GPL Group: Applications/Publishing -Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.2.3.tar.gz +Source0: ftp.cs.uu.nl:/pub/GNU/LilyPond/development/lilypond-1.2.4.tar.gz Summary: A program for printing sheet music. URL: http://www.cs.uu.nl/~hanwen/lilypond Packager: Han-Wen Nienhuys diff --git a/midi2ly/main.cc b/midi2ly/main.cc index 2cf9e95917..ae4e257938 100644 --- a/midi2ly/main.cc +++ b/midi2ly/main.cc @@ -5,7 +5,7 @@ #include #include -#include "config.hh" +#include "config.h" #include "string-convert.hh" #include "getopt-long.hh" #include "file-path.hh" diff --git a/midi2ly/midi2ly-version.cc b/midi2ly/midi2ly-version.cc index ac0b8c1d2d..08cb163723 100644 --- a/midi2ly/midi2ly-version.cc +++ b/midi2ly/midi2ly-version.cc @@ -4,7 +4,7 @@ // copyright 1997 Jan Nieuwenhuizen #include -#include "config.hh" +#include "config.h" #include "version.hh" #define VERSION_SZ MAJOR_VERSION "." MINOR_VERSION "." PATCH_LEVEL "." MY_PATCH_LEVEL diff --git a/scm/lily.scm b/scm/lily.scm index 1974a009fc..ecfda6b42d 100644 --- a/scm/lily.scm +++ b/scm/lily.scm @@ -176,9 +176,8 @@ (define (select-font font-name magnification) (if (not (equal? font-name current-font)) - (begin + (let* ((font-cmd (assoc font-name font-alist))) (set! current-font font-name) - (define font-cmd (assoc font-name font-alist)) (if (eq? font-cmd #f) (begin (set! font-cmd (cached-fontname font-count)) @@ -255,10 +254,11 @@ ;; ;; need to do something to make this really safe. ;; - (if security-paranoia - (define (output-tex-string s) - (regexp-substitute/global #f "\\\\" s 'pre "$\\backslash$" 'post)) - (define (output-tex-string s) s)) + (define (output-tex-string s) + (if security-paranoia + (regexp-substitute/global #f "\\\\" s 'pre "$\\backslash$" 'post) + s)) + (define (lily-def key val) (string-append @@ -444,7 +444,10 @@ (apply string-append (map control->string l)) (number->string thick) " [ " - (if (> 1 dash) (number->string (- (* thick dash) thick)) "0") " " + (if (> 1 dash) + (number->string (- (* thick dash) thick)) + "0") + " " (number->string (* 2 thick)) " ] 0 draw_dashed_slur")) diff --git a/scripts/mudela-book.py b/scripts/mudela-book.py index 29e6f29ff5..8021e51818 100644 --- a/scripts/mudela-book.py +++ b/scripts/mudela-book.py @@ -14,9 +14,12 @@ program_version = '@TOPLEVEL_VERSION@' cwd = os.getcwd () include_path = [cwd] -# TODO: use splitting iso. \mudelagraphic. +# TODO: Figure out clean set of options. +# BUG: does not handle \verb|\begin{verbatim}\end{verbatim}| correctly. +# Should make a joint RE for \verb and \begin, \end{verbatim} # + default_music_fontsize = 16 default_text_fontsize = 12 @@ -83,8 +86,17 @@ output_dict= { %s @end example """, + +# do some tweaking: @ is needed in some ps stuff. +# override EndLilyPondOutput, since @tex is done +# in a sandbox, you can't do \input lilyponddefs at the +# top of the document. 'output-all': r"""@tex +\catcode`\@=12 +\input lilyponddefs +\def\EndLilyPondOutput{} \input %s.tex +\catcode`\@=0 @end tex @html @@ -93,6 +105,11 @@ output_dict= { } } +def output_verbatim (body): + if __main__.format == 'texi': + body = re.sub ('([@{}])', '@\\1', body) + return get_output ('output-verbatim') % body + re_dict = { 'latex': {'input': '\\\\input{?([^}\t \n}]*)', 'include': '\\\\include{([^}]+)}', @@ -132,6 +149,16 @@ for r in re_dict.keys (): re_dict[r] = newdict +def uniq (list): + list.sort () + s = list + list = [] + for x in s: + if x not in list: + list.append (x) + return list + + def get_output (name): return output_dict[format][name] @@ -193,16 +220,18 @@ def compose_full_body (body, opts): if 'twocolumn' in opts: cols = 2 - if 'fragment' or 'singleline' in opts: - l = -1.0; - else: - l = latex_linewidths[cols][paper][latex_size] # urg: breaks on \include of full score # Use nofly option if you want to \include full score. if not 'nofly' in opts and not re.search ('\\\\score', body): opts.append ('fly') + if 'fragment' in opts or 'singleline' in opts: + l = -1.0; + else: + l = latex_linewidths[cols][paper][latex_size] + + if 'fly' in opts: body = r"""\score { \notes\relative c { @@ -211,26 +240,18 @@ def compose_full_body (body, opts): \paper { } }""" % body + opts = uniq (opts) + optstring = string.join (opts, ' ') + optstring = re.sub ('\n', ' ', optstring) body = r""" -%% Generated by mudela-book.py +%% Generated by mudela-book.py; options are %s \include "paper%d.ly" \paper { linewidth = %f \pt; } -""" % (music_size, l) + body +""" % (optstring, music_size, l) + body return body -def inclusion_func (match, surround): - insert = match.group (0) - try: - (insert, d) = read_doc_file (match.group(1)) - deps = deps + d - insert = surround + insert + surround - except: - sys.stderr.write("warning: can't find %s, let's hope latex will\n" % m.group(1)) - - return (insert, deps) - def find_inclusion_chunks (regex, surround, str): chunks = [] while str: @@ -258,16 +279,16 @@ def find_input_chunks (str): def read_doc_file (filename): """Read the input file, substituting for \input, \include, \mudela{} and \mudelafile""" str = '' - for fn in [filename, filename+'.tex', filename+'.doc']: + for ext in ['', '.tex', '.doc', '.tely']: try: - f = open(fn) + f = open(filename+ ext) str = f.read (-1) except: pass if not str: - raise IOError + error ("File not found `%s'\n" % filename) retdeps = [filename] @@ -281,17 +302,17 @@ def read_doc_file (filename): else: __main__.format = 'latex' - chunks = find_verbatim_chunks (str) - newchunks = [] + chunks = [('input', str)] - for func in (find_include_chunks, find_input_chunks): + for func in (find_verbatim_chunks, find_verb_chunks, find_include_chunks, find_input_chunks): + newchunks = [] for c in chunks: if c[0] == 'input': ch = func (c[1]) newchunks = newchunks + ch else: newchunks.append (c) - + chunks = newchunks return chunks @@ -343,29 +364,35 @@ def find_verbatim_chunks (str): (TYPE_STR, CONTENT_STR), where TYPE_STR is one of 'input' and 'verbatim' """ - chunks = [] - while str: m = get_re ('verbatim').search( str) - m2 = get_re ("verb").search( str) + if m == None: + chunks.append( ('input', str)) + str = '' + else: + chunks.append (('input', str[:m.start (0)])) + chunks.append (('verbatim', m.group (0))) + + str = str [m.end(0):] + + return chunks - if m == None and m2 == None: +def find_verb_chunks (str): + + chunks = [] + while str: + m = get_re ("verb").search(str) + if m == None: chunks.append (('input', str)) str = '' - break - - if m == None: - m = m2 + else: + chunks.append (('input', str[:m.start (0)])) + chunks.append (('verbatim', m.group (0))) + str = str [m.end(0):] - if m2 and m2.start (0) < m.start (0): - m = m2 + return chunks - chunks.append (('input', str[:m.start (0)])) - chunks.append (('verbatim', m.group (0))) - - str = str [m.end(0):] - return chunks def find_mudela_shorthand_chunks (str): @@ -480,7 +507,6 @@ def advance_counters (counter, opts, str): def schedule_mudela_block (base, chunk, extra_opts): - """Take the body and options from CHUNK, figure out how the real .ly should look, and what should be left MAIN_STR (meant for the main file). The .ly is written, and scheduled in @@ -498,10 +524,7 @@ def schedule_mudela_block (base, chunk, extra_opts): newbody = '' if 'verbatim' in opts: - verbatim_mangle = body - if __main__.format == 'texi': - verbatim_mangle = re.sub ('([{}])', '@\\1', body) - newbody = get_output ('output-verbatim') % verbatim_mangle + newbody = output_verbatim (body) file_body = compose_full_body (body, opts) updated = update_file (file_body, base + '.ly') @@ -609,9 +632,8 @@ def transform_input_file (in_filename, out_filename): newchunks.append (('mudela', body)) else: newchunks.append (c) - - - chunks = newchunks + chunks = newchunks + if chunks and chunks[0][0] == 'input': chunks[0] = ('input', completize_preamble (chunks[0][1])) @@ -621,7 +643,7 @@ def system (cmd): sys.stderr.write ("invoking `%s'\n" % cmd) st = os.system (cmd) if st: - sys.stderr.write ('Error command exited with value %d\n' % st) + error ('Error command exited with value %d\n' % st) return st def compile_all_files (chunks): diff --git a/stepmake/aclocal.m4 b/stepmake/aclocal.m4 index 602d77213a..66401aa09a 100644 --- a/stepmake/aclocal.m4 +++ b/stepmake/aclocal.m4 @@ -150,7 +150,7 @@ AC_DEFUN(AC_STEPMAKE_GXX, [ # ugh autoconf # urg, egcs: how to check for egcs >= 1.1? changequote(<<, >>)dnl - if $CXX --version | grep '2\.8' > /dev/null || + if $CXX --version | egrep '2\.8|2\.9' > /dev/null || $CXX --version | grep 'egcs' > /dev/null changequote([, ])dnl then @@ -1082,37 +1082,3 @@ main () AC_SUBST(GTK___CFLAGS) AC_SUBST(GTK___LIBS) ]) - -dnl GUILE_FLAGS --- set flags for compiling and linking with Guile -dnl -dnl This macro runs the `guile-config' script, installed with Guile, -dnl to find out where Guile's header files and libraries are -dnl installed. It sets two variables, marked for substitution, as -dnl by AC_SUBST. -dnl -dnl GUILE_CFLAGS --- flags to pass to a C or C++ compiler to build -dnl code that uses Guile header files. This is almost -dnl always just a -I flag. -dnl -dnl GUILE_LDFLAGS --- flags to pass to the linker to link a -dnl program against Guile. This includes `-lguile' for -dnl the Guile library itself, any libraries that Guile -dnl itself requires (like -lqthreads), and so on. It may -dnl also include a -L flag to tell the compiler where to -dnl find the libraries. - -AC_DEFUN([GUILE_FLAGS],[ -## The GUILE_FLAGS macro. - ## First, let's just see if we can find Guile at all. - AC_MSG_CHECKING(for Guile) - guile-config link > /dev/null || { - echo "configure: cannot find guile-config; is Guile installed?" 1>&2 - exit 1 - } - GUILE_CFLAGS="`guile-config compile`" - GUILE_LDFLAGS="`guile-config link`" - AC_SUBST(GUILE_CFLAGS) - AC_SUBST(GUILE_LDFLAGS) - AC_MSG_RESULT(yes) -]) - diff --git a/stepmake/configure b/stepmake/configure index efa10adb72..c20bd4b8c6 100755 --- a/stepmake/configure +++ b/stepmake/configure @@ -53,10 +53,6 @@ fi # Derek Quinn Wyatt 98-08-21 (adapted from Jan Nieuwenhuizen's code) - - - - # Guess values for system-dependent variables and create Makefiles. # Generated automatically using autoconf version 2.13 # Copyright (C) 1992, 93, 94, 95, 96 Free Software Foundation, Inc. @@ -609,7 +605,7 @@ fi stepmake=`echo ${stepmake} | sed "s!\\\${prefix}!$presome!"` echo $ac_n "checking Package""... $ac_c" 1>&6 -echo "configure:613: checking Package" >&5 +echo "configure:609: checking Package" >&5 if test "x$PACKAGE" = "xSTEPMAKE"; then echo "$ac_t""Stepmake package!" 1>&6 (cd stepmake; rm -f stepmake; ln -s ../stepmake .) @@ -637,7 +633,7 @@ ac_configure=$ac_aux_dir/configure # This should be Cygnus configure. else echo "$ac_t""$PACKAGE" 1>&6 echo $ac_n "checking for stepmake""... $ac_c" 1>&6 -echo "configure:641: checking for stepmake" >&5 +echo "configure:637: checking for stepmake" >&5 # Check for installed stepmake if test -d $stepmake; then echo "$ac_t""$stepmake" 1>&6 @@ -760,7 +756,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; } fi echo $ac_n "checking host system type""... $ac_c" 1>&6 -echo "configure:764: checking host system type" >&5 +echo "configure:760: checking host system type" >&5 host_alias=$host case "$host_alias" in @@ -785,7 +781,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:789: checking for $ac_word" >&5 +echo "configure:785: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MAKE'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -820,7 +816,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:824: checking for $ac_word" >&5 +echo "configure:820: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_FIND'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -857,7 +853,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:861: checking for $ac_word" >&5 +echo "configure:857: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_TAR'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -892,7 +888,7 @@ test -n "$TAR" || TAR="error" # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:896: checking for $ac_word" >&5 +echo "configure:892: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -932,7 +928,7 @@ fi # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:936: checking for $ac_word" >&5 +echo "configure:932: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_SHELL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -969,7 +965,7 @@ fi # Extract the first word of "bash", so it can be a program name with args. set dummy bash; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:973: checking for $ac_word" >&5 +echo "configure:969: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_BASH'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1010,7 +1006,7 @@ fi # Extract the first word of "${PYTHON:-python}", so it can be a program name with args. set dummy ${PYTHON:-python}; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1014: checking for $ac_word" >&5 +echo "configure:1010: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_path_PYTHON'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1177,7 +1173,7 @@ fi echo $ac_n "checking language""... $ac_c" 1>&6 -echo "configure:1181: checking language" >&5 +echo "configure:1177: checking language" >&5 case "$language" in En* | en* | Am* | am* | US* | us*) lang=English;; @@ -1210,7 +1206,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1214: checking for $ac_word" >&5 +echo "configure:1210: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_STRIPROFF'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1245,7 +1241,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1249: checking for $ac_word" >&5 +echo "configure:1245: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YODL'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1280,7 +1276,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1284: checking for $ac_word" >&5 +echo "configure:1280: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YODL2HTML'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1315,7 +1311,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1319: checking for $ac_word" >&5 +echo "configure:1315: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YODL2LATEX'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1349,7 +1345,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1353: checking for $ac_word" >&5 +echo "configure:1349: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YODL2MAN'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1384,7 +1380,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1388: checking for $ac_word" >&5 +echo "configure:1384: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YODL2MSLESS'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1419,7 +1415,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1423: checking for $ac_word" >&5 +echo "configure:1419: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YODL2TEXINFO'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1454,7 +1450,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1458: checking for $ac_word" >&5 +echo "configure:1454: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_YODL2TXT'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else @@ -1513,7 +1509,7 @@ do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 -echo "configure:1517: checking for $ac_word" >&5 +echo "configure:1513: checking for $ac_word" >&5 if eval "test \"`echo '$''{'ac_cv_prog_MAKEINFO'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&6 else diff --git a/stepmake/stepmake/c++-targets.make b/stepmake/stepmake/c++-targets.make index 751260e204..139597f9cb 100644 --- a/stepmake/stepmake/c++-targets.make +++ b/stepmake/stepmake/c++-targets.make @@ -1,4 +1,2 @@ -$(configheader): $(depth)/config.h - cp $< $@ diff --git a/stepmake/stepmake/c++-vars.make b/stepmake/stepmake/c++-vars.make index a65b2a7f94..3862835b3e 100644 --- a/stepmake/stepmake/c++-vars.make +++ b/stepmake/stepmake/c++-vars.make @@ -27,5 +27,3 @@ O_FILES+=$(addprefix $(outdir)/, $(CC_FILES:.cc=.o) $(LL_FILES:.ll=.o) $(YY_FILE TAGS_FILES += $(TCC_FILES) $(HH_FILES) $(INL_FILES) $(CC_FILES) -# hmm -configheader=$(outdir)/config.hh diff --git a/stepmake/stepmake/c-targets.make b/stepmake/stepmake/c-targets.make index 55b82ab182..5ff8b1d765 100644 --- a/stepmake/stepmake/c-targets.make +++ b/stepmake/stepmake/c-targets.make @@ -1,2 +1,2 @@ -$(configheader): $(depth)/config.h - cp $< $@ + +#empty. diff --git a/stepmake/stepmake/c-vars.make b/stepmake/stepmake/c-vars.make index 5965b2276a..4009610f31 100644 --- a/stepmake/stepmake/c-vars.make +++ b/stepmake/stepmake/c-vars.make @@ -22,5 +22,3 @@ C_OUTPUT_OPTION = -o $@ $< CFLAGS = $(ICFLAGS) $(DEFINES) $(addprefix -I,$(INCLUDES)) $(USER_CFLAGS) $(EXTRA_CFLAGS) $(MODULE_CFLAGS) -# hmm -configheader=$(outdir)/config.h diff --git a/stepmake/stepmake/executable-targets.make b/stepmake/stepmake/executable-targets.make index 65bb377267..db4a7e0b99 100644 --- a/stepmake/stepmake/executable-targets.make +++ b/stepmake/stepmake/executable-targets.make @@ -5,7 +5,7 @@ default: $(EXECUTABLE) -$(EXECUTABLE): $(configheader) $(O_FILES) $(outdir)/version.hh +$(EXECUTABLE): $(depth)/config.h $(O_FILES) $(outdir)/version.hh $(foreach a, $(MODULE_LIBS), $(MAKE) -C $(a) && ) true $(LD_COMMAND) $(O_FILES) $(LOADLIBES) diff --git a/stepmake/stepmake/generic-vars.make b/stepmake/stepmake/generic-vars.make index 5f8b78d86e..b9aacf192f 100644 --- a/stepmake/stepmake/generic-vars.make +++ b/stepmake/stepmake/generic-vars.make @@ -84,7 +84,7 @@ date := $(shell date +%x) #duplicated? # ARFLAGS = ru -INCLUDES = include $(outdir) $($(PACKAGE)_INCLUDES) $(MODULE_INCLUDES) +INCLUDES = $(depth) include $(outdir) $($(PACKAGE)_INCLUDES) $(MODULE_INCLUDES) # urg: for windows ? # LOADLIBES = $(MODULE_LIBES) $($(PACKAGE)_LIBES) $(EXTRA_LIBES) -lstdc++ diff --git a/stepmake/stepmake/library-targets.make b/stepmake/stepmake/library-targets.make index f032aa5425..ce12f8ff11 100644 --- a/stepmake/stepmake/library-targets.make +++ b/stepmake/stepmake/library-targets.make @@ -4,11 +4,11 @@ default: $(LIBRARY) -$(outdir)/library.a: $(configheader) $(O_FILES) $(MODULE_LIBES) +$(outdir)/library.a: $(depth)/config.h $(O_FILES) $(MODULE_LIBES) $(AR_COMMAND) $(O_FILES) $(RANLIB_COMMAND) -$(SHAREDLIBRARY): $(configheader) $(O_FILES) $(MODULE_LIBES) +$(SHAREDLIBRARY): $(depth)/config.h $(O_FILES) $(MODULE_LIBES) $(LD_COMMAND) $(O_FILES) -o $@.$(VERSION) rm -f $@ ln -sf $(outdir)/$(LIB_PREFIX)$(NAME).so.$(VERSION) $@.$(MAJOR_VERSION) diff --git a/tex/lily-ps-defs.tex b/tex/lily-ps-defs.tex index bad2bdc0a6..cb353c583b 100644 --- a/tex/lily-ps-defs.tex +++ b/tex/lily-ps-defs.tex @@ -14,6 +14,11 @@ % ``compiles'' operatorname binding in the body of foo, making % the code faster, and more reliable (less flexible) + +% +% TODO : use GUILE for this kind of muckery. +% + {% \def\par{ }% %Ugh. Don't try this at home, kids! % neat file-include trick by Piet van Oostrum diff --git a/tex/lilyponddefs.tex b/tex/lilyponddefs.tex index 627e5987f0..d983e92830 100644 --- a/tex/lilyponddefs.tex +++ b/tex/lilyponddefs.tex @@ -27,6 +27,8 @@ % \def\botalign#1{\vbox to 0pt{\vss #1}} \def\leftalign#1{\hbox to 0pt{#1\hss}} + +\input feta20.tex \font\textmusic=cmmi10 \def\textsharp{\raise.4ex\hbox{\textmusic\char"5D}} \def\textnatural{\raise.4ex\hbox{\textmusic\char"5C}} @@ -35,6 +37,7 @@ + % stacked horizontal lines \def\interscoreline{\vskip 16pt} \def\placebox#1#2#3{%