From a9b820abbe46764f23687eac1d1f62b145cd0962 Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Wed, 9 Nov 2011 18:48:09 +0100 Subject: Use a dynamic method to print events to stdout Add a flexible helper function print_event() and use it whenever we print events to stdout. This reduces the number of copy-pasted code and eventually allows for specifying custom format strings. Following format specifiers are supported: * m: Print the description of the item * n: Print the name of the note file belonging to the item Signed-off-by: Lukas Fleischer --- src/utils.c | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'src/utils.c') diff --git a/src/utils.c b/src/utils.c index 4628798..6b4fa1d 100644 --- a/src/utils.c +++ b/src/utils.c @@ -1002,3 +1002,34 @@ print_apoint (const char *format, long day, struct apoint *apt) putchar (*p); } } + +/* Print a formatted event to stdout. */ +void +print_event (const char *format, long day, struct event *ev) +{ + const char *p; + + for (p = format; *p; p++) + { + if (*p == '%') { + p++; + switch (*p) + { + case 'm': + printf ("%s", ev->mesg); + break; + case 'n': + printf ("%s", ev->note); + break; + case '\0': + return; + break; + default: + putchar ('?'); + break; + } + } + else + putchar (*p); + } +} -- cgit v1.2.3-54-g00ecf