From 7f8c62bf57b85234c248316505a503602792839a Mon Sep 17 00:00:00 2001 From: Lukas Fleischer Date: Mon, 11 Jan 2016 22:26:46 +0100 Subject: Add an option to filter by object hash Implement a new --filter-hash option to filter by object identifiers. Each object having an identifier that has the specified pattern as a prefix is matched. Patterns starting with an exclamation mark (!) are interpreted as negative patterns. Signed-off-by: Lukas Fleischer --- src/io.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) (limited to 'src/io.c') diff --git a/src/io.c b/src/io.c index fcb13ae..d25180a 100644 --- a/src/io.c +++ b/src/io.c @@ -684,8 +684,20 @@ void io_load_todo(struct item_filter *filter) continue; } - todo_add(e_todo, id, note); - ++nb_tod; + struct todo *todo = todo_add(e_todo, id, note); + + /* Filter by hash. */ + if (filter && filter->hash) { + char *hash = todo_hash(todo); + if (!hash_matches(filter->hash, hash)) { + todo_delete(todo); + todo = NULL; + } + mem_free(hash); + } + + if (todo) + ++nb_tod; } file_close(data_file, __FILE_POS__); } -- cgit v1.2.3-54-g00ecf