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



Author: kyoshida
Date: Tue Jan 27 07:20:58 2009
New Revision: 15165
URL: http://svn.gnome.org/viewvc/ooo-build?rev=15165&view=rev

Log:
2009-01-27  Kohei Yoshida  <kyoshida novell com>

	* patches/dev300/cws-scsheetprotection02-sc-m38.diff:
	* patches/dev300/cws-scsheetprotection02-sc.diff:
	* patches/dev300/apply: adjusted for dev300-m39.



Added:
   trunk/patches/dev300/cws-scsheetprotection02-sc-m38.diff   (props changed)
      - copied unchanged from r15157, /trunk/patches/dev300/cws-scsheetprotection02-sc.diff
Modified:
   trunk/ChangeLog
   trunk/patches/dev300/apply
   trunk/patches/dev300/cws-scsheetprotection02-sc.diff

Modified: trunk/patches/dev300/apply
==============================================================================
--- trunk/patches/dev300/apply	(original)
+++ trunk/patches/dev300/apply	Tue Jan 27 07:20:58 2009
@@ -870,11 +870,19 @@
 cws-scsheetprotection02-sfx2-m37.diff, i#60305, i#71468, i#84766, kohei
 cws-scsheetprotection02-svx-m37.diff,  i#60305, i#71468, i#84766, kohei
 
-[ CalcFixes >= dev300-m38 ]
+[ CalcFixes == dev300-m38 ]
+# 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.
+cws-scsheetprotection02-sc-m38.diff,   i#97515, kohei
+
+[ CalcFixes > dev300-m38 ]
 # 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.
 cws-scsheetprotection02-sc.diff,   i#97515, kohei
+
+[ CalcFixes >= dev300-m38 ]
 cws-scsheetprotection02-sfx2.diff, i#97515, kohei
 cws-scsheetprotection02-svx.diff,  i#97515, kohei
 

Modified: trunk/patches/dev300/cws-scsheetprotection02-sc.diff
==============================================================================
--- trunk/patches/dev300/cws-scsheetprotection02-sc.diff	(original)
+++ trunk/patches/dev300/cws-scsheetprotection02-sc.diff	Tue Jan 27 07:20:58 2009
@@ -1,8 +1,8 @@
 diff --git sc/inc/document.hxx sc/inc/document.hxx
-index bc70a7a..596ca70 100644
+index f73bb78..fe8ebe1 100644
 --- sc/inc/document.hxx
 +++ sc/inc/document.hxx
-@@ -89,6 +89,7 @@ class ScDBData;
+@@ -90,6 +90,7 @@ class ScDBData;
  class ScDetOpData;
  class ScDetOpList;
  class ScDocOptions;
@@ -10,7 +10,7 @@
  class ScDocumentPool;
  class ScDrawLayer;
  class ScExtDocOptions;
-@@ -107,6 +108,7 @@ class ScRangeName;
+@@ -108,6 +109,7 @@ class ScRangeName;
  class ScStyleSheet;
  class ScStyleSheetPool;
  class ScTable;
@@ -18,7 +18,7 @@
  class ScTokenArray;
  class ScValidationData;
  class ScValidationDataList;
-@@ -282,7 +284,7 @@ private:
+@@ -283,7 +285,7 @@ private:
  
  	ScFieldEditEngine*	pCacheFieldEditEngine;
  
@@ -27,7 +27,7 @@
  
      ::std::auto_ptr<ScExternalRefManager> pExternalRefMgr;
  	String              aDocName;                       // opt: Dokumentname
-@@ -346,7 +348,6 @@ private:
+@@ -347,7 +349,6 @@ private:
  
  	ScLkUpdMode			eLinkMode;
  
@@ -35,17 +35,17 @@
  	BOOL				bAutoCalc;						// Automatisch Berechnen
  	BOOL				bAutoCalcShellDisabled;			// in/von/fuer ScDocShell disabled
  	// ob noch ForcedFormulas berechnet werden muessen,
-@@ -528,13 +529,14 @@ SC_DLLPUBLIC	ScDBCollection*	GetDBCollection() const;
- 	inline SCTAB	GetTableCount() const { return nMaxTableNumber; }
+@@ -529,13 +530,14 @@ public:
+ 	SC_DLLPUBLIC inline SCTAB	GetTableCount() const { return nMaxTableNumber; }
  	SvNumberFormatterIndexTable* GetFormatExchangeList() const { return pFormatExchangeList; }
  
--	void			SetDocProtection( BOOL bProtect, const com::sun::star::uno::Sequence <sal_Int8>& aPass );
--	void			SetTabProtection( SCTAB nTab, BOOL bProtect, const com::sun::star::uno::Sequence <sal_Int8>& aPass );
-+    ScDocProtection* GetDocProtection() const;
-+    void            SetDocProtection(const ScDocProtection* pProtect);
- 	BOOL			IsDocProtected() const;
+-	SC_DLLPUBLIC void			SetDocProtection( BOOL bProtect, const com::sun::star::uno::Sequence <sal_Int8>& aPass );
+-	SC_DLLPUBLIC void			SetTabProtection( SCTAB nTab, BOOL bProtect, const com::sun::star::uno::Sequence <sal_Int8>& aPass );
++    SC_DLLPUBLIC ScDocProtection* GetDocProtection() const;
++    SC_DLLPUBLIC void            SetDocProtection(const ScDocProtection* pProtect);
+ 	SC_DLLPUBLIC BOOL			IsDocProtected() const;
  	BOOL			IsDocEditable() const;
- 	BOOL			IsTabProtected( SCTAB nTab ) const;
+ 	SC_DLLPUBLIC BOOL			IsTabProtected( SCTAB nTab ) const;
 -	const com::sun::star::uno::Sequence <sal_Int8>&	GetDocPassword() const;
 -	const com::sun::star::uno::Sequence <sal_Int8>&	GetTabPassword( SCTAB nTab ) const;
 +    SC_DLLPUBLIC    ScTableProtection* GetTabProtection( SCTAB nTab ) const;
@@ -54,7 +54,7 @@
  
  	void			LockTable(SCTAB nTab);
  	void			UnlockTable(SCTAB nTab);
-@@ -1464,7 +1466,8 @@ SC_DLLPUBLIC	SvNumberFormatter*	GetFormatTable() const;
+@@ -1460,7 +1462,8 @@ public:
  
  
  private:
@@ -65,10 +65,10 @@
  										SCCOL nX1, SCCOL nX2 ) const;
  
 diff --git sc/inc/sc.hrc sc/inc/sc.hrc
-index f4c942d..ea7ded5 100644
+index 4183466..4daebcc 100644
 --- sc/inc/sc.hrc
 +++ sc/inc/sc.hrc
-@@ -1626,7 +1626,12 @@
+@@ -1627,7 +1627,12 @@
  #define RID_SCDLG_CONFLICTS             (SC_DIALOGS_START + 145)
  #define RID_SCDLG_SHAREDOCUMENT         (SC_DIALOGS_START + 146)
  
@@ -83,7 +83,7 @@
  #ifndef STD_MASKCOLOR
  #define STD_MASKCOLOR Color { Red = 0xFF00; Green = 0x0000; Blue = 0xFF00; }
 diff --git sc/inc/scextopt.hxx sc/inc/scextopt.hxx
-index 772b77c..dac5afa 100644
+index 4aa9444..d9e654e 100644
 --- sc/inc/scextopt.hxx
 +++ sc/inc/scextopt.hxx
 @@ -46,8 +46,6 @@ struct ScExtDocSettings
@@ -96,7 +96,7 @@
      explicit            ScExtDocSettings();
  };
 diff --git sc/inc/table.hxx sc/inc/table.hxx
-index ad1daf9..9f2ae22 100644
+index eead372..931e8ac 100644
 --- sc/inc/table.hxx
 +++ sc/inc/table.hxx
 @@ -39,6 +39,8 @@
@@ -142,7 +142,7 @@
  	void			SetPageSize( const Size& rSize );
 diff --git sc/inc/tabprotection.hxx sc/inc/tabprotection.hxx
 new file mode 100644
-index 0000000..50b4798
+index 0000000..f49a471
 --- /dev/null
 +++ sc/inc/tabprotection.hxx
 @@ -0,0 +1,180 @@
@@ -327,7 +327,7 @@
 +
 +#endif
 diff --git sc/source/core/data/documen2.cxx sc/source/core/data/documen2.cxx
-index 9dc39d7..9db90f4 100644
+index cf81b60..9e7e602 100644
 --- sc/source/core/data/documen2.cxx
 +++ sc/source/core/data/documen2.cxx
 @@ -94,6 +94,7 @@
@@ -355,7 +355,7 @@
  		bAutoCalcShellDisabled( FALSE ),
  		bForcedFormulaPending( FALSE ),
 diff --git sc/source/core/data/documen3.cxx sc/source/core/data/documen3.cxx
-index 14fce18..f21db61 100644
+index 8900623..7ad994d 100644
 --- sc/source/core/data/documen3.cxx
 +++ sc/source/core/data/documen3.cxx
 @@ -79,6 +79,8 @@
@@ -367,7 +367,7 @@
  
  #include <memory>
  
-@@ -1672,28 +1674,28 @@ void ScDocument::SnapVisArea( Rectangle& rRect ) const
+@@ -1680,28 +1682,28 @@ void ScDocument::SnapVisArea( Rectangle& rRect ) const
          ScDrawLayer::MirrorRectRTL( rRect );        // back to real rectangle
  }
  
@@ -405,7 +405,7 @@
  }
  
  BOOL ScDocument::IsTabProtected( SCTAB nTab ) const
-@@ -1706,19 +1708,28 @@ BOOL ScDocument::IsTabProtected( SCTAB nTab ) const
+@@ -1713,18 +1715,28 @@ BOOL ScDocument::IsTabProtected( SCTAB nTab ) const
  	return FALSE;
  }
  
@@ -422,9 +422,8 @@
 -const uno::Sequence<sal_Int8>& ScDocument::GetTabPassword( SCTAB nTab ) const
 +void ScDocument::SetTabProtection(SCTAB nTab, const ScTableProtection* pProtect)
  {
--	if (VALIDTAB(nTab))
--		if (pTab[nTab])
--			return pTab[nTab]->GetPassword();
+-	if (VALIDTAB(nTab) && pTab[nTab])
+-		return pTab[nTab]->GetPassword();
 +    if (!ValidTab(nTab))
 +        return;
  
@@ -443,7 +442,7 @@
  
  const ScDocOptions& ScDocument::GetDocOptions() const
 diff --git sc/source/core/data/document.cxx sc/source/core/data/document.cxx
-index 34cc8d7..d13323e 100644
+index a8a695f..09b71a1 100644
 --- sc/source/core/data/document.cxx
 +++ sc/source/core/data/document.cxx
 @@ -93,6 +93,7 @@
@@ -454,7 +453,7 @@
  
  namespace WritingMode2 = ::com::sun::star::text::WritingMode2;
  
-@@ -3947,24 +3948,6 @@ BOOL ScDocument::RefreshAutoFilter( SCCOL nStartCol, SCROW nStartRow,
+@@ -3953,24 +3954,6 @@ BOOL ScDocument::RefreshAutoFilter( SCCOL nStartCol, SCROW nStartRow,
  }
  
  
@@ -513,7 +512,7 @@
  	pRowHeight( NULL ),
  	pColFlags( NULL ),
 diff --git sc/source/core/data/table2.cxx sc/source/core/data/table2.cxx
-index 66849b5..7202f1e 100644
+index c87b018..69f86db 100644
 --- sc/source/core/data/table2.cxx
 +++ sc/source/core/data/table2.cxx
 @@ -292,7 +292,7 @@ void ScTable::DeleteArea(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, USH
@@ -1081,10 +1080,10 @@
 +}
 +
 diff --git sc/source/filter/excel/excdoc.cxx sc/source/filter/excel/excdoc.cxx
-index f6d7218..d991d0a 100644
+index eee5bd5..8c81942 100644
 --- sc/source/filter/excel/excdoc.cxx
 +++ sc/source/filter/excel/excdoc.cxx
-@@ -67,11 +67,11 @@
+@@ -68,11 +68,11 @@
  #include "convuno.hxx"
  #include "patattr.hxx"
  #include "docoptio.hxx"
@@ -1097,7 +1096,16 @@
  #include "xcl97rec.hxx"
  #include "xcl97esc.hxx"
  #include "xetable.hxx"
-@@ -150,7 +150,16 @@ void ExcTable::FillAsHeader( ExcBoundsheetList& rBoundsheetList )
+@@ -118,7 +118,7 @@ static void lcl_AddCalcPr( XclExpRecordList<>& aRecList, ExcTable& self )
+     aRecList.AppendNewRecord( new XclRefmode( rDoc ) );
+     aRecList.AppendNewRecord( new XclIteration( rDoc ) );
+     aRecList.AppendNewRecord( new XclDelta( rDoc ) );
+-    aRecList.AppendNewRecord( new ExcDummy8_02 );
++    aRecList.AppendNewRecord( new XclExpBoolRecord(0x005F, true) ); // SAVERECALC
+     aRecList.AppendNewRecord( new XclExpXmlEndSingleElementRecord() );  // XML_calcPr
+ }
+ 
+@@ -209,7 +209,16 @@ void ExcTable::FillAsHeader( ExcBoundsheetList& rBoundsheetList )
  		Add( new ExcDummy_00 );
  	else
  	{
@@ -1115,7 +1123,7 @@
  		rR.pTabId = new XclExpChTrTabId( Max( nExcTabCount, nCodenames ) );
  		Add( rR.pTabId );
          if( HasVbaStorage() )
-@@ -160,7 +169,8 @@ void ExcTable::FillAsHeader( ExcBoundsheetList& rBoundsheetList )
+@@ -219,7 +228,8 @@ void ExcTable::FillAsHeader( ExcBoundsheetList& rBoundsheetList )
              if( rCodeName.Len() )
                  Add( new XclCodename( rCodeName ) );
  		}
@@ -1125,7 +1133,7 @@
  	}
  
  	// erst Namen- und Tabellen-Eintraege aufbauen
-@@ -180,15 +190,31 @@ void ExcTable::FillAsHeader( ExcBoundsheetList& rBoundsheetList )
+@@ -239,12 +249,22 @@ void ExcTable::FillAsHeader( ExcBoundsheetList& rBoundsheetList )
          aRecList.AppendRecord( CreateRecord( EXC_ID_NAME ) );
      }
  
@@ -1150,7 +1158,11 @@
 +        Add( new XclExpProt4RevPass );
 +    }
  
-     aRecList.AppendNewRecord( new XclExpWindow1( GetRoot() ) );
+     // document protection options
+     if( GetOutput() == EXC_OUTPUT_BINARY )
+@@ -255,6 +275,12 @@ void ExcTable::FillAsHeader( ExcBoundsheetList& rBoundsheetList )
+ 
+     Add( new XclExpXmlStartSingleElementRecord( XML_workbookPr ) );
  
 +    if ( GetBiff() == EXC_BIFF8 )
 +    {
@@ -1161,7 +1173,7 @@
      if( GetBiff() <= EXC_BIFF5 )
      {
  		Add( new ExcDummy_040 );
-@@ -197,9 +223,11 @@ void ExcTable::FillAsHeader( ExcBoundsheetList& rBoundsheetList )
+@@ -263,9 +289,12 @@ void ExcTable::FillAsHeader( ExcBoundsheetList& rBoundsheetList )
      }
      else
      {
@@ -1171,12 +1183,13 @@
 -        Add( new ExcDummy8_041 );
 +        Add( new XclExpBoolRecord(0x01B7, false) ); // REFRESHALL
 +        Add( new XclExpBoolRecord(0x00DA, false) ); // BOOKBOOL
-     }
- 
-     // Formatting: FONT, FORMAT, XF, STYLE, PALETTE
-@@ -258,10 +286,14 @@ void ExcTable::FillAsHeader( ExcBoundsheetList& rBoundsheetList )
-         aRecList.AppendRecord( CreateRecord( EXC_ID_EXTERNSHEET ) );
-         aRecList.AppendRecord( CreateRecord( EXC_ID_NAME ) );
++
+         // OOXTODO: The following /workbook/workbookPr attributes are mapped
+         //          to various BIFF records that are not currently supported:
+         //
+@@ -361,10 +390,14 @@ void ExcTable::FillAsHeader( ExcBoundsheetList& rBoundsheetList )
+         if( GetOutput() != EXC_OUTPUT_BINARY )
+             lcl_AddCalcPr( aRecList, *this );
  
 +        Add( new XclExpRecalcId );
 +
@@ -1189,16 +1202,7 @@
  	}
  
  	Add( new ExcEof );
-@@ -303,7 +335,7 @@ void ExcTable::FillAsTable( size_t nCodeNameIdx )
-         Add( new XclRefmode( rDoc ) );
-         Add( new XclIteration( rDoc ) );
-         Add( new XclDelta( rDoc ) );
--        Add( new ExcDummy8_02 );
-+        Add( new XclExpBoolRecord(0x005F, true) ); // SAVERECALC
-     }
- 
-     // GUTS (count & size of outline icons)
-@@ -320,8 +352,16 @@ void ExcTable::FillAsTable( size_t nCodeNameIdx )
+@@ -425,8 +458,16 @@ void ExcTable::FillAsTable( size_t nCodeNameIdx )
      // page settings (SETUP and various other records)
      aRecList.AppendRecord( xPageSett );
  
@@ -1217,7 +1221,7 @@
  
      // local link table: EXTERNCOUNT, EXTERNSHEET
      if( eBiff <= EXC_BIFF5 )
-@@ -367,6 +407,9 @@ void ExcTable::FillAsTable( size_t nCodeNameIdx )
+@@ -467,6 +508,9 @@ void ExcTable::FillAsTable( size_t nCodeNameIdx )
  
      if( eBiff == EXC_BIFF8 )
  	{
@@ -1266,18 +1270,18 @@
  	ImportExcel::PostDocLoad();
  
 diff --git sc/source/filter/excel/excrecds.cxx sc/source/filter/excel/excrecds.cxx
-index 16c04f1..81b97f0 100644
+index 8c3104c..fca33a1 100644
 --- sc/source/filter/excel/excrecds.cxx
 +++ sc/source/filter/excel/excrecds.cxx
-@@ -99,6 +99,7 @@
- #include "xcl97rec.hxx"
+@@ -340,6 +340,7 @@ sal_Size ExcFngroupcount::GetLen( void ) const
+ }
  
  
 +using ::com::sun::star::uno::Sequence;
  
  //--------------------------------------------------------- class ExcDummy_00 -
- const BYTE		ExcDummy_00::pMyData[] = {
-@@ -418,7 +419,9 @@ ExcBundlesheetBase::ExcBundlesheetBase() :
+ 
+@@ -432,7 +433,9 @@ ExcBundlesheetBase::ExcBundlesheetBase() :
  void ExcBundlesheetBase::UpdateStreamPos( XclExpStream& rStrm )
  {
      rStrm.SetSvStreamPos( nOwnPos );
@@ -1287,23 +1291,7 @@
  }
  
  
-@@ -494,19 +497,41 @@ XclExpWsbool::XclExpWsbool( bool bFitToPages ) :
- // XclExpWindowProtection ===============================================================
- 
- XclExpWindowProtection::XclExpWindowProtection(bool bValue) :
--	XclExpBoolRecord(EXC_ID_WINDOWPROTECT,bValue)
-+	XclExpBoolRecord(EXC_ID_WINDOWPROTECT, bValue)
- {
- }
- 
- // XclExpDocProtection ===============================================================
- 
--XclExpDocProtection::XclExpDocProtection(bool bValue) :
--	XclExpBoolRecord(EXC_ID_PROTECT,bValue)
-+XclExpProtection::XclExpProtection(bool bValue) :
-+	XclExpBoolRecord(EXC_ID_PROTECT, bValue)
- {
- }
+@@ -552,6 +555,28 @@ XclExpDocProtection::XclExpDocProtection(bool bValue) :
  
  // ============================================================================
  
@@ -1482,24 +1470,24 @@
              }
              break;
 diff --git sc/source/filter/excel/xeroot.cxx sc/source/filter/excel/xeroot.cxx
-index aa0e713..0c32b52 100644
+index abe1da2..600a928 100644
 --- sc/source/filter/excel/xeroot.cxx
 +++ sc/source/filter/excel/xeroot.cxx
-@@ -32,7 +32,11 @@
+@@ -31,7 +31,11 @@
+ // MARKER(update_precomp.py): autogen include statement, do not remove
  #include "precompiled_sc.hxx"
- #include "xeroot.hxx"
  #include <sfx2/docfile.hxx>
 +#include <sfx2/sfxsids.hrc>
  #include <svtools/saveopt.hxx>
 +#include <svtools/itemset.hxx>
 +#include <svtools/stritem.hxx>
 +#include <svtools/eitem.hxx>
+ #include "xecontent.hxx"
  #include "xltracer.hxx"
  #include "xehelper.hxx"
- #include "xeformula.hxx"
 @@ -42,8 +46,10 @@
- #include "xecontent.hxx"
  #include "xepivot.hxx"
+ #include "xeroot.hxx"
  
 -// for filter manager
 -#include "excrecds.hxx"
@@ -1552,20 +1540,21 @@
  {
      return IsInGlobals() ? mrExpData.mxGlobLinkMgr : mrExpData.mxLocLinkMgr;
 diff --git sc/source/filter/excel/xestream.cxx sc/source/filter/excel/xestream.cxx
-index 98a1da9..3eeb724 100644
+index ffb8622..a279b9d 100644
 --- sc/source/filter/excel/xestream.cxx
 +++ sc/source/filter/excel/xestream.cxx
-@@ -34,6 +34,9 @@
- #include "xlstring.hxx"
- #include "xeroot.hxx"
+@@ -51,6 +51,10 @@
+ #include <oox/core/tokens.hxx>
+ #include <formula/grammar.hxx>
  
 +#define DEBUG_XL_ENCRYPTION 0
 +
 +using ::std::vector;
- 
- // ============================================================================
- 
-@@ -63,16 +66,19 @@ XclExpStream::~XclExpStream()
++
+ using ::com::sun::star::beans::PropertyValue;
+ using ::com::sun::star::io::XOutputStream;
+ using ::com::sun::star::io::XStream;
+@@ -92,16 +96,19 @@ XclExpStream::~XclExpStream()
  void XclExpStream::StartRecord( sal_uInt16 nRecId, sal_Size nRecSize )
  {
      DBG_ASSERT( !mbInRec, "XclExpStream::StartRecord - another record still open" );
@@ -1585,7 +1574,7 @@
      UpdateRecSize();
      mrStrm.Seek( STREAM_SEEK_TO_END );
      mbInRec = false;
-@@ -84,6 +90,86 @@ void XclExpStream::SetSliceSize( sal_uInt16 nSize )
+@@ -113,6 +120,86 @@ void XclExpStream::SetSliceSize( sal_uInt16 nSize )
      mnSliceSize = 0;
  }
  
@@ -1672,7 +1661,7 @@
  sal_Size XclExpStream::Write( const void* pData, sal_Size nBytes )
  {
      sal_Size nRet = 0;
-@@ -98,9 +184,21 @@ sal_Size XclExpStream::Write( const void* pData, sal_Size nBytes )
+@@ -127,9 +214,21 @@ sal_Size XclExpStream::Write( const void* pData, sal_Size nBytes )
              while( bValid && (nBytesLeft > 0) )
              {
                  sal_Size nWriteLen = ::std::min< sal_Size >( PrepareWrite(), nBytesLeft );
@@ -1695,7 +1684,7 @@
                  pBuffer += nWriteRet;
                  nRet += nWriteRet;
                  nBytesLeft -= nWriteRet;
-@@ -236,6 +334,26 @@ void XclExpStream::WriteCharBuffer( const ScfUInt8Vec& rBuffer )
+@@ -265,6 +364,26 @@ void XclExpStream::WriteCharBuffer( const ScfUInt8Vec& rBuffer )
      Write( &rBuffer[ 0 ], rBuffer.size() );
  }
  
@@ -1722,7 +1711,7 @@
  sal_Size XclExpStream::SetSvStreamPos( sal_Size nPos )
  {
      DBG_ASSERT( !mbInRec, "XclExpStream::SetSvStreamPos - not allowed inside of a record" );
-@@ -327,3 +445,187 @@ void XclExpStream::WriteRawZeroBytes( sal_Size nBytes )
+@@ -356,6 +475,190 @@ void XclExpStream::WriteRawZeroBytes( sal_Size nBytes )
  
  // ============================================================================
  
@@ -1910,6 +1899,9 @@
 +    }
 +    mnOldPos = nStrmPos;
 +}
+ rtl::OUString XclXmlUtils::GetStreamName( const char* sStreamDir, const char* sStream, sal_Int32 nId )
+ {
+     rtl::OUStringBuffer sBuf;
 diff --git sc/source/filter/excel/xicontent.cxx sc/source/filter/excel/xicontent.cxx
 index 2e9d0d5..abc5d02 100644
 --- sc/source/filter/excel/xicontent.cxx
@@ -2125,7 +2117,7 @@
  // ============================================================================
  
 diff --git sc/source/filter/excel/xilink.cxx sc/source/filter/excel/xilink.cxx
-index 502316c..02c1357 100644
+index 83907fc..9858377 100644
 --- sc/source/filter/excel/xilink.cxx
 +++ sc/source/filter/excel/xilink.cxx
 @@ -263,6 +263,7 @@ void XclImpTabInfo::ReadTabid( XclImpStream& rStrm )
@@ -2248,10 +2240,10 @@
  
      SetHasValidPassword( bValid );
 diff --git sc/source/filter/excel/xlroot.cxx sc/source/filter/excel/xlroot.cxx
-index e4980d8..6d8357f 100644
+index bdc75df..8f5ddad 100644
 --- sc/source/filter/excel/xlroot.cxx
 +++ sc/source/filter/excel/xlroot.cxx
-@@ -91,8 +91,7 @@ XclRootData::XclRootData( XclBiff eBiff, SfxMedium& rMedium,
+@@ -92,8 +92,7 @@ XclRootData::XclRootData( XclBiff eBiff, SfxMedium& rMedium,
      mxRD( new RootData ),//!
      mnCharWidth( 110 ),
      mnScTab( 0 ),
@@ -2261,7 +2253,7 @@
  {
      // default script type, e.g. for empty cells
      switch( ScGlobal::GetDefaultScriptType() )
-@@ -198,17 +197,6 @@ void XclRoot::SetCharWidth( const XclFontData& rFontData )
+@@ -199,17 +198,6 @@ void XclRoot::SetCharWidth( const XclFontData& rFontData )
      }
  }
  
@@ -2300,10 +2292,10 @@
          virtual void            EndSheet( void );
  		virtual void			PostDocLoad( void );
 diff --git sc/source/filter/inc/excrecds.hxx sc/source/filter/inc/excrecds.hxx
-index 0d85d9b..78f60c0 100644
+index 048a910..bb6a26f 100644
 --- sc/source/filter/inc/excrecds.hxx
 +++ sc/source/filter/inc/excrecds.hxx
-@@ -244,10 +244,23 @@ class XclExpWindowProtection : public	XclExpBoolRecord
+@@ -246,10 +246,23 @@ class XclExpWindowProtection : public	XclExpBoolRecord
  };
  
  // EXC_ID_PROTECT  Document Protection
@@ -2348,7 +2340,7 @@
  	void					Array25( void );				// 0x21
  	void					Rec1904( void );				// 0x22
 diff --git sc/source/filter/inc/xcl97rec.hxx sc/source/filter/inc/xcl97rec.hxx
-index a3a3589..0074d6a 100644
+index 8d6ab02..7517cb9 100644
 --- sc/source/filter/inc/xcl97rec.hxx
 +++ sc/source/filter/inc/xcl97rec.hxx
 @@ -35,6 +35,8 @@
@@ -2404,7 +2396,7 @@
  };
  
  
-@@ -456,23 +452,24 @@ public:
+@@ -464,23 +460,24 @@ public:
      virtual sal_Size            GetLen() const;
  };
  
@@ -2440,8 +2432,8 @@
  
  class XclCalccount : public ExcRecord
  {
-@@ -528,5 +525,162 @@ public:
-                                 XclRefmode( const ScDocument& );
+@@ -533,6 +530,163 @@ public:
+     virtual void                SaveXml( XclExpXmlStream& rStrm );
  };
  
 +// ============================================================================
@@ -2602,7 +2594,8 @@
 +};
 +
  
- #endif // _XCL97REC_HXX
+ 
+ 
 diff --git sc/source/filter/inc/xeroot.hxx sc/source/filter/inc/xeroot.hxx
 index 7e97e92..f4e1d25 100644
 --- sc/source/filter/inc/xeroot.hxx
@@ -2621,12 +2614,12 @@
      XclExpRootData::XclExpLinkMgrRef GetLocalLinkMgrRef() const;
  
 diff --git sc/source/filter/inc/xestream.hxx sc/source/filter/inc/xestream.hxx
-index de3e58a..f485901 100644
+index bd957ca..3b49017 100644
 --- sc/source/filter/inc/xestream.hxx
 +++ sc/source/filter/inc/xestream.hxx
-@@ -35,6 +35,9 @@
- 
+@@ -43,6 +43,9 @@
  #include "xlstream.hxx"
+ #include "xestring.hxx"
  
 +#include <svx/mscodec.hxx>
 +#include <vector>
@@ -2634,7 +2627,7 @@
  /* ============================================================================
  Output stream class for Excel export
  - CONTINUE record handling
-@@ -42,6 +45,8 @@ Output stream class for Excel export
+@@ -50,6 +53,8 @@ Output stream class for Excel export
  ============================================================================ */
  
  class XclExpRoot;
@@ -2643,7 +2636,7 @@
  
  /** This class is used to export Excel record streams.
      @descr  An instance is constructed with an SvStream and the maximum size of Excel
-@@ -100,14 +105,14 @@ public:
+@@ -108,14 +113,14 @@ public:
      /** Sets data slice length. 0 = no slices. */
      void                SetSliceSize( sal_uInt16 nSize );
  
@@ -2666,7 +2659,7 @@
  
      /** Writes nBytes bytes from memory. */
      sal_Size            Write( const void* pData, sal_Size nBytes );
-@@ -150,6 +155,14 @@ public:
+@@ -158,6 +163,14 @@ public:
      /** Returns the absolute position of the system stream. */
      inline sal_Size     GetSvStreamPos() const { return mrStrm.Tell(); }
  
@@ -2681,7 +2674,7 @@
  private:
      /** Writes header data, internal setup. */
      void                InitRecord( sal_uInt16 nRecId );
-@@ -172,6 +185,9 @@ private:
+@@ -180,6 +193,9 @@ private:
      SvStream&           mrStrm;         /// Reference to the system output stream.
      const XclExpRoot&   mrRoot;         /// Filter root data.
  
@@ -2691,7 +2684,7 @@
                          // length data
      sal_uInt16          mnMaxRecSize;   /// Maximum size of record content.
      sal_uInt16          mnMaxContSize;  /// Maximum size of CONTINUE content.
-@@ -189,64 +205,51 @@ private:
+@@ -197,64 +213,51 @@ private:
  
  // ----------------------------------------------------------------------------
  
@@ -2789,13 +2782,13 @@
 +    bool                mbValid;
 +};
  
- #endif
+ // ----------------------------------------------------------------------------
  
 diff --git sc/source/filter/inc/xetable.hxx sc/source/filter/inc/xetable.hxx
-index b565289..8efd337 100644
+index 2c03a30..3da59d2 100644
 --- sc/source/filter/inc/xetable.hxx
 +++ sc/source/filter/inc/xetable.hxx
-@@ -1069,7 +1069,5 @@ private:
+@@ -1088,7 +1088,5 @@ private:
      XclExpDvalRef       mxDval;             /// Data validation with DVAL and DV records.
  };
  
@@ -2967,10 +2960,10 @@
      sal_Size            mnOldPos;       /// Last known stream position.
      sal_uInt16          mnRecSize;      /// Current record size.
 diff --git sc/source/filter/inc/xlroot.hxx sc/source/filter/inc/xlroot.hxx
-index a09f5d0..38506c5 100644
+index 4c917eb..4705829 100644
 --- sc/source/filter/inc/xlroot.hxx
 +++ sc/source/filter/inc/xlroot.hxx
-@@ -91,7 +91,6 @@ struct XclRootData
+@@ -92,7 +92,6 @@ struct XclRootData
      ScDocument&         mrDoc;              /// The source or destination document.
      String              maDocUrl;           /// Document URL of imported/exported file.
      String              maBasePath;         /// Base path of imported/exported file (path of maDocUrl).
@@ -2978,7 +2971,7 @@
      rtl_TextEncoding    meTextEnc;          /// Text encoding to import/export byte strings.
      LanguageType        meSysLang;          /// System language.
      LanguageType        meDocLang;          /// Document language (import: from file, export: from system).
-@@ -115,7 +114,6 @@ struct XclRootData
+@@ -116,7 +115,6 @@ struct XclRootData
      long                mnCharWidth;        /// Width of '0' in default font (twips).
      SCTAB               mnScTab;            /// Current Calc sheet index.
      const bool          mbExport;           /// false = Import, true = Export.
@@ -2986,7 +2979,7 @@
  
      explicit            XclRootData( XclBiff eBiff, SfxMedium& rMedium,
                              SotStorageRef xRootStrg, ScDocument& rDoc,
-@@ -181,8 +179,6 @@ public:
+@@ -184,8 +182,6 @@ public:
      inline const String& GetDocUrl() const { return mrData.maDocUrl; }
      /** Returns the base path of the imported/exported file. */
      inline const String& GetBasePath() const { return mrData.maBasePath; }
@@ -2996,7 +2989,7 @@
      /** Returns the OLE2 root storage of the imported/exported file.
          @return  Pointer to root storage or 0, if the file is a simple stream. */
 diff --git sc/source/filter/starcalc/scflt.cxx sc/source/filter/starcalc/scflt.cxx
-index 9e2f57b..26cdd91 100644
+index 85cdd00..7d3eba6 100644
 --- sc/source/filter/starcalc/scflt.cxx
 +++ sc/source/filter/starcalc/scflt.cxx
 @@ -81,6 +81,7 @@
@@ -3038,7 +3031,7 @@
  		rStream >> TabNo;
  
 diff --git sc/source/filter/xcl97/XclExpChangeTrack.cxx sc/source/filter/xcl97/XclExpChangeTrack.cxx
-index 4aec3d6..5b90f44 100644
+index 76264e7..4318d4f 100644
 --- sc/source/filter/xcl97/XclExpChangeTrack.cxx
 +++ sc/source/filter/xcl97/XclExpChangeTrack.cxx
 @@ -491,6 +491,7 @@ void XclExpChTrTabId::Copy( const XclExpChTrTabIdBuffer& rBuffer )
@@ -3050,10 +3043,10 @@
  		for( sal_uInt16* pElem = pBuffer; pElem < (pBuffer + nTabCount); pElem++ )
  			rStrm << *pElem;
 diff --git sc/source/filter/xcl97/makefile.mk sc/source/filter/xcl97/makefile.mk
-index 9b081f3..e558ddd 100644
+index b3cd48f..d613347 100644
 --- sc/source/filter/xcl97/makefile.mk
 +++ sc/source/filter/xcl97/makefile.mk
-@@ -50,7 +50,6 @@ PROJECTPCHSOURCE=..\pch\filt_pch
+@@ -49,7 +49,6 @@ PROJECTPCHSOURCE=..\pch\filt_pch
  # --- Files --------------------------------------------------------
  
  SLOFILES =									\
@@ -3062,7 +3055,7 @@
  		$(SLO)$/xcl97rec.obj				\
  		$(SLO)$/XclImpChangeTrack.obj		\
 diff --git sc/source/filter/xcl97/xcl97rec.cxx sc/source/filter/xcl97/xcl97rec.cxx
-index bcf7d57..aa0fd88 100644
+index 7ef045c..16cedee 100644
 --- sc/source/filter/xcl97/xcl97rec.cxx
 +++ sc/source/filter/xcl97/xcl97rec.cxx
 @@ -78,6 +78,7 @@
@@ -3071,9 +3064,9 @@
  #include "patattr.hxx"
 +#include "tabprotection.hxx"
  
- using ::rtl::OUString;
- using namespace ::com::sun::star;
-@@ -132,9 +133,9 @@ sal_Size XclMsodrawing_Base::GetDataLen() const
+ #include <oox/core/tokens.hxx>
+ 
+@@ -135,9 +136,9 @@ sal_Size XclMsodrawing_Base::GetDataLen() const
  
  // --- class XclMsodrawinggroup --------------------------------------
  
@@ -3086,7 +3079,7 @@
  {
  	if ( nEscherType )
  	{
-@@ -179,7 +180,7 @@ XclMsodrawinggroup::~XclMsodrawinggroup()
+@@ -182,7 +183,7 @@ XclMsodrawinggroup::~XclMsodrawinggroup()
  }
  
  
@@ -3095,7 +3088,7 @@
  {
      DBG_ASSERT( GetEscherEx()->GetStreamPos() == GetEscherEx()->GetOffsetFromMap( nStartPos ),
  		"XclMsodrawinggroup::SaveCont: Escher stream position mismatch" );
-@@ -187,23 +188,11 @@ void XclMsodrawinggroup::SaveCont( XclExpStream& rStrm )
+@@ -190,23 +191,11 @@ void XclMsodrawinggroup::SaveCont( XclExpStream& rStrm )
  }
  
  
@@ -3121,7 +3114,7 @@
  {
  	if ( nEscherType )
  	{
-@@ -229,7 +218,7 @@ XclMsodrawing::~XclMsodrawing()
+@@ -232,7 +221,7 @@ XclMsodrawing::~XclMsodrawing()
  }
  
  
@@ -3130,7 +3123,7 @@
  {
      DBG_ASSERT( GetEscherEx()->GetStreamPos() == GetEscherEx()->GetOffsetFromMap( nStartPos ),
  		"XclMsodrawing::SaveCont: Escher stream position mismatch" );
-@@ -237,16 +226,6 @@ void XclMsodrawing::SaveCont( XclExpStream& rStrm )
+@@ -240,16 +229,6 @@ void XclMsodrawing::SaveCont( XclExpStream& rStrm )
  }
  
  
@@ -3147,7 +3140,7 @@
  
  
  // --- class XclObjList ----------------------------------------------
-@@ -883,6 +862,7 @@ ExcBof8_Base::ExcBof8_Base()
+@@ -886,6 +865,7 @@ ExcBof8_Base::ExcBof8_Base()
  
  void ExcBof8_Base::SaveCont( XclExpStream& rStrm )
  {
@@ -3155,19 +3148,19 @@
  	rStrm	<< nVers << nDocType << nRupBuild << nRupYear
  			<< nFileHistory << nLowestBiffVer;
  }
-@@ -936,7 +916,10 @@ void ExcBundlesheet8::SaveCont( XclExpStream& rStrm )
+@@ -945,7 +925,10 @@ void ExcBundlesheet8::SaveCont( XclExpStream& rStrm )
  {
      nOwnPos = rStrm.GetSvStreamPos();
      // write dummy position, real position comes later
--    rStrm << sal_uInt32( 0 ) << nGrbit << aUnicodeName;
+-    rStrm << sal_uInt32( 0 ) << nGrbit << GetName();
 +    rStrm.DisableEncryption();
 +    rStrm << sal_uInt32(0);
 +    rStrm.EnableEncryption();
-+    rStrm << nGrbit << aUnicodeName;
++    rStrm << nGrbit << GetName();
  }
  
  
-@@ -1177,33 +1160,73 @@ sal_Size ExcEScenarioManager::GetLen() const
+@@ -1253,33 +1236,73 @@ sal_Size ExcEScenarioManager::GetLen() const
  	return 8;
  }
  
@@ -3192,6 +3185,8 @@
 +    XclExpRecord( 0x0867, 23 )
  {
 -	return nMyLen;
+-}
+-
 +    static const XclExpTabProtectOption aTable[] =
 +    {
 +        { ScTableProtection::OBJECTS,               0x0001 },
@@ -3218,7 +3213,10 @@
 +    ScTableProtection* pProtect = rRoot.GetDoc().GetTabProtection(nTab);
 +    if (!pProtect)
 +        return;
-+
+ 
+-const BYTE* XclProtection::GetData( void ) const
+-{
+-	return pMyData;
 +    for (int i = 0; aTable[i].nMask != 0x0000; ++i)
 +    {
 +        if ( pProtect->isOptionEnabled(aTable[i].eOption) )
@@ -3226,13 +3224,8 @@
 +    }
  }
  
--
--const BYTE* XclProtection::GetData( void ) const
 +void XclExpSheetProtectOptions::WriteBody( XclExpStream& rStrm )
- {
--	return pMyData;
--}
--
++{
 +    sal_uInt16 nBytes = 0x0867;
 +    rStrm << nBytes;
  
@@ -3256,11 +3249,10 @@
  
  
  
-@@ -1291,3 +1314,250 @@ XclRefmode::XclRefmode( const ScDocument& rDoc ) :
-     XclExpBoolRecord( 0x000F, rDoc.GetAddressConvention() != ScAddress::CONV_XL_R1C1 )
+@@ -1392,6 +1415,253 @@ XclRefmode::XclRefmode( const ScDocument& rDoc ) :
  {
  }
-+
+ 
 +// ============================================================================
 +
 +XclExpFilePass::XclExpFilePass( const XclExpRoot& rRoot ) :
@@ -3507,8 +3499,12 @@
 +{
 +}
 +
++
+ void XclRefmode::SaveXml( XclExpXmlStream& rStrm )
+ {
+     rStrm.WriteAttributes(
 diff --git sc/source/filter/xml/xmlbodyi.cxx sc/source/filter/xml/xmlbodyi.cxx
-index 320c8ac..2105eec 100644
+index 4460413..fa993ef 100644
 --- sc/source/filter/xml/xmlbodyi.cxx
 +++ sc/source/filter/xml/xmlbodyi.cxx
 @@ -52,6 +52,7 @@
@@ -3525,9 +3521,9 @@
  
 +#include <memory>
 +
+ using rtl::OUString;
  using namespace com::sun::star;
  using namespace xmloff::token;
- using ::rtl::OUString;
 @@ -281,10 +284,17 @@ void ScXMLBodyContext::EndElement()
          // #i37959# handle document protection after the sheet settings
  		if (bProtected)
@@ -3548,7 +3544,7 @@
  	}
  	GetScImport().UnlockSolarMutex();
 diff --git sc/source/filter/xml/xmlexprt.cxx sc/source/filter/xml/xmlexprt.cxx
-index 3d5a0ef..906ecc8 100644
+index c83cbaa..b5e508a 100644
 --- sc/source/filter/xml/xmlexprt.cxx
 +++ sc/source/filter/xml/xmlexprt.cxx
 @@ -68,6 +68,7 @@
@@ -3559,7 +3555,7 @@
  
  #include <xmloff/xmltoken.hxx>
  #include <xmloff/xmlnmspe.hxx>
-@@ -1470,7 +1471,11 @@ void ScXMLExport::SetBodyAttributes()
+@@ -1471,7 +1472,11 @@ void ScXMLExport::SetBodyAttributes()
  	{
  		AddAttribute(XML_NAMESPACE_TABLE, XML_STRUCTURE_PROTECTED, XML_TRUE);
  		rtl::OUStringBuffer aBuffer;
@@ -3572,7 +3568,7 @@
  		if (aBuffer.getLength())
  			AddAttribute(XML_NAMESPACE_TABLE, XML_PROTECTION_KEY, aBuffer.makeStringAndClear());
  	}
-@@ -1544,7 +1549,11 @@ void ScXMLExport::_ExportContent()
+@@ -1545,7 +1550,11 @@ void ScXMLExport::_ExportContent()
                          AddAttribute(XML_NAMESPACE_TABLE, XML_PROTECTED, XML_TRUE);
                          rtl::OUStringBuffer aBuffer;
                          if (pDoc)
@@ -3586,7 +3582,7 @@
                              AddAttribute(XML_NAMESPACE_TABLE, XML_PROTECTION_KEY, aBuffer.makeStringAndClear());
                      }
 diff --git sc/source/filter/xml/xmlsubti.cxx sc/source/filter/xml/xmlsubti.cxx
-index a268069..798f41f 100644
+index e3e3266..72ddec3 100644
 --- sc/source/filter/xml/xmlsubti.cxx
 +++ sc/source/filter/xml/xmlsubti.cxx
 @@ -42,6 +42,7 @@
@@ -3608,7 +3604,7 @@
  //------------------------------------------------------------------
  
  using namespace com::sun::star;
-@@ -615,13 +620,10 @@ void ScMyTables::DeleteTable()
+@@ -616,13 +621,10 @@ void ScMyTables::DeleteTable()
  	{
  		uno::Sequence<sal_Int8> aPass;
  		SvXMLUnitConverter::decodeBase64(aPass, sPassword);
@@ -3627,7 +3623,7 @@
  
  	rImport.UnlockSolarMutex();
 diff --git sc/source/ui/docshell/docfunc.cxx sc/source/ui/docshell/docfunc.cxx
-index 37d799c..969afad 100644
+index f917d6b..1178270 100644
 --- sc/source/ui/docshell/docfunc.cxx
 +++ sc/source/ui/docshell/docfunc.cxx
 @@ -92,7 +92,12 @@
@@ -3643,7 +3639,7 @@
  
  // STATIC DATA -----------------------------------------------------------
  
-@@ -2790,103 +2795,156 @@ BOOL ScDocFunc::RemovePageBreak( BOOL bColumn, const ScAddress& rPos,
+@@ -2791,103 +2796,156 @@ BOOL ScDocFunc::RemovePageBreak( BOOL bColumn, const ScAddress& rPos,
  
  //------------------------------------------------------------------------
  
@@ -3879,7 +3875,7 @@
  
  //------------------------------------------------------------------------
 diff --git sc/source/ui/docshell/docsh.cxx sc/source/ui/docshell/docsh.cxx
-index 50c8344..257f21b 100644
+index 3742180..12ab184 100644
 --- sc/source/ui/docshell/docsh.cxx
 +++ sc/source/ui/docshell/docsh.cxx
 @@ -79,11 +79,6 @@
@@ -3910,7 +3906,7 @@
  
  #include "docsh.hxx"
  #include "docshimp.hxx"
-@@ -1297,6 +1292,16 @@ BOOL __EXPORT ScDocShell::SaveAs( SfxMedium& rMedium )
+@@ -1298,6 +1293,16 @@ BOOL __EXPORT ScDocShell::SaveAs( SfxMedium& rMedium )
  {
  	RTL_LOGFILE_CONTEXT_AUTHOR ( aLog, "sc", "nn93723", "ScDocShell::SaveAs" );
  
@@ -3927,7 +3923,7 @@
  	ScRefreshTimerProtector( aDocument.GetRefreshTimerControlAddress() );
  
  	//	DoEnterHandler hier nicht (wegen AutoSave), ist im ExecuteSave
-@@ -1771,7 +1776,6 @@ void ScDocShell::AsciiSave( SvStream& rStream, const ScImportOptions& rAsciiOpt
+@@ -1772,7 +1777,6 @@ void ScDocShell::AsciiSave( SvStream& rStream, const ScImportOptions& rAsciiOpt
  	rStream.SetNumberFormatInt( nOldNumberFormatInt );
  }
  
@@ -3935,7 +3931,7 @@
  BOOL __EXPORT ScDocShell::ConvertTo( SfxMedium &rMed )
  {
  	RTL_LOGFILE_CONTEXT_AUTHOR ( aLog, "sc", "nn93723", "ScDocShell::ConvertTo" );
-@@ -1824,15 +1828,40 @@ BOOL __EXPORT ScDocShell::ConvertTo( SfxMedium &rMed )
+@@ -1826,15 +1830,40 @@ BOOL __EXPORT ScDocShell::ConvertTo( SfxMedium &rMed )
                  aDocument.SetExtDocOptions( pExtDocOpt = new ScExtDocOptions );
              pViewShell->GetViewData()->WriteExtOptions( *pExtDocOpt );
  
@@ -3996,7 +3992,7 @@
  			if (bRecord)
  			{
 diff --git sc/source/ui/inc/docfunc.hxx sc/source/ui/inc/docfunc.hxx
-index 6d32644..bf9961e 100644
+index d8aed80..1bcca9c 100644
 --- sc/source/ui/inc/docfunc.hxx
 +++ sc/source/ui/inc/docfunc.hxx
 @@ -47,7 +47,7 @@ class ScRangeName;
@@ -4425,7 +4421,7 @@
 +
 +#endif
 diff --git sc/source/ui/inc/tabvwsh.hxx sc/source/ui/inc/tabvwsh.hxx
-index 85051b9..8ebd718 100644
+index 2f32d66..78f8178 100644
 --- sc/source/ui/inc/tabvwsh.hxx
 +++ sc/source/ui/inc/tabvwsh.hxx
 @@ -38,6 +38,7 @@
@@ -4446,7 +4442,7 @@
  };
  
 diff --git sc/source/ui/inc/undotab.hxx sc/source/ui/inc/undotab.hxx
-index e965071..b4d7ca5 100644
+index 4171034..c2d4eb9 100644
 --- sc/source/ui/inc/undotab.hxx
 +++ sc/source/ui/inc/undotab.hxx
 @@ -52,11 +52,15 @@
@@ -5770,7 +5766,7 @@
 +
 +
 diff --git sc/source/ui/undo/undotab.cxx sc/source/ui/undo/undotab.cxx
-index 3585c74..0ac648d 100644
+index 049d99b..df3ab6f 100644
 --- sc/source/ui/undo/undotab.cxx
 +++ sc/source/ui/undo/undotab.cxx
 @@ -61,6 +61,7 @@
@@ -6647,7 +6643,7 @@
  {
  }
  
-@@ -1573,17 +1632,17 @@ void ScUndoSetGrammar::DoChange( ScGrammar::Grammar eGrammar )
+@@ -1573,17 +1632,17 @@ void ScUndoSetGrammar::DoChange( formula::FormulaGrammar::Grammar eGrammar )
      pDocShell->SetInUndo( FALSE );
  }
  
@@ -6693,7 +6689,7 @@
  }
 +
 diff --git sc/source/ui/view/gridwin.cxx sc/source/ui/view/gridwin.cxx
-index 9989ad6..0f48c9c 100644
+index 58c6edc..0dd7b47 100644
 --- sc/source/ui/view/gridwin.cxx
 +++ sc/source/ui/view/gridwin.cxx
 @@ -140,6 +140,7 @@
@@ -6836,7 +6832,7 @@
              ScRange aRange;
  			pDoc->GetEmbedded( aRange);
 diff --git sc/source/ui/view/tabview3.cxx sc/source/ui/view/tabview3.cxx
-index 959b320..4b864a9 100644
+index 96c49b7..6a04815 100644
 --- sc/source/ui/view/tabview3.cxx
 +++ sc/source/ui/view/tabview3.cxx
 @@ -79,6 +79,7 @@
@@ -6847,7 +6843,7 @@
  
  #include <com/sun/star/chart2/data/HighlightedRange.hpp>
  
-@@ -942,6 +943,17 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
+@@ -944,6 +945,17 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
  	ScDocument* pDoc = aViewData.GetDocument();
  	SCTAB nTab = aViewData.GetTabNo();
  
@@ -6865,7 +6861,7 @@
  	SCsCOL nOldX;
  	SCsROW nOldY;
  	SCsCOL nCurX;
-@@ -961,7 +973,7 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
+@@ -963,7 +975,7 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
  		nCurY = (nMovY != 0) ? nOldY+nMovY : (SCsROW) aViewData.GetOldCurY();
  	}
  
@@ -6874,7 +6870,7 @@
  	aViewData.ResetOldCursor();
  
  	if (nMovX != 0 && VALIDCOLROW(nCurX,nCurY))
-@@ -970,15 +982,20 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
+@@ -972,15 +984,20 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
  		do
  		{
  			BYTE nColFlags = pDoc->GetColFlags( nCurX, nTab );
@@ -6898,7 +6894,7 @@
  					}
  					else
  					{
-@@ -991,7 +1008,8 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
+@@ -993,7 +1010,8 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
  					if (nMovX > 0) ++nCurX; else --nCurX;
  			}
  		}
@@ -6908,7 +6904,7 @@
  		if (pDoc->IsVerOverlapped( nCurX, nCurY, nTab ))
  		{
  			aViewData.SetOldCursor( nCurX,nCurY );
-@@ -1006,15 +1024,20 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
+@@ -1008,15 +1026,20 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
  		do
  		{
  			BYTE nRowFlags = pDoc->GetRowFlags( nCurY, nTab );
@@ -6932,7 +6928,7 @@
  					}
  					else
  					{
-@@ -1027,7 +1050,8 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
+@@ -1029,7 +1052,8 @@ void ScTabView::MoveCursorRel( SCsCOL nMovX, SCsROW nMovY, ScFollowMode eMode,
  					if (nMovY > 0) ++nCurY; else --nCurY;
  			}
  		}
@@ -6943,7 +6939,7 @@
  		{
  			aViewData.SetOldCursor( nCurX,nCurY );
 diff --git sc/source/ui/view/tabvwsh3.cxx sc/source/ui/view/tabvwsh3.cxx
-index 0d08cc7..03e4414 100644
+index 914c68e..4a9288b 100644
 --- sc/source/ui/view/tabvwsh3.cxx
 +++ sc/source/ui/view/tabvwsh3.cxx
 @@ -75,6 +75,8 @@
@@ -7261,7 +7257,7 @@
  
  
 diff --git sc/source/ui/view/viewfun2.cxx sc/source/ui/view/viewfun2.cxx
-index a060e8d..5c27c7b 100644
+index bd29b5f..cb8c5cf 100644
 --- sc/source/ui/view/viewfun2.cxx
 +++ sc/source/ui/view/viewfun2.cxx
 @@ -2150,7 +2150,7 @@ BOOL ScViewFunc::DeleteTables(const SvShorts &TheTabs, BOOL bRecord )
@@ -7283,10 +7279,10 @@
  				nDestTab1++;
  			}
 diff --git sc/source/ui/view/viewfunc.cxx sc/source/ui/view/viewfunc.cxx
-index b00d762..ef0e0a0 100644
+index ca22f8c..92de1bf 100644
 --- sc/source/ui/view/viewfunc.cxx
 +++ sc/source/ui/view/viewfunc.cxx
-@@ -2403,6 +2403,36 @@ void ScViewFunc::ModifyCellSize( ScDirection eDir, BOOL bOptimal )
+@@ -2404,6 +2404,36 @@ void ScViewFunc::ModifyCellSize( ScDirection eDir, BOOL bOptimal )
  	ShowAllCursors();
  }
  



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