/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 2011--2012 Mike Solomon <mike@mikesolomon.org>
+ Copyright (C) 2011--2014 Mike Solomon <mike@mikesolomon.org>
LilyPond is free software: you can redistribute it and/or modify
return (SCM_NIMP (s) && SCM_CELL_TYPE (s) == unpure_pure_container_tag);
}
+bool
+is_unchanging_unpure_pure_container (SCM s)
+// A container that has the same callback for both 'pure' and 'unpure' lookups
+// and which ignores the 'start' and 'end' columnns.
+// Such a callback will give the same answer for tentative or final layouts.
+{
+ LY_ASSERT_TYPE (is_unpure_pure_container, s, 1);
+ SCM pure_part = SCM_SMOB_OBJECT_2 (s);
+ return (SCM_UNBNDP (pure_part));
+}
+
SCM
unpure_pure_container_unpure_part (SCM smob)
{
unpure_pure_call_tag = scm_make_smob_type ("unpure-pure-call", 0);
scm_set_smob_mark (unpure_pure_call_tag, scm_markcdr);
scm_set_smob_apply (unpure_pure_call_tag,
- (SCM (*)()) apply_unpure_pure, 2, 0, 1);
+ (scm_t_subr) apply_unpure_pure, 2, 0, 1);
};
ADD_SCM_INIT_FUNC (unpure_pure_container, init_unpure_pure_container);