diff options
author | Lukas Fleischer <calcurse@cryptocrack.de> | 2012-06-25 13:34:28 +0200 |
---|---|---|
committer | Lukas Fleischer <calcurse@cryptocrack.de> | 2012-06-30 14:34:34 +0200 |
commit | 3763aa1ebff3cf60e20e083d28af7000e8646b5b (patch) | |
tree | 7aa1910305de4b60a95e70827b1aa641a938a224 | |
parent | 244b6c927db34cea9cc83486510af60fd6ae7926 (diff) | |
download | calcurse-3763aa1ebff3cf60e20e083d28af7000e8646b5b.zip |
src/day.c: Add day_write_stdout()
This function allows for writing stored items to stdout in a fashion
similar to day_write_pad(). This will be used as a convenience wrapper
when switching to day_store_items() in non-interactive mode and also
allows for easily implementing a "pipe-day" feature.
Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
-rw-r--r-- | src/calcurse.h | 2 | ||||
-rw-r--r-- | src/day.c | 29 |
2 files changed, 31 insertions, 0 deletions
diff --git a/src/calcurse.h b/src/calcurse.h index 407734d..be2229b 100644 --- a/src/calcurse.h +++ b/src/calcurse.h @@ -668,6 +668,8 @@ int day_store_items(long, unsigned *, unsigned *, regex_t *); struct day_items_nb *day_process_storage(struct date *, unsigned, struct day_items_nb *); void day_write_pad(long, int, int, int); +void day_write_stdout(long, const char *, const char *, const char *, + const char *); void day_popup_item(void); int day_check_if_item(struct date); unsigned day_chk_busy_slices(struct date, int, int *); @@ -455,6 +455,35 @@ void day_write_pad(long date, int width, int length, int incolor) } } +/* Write the appointments and events for the selected day to stdout. */ +void day_write_stdout(long date, const char *fmt_apt, const char *fmt_rapt, + const char *fmt_ev, const char *fmt_rev) +{ + llist_item_t *i; + + LLIST_FOREACH(&day_items, i) { + struct day_item *day = LLIST_TS_GET_DATA(i); + + switch (day->type) { + case APPT: + print_apoint(fmt_apt, date, day->item.apt); + break; + case EVNT: + print_event(fmt_ev, date, day->item.ev); + break; + case RECUR_APPT: + print_recur_apoint(fmt_rapt, date, day->start, day->item.rapt); + break; + case RECUR_EVNT: + print_recur_event(fmt_rev, date, day->item.rev); + break; + default: + EXIT(_("unknown item type")); + /* NOTREACHED */ + } + } +} + /* Display an item inside a popup window. */ void day_popup_item(void) { |