summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/core/common/Utils.cpp11
-rw-r--r--src/core/common/Utils.hpp8
-rw-r--r--src/core/parser/ParserStack.cpp7
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.");
}
}