From baedf890e62aa18816a1ba4d083d60f7026a2e57 Mon Sep 17 00:00:00 2001 From: fred Date: Wed, 27 Mar 2002 01:04:09 +0000 Subject: [PATCH] lilypond-1.4.1 --- buildscripts/mf-to-table.py | 2 +- input/regression/script-stacked.ly | 5 +++++ lily/afm.cc | 8 +++++++- lily/include/request.hh | 1 - lily/musical-request.cc | 15 ++------------- lily/request.cc | 8 ++------ lily/script-engraver.cc | 10 +++------- 7 files changed, 20 insertions(+), 29 deletions(-) create mode 100644 input/regression/script-stacked.ly diff --git a/buildscripts/mf-to-table.py b/buildscripts/mf-to-table.py index 8feec727d6..bb9c05919b 100644 --- a/buildscripts/mf-to-table.py +++ b/buildscripts/mf-to-table.py @@ -90,7 +90,7 @@ def write_afm_char_metric(file, charmetric): f = 1000; tup = (charmetric['code'], - charmetric['width'] + charmetric['breapth'], + (charmetric['width'] + charmetric['breapth'])*f, charmetric['name'], -charmetric['breapth'] *f, -charmetric['depth']*f, diff --git a/input/regression/script-stacked.ly b/input/regression/script-stacked.ly new file mode 100644 index 0000000000..0f487101b6 --- /dev/null +++ b/input/regression/script-stacked.ly @@ -0,0 +1,5 @@ + +\header { +texidoc = "Scripts may b4e stacked." +} +\score { \notes { c''->-. } } diff --git a/lily/afm.cc b/lily/afm.cc index 6786afd725..8fac391067 100644 --- a/lily/afm.cc +++ b/lily/afm.cc @@ -22,7 +22,13 @@ Adobe_font_metric::Adobe_font_metric (AFM_Font_info * fi) { AFM_CharMetricInfo * c = fi->cmi + i; - ascii_to_metric_idx_[c->code] = i; + /* + Some TeX afm files contain code = -1. We don't know why, let's + ignore it. + + */ + if (c->code >= 0) + ascii_to_metric_idx_[c->code] = i; name_to_metric_dict_[c->name] = i; } } diff --git a/lily/include/request.hh b/lily/include/request.hh index c0090667d6..677be604f9 100644 --- a/lily/include/request.hh +++ b/lily/include/request.hh @@ -41,7 +41,6 @@ class Script_req : public virtual Request public: void set_direction (Direction d); Direction get_direction () const; - VIRTUAL_COPY_CONS (Music); Script_req (); }; diff --git a/lily/musical-request.cc b/lily/musical-request.cc index 463d0775e8..e4866b6064 100644 --- a/lily/musical-request.cc +++ b/lily/musical-request.cc @@ -16,7 +16,6 @@ Tremolo_req::Tremolo_req () { } - void Melodic_req::transpose (Pitch delta) { @@ -78,9 +77,6 @@ Note_req::Note_req () } - - - bool Span_req::do_equal_b (Request const*r) const { @@ -106,7 +102,8 @@ Articulation_req::do_equal_b (Request const* r) const { Articulation_req const* a = dynamic_cast (r); - return a; // && articulation_str_ == a->articulation_str_; + return a && gh_equal_p (get_mus_property ("articulation-type"), + r->get_mus_property ("articulation-type")); } @@ -114,11 +111,3 @@ Articulation_req::do_equal_b (Request const* r) const - - - - - - - - diff --git a/lily/request.cc b/lily/request.cc index 7ad67285b1..844f942a35 100644 --- a/lily/request.cc +++ b/lily/request.cc @@ -9,8 +9,6 @@ #include "request.hh" #include "debug.hh" - - bool Request::equal_b (Request const* r) const { @@ -23,15 +21,12 @@ Request::do_equal_b (Request const*) const return true; } - Request::Request () : Music (SCM_EOL) { set_mus_property ("type", ly_symbol2scm ("request")); } - - Script_req::Script_req () { set_direction (CENTER); @@ -51,7 +46,6 @@ Script_req::get_direction () const return (isdir_b (d)) ? to_dir (d) : CENTER; } - Direction Span_req::get_span_dir () const { @@ -68,3 +62,5 @@ Span_req::set_span_dir (Direction d) + + diff --git a/lily/script-engraver.cc b/lily/script-engraver.cc index 4b2c44773d..256acd3dc4 100644 --- a/lily/script-engraver.cc +++ b/lily/script-engraver.cc @@ -4,7 +4,6 @@ (c) 1997--2001 Han-Wen Nienhuys */ - #include "script.hh" #include "side-position-interface.hh" #include "musical-request.hh" @@ -12,7 +11,8 @@ #include "rhythmic-head.hh" #include "engraver.hh" -class Script_engraver : public Engraver { +class Script_engraver : public Engraver +{ Link_array script_p_arr_; Link_array script_req_l_arr_; @@ -28,7 +28,6 @@ protected: virtual void acknowledge_grob (Grob_info); }; - void Script_engraver::initialize () { @@ -71,8 +70,7 @@ Script_engraver::process_music () // todo -> use result of articulation-to-scriptdef directly as basic prop list. Grob *p =new Item (get_property ("Script")); art = gh_cdr (art); - p->set_grob_property ("molecule", - gh_car (art)); + p->set_grob_property ("molecule", gh_car (art)); art = gh_cdr (art); bool follow_staff = gh_scm2bool (gh_car (art)); @@ -87,12 +85,10 @@ Script_engraver::process_music () art = gh_cdr (art); SCM priority = gh_car (art); - if (isdir_b (force_dir) && to_dir (force_dir)) p->set_grob_property ("direction", force_dir); else if (to_dir (relative_stem_dir)) p->set_grob_property ("side-relative-direction", relative_stem_dir); - /* -- 2.39.5