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