sc/source/core/inc/interpre.hxx | 2 +- sc/source/core/tool/interpr1.cxx | 39 ++++++++++++++------------------------- 2 files changed, 15 insertions(+), 26 deletions(-)
New commits: commit 0847f77a112271bf498859ce99bd65de4243098a Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Sat Sep 12 16:27:06 2020 +0100 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Sun Sep 13 15:15:48 2020 +0200 establish DetectSearchType pDoc arg is never null so the "TODO: rare case" doesn't exist Change-Id: I802a16d1c5022ede1a95473a07160823b2856fdf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102525 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caol...@redhat.com> diff --git a/sc/source/core/inc/interpre.hxx b/sc/source/core/inc/interpre.hxx index 7c024e6e9150..46b6f49da87e 100644 --- a/sc/source/core/inc/interpre.hxx +++ b/sc/source/core/inc/interpre.hxx @@ -167,7 +167,7 @@ public: /** Detect if string should be used as regular expression or wildcard expression or literal string. */ - static utl::SearchParam::SearchType DetectSearchType( const OUString& rStr, const ScDocument* pDoc ); + static utl::SearchParam::SearchType DetectSearchType( const OUString& rStr, const ScDocument& rDoc ); /// Fail safe division, returning a FormulaError::DivisionByZero coded into a double /// if denominator is 0.0 diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx index 575ee9bd162c..4a3f1cbfb60b 100644 --- a/sc/source/core/tool/interpr1.cxx +++ b/sc/source/core/tool/interpr1.cxx @@ -4933,7 +4933,7 @@ void ScInterpreter::ScMatch() if ( bIsVBAMode ) rParam.eSearchType = utl::SearchParam::SearchType::Wildcard; else - rParam.eSearchType = DetectSearchType(rEntry.GetQueryItem().maString.getString(), &mrDoc); + rParam.eSearchType = DetectSearchType(rEntry.GetQueryItem().maString.getString(), mrDoc); } if (pMatSrc) // The source data is matrix array. @@ -5475,7 +5475,7 @@ void ScInterpreter::IterateParametersIf( ScIterFuncIf eFunc ) { rParam.FillInExcelSyntax(mrDoc.GetSharedStringPool(), aString.getString(), 0, pFormatter); if (rItem.meType == ScQueryEntry::ByString) - rParam.eSearchType = DetectSearchType(rItem.maString.getString(), &mrDoc); + rParam.eSearchType = DetectSearchType(rItem.maString.getString(), mrDoc); } ScAddress aAdr; aAdr.SetTab( nTab3 ); @@ -5789,7 +5789,7 @@ void ScInterpreter::ScCountIf() { rParam.FillInExcelSyntax(mrDoc.GetSharedStringPool(), aString.getString(), 0, pFormatter); if (rItem.meType == ScQueryEntry::ByString) - rParam.eSearchType = DetectSearchType(rItem.maString.getString(), &mrDoc); + rParam.eSearchType = DetectSearchType(rItem.maString.getString(), mrDoc); } rParam.nCol1 = nCol1; rParam.nCol2 = nCol2; @@ -6134,7 +6134,7 @@ void ScInterpreter::IterateParametersIfs( double(*ResultFunc)( const sc::ParamIf { rParam.FillInExcelSyntax(mrDoc.GetSharedStringPool(), aString.getString(), 0, pFormatter); if (rItem.meType == ScQueryEntry::ByString) - rParam.eSearchType = DetectSearchType(rItem.maString.getString(), &mrDoc); + rParam.eSearchType = DetectSearchType(rItem.maString.getString(), mrDoc); } rParam.nCol1 = nCol1; rParam.nCol2 = nCol2; @@ -7079,7 +7079,7 @@ void ScInterpreter::ScLookup() rEntry.nField = nCol1; ScQueryEntry::Item& rItem = rEntry.GetQueryItem(); if (rItem.meType == ScQueryEntry::ByString) - aParam.eSearchType = DetectSearchType(rItem.maString.getString(), &mrDoc); + aParam.eSearchType = DetectSearchType(rItem.maString.getString(), mrDoc); ScQueryCellIterator aCellIter(&mrDoc, mrContext, nTab1, aParam, false); SCCOL nC; @@ -7310,7 +7310,7 @@ void ScInterpreter::CalculateLookup(bool bHLookup) ScQueryEntry::Item& rItem = rEntry.GetQueryItem(); if (rItem.meType == ScQueryEntry::ByString) - aParam.eSearchType = DetectSearchType(rItem.maString.getString(), &mrDoc); + aParam.eSearchType = DetectSearchType(rItem.maString.getString(), mrDoc); if (pMat) { SCSIZE nMatCount = bHLookup ? nC : nR; @@ -7798,7 +7798,7 @@ std::unique_ptr<ScDBQueryParamBase> ScInterpreter::GetDBParams( bool& rMissingFi rItem.meType = bNumber ? ScQueryEntry::ByValue : ScQueryEntry::ByString; if (!bNumber && pParam->eSearchType == utl::SearchParam::SearchType::Normal) - pParam->eSearchType = DetectSearchType(aQueryStr, &mrDoc); + pParam->eSearchType = DetectSearchType(aQueryStr, mrDoc); } return pParam; } @@ -9237,7 +9237,7 @@ void ScInterpreter::ScSearchB() // search aSubStr for asStr sal_Int32 nPos = 0; sal_Int32 nEndPos = aSubStr.getLength(); - utl::SearchParam::SearchType eSearchType = DetectSearchType( asStr, &mrDoc ); + utl::SearchParam::SearchType eSearchType = DetectSearchType( asStr, mrDoc ); utl::SearchParam sPar( asStr, eSearchType, false, '~', false ); utl::TextSearch sT( sPar, *ScGlobal::getCharClassPtr() ); if ( !sT.SearchForward( aSubStr, &nPos, &nEndPos ) ) @@ -9313,7 +9313,7 @@ void ScInterpreter::ScSearch() PushNoValue(); else { - utl::SearchParam::SearchType eSearchType = DetectSearchType( SearchStr, &mrDoc ); + utl::SearchParam::SearchType eSearchType = DetectSearchType( SearchStr, mrDoc ); utl::SearchParam sPar(SearchStr, eSearchType, false, '~', false); utl::TextSearch sT( sPar, *ScGlobal::getCharClassPtr() ); bool bBool = sT.SearchForward(sStr, &nPos, &nEndPos); @@ -9917,23 +9917,12 @@ bool ScInterpreter::MayBeWildcard( const OUString& rStr ) return false; } -utl::SearchParam::SearchType ScInterpreter::DetectSearchType( const OUString& rStr, const ScDocument* pDoc ) +utl::SearchParam::SearchType ScInterpreter::DetectSearchType( const OUString& rStr, const ScDocument& rDoc ) { - if (pDoc) - { - if (pDoc->GetDocOptions().IsFormulaWildcardsEnabled()) - return MayBeWildcard( rStr ) ? utl::SearchParam::SearchType::Wildcard : utl::SearchParam::SearchType::Normal; - if (pDoc->GetDocOptions().IsFormulaRegexEnabled()) - return MayBeRegExp( rStr ) ? utl::SearchParam::SearchType::Regexp : utl::SearchParam::SearchType::Normal; - } - else - { - /* TODO: obtain the global config for this rare case? */ - if (MayBeRegExp( rStr, true)) - return utl::SearchParam::SearchType::Regexp; - if (MayBeWildcard( rStr )) - return utl::SearchParam::SearchType::Wildcard; - } + if (rDoc.GetDocOptions().IsFormulaWildcardsEnabled()) + return MayBeWildcard( rStr ) ? utl::SearchParam::SearchType::Wildcard : utl::SearchParam::SearchType::Normal; + if (rDoc.GetDocOptions().IsFormulaRegexEnabled()) + return MayBeRegExp( rStr ) ? utl::SearchParam::SearchType::Regexp : utl::SearchParam::SearchType::Normal; return utl::SearchParam::SearchType::Normal; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits