]> source.dussan.org Git - rspamd.git/commitdiff
Support m,, patterns in lua regexps.
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 4 Mar 2015 15:29:19 +0000 (15:29 +0000)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 4 Mar 2015 15:29:19 +0000 (15:29 +0000)
src/lua/lua_regexp.c

index a86424c66ac1e93cffd6f159e50f5eee4d78abca..04f141fb33adb9f67db29d99b2d98c3f9d7f298b 100644 (file)
@@ -102,7 +102,7 @@ lua_regexp_create (lua_State *L)
        GRegex *re;
        struct rspamd_lua_regexp *new, **pnew;
        const gchar *string, *flags_str = NULL, *slash;
-       gchar *pattern;
+       gchar *pattern, sep;
        GError *err = NULL;
 
        string = luaL_checkstring (L, 1);
@@ -122,6 +122,17 @@ lua_regexp_create (lua_State *L)
                        pattern = g_strdup (string);
                }
        }
+       else if (string[0] == 'm') {
+               /* Special case for perl */
+               slash = &string[1];
+               sep = *slash;
+               slash = strrchr (string, sep);
+               if (slash != NULL && slash > &string[1]) {
+                       flags_str = slash + 1;
+                       pattern = g_malloc (slash - string - 1);
+                       rspamd_strlcpy (pattern, string + 2, slash - string - 1);
+               }
+       }
        else {
                pattern = g_strdup (string);
        }