From 89e0b786d01246d1e8e57cc5da855372e27e7b63 Mon Sep 17 00:00:00 2001 From: Andreas Stöckel Date: Sun, 18 Jan 2015 13:28:36 +0100 Subject: Added function for parsing complete strings (as needed in the xml parser) --- src/core/common/VariantReader.cpp | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'src/core/common/VariantReader.cpp') diff --git a/src/core/common/VariantReader.cpp b/src/core/common/VariantReader.cpp index faad40c..bded618 100644 --- a/src/core/common/VariantReader.cpp +++ b/src/core/common/VariantReader.cpp @@ -618,8 +618,22 @@ std::pair VariantReader::parseGenericToken( v.setMagic(res.second.c_str()); return std::make_pair(res.first, v); } else { - return std::make_pair(res.first, Variant{res.second.c_str()}); + return std::make_pair(res.first, Variant::fromString(res.second)); } } + +std::pair VariantReader::parseGenericString( + const std::string &str, Logger &logger) +{ + CharReader reader{str}; + LoggerFork loggerFork = logger.fork(); + std::pair res = + parseGenericToken(reader, loggerFork, std::unordered_set{}, true); + if (reader.atEnd()) { + loggerFork.commit(); + return res; + } + return std::make_pair(true, Variant::fromString(str)); +} } -- cgit v1.2.3