aboutsummaryrefslogtreecommitdiff
path: root/scheme.c
diff options
context:
space:
mode:
Diffstat (limited to 'scheme.c')
-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);
}