[libreoffice/f15] fix patch

Caolan McNamara caolanm at fedoraproject.org
Thu Oct 6 09:01:29 UTC 2011


commit 9178e831d751d4c67b844682b34bdd8a852f25b3
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Oct 6 10:01:25 2011 +0100

    fix patch

 2011-2713.patch |  236 ++++++++++++++++++++++++++-----------------------------
 1 files changed, 110 insertions(+), 126 deletions(-)
---
diff --git a/2011-2713.patch b/2011-2713.patch
index de01eba..9ec577a 100644
--- a/2011-2713.patch
+++ b/2011-2713.patch
@@ -1,21 +1,30 @@
-diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx
-index baa2ee1..b7c43d5 100644
---- a/sw/source/filter/ww8/ww8scan.cxx
-+++ b/sw/source/filter/ww8/ww8scan.cxx
-@@ -1918,7 +1918,7 @@ String WW8ReadPString(SvStream& rStrm, rtl_TextEncoding eEnc,
- 
- String WW8Read_xstz(SvStream& rStrm, sal_uInt16 nChars, bool bAtEndSeekRel1)
- {
--    sal_uInt16 b;
-+    sal_uInt16 b(0);
- 
-     if( nChars )
-         b = nChars;
 diff --git a/sw/source/filter/ww8/ww8par3.cxx b/sw/source/filter/ww8/ww8par3.cxx
 index d6e6b84..c34c62e 100644
 --- a/sw/source/filter/ww8/ww8par3.cxx
 +++ b/sw/source/filter/ww8/ww8par3.cxx
-@@ -524,8 +524,8 @@ bool WW8ListManager::ReadLVL(SwNumFmt& rNumFmt, SfxItemSet*& rpItemSet,
+@@ -471,20 +471,7 @@
+ sal_uInt8* WW8ListManager::GrpprlHasSprm(sal_uInt16 nId, sal_uInt8& rSprms,
+     sal_uInt8 nLen)
+ {
+-    sal_uInt8* pSprms = &rSprms;
+-    USHORT i=0;
+-    while (i < nLen)
+-    {
+-        sal_uInt16 nAktId = maSprmParser.GetSprmId(pSprms);
+-        if( nAktId == nId ) // Sprm found
+-            return pSprms + maSprmParser.DistanceToData(nId);
+-
+-        // gib Zeiger auf Daten
+-        USHORT x = maSprmParser.GetSprmSize(nAktId, pSprms);
+-        i = i + x;
+-        pSprms += x;
+-    }
+-    return 0;                           // Sprm not found
++    return maSprmParser.findSprmData(nId, &rSprms, nLen);
+ }
+ 
+ class ListWithId : public std::unary_function<const WW8LSTInfo *, bool>
+@@ -525,8 +512,8 @@
      std::deque<bool> &rNotReallyThere, sal_uInt16 nLevel,
      ww::bytes &rParaSprms)
  {
@@ -26,7 +35,7 @@ index d6e6b84..c34c62e 100644
      SvxExtNumType   eType;              // Writer-Num-Typ
      SvxAdjust       eAdj;               // Ausrichtung (Links/rechts/zent.)
      sal_Unicode     cBullet(0x2190);    // default safe bullet
-@@ -559,7 +559,7 @@ bool WW8ListManager::ReadLVL(SwNumFmt& rNumFmt, SfxItemSet*& rpItemSet,
+@@ -560,7 +547,7 @@
      if( !bLVLOkB )
          return false;
  
@@ -35,20 +44,36 @@ index d6e6b84..c34c62e 100644
      rSt >> ixchFollow;
      if (ixchFollow == 0)
          rReader.maTracer.Log(sw::log::eTabInNumbering);
+diff --git a/sw/source/filter/ww8/ww8scan.hxx b/sw/source/filter/ww8/ww8scan.hxx
+index 0bb532a..7d809d8 100644
+--- a/sw/source/filter/ww8/ww8scan.hxx
++++ b/sw/source/filter/ww8/ww8scan.hxx
+@@ -145,6 +145,11 @@ public:
+     /// The minimum acceptable sprm len possible for this type of parser
+     int MinSprmLen() const { return (IsSevenMinus(meVersion)) ? 2 : 3; }
+ 
++    /// Returns the offset to data of the first sprm of id nId, 0
++    //  if not found. nLen must be the <= length of pSprms
++    sal_uInt8* findSprmData(UINT16 nId, sal_uInt8* pSprms, UINT16 nLen)
++        const;
++
+     inline int getVersion() const { return meVersion; } //cmc, I'm dubious about the usage of this, how can it be 0
+ };
+ 
 diff --git a/sw/source/filter/ww8/ww8par2.cxx b/sw/source/filter/ww8/ww8par2.cxx
-index 9c14be0..67e7dfb 100644
+index a4829e1..92cf106 100644
 --- a/sw/source/filter/ww8/ww8par2.cxx
 +++ b/sw/source/filter/ww8/ww8par2.cxx
-@@ -3687,21 +3687,7 @@ const sal_uInt8* WW8RStyle::HasParaSprm( sal_uInt16 nId ) const
+@@ -3775,21 +3775,7 @@
      if( !pParaSprms || !nSprmsLen )
          return 0;
  
--    const sal_uInt8* pSprms = pParaSprms;
--    sal_uInt16 i, x;
+-    const BYTE* pSprms = pParaSprms;
+-    USHORT i, x;
 -
 -    for( i=0; i < nSprmsLen; )
 -    {
--        sal_uInt16 nAktId = maSprmParser.GetSprmId(pSprms);
+-        USHORT nAktId = maSprmParser.GetSprmId(pSprms);
 -        // Sprm found ?
 -        if( nAktId == nId )
 -            return pSprms + maSprmParser.DistanceToData(nId);
@@ -61,86 +86,8 @@ index 9c14be0..67e7dfb 100644
 +    return maSprmParser.findSprmData(nId, pParaSprms, nSprmsLen);
  }
  
- void WW8RStyle::ImportSprms(sal_uInt8 *pSprms, short nLen, bool bPap)
-diff --git a/sw/source/filter/ww8/ww8par3.cxx b/sw/source/filter/ww8/ww8par3.cxx
-index 6b54aaa..e05b1aa 100644
---- a/sw/source/filter/ww8/ww8par3.cxx
-+++ b/sw/source/filter/ww8/ww8par3.cxx
-@@ -470,20 +470,7 @@ SV_IMPL_PTRARR( WW8LFOInfos, WW8LFOInfo_Ptr );
- sal_uInt8* WW8ListManager::GrpprlHasSprm(sal_uInt16 nId, sal_uInt8& rSprms,
-     sal_uInt8 nLen)
- {
--    sal_uInt8* pSprms = &rSprms;
--    sal_uInt16 nRemLen=nLen;
--    while (nRemLen > (maSprmParser.getVersion()?1:0))
--    {
--        sal_uInt16 nAktId = maSprmParser.GetSprmId(pSprms);
--        if( nAktId == nId ) // Sprm found
--            return pSprms + maSprmParser.DistanceToData(nId);
--
--        // gib Zeiger auf Daten
--        sal_uInt16 nSize = maSprmParser.GetSprmSize(nAktId, pSprms);
--        pSprms += nSize;
--        nRemLen -= nSize;
--    }
--    return 0;                           // Sprm not found
-+    return maSprmParser.findSprmData(nId, &rSprms, nLen);
- }
- 
- class ListWithId : public std::unary_function<const WW8LSTInfo *, bool>
-diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx
-index b7c43d5..70d4cc0 100644
---- a/sw/source/filter/ww8/ww8scan.cxx
-+++ b/sw/source/filter/ww8/ww8scan.cxx
-@@ -7278,6 +7278,27 @@ sal_uInt16 wwSprmParser::DistanceToData(sal_uInt16 nId) const
-     return 1 + mnDelta + SprmDataOfs(nId);
- }
- 
-+sal_uInt8* wwSprmParser::findSprmData(sal_uInt16 nId, sal_uInt8* pSprms,
-+    sal_uInt16 nLen) const
-+{
-+    while (nLen > (getVersion()?1:0))
-+    {
-+        sal_uInt16 nAktId = GetSprmId(pSprms);
-+        if (nAktId == nId) // Sprm found
-+            return pSprms + DistanceToData(nId);
-+
-+        // gib Zeiger auf Daten
-+        sal_uInt16 nSize = GetSprmSize(nAktId, pSprms);
-+        OSL_ENSURE(nSize <= nLen, "sprm longer than remaining bytes");
-+        //Clip to available size if wrong
-+        nSize = std::min(nSize, nLen);
-+        pSprms += nSize;
-+        nLen -= nSize;
-+    }
-+    // Sprm not found
-+    return 0;
-+}
-+
- SEPr::SEPr() :
-     bkc(2), fTitlePage(0), fAutoPgn(0), nfcPgn(0), fUnlocked(0), cnsPgn(0),
-     fPgnRestart(0), fEndNote(1), lnc(0), grpfIhdt(0), nLnnMod(0), dxaLnn(0),
-diff --git a/sw/source/filter/ww8/ww8scan.hxx b/sw/source/filter/ww8/ww8scan.hxx
-index 0bb532a..7d809d8 100644
---- a/sw/source/filter/ww8/ww8scan.hxx
-+++ b/sw/source/filter/ww8/ww8scan.hxx
-@@ -145,6 +145,11 @@ public:
-     /// The minimum acceptable sprm len possible for this type of parser
-     int MinSprmLen() const { return (IsSevenMinus(meVersion)) ? 2 : 3; }
- 
-+    /// Returns the offset to data of the first sprm of id nId, 0
-+    //  if not found. nLen must be the <= length of pSprms
-+    sal_uInt8* findSprmData(sal_uInt16 nId, sal_uInt8* pSprms, sal_uInt16 nLen)
-+        const;
-+
-     inline int getVersion() const { return meVersion; } //cmc, I'm dubious about the usage of this, how can it be 0
- };
- 
-diff --git a/sw/source/filter/ww8/ww8par2.cxx b/sw/source/filter/ww8/ww8par2.cxx
-index a4829e1..92cf106 100644
---- a/sw/source/filter/ww8/ww8par2.cxx
-+++ b/sw/source/filter/ww8/ww8par2.cxx
-@@ -3701,11 +3701,11 @@ void WW8RStyle::ImportSprms(sal_uInt8 *pSprms, short nLen, bool bPap)
+ void WW8RStyle::ImportSprms(BYTE *pSprms, short nLen, bool bPap)
+@@ -3803,11 +3789,11 @@
          nSprmsLen = nLen;
      }
  
@@ -148,7 +95,7 @@ index a4829e1..92cf106 100644
 +    WW8SprmIter aSprmIter(pSprms, nLen, maSprmParser);
 +    while (const sal_uInt8* pSprm = aSprmIter.GetSprms())
      {
--        sal_uInt16 nL1 = pIo->ImportSprm(pSprms);
+-        USHORT nL1 = pIo->ImportSprm(pSprms);
 -        nLen = nLen - nL1;
 -        pSprms += nL1;
 +        pIo->ImportSprm(pSprm);
@@ -160,10 +107,11 @@ diff --git a/sw/source/filter/ww8/ww8scan.cxx b/sw/source/filter/ww8/ww8scan.cxx
 index 70d4cc0..3a18004 100644
 --- a/sw/source/filter/ww8/ww8scan.cxx
 +++ b/sw/source/filter/ww8/ww8scan.cxx
-@@ -1372,9 +1372,14 @@ WW8_CP WW8ScannerBase::WW8Fc2Cp( WW8_FC nFcPos ) const
+@@ -1486,7 +1486,12 @@
      if( nFcPos == WW8_FC_MAX )
          return nFallBackCpEnd;
  
+-    bool bIsUnicode = false;
 +    bool bIsUnicode;
 +    if (pWw8Fib->nVersion >= 8)
 +        bIsUnicode = false;
@@ -172,14 +120,11 @@ index 70d4cc0..3a18004 100644
 +
      if( pPieceIter )    // Complex File ?
      {
--        bool bIsUnicode = false;
-         sal_uLong nOldPos = pPieceIter->GetIdx();
- 
-         for (pPieceIter->SetIdx(0);
-@@ -1388,15 +1393,14 @@ WW8_CP WW8ScannerBase::WW8Fc2Cp( WW8_FC nFcPos ) const
+         ULONG nOldPos = pPieceIter->GetIdx();
+@@ -1502,15 +1507,14 @@
                  break;
              }
-             sal_Int32 nFcStart  = SVBT32ToUInt32( ((WW8_PCD*)pData)->fc );
+             INT32 nFcStart  = SVBT32ToUInt32( ((WW8_PCD*)pData)->fc );
 -            if( 8 <= pWw8Fib->nVersion )
 +            if (pWw8Fib->nVersion >= 8)
              {
@@ -192,24 +137,27 @@ index 70d4cc0..3a18004 100644
 -                    bIsUnicode=true;
 +                bIsUnicode = pWw8Fib->fExtChar ? true : false;
              }
-             sal_Int32 nLen = (nCpEnd - nCpStart) * (bIsUnicode ? 2 : 1);
+             INT32 nLen = (nCpEnd - nCpStart) * (bIsUnicode ? 2 : 1);
  
-@@ -1431,11 +1435,13 @@ WW8_CP WW8ScannerBase::WW8Fc2Cp( WW8_FC nFcPos ) const
+@@ -1545,10 +1549,13 @@
          */
          return nFallBackCpEnd;
      }
+-    // No complex file
+-    if (pWw8Fib->fExtChar)
+-        bIsUnicode=true;
+-    return ((nFcPos - pWw8Fib->fcMin) / (bIsUnicode ? 2 : 1));
 +
-     // No complex file
--    if (!pWw8Fib->fExtChar)
++     // No complex file
 +    if (!bIsUnicode)
-         nFallBackCpEnd = (nFcPos - pWw8Fib->fcMin);
-     else
-         nFallBackCpEnd = (nFcPos - pWw8Fib->fcMin + 1) / 2;
-+
-     return nFallBackCpEnd;
++        nFallBackCpEnd = (nFcPos - pWw8Fib->fcMin);
++    else
++        nFallBackCpEnd = (nFcPos - pWw8Fib->fcMin + 1) / 2;
++    return nFallBackCpEnd;
  }
  
-@@ -1451,8 +1457,14 @@ WW8_FC WW8ScannerBase::WW8Cp2Fc(WW8_CP nCpPos, bool* pIsUnicode,
+ WW8_FC WW8ScannerBase::WW8Cp2Fc(WW8_CP nCpPos, bool* pIsUnicode,
+@@ -1563,8 +1570,14 @@
      if( !pIsUnicode )
          pIsUnicode = &bIsUnicode;
  
@@ -225,27 +173,26 @@ index 70d4cc0..3a18004 100644
          if( pNextPieceCp )
              *pNextPieceCp = WW8_CP_MAX;
  
-@@ -1480,16 +1492,10 @@ WW8_FC WW8ScannerBase::WW8Cp2Fc(WW8_CP nCpPos, bool* pIsUnicode,
+@@ -1592,14 +1605,11 @@
              *pNextPieceCp = nCpEnd;
  
          WW8_FC nRet = SVBT32ToUInt32( ((WW8_PCD*)pData)->fc );
 -        if (8 > pWw8Fib->nVersion)
--        {
--            if (pWw8Fib->fExtChar)
+-        if (pWw8Fib->fExtChar)
 -                *pIsUnicode=true;
 -            else
--                *pIsUnicode = false;
--        }
+-                    *pIsUnicode = false;
 -        else
+-            nRet = WW8PLCFx_PCD::TransformPieceAddress( nRet, *pIsUnicode );
+ 
 +        if (pWw8Fib->nVersion >= 8)
-             nRet = WW8PLCFx_PCD::TransformPieceAddress( nRet, *pIsUnicode );
--
++            nRet = WW8PLCFx_PCD::TransformPieceAddress( nRet, *pIsUnicode );
 +        else
 +            *pIsUnicode = pWw8Fib->fExtChar ? true : false;
  
          nRet += (nCpPos - nCpStart) * (*pIsUnicode ? 2 : 1);
  
-@@ -1497,10 +1503,6 @@ WW8_FC WW8ScannerBase::WW8Cp2Fc(WW8_CP nCpPos, bool* pIsUnicode,
+@@ -1607,10 +1617,6 @@
      }
  
      // No complex file
@@ -256,3 +203,40 @@ index 70d4cc0..3a18004 100644
      return pWw8Fib->fcMin + nCpPos * (*pIsUnicode ? 2 : 1);
  }
  
+@@ -2028,7 +2034,7 @@
+ 
+ String WW8Read_xstz(SvStream& rStrm, USHORT nChars, bool bAtEndSeekRel1)
+ {
+-    UINT16 b;
++    UINT16 b(0);
+ 
+     if( nChars )
+         b = nChars;
+@@ -7393,6 +7399,27 @@
+     return 1 + mnDelta + SprmDataOfs(nId);
+ }
+ 
++sal_uInt8* wwSprmParser::findSprmData(UINT16 nId, sal_uInt8* pSprms,
++    UINT16 nLen) const
++{
++    while (nLen > (getVersion()?1:0))
++    {
++        UINT16 nAktId = GetSprmId(pSprms);
++        if (nAktId == nId) // Sprm found
++            return pSprms + DistanceToData(nId);
++
++        // gib Zeiger auf Daten
++        UINT16 nSize = GetSprmSize(nAktId, pSprms);
++        OSL_ENSURE(nSize <= nLen, "sprm longer than remaining bytes");
++        //Clip to available size if wrong
++        nSize = std::min(nSize, nLen);
++        pSprms += nSize;
++        nLen -= nSize;
++    }
++    // Sprm not found
++    return 0;
++}
++
+ SEPr::SEPr() :
+     bkc(2), fTitlePage(0), fAutoPgn(0), nfcPgn(0), fUnlocked(0), cnsPgn(0),
+     fPgnRestart(0), fEndNote(1), lnc(0), grpfIhdt(0), nLnnMod(0), dxaLnn(0),


More information about the scm-commits mailing list