From: John Gourlay Date: Thu, 26 May 2016 22:16:10 +0000 (-0400) Subject: Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/lilypond into X-Git-Tag: release/2.19.44-1~24^2~1 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=57a6fdce712bbdc538b712b319d28366e05b7495;hp=d1d184617002142f567c1d16370fa1c3fba76914;p=lilypond.git Merge branch 'master' of ssh://git.sv.gnu.org/srv/git/lilypond into dev/johngourlay/issue-4751 to bring the development branch up to date. --- diff --git a/Documentation/cs/learning/common-notation.itely b/Documentation/cs/learning/common-notation.itely index 188dae02d4..f9f4f68ae7 100644 --- a/Documentation/cs/learning/common-notation.itely +++ b/Documentation/cs/learning/common-notation.itely @@ -558,7 +558,7 @@ Slovníček: @rglos{grace notes}, @rglos{acciaccatura}, Melodické ozdoby se zadávají příkazem @code{\grace}, ačkoli se také dají vytvářet uvozením hudebního výrazu příkazem @code{\appoggiatura} (dlouhý -příraz, prodleva) a @code{\acciaccatura} (příraz, krátká appogiatura). +příraz, prodleva) a @code{\acciaccatura} (příraz, krátká appoggiatura). @lilypond[verbatim,quote] \relative { diff --git a/Documentation/de/notation/rhythms.itely b/Documentation/de/notation/rhythms.itely index a87acd3a5d..8e5c266ae0 100644 --- a/Documentation/de/notation/rhythms.itely +++ b/Documentation/de/notation/rhythms.itely @@ -3349,7 +3349,7 @@ Referenz der Interna: @funindex \grace @funindex \slashedGrace @funindex \acciaccatura -@funindex \appoggiature +@funindex \appoggiatura @cindex Verzierungen @cindex Ziernoten @@ -3370,7 +3370,7 @@ keine logische Zeit im Takt ein. Es gibt drei Arten von Verzierungen: den Vorschlag (engl. acciaccatura), eine angebundene Verzierungsnote -mit einem Schrägstrich durch den Hals, und den Vorhalt (engl. appogiatura), +mit einem Schrägstrich durch den Hals, und den Vorhalt (engl. appoggiatura), welcher den Wert der Hauptnote um seinen eigenen Wert verkürzt und ohne Schrägstrich notiert wird. Man kann einen Vorschlag auch mit Schrägstrich durch den Hals, aber ohne Legatobogen notieren. Diese diff --git a/Documentation/fr/learning/common-notation.itely b/Documentation/fr/learning/common-notation.itely index 43b221956b..909ec9b7ab 100644 --- a/Documentation/fr/learning/common-notation.itely +++ b/Documentation/fr/learning/common-notation.itely @@ -715,7 +715,7 @@ que deux ; un @notation{triolet} portera donc une fraction de 3/2. Glossaire musicologique : @rglosnamed{grace notes,ornements}, @rglosnamed{acciaccatura,acciaccature}, -@rglosnamed{appoggiatura,appogiature}. +@rglosnamed{appoggiatura,appoggiature}. Des @notation{notes d'ornement} s'obtiennent en appliquant la commande @code{\grace}, @code{\appoggiatura} ou @code{\acciaccatura} à une diff --git a/Documentation/fr/notation/cheatsheet.itely b/Documentation/fr/notation/cheatsheet.itely index 37bd09c765..b147dcd852 100644 --- a/Documentation/fr/notation/cheatsheet.itely +++ b/Documentation/fr/notation/cheatsheet.itely @@ -240,7 +240,7 @@ f8 c2 d e @item @code{\grace} -@tab appogiatures +@tab appoggiatures @tab @lilypond[relative=2] \set Staff.initialTimeSignatureVisibility = #all-invisible diff --git a/Documentation/fr/notation/input.itely b/Documentation/fr/notation/input.itely index f0665906f4..040e7eb79b 100644 --- a/Documentation/fr/notation/input.itely +++ b/Documentation/fr/notation/input.itely @@ -3036,7 +3036,7 @@ En combinaison avec le script @file{articulate}, d'autres éléments seront aussi reportés en MIDI : @itemize -@item les appogiatures -- celles-ci prendront la moitié de la valeur, +@item les appoggiatures -- celles-ci prendront la moitié de la valeur, dépourvue de point, de la note qui les suit -- par exemple, @example diff --git a/Documentation/fr/notation/rhythms.itely b/Documentation/fr/notation/rhythms.itely index c23e2bfc86..197f40b1fd 100644 --- a/Documentation/fr/notation/rhythms.itely +++ b/Documentation/fr/notation/rhythms.itely @@ -3635,8 +3635,8 @@ désactivés dans cette même expression. @seealso Glossaire musicologique : @rglosnamed{grace notes,ornements}, -@rglosnamed{acciaccatura,acciacature}, -@rglosnamed{appoggiatura,appogiature}. +@rglosnamed{acciaccatura,acciaccature}, +@rglosnamed{appoggiatura,appoggiature}. Manuel de notation : @ref{Barres de ligature manuelles}, diff --git a/Documentation/misc/announce-v2.0.html b/Documentation/misc/announce-v2.0.html index 8b72cf4a26..6551a677bb 100644 --- a/Documentation/misc/announce-v2.0.html +++ b/Documentation/misc/announce-v2.0.html @@ -153,7 +153,7 @@ and \appoggiatura, \acciaccatura g8 f4 -

Both reflect the traditional meanings of acciaccatura and appogiatura, +

Both reflect the traditional meanings of acciaccatura and appoggiatura, and both insert insert a slur from the first grace note to the main note. diff --git a/Documentation/music-glossary.tely b/Documentation/music-glossary.tely index 300c9c18a8..0b03549d88 100644 --- a/Documentation/music-glossary.tely +++ b/Documentation/music-glossary.tely @@ -3030,7 +3030,7 @@ D: doppelter Vorschlag, NL: dubbele voorslag, DK: dobbelt forslag, S: dubbelslag, -FI: kaksoisappogiatura, kaksoisetuhele. +FI: kaksoisappoggiatura, kaksoisetuhele. @seealso @ref{appoggiatura}. diff --git a/lily/include/scheme-engraver.hh b/lily/include/scheme-engraver.hh index 7fb829e3c4..7ec28c4c9a 100644 --- a/lily/include/scheme-engraver.hh +++ b/lily/include/scheme-engraver.hh @@ -50,7 +50,7 @@ private: return generic_get_acknowledger (sym, interface_end_acknowledger_hash_); } - void init_acknowledgers (SCM alist, SCM *hash); + SCM init_acknowledgers (SCM alist); // For now no description. In future, something derived from the // definition might make sense. SCM translator_description () const { return SCM_EOL; } diff --git a/lily/include/translator-group.hh b/lily/include/translator-group.hh index 6eec2333a6..4ba2fe6523 100644 --- a/lily/include/translator-group.hh +++ b/lily/include/translator-group.hh @@ -36,9 +36,6 @@ private: vector precomputed_method_bindings_[TRANSLATOR_METHOD_PRECOMPUTE_COUNT]; - SCM - precomputed_self_method_bindings_[TRANSLATOR_METHOD_PRECOMPUTE_COUNT]; - SCM protected_events_; void create_child_translator (SCM); @@ -57,12 +54,9 @@ public: void stop_translation_timestep (); void start_translation_timestep (); - virtual void fetch_precomputable_methods (SCM []); - Translator_group (); void precomputed_translator_foreach (Translator_precompute_index); - void call_precomputed_self_method (Translator_precompute_index); Context *context () const { return context_; } protected: diff --git a/lily/scheme-engraver.cc b/lily/scheme-engraver.cc index f8a3afc57a..fc51d439c0 100644 --- a/lily/scheme-engraver.cc +++ b/lily/scheme-engraver.cc @@ -82,15 +82,14 @@ Scheme_engraver::init_from_scheme (SCM definition) initialize_function_ = callable (ly_symbol2scm ("initialize"), definition); finalize_function_ = callable (ly_symbol2scm ("finalize"), definition); - SCM listeners = ly_assoc_get (ly_symbol2scm ("listeners"), definition, SCM_EOL); - - per_instance_listeners_ = SCM_EOL; + SCM p = ly_assoc_get (ly_symbol2scm ("listeners"), definition, SCM_EOL); + SCM listeners = SCM_EOL; must_be_last_ = to_boolean (ly_assoc_get (ly_symbol2scm ("must-be-last"), definition, SCM_BOOL_F)); - for (SCM p = listeners; scm_is_pair (p); p = scm_cdr (p)) + for (; scm_is_pair (p); p = scm_cdr (p)) { SCM event_class = scm_caar (p); SCM proc = scm_cdar (p); @@ -101,26 +100,36 @@ Scheme_engraver::init_from_scheme (SCM definition) // We should check the arity of the function? // Record for later lookup. - per_instance_listeners_ = scm_acons (event_class, proc, per_instance_listeners_); + listeners = scm_acons (event_class, proc, listeners); } - init_acknowledgers (ly_assoc_get (ly_symbol2scm ("acknowledgers"), - definition, SCM_EOL), - &interface_acknowledger_hash_); + SCM hash1 = + init_acknowledgers (ly_assoc_get (ly_symbol2scm ("acknowledgers"), + definition, SCM_EOL)); + SCM hash2 = + init_acknowledgers (ly_assoc_get (ly_symbol2scm ("end-acknowledgers"), + definition, SCM_EOL)); + + per_instance_listeners_ = listeners; + interface_acknowledger_hash_ = hash1; + interface_end_acknowledger_hash_ = hash2; - init_acknowledgers (ly_assoc_get (ly_symbol2scm ("end-acknowledgers"), - definition, SCM_EOL), - &interface_end_acknowledger_hash_); + // It's not defined whether Scheme_engraver::derived_mark is already + // active while the construction is underway, so we make sure we + // keep a version of everything on the stack that is not still + // covered by `definition'. + + scm_remember_upto_here_2 (definition, listeners); + scm_remember_upto_here_2 (hash1, hash2); // TODO: hook up description, props read/written, grobs created // etc. to provide automatic documentation. } -void -Scheme_engraver::init_acknowledgers (SCM alist, - SCM *hash) +SCM +Scheme_engraver::init_acknowledgers (SCM alist) { - *hash = Scheme_hash_table::make_smob (); + SCM hash = Scheme_hash_table::make_smob (); for (SCM p = alist; scm_is_pair (p); p = scm_cdr (p)) { SCM iface = scm_caar (p); @@ -129,8 +138,9 @@ Scheme_engraver::init_acknowledgers (SCM alist, if (!(ly_is_procedure (proc) && ly_is_symbol (iface))) continue; - unsmob(*hash)->set (iface, proc); + unsmob(hash)->set (iface, proc); } + return hash; } SCM diff --git a/lily/translator-group.cc b/lily/translator-group.cc index 6e47a85ad9..972a487bf4 100644 --- a/lily/translator-group.cc +++ b/lily/translator-group.cc @@ -241,7 +241,6 @@ precomputed_recurse_over_translators (Context *c, Translator_precompute_index id if (tg && dir == DOWN) { tg->precomputed_translator_foreach (idx); - tg->call_precomputed_self_method (idx); } for (SCM s = c->children_contexts (); scm_is_pair (s); @@ -251,7 +250,6 @@ precomputed_recurse_over_translators (Context *c, Translator_precompute_index id if (tg && dir == UP) { tg->precomputed_translator_foreach (idx); - tg->call_precomputed_self_method (idx); } } @@ -311,7 +309,6 @@ Translator_group::precompute_method_bindings () } } - fetch_precomputable_methods (precomputed_self_method_bindings_); } void @@ -322,20 +319,6 @@ Translator_group::precomputed_translator_foreach (Translator_precompute_index id bindings[i](); } -void -Translator_group::fetch_precomputable_methods (SCM ptrs[]) -{ - for (int i = 0; i < TRANSLATOR_METHOD_PRECOMPUTE_COUNT; i++) - ptrs[i] = SCM_UNDEFINED; -} - -void -Translator_group::call_precomputed_self_method (Translator_precompute_index idx) -{ - if (!SCM_UNBNDP (precomputed_self_method_bindings_[idx])) - scm_call_1 (precomputed_self_method_bindings_[idx], self_scm ()); -} - Translator_group::~Translator_group () { } diff --git a/ly/articulate.ly b/ly/articulate.ly index 78acdbfe1f..0414bd926b 100644 --- a/ly/articulate.ly +++ b/ly/articulate.ly @@ -54,7 +54,7 @@ % portato ac:portatoFactor (default 3/4) % tenuto ac:tenutoFactor (default 1/1 - by default, notes marked % tenuto are not shortened) -% * Appogiaturas are made to take half the value of the note following, +% * Appoggiaturas are made to take half the value of the note following, % without taking dots into account (so in \appoggiatura c8 d2. the c % will take the time of a crotchet). % * Trills and turns are expanded. The algorithm tries to choose notes diff --git a/mf/feta-flags.mf b/mf/feta-flags.mf index 1be31ef4ee..b7fe2f0951 100644 --- a/mf/feta-flags.mf +++ b/mf/feta-flags.mf @@ -554,7 +554,7 @@ fet_endchar; %%%%%%%% % -% Single Stroke for Short Appogiatura +% Single Stroke for Short Appoggiatura % fet_beginchar ("grace dash (up)", "ugrace"); diff --git a/vim/lilypond-ftplugin.vim b/vim/lilypond-ftplugin.vim index c822c43f01..0c3a8dc7e2 100644 --- a/vim/lilypond-ftplugin.vim +++ b/vim/lilypond-ftplugin.vim @@ -18,10 +18,10 @@ setlocal shiftwidth=2 " some handy key mappings " " save & make and play midi with timidity -map :w:se makeprg=lilypond\ \"%<\":make:!timidity "%<.midi" +map :w:setl makeprg=lilypond\ \"%<\":make:!timidity "%<.midi" " " save & make -map :w:se makeprg=lilypond\ \"%<\":make +map :w:setl makeprg=lilypond\ \"%<\":make " " view pdf with ghostview map :!gv --watch "%<.pdf" & @@ -33,7 +33,7 @@ map :cp map :cn " " make -map :w:se makeprg=make\ -k:make +map :w:setl makeprg=make\ -k:make " " menu source $VIMRUNTIME/menu.vim