summaryrefslogtreecommitdiff
path: root/src/apoint.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/apoint.c')
-rw-r--r--src/apoint.c15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/apoint.c b/src/apoint.c
index 23c3163..457317d 100644
--- a/src/apoint.c
+++ b/src/apoint.c
@@ -190,6 +190,7 @@ struct apoint *apoint_scan(FILE * f, struct tm start, struct tm end,
{
char buf[BUFSIZ], *newline;
time_t tstart, tend;
+ struct apoint *apt;
EXIT_IF(!check_date(start.tm_year, start.tm_mon, start.tm_mday) ||
!check_date(end.tm_year, end.tm_mon, end.tm_mday) ||
@@ -233,7 +234,19 @@ struct apoint *apoint_scan(FILE * f, struct tm start, struct tm end,
return NULL;
}
- return apoint_new(buf, note, tstart, tend - tstart, state);
+ apt = apoint_new(buf, note, tstart, tend - tstart, state);
+
+ /* Filter by hash. */
+ if (filter && filter->hash) {
+ char *hash = apoint_hash(apt);
+ if (!hash_matches(filter->hash, hash)) {
+ apoint_delete(apt);
+ apt = NULL;
+ }
+ mem_free(hash);
+ }
+
+ return apt;
}
void apoint_delete(struct apoint *apt)