update ooo310-m15
[ooovba.git] / applied_patches / 0751-sw-section-header-export-problem.diff
blobb70cf5b6eb6a32c6378e24c46bdff1b1c8592cdf
1 diff --git sw/source/filter/ww8/wrtw8sty.cxx sw/source/filter/ww8/wrtw8sty.cxx
2 index 1528f49..3a98298 100644
3 --- sw/source/filter/ww8/wrtw8sty.cxx
4 +++ sw/source/filter/ww8/wrtw8sty.cxx
5 @@ -973,7 +973,8 @@ void WW8_WrPlcSepx::SetFooterFlag( BYTE& rHeadFootFlags, const SwFmt& rFmt,
8 void WW8_WrPlcSepx::OutHeader( SwWW8Writer& rWrt, const SwFmt& rFmt,
9 - ULONG& rCpPos, BYTE nHFFlags, BYTE nFlag )
10 + ULONG& rCpPos, BYTE nHFFlags, BYTE nFlag,
11 + BYTE nBreakCode)
13 if( nFlag & nHFFlags )
15 @@ -989,7 +990,7 @@ void WW8_WrPlcSepx::OutHeader( SwWW8Writer& rWrt, const SwFmt& rFmt,
16 else if( rWrt.bWrtWW8 )
18 pTxtPos->Append( rCpPos );
19 - if (rWrt.bHasHdr)
20 + if (rWrt.bHasHdr && nBreakCode!=0)
22 rWrt.WriteStringAsPara( aEmptyStr ); // Empty paragraph for empty header
23 rWrt.WriteStringAsPara( aEmptyStr ); // a CR that WW8 needs for end of the stream
24 @@ -998,7 +999,8 @@ void WW8_WrPlcSepx::OutHeader( SwWW8Writer& rWrt, const SwFmt& rFmt,
27 void WW8_WrPlcSepx::OutFooter( SwWW8Writer& rWrt, const SwFmt& rFmt,
28 - ULONG& rCpPos, BYTE nHFFlags, BYTE nFlag )
29 + ULONG& rCpPos, BYTE nHFFlags, BYTE nFlag,
30 + BYTE nBreakCode )
32 if( nFlag & nHFFlags )
34 @@ -1011,7 +1013,7 @@ void WW8_WrPlcSepx::OutFooter( SwWW8Writer& rWrt, const SwFmt& rFmt,
35 rWrt.WriteStringAsPara( aEmptyStr ); // CR ans Ende ( sonst mault WW )
36 rCpPos = rWrt.Fc2Cp( rWrt.Strm().Tell() );
38 - else if( rWrt.bWrtWW8 )
39 + else if( rWrt.bWrtWW8 && nBreakCode!=0 )
41 pTxtPos->Append( rCpPos );
42 if (rWrt.bHasFtr)
43 @@ -1520,25 +1522,25 @@ bool WW8_WrPlcSepx::WriteKFTxt(SwWW8Writer& rWrt)
45 rWrt.SetHdFtIndex(++nHdFtGroup);
46 if( !(nHeadFootFlags & WW8_HEADER_EVEN) && rWrt.pDop->fFacingPages )
47 - OutHeader( rWrt, *pPdFmt, nCpPos, nHeadFootFlags, WW8_HEADER_ODD );
48 + OutHeader( rWrt, *pPdFmt, nCpPos, nHeadFootFlags, WW8_HEADER_ODD, nBreakCode );
49 else
50 - OutHeader( rWrt, *pPdLeftFmt, nCpPos, nHeadFootFlags, WW8_HEADER_EVEN );
51 + OutHeader( rWrt, *pPdLeftFmt, nCpPos, nHeadFootFlags, WW8_HEADER_EVEN, nBreakCode );
52 rWrt.SetHdFtIndex(++nHdFtGroup);
53 - OutHeader( rWrt, *pPdFmt, nCpPos, nHeadFootFlags, WW8_HEADER_ODD );
54 + OutHeader( rWrt, *pPdFmt, nCpPos, nHeadFootFlags, WW8_HEADER_ODD, nBreakCode );
56 rWrt.SetHdFtIndex(++nHdFtGroup);
57 if( !(nHeadFootFlags & WW8_FOOTER_EVEN) && rWrt.pDop->fFacingPages )
58 - OutFooter( rWrt, *pPdFmt, nCpPos, nHeadFootFlags, WW8_FOOTER_ODD );
59 + OutFooter( rWrt, *pPdFmt, nCpPos, nHeadFootFlags, WW8_FOOTER_ODD, nBreakCode );
60 else
61 - OutFooter( rWrt, *pPdLeftFmt, nCpPos, nHeadFootFlags, WW8_FOOTER_EVEN );
62 + OutFooter( rWrt, *pPdLeftFmt, nCpPos, nHeadFootFlags, WW8_FOOTER_EVEN, nBreakCode );
63 rWrt.SetHdFtIndex(++nHdFtGroup);
64 - OutFooter( rWrt, *pPdFmt, nCpPos, nHeadFootFlags, WW8_FOOTER_ODD );
65 + OutFooter( rWrt, *pPdFmt, nCpPos, nHeadFootFlags, WW8_FOOTER_ODD, nBreakCode );
67 //#i24344# Drawing objects cannot be directly shared between main hd/ft
68 //and title hd/ft so we need to differenciate them
69 rWrt.SetHdFtIndex(++nHdFtGroup);
70 - OutHeader( rWrt, *pPdFirstPgFmt, nCpPos, nHeadFootFlags, WW8_HEADER_FIRST );
71 - OutFooter( rWrt, *pPdFirstPgFmt, nCpPos, nHeadFootFlags, WW8_FOOTER_FIRST );
72 + OutHeader( rWrt, *pPdFirstPgFmt, nCpPos, nHeadFootFlags, WW8_HEADER_FIRST, nBreakCode );
73 + OutFooter( rWrt, *pPdFirstPgFmt, nCpPos, nHeadFootFlags, WW8_FOOTER_FIRST, nBreakCode );
74 rWrt.SetHdFtPageRoot(pOldPageRoot);
76 rWrt.SetHdFtIndex(nOldIndex); //0
77 diff --git sw/source/filter/ww8/wrtww8.hxx sw/source/filter/ww8/wrtww8.hxx
78 index 69f0e4f..d11049f 100644
79 --- sw/source/filter/ww8/wrtww8.hxx
80 +++ sw/source/filter/ww8/wrtww8.hxx
81 @@ -195,9 +195,11 @@ private:
82 void WriteOlst( SwWW8Writer& rWrt, USHORT i );
83 void WriteFtnEndTxt( SwWW8Writer& rWrt, ULONG nCpStt );
84 void OutHeader( SwWW8Writer& rWrt, const SwFmt& rFmt,
85 - ULONG& rCpPos, BYTE nHFFlags, BYTE nFlag );
86 + ULONG& rCpPos, BYTE nHFFlags, BYTE nFlag,
87 + BYTE nBreakCode);
88 void OutFooter( SwWW8Writer& rWrt, const SwFmt& rFmt,
89 - ULONG& rCpPos, BYTE nHFFlags, BYTE nFlag );
90 + ULONG& rCpPos, BYTE nHFFlags, BYTE nFlag,
91 + BYTE nBreakCode);
92 static void SetHeaderFlag( BYTE& rHeadFootFlags, const SwFmt& rFmt,
93 BYTE nFlag );
94 static void SetFooterFlag( BYTE& rHeadFootFlags, const SwFmt& rFmt,