From 7519a534eedc588a1118acacb8d7b5af1950da89 Mon Sep 17 00:00:00 2001 From: Eike Rathke Date: Fri, 20 Mar 2015 11:10:13 +0000 Subject: Resolves: tdf#89958 filter ends with / does not end with correction MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Regression of 8850633fe4cdac306c35caab1a0d14c13d9df864 String to OUString and xub_StrLen to sal_Int32 conversion, it worked by accident only anyway.. Change-Id: Id6fea7075949b98e58294d9fdaae4313f69f9b55 (cherry picked from commit 9e2e9453cbca9399e1c670b354cfc3c23d70307f) Reviewed-on: https://gerrit.libreoffice.org/14922 Tested-by: Caolán McNamara Reviewed-by: David Tardon Reviewed-by: Caolán McNamara --- sc/source/core/data/table3.cxx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'sc') diff --git a/sc/source/core/data/table3.cxx b/sc/source/core/data/table3.cxx index 4637e744e8b0..4ec4b420afaf 100644 --- a/sc/source/core/data/table3.cxx +++ b/sc/source/core/data/table3.cxx @@ -2509,9 +2509,9 @@ public: OUString aQuer( mpTransliteration->transliterate( aQueryStr, ScGlobal::eLnge, 0, aQueryStr.getLength(), NULL ) ); - sal_Int32 nIndex = (rEntry.eOp == SC_ENDS_WITH - || rEntry.eOp == SC_DOES_NOT_END_WITH) ? (aCell.getLength()-aQuer.getLength()) : 0; - sal_Int32 nStrPos = aCell.indexOf( aQuer, nIndex ); + sal_Int32 nIndex = (rEntry.eOp == SC_ENDS_WITH || rEntry.eOp == SC_DOES_NOT_END_WITH) ? + (aCell.getLength() - aQuer.getLength()) : 0; + sal_Int32 nStrPos = ((nIndex < 0) ? -1 : aCell.indexOf( aQuer, nIndex )); switch (rEntry.eOp) { case SC_EQUAL: @@ -2529,10 +2529,10 @@ public: bOk = ( nStrPos != 0 ); break; case SC_ENDS_WITH: - bOk = ( nStrPos + aQuer.getLength() == aCell.getLength() ); + bOk = (nStrPos >= 0 && nStrPos + aQuer.getLength() == aCell.getLength() ); break; case SC_DOES_NOT_END_WITH: - bOk = ( nStrPos + aQuer.getLength() != aCell.getLength() ); + bOk = (nStrPos < 0 || nStrPos + aQuer.getLength() != aCell.getLength() ); break; default: { -- cgit v1.2.3