projects
/
mymail.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Deals properly with case in the indexing fields.
[mymail.git]
/
mymail.c
diff --git
a/mymail.c
b/mymail.c
index
b890b4b
..
dd84dbe
100644
(file)
--- a/
mymail.c
+++ b/
mymail.c
@@
-101,6
+101,7
@@
struct search_condition {
struct parsable_field {
int id;
struct parsable_field {
int id;
+ int cflags;
char *regexp_string;
regex_t regexp;
};
char *regexp_string;
regex_t regexp;
};
@@
-108,31
+109,36
@@
struct parsable_field {
static struct parsable_field fields_to_parse[] = {
{
ID_LEADING_LINE,
static struct parsable_field fields_to_parse[] = {
{
ID_LEADING_LINE,
+ 0,
"^From ",
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
},
{
ID_FROM,
"^From ",
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
},
{
ID_FROM,
- "^\\([Ff][Rr][Oo][Mm]:\\|[Rr][Ee][Pp][Ll][Yy]-[Tt][Oo]:\\|[Ss][Ee][Nn][Dd][Ee][Rr]:\\)",
+ REG_ICASE,
+ "^\\(from:\\|reply-to:\\|sender:\\|return-path:\\)",
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
},
{
ID_TO,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
},
{
ID_TO,
- "^\\([Tt][Oo]\\|[Cc][Cc]\\|[Bb][Cc][Cc]\\): ",
+ REG_ICASE,
+ "^\\(to\\|cc\\|bcc\\): ",
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
},
{
ID_SUBJECT,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
},
{
ID_SUBJECT,
- "^[Ss][Uu][Bb][Jj][Ee][Cc][Tt]: ",
+ REG_ICASE,
+ "^subject: ",
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
},
{
ID_DATE,
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
},
{
ID_DATE,
- "^[Dd][Aa][Tt][Ee]: ",
+ REG_ICASE,
+ "^date: ",
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
},
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }
},
@@
-1022,7
+1028,7
@@
int main(int argc, char **argv) {
for(f = 0; f < nb_fields_to_parse; f++) {
if(regcomp(&fields_to_parse[f].regexp,
fields_to_parse[f].regexp_string,
for(f = 0; f < nb_fields_to_parse; f++) {
if(regcomp(&fields_to_parse[f].regexp,
fields_to_parse[f].regexp_string,
-
REG_ICASE
)) {
+
fields_to_parse[f].cflags
)) {
fprintf(stderr,
"mymail: Syntax error in regexp \"%s\" for field \"%s\".\n",
fields_to_parse[f].regexp_string,
fprintf(stderr,
"mymail: Syntax error in regexp \"%s\" for field \"%s\".\n",
fields_to_parse[f].regexp_string,