+2002-12-31 [alfons] 0.8.8claws28
+
+ * src/matcher.[ch]
+ * src/matcher_parser_parse.y
+ * src/prefs_matcher.c
+ add "ignore_thread" and "~ignore_thread" condition so it's
+ possible to make the actions / scoring operate on the ignore
+ thread flag
+
2002-12-31 [christoph] 0.8.8claws27
* src/addrbook.c
MICRO_VERSION=8
INTERFACE_AGE=0
BINARY_AGE=0
-EXTRA_VERSION=claws27
+EXTRA_VERSION=claws28
VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
dnl set $target
{MATCHCRITERIA_NOT_LOCKED, "~locked"},
{MATCHCRITERIA_COLORLABEL, "colorlabel"},
{MATCHCRITERIA_NOT_COLORLABEL, "~colorlabel"},
+ {MATCHCRITERIA_IGNORE_THREAD, "ignore_thread"},
+ {MATCHCRITERIA_NOT_IGNORE_THREAD, "~ignore_thread"},
/* msginfo headers */
{MATCHCRITERIA_SUBJECT, "subject"},
case MATCHCRITERIA_COLORLABEL:
return MSG_GET_COLORLABEL_VALUE(info->flags) == prop->value;
case MATCHCRITERIA_NOT_COLORLABEL:
- return MSG_GET_COLORLABEL_VALUE(info->flags) != prop->value;
+ return MSG_GET_COLORLABEL_VALUE(info->flags) != prop->value;
+ case MATCHCRITERIA_IGNORE_THREAD:
+ return MSG_IS_IGNORE_THREAD(info->flags);
+ case MATCHCRITERIA_NOT_IGNORE_THREAD:
+ return !MSG_IS_IGNORE_THREAD(info->flags);
case MATCHCRITERIA_SUBJECT:
return matcherprop_string_match(prop, info->subject);
case MATCHCRITERIA_NOT_SUBJECT:
case MATCHCRITERIA_NOT_LOCKED:
case MATCHCRITERIA_COLORLABEL:
case MATCHCRITERIA_NOT_COLORLABEL:
+ case MATCHCRITERIA_IGNORE_THREAD:
+ case MATCHCRITERIA_NOT_IGNORE_THREAD:
case MATCHCRITERIA_SUBJECT:
case MATCHCRITERIA_NOT_SUBJECT:
case MATCHCRITERIA_FROM:
case MATCHCRITERIA_NOT_FORWARDED:
case MATCHCRITERIA_LOCKED:
case MATCHCRITERIA_NOT_LOCKED:
+ case MATCHCRITERIA_IGNORE_THREAD:
+ case MATCHCRITERIA_NOT_IGNORE_THREAD:
return g_strdup(criteria_str);
case MATCHCRITERIA_EXECUTE:
case MATCHCRITERIA_NOT_EXECUTE:
MC_(FORWARDED), MC_(NOT_FORWARDED),
MC_(LOCKED), MC_(NOT_LOCKED),
MC_(COLORLABEL), MC_(NOT_COLORLABEL),
+ MC_(IGNORE_THREAD), MC_(NOT_IGNORE_THREAD),
MC_(SUBJECT), MC_(NOT_SUBJECT),
MC_(FROM), MC_(NOT_FROM),
MC_(TO), MC_(NOT_TO),
%token MATCHER_SIZE_GREATER MATCHER_SIZE_SMALLER MATCHER_SIZE_EQUAL
%token MATCHER_LOCKED MATCHER_NOT_LOCKED
%token MATCHER_COLORLABEL MATCHER_NOT_COLORLABEL
+%token MATCHER_IGNORE_THREAD MATCHER_NOT_IGNORE_THREAD
%start file
else if (value > MAX_COLORLABELS) value = MAX_COLORLABELS;
prop = matcherprop_unquote_new(criteria, NULL, 0, NULL, value);
}
+| MATCHER_IGNORE_THREAD
+{
+ gint criteria = 0;
+
+ criteria = MATCHCRITERIA_IGNORE_THREAD;
+ prop = matcherprop_unquote_new(criteria, NULL, 0, NULL, 0);
+}
+| MATCHER_NOT_IGNORE_THREAD
+{
+ gint criteria = 0;
+
+ criteria = MATCHCRITERIA_NOT_IGNORE_THREAD;
+ prop = matcherprop_unquote_new(criteria, NULL, 0, NULL, 0);
+}
| MATCHER_SUBJECT match_type MATCHER_STRING
{
gint criteria = 0;
CRITERIA_FORWARDED = 20,
CRITERIA_LOCKED = 21,
CRITERIA_COLORLABEL = 22,
+ CRITERIA_IGNORE_THREAD = 23,
- CRITERIA_SCORE_GREATER = 23,
- CRITERIA_SCORE_LOWER = 24,
- CRITERIA_SCORE_EQUAL = 25,
+ CRITERIA_SCORE_GREATER = 24,
+ CRITERIA_SCORE_LOWER = 25,
+ CRITERIA_SCORE_EQUAL = 26,
- CRITERIA_EXECUTE = 26,
+ CRITERIA_EXECUTE = 27,
- CRITERIA_SIZE_GREATER = 27,
- CRITERIA_SIZE_SMALLER = 28,
- CRITERIA_SIZE_EQUAL = 29
+ CRITERIA_SIZE_GREATER = 28,
+ CRITERIA_SIZE_SMALLER = 29,
+ CRITERIA_SIZE_EQUAL = 30
};
enum {
N_("Replied flag"), N_("Forwarded flag"),
N_("Locked flag"),
N_("Color label"),
+ N_("Ignore thread"),
N_("Score greater than"), N_("Score lower than"),
N_("Score equal to"),
N_("Execute"),
case MATCHCRITERIA_COLORLABEL:
case MATCHCRITERIA_NOT_COLORLABEL:
return CRITERIA_COLORLABEL;
+ case MATCHCRITERIA_IGNORE_THREAD:
+ case MATCHCRITERIA_NOT_IGNORE_THREAD:
+ return CRITERIA_IGNORE_THREAD;
case MATCHCRITERIA_NOT_SUBJECT:
case MATCHCRITERIA_SUBJECT:
return CRITERIA_SUBJECT;
return MATCHCRITERIA_LOCKED;
case CRITERIA_COLORLABEL:
return MATCHCRITERIA_COLORLABEL;
+ case CRITERIA_IGNORE_THREAD:
+ return MATCHCRITERIA_IGNORE_THREAD;
case CRITERIA_SUBJECT:
return MATCHCRITERIA_SUBJECT;
case CRITERIA_FROM:
return MATCHCRITERIA_NOT_LOCKED;
case MATCHCRITERIA_COLORLABEL:
return MATCHCRITERIA_NOT_COLORLABEL;
+ case MATCHCRITERIA_IGNORE_THREAD:
+ return MATCHCRITERIA_NOT_IGNORE_THREAD;
case MATCHCRITERIA_SUBJECT:
return MATCHCRITERIA_NOT_SUBJECT;
case MATCHCRITERIA_FROM:
case CRITERIA_LOCKED:
case CRITERIA_EXECUTE:
case CRITERIA_COLORLABEL:
+ case CRITERIA_IGNORE_THREAD:
if (value_pred_flag == PREDICATE_FLAG_DISABLED)
criteria = prefs_matcher_not_criteria(criteria);
break;
case CRITERIA_REPLIED:
case CRITERIA_FORWARDED:
case CRITERIA_LOCKED:
+ case CRITERIA_IGNORE_THREAD:
break;
case CRITERIA_SUBJECT:
case MATCHCRITERIA_NOT_FORWARDED:
case MATCHCRITERIA_NOT_LOCKED:
case MATCHCRITERIA_NOT_COLORLABEL:
+ case MATCHCRITERIA_NOT_IGNORE_THREAD:
case MATCHCRITERIA_NOT_SUBJECT:
case MATCHCRITERIA_NOT_FROM:
case MATCHCRITERIA_NOT_TO:
case CRITERIA_REPLIED:
case CRITERIA_FORWARDED:
case CRITERIA_LOCKED:
+ case CRITERIA_IGNORE_THREAD:
gtk_widget_set_sensitive(matcher.header_combo, FALSE);
gtk_widget_set_sensitive(matcher.header_label, FALSE);
gtk_widget_set_sensitive(matcher.value_label, FALSE);