/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 2005--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 2005--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
LilyPond is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
*/
#include "smobs.hh"
+#include "listener.hh"
+
+Listener
+Smob_core::get_listener (SCM callback)
+{
+ return Listener (callback, self_scm ());
+}
/*
The CDR contains the actual protected list.
{
#if 0
SCM s = scm_cdr (smob_protection_list);
- while (scm_is_pair (s) && scm_car (s) == SCM_BOOL_F)
+ while (scm_is_pair (s) && scm_is_false (scm_car (s))
{
s = scm_cdr (s);
}
#else
SCM next = scm_cdr (*prot_cons);
- if (next == SCM_EOL)
+ if (scm_is_null (next)))
scm_set_car_x (*prot_cons, SCM_BOOL_F);
else
{
scm_set_car_x (*prot_cons, SCM_BOOL_F);
while (scm_is_pair (next)
- && scm_car (next) == SCM_BOOL_F)
+ && scm_is_false (scm_car (next)))
next = scm_cdr (next);
*prot_cons = SCM_EOL;
#endif
}
+
+
+Scm_init const *Scm_init::list_ = 0;
+
+void
+Scm_init::init ()
+{
+ for (Scm_init const *p = list_; p; p = p->next_)
+ p->fun_ ();
+}