From d118beceee701580948eb3c23fb0677920042422 Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Mon, 11 Jan 2016 20:02:37 +0100 Subject: Implement {apoint,event,todo}_tostr() Add functions to serialize non-recurrent objects without immediately writing them to stdout. Signed-off-by: Lukas Fleischer --- src/event.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) (limited to 'src/event.c') diff --git a/src/event.c b/src/event.c index 3918ce3..39224a3 100644 --- a/src/event.c +++ b/src/event.c @@ -104,19 +104,30 @@ unsigned event_inday(struct event *i, long *start) return (i->day < *start + DAYINSEC && i->day >= *start); } -/* Write to file the event in user-friendly format */ -void event_write(struct event *o, FILE * f) +char *event_tostr(struct event *o) { + struct string s; struct tm lt; time_t t; + string_init(&s); + t = o->day; localtime_r(&t, <); - fprintf(f, "%02u/%02u/%04u [%d] ", lt.tm_mon + 1, lt.tm_mday, + string_catf(&s, "%02u/%02u/%04u [%d] ", lt.tm_mon + 1, lt.tm_mday, 1900 + lt.tm_year, o->id); if (o->note != NULL) - fprintf(f, ">%s ", o->note); - fprintf(f, "%s\n", o->mesg); + string_catf(&s, ">%s ", o->note); + string_catf(&s, "%s", o->mesg); + + return string_buf(&s); +} + +void event_write(struct event *o, FILE * f) +{ + char *str = event_tostr(o); + fprintf(f, "%s\n", str); + mem_free(str); } /* Load the events from file */ -- cgit v1.2.3-54-g00ecf