From e36357dcf6421e515dd1e9f1cfc6f81ebf135224 Mon Sep 17 00:00:00 2001 From: Mike Solomon Date: Thu, 12 Aug 2010 23:56:34 +0100 Subject: [PATCH] Create ly:grob-chain-callback from chain_callback Signed-off-by: Neil Puttock --- lily/grob-scheme.cc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lily/grob-scheme.cc b/lily/grob-scheme.cc index 199e6fb9b3..c27a9ee8bd 100644 --- a/lily/grob-scheme.cc +++ b/lily/grob-scheme.cc @@ -402,3 +402,20 @@ LY_DEFINE (ly_grob_common_refpoint_of_array, "ly:grob-common-refpoint-of-array", Grob *refp = common_refpoint_of_array (ga->array (), gr, Axis (scm_to_int (axis))); return refp ? refp->self_scm () : SCM_BOOL_F; } + +LY_DEFINE (ly_grob_chain_callback, "ly:grob-chain-callback", + 3, 0, 0, (SCM grob, SCM proc, SCM sym), + "Find the callback that is stored as property" + " @var{sym} of grob @var{grob} and chain @var{proc}" + " to the head of this, meaning that it is called" + " using @var{grob} and the previous callback's result.") +{ + Grob *gr = unsmob_grob (grob); + + LY_ASSERT_SMOB (Grob, grob, 1); + LY_ASSERT_TYPE (ly_is_procedure, proc, 2); + LY_ASSERT_TYPE (ly_is_symbol, sym, 3); + + chain_callback (gr, proc, sym); + return SCM_UNSPECIFIED; +} -- 2.39.2