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



Author: kyoshida
Date: Wed Jan 28 15:35:48 2009
New Revision: 15211
URL: http://svn.gnome.org/viewvc/ooo-build?rev=15211&view=rev

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

	* patches/dev300/calc-formula-asian-phonetic-m39.diff:
	* patches/dev300/calc-formula-asian-phonetic.diff:
	* patches/dev300/apply: adjusted for dev300-m40.



Added:
   trunk/patches/dev300/calc-formula-asian-phonetic-m39.diff   (props changed)
      - copied unchanged from r15209, /trunk/patches/dev300/calc-formula-asian-phonetic.diff
Modified:
   trunk/ChangeLog
   trunk/patches/dev300/apply
   trunk/patches/dev300/calc-formula-asian-phonetic.diff

Modified: trunk/patches/dev300/apply
==============================================================================
--- trunk/patches/dev300/apply	(original)
+++ trunk/patches/dev300/apply	Wed Jan 28 15:35:48 2009
@@ -2257,9 +2257,15 @@
 # faster file load.
 calc-xls-disable-adjust-row-height.diff, kohei
 
+[ CalcFixes <= dev300-m39 ]
+# Support PHONETIC function to display asian phonetic guide.
+calc-formula-asian-phonetic-m39.diff, i#80764, i#80765, i#80766, kohei
+
+[ CalcFixes > dev300-m39 ]
 # Support PHONETIC function to display asian phonetic guide.
 calc-formula-asian-phonetic.diff, i#80764, i#80765, i#80766, kohei
 
+[ CalcFixes ]
 # Support Excel English grammar needed for VBA and (probably) for xlsx filter.
 calc-grammar-xls-english-offapi.diff, kohei
 calc-grammar-xls-english-sc.diff, kohei

Modified: trunk/patches/dev300/calc-formula-asian-phonetic.diff
==============================================================================
--- trunk/patches/dev300/calc-formula-asian-phonetic.diff	(original)
+++ trunk/patches/dev300/calc-formula-asian-phonetic.diff	Wed Jan 28 15:35:48 2009
@@ -1,16 +1,73 @@
+diff --git formula/inc/formula/compiler.hrc formula/inc/formula/compiler.hrc
+index 8c402c2..9aea242 100644
+--- formula/inc/formula/compiler.hrc
++++ formula/inc/formula/compiler.hrc
+@@ -193,7 +193,8 @@
+ #define SC_OPCODE_UNICODE           155
+ #define SC_OPCODE_UNICHAR           156
+ #define SC_OPCODE_GAMMA             157
+-#define SC_OPCODE_STOP_1_PAR        158
++#define SC_OPCODE_PHONETIC          158
++#define SC_OPCODE_STOP_1_PAR        159
+ 
+ /*** Functions with more than one parameters ***/
+ #define SC_OPCODE_START_2_PAR       201
+diff --git formula/inc/formula/opcode.hxx formula/inc/formula/opcode.hxx
+index 4b93aab..6171a59 100644
+--- formula/inc/formula/opcode.hxx
++++ formula/inc/formula/opcode.hxx
+@@ -186,6 +186,7 @@ enum OpCodeEnum
+         ocAsc               = SC_OPCODE_ASC,
+         ocUnicode           = SC_OPCODE_UNICODE,
+         ocUnichar           = SC_OPCODE_UNICHAR,
++        ocPhonetic          = SC_OPCODE_PHONETIC,
+ 	// Functions with more than one parameters
+ 		ocArcTan2			= SC_OPCODE_ARC_TAN_2,
+ 		ocCeil				= SC_OPCODE_CEIL,
+diff --git formula/source/core/resource/core_resource.src formula/source/core/resource/core_resource.src
+index b1b79a5..0aa767c 100644
+--- formula/source/core/resource/core_resource.src
++++ formula/source/core/resource/core_resource.src
+@@ -337,6 +337,7 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH_ODFF
+ 	String SC_OPCODE_HYPERLINK { Text = "HYPERLINK" ; };
+     String SC_OPCODE_INFO { Text = "INFO" ; };
+     String SC_OPCODE_BAHTTEXT { Text = "COM.MICROSOFT.BAHTTEXT" ; };
++    String SC_OPCODE_PHONETIC { Text = "PHONETIC" ; };
+     String SC_OPCODE_GET_PIVOT_DATA { Text = "GETPIVOTDATA" ; };
+ 	String SC_OPCODE_EUROCONVERT { Text = "EUROCONVERT" ; };
+ 	String SC_OPCODE_NUMBERVALUE { Text = "NUMBERVALUE" ; };
+@@ -661,6 +662,7 @@ Resource RID_STRLIST_FUNCTION_NAMES_ENGLISH
+ 	String SC_OPCODE_HYPERLINK { Text = "HYPERLINK" ; };
+     String SC_OPCODE_INFO { Text = "INFO" ; };
+     String SC_OPCODE_BAHTTEXT { Text = "BAHTTEXT" ; };
++    String SC_OPCODE_PHONETIC { Text = "PHONETIC" ; };
+     String SC_OPCODE_GET_PIVOT_DATA { Text = "GETPIVOTDATA" ; };
+ 	String SC_OPCODE_EUROCONVERT { Text = "EUROCONVERT" ; };
+ 	String SC_OPCODE_NUMBERVALUE { Text = "NUMBERVALUE" ; };
+@@ -1815,6 +1817,10 @@ Resource RID_STRLIST_FUNCTION_NAMES
+     {
+         Text [ en-US ] = "BAHTTEXT";
+     };
++    String SC_OPCODE_PHONETIC
++    {
++        Text [ en-US ] = "PHONETIC";
++    };
+     String SC_OPCODE_GET_PIVOT_DATA
+     {
+         Text [ en-US ] = "GETPIVOTDATA";
 diff --git sc/inc/cell.hxx sc/inc/cell.hxx
-index 9dcf5d7..0328c25 100644
+index 9124b81..87bb8cb 100644
 --- sc/inc/cell.hxx
 +++ sc/inc/cell.hxx
 @@ -43,6 +43,7 @@
+ #include "formula/grammar.hxx"
  #include "tokenarray.hxx"
- #include "grammar.hxx"
  #include "formularesult.hxx"
 +#include "phonetic.hxx"
  #include <rtl/ustrbuf.hxx>
  #include <vcl/fontcvt.hxx>
- 
-@@ -62,6 +63,7 @@ class ScTokenArray;
+ #include "scdllapi.h"
+@@ -62,6 +63,7 @@ class ScCodeArray;
  class ScProgress;
  class ScPostIt;
  class ScPatternAttr;
@@ -263,10 +320,10 @@
  /*
  
 diff --git sc/inc/cellsuno.hxx sc/inc/cellsuno.hxx
-index 99b32c4..e89bd77 100644
+index 376e758..17b226d 100644
 --- sc/inc/cellsuno.hxx
 +++ sc/inc/cellsuno.hxx
-@@ -976,6 +976,14 @@ public:
+@@ -981,6 +981,14 @@ public:
  
  	static String		GetInputString_Impl(ScDocument* pDoc, const ScAddress& aPos, BOOL bEnglish);
  	static String		GetOutputString_Impl(ScDocument* pDoc, const ScAddress& aPos);
@@ -281,32 +338,6 @@
  };
  
  
-diff --git sc/inc/compiler.hrc sc/inc/compiler.hrc
-index ec67599..a8a9d78 100644
---- sc/inc/compiler.hrc
-+++ sc/inc/compiler.hrc
-@@ -192,7 +192,8 @@
- #define SC_OPCODE_ASC               154
- #define SC_OPCODE_UNICODE           155
- #define SC_OPCODE_UNICHAR           156
--#define SC_OPCODE_STOP_1_PAR        157
-+#define SC_OPCODE_PHONETIC          157
-+#define SC_OPCODE_STOP_1_PAR        158
- 
- /*** Functions with more than one parameters ***/
- #define SC_OPCODE_START_2_PAR       201
-diff --git sc/inc/opcode.hxx sc/inc/opcode.hxx
-index e0940f7..a98fb5b 100644
---- sc/inc/opcode.hxx
-+++ sc/inc/opcode.hxx
-@@ -187,6 +187,7 @@ enum OpCodeEnum
-         ocAsc               = SC_OPCODE_ASC,
-         ocUnicode           = SC_OPCODE_UNICODE,
-         ocUnichar           = SC_OPCODE_UNICHAR,
-+        ocPhonetic          = SC_OPCODE_PHONETIC,
- 	// Functions with more than one parameters
- 		ocArcTan2			= SC_OPCODE_ARC_TAN_2,
- 		ocCeil				= SC_OPCODE_CEIL,
 diff --git sc/inc/phonetic.hxx sc/inc/phonetic.hxx
 new file mode 100644
 index 0000000..9a369d8
@@ -421,19 +452,19 @@
 +
 +#endif
 diff --git sc/inc/scfuncs.hrc sc/inc/scfuncs.hrc
-index 37e62f6..5d34782 100644
+index d0ca82f..24fa7f8 100644
 --- sc/inc/scfuncs.hrc
 +++ sc/inc/scfuncs.hrc
-@@ -330,3 +330,4 @@
+@@ -333,3 +333,4 @@
  #define HID_FUNC_UNICODE            (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+31)
  #define HID_FUNC_UNICHAR            (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+32)
  #define HID_FUNC_NUMBERVALUE        (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+33)
 +#define HID_FUNC_PHONETIC           (HID_SC_FUNC_DUMMY+(ID_FUNCTION_GRP_TEXT*ID_FUNCTION_OFFSET)+34)
 diff --git sc/source/core/data/cell.cxx sc/source/core/data/cell.cxx
-index 21c35f8..c1a7317 100644
+index 4796477..084a3a0 100644
 --- sc/source/core/data/cell.cxx
 +++ sc/source/core/data/cell.cxx
-@@ -75,10 +75,14 @@ const USHORT nMemPoolValueCell = (0x8000 - 64) / sizeof(ScValueCell);
+@@ -76,10 +76,14 @@ const USHORT nMemPoolValueCell = (0x8000 - 64) / sizeof(ScValueCell);
  const USHORT nMemPoolFormulaCell = (0x8000 - 64) / sizeof(ScFormulaCell);
  const USHORT nMemPoolStringCell = (0x4000 - 64) / sizeof(ScStringCell);
  const USHORT nMemPoolNoteCell = (0x1000 - 64) / sizeof(ScNoteCell);
@@ -447,8 +478,8 @@
 +IMPL_FIXEDMEMPOOL_NEWDEL( ScAsianEditCell, nMemPoolAsianEditCell, nMemPoolAsianEditCell )
  #endif
  
- #ifndef PRODUCT
-@@ -483,19 +487,31 @@ BOOL ScBaseCell::CellEqual( const ScBaseCell* pCell1, const ScBaseCell* pCell2 )
+ // -----------------------------------------------------------------------
+@@ -478,19 +482,31 @@ BOOL ScBaseCell::CellEqual( const ScBaseCell* pCell1, const ScBaseCell* pCell2 )
  			return ( ((const ScValueCell*)pCell1)->GetValue() ==
  					 ((const ScValueCell*)pCell2)->GetValue() );
  		case CELLTYPE_STRING:		// String oder Edit
@@ -494,10 +525,10 @@
  			{
  				//!	eingefuegte Zeilen / Spalten beruecksichtigen !!!!!
 diff --git sc/source/core/data/cell2.cxx sc/source/core/data/cell2.cxx
-index 23ea97f..d68124b 100644
+index af14bfc..2e4bda5 100644
 --- sc/source/core/data/cell2.cxx
 +++ sc/source/core/data/cell2.cxx
-@@ -143,6 +143,11 @@ void ScEditCell::GetString( String& rString ) const
+@@ -145,6 +145,11 @@ void ScEditCell::GetString( String& rString ) const
          rString.Erase();
  }
  
@@ -510,7 +541,7 @@
  {
      const struct {
 diff --git sc/source/core/data/makefile.mk sc/source/core/data/makefile.mk
-index 1cad27e..b6c8269 100644
+index 3836d4c..3b8c7c4 100644
 --- sc/source/core/data/makefile.mk
 +++ sc/source/core/data/makefile.mk
 @@ -97,6 +97,7 @@ SLOFILES =  \
@@ -600,10 +631,10 @@
 +}
 +
 diff --git sc/source/core/inc/interpre.hxx sc/source/core/inc/interpre.hxx
-index c95063e..05bae1c 100644
+index 681766d..fb5331d 100644
 --- sc/source/core/inc/interpre.hxx
 +++ sc/source/core/inc/interpre.hxx
-@@ -190,6 +190,7 @@ double GetValueCellValue( const ScAddress&, const ScValueCell* );
+@@ -194,6 +194,7 @@ double GetValueCellValue( const ScAddress&, const ScValueCell* );
  ScBaseCell* GetCell( const ScAddress& rPos )
      { return pDok->GetCell( rPos ); }
  void GetCellString( String& rStr, const ScBaseCell* pCell );
@@ -611,7 +642,7 @@
  inline USHORT GetCellErrCode( const ScBaseCell* pCell )
      { return pCell ? pCell->GetErrorCode() : 0; }
  inline CellType GetCellType( const ScBaseCell* pCell )
-@@ -519,6 +520,7 @@ void ScExternalRef();
+@@ -523,6 +524,7 @@ void ScExternalRef();
  void ScGetPivotData();
  void ScHyperLink();
  void ScBahtText();
@@ -619,42 +650,11 @@
  void ScCalcTeam();
  void ScAnswer();
  void ScTTT();
-diff --git sc/source/core/src/compiler.src sc/source/core/src/compiler.src
-index adf9402..579f2f8 100644
---- sc/source/core/src/compiler.src
-+++ sc/source/core/src/compiler.src
-@@ -1167,6 +1167,10 @@ Resource RID_SC_FUNCTION_NAMES
-     {
-         Text [ en-US ] = "BAHTTEXT";
-     };
-+    String SC_OPCODE_PHONETIC
-+    {
-+        Text [ en-US ] = "PHONETIC";
-+    };
-     String SC_OPCODE_GET_PIVOT_DATA
-     {
-         Text [ en-US ] = "GETPIVOTDATA";
-@@ -1526,6 +1530,7 @@ Resource RID_SC_FUNCTION_NAMES_ENGLISH
- 	String SC_OPCODE_HYPERLINK { Text = "HYPERLINK" ; };
-     String SC_OPCODE_INFO { Text = "INFO" ; };
-     String SC_OPCODE_BAHTTEXT { Text = "BAHTTEXT" ; };
-+    String SC_OPCODE_PHONETIC { Text = "PHONETIC" ; };
-     String SC_OPCODE_GET_PIVOT_DATA { Text = "GETPIVOTDATA" ; };
- 	String SC_OPCODE_EUROCONVERT { Text = "EUROCONVERT" ; };
- 	String SC_OPCODE_NUMBERVALUE { Text = "NUMBERVALUE" ; };
-@@ -1847,6 +1852,7 @@ Resource RID_SC_FUNCTION_NAMES_ENGLISH_ODFF
- 	String SC_OPCODE_HYPERLINK { Text = "HYPERLINK" ; };
-     String SC_OPCODE_INFO { Text = "INFO" ; };
-     String SC_OPCODE_BAHTTEXT { Text = "COM.MICROSOFT.BAHTTEXT" ; };
-+    String SC_OPCODE_PHONETIC { Text = "PHONETIC" ; };
-     String SC_OPCODE_GET_PIVOT_DATA { Text = "GETPIVOTDATA" ; };
- 	String SC_OPCODE_EUROCONVERT { Text = "EUROCONVERT" ; };
- 	String SC_OPCODE_NUMBERVALUE { Text = "NUMBERVALUE" ; };
 diff --git sc/source/core/tool/interpr2.cxx sc/source/core/tool/interpr2.cxx
-index 9d75e1b..a11e2a6 100644
+index 44f1668..550f43b 100644
 --- sc/source/core/tool/interpr2.cxx
 +++ sc/source/core/tool/interpr2.cxx
-@@ -2668,6 +2668,76 @@ void ScInterpreter::ScBahtText()
+@@ -2853,6 +2853,76 @@ void ScInterpreter::ScBahtText()
  
  // ============================================================================
  
@@ -730,12 +730,12 @@
 +
  void ScInterpreter::ScGetPivotData()
  {
-     BYTE nParamCount = GetByte();
+     RTL_LOGFILE_CONTEXT_AUTHOR( aLogger, "sc", "Eike Rathke sun com", "ScInterpreter::ScGetPivotData" );
 diff --git sc/source/core/tool/interpr4.cxx sc/source/core/tool/interpr4.cxx
-index 811b9da..893eb7a 100644
+index 665e4da..a5c7de8 100644
 --- sc/source/core/tool/interpr4.cxx
 +++ sc/source/core/tool/interpr4.cxx
-@@ -349,6 +349,189 @@ void ScInterpreter::GetCellString( String& rStr, const ScBaseCell* pCell )
+@@ -359,6 +359,189 @@ void ScInterpreter::GetCellString( String& rStr, const ScBaseCell* pCell )
      SetError(nErr);
  }
  
@@ -925,7 +925,7 @@
  
  BOOL ScInterpreter::CreateDoubleArr(SCCOL nCol1, SCROW nRow1, SCTAB nTab1,
                              SCCOL nCol2, SCROW nRow2, SCTAB nTab2, BYTE* pCellArr)
-@@ -3787,6 +3970,7 @@ StackVar ScInterpreter::Interpret()
+@@ -3870,6 +4053,7 @@ StackVar ScInterpreter::Interpret()
                  case ocInfo             : ScInfo();                     break;
                  case ocHyperLink        : ScHyperLink();                break;
                  case ocBahtText         : ScBahtText();                 break;
@@ -934,7 +934,7 @@
                  case ocJis              : ScJis();                      break;
                  case ocAsc              : ScAsc();                      break;
 diff --git sc/source/filter/excel/xehelper.cxx sc/source/filter/excel/xehelper.cxx
-index f27907e..48eeb94 100644
+index 54043ce..7dbe4b8 100644
 --- sc/source/filter/excel/xehelper.cxx
 +++ sc/source/filter/excel/xehelper.cxx
 @@ -600,7 +600,16 @@ XclExpStringRef XclExpStringHelper::CreateCellString(
@@ -972,10 +972,10 @@
  }
  
 diff --git sc/source/filter/excel/xestring.cxx sc/source/filter/excel/xestring.cxx
-index 4d6efc0..dac338a 100644
+index c210911..afcd334 100644
 --- sc/source/filter/excel/xestring.cxx
 +++ sc/source/filter/excel/xestring.cxx
-@@ -291,7 +291,8 @@ bool XclExpString::IsEqual( const XclExpString& rCmp ) const
+@@ -296,7 +296,8 @@ bool XclExpString::IsEqual( const XclExpString& rCmp ) const
              ( mbIsBiff8 && (maUniBuffer  == rCmp.maUniBuffer)) ||
              (!mbIsBiff8 && (maCharBuffer == rCmp.maCharBuffer))
          ) &&
@@ -985,7 +985,7 @@
  }
  
  bool XclExpString::IsLessThan( const XclExpString& rCmp ) const
-@@ -302,6 +303,18 @@ bool XclExpString::IsLessThan( const XclExpString& rCmp ) const
+@@ -307,6 +308,18 @@ bool XclExpString::IsLessThan( const XclExpString& rCmp ) const
      return (nResult != 0) ? (nResult < 0) : (maFormats < rCmp.maFormats);
  }
  
@@ -1004,7 +1004,7 @@
  // get data -------------------------------------------------------------------
  
  sal_uInt16 XclExpString::GetFormatsCount() const
-@@ -309,17 +322,25 @@ sal_uInt16 XclExpString::GetFormatsCount() const
+@@ -314,17 +327,25 @@ sal_uInt16 XclExpString::GetFormatsCount() const
      return static_cast< sal_uInt16 >( maFormats.size() );
  }
  
@@ -1034,7 +1034,7 @@
  }
  
  sal_Size XclExpString::GetBufferSize() const
-@@ -330,9 +351,10 @@ sal_Size XclExpString::GetBufferSize() const
+@@ -335,9 +356,10 @@ sal_Size XclExpString::GetBufferSize() const
  sal_Size XclExpString::GetSize() const
  {
      return
@@ -1048,7 +1048,7 @@
  }
  
  sal_uInt16 XclExpString::GetChar( sal_uInt16 nCharIdx ) const
-@@ -380,6 +402,10 @@ void XclExpString::WriteHeader( XclExpStream& rStrm ) const
+@@ -385,6 +407,10 @@ void XclExpString::WriteHeader( XclExpStream& rStrm ) const
      // format run count
      if( IsWriteFormats() )
          rStrm << GetFormatsCount();
@@ -1059,7 +1059,7 @@
      rStrm.SetSliceSize( 0 );
  }
  
-@@ -416,6 +442,46 @@ void XclExpString::WriteFormats( XclExpStream& rStrm, bool bWriteSize ) const
+@@ -421,6 +447,46 @@ void XclExpString::WriteFormats( XclExpStream& rStrm, bool bWriteSize ) const
      }
  }
  
@@ -1106,7 +1106,7 @@
  void XclExpString::Write( XclExpStream& rStrm ) const
  {
      if (!mbSkipHeader)
-@@ -423,6 +489,8 @@ void XclExpString::Write( XclExpStream& rStrm ) const
+@@ -428,6 +494,8 @@ void XclExpString::Write( XclExpStream& rStrm ) const
      WriteBuffer( rStrm );
      if( IsWriteFormats() )      // only in BIFF8 included in string
          WriteFormats( rStrm );
@@ -1115,7 +1115,7 @@
  }
  
  void XclExpString::WriteHeaderToMem( sal_uInt8* pnMem ) const
-@@ -488,6 +556,11 @@ bool XclExpString::IsWriteFormats() const
+@@ -545,6 +613,11 @@ bool XclExpString::IsWriteFormats() const
      return mbIsBiff8 && !mbSkipFormats && IsRich();
  }
  
@@ -1202,10 +1202,10 @@
  
  XclImpStringIterator::XclImpStringIterator( const XclImpString& rString ) :
 diff --git sc/source/filter/excel/xlformula.cxx sc/source/filter/excel/xlformula.cxx
-index 8912407..3e0bc20 100644
+index 7ca2f80..94b3951 100644
 --- sc/source/filter/excel/xlformula.cxx
 +++ sc/source/filter/excel/xlformula.cxx
-@@ -324,12 +324,12 @@ static const XclFunctionInfo saFuncTable_5[] =
+@@ -327,12 +327,12 @@ static const XclFunctionInfo saFuncTable_5[] =
  
  const sal_Char* const EXC_FUNCNAME_BAHTTEXT = EXC_FUNCNAME_PREFIX "BAHTTEXT";
  
@@ -1221,7 +1221,7 @@
      { ocMaxA,               362,    1,  30, V, { R }, 0, 0 },
      { ocMinA,               363,    1,  30, V, { R }, 0, 0 },
 diff --git sc/source/filter/inc/xestring.hxx sc/source/filter/inc/xestring.hxx
-index 81bf8dc..0168b81 100644
+index 706b12c..8851736 100644
 --- sc/source/filter/inc/xestring.hxx
 +++ sc/source/filter/inc/xestring.hxx
 @@ -32,11 +32,13 @@
@@ -1237,8 +1237,8 @@
 +class ScPhonetic;
  class EditTextObject;
  class XclExpStream;
- 
-@@ -194,6 +196,12 @@ public:
+ class XclExpXmlStream;
+@@ -195,6 +197,12 @@ public:
      /** Removes and returns the font index for the first char from the formatting runs, otherwise EXC_FONT_NOTFOUND. */
      sal_uInt16          RemoveLeadingFont();
  
@@ -1251,7 +1251,7 @@
      // get data ---------------------------------------------------------------
  
      /** Returns the character count of the string. */
-@@ -214,6 +222,11 @@ public:
+@@ -215,6 +223,11 @@ public:
      /** Returns the vector with all formatting runs. */
      inline const XclFormatRunVec& GetFormats() const { return maFormats; }
  
@@ -1263,7 +1263,7 @@
      /** Returns the current string flags field to export. */
      sal_uInt8           GetFlagField() const;
      /** Returns the byte count the header will take on export. */
-@@ -240,6 +253,8 @@ public:
+@@ -243,6 +256,8 @@ public:
      void                WriteBuffer( XclExpStream& rStrm ) const;
      /** Writes the raw formatting run buffer. */
      void                WriteFormats( XclExpStream& rStrm, bool bWriteSize = false ) const;
@@ -1272,7 +1272,7 @@
      /** Writes the complete Unicode string. */
      void                Write( XclExpStream& rStrm ) const;
  
-@@ -256,6 +271,8 @@ private:
+@@ -261,6 +276,8 @@ private:
      bool                IsWriteFlags() const;
      /** Returns true, if the formatting run vector should be written. */
      bool                IsWriteFormats() const;
@@ -1281,7 +1281,7 @@
  
      /** Sets the string length but regards the limit given in mnMaxLen. */
      void                SetStrLen( sal_Int32 nNewLen );
-@@ -310,6 +327,7 @@ private:
+@@ -315,6 +332,7 @@ private:
      ScfUInt16Vec        maUniBuffer;    /// The Unicode character buffer.
      ScfUInt8Vec         maCharBuffer;   /// The byte character buffer.
      XclFormatRunVec     maFormats;      /// All formatting runs.
@@ -1617,7 +1617,7 @@
  
  #endif
 diff --git sc/source/filter/xml/makefile.mk sc/source/filter/xml/makefile.mk
-index d44da6b..b0f31f8 100644
+index 7c4006e..da2d12e 100644
 --- sc/source/filter/xml/makefile.mk
 +++ sc/source/filter/xml/makefile.mk
 @@ -73,6 +73,7 @@ CXXFILES = \
@@ -1637,7 +1637,7 @@
  		$(SLO)$/xmllabri.obj \
  		$(SLO)$/XMLTableHeaderFooterContext.obj \
 diff --git sc/source/filter/xml/xmlcelli.cxx sc/source/filter/xml/xmlcelli.cxx
-index cc0a6a2..bac6564 100644
+index 7801505..5973a34 100644
 --- sc/source/filter/xml/xmlcelli.cxx
 +++ sc/source/filter/xml/xmlcelli.cxx
 @@ -38,6 +38,7 @@
@@ -1648,25 +1648,7 @@
  #include "global.hxx"
  #include "document.hxx"
  #include "cellsuno.hxx"
-@@ -117,6 +118,7 @@ ScXMLTableRowCellContext::ScXMLTableRowCellContext( ScXMLImport& rImport,
- 	pOUTextValue(NULL),
- 	pOUTextContent(NULL),
- 	pOUFormula(NULL),
-+    pOUPhoneticText(NULL),
- 	pContentValidationName(NULL),
- 	pMyAnnotation(NULL),
- 	pDetectiveObjVec(NULL),
-@@ -297,6 +299,9 @@ ScXMLTableRowCellContext::~ScXMLTableRowCellContext()
- 		delete pDetectiveObjVec;
- 	if (pCellRangeSource)
- 		delete pCellRangeSource;
-+
-+    // no need to check for NULL-ness when 'delete'-ing a pointer.
-+    delete pOUPhoneticText;
- }
- 
- void ScXMLTableRowCellContext::LockSolarMutex()
-@@ -459,6 +464,12 @@ SvXMLImportContext *ScXMLTableRowCellContext::CreateChildContext( USHORT nPrefix
+@@ -445,6 +446,12 @@ SvXMLImportContext *ScXMLTableRowCellContext::CreateChildContext( USHORT nPrefix
  				rXMLImport, nPrefix, rLName, xAttrList, pCellRangeSource );
  		}
  		break;
@@ -1679,7 +1661,7 @@
  	}
  
  	if (!pContext && !bTextP)
-@@ -765,6 +776,81 @@ bool lcl_IsEmptyOrNote( ScDocument* pDoc, const table::CellAddress& rCurrentPos
+@@ -741,6 +748,82 @@ bool lcl_IsEmptyOrNote( ScDocument* pDoc, const table::CellAddress& rCurrentPos
      return ( !pCell || pCell->GetCellType() == CELLTYPE_NOTE );
  }
  
@@ -1739,7 +1721,8 @@
 +    return aKanaType;
 +}
 +
-+static ScBaseCell* lcl_CreateTextCell ( const String& rString, ScDocument* pDoc, const ::rtl::OUString* pPhoneticText )
++static ScBaseCell* lcl_CreateTextCell ( const String& rString, ScDocument* pDoc, 
++                                        const ::boost::optional< ::rtl::OUString >& pPhoneticText )
 +{
 +    ScBaseCell *pCell = 0;
 +
@@ -1761,7 +1744,7 @@
  void ScXMLTableRowCellContext::EndElement()
  {
  	if (!bHasSubTable)
-@@ -935,11 +1021,11 @@ void ScXMLTableRowCellContext::EndElement()
+@@ -911,11 +994,11 @@ void ScXMLTableRowCellContext::EndElement()
                                                  ScBaseCell* pNewCell = NULL;
                                                  ScDocument* pDoc = rXMLImport.GetDocument();
                                                  if (pOUTextValue && pOUTextValue->getLength())
@@ -1773,10 +1756,10 @@
                                                  else if ( i > 0 && pOUText && pOUText->getLength() )
 -                                                    pNewCell = ScBaseCell::CreateTextCell( *pOUText, pDoc );
 +                                                    pNewCell = lcl_CreateTextCell( *pOUText, pDoc, pOUPhoneticText );
-                                                 if ( pNewCell )
-                                                 {
-                                                     ScAddress aScAddress;
-@@ -1026,6 +1112,18 @@ void ScXMLTableRowCellContext::EndElement()
+ 
+                                                 bDoIncrement = pNewCell != NULL;
+                                                 if ( bDoIncrement )
+@@ -1002,6 +1085,18 @@ void ScXMLTableRowCellContext::EndElement()
  					}
  					else
  					{
@@ -1795,29 +1778,28 @@
                          // #i56027# If the child context put formatted text into the cell,
                          // bIsEmpty is TRUE and ProgressBarIncrement has to be called
                          // with bEditCell = TRUE.
-@@ -1132,3 +1230,10 @@ void ScXMLTableRowCellContext::EndElement()
+@@ -1106,3 +1201,9 @@ void ScXMLTableRowCellContext::EndElement()
  	nMergedRows = 1;
  	nCellsRepeated = 1;
  }
 +
 +void ScXMLTableRowCellContext::SetPhoneticText(const rtl::OUString& rOUPhoneticText)
 +{
-+    delete pOUPhoneticText;
-+    pOUPhoneticText = new ::rtl::OUString(rOUPhoneticText);
++    pOUPhoneticText.reset(rOUPhoneticText);
 +}
 +
 diff --git sc/source/filter/xml/xmlcelli.hxx sc/source/filter/xml/xmlcelli.hxx
-index 589077d..192637d 100644
+index 46dfdd9..80fda8f 100644
 --- sc/source/filter/xml/xmlcelli.hxx
 +++ sc/source/filter/xml/xmlcelli.hxx
 @@ -71,6 +71,7 @@ class ScXMLTableRowCellContext : public SvXMLImportContext
- 	rtl::OUString* pOUTextContent;
- 	rtl::OUString* pOUFormula;
+ 	::boost::optional< rtl::OUString > pOUTextValue;
+ 	::boost::optional< rtl::OUString > pOUTextContent;
+ 	::boost::optional< rtl::OUString > pOUFormula;
++	::boost::optional< rtl::OUString > pOUPhoneticText;
  	rtl::OUString* pContentValidationName;
-+    rtl::OUString* pOUPhoneticText;
  	ScMyImportAnnotation*	pMyAnnotation;
  	ScMyImpDetectiveObjVec*	pDetectiveObjVec;
- 	ScMyImpCellRangeSource*	pCellRangeSource;
 @@ -142,6 +143,13 @@ public:
  	virtual void EndElement();
  
@@ -1833,10 +1815,10 @@
  
  #endif
 diff --git sc/source/filter/xml/xmlexprt.cxx sc/source/filter/xml/xmlexprt.cxx
-index 7604afa..29b4fa1 100644
+index 207b685..8b6c0cf 100644
 --- sc/source/filter/xml/xmlexprt.cxx
 +++ sc/source/filter/xml/xmlexprt.cxx
-@@ -2332,11 +2332,27 @@ sal_Bool ScXMLExport::GetCellText (ScMyCell& rMyCell, const ScAddress& aPos) con
+@@ -2333,11 +2333,27 @@ sal_Bool ScXMLExport::GetCellText (ScMyCell& rMyCell, const ScAddress& aPos) con
  //		{
              rMyCell.sStringValue = ScCellObj::GetOutputString_Impl(pDoc, aPos);
  			rMyCell.bHasStringValue = sal_True;
@@ -1864,7 +1846,7 @@
  void ScXMLExport::WriteCell (ScMyCell& aCell)
  {
      ScAddress aCellPos;
-@@ -2480,13 +2496,20 @@ void ScXMLExport::WriteCell (ScMyCell& aCell)
+@@ -2481,13 +2497,20 @@ void ScXMLExport::WriteCell (ScMyCell& aCell)
              uno::Reference<text::XText> xText(xCurrentTableCellRange->getCellByPosition(aCell.aCellAddress.Column, aCell.aCellAddress.Row), uno::UNO_QUERY);
  			if ( xText.is())
  				GetTextParagraphExport()->exportText(xText, sal_False, sal_False);
@@ -1904,89 +1886,81 @@
  
  	sal_Bool IsCellTypeEqual (const ScMyCell& aCell1, const ScMyCell& aCell2) const;
 diff --git sc/source/filter/xml/xmlimprt.cxx sc/source/filter/xml/xmlimprt.cxx
-index 99beb2d..635b53d 100644
+index 1702bcc..4cff9f1 100644
 --- sc/source/filter/xml/xmlimprt.cxx
 +++ sc/source/filter/xml/xmlimprt.cxx
-@@ -415,7 +415,28 @@ static __FAR_DATA SvXMLTokenMapEntry aTableRowCellTokenMap[] =
- 	{ XML_NAMESPACE_OFFICE,	XML_ANNOTATION, 		XML_TOK_TABLE_ROW_CELL_ANNOTATION			},
- 	{ XML_NAMESPACE_TABLE,	XML_DETECTIVE,			XML_TOK_TABLE_ROW_CELL_DETECTIVE			},
- 	{ XML_NAMESPACE_TABLE,	XML_CELL_RANGE_SOURCE,	XML_TOK_TABLE_ROW_CELL_CELL_RANGE_SOURCE	},
--	XML_TOKEN_MAP_END
-+    { XML_NAMESPACE_TEXT,   XML_RUBY,               XML_TOK_TABLE_ROW_CELL_RUBY                 },
-+    XML_TOKEN_MAP_END
-+};
-+
-+static __FAR_DATA SvXMLTokenMapEntry aTableRowCellTextTokenMap[] =
-+{
-+    { XML_NAMESPACE_TEXT,   XML_S,                  XML_TOK_TABLE_ROW_CELL_TEXT_S               },
-+    { XML_NAMESPACE_TEXT,   XML_RUBY,               XML_TOK_TABLE_ROW_CELL_TEXT_RUBY            },
-+    XML_TOKEN_MAP_END
-+};
-+
-+static __FAR_DATA SvXMLTokenMapEntry aTableRowCellTextRubyAttrTokenMap[] =
-+{
-+    { XML_NAMESPACE_TEXT,   XML_STYLE_NAME,         XML_TOK_TABLE_ROW_CELL_TEXT_RUBY_ATTR_STYLE_NAME },
-+    XML_TOKEN_MAP_END
-+};
-+
-+static __FAR_DATA SvXMLTokenMapEntry aTableRowCellTextRubyTokenMap[] =
-+{
-+    { XML_NAMESPACE_TEXT,   XML_RUBY_BASE,          XML_TOK_TABLE_ROW_CELL_TEXT_RUBY_BASE       },
-+    { XML_NAMESPACE_TEXT,   XML_RUBY_TEXT,          XML_TOK_TABLE_ROW_CELL_TEXT_RUBY_TEXT       },
-+    XML_TOKEN_MAP_END
- };
- 
- static __FAR_DATA SvXMLTokenMapEntry aTableRowCellAttrTokenMap[] =
-@@ -1120,6 +1141,27 @@ const SvXMLTokenMap& ScXMLImport::GetTableRowCellElemTokenMap()
- 	return *pTableRowCellElemTokenMap;
+@@ -811,6 +811,49 @@ const SvXMLTokenMap& ScXMLImport::GetTableRowCellElemTokenMap()
+     return *pTableRowCellElemTokenMap;
  }
  
++    SvXMLTokenMap           *pTableRowCellElemTextRubyAttrTokenMap;
++
 +const SvXMLTokenMap& ScXMLImport::GetTableRowCellElemTextTokenMap()
 +{
-+    if( !pTableRowCellElemTextTokenMap )
-+        pTableRowCellElemTextTokenMap = new SvXMLTokenMap( aTableRowCellTextTokenMap );
-+    return *pTableRowCellElemTextTokenMap;
++    if (!pTableRowCellElemTextTokenMap)
++    {
++        static __FAR_DATA SvXMLTokenMapEntry aTableRowCellTextTokenMap[] =
++        {
++            { XML_NAMESPACE_TEXT, XML_S,    XML_TOK_TABLE_ROW_CELL_TEXT_S    },
++            { XML_NAMESPACE_TEXT, XML_RUBY, XML_TOK_TABLE_ROW_CELL_TEXT_RUBY },
++            XML_TOKEN_MAP_END
++        };
++        pTableRowCellElemTextTokenMap = new SvXMLTokenMap(aTableRowCellTextTokenMap);
++    }
 +}
 +
 +const SvXMLTokenMap& ScXMLImport::GetTableRowCellElemTextRubyTokenMap()
 +{
-+    if( !pTableRowCellElemTextRubyTokenMap )
-+        pTableRowCellElemTextRubyTokenMap = new SvXMLTokenMap( aTableRowCellTextRubyTokenMap );
-+    return *pTableRowCellElemTextRubyTokenMap;
++    if (!pTableRowCellElemTextRubyTokenMap)
++    {
++        static __FAR_DATA SvXMLTokenMapEntry aTableRowCellTextRubyAttrTokenMap[] =
++        {
++            { XML_NAMESPACE_TEXT, XML_STYLE_NAME, XML_TOK_TABLE_ROW_CELL_TEXT_RUBY_ATTR_STYLE_NAME },
++            XML_TOKEN_MAP_END
++        };
++        pTableRowCellElemTextRubyTokenMap = new SvXMLTokenMap(aTableRowCellTextRubyAttrTokenMap);
++    }
 +}
 +
 +const SvXMLTokenMap& ScXMLImport::GetTableRowCellElemTextRubyAttrTokenMap()
 +{
-+    if( !pTableRowCellElemTextRubyAttrTokenMap )
-+        pTableRowCellElemTextRubyAttrTokenMap = new SvXMLTokenMap( aTableRowCellTextRubyAttrTokenMap );
-+    return *pTableRowCellElemTextRubyAttrTokenMap;
++    if (!pTableRowCellElemTextRubyAttrTokenMap)
++    {
++        static __FAR_DATA SvXMLTokenMapEntry aTableRowCellTextRubyTokenMap[] =
++        {
++            { XML_NAMESPACE_TEXT, XML_RUBY_BASE, XML_TOK_TABLE_ROW_CELL_TEXT_RUBY_BASE },
++            { XML_NAMESPACE_TEXT, XML_RUBY_TEXT, XML_TOK_TABLE_ROW_CELL_TEXT_RUBY_TEXT },
++            XML_TOKEN_MAP_END
++        }; 
++        pTableRowCellElemTextRubyAttrTokenMap = new SvXMLTokenMap(aTableRowCellTextRubyTokenMap);
++    }
 +}
 +
- const SvXMLTokenMap& ScXMLImport::GetTableRowCellAttrTokenMap()
+ const SvXMLTokenMap& ScXMLImport::GetTableAnnotationAttrTokenMap()
  {
-     if ( !pTableRowCellAttrTokenMap )
-@@ -1487,6 +1529,9 @@ ScXMLImport::ScXMLImport(
- 	pTableRowElemTokenMap( 0 ),
- 	pTableRowAttrTokenMap( 0 ),
- 	pTableRowCellElemTokenMap( 0 ),
-+    pTableRowCellElemTextTokenMap( 0 ),
-+    pTableRowCellElemTextRubyTokenMap( 0 ),
-+    pTableRowCellElemTextRubyAttrTokenMap( 0 ),
- 	pTableRowCellAttrTokenMap( 0 ),
- 	pTableAnnotationAttrTokenMap( 0 ),
- 	pDetectiveElemTokenMap( 0 ),
-@@ -1613,6 +1658,9 @@ ScXMLImport::~ScXMLImport() throw()
- 	delete pTableRowElemTokenMap;
- 	delete pTableRowAttrTokenMap;
- 	delete pTableRowCellElemTokenMap;
+     if( !pTableAnnotationAttrTokenMap )
+@@ -1642,6 +1685,9 @@ ScXMLImport::ScXMLImport(
+                          pTableRowElemTokenMap( 0 ),
+                          pTableRowAttrTokenMap( 0 ),
+                          pTableRowCellElemTokenMap( 0 ),
++                         pTableRowCellElemTextTokenMap( 0 ),
++                         pTableRowCellElemTextRubyTokenMap( 0 ),
++                         pTableRowCellElemTextRubyAttrTokenMap( 0 ),
+                          pTableRowCellAttrTokenMap( 0 ),
+                          pTableAnnotationAttrTokenMap( 0 ),
+                          pDetectiveElemTokenMap( 0 ),
+@@ -1766,6 +1812,9 @@ ScXMLImport::~ScXMLImport() throw()
+     delete pTableRowElemTokenMap;
+     delete pTableRowAttrTokenMap;
+     delete pTableRowCellElemTokenMap;
 +    delete pTableRowCellElemTextTokenMap;
 +    delete pTableRowCellElemTextRubyTokenMap;
 +    delete pTableRowCellElemTextRubyAttrTokenMap;
- 	delete pTableRowCellAttrTokenMap;
- 	delete pTableAnnotationAttrTokenMap;
- 	delete pDetectiveElemTokenMap;
+     delete pTableRowCellAttrTokenMap;
+     delete pTableAnnotationAttrTokenMap;
+     delete pDetectiveElemTokenMap;
 diff --git sc/source/filter/xml/xmlimprt.hxx sc/source/filter/xml/xmlimprt.hxx
-index 6e028f5..31f2b99 100644
+index 2219b0a..30ef849 100644
 --- sc/source/filter/xml/xmlimprt.hxx
 +++ sc/source/filter/xml/xmlimprt.hxx
 @@ -248,7 +248,25 @@ enum ScXMLTableRowCellTokens
@@ -2447,7 +2421,7 @@
 +
 +#endif
 diff --git sc/source/filter/xml/xmlstyle.cxx sc/source/filter/xml/xmlstyle.cxx
-index 863e82c..56e92b8 100644
+index b3af684..2d51ccc 100644
 --- sc/source/filter/xml/xmlstyle.cxx
 +++ sc/source/filter/xml/xmlstyle.cxx
 @@ -140,6 +140,7 @@ const XMLPropertyMapEntry aXMLScRowStylesImportProperties[] =
@@ -2459,7 +2433,7 @@
  };
  
 diff --git sc/source/filter/xml/xmlstyli.cxx sc/source/filter/xml/xmlstyli.cxx
-index 9624740..87584b1 100644
+index 95f9b2b..733a50c 100644
 --- sc/source/filter/xml/xmlstyli.cxx
 +++ sc/source/filter/xml/xmlstyli.cxx
 @@ -64,8 +64,9 @@
@@ -2473,7 +2447,7 @@
  using namespace ::com::sun::star::xml::sax;
  using namespace ::com::sun::star::style;
  using namespace ::com::sun::star::frame;
-@@ -695,22 +696,30 @@ SvXMLStyleContext *XMLTableStylesContext::CreateStyleStyleChildContext(
+@@ -693,22 +694,30 @@ SvXMLStyleContext *XMLTableStylesContext::CreateStyleStyleChildContext(
  		sal_uInt16 nFamily, sal_uInt16 nPrefix, const OUString& rLocalName,
  		const uno::Reference< xml::sax::XAttributeList > & xAttrList )
  {
@@ -2520,11 +2494,10 @@
  
  	return pStyle;
  }
-@@ -1081,3 +1090,102 @@ void ScMasterPageContext::Finish( sal_Bool bOverwrite )
- 	if (!bContainsRightHeader)
+@@ -1082,3 +1091,102 @@ void ScMasterPageContext::Finish( sal_Bool bOverwrite )
  		ClearContent(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(SC_UNO_PAGE_RIGHTHDRCON)));
  }
-+
+ 
 +class ScXMLRubyStyleContext : public SvXMLImportContext
 +{
 +    rtl::OUString sPosition;
@@ -2623,8 +2596,9 @@
 +    }
 +}
 +
++
 diff --git sc/source/filter/xml/xmlstyli.hxx sc/source/filter/xml/xmlstyli.hxx
-index 237e8e3..ead1581 100644
+index bd42e17..732f4f6 100644
 --- sc/source/filter/xml/xmlstyli.hxx
 +++ sc/source/filter/xml/xmlstyli.hxx
 @@ -258,6 +258,59 @@ public:
@@ -2688,10 +2662,10 @@
  	namespace style { class XStyle; }
  } } }
 diff --git sc/source/ui/src/scfuncs.src sc/source/ui/src/scfuncs.src
-index 27e6868..fd230d3 100644
+index 747f43b..a64f6f9 100644
 --- sc/source/ui/src/scfuncs.src
 +++ sc/source/ui/src/scfuncs.src
-@@ -7884,6 +7884,33 @@ Resource RID_SC_FUNCTION_DESCRIPTIONS2
+@@ -7995,6 +7995,33 @@ Resource RID_SC_FUNCTION_DESCRIPTIONS2
              Text [ en-US ] = "The text to convert.";
          };
      };
@@ -2726,10 +2700,10 @@
  	Resource SC_OPCODE_CODE
  	{
 diff --git sc/source/ui/unoobj/cellsuno.cxx sc/source/ui/unoobj/cellsuno.cxx
-index 7c0e769..d3e5576 100644
+index c33166a..79d5e40 100644
 --- sc/source/ui/unoobj/cellsuno.cxx
 +++ sc/source/ui/unoobj/cellsuno.cxx
-@@ -6235,6 +6235,32 @@ String ScCellObj::GetOutputString_Impl(ScDocument* pDoc, const ScAddress& aCellP
+@@ -6253,6 +6253,32 @@ String ScCellObj::GetOutputString_Impl(ScDocument* pDoc, const ScAddress& aCellP
  	return aVal;
  }
  
@@ -2763,13 +2737,13 @@
  {
  	ScDocShell* pDocSh = GetDocShell();
 diff --git sc/util/hidother.src sc/util/hidother.src
-index 9d7ec65..3a9cbf7 100644
+index 8d21ed1..041a1bd 100644
 --- sc/util/hidother.src
 +++ sc/util/hidother.src
-@@ -389,6 +389,7 @@ hidspecial HID_FUNC_UNICODE         { HelpID = HID_FUNC_UNICODE; };
- hidspecial HID_FUNC_UNICHAR         { HelpID = HID_FUNC_UNICHAR; };
- hidspecial HID_FUNC_EUROCONVERT     { HelpID = HID_FUNC_EUROCONVERT; };
- hidspecial HID_FUNC_NUMBERVALUE     { HelpID = HID_FUNC_NUMBERVALUE; };
+@@ -392,6 +392,7 @@ hidspecial HID_FUNC_NUMBERVALUE     { HelpID = HID_FUNC_NUMBERVALUE; };
+ hidspecial HID_FUNC_GAMMA           { HelpID = HID_FUNC_GAMMA; };
+ hidspecial HID_FUNC_CHISQDIST       { HelpID = HID_FUNC_CHISQDIST; };
+ hidspecial HID_FUNC_CHISQINV        { HelpID = HID_FUNC_CHISQINV; };
 +hidspecial HID_FUNC_PHONETIC        { HelpID = HID_FUNC_PHONETIC; };
  
  // ... and from Analysis Addin



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