X-Git-Url: https://fleuret.org/cgi-bin/gitweb/gitweb.cgi?a=blobdiff_plain;f=mymail.c;h=d8cf2c7690cbdfc69c73b21721042941f5568432;hb=12e136ba5dbcecd245a26b8a0e92619b77631285;hp=692e0a3a48ad67c95744f23f464faa1b69015260;hpb=8cee89a392dc0a2e1379ae9b56d03c4bf70e0254;p=mymail.git diff --git a/mymail.c b/mymail.c index 692e0a3..d8cf2c7 100644 --- a/mymail.c +++ b/mymail.c @@ -65,6 +65,7 @@ int quiet; enum { ID_MAIL = 0, + ID_FIRST_LINE, ID_FROM, ID_TO, ID_SUBJECT, @@ -76,6 +77,7 @@ enum { static char *field_names[] = { "mail", + "first", "from", "to", "subject", @@ -101,9 +103,15 @@ struct parsable_field { }; static struct parsable_field fields_to_parse[] = { + { + ID_FIRST_LINE, + "^From ", + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } + }, + { ID_FROM, - "^\\(From \\|[Ff][Rr][Oo][Mm]:\\|[R][r][E][e][P][p][L][l][Y][y]-[T][t][O][o]:\\)", + "^\\([Ff][Rr][Oo][Mm]:\\|[Rr][Ee][Pp][Ll][Yy]-[Tt][Oo]:\\|[Ss][Ee][Nn][Dd][Ee][Rr]:\\)", { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } }, @@ -206,7 +214,8 @@ int mbox_line_match_search(struct search_condition *condition, int mbox_id, char *mbox_value) { return (condition->field_id == mbox_id || - (condition->field_id == ID_PARTICIPANT && (mbox_id == ID_FROM || mbox_id == ID_TO))) + (condition->field_id == ID_PARTICIPANT && (mbox_id == ID_FROM || mbox_id == ID_TO)) || + (condition->field_id == ID_FROM && mbox_id == ID_FIRST_LINE)) && regexec(&condition->regexp, mbox_value, 0, 0, 0) == 0; }