+ SCM from_same_octave = ly_assoc_get (scm_cons (scm_int2num (o),
+ scm_int2num (n)), sig, SCM_BOOL_F);
+ SCM from_key_signature = ly_assoc_get (scm_int2num (n), sig, SCM_BOOL_F);
+ SCM from_other_octaves = SCM_BOOL_F;
+ for (SCM s = sig; scm_is_pair (s); s = scm_cdr (s))
+ {
+ SCM entry = scm_car (s);
+ if (scm_is_pair (scm_car (entry))
+ && scm_cdar (entry) == scm_int2num (n))
+ from_other_octaves = scm_cdr (entry);
+ }
+
+ if (from_same_octave != SCM_BOOL_F
+ && recent_enough (bar_number, from_same_octave, laziness))
+ {
+ previous_alteration = from_same_octave;
+ }
+ else if (ignore_octave
+ && from_other_octaves != SCM_BOOL_F
+ && recent_enough (bar_number, from_other_octaves, laziness))
+ {
+ previous_alteration = from_other_octaves;
+ }
+ else if (from_key_signature != SCM_BOOL_F)
+ {
+ previous_alteration = from_key_signature;
+ }