X-Git-Url: https://www.fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=mymail.c;h=8c211f031415c5501d126367ae1a259c4ac4473a;hb=7969cb9ed996636c33179f648d07d4ead5cb9803;hp=b0744be4165d837d11b3810b3589b7ad529f2149;hpb=b9768330a0a489db900b5b36cff1ec0dda2acacf;p=mymail.git diff --git a/mymail.c b/mymail.c index b0744be..8c211f0 100644 --- a/mymail.c +++ b/mymail.c @@ -21,11 +21,13 @@ /* - This command is a dumb mail indexer. It can either (1) scan - directories containing mbox files, and create a db file containing - for each mail a list of fields computed from the header, or (2) - read such a db file and get all the mails matching regexp-defined - conditions on the fields, to create a resulting mbox file. + mymail is a simple mail indexer. It can: + + (1) scan mbox files, and create a db file containing for each mail a + list of fields computed from its header. + + (2) read such a db file, gets all the mails matching regexp-defined + conditions on the fields, and generates a resulting mbox file. It is low-tech, simple, light and fast. @@ -84,10 +86,9 @@ enum { ID_PARTICIPANT, ID_BODY, ID_TIME_INTERVAL, - /* ID_MAIL_ID, - ID_REFERENCES, - */ + ID_REFERENCE_ID, + ID_THREAD_ID, MAX_ID }; @@ -101,10 +102,9 @@ static char *field_keys[] = { "part", "body", "interval", - /* "mailid", - "references" - */ + "reference", + "thread" }; /********************************************************************/ @@ -161,7 +161,6 @@ static struct parsable_field fields_to_parse[] = { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - /* { ID_MAIL_ID, REG_ICASE, @@ -170,12 +169,11 @@ static struct parsable_field fields_to_parse[] = { }, { - ID_REFERENCES, + ID_REFERENCE_ID, REG_ICASE, "^\\(in-reply-to\\|references\\): ", { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, - */ }; @@ -317,6 +315,10 @@ int db_line_match_search(struct search_condition *condition, (condition->db_key == ID_FROM && db_key == ID_LEADING_LINE) + || + + (condition->db_key == ID_THREAD_ID && (db_key == ID_MAIL_ID || + db_key == ID_REFERENCE_ID)) ) && @@ -825,6 +827,7 @@ static struct time_criterion time_criteria[] = { { "24h", 0, 24, -1, -1 }, { "48h", 0, 48, -1, -1 }, { "week", 0, 24 * 7, -1, -1 }, + { "2weeks", 0, 24 * 14, -1, -1 }, { "month", 0, 24 * 31, -1, -1 }, { "trimester", 0, 24 * 92, -1, -1 }, { "year", 0, 24 * 365, -1, -1 },