diff --git a/src/Rules.cpp b/src/Rules.cpp index ed189e91..b00df7ec 100644 --- a/src/Rules.cpp +++ b/src/Rules.cpp @@ -30,6 +30,7 @@ #include #include #include +#include // TODO Remove #include #include @@ -375,7 +376,12 @@ void Rules::parseRuleSettings ( if (tokens.size () >= 3 && tokens[1] == "=") { auto name = join (".", hierarchy) + "." + tokens[0]; - auto value = Lexer::dequote (join (" ", std::vector (tokens.begin () + 2, tokens.end ()))); + + auto equals = line.find ('='); + if (equals == std::string::npos) + throw format ("Syntax error in rule: missing '=' in line '{1}'.", line); + + auto value = Lexer::dequote (trim (line.substr (equals + 1))); set (name, value); } }