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 <lfleischer@calcurse.org>
This commit is contained in:
Lukas Fleischer
2016-01-11 22:26:46 +01:00
parent dd85a73746
commit 7f8c62bf57
7 changed files with 91 additions and 8 deletions

View File

@@ -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__);
}