X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=mymail.c;h=b114e8b0d057b1118012bbb42f07eaf0bf153c09;hb=a30b5fcabc093b9a77fc48723369ea88de099bf7;hp=35a0344a971234dfb8f4a8591ff434e95e94c1c7;hpb=4494ac307c7d814e9ee3a1e6e1ead3e1cb35f781;p=mymail.git diff --git a/mymail.c b/mymail.c index 35a0344..b114e8b 100644 --- a/mymail.c +++ b/mymail.c @@ -181,7 +181,9 @@ void search_in_db(int nb_search_patterns, char *position_in_file_string; char *mail_filename; - for(n = 0; n < nb_search_patterns && hits[n]; n++); + for(n = 0; n < nb_search_patterns && + ((hits[n] && !search_requests[n].negation) || + (!hits[n] && search_requests[n].negation)); n++); if(n == nb_search_patterns) { FILE *mail_file; @@ -617,6 +619,13 @@ int main(int argc, char **argv) { for(n = 0; n < nb_search_patterns; n++) { search_regexp_string = segment_next_field(search_pattern[n]); + if(search_pattern[n][0] == '!') { + search_pattern[n]++; + search_requests[n].negation = 1; + } else { + search_requests[n].negation = 0; + } + search_requests[n].field_id = -1; for(m = 0; (m < MAX_ID) && search_requests[n].field_id == -1; m++) { if(strncmp(field_names[m], search_pattern[n], strlen(search_pattern[n])) == 0) {