From: Han-Wen Nienhuys Date: Sun, 5 May 2002 19:38:05 +0000 (+0000) Subject: tie accs X-Git-Tag: release/1.5.56~20 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=fe7f261ee0af99c63992eacff86bec6ab718f3c5;p=lilypond.git tie accs --- diff --git a/ChangeLog b/ChangeLog index 0190906c7f..6d1121484f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2002-05-05 Han-Wen Nienhuys + + * lily/accidental.cc (after_line_breaking): add break tie + reminders. + + * lily/text-engraver.cc (try_music): don't typeset fingerings + +2002-05-05 Heikki Junes + + * lilypond-font-lock.el: Handle \breve as a note (rest) duration. + 2002-05-04 Han-Wen * lily/*.cc: change gh_str02scm() to ly_str02scm(). @@ -1086,7 +1097,7 @@ 2002-03-12 Rune Zedeler - * lily/beam.cc lily/stem.cc lily/beam-engraver.cc allow for + * lily/beam.cc lily/stem.cc lily/beam-engraver.cc: allow for stemLeftBeamCount and stemRightBeamCount to equal 0. Fixes [c8 c4 c8] diff --git a/VERSION b/VERSION index 45393be426..6f9ba79be6 100644 --- a/VERSION +++ b/VERSION @@ -2,7 +2,7 @@ PACKAGE_NAME=LilyPond MAJOR_VERSION=1 MINOR_VERSION=5 PATCH_LEVEL=55 -MY_PATCH_LEVEL=hwn1 +MY_PATCH_LEVEL=hjj1 # use the above to send patches: MY_PATCH_LEVEL is always empty for a # released version. diff --git a/lily/accidental-engraver.cc b/lily/accidental-engraver.cc index adb0d18d34..2558c14f0e 100644 --- a/lily/accidental-engraver.cc +++ b/lily/accidental-engraver.cc @@ -266,7 +266,7 @@ Accidental_engraver::create_grobs () SCM c0 = get_property ("centralCPosition"); if (gh_number_p (c0)) Staff_symbol_referencer::set_position (key_item_p_, gh_scm2int (c0)); - + announce_grob (key_item_p_, SCM_EOL); } @@ -344,8 +344,8 @@ Accidental_engraver::create_grobs () if (key_item_p_) { /* - We add the accidentals to the support of the arpeggio, so it is put left of the - accidentals. + We add the accidentals to the support of the arpeggio, so it + is put left of the accidentals. */ for (int i = 0; i < arpeggios_.size (); i++) diff --git a/lily/accidental.cc b/lily/accidental.cc index fbd1633ae7..d020ca9349 100644 --- a/lily/accidental.cc +++ b/lily/accidental.cc @@ -14,6 +14,7 @@ class Accidental_interface { public: DECLARE_SCHEME_CALLBACK (brew_molecule, (SCM)); + DECLARE_SCHEME_CALLBACK (after_line_breaking, (SCM)); static bool has_interface (Grob*); }; @@ -28,6 +29,21 @@ parenthesize (Grob*me, Molecule m) return m; } + +MAKE_SCHEME_CALLBACK (Accidental_interface,after_line_breaking,1); +SCM +Accidental_interface::after_line_breaking (SCM smob) +{ + Grob *me = unsmob_grob (smob); + Grob *tie = unsmob_grob (me->get_grob_property ("tie")); + + if (tie && !tie->original_l_) + { + me->suicide (); + } + return SCM_UNSPECIFIED; +} + MAKE_SCHEME_CALLBACK (Accidental_interface,brew_molecule,1); SCM Accidental_interface::brew_molecule (SCM smob) @@ -77,4 +93,4 @@ Accidental_interface::brew_molecule (SCM smob) ADD_INTERFACE(Accidental_interface, "accidental-interface", "a single accidental", - "style accidentals"); + "style tie accidentals"); diff --git a/lily/dynamic-engraver.cc b/lily/dynamic-engraver.cc index b72737f4c7..8f4cffa99c 100644 --- a/lily/dynamic-engraver.cc +++ b/lily/dynamic-engraver.cc @@ -258,7 +258,7 @@ Dynamic_engraver::process_music () cresc_p_->set_grob_property ("edge-text", gh_cons (s, ly_str02scm (""))); daddy_trans_l_->set_property ((start_type + "Text").ch_C(), - SCM_UNDEFINED); + SCM_EOL); } } diff --git a/lily/local-key-item.cc b/lily/local-key-item.cc index 1014a232e7..23fb506d8b 100644 --- a/lily/local-key-item.cc +++ b/lily/local-key-item.cc @@ -5,6 +5,7 @@ (c) 1997--2002 Han-Wen Nienhuys */ + #include "local-key-item.hh" #include "molecule.hh" #include "staff-symbol-referencer.hh" @@ -92,8 +93,8 @@ Local_key_item::after_line_breaking (SCM smob) { /* there should be a better way to delete part of me */ scm_set_car_x (s, scm_list_n (ly_caar (s), - ly_symbol2scm ("deleted"), - SCM_UNDEFINED)); + ly_symbol2scm ("deleted"), + SCM_EOL)); me->set_grob_property ("molecule", SCM_EOL); } } diff --git a/lily/new-accidental-engraver.cc b/lily/new-accidental-engraver.cc index 8fe112107e..d192b230f9 100644 --- a/lily/new-accidental-engraver.cc +++ b/lily/new-accidental-engraver.cc @@ -305,7 +305,11 @@ New_accidental_engraver::create_grobs () */ if (tie_break_reminder) - ; // TODO. + { + // TODO. + a->set_grob_property ("tie", tie_break_reminder->self_scm()); + } + support_l->set_grob_property ("accidental-grob", a->self_scm ()); diff --git a/lily/text-engraver.cc b/lily/text-engraver.cc index 38716da2af..f720ff15a7 100644 --- a/lily/text-engraver.cc +++ b/lily/text-engraver.cc @@ -37,6 +37,7 @@ bool Text_engraver::try_music (Music *m) { if (dynamic_cast (m) + && m->get_mus_property ("text-type") != ly_symbol2scm ("finger") && m->get_mus_property ("text-type") != ly_symbol2scm ("dynamic")) { reqs_.push (dynamic_cast (m)); diff --git a/lilypond-font-lock.el b/lilypond-font-lock.el index fc66140a61..308d3faaf9 100644 --- a/lilypond-font-lock.el +++ b/lilypond-font-lock.el @@ -33,7 +33,7 @@ "accent" "accepts" "accompany" "\\(add\\)?lyrics" "\\(aeol\\|dor\\|ion\\|locr\\|\\(mixo\\)?lyd\\|phryg\\)ian" "alias" "\\(altern\\|rel\\)ative" "apply" "arpeggio" "autochange" "bar" "break" -"breathe" "breve" "beamintervals" "broken" "blend" "\\(bc\\|end\\)incipit" +"breathe" "beamintervals" "broken" "blend" "\\(bc\\|end\\)incipit" "ch\\(ar\\)?" "cg" "chord\\(s\\|stest\\|\\(chord\\)?modifiers\\)?" "clef[ \t]*\"?\\(F\\|G\\|alto\\|baritone\\|bass\\|\\(mezzo\\)?soprano\\|treble\\|violin\\|tenor\\)?\"?" "clipping" "[cm]m" "coda" "complex" @@ -140,10 +140,10 @@ ;; ... keywords (defined above, see kwregex) (cons (concat "\\(\\([_^-]?\\(" kwregex "\\)\\)+\\)\\($\\|[] \t(~{}>\\\\_()^*-]\\)") '(1 font-lock-keyword-face)) -;; ... keyword-type constructs, e.g., ^\abracadabra - '("\\([_^-]?\\\\[a-zA-Z][a-zA-Z]*\\)" 1 font-lock-constant-face) +;; ... keyword-type constructs, e.g., ^\abracadabra; not \breve (= a duration) + '("\\([_^-]?\\\\\\([^b]\\|b[^r]\\|br[^e]\\|bre[^v]\\|brev[^e]\\|breve[a-zA-Z]\\)[a-zA-Z]*\\)" 1 font-lock-constant-face) -;; ... the left sid e of '=' -mark +;; ... the left side of '=' -mark '("\\([_a-zA-Z.0-9-]+\\)[ \t]*=[ \t]*" 1 font-lock-variable-name-face) ;; ... the right side of '=' -mark @@ -152,11 +152,8 @@ ;; ... reserved words (defined above, see rwregex) (cons (concat "\\(" rwregex "\\)") 'font-lock-variable-name-face) -;; ... multiplied rests, e.g., R1 *8 - '("\\([sR]\\(128\\|6?4\\|3?2\\|16?\\|8\\)?[.]*[ \t]*[*][ \t]*[0-9]+\\)"1 font-lock-type-face) - -;; ... notes and rests, accidentals and duration, e.g., a,?16.. - '("\\(^\\|[ <\{[~(!)\t\\\|]\\)\\(\\(\\(\\(\\(do\\|re\\|[ms]i\\|[fl]a\\|sol\\)\\(bb?\\|dd?\\|ss?\\)?\\)\\|\\([a-h]\\(flat\\(flat\\)?\\|sharp\\(sharp\\)?\\|ff?\\|ss?\\|is\\(siss\\|s\\|is\\)?\\|es\\(sess\\|s\\|es\\)?\\)?\\)\\|\\(as\\(as\\|es\\)?\\)\\|\\(es\\(es\\)?\\)\\|\\(bb\\)\\)[,']*[?!]?\\|[srR]\\)\\(128\\|6?4\\|3?2\\|16?\\|8\\)?[.]*\\)" 2 font-lock-type-face) +;; ... notes and rests, accidentals and duration (multiplied), e.g., b,?16.*3/4 + '("\\(^\\|[ <\{[~(!)\t\\\|]\\)\\(\\(\\(\\(\\(do\\|re\\|[ms]i\\|[fl]a\\|sol\\)\\(bb?\\|dd?\\|ss?\\)?\\)\\|\\([a-h]\\(flat\\(flat\\)?\\|sharp\\(sharp\\)?\\|ff?\\|ss?\\|is\\(siss\\|s\\|is\\)?\\|es\\(sess\\|s\\|es\\)?\\)?\\)\\|\\(as\\(as\\|es\\)?\\)\\|\\(es\\(es\\)?\\)\\|\\(bb\\)\\)[,']*[?!]?\\|[srR]\\)\\([ \t]*\\(128\\|6?4\\|3?2\\|16?\\|8\\|\\\\breve\\)[.]*\\([ \t]*[*][ \t]*[0-9]+\\(/[1-9]+\\)?\\)?\\)?\\)" 2 font-lock-type-face) ;; "on top", ... '{[]}'-brackets '("\\([][}{]\\)" 0 font-lock-warning-face t) diff --git a/scm/grob-description.scm b/scm/grob-description.scm index bcaa149c15..474db70d67 100644 --- a/scm/grob-description.scm +++ b/scm/grob-description.scm @@ -30,7 +30,7 @@ . ( (molecule-callback . ,Accidental_interface::brew_molecule) (font-family . music) - (meta . ((interfaces . (accidental-interface font-interface)))) + (after-line-breaking-callback . ,Accidental_interface::after_line_breaking) (meta . ((interfaces . (accidental-interface font-interface)))) )) (AccidentalPlacement . ( diff --git a/scm/grob-property-description.scm b/scm/grob-property-description.scm index b8955a9bfc..f9031e12a7 100644 --- a/scm/grob-property-description.scm +++ b/scm/grob-property-description.scm @@ -397,6 +397,7 @@ bracket. Setting the property to #'if-no-beam will make it print only if there is no beam associated with this tuplet bracket.") (grob-property-description 'number-visibility boolean-or-symbol? " Like @code{bracket-visibility}, but for the number.") +(grob-property-description 'tie ly-grob? "") (grob-property-description 'type symbol? "one of: line, dashed-line or dotted-line.") (grob-property-description 'visibility-lambda procedure? "a function that takes the break direction and returns a cons of booleans containing (TRANSPARENT . EMPTY).") (grob-property-description 'when moment? "when does this column happen?.")