removed the escaped string from internal structures of matcher
authorHoà Viêt Dinh <dinh.viet.hoa@free.fr>
Sun, 13 Oct 2002 21:51:30 +0000 (21:51 +0000)
committerHoà Viêt Dinh <dinh.viet.hoa@free.fr>
Sun, 13 Oct 2002 21:51:30 +0000 (21:51 +0000)
ChangeLog.claws
configure.in
src/matcher.c
src/matcher.h
src/matcher_parser_parse.y

index 40197dd..eeef557 100644 (file)
@@ -1,3 +1,10 @@
+2002-10-13 [hoa]       0.8.5claws32
+
+       * src/matcher.[ch]
+         src/matcher_parser_parser.y
+               removed the escaped string from internal structure
+               of matcher.
+
 2002-10-12 [colin]     0.8.5claws31
 
        * src/gtksctree.[ch]
index 8ed4bf5..18d4016 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=8
 MICRO_VERSION=5
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=claws31
+EXTRA_VERSION=claws32
 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
 
 dnl set $target
index a348a0e..1afd165 100644 (file)
@@ -213,19 +213,15 @@ MatcherProp * matcherprop_new(gint criteria, gchar * header,
        prop->criteria = criteria;
        if (header != NULL) {
                prop->header       = g_strdup(header);
-               prop->unesc_header = matcher_unescape_str(g_strdup(header)); 
        }       
        else {
                prop->header       = NULL;
-               prop->unesc_header = NULL;
        }       
        if (expr != NULL) {
                prop->expr       = g_strdup(expr);
-               prop->unesc_expr = matcher_unescape_str(g_strdup(expr));
        }       
        else {
                prop->expr       = NULL;
-               prop->unesc_expr = NULL;
        }       
        prop->matchtype = matchtype;
        prop->preg = NULL;
@@ -241,12 +237,8 @@ void matcherprop_free(MatcherProp * prop)
 {
        if (prop->expr) 
                g_free(prop->expr);
-       if (prop->unesc_expr) 
-               g_free(prop->unesc_expr);
        if (prop->header)
                g_free(prop->header);
-       if (prop->unesc_header) 
-               g_free(prop->unesc_header);
        if (prop->preg != NULL) {
                regfree(prop->preg);
                g_free(prop->preg);
@@ -255,6 +247,34 @@ void matcherprop_free(MatcherProp * prop)
 }
 
 
+/* ****************** wrapper for file reading ************** */
+
+MatcherProp * matcherprop_unquote_new(gint criteria, gchar * header,
+    gint matchtype, gchar * expr,
+    int value)
+{
+        MatcherProp * prop;
+
+        if (expr != NULL)
+                expr = matcher_unescape_str(g_strdup(expr));
+        else
+                expr = NULL;
+
+        if (header != NULL)
+                header = matcher_unescape_str(g_strdup(header));
+        else
+                header = NULL;
+        
+        prop = matcherprop_new(criteria, header,
+            matchtype, expr, value);
+
+        g_free(header);
+        g_free(expr);
+
+       return prop;
+}
+
+
 /* ************** match ******************************/
 
 
@@ -274,8 +294,7 @@ static gboolean matcherprop_string_match(MatcherProp * prop, gchar * str)
                if (!prop->preg && (prop->error == 0)) {
                        prop->preg = g_new0(regex_t, 1);
                        /* if regexp then don't use the escaped string */
-                        printf("%s\n", prop->expr);
-                       if (regcomp(prop->preg, prop->unesc_expr,
+                       if (regcomp(prop->preg, prop->expr,
                                    REG_NOSUB | REG_EXTENDED
                                    | ((prop->matchtype == MATCHTYPE_REGEXPCASE)
                                    ? REG_ICASE : 0)) != 0) {
@@ -293,12 +312,12 @@ static gboolean matcherprop_string_match(MatcherProp * prop, gchar * str)
                        return FALSE;
 
        case MATCHTYPE_MATCH:
-               return (strstr(str, prop->unesc_expr) != NULL);
+               return (strstr(str, prop->expr) != NULL);
 
        /* FIXME: put upper in unesc_str */
        case MATCHTYPE_MATCHCASE:
-               str2 = alloca(strlen(prop->unesc_expr) + 1);
-               strcpy(str2, prop->unesc_expr);
+               str2 = alloca(strlen(prop->expr) + 1);
+               strcpy(str2, prop->expr);
                g_strup(str2);
                str1 = alloca(strlen(str) + 1);
                strcpy(str1, str);
@@ -321,7 +340,7 @@ gboolean matcherprop_match_execute(MatcherProp * prop, MsgInfo * info)
                return FALSE;
        g_free(file);           
 
-       cmd = matching_build_command(prop->unesc_expr, info);
+       cmd = matching_build_command(prop->expr, info);
        if (cmd == NULL)
                return FALSE;
 
@@ -834,6 +853,8 @@ gchar * matcherprop_to_string(MatcherProp * matcher)
        gchar * criteria_str;
        gchar * matchtype_str;
        int i;
+        char * expr;
+        char * header;
 
        criteria_str = NULL;
        for(i = 0 ; i < (int) (sizeof(matchparser_tab) / sizeof(MatchParser)) ;
@@ -870,7 +891,10 @@ gchar * matcherprop_to_string(MatcherProp * matcher)
                return g_strdup(criteria_str);
        case MATCHCRITERIA_EXECUTE:
        case MATCHCRITERIA_NOT_EXECUTE:
-               return g_strdup_printf("%s \"%s\"", criteria_str, matcher->expr);
+                expr = matcher_escape_str(matcher->expr);
+               matcher_str = g_strdup_printf("%s \"%s\"", criteria_str, expr);
+                g_free(expr);
+                return matcher_str;
        }
 
        matchtype_str = NULL;
@@ -888,16 +912,20 @@ gchar * matcherprop_to_string(MatcherProp * matcher)
        case MATCHTYPE_MATCHCASE:
        case MATCHTYPE_REGEXP:
        case MATCHTYPE_REGEXPCASE:
+                expr = matcher_escape_str(matcher->expr);
+                header = matcher_escape_str(matcher->header);
                if (matcher->header)
                        matcher_str =
                                g_strdup_printf("%s \"%s\" %s \"%s\"",
                                           criteria_str, matcher->header,
-                                          matchtype_str, matcher->expr);
+                                          matchtype_str, expr);
                else
                        matcher_str =
                                g_strdup_printf("%s %s \"%s\"", criteria_str,
-                                               matchtype_str, matcher->expr);
+                                               matchtype_str, expr);
                break;
+                g_free(header);
+                g_free(expr);
        }
 
        return matcher_str;
index 56ef8d1..b19b5a0 100644 (file)
@@ -30,9 +30,7 @@ struct _MatcherProp {
        int matchtype;
        int criteria;
        gchar * header;
-       gchar * unesc_header;           /* cache unescaped header... */
        gchar * expr;
-       gchar * unesc_expr;             /* cache unescaped expression... */
        int value;
        regex_t * preg;
        int error;
@@ -106,6 +104,11 @@ gchar * get_matchparser_tab_str(gint id);
 MatcherProp * matcherprop_new(gint criteria, gchar * header,
                              gint matchtype, gchar * expr,
                              int age);
+
+MatcherProp * matcherprop_unquote_new(gint criteria, gchar * header,
+    gint matchtype, gchar * expr,
+    int value);
+
 void matcherprop_free(MatcherProp * prop);
 MatcherProp * matcherprop_parse(gchar ** str);
 
index 635aa8f..5ad0d39 100644 (file)
@@ -327,91 +327,91 @@ MATCHER_ALL
        gint criteria = 0;
 
        criteria = MATCHCRITERIA_ALL;
-       prop = matcherprop_new(criteria, NULL, 0, NULL, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, 0, NULL, 0);
 }
 | MATCHER_UNREAD
 {
        gint criteria = 0;
 
        criteria = MATCHCRITERIA_UNREAD;
-       prop = matcherprop_new(criteria, NULL, 0, NULL, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, 0, NULL, 0);
 }
 | MATCHER_NOT_UNREAD 
 {
        gint criteria = 0;
 
        criteria = MATCHCRITERIA_NOT_UNREAD;
-       prop = matcherprop_new(criteria, NULL, 0, NULL, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, 0, NULL, 0);
 }
 | MATCHER_NEW
 {
        gint criteria = 0;
 
        criteria = MATCHCRITERIA_NEW;
-       prop = matcherprop_new(criteria, NULL, 0, NULL, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, 0, NULL, 0);
 }
 | MATCHER_NOT_NEW
 {
        gint criteria = 0;
 
        criteria = MATCHCRITERIA_NOT_NEW;
-       prop = matcherprop_new(criteria, NULL, 0, NULL, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, 0, NULL, 0);
 }
 | MATCHER_MARKED
 {
        gint criteria = 0;
 
        criteria = MATCHCRITERIA_MARKED;
-       prop = matcherprop_new(criteria, NULL, 0, NULL, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, 0, NULL, 0);
 }
 | MATCHER_NOT_MARKED
 {
        gint criteria = 0;
 
        criteria = MATCHCRITERIA_NOT_MARKED;
-       prop = matcherprop_new(criteria, NULL, 0, NULL, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, 0, NULL, 0);
 }
 | MATCHER_DELETED
 {
        gint criteria = 0;
 
        criteria = MATCHCRITERIA_DELETED;
-       prop = matcherprop_new(criteria, NULL, 0, NULL, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, 0, NULL, 0);
 }
 | MATCHER_NOT_DELETED
 {
        gint criteria = 0;
 
        criteria = MATCHCRITERIA_NOT_DELETED;
-       prop = matcherprop_new(criteria, NULL, 0, NULL, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, 0, NULL, 0);
 }
 | MATCHER_REPLIED
 {
        gint criteria = 0;
 
        criteria = MATCHCRITERIA_REPLIED;
-       prop = matcherprop_new(criteria, NULL, 0, NULL, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, 0, NULL, 0);
 }
 | MATCHER_NOT_REPLIED
 {
        gint criteria = 0;
 
        criteria = MATCHCRITERIA_NOT_REPLIED;
-       prop = matcherprop_new(criteria, NULL, 0, NULL, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, 0, NULL, 0);
 }
 | MATCHER_FORWARDED
 {
        gint criteria = 0;
 
        criteria = MATCHCRITERIA_FORWARDED;
-       prop = matcherprop_new(criteria, NULL, 0, NULL, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, 0, NULL, 0);
 }
 | MATCHER_NOT_FORWARDED
 {
        gint criteria = 0;
 
        criteria = MATCHCRITERIA_NOT_FORWARDED;
-       prop = matcherprop_new(criteria, NULL, 0, NULL, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, 0, NULL, 0);
 }
 | MATCHER_SUBJECT match_type MATCHER_STRING
 {
@@ -420,7 +420,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_SUBJECT;
        expr = $3;
-       prop = matcherprop_new(criteria, NULL, match_type, expr, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, match_type, expr, 0);
 }
 | MATCHER_NOT_SUBJECT match_type MATCHER_STRING
 {
@@ -429,7 +429,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_NOT_SUBJECT;
        expr = $3;
-       prop = matcherprop_new(criteria, NULL, match_type, expr, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, match_type, expr, 0);
 }
 | MATCHER_FROM match_type MATCHER_STRING
 {
@@ -438,7 +438,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_FROM;
        expr = $3;
-       prop = matcherprop_new(criteria, NULL, match_type, expr, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, match_type, expr, 0);
 }
 | MATCHER_NOT_FROM match_type MATCHER_STRING
 {
@@ -447,7 +447,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_NOT_FROM;
        expr = $3;
-       prop = matcherprop_new(criteria, NULL, match_type, expr, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, match_type, expr, 0);
 }
 | MATCHER_TO match_type MATCHER_STRING
 {
@@ -456,7 +456,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_TO;
        expr = $3;
-       prop = matcherprop_new(criteria, NULL, match_type, expr, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, match_type, expr, 0);
 }
 | MATCHER_NOT_TO match_type MATCHER_STRING
 {
@@ -465,7 +465,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_NOT_TO;
        expr = $3;
-       prop = matcherprop_new(criteria, NULL, match_type, expr, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, match_type, expr, 0);
 }
 | MATCHER_CC match_type MATCHER_STRING
 {
@@ -474,7 +474,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_CC;
        expr = $3;
-       prop = matcherprop_new(criteria, NULL, match_type, expr, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, match_type, expr, 0);
 }
 | MATCHER_NOT_CC match_type MATCHER_STRING
 {
@@ -483,7 +483,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_NOT_CC;
        expr = $3;
-       prop = matcherprop_new(criteria, NULL, match_type, expr, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, match_type, expr, 0);
 }
 | MATCHER_TO_OR_CC match_type MATCHER_STRING
 {
@@ -492,7 +492,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_TO_OR_CC;
        expr = $3;
-       prop = matcherprop_new(criteria, NULL, match_type, expr, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, match_type, expr, 0);
 }
 | MATCHER_NOT_TO_AND_NOT_CC match_type MATCHER_STRING
 {
@@ -501,7 +501,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_NOT_TO_AND_NOT_CC;
        expr = $3;
-       prop = matcherprop_new(criteria, NULL, match_type, expr, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, match_type, expr, 0);
 }
 | MATCHER_AGE_GREATER MATCHER_INTEGER
 {
@@ -510,7 +510,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_AGE_GREATER;
        value = atoi($2);
-       prop = matcherprop_new(criteria, NULL, 0, NULL, value);
+       prop = matcherprop_unquote_new(criteria, NULL, 0, NULL, value);
 }
 | MATCHER_AGE_LOWER MATCHER_INTEGER
 {
@@ -519,7 +519,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_AGE_LOWER;
        value = atoi($2);
-       prop = matcherprop_new(criteria, NULL, 0, NULL, value);
+       prop = matcherprop_unquote_new(criteria, NULL, 0, NULL, value);
 }
 | MATCHER_NEWSGROUPS match_type MATCHER_STRING
 {
@@ -528,7 +528,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_NEWSGROUPS;
        expr = $3;
-       prop = matcherprop_new(criteria, NULL, match_type, expr, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, match_type, expr, 0);
 }
 | MATCHER_NOT_NEWSGROUPS match_type MATCHER_STRING
 {
@@ -537,7 +537,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_NOT_NEWSGROUPS;
        expr = $3;
-       prop = matcherprop_new(criteria, NULL, match_type, expr, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, match_type, expr, 0);
 }
 | MATCHER_INREPLYTO match_type MATCHER_STRING
 {
@@ -546,7 +546,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_INREPLYTO;
        expr = $3;
-       prop = matcherprop_new(criteria, NULL, match_type, expr, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, match_type, expr, 0);
 }
 | MATCHER_NOT_INREPLYTO match_type MATCHER_STRING
 {
@@ -555,7 +555,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_NOT_INREPLYTO;
        expr = $3;
-       prop = matcherprop_new(criteria, NULL, match_type, expr, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, match_type, expr, 0);
 }
 | MATCHER_REFERENCES match_type MATCHER_STRING
 {
@@ -564,7 +564,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_REFERENCES;
        expr = $3;
-       prop = matcherprop_new(criteria, NULL, match_type, expr, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, match_type, expr, 0);
 }
 | MATCHER_NOT_REFERENCES match_type MATCHER_STRING
 {
@@ -573,7 +573,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_NOT_REFERENCES;
        expr = $3;
-       prop = matcherprop_new(criteria, NULL, match_type, expr, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, match_type, expr, 0);
 }
 | MATCHER_SCORE_GREATER MATCHER_INTEGER
 {
@@ -582,7 +582,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_SCORE_GREATER;
        value = atoi($2);
-       prop = matcherprop_new(criteria, NULL, 0, NULL, value);
+       prop = matcherprop_unquote_new(criteria, NULL, 0, NULL, value);
 }
 | MATCHER_SCORE_LOWER MATCHER_INTEGER
 {
@@ -591,7 +591,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_SCORE_LOWER;
        value = atoi($2);
-       prop = matcherprop_new(criteria, NULL, 0, NULL, value);
+       prop = matcherprop_unquote_new(criteria, NULL, 0, NULL, value);
 }
 | MATCHER_SCORE_EQUAL MATCHER_INTEGER
 {
@@ -600,7 +600,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_SCORE_EQUAL;
        value = atoi($2);
-       prop = matcherprop_new(criteria, NULL, 0, NULL, value);
+       prop = matcherprop_unquote_new(criteria, NULL, 0, NULL, value);
 }
 | MATCHER_SIZE_GREATER MATCHER_INTEGER 
 {
@@ -608,7 +608,7 @@ MATCHER_ALL
        gint value    = 0;
        criteria = MATCHCRITERIA_SIZE_GREATER;
        value = atoi($2);
-       prop = matcherprop_new(criteria, NULL, 0, NULL, value);
+       prop = matcherprop_unquote_new(criteria, NULL, 0, NULL, value);
 }
 | MATCHER_SIZE_SMALLER MATCHER_INTEGER
 {
@@ -616,7 +616,7 @@ MATCHER_ALL
        gint value    = 0;
        criteria = MATCHCRITERIA_SIZE_SMALLER;
        value = atoi($2);
-       prop = matcherprop_new(criteria, NULL, 0, NULL, value);
+       prop = matcherprop_unquote_new(criteria, NULL, 0, NULL, value);
 }
 | MATCHER_SIZE_EQUAL MATCHER_INTEGER
 {
@@ -624,7 +624,7 @@ MATCHER_ALL
        gint value    = 0;
        criteria = MATCHCRITERIA_SIZE_EQUAL;
        value = atoi($2);
-       prop = matcherprop_new(criteria, NULL, 0, NULL, value);
+       prop = matcherprop_unquote_new(criteria, NULL, 0, NULL, value);
 }
 | MATCHER_HEADER MATCHER_STRING
 {
@@ -636,7 +636,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_HEADER;
        expr = $2;
-       prop = matcherprop_new(criteria, header, match_type, expr, 0);
+       prop = matcherprop_unquote_new(criteria, header, match_type, expr, 0);
        g_free(header);
 }
 | MATCHER_NOT_HEADER MATCHER_STRING
@@ -649,7 +649,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_NOT_HEADER;
        expr = $2;
-       prop = matcherprop_new(criteria, header, match_type, expr, 0);
+       prop = matcherprop_unquote_new(criteria, header, match_type, expr, 0);
        g_free(header);
 }
 | MATCHER_HEADERS_PART match_type MATCHER_STRING
@@ -659,7 +659,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_HEADERS_PART;
        expr = $3;
-       prop = matcherprop_new(criteria, NULL, match_type, expr, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, match_type, expr, 0);
 }
 | MATCHER_NOT_HEADERS_PART match_type MATCHER_STRING
 {
@@ -668,7 +668,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_NOT_HEADERS_PART;
        expr = $3;
-       prop = matcherprop_new(criteria, NULL, match_type, expr, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, match_type, expr, 0);
 }
 | MATCHER_MESSAGE match_type MATCHER_STRING
 {
@@ -677,7 +677,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_MESSAGE;
        expr = $3;
-       prop = matcherprop_new(criteria, NULL, match_type, expr, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, match_type, expr, 0);
 }
 | MATCHER_NOT_MESSAGE match_type MATCHER_STRING
 {
@@ -686,7 +686,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_NOT_MESSAGE;
        expr = $3;
-       prop = matcherprop_new(criteria, NULL, match_type, expr, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, match_type, expr, 0);
 }
 | MATCHER_BODY_PART match_type MATCHER_STRING
 {
@@ -695,7 +695,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_BODY_PART;
        expr = $3;
-       prop = matcherprop_new(criteria, NULL, match_type, expr, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, match_type, expr, 0);
 }
 | MATCHER_NOT_BODY_PART match_type MATCHER_STRING
 {
@@ -704,7 +704,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_NOT_BODY_PART;
        expr = $3;
-       prop = matcherprop_new(criteria, NULL, match_type, expr, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, match_type, expr, 0);
 }
 | MATCHER_EXECUTE MATCHER_STRING
 {
@@ -713,7 +713,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_EXECUTE;
        expr = $2;
-       prop = matcherprop_new(criteria, NULL, 0, expr, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, 0, expr, 0);
 }
 | MATCHER_NOT_EXECUTE MATCHER_STRING
 {
@@ -722,7 +722,7 @@ MATCHER_ALL
 
        criteria = MATCHCRITERIA_NOT_EXECUTE;
        expr = $2;
-       prop = matcherprop_new(criteria, NULL, 0, expr, 0);
+       prop = matcherprop_unquote_new(criteria, NULL, 0, expr, 0);
 }
 ;