From 831d149c5240b038667d4973660a63a474605aae Mon Sep 17 00:00:00 2001 From: David Kastrup Date: Thu, 3 Mar 2016 17:38:40 +0100 Subject: [PATCH] Add assv_tail function --- lily/include/context.hh | 1 + lily/nested-property.cc | 11 +++++++++++ 2 files changed, 12 insertions(+) diff --git a/lily/include/context.hh b/lily/include/context.hh index ab89593d1b..130a304f93 100644 --- a/lily/include/context.hh +++ b/lily/include/context.hh @@ -197,6 +197,7 @@ SCM nested_property (SCM alist, SCM prop_path, SCM fallback = SCM_EOL); SCM nested_create_alist (SCM prop_path, SCM value); SCM partial_list_copy (SCM alist, SCM tail, SCM newtail); SCM assq_tail (SCM key, SCM alist, SCM alist_end); +SCM assv_tail (SCM key, SCM alist, SCM alist_end); SCM assoc_tail (SCM key, SCM alist, SCM alist_end); SCM evict_from_alist (SCM, SCM, SCM); SCM nalist_to_alist (SCM nalist, int nested); diff --git a/lily/nested-property.cc b/lily/nested-property.cc index 27adf55dbe..d45f395b30 100644 --- a/lily/nested-property.cc +++ b/lily/nested-property.cc @@ -37,6 +37,17 @@ assq_tail (SCM key, SCM alist, SCM based_on = SCM_EOL) return SCM_BOOL_F; } +SCM +assv_tail (SCM key, SCM alist, SCM based_on = SCM_EOL) +{ + for (SCM p = alist; !scm_is_eq (p, based_on); p = scm_cdr (p)) + { + if (scm_is_true (scm_eqv_p (scm_caar (p), key))) + return p; + } + return SCM_BOOL_F; +} + SCM assoc_tail (SCM key, SCM alist, SCM based_on = SCM_EOL) { -- 2.39.2