+2002-07-25 Jan Nieuwenhuizen <janneke@gnu.org>
+
+ * lily/grob-scheme.cc (ly_get_parent): Don't dereference null
+ parent. (Han-Wen)
+
+ * input/test/move-accidentals.ly: New file. (Han-Wen)
+
2002-07-25 Han-Wen <hanwen@cs.uu.nl>
* lily/slur.cc (get_first_notecolumn_y): robustness: don't crash
--- /dev/null
+\header {
+
+ texidoc= "Positions of accidentals may be manually set. This
+involves some scheme code."
+
+}
+#(define (make-acc-position-checker pos)
+ (lambda (elt)
+ (and
+ (not (eq? #f (memq 'accidental-interface
+ (ly-get-grob-property elt 'interfaces))))
+ (eq? (ly-get-grob-property
+ (ly-get-parent elt 1) 'staff-position) pos))))
+
+\score {
+ \context Voice \notes \relative c'' {
+ c2.
+ <
+\property Staff.AccidentalPlacement = \turnOff
+\context Staff \outputproperty #(make-acc-position-checker 9)
+ #'extra-offset = #'(-1 . 0)
+\context Staff \outputproperty #(make-acc-position-checker 5)
+ #'extra-offset = #'(-2 . 0)
+\context Staff \outputproperty #(make-acc-position-checker 3)
+ #'extra-offset = #'(-3 . 0)
+\context Staff \outputproperty #(make-acc-position-checker 2)
+ #'extra-offset = #'(-4 . 0)
+ d!4
+ eis
+ gis
+ d'!
+ >
+ }
+ \paper {
+ linewidth = -1
+ }
+}
SCM_ASSERT_TYPE(sc, grob, SCM_ARG1, __FUNCTION__, "grob");
SCM_ASSERT_TYPE(ly_axis_p(axis), axis, SCM_ARG2, __FUNCTION__, "axis");
- return sc->get_parent (Axis (gh_scm2int (axis)))->self_scm();
+ Grob * par = sc->get_parent (Axis (gh_scm2int (axis)));
+ return par ? par->self_scm() : SCM_EOL;
}