diff --git a/src/regex_filter.h b/src/regex_filter.h index 38829079..4258a2b1 100644 --- a/src/regex_filter.h +++ b/src/regex_filter.h @@ -35,7 +35,7 @@ template struct RegexFilter bool operator()(const Item &item) { if (m_rx.regex().empty()) return true; - if (!m_rx.error().empty()) + if (!m_rx.compiled() || !m_rx.error().empty()) return false; return m_filter(m_rx, item.value()); } diff --git a/src/regexes.cpp b/src/regexes.cpp index 02ed476c..5b8da962 100644 --- a/src/regexes.cpp +++ b/src/regexes.cpp @@ -52,6 +52,11 @@ const std::string &Regex::error() const return m_error; } +bool Regex::compiled() const +{ + return m_compiled; +} + bool Regex::compile() { if (m_compiled) diff --git a/src/regexes.h b/src/regexes.h index 94ac68ac..66370c2e 100644 --- a/src/regexes.h +++ b/src/regexes.h @@ -37,6 +37,9 @@ struct Regex /// @return compilation error (if there was any) const std::string &error() const; + /// @return true if regular expression is compiled, false otherwise + bool compiled() const; + /// compiles regular expression /// @result true if compilation was successful, false otherwise bool compile();