Commit 33bf1b1a by Eoin Coffey

examples/log.c: invert filtering impl and conditional

parent 87493bca
......@@ -67,8 +67,8 @@ static void print_commit(git_commit *commit);
static int match_with_parent(git_commit *commit, int i, git_diff_options *);
/** utility functions for filtering */
static int signature_does_not_match(const git_signature *sig, const char *filter);
static int log_message_does_not_match(const git_commit *commit, const char *filter);
static int signature_matches(const git_signature *sig, const char *filter);
static int log_message_matches(const git_commit *commit, const char *filter);
int main(int argc, char *argv[])
{
......@@ -132,13 +132,13 @@ int main(int argc, char *argv[])
continue;
}
if (signature_does_not_match(git_commit_author(commit), opt.author))
if (!signature_matches(git_commit_author(commit), opt.author))
continue;
if (signature_does_not_match(git_commit_committer(commit), opt.committer))
if (!signature_matches(git_commit_committer(commit), opt.committer))
continue;
if (log_message_does_not_match(commit, opt.grep))
if (!log_message_matches(commit, opt.grep))
continue;
if (count++ < opt.skip)
......@@ -186,26 +186,26 @@ int main(int argc, char *argv[])
}
/** Determine if the given git_signature does not contain the filter text. */
static int signature_does_not_match(const git_signature *sig, const char *filter) {
static int signature_matches(const git_signature *sig, const char *filter) {
if (filter == NULL)
return 0;
return 1;
if (sig == NULL ||
(strstr(sig->name, filter) == NULL &&
strstr(sig->email, filter) == NULL))
if (sig != NULL &&
(strstr(sig->name, filter) != NULL ||
strstr(sig->email, filter) != NULL))
return 1;
return 0;
}
static int log_message_does_not_match(const git_commit *commit, const char *filter) {
static int log_message_matches(const git_commit *commit, const char *filter) {
const char *message = NULL;
if (filter == NULL)
return 0;
return 1;
if ((message = git_commit_message(commit)) == NULL ||
strstr(message, filter) == NULL)
if ((message = git_commit_message(commit)) != NULL &&
strstr(message, filter) != NULL)
return 1;
return 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment