+2006-10-04 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * python/lilylib.py (system): use os.system for mingw32
+
+ * scripts/lilypond-book.py (bindir): use os.pathsep for prepending
+ to $PATH.
+
+ * scm/backend-library.scm: update email address.
+
+ * Documentation/topdocs/NEWS.tely (Top): add duration-log override
+ example.
+
+ * scm/define-grobs.scm (all-grob-descriptions): use callback to
+ calc dot count.
+
+ * lily/dots-engraver.cc (class Dots_engraver): new engraver:
+ handle dot creation separately.
+
+ * lily/tab-note-heads-engraver.cc (process_music): idem.
+
+ * lily/drum-note-engraver.cc (process_music): idem.
+
+ * lily/note-heads-engraver.cc (process_music): idem.
+
+ * lily/rest-engraver.cc: don't set duration-log.
+
+ * scm/output-lib.scm (string-number::calc-text): new function.
+ (note-head::calc-duration-log): new function.
+
+ * lily/fingering-engraver.cc (make_script): remove 'text setting.
+
+ * scm/output-lib.scm (fingering::calc-text): new function.
+
+2006-10-04 Mats Bengtsson <mabe@drongo.s3.kth.se>
+
+ * scripts/lilypond-book.py: Fix typo gs-load-font -> gs-load-fonts
+ and include-eps-font -> include-eps-fonts
+
+2006-10-03 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * lily/multi-measure-rest-engraver.cc: use internalBarNumber
+
+ * lily/timing-translator.cc: list properties.
+ (start_translation_timestep): update internalBarNumber too.
+
+ * scm/define-context-properties.scm
+ (all-user-translation-properties): add internalBarNumber.
+
+ * input/regression/spacing-no-note.ly: new file.
+
+ * buildscripts/output-distance.py (link_file): verbosity for OSError.
+
+ * lily/book.cc: #include cleanup.
+
+ * lily/include/lily-guile-macros.hh: add assert to
+ scm_or_str2symbol(SCM).
+
+ * VERSION (PATCH_LEVEL): bump version.
+
+ * lily/spacing-spanner.cc (musical_column_spacing): handle
+ musical->nonmusical spacing case, where there is no spacing
+ wish. Fixes issue #61.
+
+ * lily/pango-font.cc (text_stencil): allow 'tight' bounds.
+ (pango_item_string_stencil): use logical rect horizontally (to
+ preserve spaces), ink_rect vertically (for time signatures).
+
+ * lily/font-metric.cc (word_stencil): new interface function
+
+ * input/regression/utf-8-mixed-text.ly: new file.
+
+ * lily/percent-repeat-engraver.cc (listen_percent): remove
+ spurious warning.
+
+ * lily/phrasing-slur-engraver.cc (acknowledge_script): only ack
+ non-dynamic scripts. Fixes #30.
+
+ * lily/slur.cc (outside_slur_callback): make offset_scm optional.
+
+ * lily/beam.cc (rest_collision_callback): make prev_offset optional.
+
+ * lily/grob-closure.cc (chain_offset_callback): don't pass 0 but
+ SCM_UNDEFINED for non-existent data.
+
+ * lily/side-position-interface.cc (general_side_position): allow
+ optional current_offset argument for chaining, so combinations of side-position
+ and outside slur callback don't add up. Fixes issue #92.
+
+ * lily/pango-font.cc (pango_item_string_stencil): use
+ logical_rect. This prevents spaces after words from disappearing,
+ issue #72.
+
+ * VERSION: release 2.9.20
+
+2006-10-02 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * scm/define-grob-properties.scm (all-user-grob-properties):
+ mention stencil as user settable.
+
+2006-10-02 Joe Neeman <joeneeman@gmail.com>
+
+ * Documentation/user/page.itely (Page formatting):
+ document auto-first-page-number
+
+ * lily/page-breaking.cc (find_chunks_and_breaks):
+ * lily/paper-score.cc (calc_breaking): Follow changes to the
+ Constrained_breaking interface
+
+ * lily/constrained-breaking.cc (calc_subproblem): run the main loop
+ here backwards, as an optimisation
+ (initialize): new function; move most of the code in resize () here
+ (combine_demerits): cache ragged_right_
+ (Constrained_breaking): constructor now takes the Paper_score
+
+2006-10-02 Erik Sandberg <mandolaerik@gmail.com>
+
+ * lily/lexer.ll, lily/parser.yy: Add EXPECT_NO_MORE_ARGS token, to
+ avoid parser lookahead for 0-ary functions.
+
+ * lily/translator.cc: Extract event classes from
+ IMPLEMENT_TRANSLATOR_LISTENER for documentation generation.
+
+2006-10-02 Heikki Junes <hjunes@gmail.com>
+
+ * po/fi.po: Fix spaces, commas etc. in Finnish translation using
+ KBabel fix tool.
+
+2006-10-01 Nicolas Sceaux <nicolas.sceaux@free.fr>
+
+ * scm/layout-page-layout.scm (page-breaking-wrapper): new
+ function. Call the page breaking function selected in the
+ `page-breaking' \paper variable, then the post processing function
+ chosen using the `page-post-process' \paper variable.
+ (line-height): new function. Return the height of a system.
+ (line-minimum-position-on-page): new function. Return the position
+ of a system on page (using the previous line position), only
+ considering between system padding.
+ (stretchable-line?): new function. Says whether a line can be
+ stretched (ie. is not a title nor a single staff system).
+ (page-maximum-space-left): new function. Computes space left on a
+ page, when all systems are separated by their padding.
+
+ * lily/page-breaking.cc (breaking::make_pages): Move page post
+ processing function call to page breaking wrapper (common to all
+ page breakers).
+
+ * lily/paper-book.cc (book::pages): call the page breaking
+ wrapper, instead of the page breaker directly
+
+ * ly/paper-defaults.ly: Add \paper variables for page breaking
+ wrapper and page post processing function. Make
+ `write-page-layout' value depend on the 'dump-tweaks option. Add a
+ `system-maximum-stretch-procedure' variable for holding a function
+ computing the maximum stretch a system allows.
+
+ * scm/layout-page-dump.scm (write-page-breaks): computes the
+ stretch to apply to systems on a page to minimize left
+ space. Dump this stretch length.
+
+ * ly/music-functions-init.ly (spacingTweaks): implement it. Read
+ the system-stretch property of the tweak data to stretch the
+ system.
+ (includePageLayoutFile): Void function which includes the
+ generated page-layout file if it exists and if the page layout
+ dumping is not asked.
+ (scoreTweak): if the score tweak named by the argument exists,
+ return it.
+
+2006-10-01 Joe Neeman <joeneeman@gmail.com>
+
+ * lily/page-spacing.cc (compress_lines, uncompress_solution):
+ handle correctly the case where there are multiple \noPageBreaks
+ in a row.
+
+2006-09-30 Laura Conrad <lconrad@laymusic.org>
+
+ * abc2ly.py adds segno (S) and Coda (O) to articulations.
+
+ * abc2ly.py fix so that entering " -- " will translate to a -- in
+ the lilypond instead of a " - - "
+
+2006-09-30 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * lily/align-interface.cc: fix typo
+
+ * lily/dynamic-text-spanner.cc (print): Add a special case for
+ trill spanner right sides.
+
+ * scm/define-grobs.scm (all-grob-descriptions): set padding to 0.1
+
+ * lily/align-interface.cc (get_extents_aligned_translates): add
+ support for padding variable.
+
+ * lily/break-align-interface.cc (self_align_callback): oops: use
+ loop variable in guard.
+
+ * input/regression/repeat-percent-grace.ly: new file.
+
+ * lily/percent-repeat-engraver.cc (start_translation_timestep):
+ remember first currentCommandColumn of a grace run. Fixes issue 70.
+
+ * lily/percent-repeat-iterator.cc (class Percent_repeat_iterator):
+ move class definition to CC file.
+
+ * lily/multi-measure-rest.cc (percent): use robust_relative_extent()
+
+ * lily/slash-repeat-engraver.cc (listen_percent): don't warn for
+ measure-long repeats.
+
+ * flower/include/international.hh: include stdarg.h
+
+2006-09-30 Joe Neeman <joeneeman@gmail.com>
+
+ * lily/page-turn-page-breaking.cc (calc_demerits): now that we allow
+ put_systems_on_pages to return an empty result, we need to assign
+ demerits properly in that case.
+ (put_systems_on_pages): Make the number of pages depend on the
+ evenness of page_number. Add auto-first-page-number.
+ (calc_subproblem): ensure that the page-number is even for the
+ left-hand page. Warn if the first page-turn doesn't fit onto the
+ first (right-hand) page.
+
+ * lily/page-spacing.cc (solve): bug: demerits_ would always be inf
+ (min_page_count): make this publicly accessible
+ (min_page_count): fix a bug when there are forced page breaks that
+ was introduced when I made this loop run backwards
+ (space_systems_on_n_pages, space_systems_on_n_or_one_more_pages):
+ replace space_systems_on_min_pages with these two. The logic in
+ space_systems_on_min_pages was getting too convoluted and is better
+ contained in page-turn-page-breaking.
+
+ * lily/page-turn-engraver.cc (breakable_column): remove an always-true
+ conditional
+ (breakable_column): typo
+
+ * lily/source-file.cc (get_line): fix off-by-one error
+ and clean up some of the logic
+
+2006-09-29 Joe Neeman <joeneeman@gmail.com>
+
+ * lily/page-breaking.cc (make_pages): honour the first-page-number
+ property
+
+2006-09-27 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * VERSION (PACKAGE_NAME): bump version.
+
+2006-09-26 Pal Benko <benko.pal@gmail.com>
+
+ * scm/parser-clef.scm: add petrucci-f3 and -f4 clefs
+ (the latter is the same as petrucci-f which is kept for compatibility)
+
+2006-09-26 Erik Sandberg <mandolaerik@gmail.com>
+
+ * lily/part-combine-iterator.cc: solo1-event -> solo-one-event
+
+2006-09-26 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * lily/global-context.cc (run_iterator_on_me): break out of loop
+ if moment doesn't increase.
+
+ * scm/define-grob-properties.scm (all-user-grob-properties): add
+ forced property.
+
+ * lily/accidental.cc (after_line_breaking): read forced property.
+
+ * lily/accidental-engraver.cc (process_acknowledged): set 'forced
+ property.
+
+ * input/regression/accidental-forced-tie.ly: new file.
+
+2006-09-25 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * ly/engraver-init.ly: set ignoreFiguredBassRest in Staff context.
+
+ * lily/figured-bass-engraver.cc: only listen to rest events if
+ ignoreFiguredBassRest is not set.
+
+ * scm/define-context-properties.scm
+ (all-user-translation-properties): add ignoreFiguredBassRest property
+
+2006-09-24 Joe Neeman <joeneeman@gmail.com>
+
+ * lily/paper-book.cc (get_system_specs):
+ (set_system_penalty): fix breakbefore.
+ We used to set a penalty on the system after the break, now we
+ set a permission on the system before the break
+
+ * lily/grob-property.cc: add scm debugging hooks into
+ property modification
+
+ * lily/context-property.cc:
+ * lily/engraver.cc:
+ rename make_foo_from_properties to internal_make_foo and
+ move it from context-property.cc to a member function of
+ Engraver.
+
+ * lily/include/lily-guile-macros.hh:
+ overload ly_symbol2scm macro so that there is no more need
+ to use internal_foo
+
+ * lily/volta-repeat-iterator.cc:
+ * lily/tweak-engraver.cc:
+ * lily/tuplet-bracket.cc:
+ * lily/span-bar-engraver.cc:
+ * lily/script-engraver.cc:
+ * lily/prob-scheme.cc:
+ * lily/pointer-group-interface.cc:
+ * lily/parser.yy:
+ * lily/grob-scheme.cc:
+ * lily/grob-property.cc:
+ * lily/context.cc:
+ * lily/context-property.cc:
+ * lily/break-substitution.cc:
+ * lily/break-align-engraver.cc:
+ * lily/axis-group-interface.cc:
+ * lily/align-interface.cc:
+ remove calls to internal_FOO
+
+ * lily/system-start-delimiter-engraver.cc:
+ * lily/parenthesis-engraver.cc:
+ * lily/accidental-engraver.cc:
+ remove calls to make_foo_from_properties
+
+2006-09-23 Graham Percival <gpermus@gmail.com>
+
+ * Documentation/user/programming-iterfaces.itely: fix
+ def-music-function -> define-music... leftover.
+
+2006-09-23 Joe Neeman <joeneeman@gmail.com>
+
+ * lily/page-spacing.cc (min_page_count): by running the loop
+ backwards, we can calculate ragged_last properly.
+
+2006-09-22 Mats Bengtsson <mabe@drongo.s3.kth.se>
+
+ * ly/titling-init.ly (scoreTitleMarkup): Rename (typo!?)
+ printfirst-page-number -> print-first-page-number
+
+ * python/convertrules.py: corresponding rule.
+
+ * Documentation/user/page.itely (Page formatting): Document the
+ default values of all page layout parameters.
+
+2006-09-22 Erik Sandberg <mandolaerik@gmail.com>
+
+ * lily/lexer.ll: remove limitation on music function arity. New
+ mode extratoken, which inserts extra EXPECT_* tokens after
+ MUSIC_FUNCTION token. Junk all MUSIC_FUNCTION_* tokens.
+
+ * lily/parser.yy: Change grammar for music function accordingly.
+
+ * lily/include/lily-parser.hh: New method get_state, new member
+ hidden_state. Works around a problem when parser fetches
+ MUSIC_FUNCTION token but not the following EXPECT_* token.
+
+ * lily/translator.cc, lily/context.cc:, lily/translator-group.cc:
+ remove try_music
+
+ * lily/*-engraver.cc, lily/*-performer.cc: Remove all remaining
+ references to Music; use ASSIGN_EVENT_ONCE everywhere
+
+ * lily/grob-info.cc: junk *music_cause
+
+ * lily/music.cc: copy eventified articulations to stream event
+
+ * lily/part-combine-iterator.cc: Cleanup using enums
+
+ * lily/translator-group.cc: Junk OldMusicEvent, and associated
+ methods
+
+ * lily/include/engraver.hh: Junk music.hh include
+
+ * lily/stream-event.cc: Changed constructors
+
+2006-09-21 Graham Percival <gpermus@gmail.com>
+
+ * Documentation/user/tweaks.itely (Fitting music onto fewer
+ pages): change settings to avoid warning messages.
+
+2006-09-21 Mats Bengtsson <mabe@drongo.s3.kth.se>
+
+ * Documentation/user/tweaks.itely (Fitting music onto fewer
+ pages): Add between-system-space setting.
+
+2006-09-21 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * lily/accidental-placement.cc (calc_positioning_done): don't
+ trigger Y-extent calculation too early. Use pure_height instead.
+
+ * lily/scale.cc (LY_DEFINE): new file.
+
+2006-09-20 Joe Neeman <joeneeman@gmail.com>
+
+ * lily/page-breaking.cc (find_chunks_and_breaks): ignore breaks
+ that happen at the start of a score: having a zero-length
+ chunk was messing up min_system_count calculations.
+
+ * lily/source-file.cc (get_line): lower_bound, not
+ binary_search. Fixes problem where point-and-click would
+ always point to the first line.
+
+2006-09-20 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * lily/accidental-placement.cc (calc_positioning_done): also put
+ stems into accidental support.
+
+ * lily/tie-engraver.cc (process_music): also set tieMelismaBusy if
+ event_ detected.
+
+ * scm/script.scm (default-script-alist): avoid-slur and
+ slur-padding for portato script.
+
+ * lily/stem-tremolo.cc (translated_stencil): new function.
+ (height): use new function. Fixes tremolos on whole notes.
+
+ * lily/slur-scoring.cc (get_best_curve): don't crash if no optimal
+ slur found.
+
+2006-09-19 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * scripts/abc2ly.py (try_parse_comment): idem.
+
+ * scripts/lilypond-book.py (find_toplevel_snippets): use 'foo' in
+ bar_string iso. string.find()
+
+ * lily/*.cc: idem.
+
+ * lily/slur.cc (get_curve): always use scm_is_pair() looping
+ scheme lists.
+
+2006-09-18 Graham Percival <gpermus@gmail.com>
+
+ * Documentation/user/basic-notation.itely: add bug
+ warning about ties and octavation/clef.
+
+2006-09-18 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * VERSION (PACKAGE_NAME): release 2.9.18
+
+2006-08-29 Milan Zamazal <pdm@brailcom.org>
+
+ * elisp/lilypond-mode.el (LilyPond-command-alist): Don't try to
+ figure out midi file names right here.
+
+2006-09-17 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * scm/framework-ps.scm (dump-stencil-as-EPS): naming pad-eps-boxes.
+
+ * scm/backend-library.scm: option naming: gs-font-load*s*
+
+ * scm/framework-eps.scm (dump-stencils-as-EPSes): rename option to
+ include-eps-fonts
+
+2006-09-17 Joe Neeman <joeneeman@gmail.com>
+
+ * scm/define-music-types.scm (music-descriptions): remove
+ BreakEvent and fix {Page,Line}{Break,Turn}Event so
+ Music::to_event doesn't complain.
+
+ * lily/accidental-placement.cc (ape_compare):
+ * lily/semi-tie.cc (compare):
+ * lily/note-column.cc (shift_compare): replace by XXX_less
+
+ * lily/tie-formatting-problem.cc (set_chord_outline):
+ * lily/tie-column.cc (calc_positioning_done):
+ * lily/system.cc (post_processing)
+ (get_paper_system):
+ * lily/stem.cc (note_head_positions)
+ (calc_positioning_done):
+ * lily/spanner.cc (do_break_processing)
+ (find_broken_piece):
+ * lily/span-bar.cc (print):
+ * lily/semi-tie-column.cc (calc_positioning_done):
+ * lily/rest-collision.cc (calc_positioning_done):
+ * lily/program-option.cc (get_help_string):
+ * lily/note-collision.cc (get_clash_groups):
+ * lily/new-fingering-engraver.cc (position_scripts):
+ * lily/keyword.cc (Keyword_table):
+ * lily/hara-kiri-group-spanner.cc (request_suicide):
+ * lily/grob-pq-engraver.cc (stop_translation_timestep):
+ * lily/accidental-placement.cc (calc_positioning_done):
+ (stagger_apes):
+ * lily/beam.cc (get_beam_segments):
+ * lily/grob-array.cc (remove_duplicates):
+ use new vector_sort
+
+ * input/mutopia/W.A.Mozart/mozart-hrn3-defs.ily:
+ ragged-last-bottom = ##f (test the new page breaker)
+
+ * flower/include/std-vector.hh (vector_sort): use STL sort stuff
+
+ * scm/define-context-properties.scm
+ (all-internal-translation-properties): remove properties that
+ were used to communicate page-turn stuff to the paper-column
+ engraver.
+
+ * lily/lily-guile.cc (robust_scm2string): new function
+
+ * lily/paper-column-engraver.cc: Clean up page turn stuff
+
+ * lily/page-turn-engraver.cc: Re-write the page turn logic here
+ instead of cluttering up paper-column-engraver.cc
+
+2006-09-17 Nicolas Sceaux <nicolas.sceaux@free.fr>
+
+ * scm/layout-page-dump.scm (scm): export utility function names,
+ to allow user writing cutsom dumping functions.
+
+ * scm/layout-page-layout.scm: export utility function names to
+ enable custom page breaking function writing. Tabify.
+ (line-next-space): use ?-suffix only for predicates
+ (page-maximum-space-to-fill): new function. Return the space
+ between first and bottom system of a page, to give to
+ space-systems.
+ (space-systems): use a space-to-fill argument (for instance as
+ computed by page-maximum-space-to-fill) instead of computing
+ internaly this space with the page height. That way, the caller
+ can adjust the space to use.
+ (make-page-from-systems, walk-paths): compute space to fill before
+ calling space-systems.
+
+2006-09-17 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * scm/script.scm (default-script-alist): set paddings for every
+ type here, increase for portato mark.
+
+ * scm/lily.scm (define-scheme-options): typo: add s, so it is
+ -dinclude-eps-fonts
+
+2006-09-16 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * scm/define-grobs.scm (all-grob-descriptions): oops, typo:
+ use spanner::set-spacing-rods
+
+ * lily/note-column.cc: reformat.
+
+ * lily/rest-collision.cc (calc_positioning_done): fix whole/half
+ step positioning for note/rest combinations.
+
+ * input/regression/rest-note-collision.ly: new file.
+
+ * scm/define-grobs.scm (all-grob-descriptions): add
+ springs-and-rods
+
+ * flower/include/std-vector.hh: switch off again.
+
+ * VERSION (PATCH_LEVEL): bump to 2.9.18
+
+ * flower/include/std-string.hh: idem.
+
+ * flower/include/std-vector.hh (_GLIBCXX_DEBUG): set if NDEBUG not set.
+
2006-09-15 Mats Bengtsson <mabe@drongo.s3.kth.se>
* ly/engraver-init.ly: Make FiguredBass accepted in GrandStaff and
* lily/grob.cc (get_print_stencil): use retval.expr() as base for
color, not the original stencil. Fixes combinations of
- color/transparency/rotation. Backportme.
+ color/transparency/rotation.
* scripts/lilypond-book.py (main): add --formats=eps for
texinfo/latex.
(get_line_configuration): don't use cols.resize(); it introduces
initialized data.
- * scm/framework-ps.scm (dump-page): add setstrokeadjust. Backportme.
+ * scm/framework-ps.scm (dump-page): add setstrokeadjust.
* ps/music-drawing-routines.ps: remove selectfont L1 hack.