2007-07-27 [paul] 2.10.0cvs74
[claws.git] / src / matcher.c
index f9af36d5392b7d250451d434e3f5ea2c45072e1f..f25d61c8061044bc1e3e811148caa6db802c58eb 100644 (file)
@@ -4,7 +4,7 @@
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
+ * the Free Software Foundation; either version 3 of the License, or
  * (at your option) any later version.
  *
  * This program is distributed in the hope that it will be useful,
@@ -13,8 +13,8 @@
  * GNU General Public License for more details.
  *
  * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * 
  */
 
 #ifdef HAVE_CONFIG_H
@@ -81,6 +81,8 @@ static const MatchParser matchparser_tab[] = {
        {MATCHCRITERIA_NOT_COLORLABEL, "~colorlabel"},
        {MATCHCRITERIA_IGNORE_THREAD, "ignore_thread"},
        {MATCHCRITERIA_NOT_IGNORE_THREAD, "~ignore_thread"},
+       {MATCHCRITERIA_WATCH_THREAD, "watch_thread"},
+       {MATCHCRITERIA_NOT_WATCH_THREAD, "~watch_thread"},
        {MATCHCRITERIA_SPAM, "spam"},
        {MATCHCRITERIA_NOT_SPAM, "~spam"},
 
@@ -160,6 +162,7 @@ static const MatchParser matchparser_tab[] = {
        {MATCHACTION_STOP, "stop"},
        {MATCHACTION_HIDE, "hide"},
        {MATCHACTION_IGNORE, "ignore"},
+       {MATCHACTION_WATCH, "watch"},
        {MATCHACTION_ADD_TO_ADDRESSBOOK, "add_to_addressbook"},
        {MATCHACTION_SET_TAG, "set_tag"},
        {MATCHACTION_UNSET_TAG, "unset_tag"},
@@ -657,7 +660,7 @@ static gboolean matcherprop_match_test(const MatcherProp *prop,
        if (cmd == NULL)
                return FALSE;
 
-#if (defined USE_PTHREAD && defined __GLIBC__ && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3)))
+#if (defined USE_PTHREAD && ((defined __GLIBC__ && (__GLIBC__ > 2 || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 3))) || !defined __GLIBC__))
        /* debug output */
        if (debug_filtering_session
                        && prefs_common.filtering_debug_level >= FILTERING_DEBUG_LEVEL_HIGH) {
@@ -805,6 +808,10 @@ gboolean matcherprop_match(MatcherProp *prop,
                return MSG_IS_IGNORE_THREAD(info->flags);
        case MATCHCRITERIA_NOT_IGNORE_THREAD:
                return !MSG_IS_IGNORE_THREAD(info->flags);
+       case MATCHCRITERIA_WATCH_THREAD:
+               return MSG_IS_WATCH_THREAD(info->flags);
+       case MATCHCRITERIA_NOT_WATCH_THREAD:
+               return !MSG_IS_WATCH_THREAD(info->flags);
        case MATCHCRITERIA_SUBJECT:
                return matcherprop_string_match(prop, info->subject,
                                                prefs_common_translated_header_name("Subject:"));
@@ -1648,6 +1655,8 @@ gboolean matcherlist_match(MatcherList *matchers, MsgInfo *info)
                case MATCHCRITERIA_NOT_COLORLABEL:
                case MATCHCRITERIA_IGNORE_THREAD:
                case MATCHCRITERIA_NOT_IGNORE_THREAD:
+               case MATCHCRITERIA_WATCH_THREAD:
+               case MATCHCRITERIA_NOT_WATCH_THREAD:
                case MATCHCRITERIA_SUBJECT:
                case MATCHCRITERIA_NOT_SUBJECT:
                case MATCHCRITERIA_FROM:
@@ -1841,6 +1850,8 @@ gchar *matcherprop_to_string(MatcherProp *matcher)
        case MATCHCRITERIA_NOT_PARTIAL:
        case MATCHCRITERIA_IGNORE_THREAD:
        case MATCHCRITERIA_NOT_IGNORE_THREAD:
+       case MATCHCRITERIA_WATCH_THREAD:
+       case MATCHCRITERIA_NOT_WATCH_THREAD:
        case MATCHCRITERIA_TAGGED:
        case MATCHCRITERIA_NOT_TAGGED:
                return g_strdup(criteria_str);