source file of the GNU LilyPond music typesetter
- (c) 1998--2004 Jan Nieuwenhuizen <janneke@gnu.org>
+ (c) 1998--2005 Jan Nieuwenhuizen <janneke@gnu.org>
Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
{
if (scm_is_pair (src))
return scm_cons (ly_deep_copy (scm_car (src)), ly_deep_copy (scm_cdr (src)));
- else if (ly_c_vector_p (src))
+ else if (scm_is_vector (src))
{
- int len = SCM_VECTOR_LENGTH (src);
+ int len = scm_c_vector_length (src);
SCM nv = scm_c_make_vector (len, SCM_UNDEFINED);
for (int i = 0 ;i < len ; i++)
{
}
return tab;
}
+
+
+bool
+alist_equal_p (SCM a, SCM b)
+{
+ for (SCM s = a;
+ scm_is_pair (s); s = scm_cdr (s))
+ {
+ SCM key = scm_caar (s);
+ SCM val = scm_cdar (s);
+ SCM l = scm_assoc (key, b);
+
+ if (l == SCM_BOOL_F
+ || !ly_c_equal_p ( scm_cdr (l), val))
+
+ return false;
+ }
+ return true;
+}
+
+
+
+SCM
+ly_alist_vals (SCM alist)
+{
+ SCM x = SCM_EOL;
+ for (SCM p = alist; scm_is_pair (p); p = scm_cdr (p))
+ {
+ x = scm_cons (scm_cdar (p), x);
+ }
+ return x;
+}
+
+SCM
+ly_hash2alist (SCM tab)
+{
+ SCM func = ly_lily_module_constant ("hash-table->alist");
+ return scm_call_1 (func, tab);
+}