From f26019bed8ac8a5645a68284b4665e5e379e7c77 Mon Sep 17 00:00:00 2001 From: Oswald Buddenhagen <oswald.buddenhagen@nokia.com> Date: Tue, 13 Apr 2010 21:00:23 +0200 Subject: [PATCH] fix location info in parsing-error messages --- src/shared/proparser/profileevaluator.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/shared/proparser/profileevaluator.cpp b/src/shared/proparser/profileevaluator.cpp index c883ba835ee..5f733482830 100644 --- a/src/shared/proparser/profileevaluator.cpp +++ b/src/shared/proparser/profileevaluator.cpp @@ -200,6 +200,7 @@ public: }; bool read(ProFile *pro); + bool read(ProFile *pro, const QString &content); bool read(ProBlock *pro, const QString &content); bool readInternal(ProBlock *pro, const QString &content, ushort *buf); @@ -554,14 +555,28 @@ bool ProFileEvaluator::Private::read(ProFile *pro) QString content(QString::fromLatin1(file.readAll())); // yes, really latin1 file.close(); m_lineNo = 1; - return readInternal(pro, content, (ushort*)content.data()); + m_profileStack.push(pro); + bool ret = readInternal(pro, content, (ushort*)content.data()); + m_profileStack.pop(); + return ret; } -bool ProFileEvaluator::Private::read(ProBlock *pro, const QString &content) +bool ProFileEvaluator::Private::read(ProFile *pro, const QString &content) { QString buf; buf.reserve(content.size()); m_lineNo = 1; + m_profileStack.push(pro); + bool ret = readInternal(pro, content, (ushort*)buf.data()); + m_profileStack.pop(); + return ret; +} + +bool ProFileEvaluator::Private::read(ProBlock *pro, const QString &content) +{ + QString buf; + buf.reserve(content.size()); + m_lineNo = 0; return readInternal(pro, content, (ushort*)buf.data()); } -- GitLab