ooo-build r15448 - in trunk: . patches/dev300
- From: kyoshida svn gnome org
- To: svn-commits-list gnome org
- Subject: ooo-build r15448 - in trunk: . patches/dev300
- Date: Tue, 3 Mar 2009 21:08:20 +0000 (UTC)
Author: kyoshida
Date: Tue Mar 3 21:08:19 2009
New Revision: 15448
URL: http://svn.gnome.org/viewvc/ooo-build?rev=15448&view=rev
Log:
2009-03-03 Kohei Yoshida <kyoshida novell com>
* patches/dev300/chart-odf-always-calc-a1-m2.diff:
* patches/dev300/chart-odf-always-calc-a1.diff:
* patches/dev300/apply: adjusted for ooo310-m3. Parts of the old patch
have been upstreamed.
Added:
trunk/patches/dev300/chart-odf-always-calc-a1-m2.diff
- copied unchanged from r15445, /trunk/patches/dev300/chart-odf-always-calc-a1.diff
Modified:
trunk/ChangeLog
trunk/patches/dev300/apply
trunk/patches/dev300/chart-odf-always-calc-a1.diff
Modified: trunk/patches/dev300/apply
==============================================================================
--- trunk/patches/dev300/apply (original)
+++ trunk/patches/dev300/apply Tue Mar 3 21:08:19 2009
@@ -839,6 +839,12 @@
calc-filter-by-date-strip-time.diff, n#414303, i#94695, kohei
# preserve line breaks when referencing it in formula.
calc-multiline-formula-ref.diff, i#35913, kohei
+
+[ CalcFixes < dev300-m42 < ooo310-m3 ]
+# always store ranges in ODF using Calc A1 formula syntax.
+chart-odf-always-calc-a1-m2.diff, n#463305, kohei
+
+[ CalcFixes >= dev300-m42 >= ooo310-m3 ]
# always store ranges in ODF using Calc A1 formula syntax.
chart-odf-always-calc-a1.diff, n#463305, kohei
Modified: trunk/patches/dev300/chart-odf-always-calc-a1.diff
==============================================================================
--- trunk/patches/dev300/chart-odf-always-calc-a1.diff (original)
+++ trunk/patches/dev300/chart-odf-always-calc-a1.diff Tue Mar 3 21:08:19 2009
@@ -1,5 +1,5 @@
diff --git sc/inc/rangeutl.hxx sc/inc/rangeutl.hxx
-index 7b5d77b..f83327c 100644
+index 58c00b2..d540256 100644
--- sc/inc/rangeutl.hxx
+++ sc/inc/rangeutl.hxx
@@ -38,6 +38,11 @@
@@ -14,168 +14,26 @@
//------------------------------------------------------------------------
class SvStream;
-@@ -146,6 +151,7 @@ public:
- ScAddress& rAddress,
- const ::rtl::OUString& rAddressStr,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Int32& nOffset,
- sal_Unicode cSeperator = ' ',
- sal_Unicode cQuote = '\'');
-@@ -153,6 +159,7 @@ public:
- ScRange& rRange,
- const ::rtl::OUString& rRangeStr,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Int32& nOffset,
- sal_Unicode cSeperator = ' ',
- sal_Unicode cQuote = '\'');
-@@ -160,6 +167,7 @@ public:
- ScRangeList& rRangeList,
- const ::rtl::OUString& rRangeListStr,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Unicode cSeperator = ' ',
- sal_Unicode cQuote = '\'');
-
-@@ -167,6 +175,7 @@ public:
- ScArea& rArea,
- const ::rtl::OUString& rRangeStr,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Int32& nOffset,
- sal_Unicode cSeperator = ' ',
- sal_Unicode cQuote = '\'');
-@@ -176,6 +185,7 @@ public:
- ::com::sun::star::table::CellAddress& rAddress,
- const ::rtl::OUString& rAddressStr,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Int32& nOffset,
- sal_Unicode cSeperator = ' ',
- sal_Unicode cQuote = '\'');
-@@ -183,6 +193,7 @@ public:
- ::com::sun::star::table::CellRangeAddress& rRange,
- const ::rtl::OUString& rRangeStr,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Int32& nOffset,
- sal_Unicode cSeperator = ' ',
- sal_Unicode cQuote = '\'');
-@@ -190,6 +201,7 @@ public:
- ::com::sun::star::uno::Sequence< ::com::sun::star::table::CellRangeAddress >& rRangeSeq,
- const ::rtl::OUString& rRangeListStr,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Unicode cSeperator = ' ',
- sal_Unicode cQuote = '\'');
-
-@@ -198,6 +210,7 @@ public:
- ::rtl::OUString& rString,
- const ScAddress& rAddress,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Unicode cSeperator = ' ',
- sal_Bool bAppendStr = sal_False,
- sal_uInt16 nFormatFlags = (SCA_VALID | SCA_TAB_3D) );
-@@ -205,6 +218,7 @@ public:
- ::rtl::OUString& rString,
- const ScRange& rRange,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Unicode cSeperator = ' ',
- sal_Bool bAppendStr = sal_False,
- sal_uInt16 nFormatFlags = (SCA_VALID | SCA_TAB_3D) );
-@@ -212,6 +226,7 @@ public:
- ::rtl::OUString& rString,
- const ScRangeList* pRangeList,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Unicode cSeperator = ' ',
- sal_uInt16 nFormatFlags = (SCA_VALID | SCA_TAB_3D));
-
-@@ -219,6 +234,7 @@ public:
- ::rtl::OUString& rString,
- const ScArea& rArea,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Unicode cSeperator = ' ',
- sal_Bool bAppendStr = sal_False,
- sal_uInt16 nFormatFlags = (SCA_VALID | SCA_TAB_3D) );
-@@ -228,6 +244,7 @@ public:
- ::rtl::OUString& rString,
- const ::com::sun::star::table::CellAddress& rAddress,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Unicode cSeperator = ' ',
- sal_Bool bAppendStr = sal_False,
- sal_uInt16 nFormatFlags = (SCA_VALID | SCA_TAB_3D) );
-@@ -235,6 +252,7 @@ public:
- ::rtl::OUString& rString,
- const ::com::sun::star::table::CellRangeAddress& rRange,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Unicode cSeperator = ' ',
- sal_Bool bAppendStr = sal_False,
- sal_uInt16 nFormatFlags = (SCA_VALID | SCA_TAB_3D) );
-@@ -242,6 +260,7 @@ public:
- ::rtl::OUString& rString,
- const ::com::sun::star::uno::Sequence< ::com::sun::star::table::CellRangeAddress >& rRangeSeq,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Unicode cSeperator = ' ',
- sal_uInt16 nFormatFlags = (SCA_VALID | SCA_TAB_3D) );
- };
diff --git sc/source/core/tool/rangeutl.cxx sc/source/core/tool/rangeutl.cxx
-index 55a18b0..5e2c80c 100644
+index 82d07bc..84a410c 100644
--- sc/source/core/tool/rangeutl.cxx
+++ sc/source/core/tool/rangeutl.cxx
-@@ -456,6 +456,7 @@ sal_Bool ScRangeStringConverter::GetAddressFromString(
- ScAddress& rAddress,
- const OUString& rAddressStr,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Int32& nOffset,
- sal_Unicode cSeperator,
- sal_Unicode cQuote )
-@@ -463,7 +464,15 @@ sal_Bool ScRangeStringConverter::GetAddressFromString(
- OUString sToken;
- GetTokenByOffset( sToken, rAddressStr, nOffset, cSeperator, cQuote );
- if( nOffset >= 0 )
-- return ((rAddress.Parse( sToken, const_cast<ScDocument*>(pDocument), pDocument->GetAddressConvention() ) & SCA_VALID) == SCA_VALID);
-+ {
-+ if ((rAddress.Parse( sToken, const_cast<ScDocument*>(pDocument), eConv ) & SCA_VALID) == SCA_VALID)
-+ return true;
+@@ -480,6 +480,11 @@ sal_Bool ScRangeStringConverter::GetAddressFromString(
+ {
+ if ((rAddress.Parse( sToken, const_cast<ScDocument*>(pDocument), eConv ) & SCA_VALID) == SCA_VALID)
+ return true;
+#if CHART_ADDRESS_CONV_WORKAROUND
+ ::formula::FormulaGrammar::AddressConvention eConvUI = pDocument->GetAddressConvention();
+ if (eConv != eConvUI)
+ return ((rAddress.Parse(sToken, const_cast<ScDocument*>(pDocument), eConvUI) & SCA_VALID) == SCA_VALID);
+#endif
-+ }
+ }
return sal_False;
}
-
-@@ -471,12 +480,14 @@ sal_Bool ScRangeStringConverter::GetRangeFromString(
- ScRange& rRange,
- const OUString& rRangeStr,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Int32& nOffset,
- sal_Unicode cSeperator,
- sal_Unicode cQuote )
- {
- OUString sToken;
- sal_Bool bResult(sal_False);
-+ ::formula::FormulaGrammar::AddressConvention eConvUI = pDocument->GetAddressConvention();
- GetTokenByOffset( sToken, rRangeStr, nOffset, cSeperator, cQuote );
- if( nOffset >= 0 )
- {
-@@ -487,7 +498,12 @@ sal_Bool ScRangeStringConverter::GetRangeFromString(
- {
+@@ -506,6 +511,11 @@ sal_Bool ScRangeStringConverter::GetRangeFromString(
if ( aUIString.GetChar(0) == (sal_Unicode) '.' )
aUIString.Erase( 0, 1 );
-- bResult = ((rRange.aStart.Parse( aUIString, const_cast<ScDocument*> (pDocument), pDocument->GetAddressConvention()) & SCA_VALID) == SCA_VALID);
-+ bResult = ((rRange.aStart.Parse( aUIString, const_cast<ScDocument*> (pDocument), eConv) & SCA_VALID) == SCA_VALID);
+ bResult = ((rRange.aStart.Parse( aUIString, const_cast<ScDocument*> (pDocument), eConv) & SCA_VALID) == SCA_VALID);
+#if CHART_ADDRESS_CONV_WORKAROUND
+ if (!bResult && eConv != eConvUI)
+ bResult = ((rRange.aStart.Parse(
@@ -184,23 +42,10 @@
rRange.aEnd = rRange.aStart;
}
else
-@@ -502,15 +518,28 @@ sal_Bool ScRangeStringConverter::GetRangeFromString(
- aUIString.GetChar((xub_StrLen)nIndex + 1) == (sal_Unicode) '.' )
- aUIString.Erase( (xub_StrLen)nIndex + 1, 1 );
-
-- bResult = ((rRange.Parse(aUIString, const_cast<ScDocument*> (pDocument)) & SCA_VALID) == SCA_VALID);
-+ bResult = ((rRange.Parse(aUIString, const_cast<ScDocument*> (pDocument), eConv) & SCA_VALID) == SCA_VALID);
-
- // #i77703# chart ranges in the file format contain both sheet names, even for an external reference sheet.
- // This isn't parsed by ScRange, so try to parse the two Addresses then.
- if (!bResult)
-+ {
- bResult = ((rRange.aStart.Parse( aUIString.Copy(0, (xub_StrLen)nIndex), const_cast<ScDocument*>(pDocument),
-- pDocument->GetAddressConvention()) & SCA_VALID) == SCA_VALID) &&
-+ eConv) & SCA_VALID) == SCA_VALID) &&
+@@ -530,6 +540,17 @@ sal_Bool ScRangeStringConverter::GetRangeFromString(
+ eConv) & SCA_VALID) == SCA_VALID) &&
((rRange.aEnd.Parse( aUIString.Copy((xub_StrLen)nIndex+1), const_cast<ScDocument*>(pDocument),
-- pDocument->GetAddressConvention()) & SCA_VALID) == SCA_VALID);
-+ eConv) & SCA_VALID) == SCA_VALID);
+ eConv) & SCA_VALID) == SCA_VALID);
+#if CHART_ADDRESS_CONV_WORKAROUND
+ if (!bResult && eConv != eConvUI)
+ {
@@ -212,851 +57,86 @@
+ rRange.Format(aFoo, SCA_VALID, const_cast<ScDocument*>(pDocument));
+ }
+#endif
-+ }
+ }
}
}
- return bResult;
-@@ -520,6 +549,7 @@ sal_Bool ScRangeStringConverter::GetRangeListFromString(
- ScRangeList& rRangeList,
- const OUString& rRangeListStr,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Unicode cSeperator,
- sal_Unicode cQuote )
- {
-@@ -529,7 +559,7 @@ sal_Bool ScRangeStringConverter::GetRangeListFromString(
- while( nOffset >= 0 )
- {
- ScRange* pRange = new ScRange;
-- if( GetRangeFromString( *pRange, rRangeListStr, pDocument, nOffset, cSeperator, cQuote ) && (nOffset >= 0) )
-+ if( GetRangeFromString( *pRange, rRangeListStr, pDocument, eConv, nOffset, cSeperator, cQuote ) && (nOffset >= 0) )
- rRangeList.Insert( pRange, LIST_APPEND );
- else if (nOffset > -1)
- bRet = sal_False;
-@@ -544,13 +574,14 @@ sal_Bool ScRangeStringConverter::GetAreaFromString(
- ScArea& rArea,
- const OUString& rRangeStr,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Int32& nOffset,
- sal_Unicode cSeperator,
- sal_Unicode cQuote )
- {
- ScRange aScRange;
- sal_Bool bResult(sal_False);
-- if( GetRangeFromString( aScRange, rRangeStr, pDocument, nOffset, cSeperator, cQuote ) && (nOffset >= 0) )
-+ if( GetRangeFromString( aScRange, rRangeStr, pDocument, eConv, nOffset, cSeperator, cQuote ) && (nOffset >= 0) )
- {
- rArea.nTab = aScRange.aStart.Tab();
- rArea.nColStart = aScRange.aStart.Col();
-@@ -569,13 +600,14 @@ sal_Bool ScRangeStringConverter::GetAddressFromString(
- table::CellAddress& rAddress,
- const OUString& rAddressStr,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Int32& nOffset,
- sal_Unicode cSeperator,
- sal_Unicode cQuote )
- {
- ScAddress aScAddress;
- sal_Bool bResult(sal_False);
-- if( GetAddressFromString( aScAddress, rAddressStr, pDocument, nOffset, cSeperator, cQuote ) && (nOffset >= 0) )
-+ if( GetAddressFromString( aScAddress, rAddressStr, pDocument, eConv, nOffset, cSeperator, cQuote ) && (nOffset >= 0) )
- {
- ScUnoConversion::FillApiAddress( rAddress, aScAddress );
- bResult = sal_True;
-@@ -587,13 +619,14 @@ sal_Bool ScRangeStringConverter::GetRangeFromString(
- table::CellRangeAddress& rRange,
- const OUString& rRangeStr,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Int32& nOffset,
- sal_Unicode cSeperator,
- sal_Unicode cQuote )
- {
- ScRange aScRange;
- sal_Bool bResult(sal_False);
-- if( GetRangeFromString( aScRange, rRangeStr, pDocument, nOffset, cSeperator, cQuote ) && (nOffset >= 0) )
-+ if( GetRangeFromString( aScRange, rRangeStr, pDocument, eConv, nOffset, cSeperator, cQuote ) && (nOffset >= 0) )
- {
- ScUnoConversion::FillApiRange( rRange, aScRange );
- bResult = sal_True;
-@@ -605,6 +638,7 @@ sal_Bool ScRangeStringConverter::GetRangeListFromString(
- uno::Sequence< table::CellRangeAddress >& rRangeSeq,
- const OUString& rRangeListStr,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Unicode cSeperator,
- sal_Unicode cQuote )
- {
-@@ -614,7 +648,7 @@ sal_Bool ScRangeStringConverter::GetRangeListFromString(
- sal_Int32 nOffset = 0;
- while( nOffset >= 0 )
- {
-- if( GetRangeFromString( aRange, rRangeListStr, pDocument, nOffset, cSeperator, cQuote ) && (nOffset >= 0) )
-+ if( GetRangeFromString( aRange, rRangeListStr, pDocument, eConv, nOffset, cSeperator, cQuote ) && (nOffset >= 0) )
- {
- rRangeSeq.realloc( rRangeSeq.getLength() + 1 );
- rRangeSeq[ rRangeSeq.getLength() - 1 ] = aRange;
-@@ -632,6 +666,7 @@ void ScRangeStringConverter::GetStringFromAddress(
- OUString& rString,
- const ScAddress& rAddress,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Unicode cSeperator,
- sal_Bool bAppendStr,
- sal_uInt16 nFormatFlags )
-@@ -639,7 +674,7 @@ void ScRangeStringConverter::GetStringFromAddress(
- if (pDocument && pDocument->HasTable(rAddress.Tab()))
- {
- String sAddress;
-- rAddress.Format( sAddress, nFormatFlags, (ScDocument*) pDocument, pDocument->GetAddressConvention() );
-+ rAddress.Format( sAddress, nFormatFlags, (ScDocument*) pDocument, eConv );
- AssignString( rString, sAddress, bAppendStr, cSeperator );
- }
- }
-@@ -648,6 +683,7 @@ void ScRangeStringConverter::GetStringFromRange(
- OUString& rString,
- const ScRange& rRange,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Unicode cSeperator,
- sal_Bool bAppendStr,
- sal_uInt16 nFormatFlags )
-@@ -658,7 +694,6 @@ void ScRangeStringConverter::GetStringFromRange(
- ScAddress aEndAddress( rRange.aEnd );
- String sStartAddress;
- String sEndAddress;
-- formula::FormulaGrammar::AddressConvention eConv = pDocument->GetAddressConvention();
- aStartAddress.Format( sStartAddress, nFormatFlags, (ScDocument*) pDocument, eConv );
- aEndAddress.Format( sEndAddress, nFormatFlags, (ScDocument*) pDocument, eConv );
- OUString sOUStartAddress( sStartAddress );
-@@ -672,6 +707,7 @@ void ScRangeStringConverter::GetStringFromRangeList(
- OUString& rString,
- const ScRangeList* pRangeList,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Unicode cSeperator,
- sal_uInt16 nFormatFlags )
- {
-@@ -683,7 +719,7 @@ void ScRangeStringConverter::GetStringFromRangeList(
- {
- const ScRange* pRange = pRangeList->GetObject( nIndex );
- if( pRange )
-- GetStringFromRange( sRangeListStr, *pRange, pDocument, cSeperator, sal_True, nFormatFlags );
-+ GetStringFromRange( sRangeListStr, *pRange, pDocument, eConv, cSeperator, sal_True, nFormatFlags );
- }
- }
- rString = sRangeListStr;
-@@ -696,12 +732,13 @@ void ScRangeStringConverter::GetStringFromArea(
- OUString& rString,
- const ScArea& rArea,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Unicode cSeperator,
- sal_Bool bAppendStr,
- sal_uInt16 nFormatFlags )
- {
- ScRange aRange( rArea.nColStart, rArea.nRowStart, rArea.nTab, rArea.nColEnd, rArea.nRowEnd, rArea.nTab );
-- GetStringFromRange( rString, aRange, pDocument, cSeperator, bAppendStr, nFormatFlags );
-+ GetStringFromRange( rString, aRange, pDocument, eConv, cSeperator, bAppendStr, nFormatFlags );
- }
-
+@@ -864,6 +885,8 @@ static void lcl_appendCellRangeAddress(
-@@ -711,31 +748,34 @@ void ScRangeStringConverter::GetStringFromAddress(
- OUString& rString,
- const table::CellAddress& rAddress,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Unicode cSeperator,
- sal_Bool bAppendStr,
- sal_uInt16 nFormatFlags )
+ void ScRangeStringConverter::GetStringFromXMLRangeString( OUString& rString, const OUString& rXMLRange, ScDocument* pDoc )
{
- ScAddress aScAddress( static_cast<SCCOL>(rAddress.Column), static_cast<SCROW>(rAddress.Row), rAddress.Sheet );
-- GetStringFromAddress( rString, aScAddress, pDocument, cSeperator, bAppendStr, nFormatFlags );
-+ GetStringFromAddress( rString, aScAddress, pDocument, eConv, cSeperator, bAppendStr, nFormatFlags );
- }
-
- void ScRangeStringConverter::GetStringFromRange(
- OUString& rString,
- const table::CellRangeAddress& rRange,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Unicode cSeperator,
- sal_Bool bAppendStr,
- sal_uInt16 nFormatFlags )
- {
- ScRange aScRange( static_cast<SCCOL>(rRange.StartColumn), static_cast<SCROW>(rRange.StartRow), rRange.Sheet,
- static_cast<SCCOL>(rRange.EndColumn), static_cast<SCROW>(rRange.EndRow), rRange.Sheet );
-- GetStringFromRange( rString, aScRange, pDocument, cSeperator, bAppendStr, nFormatFlags );
-+ GetStringFromRange( rString, aScRange, pDocument, eConv, cSeperator, bAppendStr, nFormatFlags );
- }
-
- void ScRangeStringConverter::GetStringFromRangeList(
- OUString& rString,
- const uno::Sequence< table::CellRangeAddress >& rRangeSeq,
- const ScDocument* pDocument,
-+ ::formula::FormulaGrammar::AddressConvention eConv,
- sal_Unicode cSeperator,
- sal_uInt16 nFormatFlags )
- {
-@@ -744,7 +784,7 @@ void ScRangeStringConverter::GetStringFromRangeList(
- for( sal_Int32 nIndex = 0; nIndex < nCount; nIndex++ )
- {
- const table::CellRangeAddress& rRange = rRangeSeq[ nIndex ];
-- GetStringFromRange( sRangeListStr, rRange, pDocument, cSeperator, sal_True, nFormatFlags );
-+ GetStringFromRange( sRangeListStr, rRange, pDocument, eConv, cSeperator, sal_True, nFormatFlags );
- }
- rString = sRangeListStr;
- }
-diff --git sc/source/filter/excel/xechart.cxx sc/source/filter/excel/xechart.cxx
-index d986b48..457f5e6 100644
---- sc/source/filter/excel/xechart.cxx
-+++ sc/source/filter/excel/xechart.cxx
-@@ -679,7 +679,8 @@ sal_uInt16 XclExpChSourceLink::ConvertDataSequence( Reference< XDataSequence > x
- {
- OUString aRangeRepr = xDataSeq->getSourceRangeRepresentation();
- ScRangeList aScRanges;
-- if( ScRangeStringConverter::GetRangeListFromString( aScRanges, aRangeRepr, GetDocPtr(), ';' ) )
-+ ScDocument* pDoc = GetDocPtr();
-+ if( ScRangeStringConverter::GetRangeListFromString( aScRanges, aRangeRepr, pDoc, ::formula::FormulaGrammar::CONV_OOO, ';' ) )
- {
- // split 3-dimensional ranges into single sheets
- ScRangeList aNewScRanges;
-diff --git sc/source/filter/excel/xichart.cxx sc/source/filter/excel/xichart.cxx
-index 7976e8a..530aeca 100644
---- sc/source/filter/excel/xichart.cxx
-+++ sc/source/filter/excel/xichart.cxx
-@@ -695,7 +695,8 @@ Reference< XDataSequence > XclImpChSourceLink::CreateDataSequence( const OUStrin
- {
- // create the string representation of the range list
- OUString aRangeRep;
-- ScRangeStringConverter::GetStringFromRangeList( aRangeRep, &maScRanges, GetDocPtr(), ';' );
-+ ScDocument* pDoc = GetDocPtr();
-+ ScRangeStringConverter::GetStringFromRangeList( aRangeRep, &maScRanges, pDoc, ::formula::FormulaGrammar::CONV_OOO, ';' );
-
- // create the data sequence
- try
-diff --git sc/source/filter/xml/XMLChangeTrackingExportHelper.cxx sc/source/filter/xml/XMLChangeTrackingExportHelper.cxx
-index 1213a43..0d01656 100644
---- sc/source/filter/xml/XMLChangeTrackingExportHelper.cxx
-+++ sc/source/filter/xml/XMLChangeTrackingExportHelper.cxx
-@@ -395,7 +395,7 @@ void ScChangeTrackingExportHelper::WriteFormulaCell(const ScBaseCell* pCell, con
- {
- rtl::OUString sAddress;
- const ScDocument* pDoc = rExport.GetDocument();
-- ScRangeStringConverter::GetStringFromAddress(sAddress, pFormulaCell->aPos, pDoc);
-+ ScRangeStringConverter::GetStringFromAddress(sAddress, pFormulaCell->aPos, pDoc, ::formula::FormulaGrammar::CONV_OOO);
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_CELL_ADDRESS, sAddress);
- const formula::FormulaGrammar::Grammar eGrammar = pDoc->GetStorageGrammar();
- sal_uInt16 nNamespacePrefix = (eGrammar == formula::FormulaGrammar::GRAM_ODFF ? XML_NAMESPACE_OF : XML_NAMESPACE_OOOC);
-diff --git sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx
-index d48f31d..f89f89d 100644
---- sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx
-+++ sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx
-@@ -88,7 +88,7 @@ ScBaseCell* ScMyCellInfo::CreateCell(ScDocument* pDoc)
- {
- ScAddress aPos;
- sal_Int32 nOffset(0);
-- ScRangeStringConverter::GetAddressFromString(aPos, sFormulaAddress, pDoc, nOffset);
-+ ScRangeStringConverter::GetAddressFromString(aPos, sFormulaAddress, pDoc, ::formula::FormulaGrammar::CONV_OOO, nOffset);
- pCell = new ScFormulaCell(pDoc, aPos, sFormula, eGrammar, nMatrixFlag);
- static_cast<ScFormulaCell*>(pCell)->SetMatColsRows(static_cast<SCCOL>(nMatrixCols), static_cast<SCROW>(nMatrixRows));
- }
-diff --git sc/source/filter/xml/XMLConsolidationContext.cxx sc/source/filter/xml/XMLConsolidationContext.cxx
-index e04ad00..478d4fc 100644
---- sc/source/filter/xml/XMLConsolidationContext.cxx
-+++ sc/source/filter/xml/XMLConsolidationContext.cxx
-@@ -84,7 +84,7 @@ ScXMLConsolidationContext::ScXMLConsolidationContext(
- {
- sal_Int32 nOffset(0);
- bTargetAddr = ScRangeStringConverter::GetAddressFromString(
-- aTargetAddr, sValue, GetScImport().GetDocument(), nOffset );
-+ aTargetAddr, sValue, GetScImport().GetDocument(), ::formula::FormulaGrammar::CONV_OOO, nOffset );
- }
- break;
- case XML_TOK_CONSOLIDATION_ATTR_USE_LABEL:
-@@ -130,7 +130,7 @@ void ScXMLConsolidationContext::EndElement()
- {
- ppAreas[ nIndex ] = new ScArea;
- if ( !ScRangeStringConverter::GetAreaFromString(
-- *ppAreas[ nIndex ], sSourceList, GetScImport().GetDocument(), nOffset ) )
-+ *ppAreas[ nIndex ], sSourceList, GetScImport().GetDocument(), ::formula::FormulaGrammar::CONV_OOO, nOffset ) )
- {
- bError = sal_True; //! handle error
- }
-diff --git sc/source/filter/xml/XMLDetectiveContext.cxx sc/source/filter/xml/XMLDetectiveContext.cxx
-index 5abc4e2..8eb8b03 100644
---- sc/source/filter/xml/XMLDetectiveContext.cxx
-+++ sc/source/filter/xml/XMLDetectiveContext.cxx
-@@ -157,7 +157,7 @@ ScXMLDetectiveHighlightedContext::ScXMLDetectiveHighlightedContext(
- {
- sal_Int32 nOffset(0);
- GetScImport().LockSolarMutex();
-- bValid = ScRangeStringConverter::GetRangeFromString( aDetectiveObj.aSourceRange, sValue, GetScImport().GetDocument(), nOffset );
-+ bValid = ScRangeStringConverter::GetRangeFromString( aDetectiveObj.aSourceRange, sValue, GetScImport().GetDocument(), ::formula::FormulaGrammar::CONV_OOO, nOffset );
- GetScImport().UnlockSolarMutex();
- }
- break;
-diff --git sc/source/filter/xml/XMLExportDataPilot.cxx sc/source/filter/xml/XMLExportDataPilot.cxx
-index 79c505e..0227b44 100644
---- sc/source/filter/xml/XMLExportDataPilot.cxx
-+++ sc/source/filter/xml/XMLExportDataPilot.cxx
-@@ -204,7 +204,7 @@ void ScXMLExportDataPilot::WriteDPFilter(const ScQueryParam& aQueryParam)
- ScRange aConditionRange(aQueryParam.nCol1, aQueryParam.nRow1, aQueryParam.nTab,
- aQueryParam.nCol2, aQueryParam.nRow2, aQueryParam.nTab);
- rtl::OUString sConditionRange;
-- ScRangeStringConverter::GetStringFromRange( sConditionRange, aConditionRange, pDoc );
-+ ScRangeStringConverter::GetStringFromRange( sConditionRange, aConditionRange, pDoc, ::formula::FormulaGrammar::CONV_OOO );
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_CONDITION_SOURCE_RANGE_ADDRESS, sConditionRange);
- }
- if (!aQueryParam.bDuplicate)
-@@ -734,7 +734,7 @@ void ScXMLExportDataPilot::WriteDataPilots(const uno::Reference <sheet::XSpreads
- {
- ScRange aOutRange((*pDPs)[i]->GetOutRange());
- rtl::OUString sTargetRangeAddress;
-- ScRangeStringConverter::GetStringFromRange( sTargetRangeAddress, aOutRange, pDoc );
-+ ScRangeStringConverter::GetStringFromRange( sTargetRangeAddress, aOutRange, pDoc, ::formula::FormulaGrammar::CONV_OOO );
- ScDocAttrIterator aAttrItr(pDoc, aOutRange.aStart.Tab(),
- aOutRange.aStart.Col(), aOutRange.aStart.Row(),
- aOutRange.aEnd.Col(), aOutRange.aEnd.Row());
-@@ -751,7 +751,7 @@ void ScXMLExportDataPilot::WriteDataPilots(const uno::Reference <sheet::XSpreads
- {
- ScAddress aButtonAddr(nCol, nButtonRow, aOutRange.aStart.Tab());
- ScRangeStringConverter::GetStringFromAddress(
-- sOUButtonList, aButtonAddr, pDoc, ' ', sal_True );
-+ sOUButtonList, aButtonAddr, pDoc, ::formula::FormulaGrammar::CONV_OOO, ' ', sal_True );
- }
- }
- pAttr = aAttrItr.GetNext(nCol, nRow1, nRow2);
-@@ -789,7 +789,7 @@ void ScXMLExportDataPilot::WriteDataPilots(const uno::Reference <sheet::XSpreads
- {
- const ScSheetSourceDesc* pSheetSource = (*pDPs)[i]->GetSheetDesc();
- rtl::OUString sCellRangeAddress;
-- ScRangeStringConverter::GetStringFromRange( sCellRangeAddress, pSheetSource->aSourceRange, pDoc );
-+ ScRangeStringConverter::GetStringFromRange( sCellRangeAddress, pSheetSource->aSourceRange, pDoc, ::formula::FormulaGrammar::CONV_OOO );
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_CELL_RANGE_ADDRESS, sCellRangeAddress);
- SvXMLElementExport aElemSCR(rExport, XML_NAMESPACE_TABLE, XML_SOURCE_CELL_RANGE, sal_True, sal_True);
- rExport.CheckAttrList();
-diff --git sc/source/filter/xml/XMLExportDatabaseRanges.cxx sc/source/filter/xml/XMLExportDatabaseRanges.cxx
-index 927ff68..ae7d11c 100644
---- sc/source/filter/xml/XMLExportDatabaseRanges.cxx
-+++ sc/source/filter/xml/XMLExportDatabaseRanges.cxx
-@@ -290,7 +290,7 @@ void ScXMLExportDatabaseRanges::WriteFilterDescriptor(const uno::Reference <shee
- if (xPropertySet->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SC_UNONAME_OUTPOS))) >>= aOutputPosition)
- {
- rtl::OUString sOUCellAddress;
-- ScRangeStringConverter::GetStringFromAddress( sOUCellAddress, aOutputPosition, pDoc );
-+ ScRangeStringConverter::GetStringFromAddress( sOUCellAddress, aOutputPosition, pDoc, ::formula::FormulaGrammar::CONV_OOO );
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_TARGET_RANGE_ADDRESS, sOUCellAddress);
- }
- }
-@@ -302,7 +302,7 @@ void ScXMLExportDatabaseRanges::WriteFilterDescriptor(const uno::Reference <shee
- if (pDBData->GetAdvancedQuerySource(aAdvSource))
- {
- rtl::OUString sOUCellAddress;
-- ScRangeStringConverter::GetStringFromRange( sOUCellAddress, aAdvSource, pDoc );
-+ ScRangeStringConverter::GetStringFromRange( sOUCellAddress, aAdvSource, pDoc, ::formula::FormulaGrammar::CONV_OOO );
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_CONDITION_SOURCE_RANGE_ADDRESS, sOUCellAddress);
- }
-
-@@ -445,7 +445,7 @@ void ScXMLExportDatabaseRanges::WriteSortDescriptor(const uno::Sequence <beans::
- if (bCopyOutputData)
- {
- rtl::OUString sOUCellAddress;
-- ScRangeStringConverter::GetStringFromAddress( sOUCellAddress, aOutputPosition, pDoc );
-+ ScRangeStringConverter::GetStringFromAddress( sOUCellAddress, aOutputPosition, pDoc, ::formula::FormulaGrammar::CONV_OOO );
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_TARGET_RANGE_ADDRESS, sOUCellAddress);
- }
- // no longer supported
-@@ -620,7 +620,7 @@ void ScXMLExportDatabaseRanges::WriteDatabaseRanges(const com::sun::star::uno::R
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_NAME, sDatabaseRangeName);
- table::CellRangeAddress aRangeAddress(xDatabaseRange->getDataArea());
- rtl::OUString sOUAddress;
-- ScRangeStringConverter::GetStringFromRange( sOUAddress, aRangeAddress, pDoc );
-+ ScRangeStringConverter::GetStringFromRange( sOUAddress, aRangeAddress, pDoc, ::formula::FormulaGrammar::CONV_OOO );
- rExport.AddAttribute (XML_NAMESPACE_TABLE, XML_TARGET_RANGE_ADDRESS, sOUAddress);
- ScDBCollection* pDBCollection = pDoc->GetDBCollection();
- sal_uInt16 nIndex;
-diff --git sc/source/filter/xml/XMLStylesExportHelper.cxx sc/source/filter/xml/XMLStylesExportHelper.cxx
-index deb1e33..7c23cd4 100644
---- sc/source/filter/xml/XMLStylesExportHelper.cxx
-+++ sc/source/filter/xml/XMLStylesExportHelper.cxx
-@@ -306,7 +306,7 @@ rtl::OUString ScMyValidationsContainer::GetCondition(ScXMLExport& rExport, const
- rtl::OUString ScMyValidationsContainer::GetBaseCellAddress(ScDocument* pDoc, const table::CellAddress& aCell)
- {
- rtl::OUString sAddress;
-- ScRangeStringConverter::GetStringFromAddress( sAddress, aCell, pDoc );
-+ ScRangeStringConverter::GetStringFromAddress( sAddress, aCell, pDoc, ::formula::FormulaGrammar::CONV_OOO );
- return sAddress;
- }
-
-diff --git sc/source/filter/xml/XMLTableShapeImportHelper.cxx sc/source/filter/xml/XMLTableShapeImportHelper.cxx
-index 7f9fb3f..ddb902b 100644
---- sc/source/filter/xml/XMLTableShapeImportHelper.cxx
-+++ sc/source/filter/xml/XMLTableShapeImportHelper.cxx
-@@ -106,7 +106,7 @@ void XMLTableShapeImportHelper::finishShape(
- if (IsXMLToken(aLocalName, XML_END_CELL_ADDRESS))
- {
- sal_Int32 nOffset(0);
-- ScRangeStringConverter::GetAddressFromString(aEndCell, rValue, static_cast<ScXMLImport&>(mrImporter).GetDocument(), nOffset);
-+ ScRangeStringConverter::GetAddressFromString(aEndCell, rValue, static_cast<ScXMLImport&>(mrImporter).GetDocument(), ::formula::FormulaGrammar::CONV_OOO, nOffset);
- }
- else if (IsXMLToken(aLocalName, XML_END_X))
- static_cast<ScXMLImport&>(mrImporter).GetMM100UnitConverter().convertMeasure(nEndX, rValue);
-diff --git sc/source/filter/xml/XMLTableShapeResizer.cxx sc/source/filter/xml/XMLTableShapeResizer.cxx
-index f5ab80c..0751be4 100644
---- sc/source/filter/xml/XMLTableShapeResizer.cxx
-+++ sc/source/filter/xml/XMLTableShapeResizer.cxx
-@@ -75,7 +75,7 @@ void ScMyShapeResizer::CreateChartListener(ScDocument* pDoc,
- if (pCollection)
- {
- ScRangeListRef aRangeListRef(new ScRangeList());
-- ScRangeStringConverter::GetRangeListFromString(*aRangeListRef, *pRangeList, pDoc);
-+ ScRangeStringConverter::GetRangeListFromString(*aRangeListRef, *pRangeList, pDoc, ::formula::FormulaGrammar::CONV_OOO);
- if (aRangeListRef->Count())
- {
- ScChartListener* pCL(new ScChartListener(rName, pDoc, aRangeListRef ));
-diff --git sc/source/filter/xml/xmldpimp.cxx sc/source/filter/xml/xmldpimp.cxx
-index 9d79e15..9dfcd8c 100644
---- sc/source/filter/xml/xmldpimp.cxx
-+++ sc/source/filter/xml/xmldpimp.cxx
-@@ -175,7 +175,7 @@ ScXMLDataPilotTableContext::ScXMLDataPilotTableContext( ScXMLImport& rImport,
- case XML_TOK_DATA_PILOT_TABLE_ATTR_TARGET_RANGE_ADDRESS :
- {
- sal_Int32 nOffset(0);
-- bTargetRangeAddress = ScRangeStringConverter::GetRangeFromString( aTargetRangeAddress, sValue, pDoc, nOffset );
-+ bTargetRangeAddress = ScRangeStringConverter::GetRangeFromString( aTargetRangeAddress, sValue, pDoc, ::formula::FormulaGrammar::CONV_OOO, nOffset );
- }
- break;
- case XML_TOK_DATA_PILOT_TABLE_ATTR_BUTTONS :
-@@ -272,7 +272,7 @@ void ScXMLDataPilotTableContext::SetButtons()
- {
- ScAddress aScAddress;
- sal_Int32 nAddrOffset(0);
-- if (pDoc && ScRangeStringConverter::GetAddressFromString( aScAddress, sAddress, pDoc, nAddrOffset ))
-+ if (pDoc && ScRangeStringConverter::GetAddressFromString( aScAddress, sAddress, pDoc, ::formula::FormulaGrammar::CONV_OOO, nAddrOffset ))
- {
- ScMergeFlagAttr aAttr( SC_MF_BUTTON );
- pDoc->ApplyAttr( aScAddress.Col(), aScAddress.Row(), aScAddress.Tab(), aAttr );
-@@ -675,7 +675,7 @@ ScXMLSourceCellRangeContext::ScXMLSourceCellRangeContext( ScXMLImport& rImport,
- {
- ScRange aSourceRangeAddress;
- sal_Int32 nOffset(0);
-- if (ScRangeStringConverter::GetRangeFromString( aSourceRangeAddress, sValue, GetScImport().GetDocument(), nOffset ))
-+ if (ScRangeStringConverter::GetRangeFromString( aSourceRangeAddress, sValue, GetScImport().GetDocument(), ::formula::FormulaGrammar::CONV_OOO, nOffset ))
- pDataPilotTable->SetSourceCellRangeAddress(aSourceRangeAddress);
- }
- break;
-diff --git sc/source/filter/xml/xmldrani.cxx sc/source/filter/xml/xmldrani.cxx
-index bf8219c..dfc87cc 100644
---- sc/source/filter/xml/xmldrani.cxx
-+++ sc/source/filter/xml/xmldrani.cxx
-@@ -292,7 +292,7 @@ void ScXMLDatabaseRangeContext::EndElement()
- {
- table::CellRangeAddress aCellRangeAddress;
- sal_Int32 nOffset(0);
-- if (ScRangeStringConverter::GetRangeFromString( aCellRangeAddress, sRangeAddress, pDoc, nOffset ))
-+ if (ScRangeStringConverter::GetRangeFromString( aCellRangeAddress, sRangeAddress, pDoc, ::formula::FormulaGrammar::CONV_OOO, nOffset ))
- {
- sal_Bool bInsert(sal_True);
- try
-diff --git sc/source/filter/xml/xmlexprt.cxx sc/source/filter/xml/xmlexprt.cxx
-index 966a1a5..09896a1 100644
---- sc/source/filter/xml/xmlexprt.cxx
-+++ sc/source/filter/xml/xmlexprt.cxx
-@@ -1423,7 +1423,7 @@ void ScXMLExport::GetColumnRowHeader(sal_Bool& rHasColumnHeader, table::CellRang
- rRowHeaderRange = xPrintAreas->getTitleRows();
- rColumnHeaderRange = xPrintAreas->getTitleColumns();
- uno::Sequence< table::CellRangeAddress > aRangeList( xPrintAreas->getPrintAreas() );
-- ScRangeStringConverter::GetStringFromRangeList( rPrintRanges, aRangeList, pDoc );
-+ ScRangeStringConverter::GetStringFromRangeList( rPrintRanges, aRangeList, pDoc, ::formula::FormulaGrammar::CONV_OOO );
- }
- }
-
-@@ -2688,7 +2688,7 @@ void ScXMLExport::WriteShapes(const ScMyCell& rMyCell)
- Rectangle aEndRec(pDoc->GetMMRect(aItr->aEndAddress.Col(), aItr->aEndAddress.Row(),
- aItr->aEndAddress.Col(), aItr->aEndAddress.Row(), aItr->aEndAddress.Tab()));
- rtl::OUString sEndAddress;
-- ScRangeStringConverter::GetStringFromAddress(sEndAddress, aItr->aEndAddress, pDoc);
-+ ScRangeStringConverter::GetStringFromAddress(sEndAddress, aItr->aEndAddress, pDoc, ::formula::FormulaGrammar::CONV_OOO);
- AddAttribute(XML_NAMESPACE_TABLE, XML_END_CELL_ADDRESS, sEndAddress);
- if (bNegativePage)
- aEndPoint.X = -aEndRec.Right();
-@@ -2918,7 +2918,7 @@ void ScXMLExport::WriteDetective( const ScMyCell& rMyCell )
- {
- if( (aObjItr->eObjType == SC_DETOBJ_ARROW) || (aObjItr->eObjType == SC_DETOBJ_TOOTHERTAB))
- {
-- ScRangeStringConverter::GetStringFromRange( sString, aObjItr->aSourceRange, pDoc );
-+ ScRangeStringConverter::GetStringFromRange( sString, aObjItr->aSourceRange, pDoc, ::formula::FormulaGrammar::CONV_OOO );
- AddAttribute( XML_NAMESPACE_TABLE, XML_CELL_RANGE_ADDRESS, sString );
- }
- ScXMLConverter::GetStringFromDetObjType( sString, aObjItr->eObjType );
-@@ -3309,7 +3309,7 @@ void ScXMLExport::WriteScenario()
- AddAttribute(XML_NAMESPACE_TABLE, XML_IS_ACTIVE, aBuffer.makeStringAndClear());
- const ScRangeList* pRangeList = pDoc->GetScenarioRanges(static_cast<SCTAB>(nCurrentTable));
- rtl::OUString sRangeListStr;
-- ScRangeStringConverter::GetStringFromRangeList( sRangeListStr, pRangeList, pDoc );
-+ ScRangeStringConverter::GetStringFromRangeList( sRangeListStr, pRangeList, pDoc, ::formula::FormulaGrammar::CONV_OOO );
- AddAttribute(XML_NAMESPACE_TABLE, XML_SCENARIO_RANGES, sRangeListStr);
- if (sComment.Len())
- AddAttribute(XML_NAMESPACE_TABLE, XML_COMMENT, rtl::OUString(sComment));
-@@ -3351,10 +3351,10 @@ void ScXMLExport::WriteLabelRanges( const uno::Reference< container::XIndexAcces
- {
- OUString sRangeStr;
- table::CellRangeAddress aCellRange( xRange->getLabelArea() );
-- ScRangeStringConverter::GetStringFromRange( sRangeStr, aCellRange, pDoc );
-+ ScRangeStringConverter::GetStringFromRange( sRangeStr, aCellRange, pDoc, ::formula::FormulaGrammar::CONV_OOO );
- AddAttribute( XML_NAMESPACE_TABLE, XML_LABEL_CELL_RANGE_ADDRESS, sRangeStr );
- aCellRange = xRange->getDataArea();
-- ScRangeStringConverter::GetStringFromRange( sRangeStr, aCellRange, pDoc );
-+ ScRangeStringConverter::GetStringFromRange( sRangeStr, aCellRange, pDoc, ::formula::FormulaGrammar::CONV_OOO );
- AddAttribute( XML_NAMESPACE_TABLE, XML_DATA_CELL_RANGE_ADDRESS, sRangeStr );
- AddAttribute( XML_NAMESPACE_TABLE, XML_ORIENTATION, bColumn ? XML_COLUMN : XML_ROW );
- SvXMLElementExport aElem( *this, XML_NAMESPACE_TABLE, XML_LABEL_RANGE, sal_True, sal_True );
-@@ -3395,7 +3395,7 @@ void ScXMLExport::WriteNamedExpressions(const com::sun::star::uno::Reference <co
-
- OUString sOUBaseCellAddress;
- ScRangeStringConverter::GetStringFromAddress( sOUBaseCellAddress,
-- xNamedRange->getReferencePosition(), pDoc, ' ', sal_False, SCA_ABS_3D );
-+ xNamedRange->getReferencePosition(), pDoc, ::formula::FormulaGrammar::CONV_OOO, ' ', sal_False, SCA_ABS_3D );
- AddAttribute(XML_NAMESPACE_TABLE, XML_BASE_CELL_ADDRESS, sOUBaseCellAddress);
-
- sal_uInt16 nRangeIndex;
-@@ -3669,10 +3669,10 @@ void ScXMLExport::WriteConsolidation()
-
- sStrData = OUString();
- for( sal_Int32 nIndex = 0; nIndex < pCons->nDataAreaCount; ++nIndex )
-- ScRangeStringConverter::GetStringFromArea( sStrData, *pCons->ppDataAreas[ nIndex ], pDoc, sal_True );
-+ ScRangeStringConverter::GetStringFromArea( sStrData, *pCons->ppDataAreas[ nIndex ], pDoc, ::formula::FormulaGrammar::CONV_OOO, sal_True );
- AddAttribute( XML_NAMESPACE_TABLE, XML_SOURCE_CELL_RANGE_ADDRESSES, sStrData );
-
-- ScRangeStringConverter::GetStringFromAddress( sStrData, ScAddress( pCons->nCol, pCons->nRow, pCons->nTab ), pDoc );
-+ ScRangeStringConverter::GetStringFromAddress( sStrData, ScAddress( pCons->nCol, pCons->nRow, pCons->nTab ), pDoc, ::formula::FormulaGrammar::CONV_OOO );
- AddAttribute( XML_NAMESPACE_TABLE, XML_TARGET_CELL_ADDRESS, sStrData );
-
- if( pCons->bByCol && !pCons->bByRow )
-@@ -3742,7 +3742,7 @@ void ScXMLExport::GetChangeTrackViewSettings(uno::Sequence<beans::PropertyValue>
- pChangeProps[SC_SHOW_CHANGES_BY_RANGES].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ShowChangesByRanges"));
- pChangeProps[SC_SHOW_CHANGES_BY_RANGES].Value <<= pViewSettings->HasRange();
- rtl::OUString sRangeList;
-- ScRangeStringConverter::GetStringFromRangeList(sRangeList, &(pViewSettings->GetTheRangeList()), GetDocument());
-+ ScRangeStringConverter::GetStringFromRangeList(sRangeList, &(pViewSettings->GetTheRangeList()), GetDocument(), ::formula::FormulaGrammar::CONV_OOO);
- pChangeProps[SC_SHOW_CHANGES_BY_RANGES_LIST].Name = rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ShowChangesByRangesList"));
- pChangeProps[SC_SHOW_CHANGES_BY_RANGES_LIST].Value <<= sRangeList;
-
-diff --git sc/source/filter/xml/xmlfilti.cxx sc/source/filter/xml/xmlfilti.cxx
-index fabfb5c..6e29479 100644
---- sc/source/filter/xml/xmlfilti.cxx
-+++ sc/source/filter/xml/xmlfilti.cxx
-@@ -84,7 +84,7 @@ ScXMLFilterContext::ScXMLFilterContext( ScXMLImport& rImport,
- {
- ScRange aScRange;
- sal_Int32 nOffset(0);
-- if (ScRangeStringConverter::GetRangeFromString( aScRange, sValue, pDoc, nOffset ))
-+ if (ScRangeStringConverter::GetRangeFromString( aScRange, sValue, pDoc, ::formula::FormulaGrammar::CONV_OOO, nOffset ))
- {
- ScUnoConversion::FillApiAddress( aOutputPosition, aScRange.aStart );
- bCopyOutputData = sal_True;
-@@ -94,7 +94,7 @@ ScXMLFilterContext::ScXMLFilterContext( ScXMLImport& rImport,
- case XML_TOK_FILTER_ATTR_CONDITION_SOURCE_RANGE_ADDRESS :
- {
- sal_Int32 nOffset(0);
-- if (ScRangeStringConverter::GetRangeFromString( aConditionSourceRangeAddress, sValue, pDoc, nOffset ))
-+ if (ScRangeStringConverter::GetRangeFromString( aConditionSourceRangeAddress, sValue, pDoc, ::formula::FormulaGrammar::CONV_OOO, nOffset ))
- bConditionSourceRange = sal_True;
- }
- break;
-@@ -444,7 +444,7 @@ ScXMLDPFilterContext::ScXMLDPFilterContext( ScXMLImport& rImport,
- {
- ScRange aScRange;
- sal_Int32 nOffset(0);
-- if (ScRangeStringConverter::GetRangeFromString( aScRange, sValue, pDoc, nOffset ))
-+ if (ScRangeStringConverter::GetRangeFromString( aScRange, sValue, pDoc, ::formula::FormulaGrammar::CONV_OOO, nOffset ))
- {
- aOutputPosition = aScRange.aStart;
- bCopyOutputData = sal_True;
-@@ -454,7 +454,7 @@ ScXMLDPFilterContext::ScXMLDPFilterContext( ScXMLImport& rImport,
- case XML_TOK_FILTER_ATTR_CONDITION_SOURCE_RANGE_ADDRESS :
- {
- sal_Int32 nOffset(0);
-- if(ScRangeStringConverter::GetRangeFromString( aConditionSourceRangeAddress, sValue, pDoc, nOffset ))
-+ if(ScRangeStringConverter::GetRangeFromString( aConditionSourceRangeAddress, sValue, pDoc, ::formula::FormulaGrammar::CONV_OOO, nOffset ))
- bConditionSourceRange = sal_True;
- }
- break;
-diff --git sc/source/filter/xml/xmlimprt.cxx sc/source/filter/xml/xmlimprt.cxx
-index 59e279e..db5ebfc 100644
---- sc/source/filter/xml/xmlimprt.cxx
-+++ sc/source/filter/xml/xmlimprt.cxx
-@@ -2179,7 +2179,7 @@ void ScXMLImport::SetChangeTrackingViewSettings(const com::sun::star::uno::Seque
- if ((rChangeProps[i].Value >>= sRanges) && sRanges.getLength())
- {
- ScRangeList aRangeList;
-- ScRangeStringConverter::GetRangeListFromString(aRangeList, sRanges, GetDocument());
-+ ScRangeStringConverter::GetRangeListFromString(aRangeList, sRanges, GetDocument(), ::formula::FormulaGrammar::CONV_OOO);
- pViewSettings->SetTheRangeList(aRangeList);
- }
- }
-@@ -2678,8 +2678,8 @@ void ScXMLImport::SetLabelRanges()
- sal_Int32 nOffset1(0);
- sal_Int32 nOffset2(0);
-
-- if (ScRangeStringConverter::GetRangeFromString( aLabelRange, (*aItr)->sLabelRangeStr, GetDocument(), nOffset1 ) &&
-- ScRangeStringConverter::GetRangeFromString( aDataRange, (*aItr)->sDataRangeStr, GetDocument(), nOffset2 ))
-+ if (ScRangeStringConverter::GetRangeFromString( aLabelRange, (*aItr)->sLabelRangeStr, GetDocument(), ::formula::FormulaGrammar::CONV_OOO, nOffset1 ) &&
-+ ScRangeStringConverter::GetRangeFromString( aDataRange, (*aItr)->sDataRangeStr, GetDocument(), ::formula::FormulaGrammar::CONV_OOO, nOffset2 ))
- {
- if ( (*aItr)->bColumnOrientation )
- xColRanges->addNew( aLabelRange, aDataRange );
-@@ -2714,7 +2714,7 @@ void ScXMLImport::SetNamedRanges()
- {
- sal_Int32 nOffset(0);
- if (ScRangeStringConverter::GetAddressFromString(
-- aCellAddress, (*aItr)->sBaseCellAddress, GetDocument(), nOffset ))
-+ aCellAddress, (*aItr)->sBaseCellAddress, GetDocument(), ::formula::FormulaGrammar::CONV_OOO, nOffset ))
- {
- try
- {
-@@ -2755,7 +2755,7 @@ void ScXMLImport::SetNamedRanges()
- {
- sal_Int32 nOffset(0);
- if (ScRangeStringConverter::GetAddressFromString(
-- aCellAddress, (*aItr)->sBaseCellAddress, GetDocument(), nOffset ))
-+ aCellAddress, (*aItr)->sBaseCellAddress, GetDocument(), ::formula::FormulaGrammar::CONV_OOO, nOffset ))
- {
- uno::Reference <sheet::XNamedRange> xNamedRange(xNamedRanges->getByName((*aItr)->sName), uno::UNO_QUERY);
- if (xNamedRange.is())
-diff --git sc/source/filter/xml/xmlsceni.cxx sc/source/filter/xml/xmlsceni.cxx
-index 525c6de..566c510 100644
---- sc/source/filter/xml/xmlsceni.cxx
-+++ sc/source/filter/xml/xmlsceni.cxx
-@@ -114,7 +114,7 @@ ScXMLTableScenarioContext::ScXMLTableScenarioContext(
- case XML_TOK_TABLE_SCENARIO_ATTR_SCENARIO_RANGES:
- {
- ScRangeStringConverter::GetRangeListFromString(
-- aScenarioRanges, sValue, GetScImport().GetDocument() );
-+ aScenarioRanges, sValue, GetScImport().GetDocument(), ::formula::FormulaGrammar::CONV_OOO );
- }
- break;
- case XML_TOK_TABLE_SCENARIO_ATTR_COMMENT:
-diff --git sc/source/filter/xml/xmlsorti.cxx sc/source/filter/xml/xmlsorti.cxx
-index a2cddb8..fa65d38 100644
---- sc/source/filter/xml/xmlsorti.cxx
-+++ sc/source/filter/xml/xmlsorti.cxx
-@@ -93,7 +93,7 @@ ScXMLSortContext::ScXMLSortContext( ScXMLImport& rImport,
- {
- ScRange aScRange;
- sal_Int32 nOffset(0);
-- if (ScRangeStringConverter::GetRangeFromString( aScRange, sValue, GetScImport().GetDocument(), nOffset ))
-+ if (ScRangeStringConverter::GetRangeFromString( aScRange, sValue, GetScImport().GetDocument(), ::formula::FormulaGrammar::CONV_OOO, nOffset ))
- {
- ScUnoConversion::FillApiAddress( aOutputPosition, aScRange.aStart );
- bCopyOutputData = sal_True;
-diff --git sc/source/filter/xml/xmlstyle.cxx sc/source/filter/xml/xmlstyle.cxx
-index 6ef1632..555962d 100644
---- sc/source/filter/xml/xmlstyle.cxx
-+++ sc/source/filter/xml/xmlstyle.cxx
-@@ -708,8 +708,9 @@ void ScXMLAutoStylePoolP::exportStyleContent(
- rScXMLExport.AddAttribute(XML_NAMESPACE_STYLE, XML_CONDITION, sCondition);
- rScXMLExport.AddAttribute(XML_NAMESPACE_STYLE, XML_APPLY_STYLE_NAME, rScXMLExport.EncodeStyleName( sStyleName ));
- OUString sOUBaseAddress;
-+ ScDocument* pDoc = rScXMLExport.GetDocument();
- ScRangeStringConverter::GetStringFromAddress( sOUBaseAddress,
-- xSheetCondition->getSourcePosition(), rScXMLExport.GetDocument() );
-+ xSheetCondition->getSourcePosition(), pDoc, ::formula::FormulaGrammar::CONV_OOO );
- rScXMLExport.AddAttribute(XML_NAMESPACE_STYLE, XML_BASE_CELL_ADDRESS, sOUBaseAddress);
- SvXMLElementExport aMElem(rScXMLExport, XML_NAMESPACE_STYLE, XML_MAP, sal_True, sal_True);
- }
-@@ -762,7 +763,7 @@ void ScXMLAutoStylePoolP::exportStyleContent(
- rScXMLExport.AddAttribute(XML_NAMESPACE_STYLE, XML_APPLY_STYLE_NAME, rScXMLExport.EncodeStyleName( sStyleName ));
- OUString sOUBaseAddress;
- ScRangeStringConverter::GetStringFromAddress( sOUBaseAddress,
-- xSheetCondition->getSourcePosition(), rScXMLExport.GetDocument() );
-+ xSheetCondition->getSourcePosition(), rScXMLExport.GetDocument(), ::formula::FormulaGrammar::CONV_OOO );
- rScXMLExport.AddAttribute(XML_NAMESPACE_STYLE, XML_BASE_CELL_ADDRESS, sOUBaseAddress);
- SvXMLElementExport aMElem(rScXMLExport, XML_NAMESPACE_STYLE, XML_MAP, sal_True, sal_True);
- }
-diff --git sc/source/filter/xml/xmltabi.cxx sc/source/filter/xml/xmltabi.cxx
-index f665b56..fc09927 100644
---- sc/source/filter/xml/xmltabi.cxx
-+++ sc/source/filter/xml/xmltabi.cxx
-@@ -331,7 +331,7 @@ void ScXMLTableContext::EndElement()
- if( xPrintAreas.is() )
- {
- uno::Sequence< table::CellRangeAddress > aRangeList;
-- ScRangeStringConverter::GetRangeListFromString( aRangeList, sPrintRanges, pDoc );
-+ ScRangeStringConverter::GetRangeListFromString( aRangeList, sPrintRanges, pDoc, ::formula::FormulaGrammar::CONV_OOO );
- xPrintAreas->setPrintAreas( aRangeList );
- }
- }
-diff --git sc/source/ui/unoobj/chart2uno.cxx sc/source/ui/unoobj/chart2uno.cxx
-index 763cc1a..fb44a37 100644
---- sc/source/ui/unoobj/chart2uno.cxx
-+++ sc/source/ui/unoobj/chart2uno.cxx
-@@ -1008,7 +1008,7 @@ uno::Reference< chart2::data::XDataSequence > SAL_CALL
- return xResult;
-
- ScRangeListRef aRangeList = new ScRangeList();
-- if (ScRangeStringConverter::GetRangeListFromString( *aRangeList, aRangeRepresentation, m_pDocument, ';' ))
-+ if (ScRangeStringConverter::GetRangeListFromString( *aRangeList, aRangeRepresentation, m_pDocument, ::formula::FormulaGrammar::CONV_OOO, ';' ))
- xResult.set(new ScChart2DataSequence(m_pDocument, this, aRangeList));
-
- return xResult;
-@@ -1042,23 +1042,122 @@ rtl::OUString SAL_CALL ScChart2DataProvider::convertRangeToXML( const rtl::OUStr
- if( m_pDocument )
- {
- ScRangeList aList;
-- if( !ScRangeStringConverter::GetRangeListFromString(aList, sRangeRepresentation, m_pDocument, ';'))
-+ if( !ScRangeStringConverter::GetRangeListFromString(aList, sRangeRepresentation, m_pDocument, m_pDocument->GetAddressConvention(), ';'))
- throw lang::IllegalArgumentException();
-- ScRangeStringConverter::GetStringFromRangeList(sRet, &aList, m_pDocument);
-+ ScRangeStringConverter::GetStringFromRangeList(sRet, &aList, m_pDocument, ::formula::FormulaGrammar::CONV_OOO);
- }
-
- return sRet;
- }
-
-+static bool lcl_parseSingleRangeToken(
-+ ScRange& rRange, const rtl::OUString& rToken, ScDocument* pDoc, ::formula::FormulaGrammar::AddressConvention eConv,
-+ const sal_Unicode cQuote, bool bOldSyntaxWorkAround)
-+{
-+ sal_Int32 nSepPos = ScRangeStringConverter::IndexOf(rToken, ':', 0, cQuote);
-+ if (nSepPos >= 0)
-+ {
-+ // Cell range
-+ rtl::OUString aBeginCell = rToken.copy(0, nSepPos);
-+ rtl::OUString aEndCell = rToken.copy(nSepPos+1);
-+
-+ if (!aBeginCell.getLength() || !aEndCell.getLength())
-+ // both cell addresses must exist for this to work.
-+ return false;
-+
-+ if (bOldSyntaxWorkAround && aEndCell.getStr()[0] == '.')
-+ {
-+ // workaround for old syntax (probably pre-chart2 age?)
-+ // e.g. Sheet1.A1:.B2
-+ sal_Int32 nDotPos = ScRangeStringConverter::IndexOf(aBeginCell, sal_Unicode('.'), 0, cQuote);
-+ rtl::OUString aTabName = aBeginCell.copy(0, nDotPos);
-+ aEndCell = aTabName + aEndCell;
-+ }
-+ USHORT nRes = rRange.aStart.Parse(aBeginCell, pDoc, eConv);
-+ if ((nRes & SCA_VALID) != SCA_VALID)
-+ return false;
-+
-+ nRes = rRange.aEnd.Parse(aEndCell, pDoc, eConv);
-+ if ((nRes & SCA_VALID) != SCA_VALID)
-+ return false;
-+ }
-+ else
-+ {
-+ USHORT nRes = rRange.aStart.Parse(rToken, pDoc, eConv);
-+ if ((nRes & SCA_VALID) != SCA_VALID)
-+ return false;
-+
-+ rRange.aEnd = rRange.aStart;
-+ }
-+ return true;
-+}
-+
- rtl::OUString SAL_CALL ScChart2DataProvider::convertRangeFromXML( const rtl::OUString& sXMLRange )
- throw ( uno::RuntimeException, lang::IllegalArgumentException )
- {
-- // #i74062# When loading flat XML, this is called before the referenced sheets are in the document,
-- // so the conversion has to take place directly with the strings, without looking up the sheets.
--
++ FormulaGrammar::AddressConvention eConv = pDoc->GetAddressConvention();
++ const OUString aRangeSep = GetScCompilerNativeSymbol(ocSep);
const sal_Unicode cSep = ' ';
const sal_Unicode cQuote = '\'';
-+ if (m_pDocument)
-+ {
-+ ::formula::FormulaGrammar::AddressConvention eConvUI = m_pDocument->GetAddressConvention();
-+ ScRange aRange;
-+
-+ rtl::OUString aRetStr;
-+ sal_Int32 nOffset = 0;
-+ bool bFirst = true;
-+
-+ while (nOffset >= 0)
-+ {
-+ rtl::OUString aToken;
-+ ScRangeStringConverter::GetTokenByOffset(aToken, sXMLRange, nOffset, cSep, cQuote);
-+ if (nOffset < 0)
-+ // No more tokens to process.
-+ break;
-+
-+ // Chart always saves ranges using CONV_OOO convention.
-+ bool bSuccess = lcl_parseSingleRangeToken(aRange, aToken, m_pDocument, ::formula::FormulaGrammar::CONV_OOO, cQuote, true);
+@@ -903,13 +926,37 @@ void ScRangeStringConverter::GetStringFromXMLRangeString( OUString& rString, con
+ rtl::OUString aBuf;
+ USHORT nRet = aCell1.Parse(aBeginCell, pDoc, FormulaGrammar::CONV_OOO, &aExtInfo1);
+ if ((nRet & SCA_VALID) != SCA_VALID)
++ {
+ // first cell is invalid.
++#if CHART_ADDRESS_CONV_WORKAROUND
++ if (eConv == FormulaGrammar::CONV_OOO)
++ continue;
+
-+ if (bSuccess)
-+ {
-+ String aNewToken;
-+ aRange.Format(aNewToken, SCA_ABS_3D, m_pDocument, ::formula::FormulaGrammar::CONV_OOO);
-+ if (bFirst)
-+ bFirst = false;
-+ else
-+ aRetStr += rtl::OUString::createFromAscii(";");
-+ aRetStr += aNewToken;
-+ continue;
++ nRet = aCell1.Parse(aBeginCell, pDoc, eConv, &aExtInfo1);
++ if ((nRet & SCA_VALID) != SCA_VALID)
++ // first cell is really invalid.
++ continue;
++#else
+ continue;
++#endif
+ }
-+
-+ if (eConvUI == ::formula::FormulaGrammar::CONV_OOO)
-+ // convertion failed !
-+ continue;
-+
+
+ nRet = aCell2.Parse(aEndCell, pDoc, FormulaGrammar::CONV_OOO, &aExtInfo2);
+ if ((nRet & SCA_VALID) != SCA_VALID)
++ {
+ // second cell is invalid.
+#if CHART_ADDRESS_CONV_WORKAROUND
-+ // Chart always expressed a range as [start cell] : [end cell]
-+ // regardless of address conventions when stored in ODF. This means,
-+ // for example, Sheet1!A1:A3 in Excel A1 syntax was expressed as
-+ // Sheet1!A1:Sheet1!A3.
-+ bSuccess = lcl_parseSingleRangeToken(aRange, aToken, m_pDocument, eConvUI, cQuote, false);
-+ if (!bSuccess)
-+ continue;
++ if (eConv == FormulaGrammar::CONV_OOO)
++ continue;
+
-+ String aNewToken;
-+ aRange.Format(aNewToken, SCA_ABS_3D, m_pDocument, ::formula::FormulaGrammar::CONV_OOO);
-+ if (bFirst)
-+ bFirst = false;
-+ else
-+ aRetStr += rtl::OUString::createFromAscii(";");
-+ aRetStr += aNewToken;
++ nRet = aCell2.Parse(aEndCell, pDoc, eConv, &aExtInfo2);
++ if ((nRet & SCA_VALID) != SCA_VALID)
++ // second cell is really invalid.
++ continue;
++#else
+ continue;
+#endif
-+ }
-+ return aRetStr;
-+ }
-+
-+ // #i74062# When loading flat XML, this is called before the referenced sheets are in the document,
-+ // so the conversion has to take place directly with the strings, without looking up the sheets.
-+
- rtl::OUStringBuffer sRet;
- sal_Int32 nOffset = 0;
- while( nOffset >= 0 )
-diff --git sc/source/ui/unoobj/docuno.cxx sc/source/ui/unoobj/docuno.cxx
-index 20fa9a3..58540df 100644
---- sc/source/ui/unoobj/docuno.cxx
-+++ sc/source/ui/unoobj/docuno.cxx
-@@ -2224,7 +2224,8 @@ uno::Sequence < uno::Reference< table::XCellRange > > SAL_CALL ScTableSheetsObj:
- uno::Sequence < uno::Reference < table::XCellRange > > xRet;
++ }
- ScRangeList aRangeList;
-- if (ScRangeStringConverter::GetRangeListFromString( aRangeList, aRange, pDocShell->GetDocument(), ';' ))
-+ ScDocument* pDoc = pDocShell->GetDocument();
-+ if (ScRangeStringConverter::GetRangeListFromString( aRangeList, aRange, pDoc, ::formula::FormulaGrammar::CONV_OOO, ';' ))
- {
- sal_Int32 nCount = aRangeList.Count();
- if (nCount)
-diff --git sc/source/ui/view/tabview3.cxx sc/source/ui/view/tabview3.cxx
-index dc18acd..cd722eb 100644
---- sc/source/ui/view/tabview3.cxx
-+++ sc/source/ui/view/tabview3.cxx
-@@ -2240,8 +2240,9 @@ void ScTabView::DoChartSelection(
- {
- Color aSelColor( rHilightRanges[i].PreferredColor );
- ScRangeList aRangeList;
-+ ScDocument* pDoc = aViewData.GetDocShell()->GetDocument();
- if( ScRangeStringConverter::GetRangeListFromString(
-- aRangeList, rHilightRanges[i].RangeRepresentation, aViewData.GetDocShell()->GetDocument(), ';' ))
-+ aRangeList, rHilightRanges[i].RangeRepresentation, pDoc, pDoc->GetAddressConvention(), ';' ))
- {
- for ( ScRangePtr p = aRangeList.First(); p; p = aRangeList.Next())
- {
+ if (aExtInfo1.mnFileId != aExtInfo2.mnFileId || aExtInfo1.mbExternal != aExtInfo2.mbExternal)
+ // external info inconsistency.
+@@ -920,7 +967,7 @@ void ScRangeStringConverter::GetStringFromXMLRangeString( OUString& rString, con
+ if (bFirst)
+ bFirst = false;
+ else
+- aRetStr.appendAscii(";");
++ aRetStr.append(aRangeSep);
+
+ lcl_appendCellRangeAddress(aRetStr, pDoc, aCell1, aCell2, aExtInfo1, aExtInfo2);
+ }
+@@ -931,14 +978,22 @@ void ScRangeStringConverter::GetStringFromXMLRangeString( OUString& rString, con
+ ScAddress aCell;
+ USHORT nRet = aCell.Parse(aToken, pDoc, ::formula::FormulaGrammar::CONV_OOO, &aExtInfo);
+ if ((nRet & SCA_VALID) != SCA_VALID)
++ {
++#if CHART_ADDRESS_CONV_WORKAROUND
++ nRet = aCell.Parse(aToken, pDoc, eConv, &aExtInfo);
++ if ((nRet & SCA_VALID) != SCA_VALID)
++ continue;
++#else
+ continue;
++#endif
++ }
+
+ // Looks good!
+
+ if (bFirst)
+ bFirst = false;
+ else
+- aRetStr.appendAscii(";");
++ aRetStr.appendAscii(aRangeSep);
+
+ lcl_appendCellAddress(aRetStr, pDoc, aCell, aExtInfo);
+ }
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]