diff options
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/common/Utils.cpp | 11 | ||||
-rw-r--r-- | src/core/common/Utils.hpp | 8 | ||||
-rw-r--r-- | src/core/parser/ParserStack.cpp | 7 |
3 files changed, 20 insertions, 6 deletions
diff --git a/src/core/common/Utils.cpp b/src/core/common/Utils.cpp index f59061a..e5e2d39 100644 --- a/src/core/common/Utils.cpp +++ b/src/core/common/Utils.cpp @@ -46,6 +46,16 @@ bool Utils::isIdentifier(const std::string &name) return true; } +bool Utils::hasNonWhitepaceChar(const std::string &s) +{ + for (char c : s) { + if (!isWhitespace(c)) { + return true; + } + } + return false; +} + std::vector<std::string> Utils::split(const std::string &s, char delim) { std::vector<std::string> res; @@ -84,6 +94,5 @@ std::string Utils::extractFileExtension(const std::string &filename) } return std::string{}; } - } diff --git a/src/core/common/Utils.hpp b/src/core/common/Utils.hpp index a88c716..fa3788a 100644 --- a/src/core/common/Utils.hpp +++ b/src/core/common/Utils.hpp @@ -71,6 +71,14 @@ public: } /** + * Returns true if the given string has a non-whitespace character. + * + * @param s is the string that should be checked. + * @return true if the string contains a non-whitespace character. + */ + static bool hasNonWhitepaceChar(const std::string &s); + + /** * Returns true if the given character is a whitespace character. */ static bool isLinebreak(const char c) { return (c == '\n') || (c == '\r'); } diff --git a/src/core/parser/ParserStack.cpp b/src/core/parser/ParserStack.cpp index cc875cb..50a97c9 100644 --- a/src/core/parser/ParserStack.cpp +++ b/src/core/parser/ParserStack.cpp @@ -51,11 +51,8 @@ public: void Handler::data(const std::string &data, int field) { - for (auto &c : data) { - if (!Utils::isWhitespace(c)) { - logger().error("Expected command but found character data."); - return; - } + if (Utils::hasNonWhitepaceChar(data)) { + logger().error("Expected command but found character data."); } } |