]> git.donarmstrong.com Git - lilypond.git/commitdiff
Implement ly_memv as a sloppy memv variant
authorDavid Kastrup <dak@gnu.org>
Tue, 3 Nov 2015 17:22:20 +0000 (18:22 +0100)
committerDavid Kastrup <dak@gnu.org>
Tue, 10 Nov 2015 20:23:02 +0000 (21:23 +0100)
lily/include/lily-guile.hh
lily/lily-guile.cc

index 34578511b8388700b38f7c4bacfe02605ded908f..d1ca0424bb3e0df24d958260bedc89f462cf02aa 100644 (file)
@@ -63,6 +63,7 @@ SCM ly_assoc_cdr (SCM key, SCM alist);
 SCM ly_assoc_get (SCM key, SCM alist, SCM default_value, SCM strict_checking = SCM_BOOL_F);
 Interval ly_scm2interval (SCM);
 Drul_array<Real> ly_scm2realdrul (SCM);
+SCM ly_memv (SCM, SCM);
 Slice int_list_to_slice (SCM l);
 SCM ly_interval2scm (Drul_array<Real>);
 char *ly_scm2str0 (SCM str);
index bde39214b39faff40af98548533a3ed7a6bb716b..f37380f024fc4b65fc9b368564c26dd3dd4a3190 100644 (file)
@@ -529,6 +529,18 @@ display_list (SCM s)
   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)
 {