add filtering conditions message greater than, smaller than, and exactly matching...
[claws.git] / src / matcher_parser_lex.l
index e638e51f042c39e32187e11dbc1759dd275705d1..f747e16c16eba0b6be77504e32eae8086f4cd8f2 100644 (file)
@@ -58,6 +58,9 @@ static void add_char(char ch)
 "score_greater"        return MATCHER_SCORE_GREATER;
 "score_lower"  return MATCHER_SCORE_LOWER;
 "score_equal"  return MATCHER_SCORE_EQUAL;
+"size_greater"  return MATCHER_SIZE_GREATER;
+"size_smaller"  return MATCHER_SIZE_SMALLER;
+"size_equal"    return MATCHER_SIZE_EQUAL;
 "header"       return MATCHER_HEADER;
 "~header"      return MATCHER_NOT_HEADER;
 "headers_part" return MATCHER_HEADERS_PART;
@@ -84,6 +87,7 @@ static void add_char(char ch)
 "forward_as_attachment"              return MATCHER_FORWARD_AS_ATTACHMENT;
 "color"         return MATCHER_COLOR;
 "bounce"       return MATCHER_BOUNCE;
+"delete_on_server"     return MATCHER_DELETE_ON_SERVER;
 [ \t]+
 "\n"           return MATCHER_EOL;
 "&"            return MATCHER_AND;
@@ -92,54 +96,23 @@ static void add_char(char ch)
                BEGIN(string);
                string_buf_ptr = string_buf;
                }
-               /* the following tokens \n \t \r \b \f \\ could be
-                * removed from the list, but we let them here for
-                * the sake of clarity; they are unescaped by 
-                * matcher.c:unescape_str()) */
-<string>\\n    {
-               /* paste as-is */
-               add_char('\\');
-               add_char('n');
-               }
-<string>\\t    {
-               /* paste as-is */
-               add_char('\\');
-               add_char('t');
-               }
-<string>\\r    {
-               /* paste as-is */
-               add_char('\\');
-               add_char('r');
-               }
-<string>\\b    {
-               /* paste as-is */
-               add_char('\\');
-               add_char('b');
-               }
-<string>\\f    {
-               /* paste as-is */
-               add_char('\\');
-               add_char('f');
-               }
-<string>\\\'   {
-               /* paste as-is */
-               add_char('\\');
-               add_char('\'');
-               }
+               /* alfons - OK, the new attempt is to just swallow 
+                * *EVERYTHING* and make sure everything is escaped
+                * when actually performing things. */
 <string>\\\"   {
-               /* paste as-is */
+               /* take care of escaped \" because this means the
+                * quote char should be skipped */
                add_char('\\');
                add_char('\"');
                }
-               /* we only miss the thing with nested escaping like
-                * \\\\" which should mean something like 'forget it, we want a "'
-                * right here in the token stream.... */
 <string>\"     {
+               /* get out of the state: string ends. */
                BEGIN(0);
                *string_buf_ptr = '\0';
                yylval.str = string_buf;
                return MATCHER_STRING;
                }
+               /* put everything else in the output. */
 <string>.      {
                add_char(yytext[0]);
                }