#include "source-file.hh"
#include "version.hh"
#include "warn.hh"
+#include "lily-imports.hh"
/*
symbols/strings.
&& ly_is_procedure (type)
&& scm_is_false (scm_call_1 (type, val)))
{
- SCM typefunc = ly_lily_module_constant ("type-name");
- SCM type_name = scm_call_1 (typefunc, type);
+ SCM type_name = Lily::type_name (type);
warning (_f ("type check for `%s' failed; value `%s' must be of type `%s'",
ly_symbol2string (sym).c_str (),
string type = predicate_to_typename ((void *) pred);
if (pred (var))
{
- // Uh oh. derived_unsmob <T> delivered 0, yet
- // T::is_smob delivers true. This means that T::is_smob is a
+ // Uh oh. unsmob<T> delivered 0, yet
+ // unsmob<T> delivers true. This means that unsmob<T> is a
// matching check from a base class of T, but var is of an
// incompatible derived type.
type = string (_ ("Wrong kind of ")).append (type);
return SCM_UNSPECIFIED;
}
+// Needed as complement to int_list_to_slice since scm_c_memq refuses
+// to work with dotted lists.
+
+SCM
+ly_memv (SCM v, SCM l)
+{
+ for (; scm_is_pair (l); l = scm_cdr (l))
+ if (scm_is_true (scm_eqv_p (v, scm_car (l))))
+ return l;
+ return SCM_BOOL_F;
+}
+
Slice
int_list_to_slice (SCM l)
{
SCM
ly_hash2alist (SCM tab)
{
- SCM func = ly_lily_module_constant ("hash-table->alist");
- return scm_call_1 (func, tab);
+ return Lily::hash_table_to_alist (tab);
}
/*