X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Flily-guile.cc;h=5c726793cb55116e30889ad8cf0364e61713a9d9;hb=62e36043035ba8e0a9c1137077ff45d794a7003e;hp=a7c8b58919ee7badfc53bd63077f245120943569;hpb=b5b00b10f242e4d22e352c8a0d61c384bf205277;p=lilypond.git diff --git a/lily/lily-guile.cc b/lily/lily-guile.cc index a7c8b58919..5c726793cb 100644 --- a/lily/lily-guile.cc +++ b/lily/lily-guile.cc @@ -253,6 +253,13 @@ ly_scm2interval (SCM p) gh_scm2double (ly_cdr (p))); } +Drul_array +ly_scm2realdrul (SCM p) +{ + return Drul_array (gh_scm2double (ly_car (p)), + gh_scm2double (ly_cdr (p))); +} + SCM ly_interval2scm (Drul_array i) { @@ -761,3 +768,20 @@ robust_scm2int (SCM k, int o) return o; } + + +SCM +alist_to_hashq (SCM alist) +{ + int i = scm_ilength (alist); + if (i < 0) + return scm_make_vector (gh_int2scm (0), SCM_EOL); + + SCM tab = scm_make_vector (gh_int2scm (i), SCM_EOL); + for (SCM s = alist; gh_pair_p (s); s = ly_cdr (s)) + { + SCM pt = ly_cdar (s); + scm_hashq_set_x (tab, ly_caar (s), pt); + } + return tab; +}