{"week", 2, NULL, 'w'},
};
-static int print_day = 0;
-static int print_week = 0;
+static int print_day = 0;
+static int print_week = 0;
+static char *calendar = NULL;
/* Usage */
static void usage(char *name)
}
}
+ /* Save default calendar */
+ calendar = argv[optind];
+
/* Load calendars */
for (int i = optind; i < argc; i++)
cal_config("ical", argv[i], "location", argv[i]);
void args_main(void)
{
+ /* Focus the default calendar */
+ if (calendar) {
+ event_t *event = EVENTS;
+ date_t start = {SEL.year, SEL.month, SEL.day, 0, 0};
+ while (event && compare(&start, &event->start) > 0)
+ event = event->next;
+ while (event && !match(calendar, event->cal->name))
+ event = event->next;
+ if (!event)
+ event = EVENTS;
+ while (event && !match(calendar, event->cal->name))
+ event = event->next;
+ if (event)
+ SEL = event->start;
+ }
+
+ /* Print days or week */
if (print_day || print_week) {
event_t *event = EVENTS;
for (int d = 0; d < (print_day ? 1 : 7); d++) {