ooo-build r14701 - in trunk: . patches/dev300



Author: kyoshida
Date: Wed Dec  3 00:53:29 2008
New Revision: 14701
URL: http://svn.gnome.org/viewvc/ooo-build?rev=14701&view=rev

Log:
2008-12-02  Kohei Yoshida  <kyoshida novell com>

	* patches/dev300/apply: 
	* patches/dev300/calc-external-defined-names-sc.diff: fixed build 
	breakages & combined it with the -fixes patch (below).

	* patches/dev300/calc-external-defined-names-sc-fixes.diff: combined 
	with the patch above.


Removed:
   trunk/patches/dev300/calc-external-defined-names-sc-fixes.diff
Modified:
   trunk/ChangeLog
   trunk/patches/dev300/apply
   trunk/patches/dev300/calc-external-defined-names-sc.diff

Modified: trunk/patches/dev300/apply
==============================================================================
--- trunk/patches/dev300/apply	(original)
+++ trunk/patches/dev300/apply	Wed Dec  3 00:53:29 2008
@@ -734,7 +734,6 @@
 # load, store and save the sheet protection options from and to an Excel file,
 # and use that information to constrain cell cursor movement when the sheet is
 # protected.  Also to support encryption on Excel file export.
-# FIXME 2008-11-26: don't apply to dev300-m35
 cws-scsheetprotection02-sc.diff,   i#60305, i#71468, i#84766, kohei
 cws-scsheetprotection02-sfx2.diff, i#60305, i#71468, i#84766, kohei
 cws-scsheetprotection02-svx.diff,  i#60305, i#71468, i#84766, kohei
@@ -1823,16 +1822,11 @@
 calc-formula-datevalue-strip-time.diff, i#94765, kohei
 
 # Implement external range names.
-# FIXME 2008-11-26: doesn't apply to dev300-m35
 calc-external-defined-names-sc.diff, i#3740, i#4385, n#355685, kohei
 calc-external-defined-names-offapi.diff, i#3740, i#4385, n#355685, kohei
 calc-external-defined-names-officecfg.diff, i#3740, i#4385, n#355685, kohei
 calc-external-defined-names-svtools.diff, i#3740, i#4385, n#355685, kohei
 
-# Additional fix for the external range name implementation.
-# FIXME 2008-11-26: doesn't apply to dev300-m35
-calc-external-defined-names-sc-fixes.diff, i#3740, i#4385, n#355685, kohei
-
 # Don't adjust row height on xls load for better layout preservation and
 # faster file load.
 calc-xls-disable-adjust-row-height.diff, kohei

Modified: trunk/patches/dev300/calc-external-defined-names-sc.diff
==============================================================================
--- trunk/patches/dev300/calc-external-defined-names-sc.diff	(original)
+++ trunk/patches/dev300/calc-external-defined-names-sc.diff	Wed Dec  3 00:53:29 2008
@@ -1,5 +1,5 @@
 diff --git sc/inc/address.hxx sc/inc/address.hxx
-index f92fc8e..9757898 100644
+index 0ff668b..76f0d42 100644
 --- sc/inc/address.hxx
 +++ sc/inc/address.hxx
 @@ -44,6 +44,14 @@
@@ -48,7 +48,7 @@
      void Format( String&, USHORT = 0, ScDocument* = NULL,
                   const Details& rDetails = detailsOOOa1) const;
  
-@@ -463,7 +484,11 @@ public:
+@@ -460,7 +481,11 @@ public:
      inline bool In( const ScRange& ) const;     // is Range& in Range?
  
      USHORT Parse( const String&, ScDocument* = NULL,
@@ -112,7 +112,7 @@
  /*** error constants #... ***/
  #define SC_OPCODE_START_ERRORS       30
 diff --git sc/inc/compiler.hxx sc/inc/compiler.hxx
-index 7974267..d901f78 100644
+index fdcf238..7f95858 100644
 --- sc/inc/compiler.hxx
 +++ sc/inc/compiler.hxx
 @@ -45,6 +45,8 @@
@@ -159,7 +159,7 @@
          ScMatrix*    pMat;
          USHORT       nIndex;                // index into name collection
          sal_Unicode  cStr[ MAXSTRLEN+1 ];   // string (up to 255 characters + 0)
-@@ -180,6 +192,9 @@ public:
+@@ -184,6 +196,9 @@ public:
  //UNUSED2008-05  ComplRefData& GetReference();
  //UNUSED2008-05  void SetReference( ComplRefData& rRef );
      void SetName( USHORT n );
@@ -220,7 +220,7 @@
      BOOL IsDBRange( const String& );
      BOOL IsColRowName( const String& );
      BOOL IsBoolean( const String& );
-@@ -543,6 +581,29 @@ public:
+@@ -542,6 +580,29 @@ public:
      void            SetGrammar( const ScGrammar::Grammar eGrammar );
      inline  ScGrammar::Grammar   GetGrammar() const { return meGrammar; }
  
@@ -251,7 +251,7 @@
  
      BOOL            IsCorrected() { return bCorrected; }
 diff --git sc/inc/document.hxx sc/inc/document.hxx
-index 2a27407..414f0c5 100644
+index 26c1fcf..6b945ab 100644
 --- sc/inc/document.hxx
 +++ sc/inc/document.hxx
 @@ -93,6 +93,7 @@ class ScDocProtection;
@@ -262,7 +262,7 @@
  class ScFormulaCell;
  class ScMarkData;
  class ScOutlineTable;
-@@ -282,6 +283,7 @@ private:
+@@ -287,6 +288,7 @@ private:
  	ScFieldEditEngine*	pCacheFieldEditEngine;
  
      ::std::auto_ptr<ScDocProtection> pDocProtection;
@@ -270,7 +270,7 @@
  	String              aDocName;                       // opt: Dokumentname
  	String              aDocCodeName;                       // opt: Dokumentname
  	ScRangePairListRef	xColNameRanges;
-@@ -634,6 +636,8 @@ SC_DLLPUBLIC	ScDBCollection*	GetDBCollection() const;
+@@ -622,6 +624,8 @@ SC_DLLPUBLIC	ScDBCollection*	GetDBCollection() const;
  									const String& aFileName,
  									const String& aTabName );
  
@@ -279,7 +279,7 @@
      /** Creates a new sheet, and makes it linked to the specified sheet in an external document.
          @param rnTab  (out-param) Returns the sheet index, if sheet could be inserted).
          @return  TRUE = Sheet created, rnTab contains valid sheet index. */
-@@ -642,6 +646,7 @@ SC_DLLPUBLIC	ScDBCollection*	GetDBCollection() const;
+@@ -630,6 +634,7 @@ SC_DLLPUBLIC	ScDBCollection*	GetDBCollection() const;
  
  	BOOL			HasDdeLinks() const;
  	BOOL			HasAreaLinks() const;
@@ -998,19 +998,19 @@
  		ocIf				= SC_OPCODE_IF,
  		ocChose				= SC_OPCODE_CHOSE,
 diff --git sc/inc/refdata.hxx sc/inc/refdata.hxx
-index 92d1320..9e83a45 100644
+index 83db007..b84453e 100644
 --- sc/inc/refdata.hxx
 +++ sc/inc/refdata.hxx
 @@ -116,6 +116,7 @@ struct SingleRefData        // Single reference (one address) into the sheet
-             BYTE CreateStoreByteFromFlags() const;
-             void CreateFlagsFromLoadByte( BYTE );
+ //UNUSED2008-05  BYTE CreateStoreByteFromFlags() const;
+ //UNUSED2008-05  void CreateFlagsFromLoadByte( BYTE );
              BOOL operator==( const SingleRefData& ) const;
 +            bool operator!=( const SingleRefData& ) const;
  };
  
  inline void SingleRefData::InitAddress( SCCOL nColP, SCROW nRowP, SCTAB nTabP )
 diff --git sc/inc/scmatrix.hxx sc/inc/scmatrix.hxx
-index dbe8bc7..0f2fcb1 100644
+index dfb62c1..0deebcf 100644
 --- sc/inc/scmatrix.hxx
 +++ sc/inc/scmatrix.hxx
 @@ -115,11 +115,14 @@ class ScMatrix
@@ -1032,7 +1032,7 @@
      }
  
 diff --git sc/inc/token.hxx sc/inc/token.hxx
-index ded3a94..bc7e993 100644
+index 6baa03b..d802439 100644
 --- sc/inc/token.hxx
 +++ sc/inc/token.hxx
 @@ -64,7 +64,9 @@ enum StackVarEnum
@@ -1117,10 +1117,10 @@
  {
  private:
 diff --git sc/inc/tokenarray.hxx sc/inc/tokenarray.hxx
-index 1d903ce..1e94c2f 100644
+index d06ee61..702ea9f 100644
 --- sc/inc/tokenarray.hxx
 +++ sc/inc/tokenarray.hxx
-@@ -193,6 +193,9 @@ public:
+@@ -194,6 +194,9 @@ public:
      ScToken* AddDoubleReference( const ComplRefData& rRef );
      ScToken* AddName( USHORT n );
      ScToken* AddMatrix( ScMatrix* p );
@@ -1166,7 +1166,7 @@
      ScDocShell*         mpDocShell;
      ScAddress           maRefPos;
 diff --git sc/inc/unonames.hxx sc/inc/unonames.hxx
-index b2c45ac..18c858b 100644
+index 1169755..0dbbfe3 100644
 --- sc/inc/unonames.hxx
 +++ sc/inc/unonames.hxx
 @@ -47,6 +47,7 @@
@@ -1177,7 +1177,7 @@
  #define SC_UNO_COLLABELRNG			"ColumnLabelRanges"
  #define SC_UNO_DATABASERNG			"DatabaseRanges"
  #define SC_UNO_NAMEDRANGES			"NamedRanges"
-@@ -604,6 +605,7 @@
+@@ -605,6 +606,7 @@
  #define SC_UNO_FORMULACONVENTION    "FormulaConvention"
  #define SC_UNO_IGNORELEADING        "IgnoreLeadingSpaces"
  #define SC_UNO_OPCODEMAP            "OpCodeMap"
@@ -1186,10 +1186,10 @@
  // Chart2
  #define SC_UNONAME_ISHIDDEN         "IsHidden"
 diff --git sc/source/core/data/cell.cxx sc/source/core/data/cell.cxx
-index 636f46e..fbd55d5 100644
+index b89f356..21c35f8 100644
 --- sc/source/core/data/cell.cxx
 +++ sc/source/core/data/cell.cxx
-@@ -689,7 +689,12 @@ ScFormulaCell::ScFormulaCell( ScDocument* pDoc, const ScAddress& rNewPos,
+@@ -683,7 +683,12 @@ ScFormulaCell::ScFormulaCell( ScDocument* pDoc, const ScAddress& rNewPos,
  		for( ScToken* t = pCode->GetNextReferenceOrName(); t && !bCompile;
  					  t = pCode->GetNextReferenceOrName() )
  		{
@@ -1204,7 +1204,7 @@
  				ScRangeData* pRangeData = pDoc->GetRangeName()->FindIndex( t->GetIndex() );
  				if( pRangeData )
 diff --git sc/source/core/data/cell2.cxx sc/source/core/data/cell2.cxx
-index fc6df5f..b49a9fd 100644
+index 2f006f7..23ea97f 100644
 --- sc/source/core/data/cell2.cxx
 +++ sc/source/core/data/cell2.cxx
 @@ -51,6 +51,7 @@
@@ -1215,7 +1215,7 @@
  
  // STATIC DATA -----------------------------------------------------------
  
-@@ -904,6 +905,17 @@ void ScFormulaCell::UpdateReference(UpdateRefMode eUpdateRefMode,
+@@ -850,6 +851,17 @@ void ScFormulaCell::UpdateReference(UpdateRefMode eUpdateRefMode,
  
          delete pOld;
      }
@@ -1234,7 +1234,7 @@
  
  void ScFormulaCell::UpdateInsertTab(SCTAB nTable)
 diff --git sc/source/core/data/documen2.cxx sc/source/core/data/documen2.cxx
-index b75279e..825baf5 100644
+index 5566a6f..9838bb5 100644
 --- sc/source/core/data/documen2.cxx
 +++ sc/source/core/data/documen2.cxx
 @@ -94,6 +94,7 @@
@@ -1265,7 +1265,7 @@
  	ScAddInAsync::RemoveDocument( this );
  	ScAddInListener::RemoveDocument( this );
  	delete pChartListenerCollection;	// vor pBASM wg. evtl. Listener!
-@@ -1429,6 +1436,10 @@ BOOL ScDocument::MoveTab( SCTAB nOldPos, SCTAB nNewPos )
+@@ -801,6 +808,10 @@ BOOL ScDocument::MoveTab( SCTAB nOldPos, SCTAB nNewPos )
  				if (pDrawLayer)
  					DrawMovePage( static_cast<sal_uInt16>(nOldPos), static_cast<sal_uInt16>(nNewPos) );
  
@@ -1276,7 +1276,7 @@
  				bValid = TRUE;
  			}
  		}
-@@ -1548,6 +1559,10 @@ BOOL ScDocument::CopyTab( SCTAB nOldPos, SCTAB nNewPos, const ScMarkData* pOnlyM
+@@ -922,6 +933,10 @@ BOOL ScDocument::CopyTab( SCTAB nOldPos, SCTAB nNewPos, const ScMarkData* pOnlyM
  			DrawCopyPage( static_cast<sal_uInt16>(nOldPos), static_cast<sal_uInt16>(nNewPos) );
  
  		pTab[nNewPos]->SetPageStyle( pTab[nOldPos]->GetPageStyle() );
@@ -1288,7 +1288,7 @@
  	else
  		SetAutoCalc( bOldAutoCalc );
 diff --git sc/source/core/data/documen3.cxx sc/source/core/data/documen3.cxx
-index 541e2e4..20dae1e 100644
+index 95f9e94..9cfe836 100644
 --- sc/source/core/data/documen3.cxx
 +++ sc/source/core/data/documen3.cxx
 @@ -61,6 +61,7 @@
@@ -1310,7 +1310,7 @@
  
  //------------------------------------------------------------------------
  
-@@ -478,6 +482,14 @@ BOOL ScDocument::LinkExternalTab( SCTAB& rTab, const String& aDocTab,
+@@ -473,6 +477,14 @@ BOOL ScDocument::LinkExternalTab( SCTAB& rTab, const String& aDocTab,
  	return TRUE;
  }
  
@@ -1326,7 +1326,7 @@
          const String& rFilterName, const String& rFilterOpt, const String& rTabName )
  {
 diff --git sc/source/core/data/documen8.cxx sc/source/core/data/documen8.cxx
-index fd09e93..719206e 100644
+index d199d26..57510a2 100644
 --- sc/source/core/data/documen8.cxx
 +++ sc/source/core/data/documen8.cxx
 @@ -91,6 +91,7 @@
@@ -1337,7 +1337,7 @@
  #include "globstr.hrc"
  #include "sc.hrc"
  
-@@ -1062,6 +1063,33 @@ BOOL ScDocument::IsInLinkUpdate() const
+@@ -1013,6 +1014,33 @@ BOOL ScDocument::IsInLinkUpdate() const
      return bInLinkUpdate || IsInDdeLinkUpdate();
  }
  
@@ -1372,7 +1372,7 @@
  {
      if (pLinkManager)
 diff --git sc/source/core/data/document.cxx sc/source/core/data/document.cxx
-index 886156d..6183449 100644
+index c11fa97..30e6128 100644
 --- sc/source/core/data/document.cxx
 +++ sc/source/core/data/document.cxx
 @@ -91,6 +91,7 @@
@@ -1383,7 +1383,7 @@
  
  struct ScDefaultAttr
  {
-@@ -368,6 +369,10 @@ BOOL ScDocument::InsertTab( SCTAB nPos, const String& rName,
+@@ -370,6 +371,10 @@ BOOL ScDocument::InsertTab( SCTAB nPos, const String& rName,
  				if ( pChartListenerCollection )
  					pChartListenerCollection->UpdateScheduledSeriesRanges();
  
@@ -1394,7 +1394,7 @@
  				SetDirty();
  				bValid = TRUE;
  			}
-@@ -457,6 +462,12 @@ BOOL ScDocument::DeleteTab( SCTAB nTab, ScDocument* pRefUndoDoc )
+@@ -461,6 +466,12 @@ BOOL ScDocument::DeleteTab( SCTAB nTab, ScDocument* pRefUndoDoc )
  				}
  				// #81844# sheet names of references are not valid until sheet is deleted
  				pChartListenerCollection->UpdateScheduledSeriesRanges();
@@ -1408,10 +1408,10 @@
  				bValid = TRUE;
  			}
 diff --git sc/source/core/inc/interpre.hxx sc/source/core/inc/interpre.hxx
-index b9dd766..3a85852 100644
+index e51fc2f..c95063e 100644
 --- sc/source/core/inc/interpre.hxx
 +++ sc/source/core/inc/interpre.hxx
-@@ -505,6 +505,7 @@ BOOL SetSbxVariable( SbxVariable* pVar, SCCOL nCol, SCROW nRow, SCTAB nTab );
+@@ -515,6 +515,7 @@ BOOL SetSbxVariable( SbxVariable* pVar, SCCOL nCol, SCROW nRow, SCTAB nTab );
  void ScErrorType();
  void ScDBArea();
  void ScColRowNameAuto();
@@ -1420,7 +1420,7 @@
  void ScHyperLink();
  void ScBahtText();
 diff --git sc/source/core/tool/address.cxx sc/source/core/tool/address.cxx
-index c92f4aa..2d0bfd1 100644
+index b4203de..5fb004c 100644
 --- sc/source/core/tool/address.cxx
 +++ sc/source/core/tool/address.cxx
 @@ -35,12 +35,15 @@
@@ -2189,7 +2189,7 @@
  }
  
  
-@@ -1060,7 +1112,7 @@ void ScRange::ExtendTo( const ScRange& rRange )
+@@ -1041,7 +1093,7 @@ void ScRange::ExtendTo( const ScRange& rRange )
  }
  
  static USHORT
@@ -2198,7 +2198,7 @@
  {
      USHORT nRes1 = 0, nRes2 = 0;
      xub_StrLen nTmp = 0;
-@@ -1073,13 +1125,12 @@ lcl_ScRange_Parse_OOo( ScRange &aRange, const String& r, ScDocument* pDoc )
+@@ -1054,13 +1106,12 @@ lcl_ScRange_Parse_OOo( ScRange &aRange, const String& r, ScDocument* pDoc )
          String aTmp( r );
          sal_Unicode* p = aTmp.GetBufferAccess();
          p[ nPos ] = 0;
@@ -2215,7 +2215,7 @@
                      nRes2 &= ~SCA_VALID_TAB;    // #REF!
                  else
                  {
-@@ -1132,7 +1183,9 @@ lcl_ScRange_Parse_OOo( ScRange &aRange, const String& r, ScDocument* pDoc )
+@@ -1113,7 +1164,9 @@ lcl_ScRange_Parse_OOo( ScRange &aRange, const String& r, ScDocument* pDoc )
  }
  
  USHORT ScRange::Parse( const String& r, ScDocument* pDoc,
@@ -2226,7 +2226,7 @@
  {
      if ( r.Len() <= 0 )
          return 0;
-@@ -1141,13 +1194,15 @@ USHORT ScRange::Parse( const String& r, ScDocument* pDoc,
+@@ -1122,13 +1175,15 @@ USHORT ScRange::Parse( const String& r, ScDocument* pDoc,
      {
      default :
      case ScAddress::CONV_OOO:
@@ -2245,7 +2245,7 @@
      }
  }
  
-@@ -1187,6 +1242,7 @@ USHORT ScRange::ParseCols( const String& rStr, ScDocument* pDoc,
+@@ -1168,6 +1223,7 @@ USHORT ScRange::ParseCols( const String& rStr, ScDocument* pDoc,
      default :
      case ScAddress::CONV_OOO: // No full col refs in OOO yet, assume XL notation
      case ScAddress::CONV_XL_A1:
@@ -2253,7 +2253,7 @@
          if (NULL != (p = lcl_a1_get_col( p, &aStart, &ignored ) ) )
          {
              if( p[0] == ':')
-@@ -1245,6 +1301,7 @@ USHORT ScRange::ParseRows( const String& rStr, ScDocument* pDoc,
+@@ -1226,6 +1282,7 @@ USHORT ScRange::ParseRows( const String& rStr, ScDocument* pDoc,
      default :
      case ScAddress::CONV_OOO: // No full row refs in OOO yet, assume XL notation
      case ScAddress::CONV_XL_A1:
@@ -2261,7 +2261,7 @@
          if (NULL != (p = lcl_a1_get_row( p, &aStart, &ignored ) ) )
          {
              if( p[0] == ':')
-@@ -1429,6 +1486,7 @@ void ScAddress::Format( String& r, USHORT nFlags, ScDocument* pDoc,
+@@ -1410,6 +1467,7 @@ void ScAddress::Format( String& r, USHORT nFlags, ScDocument* pDoc,
  
              case CONV_XL_A1:
              case CONV_XL_R1C1:
@@ -2269,7 +2269,7 @@
                  if (aDocName.Len() > 0)
                  {
                      r += '[';
-@@ -1446,6 +1504,7 @@ void ScAddress::Format( String& r, USHORT nFlags, ScDocument* pDoc,
+@@ -1427,6 +1485,7 @@ void ScAddress::Format( String& r, USHORT nFlags, ScDocument* pDoc,
      default :
      case CONV_OOO:
      case CONV_XL_A1:
@@ -2277,7 +2277,7 @@
          if( nFlags & SCA_VALID_COL )
              lcl_a1_append_c ( r, nCol, nFlags & SCA_COL_ABSOLUTE );
          if( nFlags & SCA_VALID_ROW )
-@@ -1565,6 +1624,7 @@ void ScRange::Format( String& r, USHORT nFlags, ScDocument* pDoc,
+@@ -1546,6 +1605,7 @@ void ScRange::Format( String& r, USHORT nFlags, ScDocument* pDoc,
      break;
  
      case ScAddress::CONV_XL_A1:
@@ -2285,7 +2285,7 @@
          lcl_ScRange_Format_XL_Header( r, *this, nFlags, pDoc, rDetails );
          if( aStart.Col() == 0 && aEnd.Col() >= MAXCOL )
          {
-@@ -1688,6 +1748,7 @@ String ScAddress::GetColRowString( bool bAbsolute,
+@@ -1654,6 +1714,7 @@ String ScAddress::GetColRowString( bool bAbsolute,
      default :
      case ScAddress::CONV_OOO:
      case ScAddress::CONV_XL_A1:
@@ -2294,10 +2294,10 @@
          aString.Append( '$' );
  
 diff --git sc/source/core/tool/compiler.cxx sc/source/core/tool/compiler.cxx
-index fb06501..785b909 100644
+index 13171af..9b24826 100644
 --- sc/source/core/tool/compiler.cxx
 +++ sc/source/core/tool/compiler.cxx
-@@ -74,9 +74,11 @@
+@@ -73,9 +73,11 @@
  #include "errorcodes.hxx"
  #include "parclass.hxx"
  #include "autonamecache.hxx"
@@ -2309,7 +2309,7 @@
  
  #if OSL_DEBUG_LEVEL > 1
  // For some unknown reason the identical dbg_dump utilities in
-@@ -109,7 +111,7 @@ ScCompiler::NonConstOpCodeMapPtr    ScCompiler::mxSymbolsPODF;
+@@ -108,7 +110,7 @@ ScCompiler::NonConstOpCodeMapPtr    ScCompiler::mxSymbolsPODF;
  ScCompiler::NonConstOpCodeMapPtr    ScCompiler::mxSymbolsNative;
  ScCompiler::NonConstOpCodeMapPtr    ScCompiler::mxSymbolsEnglish;
  CharClass*                          ScCompiler::pCharClassEnglish = NULL;
@@ -2318,7 +2318,7 @@
  
  enum ScanState
  {
-@@ -707,20 +709,15 @@ void ScCompiler::SetGrammar( const ScGrammar::Grammar eGrammar )
+@@ -706,20 +708,15 @@ void ScCompiler::SetGrammar( const ScGrammar::Grammar eGrammar )
          xMap = ScCompiler::GetOpCodeMap( ::com::sun::star::sheet::FormulaLanguage::NATIVE);
          eMyGrammar = xMap->getGrammar();
      }
@@ -2346,7 +2346,7 @@
  }
  
  
-@@ -737,7 +734,25 @@ void ScCompiler::SetFormulaLanguage( const ScCompiler::OpCodeMapPtr & xMap )
+@@ -736,7 +733,25 @@ void ScCompiler::SetFormulaLanguage( const ScCompiler::OpCodeMapPtr & xMap )
          }
          else
              pCharClass = ScGlobal::pCharClass;
@@ -2372,7 +2372,7 @@
  }
  
  
-@@ -866,20 +881,19 @@ ScCompiler::OpCodeMap::createSequenceOfAvailableMappings( const sal_Int32 nGroup
+@@ -865,20 +880,19 @@ ScCompiler::OpCodeMap::createSequenceOfAvailableMappings( const sal_Int32 nGroup
              sal_Int32 nOff;
              OpCode    eOp;
          } aMap[] = {
@@ -2406,7 +2406,7 @@
          };
          const size_t nCount = sizeof(aMap)/sizeof(aMap[0]);
          // Preallocate vector elements.
-@@ -1078,7 +1092,7 @@ ScCompiler::Convention::Convention( ScAddress::Convention eConv )
+@@ -1077,7 +1091,7 @@ ScCompiler::Convention::Convention( ScAddress::Convention eConv )
  /*   */     t[32] = SC_COMPILER_C_CHAR_DONTCARE | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
  /* ! */     t[33] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
      if (ScAddress::CONV_ODF == meConv)
@@ -2415,7 +2415,7 @@
  /* " */     t[34] = SC_COMPILER_C_CHAR_STRING | SC_COMPILER_C_STRING_SEP;
  /* # */     t[35] = SC_COMPILER_C_WORD_SEP;
  /* $ */     t[36] = SC_COMPILER_C_CHAR_WORD | SC_COMPILER_C_WORD | SC_COMPILER_C_CHAR_IDENT | SC_COMPILER_C_IDENT;
-@@ -1093,8 +1107,10 @@ ScCompiler::Convention::Convention( ScAddress::Convention eConv )
+@@ -1092,8 +1106,10 @@ ScCompiler::Convention::Convention( ScAddress::Convention eConv )
  /* - */     t[45] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_EXP | SC_COMPILER_C_VALUE_SIGN;
  /* . */     t[46] = SC_COMPILER_C_WORD | SC_COMPILER_C_CHAR_VALUE | SC_COMPILER_C_VALUE | SC_COMPILER_C_IDENT;
  /* / */     t[47] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
@@ -2427,7 +2427,7 @@
  /* : */     t[58] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD;
  /* ; */     t[59] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
  /* < */     t[60] = SC_COMPILER_C_CHAR_BOOL | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
-@@ -1102,8 +1118,10 @@ for (i = 48; i < 58; i++)
+@@ -1101,8 +1117,10 @@ for (i = 48; i < 58; i++)
  /* > */     t[62] = SC_COMPILER_C_CHAR_BOOL | SC_COMPILER_C_BOOL | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
  /* ? */     t[63] = SC_COMPILER_C_CHAR_WORD | SC_COMPILER_C_WORD;
  /* @ */     // FREE
@@ -2439,7 +2439,7 @@
      if (ScAddress::CONV_ODF == meConv)
      {
  /* [ */     t[91] = SC_COMPILER_C_ODF_LBRACKET;
-@@ -1119,14 +1137,17 @@ for (i = 65; i < 91; i++)
+@@ -1118,14 +1136,17 @@ for (i = 65; i < 91; i++)
  /* ^ */     t[94] = SC_COMPILER_C_CHAR | SC_COMPILER_C_WORD_SEP | SC_COMPILER_C_VALUE_SEP;
  /* _ */     t[95] = SC_COMPILER_C_CHAR_WORD | SC_COMPILER_C_WORD | SC_COMPILER_C_CHAR_IDENT | SC_COMPILER_C_IDENT;
  /* ` */     // FREE
@@ -2459,7 +2459,7 @@
      {
  /*   */     t[32] |=   SC_COMPILER_C_WORD;
  /* ! */     t[33] |=   SC_COMPILER_C_IDENT | SC_COMPILER_C_WORD;
-@@ -1165,9 +1186,14 @@ for (i = 97; i < 123; i++)
+@@ -1164,9 +1185,14 @@ for (i = 97; i < 123; i++)
  
          if( ScAddress::CONV_XL_R1C1 == meConv )
          {
@@ -2477,7 +2477,7 @@
          }
      }
  }
-@@ -1191,7 +1217,7 @@ static bool lcl_isValidQuotedText( const String& rFormula, xub_StrLen nSrcPos, P
+@@ -1190,7 +1216,7 @@ static bool lcl_isValidQuotedText( const String& rFormula, xub_StrLen nSrcPos, P
                  {
                      rRes.TokenType = KParseType::SINGLE_QUOTE_NAME;
                      rRes.EndPos = nPos+1;
@@ -2486,7 +2486,7 @@
                  }
                  ++nPos;
              }
-@@ -1199,9 +1225,203 @@ static bool lcl_isValidQuotedText( const String& rFormula, xub_StrLen nSrcPos, P
+@@ -1198,9 +1224,203 @@ static bool lcl_isValidQuotedText( const String& rFormula, xub_StrLen nSrcPos, P
          }
      }
  
@@ -2690,7 +2690,7 @@
  struct Convention_A1 : public ScCompiler::Convention
  {
      Convention_A1( ScAddress::Convention eConv ) : ScCompiler::Convention( eConv ) { }
-@@ -1215,14 +1435,14 @@ struct Convention_A1 : public ScCompiler::Convention
+@@ -1212,14 +1432,14 @@ struct Convention_A1 : public ScCompiler::Convention
                                 const CharClass* pCharClass) const
      {
          ParseResult aRet;
@@ -2707,7 +2707,7 @@
          return pCharClass->parseAnyToken( rFormula,
                  nSrcPos, nStartFlags, aAddAllowed, nContFlags, aAddAllowed );
      }
-@@ -1405,6 +1625,121 @@ struct ConventionOOO_A1 : public Convention_A1
+@@ -1386,6 +1606,121 @@ struct ConventionOOO_A1 : public Convention_A1
  
          return sal_Unicode(0);
      }
@@ -2829,7 +2829,7 @@
  };
  
  
-@@ -1423,6 +1758,25 @@ struct ConventionOOO_A1_ODF : public ConventionOOO_A1
+@@ -1404,6 +1739,25 @@ struct ConventionOOO_A1_ODF : public ConventionOOO_A1
      {
          MakeRefStrImpl( rBuffer, rComp, rRef, bSingleRef, true);
      }
@@ -2855,7 +2855,7 @@
  };
  
  static const ConventionOOO_A1_ODF ConvOOO_A1_ODF;
-@@ -1526,11 +1880,129 @@ struct ConventionXL
+@@ -1507,11 +1861,129 @@ struct ConventionXL
          }
          return sal_Unicode(0);
      }
@@ -2985,7 +2985,7 @@
      void MakeRefStr( rtl::OUStringBuffer&   rBuf,
                       const ScCompiler&      rComp,
                       const ComplRefData& rRef,
-@@ -1584,22 +2056,11 @@ struct ConventionXL_A1 : public Convention_A1, public ConventionXL
+@@ -1565,22 +2037,11 @@ struct ConventionXL_A1 : public Convention_A1, public ConventionXL
              }
          }
  
@@ -3010,7 +3010,7 @@
          }
      }
  
-@@ -1607,8 +2068,10 @@ struct ConventionXL_A1 : public Convention_A1, public ConventionXL
+@@ -1588,8 +2049,10 @@ struct ConventionXL_A1 : public Convention_A1, public ConventionXL
                                         xub_StrLen nSrcPos,
                                         const CharClass* pCharClass) const
      {
@@ -3022,7 +3022,7 @@
              return aRet;
  
          static const sal_Int32 nStartFlags = KParseTokens::ANY_LETTER_OR_NUMBER |
-@@ -1624,11 +2087,83 @@ struct ConventionXL_A1 : public Convention_A1, public ConventionXL
+@@ -1605,11 +2068,83 @@ struct ConventionXL_A1 : public Convention_A1, public ConventionXL
      {
          return ConventionXL::getSpecialSymbol(eSymType);
      }
@@ -3106,7 +3106,7 @@
  //-----------------------------------------------------------------------------
  
  static void
-@@ -1733,8 +2268,10 @@ struct ConventionXL_R1C1 : public ScCompiler::Convention, public ConventionXL
+@@ -1714,8 +2249,10 @@ struct ConventionXL_R1C1 : public ScCompiler::Convention, public ConventionXL
                                 xub_StrLen nSrcPos,
                                 const CharClass* pCharClass) const
      {
@@ -3118,7 +3118,7 @@
              return aRet;
  
          static const sal_Int32 nStartFlags = KParseTokens::ANY_LETTER_OR_NUMBER |
-@@ -1751,6 +2288,96 @@ struct ConventionXL_R1C1 : public ScCompiler::Convention, public ConventionXL
+@@ -1732,6 +2269,96 @@ struct ConventionXL_R1C1 : public ScCompiler::Convention, public ConventionXL
      {
          return ConventionXL::getSpecialSymbol(eSymType);
      }
@@ -3215,7 +3215,7 @@
  };
  
  static const ConventionXL_R1C1 ConvXL_R1C1;
-@@ -1817,13 +2444,15 @@ void ScCompiler::CheckTabQuotes( String& rString,
+@@ -1798,13 +2425,15 @@ void ScCompiler::CheckTabQuotes( String& rString,
          KParseType::IDENTNAME, rString, 0, nStartFlags, EMPTY_STRING, nContFlags, EMPTY_STRING);
      bool bNeedsQuote = !((aRes.TokenType & KParseType::IDENTNAME) && aRes.EndPos == rString.Len());
  
@@ -3232,7 +3232,7 @@
              if( bNeedsQuote )
              {
                  static const String one_quote = static_cast<sal_Unicode>( '\'' );
-@@ -1859,6 +2488,7 @@ void ScCompiler::SetRefConvention( ScAddress::Convention eConv )
+@@ -1840,6 +2469,7 @@ void ScCompiler::SetRefConvention( ScAddress::Convention eConv )
          case ScAddress::CONV_ODF :      SetRefConvention( pConvOOO_A1_ODF ); break;
          case ScAddress::CONV_XL_A1 :    SetRefConvention( pConvXL_A1 );  break;
          case ScAddress::CONV_XL_R1C1 :  SetRefConvention( pConvXL_R1C1 ); break;
@@ -3240,7 +3240,7 @@
      }
  }
  
-@@ -2185,71 +2815,88 @@ xub_StrLen ScCompiler::NextSymbol(bool bInArray)
+@@ -2172,71 +2802,88 @@ Label_MaskStateMachine:
                  }
                  // fall through and follow logic
              case ssSkipReference:
@@ -3376,7 +3376,7 @@
                      }
                      else if (':' == c)
                      {
-@@ -2264,7 +2911,7 @@ xub_StrLen ScCompiler::NextSymbol(bool bInArray)
+@@ -2251,7 +2898,7 @@ Label_MaskStateMachine:
                          eState = ssStop;
                      }
                      if (bAddToSymbol && eState != ssSkipReference)
@@ -3385,7 +3385,7 @@
                  }
                  break;
              case ssStop:
-@@ -2545,7 +3192,8 @@ BOOL ScCompiler::IsDoubleReference( const String& rName )
+@@ -2532,7 +3179,8 @@ BOOL ScCompiler::IsDoubleReference( const String& rName )
  {
      ScRange aRange( aPos, aPos );
      const ScAddress::Details aDetails( pConv->meConv, aPos );
@@ -3395,7 +3395,7 @@
      if( nFlags & SCA_VALID )
      {
          ScRawToken aToken;
-@@ -2564,7 +3212,17 @@ BOOL ScCompiler::IsDoubleReference( const String& rName )
+@@ -2551,7 +3199,17 @@ BOOL ScCompiler::IsDoubleReference( const String& rName )
              aRef.Ref2.SetTabDeleted( TRUE );        // #REF!
          aRef.Ref2.SetFlag3D( ( nFlags & SCA_TAB2_3D ) != 0 );
          aRef.CalcRelFromAbs( aPos );
@@ -3414,7 +3414,7 @@
          pRawToken = aToken.Clone();
      }
  
-@@ -2576,7 +3234,8 @@ BOOL ScCompiler::IsSingleReference( const String& rName )
+@@ -2563,7 +3221,8 @@ BOOL ScCompiler::IsSingleReference( const String& rName )
  {
      ScAddress aAddr( aPos );
      const ScAddress::Details aDetails( pConv->meConv, aPos );
@@ -3424,7 +3424,7 @@
      // Something must be valid in order to recognize Sheet1.blah or blah.a1
      // as a (wrong) reference.
      if( nFlags & ( SCA_VALID_COL|SCA_VALID_ROW|SCA_VALID_TAB ) )
-@@ -2600,7 +3259,16 @@ BOOL ScCompiler::IsSingleReference( const String& rName )
+@@ -2587,7 +3246,16 @@ BOOL ScCompiler::IsSingleReference( const String& rName )
              nFlags |= SCA_VALID;
          }
          aRef.CalcRelFromAbs( aPos );
@@ -3442,7 +3442,7 @@
          pRawToken = aToken.Clone();
      }
  
-@@ -2708,6 +3376,32 @@ BOOL ScCompiler::IsNamedRange( const String& rUpperName )
+@@ -2695,6 +3363,32 @@ BOOL ScCompiler::IsNamedRange( const String& rUpperName )
          return FALSE;
  }
  
@@ -3475,7 +3475,7 @@
  BOOL ScCompiler::IsDBRange( const String& rName )
  {
      USHORT n;
-@@ -3243,7 +3937,7 @@ BOOL ScCompiler::NextNewToken( bool bInArray )
+@@ -3230,7 +3924,7 @@ BOOL ScCompiler::NextNewToken( bool bInArray )
          if (mnPredetectedReference)
          {
              String aStr( cSymbol);
@@ -3484,7 +3484,7 @@
              {
                  /* TODO: it would be nice to generate a #REF! error here, which
                   * would need an ocBad token with additional error value.
-@@ -3306,6 +4000,7 @@ BOOL ScCompiler::NextNewToken( bool bInArray )
+@@ -3293,6 +3987,7 @@ BOOL ScCompiler::NextNewToken( bool bInArray )
                && !(bAllowBooleans && IsBoolean( aUpper ))
                && !IsValue( aUpper )
                && !IsNamedRange( aUpper )
@@ -3492,7 +3492,7 @@
                && !IsDBRange( aUpper )
                && !IsColRowName( aUpper )
                && !(bMayBeFuncName && IsMacro( aUpper ))
-@@ -3628,9 +4323,9 @@ BOOL ScCompiler::GetToken()
+@@ -3615,9 +4310,9 @@ BOOL ScCompiler::GetToken()
          else
          {
              if ( nWasColRowName >= 2 && pToken->GetOpCode() == ocColRowName )
@@ -3504,7 +3504,7 @@
              }
          }
      }
-@@ -3641,6 +4336,50 @@ BOOL ScCompiler::GetToken()
+@@ -3628,6 +4323,50 @@ BOOL ScCompiler::GetToken()
      }
      if( pToken->GetOpCode() == ocSubTotal )
          glSubTotal = TRUE;
@@ -3555,7 +3555,7 @@
      else if( pToken->GetOpCode() == ocName )
      {
          ScRangeData* pRangeData = pDoc->GetRangeName()->FindIndex( pToken->GetIndex() );
-@@ -3796,7 +4535,7 @@ BOOL ScCompiler::GetToken()
+@@ -3783,7 +4522,7 @@ BOOL ScCompiler::GetToken()
                      {   // next defined RowNameRange to the right limits column
                          const ScRange& rRange = pR->GetRange(1);
                          if ( rRange.aStart.Row() <= nRow && nRow <= rRange.aEnd.Row() )
@@ -3564,7 +3564,7 @@
                              SCCOL nTmp = rRange.aStart.Col();
                              if ( nStartCol < nTmp && nTmp <= nMaxCol )
                                  nMaxCol = nTmp - 1;
-@@ -4420,6 +5159,11 @@ void ScCompiler::Factor()
+@@ -4407,6 +5146,11 @@ void ScCompiler::Factor()
                  bCorrected = TRUE;
              }
          }
@@ -3576,7 +3576,7 @@
          else
          {
              SetError( errUnknownToken );
-@@ -4701,7 +5445,7 @@ void ScCompiler::MoveRelWrap()
+@@ -4678,7 +5422,7 @@ void ScCompiler::MoveRelWrap()
      for( ScToken* t = pArr->GetNextReference(); t;
                    t = pArr->GetNextReference() )
      {
@@ -3585,7 +3585,7 @@
              ScRefUpdate::MoveRelWrap( pDoc, aPos, SingleDoubleRefModifier( t->GetSingleRef() ).Ref() );
          else
              ScRefUpdate::MoveRelWrap( pDoc, aPos, t->GetDoubleRef() );
-@@ -4718,7 +5462,7 @@ void ScCompiler::MoveRelWrap( ScTokenArray& rArr, ScDocument* pDoc,
+@@ -4695,7 +5439,7 @@ void ScCompiler::MoveRelWrap( ScTokenArray& rArr, ScDocument* pDoc,
      for( ScToken* t = rArr.GetNextReference(); t;
                    t = rArr.GetNextReference() )
      {
@@ -3594,7 +3594,7 @@
              ScRefUpdate::MoveRelWrap( pDoc, rPos, SingleDoubleRefModifier( t->GetSingleRef() ).Ref() );
          else
              ScRefUpdate::MoveRelWrap( pDoc, rPos, t->GetDoubleRef() );
-@@ -4830,7 +5574,7 @@ ScRangeData* ScCompiler::UpdateReference(UpdateRefMode eUpdateRefMode,
+@@ -4807,7 +5551,7 @@ ScRangeData* ScCompiler::UpdateReference(UpdateRefMode eUpdateRefMode,
              else if( t->GetType() != svIndex )  // it may be a DB area!!!
              {
                  t->CalcAbsIfRel( rOldPos );
@@ -3603,7 +3603,7 @@
                  {
                      if ( ScRefUpdate::Update( pDoc, eUpdateRefMode, aPos,
                              r, nDx, nDy, nDz,
-@@ -5638,111 +6382,144 @@ ScToken* ScCompiler::CreateStringFromToken( rtl::OUStringBuffer& rBuffer, ScToke
+@@ -5612,111 +6356,144 @@ ScToken* ScCompiler::CreateStringFromToken( rtl::OUStringBuffer& rBuffer, ScToke
          DBG_ERRORFILE("unknown OpCode");
          rBuffer.append(ScGlobal::GetRscString(STR_NO_NAME_REF));
      }
@@ -3835,18 +3835,18 @@
          rBuffer.append(sal_Unicode(' '));
      if ( bAllowArrAdvance )
 diff --git sc/source/core/tool/interpr4.cxx sc/source/core/tool/interpr4.cxx
-index 5f6faa3..c70d42d 100644
+index 202d9aa..a829a57 100644
 --- sc/source/core/tool/interpr4.cxx
 +++ sc/source/core/tool/interpr4.cxx
-@@ -74,6 +74,7 @@
+@@ -69,6 +69,7 @@
  #include "addinlis.hxx"
  #include "jumpmatrix.hxx"
  #include "parclass.hxx"
 +#include "externalrefmgr.hxx"
  
- using namespace com::sun::star;
- 
-@@ -2980,6 +2981,82 @@ void ScInterpreter::ScColRowNameAuto()
+ #include <math.h>
+ #include <float.h>
+@@ -2981,6 +2982,82 @@ void ScInterpreter::ScColRowNameAuto()
          PushError( errNoRef );
  }
  
@@ -3929,7 +3929,7 @@
  // --- internals ------------------------------------------------------------
  
  
-@@ -3412,6 +3489,7 @@ StackVar ScInterpreter::Interpret()
+@@ -3413,6 +3490,7 @@ StackVar ScInterpreter::Interpret()
                  case ocDBArea           : ScDBArea();                   break;
                  case ocColRowNameAuto   : ScColRowNameAuto();           break;
  // separated    case ocPush             : Push( (ScToken&) *pCur );     break;
@@ -3938,10 +3938,10 @@
                  case ocChose            : ScChoseJump();                break;
                  case ocAdd              : ScAdd();                      break;
 diff --git sc/source/core/tool/refdata.cxx sc/source/core/tool/refdata.cxx
-index 4ac1814..7ec74d8 100644
+index b3b635a..67abc6b 100644
 --- sc/source/core/tool/refdata.cxx
 +++ sc/source/core/tool/refdata.cxx
-@@ -200,6 +200,10 @@ BOOL SingleRefData::operator==( const SingleRefData& r ) const
+@@ -199,6 +199,10 @@ BOOL SingleRefData::operator==( const SingleRefData& r ) const
          (Flags.bTabRel ? nRelTab == r.nRelTab : nTab == r.nTab);
  }
  
@@ -3953,7 +3953,7 @@
  static void lcl_putInOrder( SingleRefData & rRef1, SingleRefData & rRef2 )
  {
 diff --git sc/source/core/tool/token.cxx sc/source/core/tool/token.cxx
-index a20cbd5..3645c87 100644
+index 3299131..51b54a3 100644
 --- sc/source/core/tool/token.cxx
 +++ sc/source/core/tool/token.cxx
 @@ -54,6 +54,8 @@
@@ -3965,7 +3965,7 @@
  // ImpTokenIterator wird je Interpreter angelegt, mehrfache auch durch
  // SubCode via ScTokenIterator Push/Pop moeglich
  IMPL_FIXEDMEMPOOL_NEWDEL( ImpTokenIterator, 32, 16 )
-@@ -209,6 +211,48 @@ void ScRawToken::SetName( USHORT n )
+@@ -193,6 +195,48 @@ void ScRawToken::SetName( USHORT n )
      nRefCnt = 0;
  }
  
@@ -4557,7 +4557,7 @@
  {
      return Add( new ScSingleRefOpToken( ocColRowName, rRef ) );
 diff --git sc/source/filter/excel/excform.cxx sc/source/filter/excel/excform.cxx
-index 3070f34..fd87dbf 100644
+index 0de27e7..4b35df6 100644
 --- sc/source/filter/excel/excform.cxx
 +++ sc/source/filter/excel/excform.cxx
 @@ -46,6 +46,7 @@
@@ -4568,7 +4568,7 @@
  
  const UINT16 ExcelToSc::nRowMask = 0x3FFF;
  const UINT16 ExcelToSc::nLastInd = 399;
-@@ -1329,6 +1330,13 @@ ConvErr ExcelToSc::Convert( _ScRangeListTabs& rRangeList, XclImpStream& aIn, sal
+@@ -1328,6 +1329,13 @@ ConvErr ExcelToSc::Convert( _ScRangeListTabs& rRangeList, XclImpStream& aIn, sal
  	return eRet;
  }
  
@@ -4583,7 +4583,7 @@
  {
      DBG_ASSERT_BIFF( GetBiff() == EXC_BIFF5 );
 diff --git sc/source/filter/excel/excform8.cxx sc/source/filter/excel/excform8.cxx
-index ebf8543..e0467a0 100644
+index ebf8543..0af6d65 100644
 --- sc/source/filter/excel/excform8.cxx
 +++ sc/source/filter/excel/excform8.cxx
 @@ -41,6 +41,18 @@
@@ -4650,7 +4650,7 @@
 -                            aStack << aPool.Store( ocNoName, pExtName->GetName() );
 -                            GetTracer().TraceFormulaExtName();
 +                            sal_uInt16 nFileId;
-+                            if (!GetExternalFileIdFromXti(nXtiIndex, nFileId))
++                            if (!GetExternalFileIdFromXti(nXtiIndex, nFileId) || !pExtName->HasFormulaTokens())
 +                            {
 +                                aStack << aPool.Store(ocNoName, pExtName->GetName());
 +                                break;
@@ -4868,7 +4868,7 @@
  			}
  				break;
  			default: bError = TRUE;
-@@ -1143,7 +1206,130 @@ ConvErr ExcelToSc8::Convert( _ScRangeListTabs& rRangeList, XclImpStream& aIn, sa
+@@ -1143,7 +1206,152 @@ ConvErr ExcelToSc8::Convert( _ScRangeListTabs& rRangeList, XclImpStream& aIn, sa
  	return eRet;
  }
  
@@ -4910,7 +4910,7 @@
 +        // #98524# always reset flags
 +        aSRD.InitFlags();
 +        aCRD.InitFlags();
-+
+ 
 +        switch( nOp )
 +        {
 +            case 0x1C: // Error Value
@@ -4951,7 +4951,7 @@
 +                ExcRelToScRel8(nRow, nGrbitCol, aSRD, true);
 +                aCRD.Ref1 = aCRD.Ref2 = aSRD;
 +                String aTabName = rTabNames[nExtTab1];
- 
++
 +                if (nExtTab1 == nExtTab2)
 +                {
 +                    // single cell reference
@@ -4965,6 +4965,28 @@
 +                }
 +            }
 +            break;
++            case 0x3B:
++            {
++                // area reference 
++                sal_uInt16 nExtTab1, nExtTab2, nRow1, nRow2, nGrbitCol1, nGrbitCol2;
++                rStrm >> nExtTab1 >> nExtTab2 >> nRow1 >> nRow2 >> nGrbitCol1 >> nGrbitCol2;
++                SingleRefData& rR1 = aCRD.Ref1;
++                SingleRefData& rR2 = aCRD.Ref2;
++
++                rR1.nTab = nExtTab1;
++                rR1.SetFlag3D(true);
++                rR1.SetTabRel(false);
++                ExcRelToScRel8(nRow1, nGrbitCol1, rR1, true);
++
++                rR2.nTab = nExtTab2;
++                rR2.SetFlag3D(true);
++                rR2.SetTabRel(false);
++                ExcRelToScRel8(nRow2, nGrbitCol2, rR2, true);
++
++                String aTabName = rTabNames[nExtTab1];
++                aStack << aPool.StoreExtRef(nFileId, aTabName, aCRD);
++            }
++            break;
 +            default: 
 +                bError = true;
 +        }
@@ -5000,10 +5022,10 @@
  void ExcelToSc8::ExcRelToScRel8( UINT16 nRow, UINT16 nC, SingleRefData &rSRD, const BOOL bName )
  {
 diff --git sc/source/filter/excel/read.cxx sc/source/filter/excel/read.cxx
-index eea6293..a868e17 100644
+index b04da7a..56ced4c 100644
 --- sc/source/filter/excel/read.cxx
 +++ sc/source/filter/excel/read.cxx
-@@ -967,7 +967,7 @@ FltError ImportExcel8::Read( void )
+@@ -969,7 +969,7 @@ FltError ImportExcel8::Read( void )
                      case EXC_ID_SUPBOOK:        rLinkMgr.ReadSupbook( maStrm );     break;
                      case EXC_ID_XCT:            rLinkMgr.ReadXct( maStrm );         break;
                      case EXC_ID_CRN:            rLinkMgr.ReadCrn( maStrm );         break;
@@ -5013,7 +5035,7 @@
                      case EXC_ID_MSODRAWINGGROUP:rObjMgr.ReadMsoDrawingGroup( maStrm ); break;
  
 diff --git sc/source/filter/excel/tokstack.cxx sc/source/filter/excel/tokstack.cxx
-index 20ada63..9c4ddba 100644
+index 182d058..d524ef5 100644
 --- sc/source/filter/excel/tokstack.cxx
 +++ sc/source/filter/excel/tokstack.cxx
 @@ -395,6 +395,34 @@ void TokenPool::GetElement( const UINT16 nId )
@@ -5156,7 +5178,7 @@
  
  
 diff --git sc/source/filter/excel/xeformula.cxx sc/source/filter/excel/xeformula.cxx
-index 3db8da7..dd46fd7 100644
+index dd20edf..d8ee782 100644
 --- sc/source/filter/excel/xeformula.cxx
 +++ sc/source/filter/excel/xeformula.cxx
 @@ -42,6 +42,11 @@
@@ -6287,7 +6309,7 @@
  {
      mxImpl->Save( rStrm );
 diff --git sc/source/filter/excel/xilink.cxx sc/source/filter/excel/xilink.cxx
-index 01932a5..9174fd9 100644
+index 01932a5..f906ef8 100644
 --- sc/source/filter/excel/xilink.cxx
 +++ sc/source/filter/excel/xilink.cxx
 @@ -38,6 +38,13 @@
@@ -6428,13 +6450,15 @@
      if( ::get_flag( nFlags, EXC_EXTN_BUILTIN ) || !::get_flag( nFlags, EXC_EXTN_OLE_OR_DDE ) )
      {
          if( bAddIn )
-@@ -319,6 +317,28 @@ XclImpExtName::XclImpExtName( XclImpStream& rStrm, bool bAddIn )
+@@ -319,6 +317,30 @@ XclImpExtName::XclImpExtName( XclImpStream& rStrm, bool bAddIn )
  
      if( (meType == xlExtDDE) && (rStrm.GetRecLeft() > 1) )
          mxDdeMatrix.reset( new XclImpCachedMatrix( rStrm ) );
 +
 +    if (meType == xlExtName)
 +    {
++        // TODO: For now, only global external names are supported.  In future 
++        // we should extend this to supporting per-sheet external names.
 +        if (mnStorageId == 0)
 +        {
 +            if (pFormulaConv)
@@ -6457,20 +6481,28 @@
  }
  
  XclImpExtName::~XclImpExtName()
-@@ -333,6 +353,12 @@ void XclImpExtName::CreateDdeData( ScDocument& rDoc, const String& rApplic, cons
+@@ -333,6 +355,20 @@ void XclImpExtName::CreateDdeData( ScDocument& rDoc, const String& rApplic, cons
      rDoc.CreateDdeLink( rApplic, rTopic, maName, SC_DDE_DEFAULT, xResults );
  }
  
 +void XclImpExtName::CreateExtNameData( ScDocument& rDoc, sal_uInt16 nFileId ) const
 +{
++    if (!mxArray.get())
++        return;
++
 +    ScExternalRefManager* pRefMgr = rDoc.GetExternalRefManager();
 +    pRefMgr->storeRangeNameTokens(nFileId, maName, *mxArray);
 +}
 +
++bool XclImpExtName::HasFormulaTokens() const
++{
++    return (mxArray.get() != NULL);
++}
++
  // Cached external cells ======================================================
  
  XclImpCrn::XclImpCrn( XclImpStream& rStrm, const XclAddress& rXclPos ) :
-@@ -341,29 +367,9 @@ XclImpCrn::XclImpCrn( XclImpStream& rStrm, const XclAddress& rXclPos ) :
+@@ -341,29 +377,9 @@ XclImpCrn::XclImpCrn( XclImpStream& rStrm, const XclAddress& rXclPos ) :
  {
  }
  
@@ -6502,7 +6534,7 @@
  }
  
  // Sheet in an external document ==============================================
-@@ -383,13 +389,40 @@ void XclImpSupbookTab::ReadCrn( XclImpStream& rStrm, const XclAddress& rXclPos )
+@@ -383,13 +399,40 @@ void XclImpSupbookTab::ReadCrn( XclImpStream& rStrm, const XclAddress& rXclPos )
      maCrnList.Append( new XclImpCrn( rStrm, rXclPos ) );
  }
  
@@ -6549,7 +6581,7 @@
  }
  
  // External document (SUPBOOK) ================================================
-@@ -453,25 +486,9 @@ void XclImpSupbook::ReadCrn( XclImpStream& rStrm )
+@@ -453,25 +496,9 @@ void XclImpSupbook::ReadCrn( XclImpStream& rStrm )
      }
  }
  
@@ -6577,7 +6609,7 @@
  }
  
  const XclImpExtName* XclImpSupbook::GetExternName( sal_uInt16 nXclIndex ) const
-@@ -492,20 +509,46 @@ const String& XclImpSupbook::GetMacroName( sal_uInt16 nXclNameIdx ) const
+@@ -492,20 +519,46 @@ const String& XclImpSupbook::GetMacroName( sal_uInt16 nXclNameIdx ) const
      return (pName && pName->IsVBName()) ? pName->GetScName() : EMPTY_STRING;
  }
  
@@ -6608,19 +6640,19 @@
 +{
 +    if (meType != EXC_SBTYPE_EXTERN || GetExtDocOptions().GetDocSettings().mnLinkCnt > 0)
 +        return;
-+
-+    String aAbsUrl( ScGlobal::GetAbsDocName(maXclUrl, GetDocShell()) );
  
 -        // get filter name for external document
 -        if( !maFilterName.Len() )
 -            ScDocumentLoader::GetFilterName( aAbsUrl, maFilterName, maFilterOpt, FALSE, FALSE );
-+    ScExternalRefManager* pRefMgr = GetRoot().GetDoc().GetExternalRefManager();
-+    sal_uInt16 nFileId = pRefMgr->getExternalFileId(aAbsUrl);
++    String aAbsUrl( ScGlobal::GetAbsDocName(maXclUrl, GetDocShell()) );
  
 -        // create tables
 -        for( sal_uInt16 nSBTab = nSBTabFirst; nSBTab <= nSBTabLast; ++nSBTab )
 -            if( XclImpSupbookTab* pSBTab = maSupbTabList.GetObject( nSBTab ) )
 -                pSBTab->CreateAndFillTable( GetRoot(), aAbsUrl, maFilterName, maFilterOpt );
++    ScExternalRefManager* pRefMgr = GetRoot().GetDoc().GetExternalRefManager();
++    sal_uInt16 nFileId = pRefMgr->getExternalFileId(aAbsUrl);
++
 +    sal_uInt16 nCount = static_cast< sal_uInt16 >( maSupbTabList.Count() );
 +    for (sal_uInt16 i = 0; i < nCount; ++i)
 +    {
@@ -6634,7 +6666,7 @@
      }
  }
  
-@@ -531,7 +574,7 @@ void XclImpLinkManagerImpl::ReadExternsheet( XclImpStream& rStrm )
+@@ -531,7 +584,7 @@ void XclImpLinkManagerImpl::ReadExternsheet( XclImpStream& rStrm )
          --nXtiCount;
      }
  
@@ -6643,7 +6675,7 @@
  }
  
  void XclImpLinkManagerImpl::ReadSupbook( XclImpStream& rStrm )
-@@ -551,10 +594,10 @@ void XclImpLinkManagerImpl::ReadCrn( XclImpStream& rStrm )
+@@ -551,10 +604,10 @@ void XclImpLinkManagerImpl::ReadCrn( XclImpStream& rStrm )
          pSupbook->ReadCrn( rStrm );
  }
  
@@ -6656,7 +6688,7 @@
  }
  
  bool XclImpLinkManagerImpl::IsSelfRef( sal_uInt16 nXtiIndex ) const
-@@ -568,10 +611,10 @@ bool XclImpLinkManagerImpl::GetScTabRange(
+@@ -568,10 +621,10 @@ bool XclImpLinkManagerImpl::GetScTabRange(
  {
      if( const XclImpXti* pXti = maXtiList.GetObject( nXtiIndex ) )
      {
@@ -6670,7 +6702,7 @@
              return true;
          }
      }
-@@ -584,6 +627,20 @@ const XclImpExtName* XclImpLinkManagerImpl::GetExternName( sal_uInt16 nXtiIndex,
+@@ -584,6 +637,20 @@ const XclImpExtName* XclImpLinkManagerImpl::GetExternName( sal_uInt16 nXtiIndex,
      return pSupbook ? pSupbook->GetExternName( nExtName ) : 0;
  }
  
@@ -6691,7 +6723,7 @@
  bool XclImpLinkManagerImpl::GetLinkData( String& rApplic, String& rTopic, sal_uInt16 nXtiIndex ) const
  {
      const XclImpSupbook* pSupbook = GetSupbook( nXtiIndex );
-@@ -596,12 +653,6 @@ const String& XclImpLinkManagerImpl::GetMacroName( sal_uInt16 nExtSheet, sal_uIn
+@@ -596,12 +663,6 @@ const String& XclImpLinkManagerImpl::GetMacroName( sal_uInt16 nExtSheet, sal_uIn
      return pSupbook ? pSupbook->GetMacroName( nExtName ) : EMPTY_STRING;
  }
  
@@ -6704,7 +6736,7 @@
  const XclImpSupbook* XclImpLinkManagerImpl::GetSupbook( sal_uInt32 nXtiIndex ) const
  {
      const XclImpXti* pXti = maXtiList.GetObject( nXtiIndex );
-@@ -616,26 +667,17 @@ const XclImpSupbook* XclImpLinkManagerImpl::GetSupbook( const String& rUrl ) con
+@@ -616,26 +677,17 @@ const XclImpSupbook* XclImpLinkManagerImpl::GetSupbook( const String& rUrl ) con
      return 0;
  }
  
@@ -6737,7 +6769,7 @@
  }
  
  bool XclImpLinkManagerImpl::FindNextTabRange(
-@@ -686,9 +728,9 @@ void XclImpLinkManager::ReadCrn( XclImpStream& rStrm )
+@@ -686,9 +738,9 @@ void XclImpLinkManager::ReadCrn( XclImpStream& rStrm )
      mxImpl->ReadCrn( rStrm );
  }
  
@@ -6749,7 +6781,7 @@
  }
  
  bool XclImpLinkManager::IsSelfRef( sal_uInt16 nXtiIndex ) const
-@@ -707,6 +749,16 @@ const XclImpExtName* XclImpLinkManager::GetExternName( sal_uInt16 nXtiIndex, sal
+@@ -707,6 +759,16 @@ const XclImpExtName* XclImpLinkManager::GetExternName( sal_uInt16 nXtiIndex, sal
      return mxImpl->GetExternName( nXtiIndex, nExtName );
  }
  
@@ -6766,7 +6798,7 @@
  bool XclImpLinkManager::GetLinkData( String& rApplic, String& rTopic, sal_uInt16 nXtiIndex ) const
  {
      return mxImpl->GetLinkData( rApplic, rTopic, nXtiIndex );
-@@ -717,10 +769,5 @@ const String& XclImpLinkManager::GetMacroName( sal_uInt16 nExtSheet, sal_uInt16
+@@ -717,10 +779,5 @@ const String& XclImpLinkManager::GetMacroName( sal_uInt16 nExtSheet, sal_uInt16
      return mxImpl->GetMacroName( nExtSheet, nExtName );
  }
  
@@ -6868,7 +6900,7 @@
  
      virtual BOOL        GetAbsRefs( ScRangeList& rRangeList, XclImpStream& rStrm, sal_Size nLen );
 diff --git sc/source/filter/inc/tokstack.hxx sc/source/filter/inc/tokstack.hxx
-index 89e955a..5bb6772 100644
+index 4deb8f7..2d59225 100644
 --- sc/source/filter/inc/tokstack.hxx
 +++ sc/source/filter/inc/tokstack.hxx
 @@ -35,6 +35,8 @@
@@ -6938,7 +6970,7 @@
 -		inline const SingleRefData*	GetSRD( const TokenId& nId ) const;
  		BOOL						IsSingleOp( const TokenId& nId, const DefTokenId eId ) const;
          const String*               GetExternal( const TokenId& nId ) const;
-         const String*               GetString( const TokenId& nId ) const;
+ //UNUSED2008-05  const String*               GetString( const TokenId& nId ) const;
 @@ -374,21 +407,5 @@ inline E_TYPE TokenPool::GetType( const TokenId& rId ) const
  }
  
@@ -7005,7 +7037,7 @@
      virtual void        Save( XclExpStream& rStrm );
  
 diff --git sc/source/filter/inc/xilink.hxx sc/source/filter/inc/xilink.hxx
-index 0d547fe..3983e4d 100644
+index 0d547fe..8b74794 100644
 --- sc/source/filter/inc/xilink.hxx
 +++ sc/source/filter/inc/xilink.hxx
 @@ -107,6 +107,8 @@ enum XclImpExtNameType
@@ -7017,7 +7049,7 @@
  
  /** Stores contents of an external name.
      @descr Supported: External defined names, AddIn names, DDE links and OLE objects. */
-@@ -114,21 +116,26 @@ class XclImpExtName
+@@ -114,21 +116,28 @@ class XclImpExtName
  {
  public:
      /** Reads the external name from the stream. */
@@ -7032,6 +7064,8 @@
  
 +    void                CreateExtNameData( ScDocument& rDoc, sal_uInt16 nFileId ) const;
 +
++    bool                HasFormulaTokens() const;
++
      inline XclImpExtNameType GetType() const { return meType; }
      inline const String& GetName() const { return maName; }
      inline sal_uInt32   GetStorageId() const { return mnStorageId; }
@@ -7045,7 +7079,7 @@
      String              maName;             /// The name of the external name.
      sal_uInt32          mnStorageId;        /// Storage ID for OLE object storages.
      XclImpExtNameType   meType;             /// Type of the external name.
-@@ -168,7 +175,7 @@ public:
+@@ -168,7 +177,7 @@ public:
      /** Reads a CRN record and appends it to the current SUPBOOK. */
      void                ReadCrn( XclImpStream& rStrm );
      /** Reads an EXTERNNAME record and appends it to the current SUPBOOK. */
@@ -7054,7 +7088,7 @@
  
      /** Returns true, if the specified XTI entry contains an internal reference. */
      bool                IsSelfRef( sal_uInt16 nXtiIndex ) const;
-@@ -179,6 +186,11 @@ public:
+@@ -179,6 +188,11 @@ public:
                              sal_uInt16 nXtiIndex ) const;
      /** Returns the specified external name or 0 on error. */
      const XclImpExtName* GetExternName( sal_uInt16 nXtiIndex, sal_uInt16 nExtName ) const;
@@ -7066,7 +7100,7 @@
      /** Tries to decode the URL of the specified XTI entry to OLE or DDE link components.
          @descr  For DDE links: Decodes to application name and topic.
          For OLE object links: Decodes to class name and document URL.
-@@ -187,10 +199,6 @@ public:
+@@ -187,10 +201,6 @@ public:
      /** Returns the specified macro name or an empty string on error. */
      const String&       GetMacroName( sal_uInt16 nExtSheet, sal_uInt16 nExtName ) const;
  
@@ -7078,7 +7112,7 @@
      typedef ::std::auto_ptr< XclImpLinkManagerImpl > XclImpLinkMgrImplPtr;
      XclImpLinkMgrImplPtr mxImpl;
 diff --git sc/source/filter/xcl97/XclImpChangeTrack.cxx sc/source/filter/xcl97/XclImpChangeTrack.cxx
-index 022b472..a1efd3e 100644
+index 72d3772..1d7e6a9 100644
 --- sc/source/filter/xcl97/XclImpChangeTrack.cxx
 +++ sc/source/filter/xcl97/XclImpChangeTrack.cxx
 @@ -40,6 +40,7 @@
@@ -7117,7 +7151,7 @@
  	}
  	return sal_True;
  }
-@@ -329,7 +337,8 @@ void XclImpChangeTrack::ReadChTrCellContent()
+@@ -327,7 +335,8 @@ void XclImpChangeTrack::ReadChTrCellContent()
  	if( CheckRecord( EXC_CHTR_OP_CELL ) )
  	{
  		ScAddress aPosition;
@@ -7127,7 +7161,7 @@
  		sal_uInt16 nValueType;
  		*pStrm >> nValueType;
  		sal_uInt16 nOldValueType = (nValueType >> 3) & EXC_CHTR_TYPE_MASK;
-@@ -490,9 +499,9 @@ XclImpChTrFmlConverter::~XclImpChTrFmlConverter()
+@@ -488,9 +497,9 @@ XclImpChTrFmlConverter::~XclImpChTrFmlConverter()
  }
  
  // virtual, called from ExcToSc8::Convert()
@@ -7209,7 +7243,7 @@
  //------------------------------------------------------------------
  
 diff --git sc/source/filter/xml/xmlcelli.cxx sc/source/filter/xml/xmlcelli.cxx
-index 92eb208..a990e54 100644
+index 79ba70c..cc0a6a2 100644
 --- sc/source/filter/xml/xmlcelli.cxx
 +++ sc/source/filter/xml/xmlcelli.cxx
 @@ -146,185 +146,131 @@ ScXMLTableRowCellContext::ScXMLTableRowCellContext( ScXMLImport& rImport,
@@ -7564,7 +7598,7 @@
  //------------------------------------------------------------------
  
 diff --git sc/source/filter/xml/xmlexprt.cxx sc/source/filter/xml/xmlexprt.cxx
-index fcf3e8b..88449bc 100644
+index 865bd05..7604afa 100644
 --- sc/source/filter/xml/xmlexprt.cxx
 +++ sc/source/filter/xml/xmlexprt.cxx
 @@ -68,6 +68,7 @@
@@ -8256,7 +8290,7 @@
  void ScXMLExport::WriteConsolidation()
  {
 diff --git sc/source/filter/xml/xmlexprt.hxx sc/source/filter/xml/xmlexprt.hxx
-index e4fcc10..a6385f1 100644
+index f021601..7d55e81 100644
 --- sc/source/filter/xml/xmlexprt.hxx
 +++ sc/source/filter/xml/xmlexprt.hxx
 @@ -38,6 +38,8 @@
@@ -8302,7 +8336,7 @@
  	void ExportFormatRanges(const sal_Int32 nStartCol, const sal_Int32 nStartRow,
  		const sal_Int32 nEndCol, const sal_Int32 nEndRow, const sal_Int32 nSheet);
  	void WriteRowContent();
-@@ -196,6 +202,7 @@ class ScXMLExport : public SvXMLExport
+@@ -197,6 +203,7 @@ class ScXMLExport : public SvXMLExport
  	void WriteTheLabelRanges(const com::sun::star::uno::Reference< com::sun::star::sheet::XSpreadsheetDocument >& xSpreadDoc);
  	void WriteLabelRanges( const com::sun::star::uno::Reference< com::sun::star::container::XIndexAccess >& xRangesIAccess, sal_Bool bColumn );
  	void WriteNamedExpressions(const com::sun::star::uno::Reference <com::sun::star::sheet::XSpreadsheetDocument>& xSpreadDoc);
@@ -8828,7 +8862,7 @@
 +
 +#endif
 diff --git sc/source/filter/xml/xmlimprt.cxx sc/source/filter/xml/xmlimprt.cxx
-index 2299598..2ebdc76 100644
+index 7ac00ad..99beb2d 100644
 --- sc/source/filter/xml/xmlimprt.cxx
 +++ sc/source/filter/xml/xmlimprt.cxx
 @@ -104,6 +104,7 @@
@@ -8839,8 +8873,11 @@
  
  OUString SAL_CALL ScXMLImport_getImplementationName() throw()
  {
-@@ -417,22 +418,22 @@ static __FAR_DATA SvXMLTokenMapEntry aTableRowCellTokenMap[] =
+@@ -417,27 +418,25 @@ static __FAR_DATA SvXMLTokenMapEntry aTableRowCellTokenMap[] =
+ 	XML_TOKEN_MAP_END
+ };
  
+-#if 0 // apparently not used - 2008-08-15 (Friday)
  static __FAR_DATA SvXMLTokenMapEntry aTableRowCellAttrTokenMap[] =
  {
 -	{ XML_NAMESPACE_TABLE, XML_STYLE_NAME,						XML_TOK_TABLE_ROW_CELL_ATTR_STYLE_NAME				},
@@ -8876,9 +8913,30 @@
 +    { XML_NAMESPACE_OFFICE, XML_CURRENCY,                       XML_TOK_TABLE_ROW_CELL_ATTR_CURRENCY                },
 +    XML_TOKEN_MAP_END
  };
+-#endif
  
  static __FAR_DATA SvXMLTokenMapEntry aTableAnnotationAttrTokenMap[] =
-@@ -1561,6 +1562,25 @@ ScXMLImport::ScXMLImport(
+ {
+@@ -1121,12 +1120,12 @@ const SvXMLTokenMap& ScXMLImport::GetTableRowCellElemTokenMap()
+ 	return *pTableRowCellElemTokenMap;
+ }
+ 
+-//UNUSED2008-05  const SvXMLTokenMap& ScXMLImport::GetTableRowCellAttrTokenMap()
+-//UNUSED2008-05  {
+-//UNUSED2008-05      if ( !pTableRowCellAttrTokenMap )
+-//UNUSED2008-05          pTableRowCellAttrTokenMap = new SvXMLTokenMap( aTableRowCellAttrTokenMap );
+-//UNUSED2008-05      return *pTableRowCellAttrTokenMap;
+-//UNUSED2008-05  }
++const SvXMLTokenMap& ScXMLImport::GetTableRowCellAttrTokenMap()
++{
++    if ( !pTableRowCellAttrTokenMap )
++        pTableRowCellAttrTokenMap = new SvXMLTokenMap( aTableRowCellAttrTokenMap );
++    return *pTableRowCellAttrTokenMap;
++}
+ 
+ const SvXMLTokenMap& ScXMLImport::GetTableAnnotationAttrTokenMap()
+ {
+@@ -1565,6 +1564,25 @@ ScXMLImport::ScXMLImport(
          GetXMLToken( XML_NP_PRESENTATION ),
          GetXMLToken( XML_N_PRESENTATION ),
          XML_NAMESPACE_PRESENTATION );
@@ -8904,7 +8962,7 @@
  }
  
  ScXMLImport::~ScXMLImport() throw()
-@@ -1777,6 +1797,15 @@ void ScXMLImport::SetStatistics(
+@@ -1781,6 +1799,15 @@ void ScXMLImport::SetStatistics(
  	}
  }
  
@@ -8921,7 +8979,7 @@
  {
  	/*UniReference < XMLPropertySetMapper > xShapeStylesPropertySetMapper = new XMLPropertySetMapper((XMLPropertyMapEntry*)aXMLScShapeStylesProperties, xScPropHdlFactory);
 diff --git sc/source/filter/xml/xmlimprt.hxx sc/source/filter/xml/xmlimprt.hxx
-index e4fd8a0..cace08e 100644
+index 9e7682d..6e028f5 100644
 --- sc/source/filter/xml/xmlimprt.hxx
 +++ sc/source/filter/xml/xmlimprt.hxx
 @@ -40,7 +40,6 @@
@@ -8967,6 +9025,15 @@
  //	SvI18NMap& GetI18NMap() { return *pI18NMap; }
  
  //	inline const SvXMLImportItemMapper& GetParaItemMapper() const;
+@@ -849,7 +854,7 @@ public:
+ 	const SvXMLTokenMap& GetTableRowElemTokenMap();
+ 	const SvXMLTokenMap& GetTableRowAttrTokenMap();
+ 	const SvXMLTokenMap& GetTableRowCellElemTokenMap();
+-//UNUSED2008-05  const SvXMLTokenMap& GetTableRowCellAttrTokenMap();
++    const SvXMLTokenMap& GetTableRowCellAttrTokenMap();
+ 	const SvXMLTokenMap& GetTableAnnotationAttrTokenMap();
+ 	const SvXMLTokenMap& GetDetectiveElemTokenMap();
+ 	const SvXMLTokenMap& GetDetectiveHighlightedAttrTokenMap();
 diff --git sc/source/filter/xml/xmlsceni.cxx sc/source/filter/xml/xmlsceni.cxx
 index cfe859d..f4d6c89 100644
 --- sc/source/filter/xml/xmlsceni.cxx
@@ -9295,7 +9362,7 @@
      sal_Bool        bPrintEntireSheet;
  
 diff --git sc/source/filter/xml/xmlwrap.cxx sc/source/filter/xml/xmlwrap.cxx
-index 851d338..035793b 100644
+index 51410d2..5bf61f7 100644
 --- sc/source/filter/xml/xmlwrap.cxx
 +++ sc/source/filter/xml/xmlwrap.cxx
 @@ -85,6 +85,7 @@
@@ -9307,7 +9374,7 @@
  // -----------------------------------------------------------------------
  
 diff --git sc/source/ui/docshell/docsh4.cxx sc/source/ui/docshell/docsh4.cxx
-index bc5975d..6701d1c 100644
+index 8e79d9f..783c7f9 100644
 --- sc/source/ui/docshell/docsh4.cxx
 +++ sc/source/ui/docshell/docsh4.cxx
 @@ -123,6 +123,7 @@ using namespace ::com::sun::star;
@@ -9318,7 +9385,7 @@
  
  #include "sharedocdlg.hxx"
  
-@@ -540,6 +541,7 @@ void ScDocShell::Execute( SfxRequest& rReq )
+@@ -510,6 +511,7 @@ void ScDocShell::Execute( SfxRequest& rReq )
  				if (nDlgRet == RET_YES || nSet==LM_ALWAYS)
  				{
  					ReloadTabLinks();
@@ -11308,10 +11375,10 @@
          ScDocFunc aFunc( *pDocSh );
          ScBaseCell* pNewCell = new ScFormulaCell( pDoc, aCellPos, &aTokenArray );
 diff --git sc/source/ui/unoobj/docuno.cxx sc/source/ui/unoobj/docuno.cxx
-index 5a8c983..6a2fabf 100644
+index fa03a13..a340ff2 100644
 --- sc/source/ui/unoobj/docuno.cxx
 +++ sc/source/ui/unoobj/docuno.cxx
-@@ -123,6 +123,7 @@ const SfxItemPropertyMap* lcl_GetDocOptPropertyMap()
+@@ -124,6 +124,7 @@ const SfxItemPropertyMap* lcl_GetDocOptPropertyMap()
          {MAP_CHAR_LEN(SC_UNO_COLLABELRNG),       0, &getCppuType((uno::Reference<sheet::XLabelRanges>*)0),    0, 0},
          {MAP_CHAR_LEN(SC_UNO_DDELINKS),          0, &getCppuType((uno::Reference<container::XNameAccess>*)0), 0, 0},
          {MAP_CHAR_LEN(SC_UNO_DEFTABSTOP),        0, &getCppuType((sal_Int16*)0),                              0, 0},
@@ -11319,7 +11386,7 @@
          {MAP_CHAR_LEN(SC_UNO_FORBIDDEN),         0, &getCppuType((uno::Reference<i18n::XForbiddenCharacters>*)0), beans::PropertyAttribute::READONLY, 0},
          {MAP_CHAR_LEN(SC_UNO_HASDRAWPAGES),      0, &getBooleanCppuType(),                                    beans::PropertyAttribute::READONLY, 0},
          {MAP_CHAR_LEN(SC_UNO_IGNORECASE),        0, &getBooleanCppuType(),                                    0, 0},
-@@ -1537,6 +1538,10 @@ uno::Any SAL_CALL ScModelObj::getPropertyValue( const rtl::OUString& aPropertyNa
+@@ -1515,6 +1516,10 @@ uno::Any SAL_CALL ScModelObj::getPropertyValue( const rtl::OUString& aPropertyNa
  		{
  			aRet <<= uno::Reference<container::XNameAccess>(new ScDDELinksObj( pDocShell ));
  		}
@@ -11331,7 +11398,7 @@
  		{
  			aRet <<= uno::Reference<container::XNameAccess>(new ScSheetLinksObj( pDocShell ));
 diff --git sc/source/ui/unoobj/fmtuno.cxx sc/source/ui/unoobj/fmtuno.cxx
-index eb9f55b..c41ebe5 100644
+index 5809002..0a0332a 100644
 --- sc/source/ui/unoobj/fmtuno.cxx
 +++ sc/source/ui/unoobj/fmtuno.cxx
 @@ -197,14 +197,14 @@ void ScTableConditionalFormat::FillFormat( ScConditionalFormat& rFormat,
@@ -12038,7 +12105,7 @@
      }
      else
 diff --git sc/source/ui/view/tabvwsh4.cxx sc/source/ui/view/tabvwsh4.cxx
-index 436f0eb..2bf1f26 100644
+index ed7d4a5..b5f01f4 100644
 --- sc/source/ui/view/tabvwsh4.cxx
 +++ sc/source/ui/view/tabvwsh4.cxx
 @@ -100,6 +100,7 @@
@@ -12049,7 +12116,7 @@
  
  void ActivateOlk( ScViewData* pViewData );
  void DeActivateOlk( ScViewData* pViewData );
-@@ -1833,11 +1834,8 @@ void ScTabViewShell::Construct( BYTE nForceDesignMode )
+@@ -1822,11 +1823,8 @@ void ScTabViewShell::Construct( BYTE nForceDesignMode )
  		if ( pDocSh->GetCreateMode() != SFX_CREATE_MODE_INTERNAL &&
               pDocSh->IsUpdateEnabled() )  // #105575#; update only in the first creation of the ViewShell
  		{



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]