diff options
Diffstat (limited to 'src/event.c')
-rw-r--r-- | src/event.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/event.c b/src/event.c index 1e9d940..e0891a2 100644 --- a/src/event.c +++ b/src/event.c @@ -147,6 +147,7 @@ struct event *event_scan(FILE * f, struct tm start, int id, char *note, { char buf[BUFSIZ], *nl; time_t tstart, tend; + struct event *ev; EXIT_IF(!check_date(start.tm_year, start.tm_mon, start.tm_mday) || !check_time(start.tm_hour, start.tm_min), @@ -187,7 +188,19 @@ struct event *event_scan(FILE * f, struct tm start, int id, char *note, return NULL; } - return event_new(buf, note, tstart, id); + ev = event_new(buf, note, tstart, id); + + /* Filter by hash. */ + if (filter && filter->hash) { + char *hash = event_hash(ev); + if (!hash_matches(filter->hash, hash)) { + event_delete(ev); + ev = NULL; + } + mem_free(hash); + } + + return ev; } /* Delete an event from the list. */ |