rpms/openoffice.org/devel openoffice.org.spec, 1.1934, 1.1935 workspace.calc51.patch, 1.2, 1.3 openoffice.org-3.1.0.ooo99250.sc.autooutline-reflists.patch, 1.3, NONE

Caolan McNamara caolanm at fedoraproject.org
Fri Jun 12 13:58:02 UTC 2009


Author: caolanm

Update of /cvs/pkgs/rpms/openoffice.org/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv32102

Modified Files:
	openoffice.org.spec workspace.calc51.patch 
Removed Files:
	openoffice.org-3.1.0.ooo99250.sc.autooutline-reflists.patch 
Log Message:
merge accepted patch into upstream workspaces


Index: openoffice.org.spec
===================================================================
RCS file: /cvs/pkgs/rpms/openoffice.org/devel/openoffice.org.spec,v
retrieving revision 1.1934
retrieving revision 1.1935
diff -u -p -r1.1934 -r1.1935
--- openoffice.org.spec	12 Jun 2009 07:59:11 -0000	1.1934
+++ openoffice.org.spec	12 Jun 2009 13:57:32 -0000	1.1935
@@ -1,6 +1,6 @@
 %define oootag OOO310
 %define ooomilestone 13
-%define rh_rpm_release 1
+%define rh_rpm_release 2
 
 # rhbz#465664 jar-repacking breaks help by reordering META-INF/MANIFEST.MF
 %define __jar_repack %{nil}
@@ -118,39 +118,38 @@ Patch40: openoffice.org-2.2.0.gccXXXXX.s
 Patch41: workspace.fwk103.patch
 Patch42: workspace.hb18.patch
 Patch43: openoffice.org-3.1.0.oooXXXXX.gcc44.buildfixes.patch
-Patch44: openoffice.org-3.1.0.ooo99250.sc.autooutline-reflists.patch
-Patch45: workspace.vcl100.patch
-Patch46: workspace.xmergeclean.patch
-Patch47: workspace.mba32issues02.patch
-Patch48: workspace.impress169.patch
-Patch49: workspace.os130.patch
-Patch50: openoffice.org-3.1.0.ooo99541.sw.reopen.flat.addrbooks.patch
-Patch51: openoffice.org-3.1.0.oooXXXXX.solenv.allowmissing.patch
-Patch52: workspace.cmcfixes57.patch
-Patch53: openoffice.org-3.1.0.ooo100273.fix-utf8-hyphenation.patch
-Patch54: ooo-build.ooo2497.filter.svg.patch
-Patch55: openoffice.org-3.1.0.ooo100353.svx.rtfbrackets.patch
-Patch56: openoffice.org-3.1.0.ooo61927.sw.ww6.unicodefontencoding.patch
-Patch57: workspace.impress171.patch
-Patch58: workspace.vcl101.patch
-Patch59: workspace.slideshow1.patch
-Patch60: openoffice.org-3.1.0.ooo90439.sfx2.qstart.hackaround.patch
-Patch61: openoffice.org-3.1.0.ooo101274.opening-a-directory.patch
-Patch62: openoffice.org-3.1.0.ooo101354.filter.xhtml.do-not-label-list-headers.patch
-Patch63: openoffice.org-3.1.0.ooo101355.filter.no-variables-in-keys.patch
-Patch64: openoffice.org-3.1.0.ooo101379.vcl.qstart.SM.patch
-Patch65: workspace.evoab2def.patch
-Patch66: openoffice.org-3.1.0.ooo100469.sal.ia64_arm.patch
-Patch67: openoffice.org-3.1.0.ooo101566.svtools.nodefaultwmfwidth.patch
-Patch68: openoffice.org-3.1.0.ooo101567.i18npool.mailocaledata.patch
-Patch69: workspace.unifypaper01.patch
-Patch70: openoffice.org-3.1.0.ooo102473.ww8.fix-restartlinenumbering.patch
-Patch71: openoffice.org-3.1.0.ooo102490.sw.ww8.notab_before_nocontent.patch
-Patch72: openoffice.org-3.1.0.ooo102061.sc.cellanchoring.patch
-Patch73: openoffice.org-3.1.0.ooo102142.sd.resleak.patch
-Patch74: workspace.calc51.patch
-Patch75: openoffice.org-3.1.1-ooo102679.sdext.buildfix.patch
-Patch76: openoffice.org-2.0.0.ooo46270.svx.search-dialog.no-find-all-in-draw.patch
+Patch44: workspace.vcl100.patch
+Patch45: workspace.xmergeclean.patch
+Patch46: workspace.mba32issues02.patch
+Patch47: workspace.impress169.patch
+Patch48: workspace.os130.patch
+Patch49: openoffice.org-3.1.0.ooo99541.sw.reopen.flat.addrbooks.patch
+Patch50: openoffice.org-3.1.0.oooXXXXX.solenv.allowmissing.patch
+Patch51: workspace.cmcfixes57.patch
+Patch52: openoffice.org-3.1.0.ooo100273.fix-utf8-hyphenation.patch
+Patch53: ooo-build.ooo2497.filter.svg.patch
+Patch54: openoffice.org-3.1.0.ooo100353.svx.rtfbrackets.patch
+Patch55: openoffice.org-3.1.0.ooo61927.sw.ww6.unicodefontencoding.patch
+Patch56: workspace.impress171.patch
+Patch57: workspace.vcl101.patch
+Patch58: workspace.slideshow1.patch
+Patch59: openoffice.org-3.1.0.ooo90439.sfx2.qstart.hackaround.patch
+Patch60: openoffice.org-3.1.0.ooo101274.opening-a-directory.patch
+Patch61: openoffice.org-3.1.0.ooo101354.filter.xhtml.do-not-label-list-headers.patch
+Patch62: openoffice.org-3.1.0.ooo101355.filter.no-variables-in-keys.patch
+Patch63: openoffice.org-3.1.0.ooo101379.vcl.qstart.SM.patch
+Patch64: workspace.evoab2def.patch
+Patch65: openoffice.org-3.1.0.ooo100469.sal.ia64_arm.patch
+Patch66: openoffice.org-3.1.0.ooo101566.svtools.nodefaultwmfwidth.patch
+Patch67: openoffice.org-3.1.0.ooo101567.i18npool.mailocaledata.patch
+Patch68: workspace.unifypaper01.patch
+Patch69: openoffice.org-3.1.0.ooo102473.ww8.fix-restartlinenumbering.patch
+Patch70: openoffice.org-3.1.0.ooo102490.sw.ww8.notab_before_nocontent.patch
+Patch71: openoffice.org-3.1.0.ooo102061.sc.cellanchoring.patch
+Patch72: openoffice.org-3.1.0.ooo102142.sd.resleak.patch
+Patch73: workspace.calc51.patch
+Patch74: openoffice.org-3.1.1-ooo102679.sdext.buildfix.patch
+Patch75: openoffice.org-2.0.0.ooo46270.svx.search-dialog.no-find-all-in-draw.patch
 
 %define python_py_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(0)")
 %define instdir %{_libdir}
@@ -1626,39 +1625,38 @@ cat %{PATCH11} >> svtools/source/dialogs
 %patch41 -p1 -b .workspace.fwk103.patch
 %patch42 -p0 -b .workspace.hb18.patch
 %patch43 -p1 -b .oooXXXXX.gcc44.buildfixes.patch
-%patch44 -p0 -b .ooo99250.sc.autooutline-reflists.patch
-%patch45 -p0 -b .workspace.vcl100.patch
-%patch46 -p0 -b .workspace.xmergeclean.patch
-%patch47 -p0 -b .workspace.mba32issues02.patch
-%patch48 -p0 -b .workspace.impress169.patch
-%patch49 -p0 -b .workspace.os130.patch
-%patch50 -p0 -b .ooo99541.sw.reopen.flat.addrbooks.patch
-%patch51 -p1 -b .oooXXXXX.solenv.allowmissing.patch
-%patch52 -p0 -b .workspace.cmcfixes57.patch
-%patch53 -p0 -b .ooo100273.fix-utf8-hyphenation.patch
-%patch54 -p1 -b .ooo2497.filter.svg.patch
-%patch55 -p0 -b .ooo100353.svx.rtfbrackets.patch
-%patch56 -p1 -b .ooo61927.sw.ww6.unicodefontencoding.patch
-%patch57 -p1 -b .workspace.impress171.patch
-%patch58 -p1 -b .workspace.vcl101.patch
-%patch59 -p2 -b .workspace.slideshow1.patch
-%patch60 -p0 -b .ooo90439.sfx2.qstart.hackaround.patch
-%patch61 -p0 -b .ooo101274.opening-a-directory.patch
-%patch62 -p0 -b .ooo101354.filter.xhtml.do-not-label-list-headers.patch
-%patch63 -p0 -b .ooo101355.filter.no-variables-in-keys.patch
-%patch64 -p0 -b .ooo101379.vcl.qstart.SM.patch
-%patch65 -p0 -b .workspace.evoab2def.patch
-%patch66 -p0 -b .ooo100469.sal.ia64_arm.patch
-%patch67 -p0 -b .ooo101566.svtools.nodefaultwmfwidth.patch
-%patch68 -p0 -b .ooo101567.i18npool.mailocaledata.patch
-%patch69 -p1
-%patch70 -p0 -b .ooo102473.ww8.fix-restartlinenumbering.patch
-%patch71 -p0 -b .ooo102490.sw.ww8.notab_before_nocontent.patch
-%patch72 -p0 -b .ooo102061.sc.cellanchoring.patch
-%patch73 -p0 -b .ooo102142.sd.resleak.patch
-%patch74 -p0 -b .workspace.calc51.patch
-%patch75 -p0 -b .ooo102679.sdext.buildfix.patch
-%patch76 -p0 -b .ooo46270.svx.search-dialog.no-find-all-in-draw.patch
+%patch44 -p0 -b .workspace.vcl100.patch
+%patch45 -p0 -b .workspace.xmergeclean.patch
+%patch46 -p0 -b .workspace.mba32issues02.patch
+%patch47 -p0 -b .workspace.impress169.patch
+%patch48 -p0 -b .workspace.os130.patch
+%patch49 -p0 -b .ooo99541.sw.reopen.flat.addrbooks.patch
+%patch50 -p1 -b .oooXXXXX.solenv.allowmissing.patch
+%patch51 -p0 -b .workspace.cmcfixes57.patch
+%patch52 -p0 -b .ooo100273.fix-utf8-hyphenation.patch
+%patch53 -p1 -b .ooo2497.filter.svg.patch
+%patch54 -p0 -b .ooo100353.svx.rtfbrackets.patch
+%patch55 -p1 -b .ooo61927.sw.ww6.unicodefontencoding.patch
+%patch56 -p1 -b .workspace.impress171.patch
+%patch57 -p1 -b .workspace.vcl101.patch
+%patch58 -p2 -b .workspace.slideshow1.patch
+%patch59 -p0 -b .ooo90439.sfx2.qstart.hackaround.patch
+%patch60 -p0 -b .ooo101274.opening-a-directory.patch
+%patch61 -p0 -b .ooo101354.filter.xhtml.do-not-label-list-headers.patch
+%patch62 -p0 -b .ooo101355.filter.no-variables-in-keys.patch
+%patch63 -p0 -b .ooo101379.vcl.qstart.SM.patch
+%patch64 -p0 -b .workspace.evoab2def.patch
+%patch65 -p0 -b .ooo100469.sal.ia64_arm.patch
+%patch66 -p0 -b .ooo101566.svtools.nodefaultwmfwidth.patch
+%patch67 -p0 -b .ooo101567.i18npool.mailocaledata.patch
+%patch68 -p1
+%patch69 -p0 -b .ooo102473.ww8.fix-restartlinenumbering.patch
+%patch70 -p0 -b .ooo102490.sw.ww8.notab_before_nocontent.patch
+%patch71 -p0 -b .ooo102061.sc.cellanchoring.patch
+%patch72 -p0 -b .ooo102142.sd.resleak.patch
+%patch73 -p0 -b .workspace.calc51.patch
+%patch74 -p0 -b .ooo102679.sdext.buildfix.patch
+%patch75 -p0 -b .ooo46270.svx.search-dialog.no-find-all-in-draw.patch
 
 %build
 echo build start time is `date`, diskspace: `df -h . | tail -n 1`
@@ -4168,10 +4166,9 @@ fi
     unopkg list --shared > /dev/null 2>&1 || :
 
 %changelog
-* Fri Jun 10 2009 Caolán McNamara <caolanm at redhat.com> - 1:3.1.1-13.2
+* Fri Jun 12 2009 Caolán McNamara <caolanm at redhat.com> - 1:3.1.1-13.2
 - add openoffice.org-2.0.0.ooo46270.svx.search-dialog.no-find-all-in-draw.patch
-- Related: rhbz#472853 openoffice.org-3.1.0.ooo99250.sc.autooutline-reflists.patch
-- 
+- Related: rhbz#472853 updated openoffice.org-3.1.0.ooo99250.sc.autooutline-reflists.patch
 
 * Thu Jun 09 2009 Caolán McNamara <caolanm at redhat.com> - 1:3.1.1-13.1
 - latest version

workspace.calc51.patch:

Index: workspace.calc51.patch
===================================================================
RCS file: /cvs/pkgs/rpms/openoffice.org/devel/workspace.calc51.patch,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -r1.2 -r1.3
--- workspace.calc51.patch	11 Jun 2009 09:37:37 -0000	1.2
+++ workspace.calc51.patch	12 Jun 2009 13:57:32 -0000	1.3
@@ -85,3 +85,358 @@ diff -ru sc.orig/source/core/tool/progre
  										pUndoData ) );
  			}
  
+Index: sc/source/core/data/table2.cxx
+===================================================================
+--- sc/source/core/data/table2.cxx	(revision 272843)
++++ sc/source/core/data/table2.cxx	(working copy)
+@@ -2667,7 +2667,7 @@
+ 					pCell = aCol[nCol].GetCell( nRow );
+ 					if (pCell)
+ 						if ( pCell->GetCellType() == CELLTYPE_FORMULA )
+-							if (((ScFormulaCell*)pCell)->HasOneReference( aRef ))
++							if (((ScFormulaCell*)pCell)->HasRefListExpressibleAsOneReference( aRef ))
+ 								if ( aRef.aStart.Col() == nCol && aRef.aEnd.Col() == nCol &&
+ 									 aRef.aStart.Tab() == nTab && aRef.aEnd.Tab() == nTab &&
+ 									 DiffSign( aRef.aStart.Row(), nRow ) ==
+@@ -2698,7 +2698,7 @@
+ 			while ( aIter.Next( nRow, pCell ) && !bFound )
+ 			{
+ 				if ( pCell->GetCellType() == CELLTYPE_FORMULA )
+-					if (((ScFormulaCell*)pCell)->HasOneReference( aRef ))
++					if (((ScFormulaCell*)pCell)->HasRefListExpressibleAsOneReference( aRef ))
+ 						if ( aRef.aStart.Row() == nRow && aRef.aEnd.Row() == nRow &&
+ 							 aRef.aStart.Tab() == nTab && aRef.aEnd.Tab() == nTab &&
+ 							 DiffSign( aRef.aStart.Col(), nCol ) ==
+Index: sc/source/core/data/cell2.cxx
+===================================================================
+--- sc/source/core/data/cell2.cxx	(revision 272843)
++++ sc/source/core/data/cell2.cxx	(working copy)
+@@ -34,6 +34,11 @@
+ 
+ 
+ // INCLUDE ---------------------------------------------------------------
++#include <algorithm>
++#include <deque>
++
++#include <boost/bind.hpp>
++
+ #include <vcl/mapmod.hxx>
+ #include <svx/editobj.hxx>
+ #include <svx/editstat.hxx>
+@@ -175,6 +180,222 @@
+ 
+ // ============================================================================
+ 
++namespace
++{
++
++using std::deque;
++
++typedef SCCOLROW(*DimensionSelector)(const ScSingleRefData&);
++
++
++static SCCOLROW lcl_GetCol(const ScSingleRefData& rData)
++{
++    return rData.nCol;
++}
++
++
++static SCCOLROW lcl_GetRow(const ScSingleRefData& rData)
++{
++    return rData.nRow;
++}
++
++
++static SCCOLROW lcl_GetTab(const ScSingleRefData& rData)
++{
++    return rData.nTab;
++}
++
++
++/** Check if both references span the same range in selected dimension.
++ */
++static bool
++lcl_checkRangeDimension(
++        const SingleDoubleRefProvider& rRef1,
++        const SingleDoubleRefProvider& rRef2,
++        const DimensionSelector aWhich)
++{
++    return
++        aWhich(rRef1.Ref1) == aWhich(rRef2.Ref1)
++        && aWhich(rRef1.Ref2) == aWhich(rRef2.Ref2);
++}
++
++
++static bool
++lcl_checkRangeDimensions(
++        const SingleDoubleRefProvider& rRef1,
++        const SingleDoubleRefProvider& rRef2,
++        bool& bCol, bool& bRow, bool& bTab)
++{
++    const bool bSameCols(lcl_checkRangeDimension(rRef1, rRef2, lcl_GetCol));
++    const bool bSameRows(lcl_checkRangeDimension(rRef1, rRef2, lcl_GetRow));
++    const bool bSameTabs(lcl_checkRangeDimension(rRef1, rRef2, lcl_GetTab));
++        
++    // Test if exactly two dimensions are equal
++    if (!(bSameCols ^ bSameRows ^ bSameTabs)
++            && (bSameCols || bSameRows || bSameTabs))
++    {
++        bCol = !bSameCols;
++        bRow = !bSameRows;
++        bTab = !bSameTabs;
++        return true;
++    }
++    return false;
++}
++
++
++/** Check if references in given reference list can possibly
++    form a range. To do that, two of their dimensions must be the same.
++ */
++static bool
++lcl_checkRangeDimensions(
++        const deque<ScToken*>::const_iterator aBegin,
++        const deque<ScToken*>::const_iterator aEnd,
++        bool& bCol, bool& bRow, bool& bTab)
++{
++    deque<ScToken*>::const_iterator aCur(aBegin);
++    ++aCur;
++    const SingleDoubleRefProvider aRef(**aBegin);
++    bool bOk(false);
++    {
++        const SingleDoubleRefProvider aRefCur(**aCur);
++        bOk = lcl_checkRangeDimensions(aRef, aRefCur, bCol, bRow, bTab);
++    }
++    while (bOk && aCur != aEnd)
++    {
++        const SingleDoubleRefProvider aRefCur(**aCur);
++        bool bColTmp(false);
++        bool bRowTmp(false);
++        bool bTabTmp(false);
++        bOk = lcl_checkRangeDimensions(aRef, aRefCur, bColTmp, bRowTmp, bTabTmp);
++        bOk = bOk && (bCol == bColTmp && bRow == bRowTmp && bTab == bTabTmp);
++        ++aCur;
++    }
++
++    if (bOk && aCur == aEnd)
++    {
++        bCol = bCol;
++        bRow = bRow;
++        bTab = bTab;
++        return true;
++    }
++    return false;
++}
++
++
++bool
++lcl_lessReferenceBy(
++        const ScToken* const pRef1, const ScToken* const pRef2,
++        const DimensionSelector aWhich)
++{
++    const SingleDoubleRefProvider rRef1(*pRef1);
++    const SingleDoubleRefProvider rRef2(*pRef2);
++    return aWhich(rRef1.Ref1) < aWhich(rRef2.Ref1);
++}
++
++
++/** Returns true if range denoted by token pRef2 starts immediately after
++    range denoted by token pRef1. Dimension, in which the comparison takes
++    place, is given by aWhich.
++ */
++bool
++lcl_isImmediatelyFollowing(
++        const ScToken* const pRef1, const ScToken* const pRef2,
++        const DimensionSelector aWhich)
++{
++    const SingleDoubleRefProvider rRef1(*pRef1);
++    const SingleDoubleRefProvider rRef2(*pRef2);
++    return aWhich(rRef2.Ref1) - aWhich(rRef1.Ref2) == 1;
++}
++
++
++static bool
++lcl_checkIfAdjacent(
++        const deque<ScToken*>& rReferences,
++        const DimensionSelector aWhich)
++{
++    typedef deque<ScToken*>::const_iterator Iter;
++    Iter aBegin(rReferences.begin());
++    Iter aEnd(rReferences.end());
++    Iter aBegin1(aBegin);
++    ++aBegin1, --aEnd;
++    return std::equal(
++            aBegin, aEnd, aBegin1,
++            boost::bind(lcl_isImmediatelyFollowing, _1, _2, aWhich));
++}
++
++
++static void
++lcl_fillRangeFromRefList(
++        const deque<ScToken*>& rReferences, ScRange& rRange)
++{
++    const ScSingleRefData aStart(
++            SingleDoubleRefProvider(*rReferences.front()).Ref1);
++    rRange.aStart.Set(aStart.nCol, aStart.nRow, aStart.nTab);
++    const ScSingleRefData aEnd(
++            SingleDoubleRefProvider(*rReferences.back()).Ref2);
++    rRange.aEnd.Set(aEnd.nCol, aEnd.nRow, aEnd.nTab);
++}
++
++
++static bool
++lcl_refListFormsOneRange(
++        const ScAddress& aPos, deque<ScToken*>& rReferences,
++        ScRange& rRange)
++{
++    std::for_each(
++            rReferences.begin(), rReferences.end(),
++            bind(&ScToken::CalcAbsIfRel, _1, aPos))
++        ;
++    if (rReferences.size() == 1) {
++        lcl_fillRangeFromRefList(rReferences, rRange);
++        return true;
++    }
++
++    bool bCell(false);
++    bool bRow(false);
++    bool bTab(false);
++    if (lcl_checkRangeDimensions(rReferences.begin(), rReferences.end(),
++            bCell, bRow, bTab))
++    {
++        DimensionSelector aWhich;
++        if (bCell)
++        {
++            aWhich = lcl_GetCol;
++        }
++        else if (bRow)
++        {
++            aWhich = lcl_GetRow;
++        }
++        else if (bTab)
++        {
++            aWhich = lcl_GetTab;
++        }
++        else
++        {
++            OSL_ENSURE(false, "lcl_checkRangeDimensions shouldn't allow that!");
++        }
++        // Sort the references by start of range
++        std::sort(rReferences.begin(), rReferences.end(),
++                boost::bind(lcl_lessReferenceBy, _1, _2, aWhich));
++        if (lcl_checkIfAdjacent(rReferences, aWhich))
++        {
++            lcl_fillRangeFromRefList(rReferences, rRange);
++            return true;
++        }
++    }
++    return false;
++}
++
++
++bool lcl_isReference(const FormulaToken& rToken)
++{
++    return
++        rToken.GetType() == svSingleRef ||
++        rToken.GetType() == svDoubleRef;
++}
++
++}
++
+ BOOL ScFormulaCell::IsEmpty()
+ {
+     if (IsDirtyOrInTableOpDirty() && pDocument->GetAutoCalc())
+@@ -449,6 +670,52 @@
+         return FALSE;
+ }
+ 
++bool
++ScFormulaCell::HasRefListExpressibleAsOneReference(ScRange& rRange) const
++{
++    /* If there appears just one reference in the formula, it's the same
++       as HasOneReference(). If there are more of them, they can denote
++       one range if they are (sole) arguments of one function.
++       Union of these references must form one range and their
++       intersection must be empty set.
++    */
++    pCode->Reset();
++    // Get first reference, if any
++    ScToken* const pFirstReference(
++            dynamic_cast<ScToken*>(pCode->GetNextReferenceRPN()));
++    if (pFirstReference)
++    {
++        // Collect all consecutive references, starting by the one
++        // already found
++        std::deque<ScToken*> aReferences;
++        aReferences.push_back(pFirstReference);
++        FormulaToken* pToken(pCode->NextRPN());
++        FormulaToken* pFunction(0);
++        while (pToken)
++        {
++            if (lcl_isReference(*pToken))
++            {
++                aReferences.push_back(dynamic_cast<ScToken*>(pToken));
++                pToken = pCode->NextRPN();
++            }
++            else
++            {
++                if (pToken->IsFunction())
++                {
++                    pFunction = pToken;
++                }
++                break;
++            }
++        }
++        if (pFunction && !pCode->GetNextReferenceRPN()
++                && (pFunction->GetParamCount() == aReferences.size()))
++        {
++            return lcl_refListFormsOneRange(aPos, aReferences, rRange);
++        }
++    }
++    return false;
++}
++
+ BOOL ScFormulaCell::HasRelNameReference() const
+ {
+     pCode->Reset();
+Index: sc/inc/cell.hxx
+===================================================================
+--- sc/inc/cell.hxx	(revision 272843)
++++ sc/inc/cell.hxx	(working copy)
+@@ -387,6 +387,15 @@
+     inline USHORT   GetSeenInIteration() const { return nSeenInIteration; }
+ 
+ 	BOOL			HasOneReference( ScRange& r ) const;
++    /* Checks if the formula contains reference list that can be
++       expressed by one reference (like A1;A2;A3:A5 -> A1:A5). The
++       reference list is not required to be sorted (i.e. A3;A1;A2 is
++       still recognized as A1:A3), but no overlapping is allowed.
++       If one reference is recognized, the rRange is filled.
++
++       It is similar to HasOneReference(), but more general.
++     */
++    bool HasRefListExpressibleAsOneReference(ScRange& rRange) const;
+ 	BOOL			HasRelNameReference() const;
+ 	BOOL			HasColRowName() const;
+ 
+Index: sc/inc/pch/precompiled_sc.hxx
+===================================================================
+--- sc/inc/pch/precompiled_sc.hxx	(revision 272843)
++++ sc/inc/pch/precompiled_sc.hxx	(working copy)
+@@ -36,6 +36,7 @@
+ 
+ #include <algorithm>
+ #include <assert.h>
++#include <deque>
+ #include <stdarg.h>
+ #include <stddef.h>
+ #include <stdio.h>
+@@ -49,6 +50,8 @@
+ #include <new>
+ #include <cfloat>
+ 
++#include <boost/bind.hpp>
++
+ #include <basegfx/polygon/b2dpolygon.hxx>
+ #include <basegfx/polygon/b3dpolygon.hxx>
+ #include <basegfx/polygon/b3dpolypolygon.hxx>


--- openoffice.org-3.1.0.ooo99250.sc.autooutline-reflists.patch DELETED ---




More information about the fedora-extras-commits mailing list