diff --git a/src/core/ignore.c b/src/core/ignore.c index 96c56d9e..99986dd2 100644 --- a/src/core/ignore.c +++ b/src/core/ignore.c @@ -319,6 +319,7 @@ static void ignore_remove_config(IGNORE_REC *rec) static void ignore_init_rec(IGNORE_REC *rec) { #ifdef HAVE_REGEX_H + if (rec->regexp_compiled) regfree(&rec->preg); rec->regexp_compiled = !rec->regexp || rec->pattern == NULL ? FALSE : regcomp(&rec->preg, rec->pattern, REG_EXTENDED|REG_ICASE|REG_NOSUB) == 0; @@ -368,6 +369,7 @@ void ignore_update_rec(IGNORE_REC *rec) ignores = g_slist_append(ignores, rec); ignore_set_config(rec); + ignore_init_rec(rec); signal_emit("ignore changed", 1, rec); nickmatch_rebuild(nickmatch); }