From 21e7610626308bc90e09e71d7c845e83133b7aad Mon Sep 17 00:00:00 2001 From: Francois Fleuret Date: Sat, 23 Mar 2013 23:01:08 +0100 Subject: [PATCH] Changed the regexp for checking the leading From line. --- mymail.c | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/mymail.c b/mymail.c index b3f76d1..e6a2687 100644 --- a/mymail.c +++ b/mymail.c @@ -53,7 +53,7 @@ #define BUFFER_SIZE 65536 #define TOKEN_BUFFER_SIZE 1024 -#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$" +#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\\) [ 0123][0-9] [0-9][0-9]:[0-9][0-9]:[0-9][0-9] [0-9][0-9][0-9][0-9]\n$" /* Global variables! */ @@ -154,12 +154,15 @@ 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) { + + while(u < token_buffer + token_buffer_size - 1 && *string && *string != separator) { *(u++) = *(string++); } + while(*string == separator) { string++; } + *u = '\0'; return string; } @@ -290,9 +293,6 @@ void update_body_hits(char *mail_filename, int position_in_mail, if(fgets(raw_mbox_line, BUFFER_SIZE, mail_file)) { while(nb_body_hits < nb_body_conditions) { - /* last_mbox_line_was_empty = (raw_mbox_line[0] == '\n'); */ - /* if(last_mbox_line_was_empty) { header = 0; } */ - if(raw_mbox_line[0] == '\n') { header = 0; } if(!header) { @@ -328,8 +328,7 @@ void extract_mail(const char *mail_filename, unsigned long int position_in_mail, fprintf(output_file, "%s", raw_mbox_line); while(1) { if(!fgets(raw_mbox_line, BUFFER_SIZE, mail_file) || - (is_a_leading_from_line(raw_mbox_line)) - ) + is_a_leading_from_line(raw_mbox_line)) break; fprintf(output_file, "%s", raw_mbox_line); } -- 2.20.1