-
- /* Print days or week */
- if (print_day || print_week) {
- event_t *event = EVENTS;
- for (int d = 0; d < (print_day ? 1 : 7); d++) {
- /* Get start and end of the day */
- date_t start = {SEL.year, SEL.month, SEL.day, 0, 0};
- date_t end = {SEL.year, SEL.month, SEL.day, 24, 0};
-
- add_days(&start.year, &start.month, &start.day, d);
- add_days(&end.year, &end.month, &end.day, d);
-
- /* Print day header */
- wday_t wday = day_of_week(start.year, start.month, start.day);
- if (d > 0)
- printf("\n");
- printf("%s, %s %d, %d\n",
- day_to_string(wday),
- month_to_string(start.month),
- start.day+1,
- start.year);
-
- /* Skip forward to the day */
- while (event && compare(&start, &event->start) > 0)
- event = event->next;
-
- /* Print event info */
- int printed = 0;
- while (event && compare(&end, &event->start) > 0) {
- if (printed > 0)
- printf("\n");
- printf("* %02d:%02d - %02d:%02d",
- event->start.hour, event->start.min,
- event->end.hour, event->end.min);
- if (!event->name)
- printf("\n");
- if (event->name)
- printf(" %s\n", event->name);
- if (event->loc)
- printf(" Location: %s\n", event->loc);
- if (event->desc)
- printf(" Description: %s\n", event->desc);
- printed++;
- event = event->next;
- }
-
- /* Print no events */
- if (!printed)
- printf(" No events\n");
- }
-
- exit(0);
- }