From a1394e98330eaaae67eb1567013d27ae1a25b77f Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Fri, 29 Jun 2012 11:23:11 +0200 Subject: Refactor *_dup() * Actually duplicate an item instead of copying data only. * Properly clone an item without a note. * Mark *_dup() public. Signed-off-by: Lukas Fleischer --- src/apoint.c | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) (limited to 'src/apoint.c') diff --git a/src/apoint.c b/src/apoint.c index 57223bc..694c318 100644 --- a/src/apoint.c +++ b/src/apoint.c @@ -51,16 +51,21 @@ void apoint_free(struct apoint *apt) mem_free(apt); } -static void apoint_dup(struct apoint *in, struct apoint *bkp) +struct apoint *apoint_dup(struct apoint *in) { - EXIT_IF(!in || !bkp, _("null pointer")); + EXIT_IF(!in, _("null pointer")); - bkp->start = in->start; - bkp->dur = in->dur; - bkp->state = in->state; - bkp->mesg = mem_strdup(in->mesg); + struct apoint *apt = mem_malloc(sizeof(struct apoint)); + apt->start = in->start; + apt->dur = in->dur; + apt->state = in->state; + apt->mesg = mem_strdup(in->mesg); if (in->note) - bkp->note = mem_strdup(in->note); + apt->note = mem_strdup(in->note); + else + apt->note = NULL; + + return apt; } void apoint_llist_init(void) -- cgit v1.2.3-54-g00ecf