aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2019-02-05 20:36:16 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2019-02-05 20:36:16 +0100
commitcf7302eca72884264455247c2416c853c95a4d08 (patch)
tree89260d82ac82ac1cc6e6fb21b6bdafa159e176f7
parentFix most memmory problems. (diff)
downloadcalp-cf7302eca72884264455247c2416c853c95a4d08.tar.gz
calp-cf7302eca72884264455247c2416c853c95a4d08.tar.xz
Made scheme code work again.
-rwxr-xr-xcode.scm5
-rw-r--r--scheme.scm.c14
2 files changed, 11 insertions, 8 deletions
diff --git a/code.scm b/code.scm
index 66c61dfc..6787f2f4 100755
--- a/code.scm
+++ b/code.scm
@@ -7,8 +7,9 @@
(begin
;; Supurflous begin block here to make sourcing into geiser easier.
(setenv "LD_LIBRARY_PATH" (getcwd))
- (load-extension "libguile-calendar" "init_calendar")
- (define v (make-calendar "cal")))
+ (load-extension "libguile-calendar" "init_calendar"))
+
+(define v (make-calendar (cadr (command-line))))
(do ((i 0 (1+ i)))
((>= i (calendar-size v)))
diff --git a/scheme.scm.c b/scheme.scm.c
index f1fcb349..da8cd3f1 100644
--- a/scheme.scm.c
+++ b/scheme.scm.c
@@ -49,14 +49,16 @@ SCM_DEFINE (calendar_get_attr, "calendar-get-attr", 3, 0, 0,
if (c == NULL) return SCM_BOOL_F;
- LINK(strbuf)* cur = c->vals.head;
- SCM llist = NULL;
- while (cur != NULL) {
- llist = scm_cons (scm_from_strbuf(cur->value), llist);
- cur = cur->after;
+ SCM llist = SCM_EOL;
+
+ // TODO actuall iterators
+ // TODO this reverses the list
+ for ( LINK(strbuf)* n = c->vals.head->after;
+ n->after != NULL;
+ n = n->after) {
+ llist = scm_cons(scm_from_strbuf(n->value), llist);
}
- // // return scm_from_strbuf(&c->val);
return llist;
}