]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/general-scheme.cc
* scm/define-event-classes.scm (lambda): use ly:is-listened-event-class
[lilypond.git] / lily / general-scheme.cc
index 558d111f8617b7b61147504ec8dbf658446b76ed..5beda8355e9f5ec2940e8cbd0e5ecdc59b68bca4 100644 (file)
@@ -307,3 +307,19 @@ LY_DEFINE (ly_stderr_redirect, "ly:stderr-redirect",
   freopen (ly_scm2newstr (file_name, 0), m, stderr);
   return SCM_UNSPECIFIED;
 }
+
+static SCM
+accumulate_symbol (void *closure, SCM key, SCM val, SCM result)
+{
+  (void) closure;
+  (void) val;
+  return scm_cons (key, result);
+}
+
+LY_DEFINE(ly_hash_table_keys, "ly:hash-table-keys",
+         1,0,0, (SCM tab),
+         "return a list of keys in @var{tab}")
+{
+  return scm_internal_hash_fold ((Hash_closure_function) & accumulate_symbol,
+                                NULL, SCM_EOL, tab);
+}