add 'partial' ('p') to find partially downloaded messages
authorColin Leroy <colin@colino.net>
Tue, 13 Jul 2004 17:19:21 +0000 (17:19 +0000)
committerColin Leroy <colin@colino.net>
Tue, 13 Jul 2004 17:19:21 +0000 (17:19 +0000)
ChangeLog-gtk2.claws
PATCHSETS
configure.ac
src/gtk/quicksearch.c
src/matcher.c
src/matcher.h
src/matcher_parser_parse.y
src/prefs_matcher.c

index 4561e1a9669c394636668dfbad56a6b62c9fbef3..0c4d4c6823fef254131a0c50f3f82b9b53400292 100644 (file)
@@ -1,3 +1,13 @@
+2004-07-13 [colin]     0.9.12cvs18.5
+
+       * src/matcher.c
+       * src/matcher.h
+       * src/matcher_parser_parse.y
+       * src/prefs_matcher.c
+       * src/gtk/quicksearch.c
+               Add 'partial' ('p') match string to find partially
+               downloaded messages
+
 2004-07-13 [colin]     0.9.12cvs18.4
 
        * src/pop.c
index ca05fdf821aeac05e9b7858e191a23ab7b7c1d61..2a6a675911e92186b91d9ebbd94220d810858f36 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
@@ -18,3 +18,4 @@
 ( cvs diff -u -r 1.1.2.5 -r 1.1.2.6 src/gtk/quicksearch.c; ) > 0.9.12cvs18.2.patchset
 ( cvs diff -u -r 1.213.2.7 -r 1.213.2.8 src/folder.c; cvs diff -u -r 1.94.2.18 -r 1.94.2.19 src/messageview.c; cvs diff -u -r 1.16.2.5 -r 1.16.2.6 src/msgcache.c; cvs diff -u -r 1.56.2.12 -r 1.56.2.13 src/pop.c; cvs diff -u -r 1.17.2.9 -r 1.17.2.10 src/pop.h; cvs diff -u -r 1.47.2.6 -r 1.47.2.7 src/procheader.c; cvs diff -u -r 1.9.2.4 -r 1.9.2.5 src/common/defs.h; ) > 0.9.12cvs18.3.patchset
 ( cvs diff -u -r 1.56.2.13 -r 1.56.2.14 src/pop.c; ) > 0.9.12cvs18.4.patchset
+( cvs diff -u -r 1.75.2.2 -r 1.75.2.3 src/matcher.c; cvs diff -u -r 1.39.2.3 -r 1.39.2.4 src/matcher.h; cvs diff -u -r 1.25.2.3 -r 1.25.2.4 src/matcher_parser_parse.y; cvs diff -u -r 1.43.2.5 -r 1.43.2.6 src/prefs_matcher.c; cvs diff -u -r 1.1.2.6 -r 1.1.2.7 src/gtk/quicksearch.c; ) > 0.9.12cvs18.5.patchset
index 8aef52c05ff320a3fff290f618c813eff00db686..a08b41718068856d5f46b8ea716766857a48d6cd 100644 (file)
@@ -13,7 +13,7 @@ INTERFACE_AGE=0
 BINARY_AGE=0
 EXTRA_VERSION=18
 EXTRA_RELEASE=
-EXTRA_GTK2_VERSION=.4
+EXTRA_GTK2_VERSION=.5
 
 if test \( $EXTRA_VERSION -eq 0 \) -o \( "x$EXTRA_RELEASE" != "x" \); then
     VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}${EXTRA_RELEASE}${EXTRA_GTK2_VERSION}
index ad9539fe28c24bd0c9af58dd540f5bab5ca0e3d9..16966a9192758ab75856fa4bd83046408a6ab2c4 100644 (file)
@@ -197,6 +197,7 @@ static gchar *search_descr_strings[] = {
        "x S",   N_("messages which contain S in References header"),
        "X cmd", N_("messages returning 0 when passed to command"),
        "y S",   N_("messages which contain S in X-Label header"),
+       "p",     N_("uncomplete messages (not entirely downloaded)"),
        "",      "" ,
        "&",     N_("logical AND operator"),
        "|",     N_("logical OR operator"),
@@ -497,6 +498,7 @@ gchar *expand_search_string(const gchar *search_string)
                { "y",  "header \"X-Label\"",           1,      TRUE,   TRUE  },
                { "&",  "&",                            0,      FALSE,  FALSE },
                { "|",  "|",                            0,      FALSE,  FALSE },
+               { "p",  "partial",                      0,      FALSE,  FALSE },
                { NULL, NULL,                           0,      FALSE,  FALSE }
        };
 
index de1bdea55e001f58e173e072207dc2ab5842c400..3bbbc130e74b50d99a7f7a345d75311876410691 100644 (file)
@@ -88,6 +88,8 @@ static const MatchParser matchparser_tab[] = {
        {MATCHCRITERIA_SCORE_GREATER, "score_greater"},
        {MATCHCRITERIA_SCORE_LOWER, "score_lower"},
        {MATCHCRITERIA_SCORE_EQUAL, "score_equal"},
+       {MATCHCRITERIA_PARTIAL, "partial"},
+       {MATCHCRITERIA_NOT_PARTIAL, "~partial"},
 
        {MATCHCRITERIA_SIZE_GREATER, "size_greater"},
        {MATCHCRITERIA_SIZE_SMALLER, "size_smaller"},
@@ -601,6 +603,10 @@ static gboolean matcherprop_match_one_header(MatcherProp *matcher,
        case MATCHCRITERIA_NOT_MESSAGE:
        case MATCHCRITERIA_NOT_HEADERS_PART:
                return !matcherprop_string_match(matcher, buf);
+       case MATCHCRITERIA_PARTIAL:
+               return matcherprop_string_match(matcher, buf);
+       case MATCHCRITERIA_NOT_PARTIAL:
+               return !matcherprop_string_match(matcher, buf);
        }
        return FALSE;
 }
@@ -621,6 +627,8 @@ static gboolean matcherprop_criteria_headers(const MatcherProp *matcher)
        case MATCHCRITERIA_NOT_HEADER:
        case MATCHCRITERIA_HEADERS_PART:
        case MATCHCRITERIA_NOT_HEADERS_PART:
+       case MATCHCRITERIA_PARTIAL:
+       case MATCHCRITERIA_NOT_PARTIAL:
                return TRUE;
        default:
                return FALSE;
index c8d2484b7f197faa02a084b365e78912881ae5d0..e3d5c31f6a62e131bf1b7f8eb386b6cb5f46ec24 100644 (file)
@@ -78,6 +78,7 @@ enum {
        MC_(REPLIED), MC_(NOT_REPLIED),
        MC_(FORWARDED), MC_(NOT_FORWARDED),
        MC_(LOCKED), MC_(NOT_LOCKED),
+       MC_(PARTIAL), MC_(NOT_PARTIAL),
        MC_(COLORLABEL), MC_(NOT_COLORLABEL),
        MC_(IGNORE_THREAD), MC_(NOT_IGNORE_THREAD),
        MC_(SUBJECT), MC_(NOT_SUBJECT),
index 01dfb764a7d87fae85094e26fa250f0a7e5bfc42..ed313557266dc769ff865623b579a45ab1b1c708 100644 (file)
@@ -235,6 +235,7 @@ int matcher_parserwrap(void)
 %token MATCHER_COLOR MATCHER_SCORE_EQUAL MATCHER_REDIRECT 
 %token MATCHER_SIZE_GREATER MATCHER_SIZE_SMALLER MATCHER_SIZE_EQUAL
 %token MATCHER_LOCKED MATCHER_NOT_LOCKED
+%token MATCHER_PARTIAL MATCHER_NOT_PARTIAL
 %token MATCHER_COLORLABEL MATCHER_NOT_COLORLABEL
 %token MATCHER_IGNORE_THREAD MATCHER_NOT_IGNORE_THREAD
 %token MATCHER_CHANGE_SCORE MATCHER_SET_SCORE
@@ -543,6 +544,20 @@ MATCHER_ALL
        criteria = MATCHCRITERIA_NOT_LOCKED;
        prop = matcherprop_new(criteria, NULL, 0, NULL, 0);
 }
+| MATCHER_PARTIAL
+{
+       gint criteria = 0;
+
+       criteria = MATCHCRITERIA_PARTIAL;
+       prop = matcherprop_new(criteria, NULL, MATCHTYPE_MATCH, "SC-Partially-Retrieved", 0);
+}
+| MATCHER_NOT_PARTIAL
+{
+       gint criteria = 0;
+
+       criteria = MATCHCRITERIA_NOT_PARTIAL;
+       prop = matcherprop_new(criteria, NULL, MATCHTYPE_MATCH, "SC-Partially-Retrieved", 0);
+}
 | MATCHER_COLORLABEL MATCHER_INTEGER
 {
        gint criteria = 0;
index cb61b9e46e102d3faf5bfe461cf0ec96c1264a81..225bd27b300bc800b0d25196292bdcbb78c2c4f6 100644 (file)
@@ -132,7 +132,9 @@ enum {
 
        CRITERIA_SIZE_GREATER = 28,
        CRITERIA_SIZE_SMALLER = 29,
-       CRITERIA_SIZE_EQUAL   = 30
+       CRITERIA_SIZE_EQUAL   = 30,
+       
+       CRITERIA_PARTIAL = 31
 };
 
 /*!
@@ -828,6 +830,9 @@ static gint prefs_matcher_get_criteria_from_matching(gint matching_id)
        case MATCHCRITERIA_LOCKED:
        case MATCHCRITERIA_NOT_LOCKED:
                return CRITERIA_LOCKED;
+       case MATCHCRITERIA_PARTIAL:
+       case MATCHCRITERIA_NOT_PARTIAL:
+               return CRITERIA_PARTIAL;
        case MATCHCRITERIA_COLORLABEL:
        case MATCHCRITERIA_NOT_COLORLABEL:
                return CRITERIA_COLORLABEL;
@@ -922,6 +927,8 @@ static gint prefs_matcher_get_matching_from_criteria(gint criteria_id)
                return MATCHCRITERIA_FORWARDED;
        case CRITERIA_LOCKED:
                return MATCHCRITERIA_LOCKED;
+       case CRITERIA_PARTIAL:
+               return MATCHCRITERIA_PARTIAL;
        case CRITERIA_COLORLABEL:
                return MATCHCRITERIA_COLORLABEL;
        case CRITERIA_IGNORE_THREAD:
@@ -998,6 +1005,8 @@ static gint prefs_matcher_not_criteria(gint matcher_criteria)
                return MATCHCRITERIA_NOT_FORWARDED;
        case MATCHCRITERIA_LOCKED:
                return MATCHCRITERIA_NOT_LOCKED;
+       case MATCHCRITERIA_PARTIAL:
+               return MATCHCRITERIA_NOT_PARTIAL;
        case MATCHCRITERIA_COLORLABEL:
                return MATCHCRITERIA_NOT_COLORLABEL;
        case MATCHCRITERIA_IGNORE_THREAD:
@@ -1072,6 +1081,7 @@ static MatcherProp *prefs_matcher_dialog_to_matcher(void)
        case CRITERIA_REPLIED:
        case CRITERIA_FORWARDED:
        case CRITERIA_LOCKED:
+       case CRITERIA_PARTIAL:
        case CRITERIA_TEST:
        case CRITERIA_COLORLABEL:
        case CRITERIA_IGNORE_THREAD:
@@ -1123,6 +1133,7 @@ static MatcherProp *prefs_matcher_dialog_to_matcher(void)
        case CRITERIA_REPLIED:
        case CRITERIA_FORWARDED:
        case CRITERIA_LOCKED:
+       case CRITERIA_PARTIAL:
        case CRITERIA_IGNORE_THREAD:
                break;
 
@@ -1330,6 +1341,7 @@ static void prefs_matcher_select(GtkCList *clist, gint row, gint column,
        case MATCHCRITERIA_NOT_REPLIED:
        case MATCHCRITERIA_NOT_FORWARDED:
        case MATCHCRITERIA_NOT_LOCKED:
+       case MATCHCRITERIA_NOT_PARTIAL:
        case MATCHCRITERIA_NOT_COLORLABEL:
        case MATCHCRITERIA_NOT_IGNORE_THREAD:
        case MATCHCRITERIA_NOT_SUBJECT:
@@ -1504,6 +1516,7 @@ static void prefs_matcher_criteria_select(GtkList *list,
        case CRITERIA_REPLIED:
        case CRITERIA_FORWARDED:
        case CRITERIA_LOCKED:
+       case CRITERIA_PARTIAL:
        case CRITERIA_IGNORE_THREAD:
                gtk_widget_set_sensitive(matcher.header_combo, FALSE);
                gtk_widget_set_sensitive(matcher.header_label, FALSE);