From 3b259b56207e6334eb4ec98f7c17d6b11cf15b85 Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Wed, 4 Jul 2012 10:51:26 +0200 Subject: Add day_item_fork() Add a new function that can be used to copy one day item into another, cloning the actual item that is linked. Signed-off-by: Lukas Fleischer --- src/day.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'src/day.c') diff --git a/src/day.c b/src/day.c index 179b97b..26ae3e0 100644 --- a/src/day.c +++ b/src/day.c @@ -149,6 +149,31 @@ int day_item_get_state(struct day_item *day) } } +/* Clone the actual item. */ +void day_item_fork(struct day_item *day_in, struct day_item *day_out) +{ + day_out->type = day_in->type; + day_out->start = day_in->start; + + switch (day_in->type) { + case APPT: + day_out->item.apt = apoint_dup(day_in->item.apt); + break; + case EVNT: + day_out->item.ev = event_dup(day_in->item.ev); + break; + case RECUR_APPT: + day_out->item.rapt = recur_apoint_dup(day_in->item.rapt); + break; + case RECUR_EVNT: + day_out->item.rev = recur_event_dup(day_in->item.rev); + break; + default: + EXIT(_("unknown item type")); + /* NOTREACHED */ + } +} + /* * Store the events for the selected day in structure pointed * by day_items. This is done by copying the events -- cgit v1.2.3-54-g00ecf