aboutsummaryrefslogtreecommitdiff
path: root/guile_type_helpers.c__
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2019-02-18 22:39:56 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2019-02-18 22:39:56 +0100
commit33fa5b5d0c512c72c1d50b9420a36431cd10eb5d (patch)
tree6642ec876ecd15ce62f83075d7f9d261050fe3a6 /guile_type_helpers.c__
parentStart rework of guile interface. (diff)
downloadcalp-33fa5b5d0c512c72c1d50b9420a36431cd10eb5d.tar.gz
calp-33fa5b5d0c512c72c1d50b9420a36431cd10eb5d.tar.xz
Made to compile as C++.
Diffstat (limited to 'guile_type_helpers.c__')
-rw-r--r--guile_type_helpers.c__18
1 files changed, 18 insertions, 0 deletions
diff --git a/guile_type_helpers.c__ b/guile_type_helpers.c__
new file mode 100644
index 00000000..3f76c2d4
--- /dev/null
+++ b/guile_type_helpers.c__
@@ -0,0 +1,18 @@
+#include "guile_type_helpers.h"
+
+#include "macro.h"
+
+SCM scm_from_strbuf(strbuf* s)
+ { return scm_from_utf8_stringn (s->mem, s->len - 1); }
+
+SCM scm_from_vector(VECT(vcomponent)* vect, SCM element_type) {
+ SCM l = SCM_EOL;
+ for (size_t i = 0; i < vect->length; i++) {
+ l = scm_cons(
+ scm_make_foreign_object_1 (element_type, GET(VECT(vcomponent))(vect, i)),
+ l);
+ }
+ return scm_reverse(l);
+}
+
+