connectivity/source/drivers/flat/ETable.cxx | 14 ++++++++++++++ 1 file changed, 14 insertions(+)
New commits: commit 8f3147df3c309127382f800f9a2b19f355bd9d15 Author: Lionel Elie Mamane <lio...@mamane.lu> Date: Fri May 17 10:54:40 2013 +0200 fdo#47951 flat text table: update m_nRowPos when moving by bookmark Change-Id: Iac154020b4b6309f92b1f68fa5bf79611dfcc91b Reviewed-on: https://gerrit.libreoffice.org/3962 Reviewed-by: Fridrich Strba <fridr...@documentfoundation.org> Tested-by: Fridrich Strba <fridr...@documentfoundation.org> diff --git a/connectivity/source/drivers/flat/ETable.cxx b/connectivity/source/drivers/flat/ETable.cxx index b7f61ed..fc1124e 100644 --- a/connectivity/source/drivers/flat/ETable.cxx +++ b/connectivity/source/drivers/flat/ETable.cxx @@ -873,15 +873,29 @@ sal_Bool OFlatTable::seekRow(IResultSetHelper::Movement eCursorPosition, sal_Int break; case IResultSetHelper::BOOKMARK: { + m_nRowPos = 0; TRowPositionsInFile::const_iterator aFind = m_aFilePosToEndLinePos.find(nOffset); m_bNeedToReadLine = aFind != m_aFilePosToEndLinePos.end(); if ( m_bNeedToReadLine ) { m_nFilePos = aFind->first; nCurPos = aFind->second; + for(::std::map<sal_Int32, TRowPositionsInFile::iterator>::const_iterator p = m_aRowPosToFilePos.begin(); + p != m_aRowPosToFilePos.end(); + ++p) + { + assert(p->second->first <= nOffset); + if(p->second->first == nOffset) + { + m_nRowPos = p->first; + break; + } + } + assert(m_nRowPos > 0); } else { + assert(false); m_nFilePos = nOffset; m_pFileStream->Seek(nOffset); if (m_pFileStream->IsEof() || !readLine(nCurPos) ) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits