[cvs] bogofilter/src lexer.h,1.26,1.27 lexer_v3.l,1.90,1.91 passthrough.c,1.5,1.6
Fast Bayesian spam filter along lines suggested by Paul Graham
Brought to you by:
m-a
From: <m-...@us...> - 2003-09-25 22:24:22
|
Update of /cvsroot/bogofilter/bogofilter/src In directory sc8-pr-cvs1:/tmp/cvs-serv10005 Modified Files: lexer.h lexer_v3.l passthrough.c Log Message: Improve guessing of header position when lines of only blanks are in the header and no <LF><LF> separator is found. Index: lexer.h =================================================================== RCS file: /cvsroot/bogofilter/bogofilter/src/lexer.h,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- lexer.h 25 Sep 2003 19:21:40 -0000 1.26 +++ lexer.h 25 Sep 2003 22:24:18 -0000 1.27 @@ -36,6 +36,9 @@ BOGO_LEX_LINE } token_t; +/* in lexer_v3.l */ +extern int have_body; + /* in lexer.c */ extern int yylineno; extern bool msg_header; Index: lexer_v3.l =================================================================== RCS file: /cvsroot/bogofilter/bogofilter/src/lexer_v3.l,v retrieving revision 1.90 retrieving revision 1.91 diff -u -d -r1.90 -r1.91 --- lexer_v3.l 25 Sep 2003 19:21:40 -0000 1.90 +++ lexer_v3.l 25 Sep 2003 22:24:18 -0000 1.91 @@ -85,6 +85,8 @@ #undef stderr #define stderr dbgout /* for debug & -D options */ +int have_body; + static word_t yyt; static int lineno; @@ -236,7 +238,8 @@ <INITIAL>[:blank:]*id\ {ID} /* ignore */ <INITIAL>\n[ \t] { lineno += 1; } -<INITIAL>\n\n { if (get_content_type() == MIME_TEXT_HTML) +<INITIAL>\n\n { have_body=1; + if (get_content_type() == MIME_TEXT_HTML) BEGIN HTML; else BEGIN TEXT; @@ -295,6 +298,7 @@ void lexer_v3_init(FILE *fp) { lineno = 0; + have_body = 0; yy_set_state_initial(); yyrestart(fp); } Index: passthrough.c =================================================================== RCS file: /cvsroot/bogofilter/bogofilter/src/passthrough.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- passthrough.c 22 Sep 2003 00:08:44 -0000 1.5 +++ passthrough.c 25 Sep 2003 22:24:18 -0000 1.6 @@ -21,6 +21,8 @@ #include "textblock.h" #include "xmalloc.h" +#include "lexer.h" /* need have_body */ + FILE *fpo; char msg_register[256]; @@ -45,7 +47,7 @@ static bool is_blank_line(const char *line, size_t len) { while (len > 0) { - if (!isspace((unsigned char)*line) && *line != '\b') + if (*line != '\b' && (have_body || !isspace((unsigned char)*line))) return false; len -= 1; line++; |