diff options
author | Eike Rathke <erack@redhat.com> | 2013-12-04 00:29:29 +0100 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2013-12-04 00:38:12 +0100 |
commit | 882665d821a2fc705b7ae03372c2ae7593028210 (patch) | |
tree | 4aa50b2feef62ede33b8873149e5c685cb86e0c0 /sc/source/filter/excel | |
parent | bfd1909c87d0d645f1bbb74a142172ecc15100e8 (diff) |
resolved fdo#72288 made case insensitive matrix string query work again
The SharedString stored at ScQueryEntry::Item was constructed from an
OUString passed from ScMatrixValue::GetString() so
rItem.maString.getDataIgnoreCase() in QueryEvaluator::compareByString()
was NULL and never evaluated equal. Made ScMatrixValue::GetString()
return a SharedString instead.
Change-Id: I473d5724dfb97707fea58e6b72b1396c049b79c8
Diffstat (limited to 'sc/source/filter/excel')
-rw-r--r-- | sc/source/filter/excel/xeformula.cxx | 6 | ||||
-rw-r--r-- | sc/source/filter/excel/xehelper.cxx | 2 | ||||
-rw-r--r-- | sc/source/filter/excel/xilink.cxx | 4 |
3 files changed, 6 insertions, 6 deletions
diff --git a/sc/source/filter/excel/xeformula.cxx b/sc/source/filter/excel/xeformula.cxx index ba02aefae85f..19040ff0e367 100644 --- a/sc/source/filter/excel/xeformula.cxx +++ b/sc/source/filter/excel/xeformula.cxx @@ -1319,8 +1319,8 @@ void XclExpFmlaCompImpl::ProcessMatrix( const XclExpScToken& rTokData ) } else // string or empty { - const OUString& rStr = nMatVal.GetString(); - if( rStr.isEmpty() ) + const OUString aStr( nMatVal.GetString().getString()); + if( aStr.isEmpty() ) { AppendExt( EXC_CACHEDVAL_EMPTY ); AppendExt( 0, 8 ); @@ -1328,7 +1328,7 @@ void XclExpFmlaCompImpl::ProcessMatrix( const XclExpScToken& rTokData ) else { AppendExt( EXC_CACHEDVAL_STRING ); - AppendExt( rStr ); + AppendExt( aStr ); } } } diff --git a/sc/source/filter/excel/xehelper.cxx b/sc/source/filter/excel/xehelper.cxx index c64006a67642..2e6b4cf54fdb 100644 --- a/sc/source/filter/excel/xehelper.cxx +++ b/sc/source/filter/excel/xehelper.cxx @@ -1034,7 +1034,7 @@ void XclExpCachedMatrix::Save( XclExpStream& rStrm ) const } else if( ScMatrix::IsNonValueType( nMatVal.nType ) ) { - XclExpString aStr( nMatVal.GetString(), EXC_STR_DEFAULT ); + XclExpString aStr( nMatVal.GetString().getString(), EXC_STR_DEFAULT ); rStrm.SetSliceSize( 6 ); rStrm << EXC_CACHEDVAL_STRING << aStr; } diff --git a/sc/source/filter/excel/xilink.cxx b/sc/source/filter/excel/xilink.cxx index 3a687eb3c49a..a33da234a82a 100644 --- a/sc/source/filter/excel/xilink.cxx +++ b/sc/source/filter/excel/xilink.cxx @@ -517,8 +517,8 @@ bool XclImpExtName::CreateOleData(ScDocument& rDoc, const OUString& rUrl, break; case SC_MATVAL_STRING: { - const OUString& rStr = aVal.GetString(); - ScExternalRefCache::TokenRef pToken(new formula::FormulaStringToken(rStr)); + const svl::SharedString aStr( aVal.GetString()); + ScExternalRefCache::TokenRef pToken(new formula::FormulaStringToken(aStr)); xTab->setCell(nCol, nRow, pToken, 0, false); } break; |