From 349bd3f88b094d3e17a84308f9ae4cf0a16d6727 Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Fri, 11 Nov 2011 10:04:16 +0100 Subject: Use a dynamic method to print todo items to stdout This goes in line with the other commits adding print_*() support. Following format specifiers are allowed: * p: Print the priority of the item * 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 | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) (limited to 'src/utils.c') diff --git a/src/utils.c b/src/utils.c index e94c7fa..f2f6305 100644 --- a/src/utils.c +++ b/src/utils.c @@ -1060,3 +1060,37 @@ print_recur_event (const char *format, long day, struct recur_event *rev) print_event (format, day, &ev); } + +/* Print a formatted todo item to stdout. */ +void +print_todo (const char *format, struct todo *todo) +{ + const char *p; + + for (p = format; *p; p++) + { + if (*p == '%') { + p++; + switch (*p) + { + case 'p': + printf ("%d", abs (todo->id)); + break; + case 'm': + printf ("%s", todo->mesg); + break; + case 'n': + printf ("%s", todo->note); + break; + case '\0': + return; + break; + default: + putchar ('?'); + break; + } + } + else + putchar (*p); + } +} -- cgit v1.2.3-54-g00ecf