aboutsummaryrefslogtreecommitdiff
path: root/scheme.c
diff options
context:
space:
mode:
authorHugo Hörnquist <hugo@lysator.liu.se>2019-02-02 23:13:47 +0100
committerHugo Hörnquist <hugo@lysator.liu.se>2019-02-02 23:13:47 +0100
commit6f6feddf9a07214e133438c4af4d32064d671a31 (patch)
tree3f8fa044d8a1e2fccf87a01d758c6207bb4ec8ac /scheme.c
parentStart work on a scheme interface. (diff)
downloadcalp-6f6feddf9a07214e133438c4af4d32064d671a31.tar.gz
calp-6f6feddf9a07214e133438c4af4d32064d671a31.tar.xz
Made code.scm do same stuff as main.
Diffstat (limited to '')
-rw-r--r--scheme.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/scheme.c b/scheme.c
index 05bc4b0d..cacd502e 100644
--- a/scheme.c
+++ b/scheme.c
@@ -47,9 +47,16 @@ SCM calendar_get_attr(SCM calendar, SCM id, SCM attr) {
return scm_from_strbuf(&c->val);
}
+SCM number_events(SCM calendar) {
+ scm_assert_foreign_object_type (calendar_type, calendar);
+ vcalendar* cal = scm_foreign_object_ref (calendar, 0);
+ return scm_from_size_t (cal->n_events);
+}
+
void init_calendar () {
init_calendar_type();
scm_c_define_gsubr ("make-calendar", 1, 0, 0, make_calendar);
scm_c_define_gsubr ("get-attr", 3, 0, 0, calendar_get_attr);
+ scm_c_define_gsubr ("calendar-size", 1, 0, 0, number_events);
}