matcher grammar: in condition, "execute" is changed to "test" (solve a bug)
authorHoà Viêt Dinh <dinh.viet.hoa@free.fr>
Wed, 17 Sep 2003 08:59:33 +0000 (08:59 +0000)
committerHoà Viêt Dinh <dinh.viet.hoa@free.fr>
Wed, 17 Sep 2003 08:59:33 +0000 (08:59 +0000)
ChangeLog.claws
TODO.claws
configure.ac
src/matcher.c
src/matcher.h
src/matcher_parser_parse.y
src/prefs_matcher.c

index 67d1ff8..5e974a8 100644 (file)
@@ -1,3 +1,12 @@
+2003-09-17 [hoa]       0.9.5claws18
+       
+       * changed the keyword used for command execution in condition
+               keyword is changed from "execute" to "test"
+               so that it is not the same as the one used for action.
+               This will fix a bug when using filtering dialog.
+               All semantic in the code is also changed to reflect
+               the keyword change.
+
 2003-09-17 [paul]
        
        * sync with 0.9.6 release
 2003-09-17 [paul]
        
        * sync with 0.9.6 release
index 8537cb0..37b62c3 100644 (file)
@@ -17,11 +17,9 @@ win32 0.8.0claws+
 [hoa]
 
        o work on sylpheed :)
 [hoa]
 
        o work on sylpheed :)
-       o several actions on filtering condition
        o separate code of compose dialog and building of message
          compose should return some kind of MIME structure so that
          a message can be built.
        o separate code of compose dialog and building of message
          compose should return some kind of MIME structure so that
          a message can be built.
-       o use libEtPan! in sylpheed
 
 [christoph]
 
 
 [christoph]
 
index 5f1b36e..fb3ed53 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=9
 MICRO_VERSION=5
 INTERFACE_AGE=0
 BINARY_AGE=0
 MICRO_VERSION=5
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=17
+EXTRA_VERSION=18
 if test $EXTRA_VERSION -eq 0; then
     VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}claws
 else
 if test $EXTRA_VERSION -eq 0; then
     VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}claws
 else
index 9a1585a..59e21d2 100644 (file)
@@ -100,8 +100,8 @@ static const MatchParser matchparser_tab[] = {
        {MATCHCRITERIA_NOT_MESSAGE, "~message"},
        {MATCHCRITERIA_BODY_PART, "body_part"},
        {MATCHCRITERIA_NOT_BODY_PART, "~body_part"},
        {MATCHCRITERIA_NOT_MESSAGE, "~message"},
        {MATCHCRITERIA_BODY_PART, "body_part"},
        {MATCHCRITERIA_NOT_BODY_PART, "~body_part"},
-       {MATCHCRITERIA_EXECUTE, "execute"},
-       {MATCHCRITERIA_NOT_EXECUTE, "~execute"},
+       {MATCHCRITERIA_TEST, "test"},
+       {MATCHCRITERIA_NOT_TEST, "~test"},
 
        /* match type */
        {MATCHTYPE_MATCHCASE, "matchcase"},
 
        /* match type */
        {MATCHTYPE_MATCHCASE, "matchcase"},
@@ -446,7 +446,7 @@ static gboolean matcherprop_string_match(MatcherProp *prop, const gchar *str)
  *
  *\return      gboolean TRUE if command was executed succesfully
  */
  *
  *\return      gboolean TRUE if command was executed succesfully
  */
-static gboolean matcherprop_match_execute(const MatcherProp *prop, 
+static gboolean matcherprop_match_test(const MatcherProp *prop, 
                                          MsgInfo *info)
 {
        gchar *file;
                                          MsgInfo *info)
 {
        gchar *file;
@@ -577,10 +577,10 @@ gboolean matcherprop_match(MatcherProp *prop,
                return matcherprop_string_match(prop, info->references);
        case MATCHCRITERIA_NOT_REFERENCES:
                return !matcherprop_string_match(prop, info->references);
                return matcherprop_string_match(prop, info->references);
        case MATCHCRITERIA_NOT_REFERENCES:
                return !matcherprop_string_match(prop, info->references);
-       case MATCHCRITERIA_EXECUTE:
-               return matcherprop_match_execute(prop, info);
-       case MATCHCRITERIA_NOT_EXECUTE:
-               return !matcherprop_match_execute(prop, info);
+       case MATCHCRITERIA_TEST:
+               return matcherprop_match_test(prop, info);
+       case MATCHCRITERIA_NOT_TEST:
+               return !matcherprop_match_test(prop, info);
        default:
                return 0;
        }
        default:
                return 0;
        }
@@ -1028,8 +1028,8 @@ gboolean matcherlist_match(MatcherList *matchers, MsgInfo *info)
                case MATCHCRITERIA_SIZE_GREATER:
                case MATCHCRITERIA_SIZE_SMALLER:
                case MATCHCRITERIA_SIZE_EQUAL:
                case MATCHCRITERIA_SIZE_GREATER:
                case MATCHCRITERIA_SIZE_SMALLER:
                case MATCHCRITERIA_SIZE_EQUAL:
-               case MATCHCRITERIA_EXECUTE:
-               case MATCHCRITERIA_NOT_EXECUTE:
+               case MATCHCRITERIA_TEST:
+               case MATCHCRITERIA_NOT_TEST:
                        if (matcherprop_match(matcher, info)) {
                                if (!matchers->bool_and) {
                                        return TRUE;
                        if (matcherprop_match(matcher, info)) {
                                if (!matchers->bool_and) {
                                        return TRUE;
@@ -1110,8 +1110,8 @@ gchar *matcherprop_to_string(MatcherProp *matcher)
        case MATCHCRITERIA_IGNORE_THREAD:
        case MATCHCRITERIA_NOT_IGNORE_THREAD:
                return g_strdup(criteria_str);
        case MATCHCRITERIA_IGNORE_THREAD:
        case MATCHCRITERIA_NOT_IGNORE_THREAD:
                return g_strdup(criteria_str);
-       case MATCHCRITERIA_EXECUTE:
-       case MATCHCRITERIA_NOT_EXECUTE:
+       case MATCHCRITERIA_TEST:
+       case MATCHCRITERIA_NOT_TEST:
                 expr = matcher_escape_str(matcher->expr);
                matcher_str = g_strdup_printf("%s \"%s\"", criteria_str, expr);
                 g_free((gpointer) expr);
                 expr = matcher_escape_str(matcher->expr);
                matcher_str = g_strdup_printf("%s \"%s\"", criteria_str, expr);
                 g_free((gpointer) expr);
index 414df2e..9c19784 100644 (file)
@@ -93,7 +93,7 @@ enum {
        MC_(HEADERS_PART), MC_(NOT_HEADERS_PART),
        MC_(MESSAGE), MC_(NOT_MESSAGE),
        MC_(BODY_PART), MC_(NOT_BODY_PART),
        MC_(HEADERS_PART), MC_(NOT_HEADERS_PART),
        MC_(MESSAGE), MC_(NOT_MESSAGE),
        MC_(BODY_PART), MC_(NOT_BODY_PART),
-       MC_(EXECUTE), MC_(NOT_EXECUTE),
+       MC_(TEST), MC_(NOT_TEST),
        MC_(SCORE_EQUAL),
        MC_(SIZE_GREATER), 
        MC_(SIZE_SMALLER),
        MC_(SCORE_EQUAL),
        MC_(SIZE_GREATER), 
        MC_(SIZE_SMALLER),
index bbe8a6d..72dbaa2 100644 (file)
@@ -245,9 +245,10 @@ int matcher_parserwrap(void)
 %token MATCHER_SCORE_LOWER  MATCHER_HEADER  MATCHER_NOT_HEADER
 %token MATCHER_HEADERS_PART  MATCHER_NOT_HEADERS_PART  MATCHER_MESSAGE
 %token MATCHER_NOT_MESSAGE  MATCHER_BODY_PART  MATCHER_NOT_BODY_PART
 %token MATCHER_SCORE_LOWER  MATCHER_HEADER  MATCHER_NOT_HEADER
 %token MATCHER_HEADERS_PART  MATCHER_NOT_HEADERS_PART  MATCHER_MESSAGE
 %token MATCHER_NOT_MESSAGE  MATCHER_BODY_PART  MATCHER_NOT_BODY_PART
-%token MATCHER_EXECUTE  MATCHER_NOT_EXECUTE  MATCHER_MATCHCASE  MATCHER_MATCH
+%token MATCHER_TEST  MATCHER_NOT_TEST  MATCHER_MATCHCASE  MATCHER_MATCH
 %token MATCHER_REGEXPCASE  MATCHER_REGEXP  MATCHER_SCORE  MATCHER_MOVE
 %token MATCHER_COPY  MATCHER_DELETE  MATCHER_MARK  MATCHER_UNMARK MATCHER_LOCK MATCHER_UNLOCK
 %token MATCHER_REGEXPCASE  MATCHER_REGEXP  MATCHER_SCORE  MATCHER_MOVE
 %token MATCHER_COPY  MATCHER_DELETE  MATCHER_MARK  MATCHER_UNMARK MATCHER_LOCK MATCHER_UNLOCK
+%token MATCHER_EXECUTE
 %token MATCHER_MARK_AS_READ  MATCHER_MARK_AS_UNREAD  MATCHER_FORWARD
 %token MATCHER_FORWARD_AS_ATTACHMENT  MATCHER_EOL  MATCHER_STRING  
 %token MATCHER_OR MATCHER_AND  
 %token MATCHER_MARK_AS_READ  MATCHER_MARK_AS_UNREAD  MATCHER_FORWARD
 %token MATCHER_FORWARD_AS_ATTACHMENT  MATCHER_EOL  MATCHER_STRING  
 %token MATCHER_OR MATCHER_AND  
@@ -870,21 +871,21 @@ MATCHER_ALL
        expr = $3;
        prop = matcherprop_unquote_new(criteria, NULL, match_type, expr, 0);
 }
        expr = $3;
        prop = matcherprop_unquote_new(criteria, NULL, match_type, expr, 0);
 }
-| MATCHER_EXECUTE MATCHER_STRING
+| MATCHER_TEST MATCHER_STRING
 {
        gint criteria = 0;
        gchar *expr = NULL;
 
 {
        gint criteria = 0;
        gchar *expr = NULL;
 
-       criteria = MATCHCRITERIA_EXECUTE;
+       criteria = MATCHCRITERIA_TEST;
        expr = $2;
        prop = matcherprop_unquote_new(criteria, NULL, 0, expr, 0);
 }
        expr = $2;
        prop = matcherprop_unquote_new(criteria, NULL, 0, expr, 0);
 }
-| MATCHER_NOT_EXECUTE MATCHER_STRING
+| MATCHER_NOT_TEST MATCHER_STRING
 {
        gint criteria = 0;
        gchar *expr = NULL;
 
 {
        gint criteria = 0;
        gchar *expr = NULL;
 
-       criteria = MATCHCRITERIA_NOT_EXECUTE;
+       criteria = MATCHCRITERIA_NOT_TEST;
        expr = $2;
        prop = matcherprop_unquote_new(criteria, NULL, 0, expr, 0);
 }
        expr = $2;
        prop = matcherprop_unquote_new(criteria, NULL, 0, expr, 0);
 }
index 088b70a..eb8a5fc 100644 (file)
@@ -128,7 +128,7 @@ enum {
        CRITERIA_SCORE_LOWER = 25,
        CRITERIA_SCORE_EQUAL = 26,
 
        CRITERIA_SCORE_LOWER = 25,
        CRITERIA_SCORE_EQUAL = 26,
 
-       CRITERIA_EXECUTE = 27,
+       CRITERIA_TEST = 27,
 
        CRITERIA_SIZE_GREATER = 28,
        CRITERIA_SIZE_SMALLER = 29,
 
        CRITERIA_SIZE_GREATER = 28,
        CRITERIA_SIZE_SMALLER = 29,
@@ -881,9 +881,9 @@ static gint prefs_matcher_get_criteria_from_matching(gint matching_id)
                return CRITERIA_SCORE_LOWER;
        case MATCHCRITERIA_SCORE_EQUAL:
                return CRITERIA_SCORE_EQUAL;
                return CRITERIA_SCORE_LOWER;
        case MATCHCRITERIA_SCORE_EQUAL:
                return CRITERIA_SCORE_EQUAL;
-       case MATCHCRITERIA_NOT_EXECUTE:
-       case MATCHCRITERIA_EXECUTE:
-               return CRITERIA_EXECUTE;
+       case MATCHCRITERIA_NOT_TEST:
+       case MATCHCRITERIA_TEST:
+               return CRITERIA_TEST;
        case MATCHCRITERIA_SIZE_GREATER:
                return CRITERIA_SIZE_GREATER;
        case MATCHCRITERIA_SIZE_SMALLER:
        case MATCHCRITERIA_SIZE_GREATER:
                return CRITERIA_SIZE_GREATER;
        case MATCHCRITERIA_SIZE_SMALLER:
@@ -960,8 +960,8 @@ static gint prefs_matcher_get_matching_from_criteria(gint criteria_id)
                return MATCHCRITERIA_BODY_PART;
        case CRITERIA_MESSAGE:
                return MATCHCRITERIA_MESSAGE;
                return MATCHCRITERIA_BODY_PART;
        case CRITERIA_MESSAGE:
                return MATCHCRITERIA_MESSAGE;
-       case CRITERIA_EXECUTE:
-               return MATCHCRITERIA_EXECUTE;
+       case CRITERIA_TEST:
+               return MATCHCRITERIA_TEST;
        case CRITERIA_SIZE_GREATER:
                return MATCHCRITERIA_SIZE_GREATER;
        case CRITERIA_SIZE_SMALLER:
        case CRITERIA_SIZE_GREATER:
                return MATCHCRITERIA_SIZE_GREATER;
        case CRITERIA_SIZE_SMALLER:
@@ -1024,8 +1024,8 @@ static gint prefs_matcher_not_criteria(gint matcher_criteria)
                return MATCHCRITERIA_NOT_HEADERS_PART;
        case MATCHCRITERIA_MESSAGE:
                return MATCHCRITERIA_NOT_MESSAGE;
                return MATCHCRITERIA_NOT_HEADERS_PART;
        case MATCHCRITERIA_MESSAGE:
                return MATCHCRITERIA_NOT_MESSAGE;
-       case MATCHCRITERIA_EXECUTE:
-               return MATCHCRITERIA_NOT_EXECUTE;
+       case MATCHCRITERIA_TEST:
+               return MATCHCRITERIA_NOT_TEST;
        case MATCHCRITERIA_BODY_PART:
                return MATCHCRITERIA_NOT_BODY_PART;
        default:
        case MATCHCRITERIA_BODY_PART:
                return MATCHCRITERIA_NOT_BODY_PART;
        default:
@@ -1072,7 +1072,7 @@ static MatcherProp *prefs_matcher_dialog_to_matcher(void)
        case CRITERIA_REPLIED:
        case CRITERIA_FORWARDED:
        case CRITERIA_LOCKED:
        case CRITERIA_REPLIED:
        case CRITERIA_FORWARDED:
        case CRITERIA_LOCKED:
-       case CRITERIA_EXECUTE:
+       case CRITERIA_TEST:
        case CRITERIA_COLORLABEL:
        case CRITERIA_IGNORE_THREAD:
                if (value_pred_flag == PREDICATE_FLAG_DISABLED)
        case CRITERIA_COLORLABEL:
        case CRITERIA_IGNORE_THREAD:
                if (value_pred_flag == PREDICATE_FLAG_DISABLED)
@@ -1137,7 +1137,7 @@ static MatcherProp *prefs_matcher_dialog_to_matcher(void)
        case CRITERIA_HEADERS_PART:
        case CRITERIA_BODY_PART:
        case CRITERIA_MESSAGE:
        case CRITERIA_HEADERS_PART:
        case CRITERIA_BODY_PART:
        case CRITERIA_MESSAGE:
-       case CRITERIA_EXECUTE:
+       case CRITERIA_TEST:
                expr = gtk_entry_get_text(GTK_ENTRY(matcher.value_entry));
                break;
 
                expr = gtk_entry_get_text(GTK_ENTRY(matcher.value_entry));
                break;
 
@@ -1374,7 +1374,7 @@ static void prefs_matcher_select(GtkCList *clist, gint row, gint column,
        case MATCHCRITERIA_HEADERS_PART:
        case MATCHCRITERIA_BODY_PART:
        case MATCHCRITERIA_MESSAGE:
        case MATCHCRITERIA_HEADERS_PART:
        case MATCHCRITERIA_BODY_PART:
        case MATCHCRITERIA_MESSAGE:
-       case MATCHCRITERIA_EXECUTE:
+       case MATCHCRITERIA_TEST:
                gtk_entry_set_text(GTK_ENTRY(matcher.value_entry), prop->expr);
                break;
 
                gtk_entry_set_text(GTK_ENTRY(matcher.value_entry), prop->expr);
                break;
 
@@ -1558,7 +1558,7 @@ static void prefs_matcher_criteria_select(GtkList *list,
                gtk_widget_set_sensitive(matcher.exec_btn, FALSE);
                break;
 
                gtk_widget_set_sensitive(matcher.exec_btn, FALSE);
                break;
 
-       case CRITERIA_EXECUTE:
+       case CRITERIA_TEST:
                gtk_widget_set_sensitive(matcher.header_combo, FALSE);
                gtk_widget_set_sensitive(matcher.header_label, FALSE);
                gtk_widget_set_sensitive(matcher.value_label, TRUE);
                gtk_widget_set_sensitive(matcher.header_combo, FALSE);
                gtk_widget_set_sensitive(matcher.header_label, FALSE);
                gtk_widget_set_sensitive(matcher.value_label, TRUE);