+2006-09-30 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * 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
+ PianoStaff.
+
+2006-09-08 Joe Neeman <joeneeman@gmail.com>
+
+ * Documentation/user/page.itely: update page breaking documentation
+
+2006-09-07 Han-Wen Nienhuys <hanwen@lilypond.org>
+
+ * lily/note-collision.cc (calc_positioning_done): only access
+ first head if available.
+
+ * lily/tuplet-engraver.cc: add tupletFullLengthNote to description.
+
+ * scm/framework-ps.scm (output-preview-framework): use new name.
+
+ * lily/program-option.cc (internal_set_option): use new names.
+
+ * Documentation/user/SConscript (lilypond_book_flags): update -d
+ variable names.
+
+ * Documentation/user/lilypond-book.itely (Inserting LilyPond
+ output into other programs): new variable names.
+
+ * scm/lily.scm (define-scheme-options): uniformize var names.
+
+ * lily/tuplet-engraver.cc (listen_tuplet_span): verify that
+ tuplets_ is non-empty before popping.
+
+2006-09-07 Joe Neeman <joeneeman@gmail.com>
+
+ * lily/spanner.cc (find_broken_piece):
+ * lily/spacing-spanner.cc (get_columns):
+ * lily/source-file.cc (get_line):
+ * lily/simple-spacer.cc (get_column_description):
+ * lily/keyword.cc (lookup):
+ use the new binary search.
+
+ * flower/include/std-vector.hh: replace binary_search with
+ a more STL-like version
+
+2006-09-04 Michael Welsh Duggan <md5i@cs.cmu.edu>
+
+ * lily/tie-performer.cc: remove unused last_event_ property.
+ (class Tie_performer): add now_tied_heads_ property for
+ partially-tied heads.
+ (acknowledge_audio_element): when adding an Audio_note, put the
+ note in now_tied_heads_ if the audio note is partially tied.
+ (stop_translation_timestep): always include entries in
+ now_tied_heads_ in heads_to_tie_.
+
+ * lily/drum-note-performer.cc (process_music): look for tie-events
+ in the articulations; pass to Audio_note constructor.
+
+ * lily/note-performer.cc (process_music): look for tie-events in
+ the articulations; pass to Audio_note constructor.
+
+ * lily/audio-item.cc (Audio_note): Initialize tie_event_ in
+ constructor.
+
+ * lily/include/audio-item.hh (class Audio_note): add tie_event_.
+ include initializer in constructor.
+
+2006-09-02 Joe Neeman <joeneeman@gmail.com>
+
+ * lily/simple-spacer.cc (get_line_forces): Ignore loose columns
+ unless they are breakable. This fixes discrepancies between the forces
+ calculated here and the forces calculated in get_line_configuration.
+
+ * lily/grob.cc (pure_relative_y_coordinate): fix some
+ mis-estimation that was happening with piano staves.
+
+ * lily/constrained-breaking.cc (resize): don't choke if we get a
+ measure that won't fit on a line.
+ (combine_demerits): don't consider uniformity when ragged
+
+ * lily/page-spacing.cc (solve): why the f* were there two of these?
+ (calc_subproblem): properly handle the case where a system is taller
+ than the page.
+
+ * lily/system.cc (get_paper_system): ensure that all the permissions
+ and penalties are passed to the paper systems.
+
+ * lily/page-breaking.cc (create_system_list): support system-count.
+
+ * scm/define-grobs.scm (pure-print-callbacks): add
+ ly:script-interface::print
+
+ * lily/page-spacing.cc (min_page_count): fix calculation of min
+ pages if we are ragged and there are non-zero springs.
+
+ * scm/layout-page-layout.scm: if the pure-height estimates are under
+ the real height, allow space-systems to ignore padding if it is
+ needed in order to fit the systems on one page
+
+ * lily/optimal-page-breaking.cc (try_page_spacing): fix reading
+ ragged properties
+ (solve): fix performance problem. Make sure we always get at least
+ one solution
+
+ * lily/page-breaking.cc (make_pages): include write-page-breaks
+ and page-stencil
+
+ * lily/paper-score.cc (calc_breaking): remove Gourlay breaker
+
+ * scm/define-grobs.scm: add the new slur-callback
+ fix pure-relevant to not exclude grobs whose extent is already
+ calculated
+
+ * ly/paper-defaults.ly: make ly:optimal-breaking the new default
+ page breaker
+
+ * lily/slur.cc (pure_height): new callback to estimate the height
+ of a slur
+
2006-09-02 Graham Percival <gpermus@gmail.com>
* Documentation/user/invoking.itely: small update on
2006-09-01 Han-Wen Nienhuys <hanwen@lilypond.org>
- * VERSION (MY_PATCH_LEVEL): bump VERSION.
+ * VERSION (MY_PATCH_LEVEL): release 2.9.17
* lily/lexer.ll: accept EOF in all states.
* 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.