[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