X-Git-Url: https://www.fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=mymail.c;h=df64b5a6047d9ce3b224eb29dd40779d58d9ac4d;hb=0b0531480a17cdf846eb03ae361e076a3840c93e;hp=ef6e5c16cba363e2f377a6ed3789bf1cfb40cb47;hpb=592f082bf057a152b394a2c331241063be96e2d9;p=mymail.git diff --git a/mymail.c b/mymail.c index ef6e5c1..df64b5a 100644 --- a/mymail.c +++ b/mymail.c @@ -46,7 +46,7 @@ #include #define MYMAIL_DB_MAGIC_TOKEN "mymail_index_file" -#define VERSION "0.9.2" +#define VERSION "0.9.5" #define MAX_NB_SEARCH_CONDITIONS 32 @@ -55,14 +55,14 @@ #define LEADING_FROM_LINE_REGEXP_STRING "^From [^ ]* \\(Mon\\|Tue\\|Wed\\|Thu\\|Fri\\|Sat\\|Sun\\) \\(Jan\\|Feb\\|Mar\\|Apr\\|May\\|Jun\\|Jul\\|Aug\\|Sep\\|Oct\\|Nov\\|Dec\\) [ 123][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9] [0-9][0-9][0-9][0-9]\n$" -regex_t leading_from_line_regexp; - /* Global variables! */ int paranoid; int quiet; int ignore_dot_files; +regex_t leading_from_line_regexp; + /********************************************************************/ enum { @@ -155,11 +155,12 @@ int xor(int a, int b) { const char *parse_token(char *token_buffer, size_t token_buffer_size, char separator, const char *string) { char *u = token_buffer; + while(*string == separator) { string++; } while(u < token_buffer + token_buffer_size - 1 && *string && *string != separator) { *(u++) = *(string++); } - while(*string == separator) string++; + while(*string == separator) { string++; } *u = '\0'; return string; } @@ -183,7 +184,6 @@ char *default_value(char *current_value, FILE *safe_fopen(const char *path, const char *mode, const char *comment) { FILE *result = fopen(path, mode); - /* printf("Opening '%s' with mode \"%s\"\n", path, mode); */ if(result) { return result; } else { @@ -432,19 +432,19 @@ int search_in_db(const char *db_filename, /* Now check the body ones */ + nb_fulfilled_body_conditions = 0; + if(nb_body_conditions > 0) { update_body_hits(current_mail_filename, current_position_in_mail, nb_search_conditions, search_conditions, nb_body_conditions, hits); - } - - nb_fulfilled_body_conditions = 0; - for(n = 0; n < nb_search_conditions; n++) { - if(search_conditions[n].field_id == ID_BODY && - xor(hits[n], search_conditions[n].negation)) { - nb_fulfilled_body_conditions++; + for(n = 0; n < nb_search_conditions; n++) { + if(search_conditions[n].field_id == ID_BODY && + xor(hits[n], search_conditions[n].negation)) { + nb_fulfilled_body_conditions++; + } } } @@ -704,6 +704,7 @@ static struct time_criterion time_criteria[] = { { "8h", 8, -1, -1 }, { "today", 24, -1, -1 }, { "24h", 24, -1, -1 }, + { "48h", 48, -1, -1 }, { "week", 24 * 7, -1, -1 }, { "month", 24 * 31, -1, -1 }, { "year", 24 * 365, -1, -1 },