Use a dynamic method to print recurrent items to stdout

Add print_recur_apoint() and print_recur_event() helper functions to
print recurrent items to stdout and use them everywhere. Currently,
these are only wrapper functions to print_apoint() and print_event()
that create temporary, non-recurrent items.

Signed-off-by: Lukas Fleischer <calcurse@cryptocrack.de>
This commit is contained in:
Lukas Fleischer 2011-11-11 09:30:29 +01:00
parent a9b820abbe
commit 3c59faa925
3 changed files with 33 additions and 7 deletions

View File

@ -385,9 +385,7 @@ app_arg (int add_line, struct date *day, long date, int print_note,
arg_print_date (today); arg_print_date (today);
print_date = 0; print_date = 0;
} }
fputs (" * ", stdout); print_recur_event (" * %m\n", today, re);
fputs (re->mesg, stdout);
fputs ("\n", stdout);
if (print_note && re->note) if (print_note && re->note)
print_notefile (stdout, re->note, 2); print_notefile (stdout, re->note, 2);
} }
@ -482,10 +480,8 @@ app_arg (int add_line, struct date *day, long date, int print_note,
arg_print_date (today); arg_print_date (today);
print_date = 0; print_date = 0;
} }
apt = apoint_recur_s2apoint_s (ra); recur_apoint_find_occurrence (ra, today, &occurrence);
print_apoint (" - %S -> %E\n\t%m\n", today, apt); print_recur_apoint (" - %S -> %E\n\t%m\n", today, occurrence, ra);
mem_free (apt->mesg);
mem_free (apt);
if (print_note && ra->note) if (print_note && ra->note)
print_notefile (stdout, ra->note, 2); print_notefile (stdout, ra->note, 2);
apt = NULL; apt = NULL;

View File

@ -924,6 +924,9 @@ int child_wait (int *, int *, int);
void press_any_key (void); void press_any_key (void);
void print_apoint (const char *, long, struct apoint *); void print_apoint (const char *, long, struct apoint *);
void print_event (const char *, long, struct event *); void print_event (const char *, long, struct event *);
void print_recur_apoint (const char *, long, unsigned,
struct recur_apoint *);
void print_recur_event (const char *, long, struct recur_event *);
/* vars.c */ /* vars.c */
extern int col, row; extern int col, row;

View File

@ -1033,3 +1033,30 @@ print_event (const char *format, long day, struct event *ev)
putchar (*p); putchar (*p);
} }
} }
/* Print a formatted recurrent appointment to stdout. */
void
print_recur_apoint (const char *format, long day, unsigned occurrence,
struct recur_apoint *rapt)
{
struct apoint apt;
apt.start = occurrence;
apt.dur = rapt->dur;
apt.mesg = rapt->mesg;
apt.note = rapt->note;
print_apoint (format, day, &apt);
}
/* Print a formatted recurrent event to stdout. */
void
print_recur_event (const char *format, long day, struct recur_event *rev)
{
struct event ev;
ev.mesg = rev->mesg;
ev.note = rev->note;
print_event (format, day, &ev);
}