2005-11-29 [colin] 1.9.100cvs44
authorColin Leroy <colin@colino.net>
Tue, 29 Nov 2005 18:41:15 +0000 (18:41 +0000)
committerColin Leroy <colin@colino.net>
Tue, 29 Nov 2005 18:41:15 +0000 (18:41 +0000)
* src/matcher.c
Skip headers unconditionnaly in match_body if the
rule is not message or ~message

ChangeLog
PATCHSETS
configure.ac
src/matcher.c

index 5ebd8b9e51d7e7021ab9bd4920d0b491199f3274..08352079671d59eb20e95acbea0a9c9270b1684d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2005-11-29 [colin]     1.9.100cvs44
+
+       * src/matcher.c
+               Skip headers unconditionnaly in match_body if the
+               rule is not message or ~message
+
 2005-11-29 [colin]     1.9.100cvs43
 
        * src/matcher.c
 2005-11-29 [colin]     1.9.100cvs43
 
        * src/matcher.c
index 00b6f56c9b333cabe692de6499b20d2c71a288b2..d46d4efbd97fc5d8e7a4fb1e52699e8ec3ac30e7 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.60.2.19 -r 1.60.2.20 po/es.po;  ) > 1.9.100cvs41.patchset
 ( cvs diff -u -r 1.382.2.197 -r 1.382.2.198 src/compose.c;  cvs diff -u -r 1.75.2.10 -r 1.75.2.11 src/matcher.c;  cvs diff -u -r 1.94.2.70 -r 1.94.2.71 src/messageview.c;  cvs diff -u -r 1.9.2.32 -r 1.9.2.33 src/gtk/gtkaspell.c;  ) > 1.9.100cvs42.patchset
 ( cvs diff -u -r 1.75.2.11 -r 1.75.2.12 src/matcher.c;  ) > 1.9.100cvs43.patchset
 ( cvs diff -u -r 1.60.2.19 -r 1.60.2.20 po/es.po;  ) > 1.9.100cvs41.patchset
 ( cvs diff -u -r 1.382.2.197 -r 1.382.2.198 src/compose.c;  cvs diff -u -r 1.75.2.10 -r 1.75.2.11 src/matcher.c;  cvs diff -u -r 1.94.2.70 -r 1.94.2.71 src/messageview.c;  cvs diff -u -r 1.9.2.32 -r 1.9.2.33 src/gtk/gtkaspell.c;  ) > 1.9.100cvs42.patchset
 ( cvs diff -u -r 1.75.2.11 -r 1.75.2.12 src/matcher.c;  ) > 1.9.100cvs43.patchset
+( cvs diff -u -r 1.75.2.12 -r 1.75.2.13 src/matcher.c;  ) > 1.9.100cvs44.patchset
index 9c860c6e87dc394871661489647b4fae5df600b2..cb6b206fe7ad4468e503786d85298dc82c8e8549 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=9
 MICRO_VERSION=100
 INTERFACE_AGE=0
 BINARY_AGE=0
 MICRO_VERSION=100
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=43
+EXTRA_VERSION=44
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index fd530dc993d0720319868770cb0bd2efe3825879..35a11773279c2c6312ce727a2c656b4968337dd6 100644 (file)
@@ -766,7 +766,7 @@ static gboolean matcherprop_match_line(MatcherProp *matcher, const gchar *line)
  *
  *\return      gboolean TRUE if succesful match
  */
  *
  *\return      gboolean TRUE if succesful match
  */
-static gboolean matcherlist_match_body(MatcherList *matchers, FILE *fp, gboolean read_headers)
+static gboolean matcherlist_match_body(MatcherList *matchers, FILE *fp)
 {
        GSList *l;
        gchar buf[BUFFSIZE];
 {
        GSList *l;
        gchar buf[BUFFSIZE];
@@ -774,7 +774,8 @@ static gboolean matcherlist_match_body(MatcherList *matchers, FILE *fp, gboolean
        for (l = matchers->matchers ; l != NULL ; l = g_slist_next(l)) {
                MatcherProp *matcher = (MatcherProp *) l->data;
                
        for (l = matchers->matchers ; l != NULL ; l = g_slist_next(l)) {
                MatcherProp *matcher = (MatcherProp *) l->data;
                
-               if (!read_headers)
+               rewind(fp);
+               if (!matcherprop_criteria_message(matcher))
                        matcherlist_skip_headers(fp);
 
                while (fgets(buf, sizeof(buf), fp) != NULL) {
                        matcherlist_skip_headers(fp);
 
                while (fgets(buf, sizeof(buf), fp) != NULL) {
@@ -806,9 +807,6 @@ static gboolean matcherlist_match_body(MatcherList *matchers, FILE *fp, gboolean
                        if (!matchers->bool_and)
                                return TRUE;
                }
                        if (!matchers->bool_and)
                                return TRUE;
                }
-
-               /* restart at beginning */
-               rewind(fp);
        }
        return FALSE;
 }
        }
        return FALSE;
 }
@@ -871,7 +869,7 @@ gboolean matcherlist_match_file(MatcherList *matchers, MsgInfo *info,
 
        /* read the body */
        if (read_body) {
 
        /* read the body */
        if (read_body) {
-               matcherlist_match_body(matchers, fp, read_headers);
+               matcherlist_match_body(matchers, fp);
        }
        
        for (l = matchers->matchers; l != NULL; l = g_slist_next(l)) {
        }
        
        for (l = matchers->matchers; l != NULL; l = g_slist_next(l)) {