aboutsummaryrefslogtreecommitdiffstats
path: root/src/utils.c
diff options
context:
space:
mode:
authorLukas Fleischer <lfleischer@calcurse.org>2016-01-11 22:26:46 +0100
committerLukas Fleischer <lfleischer@calcurse.org>2016-01-13 17:39:44 +0100
commit7f8c62bf57b85234c248316505a503602792839a (patch)
treeef8ff6e778840192ee7cfb6c06579602ed6942cb /src/utils.c
parentdd85a7374675c3f91e215c2e318b2c5045a01f53 (diff)
downloadcalcurse-7f8c62bf57b85234c248316505a503602792839a.tar.gz
calcurse-7f8c62bf57b85234c248316505a503602792839a.zip
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>
Diffstat (limited to 'src/utils.c')
-rw-r--r--src/utils.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/utils.c b/src/utils.c
index 58b1d44..528657e 100644
--- a/src/utils.c
+++ b/src/utils.c
@@ -1641,3 +1641,15 @@ int starts_with_ci(const char *s, const char *p)
for (; *p && tolower(*p) == tolower(*s); s++, p++);
return (*p == '\0');
}
+
+int hash_matches(const char *pattern, const char *hash)
+{
+ int invert = 0;
+
+ if (pattern[0] == '!') {
+ invert = 1;
+ pattern++;
+ }
+
+ return (starts_with(hash, pattern) != invert);
+}